[{"data":1,"prerenderedAt":607},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-releases":308},[4,9,15,20,25,30,35,41,52,60,69,77,84,92,96,105,109,117,122,127,132,138,143,148,153,158,163,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,260,265,269,273,278,283,288,293,298,303],{"path":5,"title":6,"description":7,"order":8,"group":8,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fpermissions","Who can do what","[object Object]",null,{"path":10,"title":11,"description":12,"order":13,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Finstallation","Installation","Install CloseYourIt on your own server with one command.",1,"start",{"path":16,"title":17,"description":18,"order":19,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsettings","Settings","Every setting in the .env file, what it does and which ones you must never change.",2,{"path":21,"title":22,"description":23,"order":24,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fdatabase","Database","What the database is, what is inside, how long data stays and how much room it takes.",3,{"path":26,"title":27,"description":28,"order":29,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fupdates-and-backups","Updates and backups","Update to a new version, back up and restore the database, check the install.",4,{"path":31,"title":32,"description":33,"order":34,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting","What to check when the install, the certificate, email or incoming data do not work.",5,{"path":36,"title":37,"description":38,"order":39,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fconnect-your-apps","Connect your apps","Every tool that sends data to CloseYourIt, and what each one collects.",6,"connect",{"path":42,"title":43,"description":44,"order":45,"group":8,"parent":46,"package":47,"note":48,"collects":49,"status":8},"\u002Fdocs\u002Fsdk-ruby","Ruby \u002F Rails","The closeyourit-ruby gem sends errors, logs, slow queries and job metrics from a Rails app.",7,"connect-your-apps","closeyourit-ruby","Errors, logs, slow queries and methods, background jobs.",{"errors":50,"logs":50,"performance":50,"visits":51,"servers":51},"full","none",{"path":53,"title":54,"description":55,"order":56,"group":8,"parent":46,"package":57,"note":58,"collects":59,"status":8},"\u002Fdocs\u002Fsdk-javascript","JavaScript","The @bussolabs\u002Fcloseyourit-js package works in the browser and on Node 20.16 or newer.",8,"@bussolabs\u002Fcloseyourit-js","Browser and Node, framework adapters and database queries from 0.13.0.",{"errors":50,"logs":50,"performance":50,"visits":50,"servers":51},{"path":61,"title":62,"description":63,"order":64,"group":8,"parent":46,"package":65,"note":66,"collects":67,"status":8},"\u002Fdocs\u002Fsdk-dart","Dart \u002F Flutter","The closeyourit package captures the errors of Flutter apps, even when the phone is offline.",9,"closeyourit","Public errors, logs and metrics from 0.9.3.",{"errors":50,"logs":68,"performance":68,"visits":51,"servers":51},"partial",{"path":70,"title":71,"description":72,"order":73,"group":8,"parent":46,"package":65,"note":74,"collects":75,"status":76},"\u002Fdocs\u002Fsdk-python","Python","The closeyourit package sends errors, logs and metrics from server-side Python applications.",10,"Server side. SQLAlchemy; Django query monitoring and FastAPI\u002FStarlette from 0.4.0.",{"errors":50,"logs":50,"performance":68,"visits":51,"servers":51},"pre_alpha",{"path":78,"title":79,"description":80,"order":81,"group":8,"parent":46,"package":79,"note":82,"collects":83,"status":8},"\u002Fdocs\u002Fsdk-sentry","Sentry SDK","Send errors with a compatible Sentry SDK; sessions and crashes have separate profiles.",11,"Compatible errors; sessions and crashes require a verified profile.",{"errors":50,"logs":51,"performance":51,"visits":51,"servers":51},{"path":85,"title":86,"description":87,"order":88,"group":8,"parent":46,"package":89,"note":90,"collects":91,"status":8},"\u002Fdocs\u002Fagent-server","Server agent","A small program on the server that sends the state of the machine every 60 seconds.",12,"closeyourit-agent","CPU, memory, disks, network, containers and services.",{"errors":51,"logs":68,"performance":51,"visits":51,"servers":50},{"path":93,"title":94,"description":95,"order":88,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnuxt","Vue and Nuxt","Connect Nuxt browser errors and Nitro server errors without exposing a server token.",{"path":97,"title":98,"description":99,"order":100,"group":8,"parent":46,"package":101,"note":102,"collects":103,"status":104},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","A read-only observer of the cluster: one copy per cluster.",13,"closeyourit-kube","Machines, apps and error events of the cluster.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":50},"coming",{"path":106,"title":107,"description":108,"order":100,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Send server traces, metrics and logs through the optional OTLP receiver.",{"path":110,"title":111,"description":112,"order":113,"group":8,"parent":46,"package":114,"note":115,"collects":116,"status":8},"\u002Fdocs\u002Fcli","cyi CLI","The closeyourit command, cyi for short: manage projects, errors and tickets from the terminal.",14,"@bussolabs\u002Fcloseyourit-cli","It collects no data: it drives CloseYourIt from the terminal.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":51},{"path":118,"title":119,"description":120,"order":121,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhttp-api","HTTP API","Send errors, logs, metrics and page views with plain HTTP requests, without an SDK.",15,{"path":123,"title":124,"description":125,"order":126,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fgithub-app","GitHub","Connect GitHub repositories to tickets and releases with your own GitHub App.",16,{"path":128,"title":129,"description":130,"order":131,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fingest-gateway","Ingest gateway","Keep incoming errors, logs and metrics safe when the app is slow or restarting.",17,{"path":133,"title":134,"description":135,"order":136,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fai","AI","Turn on assistant, analysis, dictation and smart search with a CloseYourIt AI key or your own provider.",18,"automation",{"path":139,"title":140,"description":141,"order":142,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fautomator","Automator","Let tickets be worked automatically on your own Linux machine, with Claude Code, Codex or both.",19,{"path":144,"title":145,"description":146,"order":147,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fstack-coverage","Frameworks and stack coverage","Choose a published SDK or understand the limits of a locally tested integration.",20,{"path":149,"title":150,"description":151,"order":152,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fmonitoring","Traces, measurements and sessions","Explore the new signals, compare releases and recover original error locations.",21,{"path":154,"title":155,"description":156,"order":157,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnode-database","Node databases","Monitor slow and repeated queries with pg, mysql2, Drizzle and Prisma PostgreSQL.",22,{"path":159,"title":160,"description":161,"order":162,"group":137,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fclaude-code","Claude Code","CloseYourIt inside Claude Code, in a column next to the conversation with production and your open tickets.",23,{"path":164,"title":165,"description":166,"order":167,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftickets","Tickets and ideas","Open and follow tickets on the board, group them into milestones, ask questions and turn voted ideas into work.",30,"use",{"path":170,"title":171,"description":172,"order":173,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ferrors","Errors","How your apps' errors become single rows, and how to resolve, ignore, merge or turn them into tickets.",31,{"path":175,"title":176,"description":177,"order":178,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fperformance","Performance","Find slow queries and methods, read the problems detected automatically and get an alert when one appears.",32,{"path":180,"title":181,"description":182,"order":183,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Flogs","Logs","Search your apps' messages, follow a request from start to end and link a message to an error or a ticket.",33,{"path":185,"title":186,"description":187,"order":188,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsecrets","Secrets","Passwords, keys and private files in one place, per project and environment, read by your app without a .env on disk.",34,{"path":190,"title":191,"description":192,"order":193,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fservers","Servers","The state of your machines on one page, with history and alerts when something breaks or fills up.",35,{"path":195,"title":196,"description":197,"order":198,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fuptime","Uptime","Check that your sites answer, keep count of outages and show them to customers on a status page.",36,{"path":200,"title":201,"description":202,"order":203,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fcrons","Scheduled jobs","Notice when a job that should run on its own stops running, or runs and ends badly.",37,{"path":205,"title":206,"description":207,"order":208,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Falerts","Alerts","The rules that create an alert, the notification center and where each person chooses to receive them.",38,{"path":210,"title":211,"description":212,"order":213,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhelpdesk","Help desk","Visitors of a project's site write to the team with the \"Need help?\" button, and the request lands in the right project.",39,{"path":215,"title":216,"description":217,"order":218,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fanalytics","Site analytics","How many people visit the site, what they look at and where they come from, without cookies.",40,{"path":220,"title":221,"description":222,"order":223,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freplays","Session replay","Record how people move through the site and watch it back like a video, even next to an error.",41,{"path":225,"title":226,"description":227,"order":228,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freleases","Releases","The versions running in each environment, bound to GitHub tags, and the errors that come back after a fix.",42,{"path":230,"title":231,"description":232,"order":233,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fvulnerabilities","Vulnerabilities","Known security problems in your projects' libraries, and the languages that no longer get fixes.",43,{"path":235,"title":236,"description":237,"order":238,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fseo","SEO","CloseYourIt visits your sites like a search engine and tells you what keeps your pages from being found.",44,{"path":240,"title":241,"description":242,"order":243,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fknowledge","Knowledge base","Write notes, decisions and guides for your projects, find them by meaning and ask questions with sources.",45,{"path":245,"title":246,"description":247,"order":248,"group":168,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fagents","AI agents","Which tickets agents take, what they hand you, where you decide and how each machine is measured.",46,{"path":250,"title":251,"description":252,"order":253,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog","Versions","Every CloseYourIt system with its latest version, and the notes of each release.",50,{"path":255,"title":256,"description":257,"order":258,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-app","App","Every stable version of App, newest first.",51,"changelog",{"path":261,"title":262,"description":263,"order":264,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-cli","Command line (cyi)","Every stable version of Command line (cyi), newest first.",52,{"path":266,"title":140,"description":267,"order":268,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-automator","Every stable version of Automator, newest first.",53,{"path":270,"title":86,"description":271,"order":272,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-server","Every stable version of Server agent, newest first.",54,{"path":274,"title":275,"description":276,"order":277,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-kubernetes","Kubernetes agent","Every stable version of Kubernetes agent, newest first.",55,{"path":279,"title":280,"description":281,"order":282,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-javascript","JavaScript SDK","Every stable version of JavaScript SDK, newest first.",56,{"path":284,"title":285,"description":286,"order":287,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-ruby","Ruby SDK","Every stable version of Ruby SDK, newest first.",57,{"path":289,"title":290,"description":291,"order":292,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-python","Python SDK","Every stable version of Python SDK, newest first.",58,{"path":294,"title":295,"description":296,"order":297,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-dart","Dart SDK","Every stable version of Dart SDK, newest first.",59,{"path":299,"title":300,"description":301,"order":302,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-skills","Skills for AI assistants","Every stable version of Skills for AI assistants, newest first.",60,{"path":304,"title":305,"description":306,"order":307,"group":8,"parent":259,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-site","Website and docs","Every stable version of Website and docs, newest first.",61,{"id":309,"title":226,"body":310,"collects":8,"description":227,"extension":601,"group":168,"meta":602,"navigation":603,"note":8,"order":228,"package":8,"parent":8,"path":225,"seo":604,"status":8,"stem":605,"__hash__":606},"docs_en\u002Fdocs\u002Freleases.md",{"type":311,"value":312,"toc":595},"minimark",[313,317,322,325,351,354,431,453,456,460,474,493,497,506,534,537,553,556,560,566,569,584,591],[314,315,316],"p",{},"A release is the version of your program running in an environment. CloseYourIt uses it to tell you in which version an error was born, in which it was fixed and whether it came back later.",[318,319,321],"h2",{"id":320},"where-releases-come-from","Where releases come from",[314,323,324],{},"In two ways:",[326,327,328,341],"ul",{},[329,330,331,335,336,340],"li",{},[332,333,334],"strong",{},"From CI."," After the release, the pipeline registers the version with a project token that has the ",[337,338,339],"code",{},"ingest"," permission.",[329,342,343,346,347,350],{},[332,344,345],{},"From errors."," The first error carrying a version (",[337,348,349],{},"release"," in the SDK) creates the release by itself.",[314,352,353],{},"The call from CI:",[355,356,361],"pre",{"className":357,"code":358,"language":359,"meta":360,"style":360},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Freleases \\\n  -H \"Authorization: Bearer $CYI_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"version\": \"v1.4.2\", \"sha\": \"'\"$GITHUB_SHA\"'\"}'\n","bash","",[337,362,363,392,408,417],{"__ignoreMap":360},[364,365,367,371,375,379,382,386,389],"span",{"class":366,"line":13},"line",[364,368,370],{"class":369},"sScJk","curl",[364,372,374],{"class":373},"sj4cs"," -X",[364,376,378],{"class":377},"sZZnC"," POST",[364,380,381],{"class":377}," https:\u002F\u002Fbugs.example.com\u002Fapi\u002Fv1\u002Fprojects\u002F",[364,383,385],{"class":384},"sVt8B","$PROJECT_ID",[364,387,388],{"class":377},"\u002Freleases",[364,390,391],{"class":373}," \\\n",[364,393,394,397,400,403,406],{"class":366,"line":19},[364,395,396],{"class":373},"  -H",[364,398,399],{"class":377}," \"Authorization: Bearer ",[364,401,402],{"class":384},"$CYI_TOKEN",[364,404,405],{"class":377},"\"",[364,407,391],{"class":373},[364,409,410,412,415],{"class":366,"line":24},[364,411,396],{"class":373},[364,413,414],{"class":377}," \"Content-Type: application\u002Fjson\"",[364,416,391],{"class":373},[364,418,419,422,425,428],{"class":366,"line":29},[364,420,421],{"class":373},"  -d",[364,423,424],{"class":377}," '{\"version\": \"v1.4.2\", \"sha\": \"'\"",[364,426,427],{"class":384},"$GITHUB_SHA",[364,429,430],{"class":377},"\"'\"}'\n",[326,432,433,447,450],{},[329,434,435,438,439,442,443,446],{},[337,436,437],{},"version"," is required. ",[337,440,441],{},"sha"," (the commit) and ",[337,444,445],{},"build_time"," are optional.",[329,448,449],{},"The environment is the token's, it is not written in the body. For staging use the staging token.",[329,451,452],{},"Repeating the call does not create duplicates.",[314,454,455],{},"The same version in staging and in production are two different releases.",[318,457,459],{"id":458},"where-you-see-them","Where you see them",[314,461,462,463,465,466,469,470,473],{},"On the project page, the ",[332,464,226],{}," section shows the latest ones: version, environment, the commit cut to 7 characters, how many events it received and when. ",[332,467,468],{},"See all →"," opens the full list. From the command line: ",[337,471,472],{},"cyi releases list --project \u003Cid or key>",".",[314,475,476,477,481,482,485,486,489,490,473],{},"On the page of an ",[478,479,480],"a",{"href":170},"error"," you find ",[332,483,484],{},"Introduced in"," (the first version where it appeared) and ",[332,487,488],{},"Latest release"," (the last one where it was seen). If they are the same, you read ",[332,491,492],{},"First seen and still in",[318,494,496],{"id":495},"the-live-release","The \"live\" release",[314,498,499,500,503,504,473],{},"The ",[332,501,502],{},"live"," mark tells which version runs right now in an environment. It needs GitHub connected: creating the App is covered in ",[478,505,124],{"href":123},[507,508,509,518,524],"ol",{},[329,510,511,512,514,515,473],{},"In the project open the ",[332,513,124],{}," tab, pick the repository and press ",[332,516,517],{},"Link repository",[329,519,520,521,473],{},"Turn on ",[332,522,523],{},"Tag → release binding",[329,525,526,527,530,531,473],{},"Pick the ",[332,528,529],{},"Production environment"," and the ",[332,532,533],{},"Staging environment",[314,535,536],{},"From then on:",[326,538,539,546],{},[329,540,541,542,545],{},"a stable tag (for example ",[337,543,544],{},"v1.2.3",") marks the live release in production;",[329,547,548,549,552],{},"a pre-release tag (for example ",[337,550,551],{},"v1.2.3-beta",") marks it in staging.",[314,554,555],{},"The release becomes live when both signals have arrived: the CI registration for that environment and the GitHub tag with the same version. The order does not matter. Each environment has only one live release: the new one takes the mark away from the previous one.",[318,557,559],{"id":558},"errors-that-come-back","Errors that come back",[314,561,562,563,473],{},"When you resolve an error, CloseYourIt notes the release that is live at that moment: in the resolution box you read ",[332,564,565],{},"Resolved in release …",[314,567,568],{},"If the error then shows up again:",[326,570,571,581],{},[329,572,573,574,577,578,580],{},"from a version equal to or newer than the fix, the error reopens and is a regression. The alert says ",[332,575,576],{},"Error regressed"," and in which version (see ",[478,579,206],{"href":205},");",[329,582,583],{},"from a version that is surely older, the error stays resolved. It is an old client not yet updated, not a new failure.",[314,585,586,587,590],{},"Versions like ",[337,588,589],{},"v1.4.2"," are compared by number. Others, for example a commit, by the date they first appeared. If the project has no live release, or the order is unclear, the error always reopens: better one alert too many than a hidden regression.",[592,593,594],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":360,"searchDepth":19,"depth":19,"links":596},[597,598,599,600],{"id":320,"depth":19,"text":321},{"id":458,"depth":19,"text":459},{"id":495,"depth":19,"text":496},{"id":558,"depth":19,"text":559},"md",{},true,{"title":226,"description":227},"docs\u002Freleases","jAChPJyx2LgrD3mCDlDzcQdtoct-zoV04_frjm9LCN8",1791469657727]