[{"data":1,"prerenderedAt":484},["ShallowReactive",2],{"docs-pages-en":3,"doc-en-sdk-javascript":154},[4,11,16,21,26,31,37,48,56,65,73,80,88,92,101,105,113,118,123,128,134,139,144,149],{"path":5,"title":6,"description":7,"order":8,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Finstallation","Installation","Install CloseYourIt on your own server with one command.",1,"start",null,{"path":12,"title":13,"description":14,"order":15,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fsettings","Settings","Every setting in the .env file, what it does and which ones you must never change.",2,{"path":17,"title":18,"description":19,"order":20,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fdatabase","Database","What the database is, what is inside, how long data stays and how much room it takes.",3,{"path":22,"title":23,"description":24,"order":25,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fupdates-and-backups","Updates and backups","Update to a new version, back up and restore the database, check the install.",4,{"path":27,"title":28,"description":29,"order":30,"group":9,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting","What to check when the install, the certificate, email or incoming data do not work.",5,{"path":32,"title":33,"description":34,"order":35,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fconnect-your-apps","Connect your apps","Every tool that sends data to CloseYourIt, and what each one collects.",6,"connect",{"path":38,"title":39,"description":40,"order":41,"group":10,"parent":42,"package":43,"note":44,"collects":45,"status":10},"\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":46,"logs":46,"performance":46,"visits":47,"servers":47},"full","none",{"path":49,"title":50,"description":51,"order":52,"group":10,"parent":42,"package":53,"note":54,"collects":55,"status":10},"\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":46,"logs":46,"performance":46,"visits":46,"servers":47},{"path":57,"title":58,"description":59,"order":60,"group":10,"parent":42,"package":61,"note":62,"collects":63,"status":10},"\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":46,"logs":64,"performance":64,"visits":47,"servers":47},"partial",{"path":66,"title":67,"description":68,"order":69,"group":10,"parent":42,"package":61,"note":70,"collects":71,"status":72},"\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":46,"logs":46,"performance":64,"visits":47,"servers":47},"pre_alpha",{"path":74,"title":75,"description":76,"order":77,"group":10,"parent":42,"package":75,"note":78,"collects":79,"status":10},"\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":46,"logs":47,"performance":47,"visits":47,"servers":47},{"path":81,"title":82,"description":83,"order":84,"group":10,"parent":42,"package":85,"note":86,"collects":87,"status":10},"\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":47,"logs":64,"performance":47,"visits":47,"servers":46},{"path":89,"title":90,"description":91,"order":84,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnuxt","Vue and Nuxt","Connect Nuxt browser errors and Nitro server errors without exposing a server token.",{"path":93,"title":94,"description":95,"order":96,"group":10,"parent":42,"package":97,"note":98,"collects":99,"status":100},"\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":47,"logs":47,"performance":47,"visits":47,"servers":46},"coming",{"path":102,"title":103,"description":104,"order":96,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Send server traces, metrics and logs through the optional OTLP receiver.",{"path":106,"title":107,"description":108,"order":109,"group":10,"parent":42,"package":110,"note":111,"collects":112,"status":10},"\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":47,"logs":47,"performance":47,"visits":47,"servers":47},{"path":114,"title":115,"description":116,"order":117,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fhttp-api","HTTP API","Send errors, logs, metrics and page views with plain HTTP requests, without an SDK.",15,{"path":119,"title":120,"description":121,"order":122,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fgithub-app","GitHub","Connect GitHub repositories to tickets and releases with your own GitHub App.",16,{"path":124,"title":125,"description":126,"order":127,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fingest-gateway","Ingest gateway","Keep incoming errors, logs and metrics safe when the app is slow or restarting.",17,{"path":129,"title":130,"description":131,"order":132,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fai","AI","Turn on assistant, analysis, dictation and smart search with a CloseYourIt AI key or your own provider.",18,"automation",{"path":135,"title":136,"description":137,"order":138,"group":133,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fautomator","Automator","Let tickets be worked automatically on your own Linux machine, with Claude Code, Codex or both.",19,{"path":140,"title":141,"description":142,"order":143,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fstack-coverage","Frameworks and stack coverage","Choose a published SDK or understand the limits of a locally tested integration.",20,{"path":145,"title":146,"description":147,"order":148,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fmonitoring","Traces, measurements and sessions","Explore the new signals, compare releases and recover original error locations.",21,{"path":150,"title":151,"description":152,"order":153,"group":36,"parent":10,"package":10,"note":10,"collects":10,"status":10},"\u002Fdocs\u002Fnode-database","Node databases","Monitor slow and repeated queries with pg, mysql2, Drizzle and Prisma PostgreSQL.",22,{"id":155,"title":50,"body":156,"collects":478,"description":51,"extension":479,"group":10,"meta":480,"navigation":319,"note":54,"order":52,"package":53,"parent":42,"path":49,"seo":481,"status":10,"stem":482,"__hash__":483},"docs_en\u002Fdocs\u002Fsdk-javascript.md",{"type":157,"value":158,"toc":470},"minimark",[159,164,168,199,202,229,240,244,278,281,285,388,392,424,430,433,441,451,455,466],[160,161,163],"h2",{"id":162},"what-it-collects","What it collects",[165,166,167],"p",{},"On its own:",[169,170,171,179,185,188],"ul",{},[172,173,174,178],"li",{},[175,176,177],"strong",{},"unhandled exceptions"," and Promise rejections;",[172,180,181,184],{},[175,182,183],{},"structured logs",";",[172,186,187],{},"the history before the error: clicks, navigation, console, HTTP requests (browser only);",[172,189,190,193,194,198],{},[175,191,192],{},"slow methods",", when you measure them with ",[195,196,197],"code",{},"measure()",".",[165,200,201],{},"When you turn it on:",[169,203,204,207,212,215,220,226],{},[172,205,206],{},"performance issues: slow or repeated HTTP calls, a page that freezes;",[172,208,209,184],{},[175,210,211],{},"Web Vitals",[172,213,214],{},"resource errors and CSP violations;",[172,216,217,184],{},[175,218,219],{},"page views",[172,221,222,225],{},[175,223,224],{},"session recording",", with form fields masked;",[172,227,228],{},"usage telemetry (server side only).",[165,230,231,232,235,236,239],{},"From ",[175,233,234],{},"0.13.0",", the optional ",[195,237,238],{},"\u002Fdatabase"," entry observes slow and repeated queries on Node: pg, mysql2, Drizzle through those drivers and Prisma through its PostgreSQL driver. It is disabled by default. Prisma MySQL, cursors and streaming are not covered.",[160,241,243],{"id":242},"install","Install",[245,246,251],"pre",{"className":247,"code":248,"language":249,"meta":250,"style":250},"language-bash shiki shiki-themes github-light github-dark","pnpm add @bussolabs\u002Fcloseyourit-js\nnpm install @bussolabs\u002Fcloseyourit-js\n","bash","",[195,252,253,268],{"__ignoreMap":250},[254,255,257,261,265],"span",{"class":256,"line":8},"line",[254,258,260],{"class":259},"sScJk","pnpm",[254,262,264],{"class":263},"sZZnC"," add",[254,266,267],{"class":263}," @bussolabs\u002Fcloseyourit-js\n",[254,269,270,273,276],{"class":256,"line":15},[254,271,272],{"class":259},"npm",[254,274,275],{"class":263}," install",[254,277,267],{"class":263},[165,279,280],{},"One of the two commands is enough.",[160,282,284],{"id":283},"configure","Configure",[245,286,290],{"className":287,"code":288,"language":289,"meta":250,"style":250},"language-js shiki shiki-themes github-light github-dark","import * as CloseYourIt from \"@bussolabs\u002Fcloseyourit-js\"\n\nCloseYourIt.init({\n  endpointUrl: \"https:\u002F\u002Fbugs.example.com\",\n  publicKey: \"\u003Cpublic key of the token>\",\n  projectId: \"\u003Cproject id>\",\n  environment: \"production\",\n  release: \"web@1.4.2\",\n})\n","js",[195,291,292,315,321,332,343,353,363,373,383],{"__ignoreMap":250},[254,293,294,298,302,305,309,312],{"class":256,"line":8},[254,295,297],{"class":296},"szBVR","import",[254,299,301],{"class":300},"sj4cs"," *",[254,303,304],{"class":296}," as",[254,306,308],{"class":307},"sVt8B"," CloseYourIt ",[254,310,311],{"class":296},"from",[254,313,314],{"class":263}," \"@bussolabs\u002Fcloseyourit-js\"\n",[254,316,317],{"class":256,"line":15},[254,318,320],{"emptyLinePlaceholder":319},true,"\n",[254,322,323,326,329],{"class":256,"line":20},[254,324,325],{"class":307},"CloseYourIt.",[254,327,328],{"class":259},"init",[254,330,331],{"class":307},"({\n",[254,333,334,337,340],{"class":256,"line":25},[254,335,336],{"class":307},"  endpointUrl: ",[254,338,339],{"class":263},"\"https:\u002F\u002Fbugs.example.com\"",[254,341,342],{"class":307},",\n",[254,344,345,348,351],{"class":256,"line":30},[254,346,347],{"class":307},"  publicKey: ",[254,349,350],{"class":263},"\"\u003Cpublic key of the token>\"",[254,352,342],{"class":307},[254,354,355,358,361],{"class":256,"line":35},[254,356,357],{"class":307},"  projectId: ",[254,359,360],{"class":263},"\"\u003Cproject id>\"",[254,362,342],{"class":307},[254,364,365,368,371],{"class":256,"line":41},[254,366,367],{"class":307},"  environment: ",[254,369,370],{"class":263},"\"production\"",[254,372,342],{"class":307},[254,374,375,378,381],{"class":256,"line":52},[254,376,377],{"class":307},"  release: ",[254,379,380],{"class":263},"\"web@1.4.2\"",[254,382,342],{"class":307},[254,384,385],{"class":256,"line":60},[254,386,387],{"class":307},"})\n",[160,389,391],{"id":390},"which-credential","Which credential",[169,393,394,405],{},[172,395,396,397,400,401,404],{},"In the ",[175,398,399],{},"browser"," use ",[195,402,403],{},"publicKey",": it is not secret.",[172,406,407,408,411,412,415,416,419,420,423],{},"On ",[175,409,410],{},"Node"," use a secret ",[195,413,414],{},"token"," with ",[195,417,418],{},"ingest"," scope. Reading requires a separate ",[195,421,422],{},"read"," permission.",[165,425,426,427,429],{},"The ",[195,428,414],{}," must never end up in browser code. If you pass only the token in the browser, the SDK stays off and says so in the console.",[160,431,90],{"id":432},"vue-and-nuxt",[165,434,435,436,440],{},"Version 0.12.0 adds optional Vue, Nuxt client and Nitro server adapters. Follow the ",[437,438,439],"a",{"href":89},"Nuxt guide"," for public browser configuration, private server credentials, request isolation and removal.",[165,442,443,444,447,448,450],{},"For OpenTelemetry traces, use the ",[437,445,446],{"href":102},"separate OTLP path",". The native SDK’s W3C headers and ",[195,449,197],{}," do not create OTLP spans.",[160,452,454],{"id":453},"other-frameworks","Other frameworks",[165,456,457,458,461,462,465],{},"React\u002FNext, Angular, Svelte\u002FSvelteKit and Express\u002FFastify\u002FNest have optional entries in package 0.13.0. Check ",[437,459,460],{"href":140},"coverage and limits"," before choosing an adapter. The ",[437,463,464],{"href":150},"Node database guide"," covers explicit installation, request boundaries, privacy and uninstall.",[467,468,469],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":250,"searchDepth":15,"depth":15,"links":471},[472,473,474,475,476,477],{"id":162,"depth":15,"text":163},{"id":242,"depth":15,"text":243},{"id":283,"depth":15,"text":284},{"id":390,"depth":15,"text":391},{"id":432,"depth":15,"text":90},{"id":453,"depth":15,"text":454},{"errors":46,"logs":46,"performance":46,"visits":46,"servers":47},"md",{},{"title":50,"description":51},"docs\u002Fsdk-javascript","bmV69ibWxEx0LXLmqb9tepYNJHL-TJ7t9cGq6Fuak6I",1791302513060]