@wizeworks/lens-cloud 0.3.0-alpha.3 → 0.3.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +3 -0
  2. package/dist/alerts/evaluate.d.ts +6 -5
  3. package/dist/alerts/evaluate.d.ts.map +1 -1
  4. package/dist/alerts/evaluate.js +59 -26
  5. package/dist/alerts/evaluate.js.map +1 -1
  6. package/dist/alerts/problem-link.d.ts +12 -0
  7. package/dist/alerts/problem-link.d.ts.map +1 -0
  8. package/dist/alerts/problem-link.js +31 -0
  9. package/dist/alerts/problem-link.js.map +1 -0
  10. package/dist/app.d.ts +9 -0
  11. package/dist/app.d.ts.map +1 -1
  12. package/dist/auth/auth.d.ts +8 -2
  13. package/dist/auth/auth.d.ts.map +1 -1
  14. package/dist/auth/auth.js +25 -2
  15. package/dist/auth/auth.js.map +1 -1
  16. package/dist/auth/billing-hooks.d.ts +9 -0
  17. package/dist/auth/billing-hooks.d.ts.map +1 -0
  18. package/dist/auth/billing-hooks.js +49 -0
  19. package/dist/auth/billing-hooks.js.map +1 -0
  20. package/dist/auth/bridge.js +2 -2
  21. package/dist/auth/bridge.js.map +1 -1
  22. package/dist/auth/crypto.d.ts +2 -0
  23. package/dist/auth/crypto.d.ts.map +1 -1
  24. package/dist/auth/crypto.js +2 -2
  25. package/dist/auth/crypto.js.map +1 -1
  26. package/dist/auth/deps.d.ts +7 -0
  27. package/dist/auth/deps.d.ts.map +1 -1
  28. package/dist/auth/deps.js.map +1 -1
  29. package/dist/auth/hooks.d.ts.map +1 -1
  30. package/dist/auth/hooks.js +8 -1
  31. package/dist/auth/hooks.js.map +1 -1
  32. package/dist/auth/join-scope.d.ts +1 -1
  33. package/dist/auth/join-scope.d.ts.map +1 -1
  34. package/dist/auth/join-scope.js +8 -4
  35. package/dist/auth/join-scope.js.map +1 -1
  36. package/dist/auth/oauth-access.d.ts +8 -0
  37. package/dist/auth/oauth-access.d.ts.map +1 -0
  38. package/dist/auth/oauth-access.js +31 -0
  39. package/dist/auth/oauth-access.js.map +1 -0
  40. package/dist/auth/oauth-grant.d.ts +5 -0
  41. package/dist/auth/oauth-grant.d.ts.map +1 -0
  42. package/dist/auth/oauth-grant.js +79 -0
  43. package/dist/auth/oauth-grant.js.map +1 -0
  44. package/dist/auth/oauth-names.d.ts +104 -0
  45. package/dist/auth/oauth-names.d.ts.map +1 -0
  46. package/dist/auth/oauth-names.js +72 -0
  47. package/dist/auth/oauth-names.js.map +1 -0
  48. package/dist/auth/oauth.d.ts +17 -0
  49. package/dist/auth/oauth.d.ts.map +1 -0
  50. package/dist/auth/oauth.js +47 -0
  51. package/dist/auth/oauth.js.map +1 -0
  52. package/dist/auth/options.d.ts.map +1 -1
  53. package/dist/auth/options.js +2 -0
  54. package/dist/auth/options.js.map +1 -1
  55. package/dist/auth/plugins.d.ts.map +1 -1
  56. package/dist/auth/plugins.js +15 -1
  57. package/dist/auth/plugins.js.map +1 -1
  58. package/dist/auth/principal.d.ts +10 -1
  59. package/dist/auth/principal.d.ts.map +1 -1
  60. package/dist/auth/principal.js +8 -7
  61. package/dist/auth/principal.js.map +1 -1
  62. package/dist/auth/roles.d.ts +5 -2
  63. package/dist/auth/roles.d.ts.map +1 -1
  64. package/dist/auth/roles.js +1 -0
  65. package/dist/auth/roles.js.map +1 -1
  66. package/dist/auth/schema-names.d.ts +33 -0
  67. package/dist/auth/schema-names.d.ts.map +1 -1
  68. package/dist/auth/schema-names.js +23 -0
  69. package/dist/auth/schema-names.js.map +1 -1
  70. package/dist/auth/scim.d.ts +6 -0
  71. package/dist/auth/scim.d.ts.map +1 -0
  72. package/dist/auth/scim.js +56 -0
  73. package/dist/auth/scim.js.map +1 -0
  74. package/dist/auth/signup.d.ts.map +1 -1
  75. package/dist/auth/signup.js +5 -2
  76. package/dist/auth/signup.js.map +1 -1
  77. package/dist/auth/wire.d.ts +2 -1
  78. package/dist/auth/wire.d.ts.map +1 -1
  79. package/dist/auth/wire.js +4 -1
  80. package/dist/auth/wire.js.map +1 -1
  81. package/dist/billing/cli.d.ts +6 -0
  82. package/dist/billing/cli.d.ts.map +1 -0
  83. package/dist/billing/cli.js +54 -0
  84. package/dist/billing/cli.js.map +1 -0
  85. package/dist/billing/gate.d.ts +13 -0
  86. package/dist/billing/gate.d.ts.map +1 -0
  87. package/dist/billing/gate.js +27 -0
  88. package/dist/billing/gate.js.map +1 -0
  89. package/dist/billing/limits.d.ts +29 -0
  90. package/dist/billing/limits.d.ts.map +1 -0
  91. package/dist/billing/limits.js +69 -0
  92. package/dist/billing/limits.js.map +1 -0
  93. package/dist/billing/notices.d.ts +4 -0
  94. package/dist/billing/notices.d.ts.map +1 -0
  95. package/dist/billing/notices.js +40 -0
  96. package/dist/billing/notices.js.map +1 -0
  97. package/dist/billing/options.d.ts +37 -0
  98. package/dist/billing/options.d.ts.map +1 -0
  99. package/dist/billing/options.js +33 -0
  100. package/dist/billing/options.js.map +1 -0
  101. package/dist/billing/plans.d.ts +50 -0
  102. package/dist/billing/plans.d.ts.map +1 -0
  103. package/dist/billing/plans.js +47 -0
  104. package/dist/billing/plans.js.map +1 -0
  105. package/dist/billing/report.d.ts +26 -0
  106. package/dist/billing/report.d.ts.map +1 -0
  107. package/dist/billing/report.js +53 -0
  108. package/dist/billing/report.js.map +1 -0
  109. package/dist/billing/service.d.ts +20 -0
  110. package/dist/billing/service.d.ts.map +1 -0
  111. package/dist/billing/service.js +29 -0
  112. package/dist/billing/service.js.map +1 -0
  113. package/dist/billing/stripe-plugin.d.ts +14 -0
  114. package/dist/billing/stripe-plugin.d.ts.map +1 -0
  115. package/dist/billing/stripe-plugin.js +39 -0
  116. package/dist/billing/stripe-plugin.js.map +1 -0
  117. package/dist/billing/stripe-setup.d.ts +15 -0
  118. package/dist/billing/stripe-setup.d.ts.map +1 -0
  119. package/dist/billing/stripe-setup.js +73 -0
  120. package/dist/billing/stripe-setup.js.map +1 -0
  121. package/dist/billing/summary.d.ts +59 -0
  122. package/dist/billing/summary.d.ts.map +1 -0
  123. package/dist/billing/summary.js +50 -0
  124. package/dist/billing/summary.js.map +1 -0
  125. package/dist/billing/sync.d.ts +5 -0
  126. package/dist/billing/sync.d.ts.map +1 -0
  127. package/dist/billing/sync.js +35 -0
  128. package/dist/billing/sync.js.map +1 -0
  129. package/dist/billing/usage-sub.d.ts +17 -0
  130. package/dist/billing/usage-sub.d.ts.map +1 -0
  131. package/dist/billing/usage-sub.js +47 -0
  132. package/dist/billing/usage-sub.js.map +1 -0
  133. package/dist/billing/usage.d.ts +28 -0
  134. package/dist/billing/usage.d.ts.map +1 -0
  135. package/dist/billing/usage.js +80 -0
  136. package/dist/billing/usage.js.map +1 -0
  137. package/dist/billing/webhook.d.ts +6 -0
  138. package/dist/billing/webhook.d.ts.map +1 -0
  139. package/dist/billing/webhook.js +41 -0
  140. package/dist/billing/webhook.js.map +1 -0
  141. package/dist/cli-args.d.ts +1 -1
  142. package/dist/cli-args.d.ts.map +1 -1
  143. package/dist/cli-args.js +33 -2
  144. package/dist/cli-args.js.map +1 -1
  145. package/dist/cli.js +6 -0
  146. package/dist/cli.js.map +1 -1
  147. package/dist/config.d.ts +15 -3
  148. package/dist/config.d.ts.map +1 -1
  149. package/dist/config.js +19 -1
  150. package/dist/config.js.map +1 -1
  151. package/dist/db/schema-alerts.d.ts +2 -0
  152. package/dist/db/schema-alerts.d.ts.map +1 -0
  153. package/dist/db/schema-alerts.js +15 -0
  154. package/dist/db/schema-alerts.js.map +1 -0
  155. package/dist/db/schema-billing.d.ts +2 -0
  156. package/dist/db/schema-billing.d.ts.map +1 -0
  157. package/dist/db/schema-billing.js +38 -0
  158. package/dist/db/schema-billing.js.map +1 -0
  159. package/dist/db/schema-issues.d.ts +2 -0
  160. package/dist/db/schema-issues.d.ts.map +1 -0
  161. package/dist/db/schema-issues.js +9 -0
  162. package/dist/db/schema-issues.js.map +1 -0
  163. package/dist/db/schema-logs.d.ts +2 -0
  164. package/dist/db/schema-logs.d.ts.map +1 -0
  165. package/dist/db/schema-logs.js +13 -0
  166. package/dist/db/schema-logs.js.map +1 -0
  167. package/dist/db/schema-oauth.d.ts +2 -0
  168. package/dist/db/schema-oauth.d.ts.map +1 -0
  169. package/dist/db/schema-oauth.js +69 -0
  170. package/dist/db/schema-oauth.js.map +1 -0
  171. package/dist/db/schema-saved-move.d.ts +2 -0
  172. package/dist/db/schema-saved-move.d.ts.map +1 -0
  173. package/dist/db/schema-saved-move.js +13 -0
  174. package/dist/db/schema-saved-move.js.map +1 -0
  175. package/dist/db/schema-saved.d.ts +2 -0
  176. package/dist/db/schema-saved.d.ts.map +1 -0
  177. package/dist/db/schema-saved.js +13 -0
  178. package/dist/db/schema-saved.js.map +1 -0
  179. package/dist/db/schema-scim.d.ts +2 -0
  180. package/dist/db/schema-scim.d.ts.map +1 -0
  181. package/dist/db/schema-scim.js +28 -0
  182. package/dist/db/schema-scim.js.map +1 -0
  183. package/dist/db/schema-slos.d.ts +2 -0
  184. package/dist/db/schema-slos.d.ts.map +1 -0
  185. package/dist/db/schema-slos.js +12 -0
  186. package/dist/db/schema-slos.js.map +1 -0
  187. package/dist/db/schema-sourcemaps.d.ts +2 -0
  188. package/dist/db/schema-sourcemaps.d.ts.map +1 -0
  189. package/dist/db/schema-sourcemaps.js +9 -0
  190. package/dist/db/schema-sourcemaps.js.map +1 -0
  191. package/dist/db/schema-tags.d.ts +2 -0
  192. package/dist/db/schema-tags.d.ts.map +1 -0
  193. package/dist/db/schema-tags.js +12 -0
  194. package/dist/db/schema-tags.js.map +1 -0
  195. package/dist/db/schema-team.d.ts +2 -0
  196. package/dist/db/schema-team.d.ts.map +1 -0
  197. package/dist/db/schema-team.js +15 -0
  198. package/dist/db/schema-team.js.map +1 -0
  199. package/dist/db/schema-uptime.d.ts +2 -0
  200. package/dist/db/schema-uptime.d.ts.map +1 -0
  201. package/dist/db/schema-uptime.js +22 -0
  202. package/dist/db/schema-uptime.js.map +1 -0
  203. package/dist/db/schema.d.ts.map +1 -1
  204. package/dist/db/schema.js +30 -0
  205. package/dist/db/schema.js.map +1 -1
  206. package/dist/http/http.d.ts +5 -1
  207. package/dist/http/http.d.ts.map +1 -1
  208. package/dist/http/http.js +5 -1
  209. package/dist/http/http.js.map +1 -1
  210. package/dist/jobs.d.ts +1 -1
  211. package/dist/jobs.d.ts.map +1 -1
  212. package/dist/jobs.js +15 -2
  213. package/dist/jobs.js.map +1 -1
  214. package/dist/mail/emails-billing.d.ts +17 -0
  215. package/dist/mail/emails-billing.d.ts.map +1 -0
  216. package/dist/mail/emails-billing.js +36 -0
  217. package/dist/mail/emails-billing.js.map +1 -0
  218. package/dist/mail/emails.d.ts +1 -1
  219. package/dist/mail/emails.d.ts.map +1 -1
  220. package/dist/mail/emails.js +7 -4
  221. package/dist/mail/emails.js.map +1 -1
  222. package/dist/mail/mailer.d.ts +1 -1
  223. package/dist/mail/mailer.d.ts.map +1 -1
  224. package/dist/mail/samples.d.ts.map +1 -1
  225. package/dist/mail/samples.js +17 -0
  226. package/dist/mail/samples.js.map +1 -1
  227. package/dist/mail/templates.d.ts +1 -1
  228. package/dist/mail/templates.d.ts.map +1 -1
  229. package/dist/notify/digest-data.d.ts.map +1 -1
  230. package/dist/notify/digest-data.js +2 -2
  231. package/dist/notify/digest-data.js.map +1 -1
  232. package/dist/notify/digest.d.ts.map +1 -1
  233. package/dist/notify/digest.js +4 -1
  234. package/dist/notify/digest.js.map +1 -1
  235. package/dist/notify/team-describe.d.ts.map +1 -1
  236. package/dist/notify/team-describe.js +14 -0
  237. package/dist/notify/team-describe.js.map +1 -1
  238. package/dist/repo/alert-events.d.ts +38 -0
  239. package/dist/repo/alert-events.d.ts.map +1 -0
  240. package/dist/repo/alert-events.js +29 -0
  241. package/dist/repo/alert-events.js.map +1 -0
  242. package/dist/repo/alerts.d.ts +14 -44
  243. package/dist/repo/alerts.d.ts.map +1 -1
  244. package/dist/repo/alerts.js +35 -13
  245. package/dist/repo/alerts.js.map +1 -1
  246. package/dist/repo/audit.d.ts +19 -1
  247. package/dist/repo/audit.d.ts.map +1 -1
  248. package/dist/repo/audit.js +24 -2
  249. package/dist/repo/audit.js.map +1 -1
  250. package/dist/repo/auth-prune.d.ts +1 -1
  251. package/dist/repo/auth-prune.d.ts.map +1 -1
  252. package/dist/repo/auth-prune.js +13 -1
  253. package/dist/repo/auth-prune.js.map +1 -1
  254. package/dist/repo/billing.d.ts +30 -0
  255. package/dist/repo/billing.d.ts.map +1 -0
  256. package/dist/repo/billing.js +47 -0
  257. package/dist/repo/billing.js.map +1 -0
  258. package/dist/repo/grants.d.ts +30 -0
  259. package/dist/repo/grants.d.ts.map +1 -0
  260. package/dist/repo/grants.js +57 -0
  261. package/dist/repo/grants.js.map +1 -0
  262. package/dist/repo/issues.d.ts +15 -0
  263. package/dist/repo/issues.d.ts.map +1 -0
  264. package/dist/repo/issues.js +31 -0
  265. package/dist/repo/issues.js.map +1 -0
  266. package/dist/repo/keys.d.ts +51 -0
  267. package/dist/repo/keys.d.ts.map +1 -0
  268. package/dist/repo/keys.js +58 -0
  269. package/dist/repo/keys.js.map +1 -0
  270. package/dist/repo/log-retention.d.ts +8 -0
  271. package/dist/repo/log-retention.d.ts.map +1 -0
  272. package/dist/repo/log-retention.js +20 -0
  273. package/dist/repo/log-retention.js.map +1 -0
  274. package/dist/repo/metric-read.d.ts +2 -0
  275. package/dist/repo/metric-read.d.ts.map +1 -1
  276. package/dist/repo/metric-read.js +5 -1
  277. package/dist/repo/metric-read.js.map +1 -1
  278. package/dist/repo/metric-write.d.ts.map +1 -1
  279. package/dist/repo/metric-write.js +3 -2
  280. package/dist/repo/metric-write.js.map +1 -1
  281. package/dist/repo/orgs.d.ts +2 -0
  282. package/dist/repo/orgs.d.ts.map +1 -1
  283. package/dist/repo/orgs.js +5 -1
  284. package/dist/repo/orgs.js.map +1 -1
  285. package/dist/repo/project-roles.d.ts +28 -0
  286. package/dist/repo/project-roles.d.ts.map +1 -0
  287. package/dist/repo/project-roles.js +39 -0
  288. package/dist/repo/project-roles.js.map +1 -0
  289. package/dist/repo/projects.d.ts +3 -22
  290. package/dist/repo/projects.d.ts.map +1 -1
  291. package/dist/repo/projects.js +4 -29
  292. package/dist/repo/projects.js.map +1 -1
  293. package/dist/repo/saved.d.ts +9 -0
  294. package/dist/repo/saved.d.ts.map +1 -0
  295. package/dist/repo/saved.js +29 -0
  296. package/dist/repo/saved.js.map +1 -0
  297. package/dist/repo/scim-tokens.d.ts +20 -0
  298. package/dist/repo/scim-tokens.d.ts.map +1 -0
  299. package/dist/repo/scim-tokens.js +32 -0
  300. package/dist/repo/scim-tokens.js.map +1 -0
  301. package/dist/repo/services.d.ts.map +1 -1
  302. package/dist/repo/services.js +2 -1
  303. package/dist/repo/services.js.map +1 -1
  304. package/dist/repo/settings.d.ts +30 -0
  305. package/dist/repo/settings.d.ts.map +1 -0
  306. package/dist/repo/settings.js +55 -0
  307. package/dist/repo/settings.js.map +1 -0
  308. package/dist/repo/slos.d.ts +10 -0
  309. package/dist/repo/slos.d.ts.map +1 -0
  310. package/dist/repo/slos.js +27 -0
  311. package/dist/repo/slos.js.map +1 -0
  312. package/dist/repo/sourcemaps.d.ts +9 -0
  313. package/dist/repo/sourcemaps.d.ts.map +1 -0
  314. package/dist/repo/sourcemaps.js +34 -0
  315. package/dist/repo/sourcemaps.js.map +1 -0
  316. package/dist/repo/tags.d.ts +11 -0
  317. package/dist/repo/tags.d.ts.map +1 -0
  318. package/dist/repo/tags.js +33 -0
  319. package/dist/repo/tags.js.map +1 -0
  320. package/dist/repo/trace-read.d.ts.map +1 -1
  321. package/dist/repo/trace-read.js +3 -1
  322. package/dist/repo/trace-read.js.map +1 -1
  323. package/dist/repo/trace-write.d.ts +1 -1
  324. package/dist/repo/trace-write.d.ts.map +1 -1
  325. package/dist/repo/trace-write.js +11 -5
  326. package/dist/repo/trace-write.js.map +1 -1
  327. package/dist/repo/uptime.d.ts +21 -0
  328. package/dist/repo/uptime.d.ts.map +1 -0
  329. package/dist/repo/uptime.js +53 -0
  330. package/dist/repo/uptime.js.map +1 -0
  331. package/dist/routes/alerts.d.ts.map +1 -1
  332. package/dist/routes/alerts.js +65 -66
  333. package/dist/routes/alerts.js.map +1 -1
  334. package/dist/routes/apps.d.ts +20 -0
  335. package/dist/routes/apps.d.ts.map +1 -0
  336. package/dist/routes/apps.js +53 -0
  337. package/dist/routes/apps.js.map +1 -0
  338. package/dist/routes/billing.d.ts +4 -0
  339. package/dist/routes/billing.d.ts.map +1 -0
  340. package/dist/routes/billing.js +51 -0
  341. package/dist/routes/billing.js.map +1 -0
  342. package/dist/routes/data.d.ts.map +1 -1
  343. package/dist/routes/data.js +16 -7
  344. package/dist/routes/data.js.map +1 -1
  345. package/dist/routes/index.d.ts.map +1 -1
  346. package/dist/routes/index.js +24 -0
  347. package/dist/routes/index.js.map +1 -1
  348. package/dist/routes/ingest.d.ts +3 -1
  349. package/dist/routes/ingest.d.ts.map +1 -1
  350. package/dist/routes/ingest.js +55 -14
  351. package/dist/routes/ingest.js.map +1 -1
  352. package/dist/routes/issues.d.ts +4 -0
  353. package/dist/routes/issues.d.ts.map +1 -0
  354. package/dist/routes/issues.js +34 -0
  355. package/dist/routes/issues.js.map +1 -0
  356. package/dist/routes/keys.d.ts +4 -0
  357. package/dist/routes/keys.d.ts.map +1 -0
  358. package/dist/routes/keys.js +70 -0
  359. package/dist/routes/keys.js.map +1 -0
  360. package/dist/routes/mcp.d.ts.map +1 -1
  361. package/dist/routes/mcp.js +60 -23
  362. package/dist/routes/mcp.js.map +1 -1
  363. package/dist/routes/me.d.ts.map +1 -1
  364. package/dist/routes/me.js +15 -5
  365. package/dist/routes/me.js.map +1 -1
  366. package/dist/routes/metrics.js +1 -1
  367. package/dist/routes/metrics.js.map +1 -1
  368. package/dist/routes/models.d.ts +7 -1
  369. package/dist/routes/models.d.ts.map +1 -1
  370. package/dist/routes/models.js +55 -19
  371. package/dist/routes/models.js.map +1 -1
  372. package/dist/routes/notify.d.ts.map +1 -1
  373. package/dist/routes/notify.js +3 -1
  374. package/dist/routes/notify.js.map +1 -1
  375. package/dist/routes/oauth-meta.d.ts +7 -0
  376. package/dist/routes/oauth-meta.d.ts.map +1 -0
  377. package/dist/routes/oauth-meta.js +52 -0
  378. package/dist/routes/oauth-meta.js.map +1 -0
  379. package/dist/routes/orgs.d.ts.map +1 -1
  380. package/dist/routes/orgs.js +23 -7
  381. package/dist/routes/orgs.js.map +1 -1
  382. package/dist/routes/projects.d.ts.map +1 -1
  383. package/dist/routes/projects.js +31 -22
  384. package/dist/routes/projects.js.map +1 -1
  385. package/dist/routes/saved.d.ts +4 -0
  386. package/dist/routes/saved.d.ts.map +1 -0
  387. package/dist/routes/saved.js +56 -0
  388. package/dist/routes/saved.js.map +1 -0
  389. package/dist/routes/scim.d.ts +4 -0
  390. package/dist/routes/scim.d.ts.map +1 -0
  391. package/dist/routes/scim.js +37 -0
  392. package/dist/routes/scim.js.map +1 -0
  393. package/dist/routes/search.d.ts.map +1 -1
  394. package/dist/routes/search.js +8 -5
  395. package/dist/routes/search.js.map +1 -1
  396. package/dist/routes/settings.d.ts +4 -0
  397. package/dist/routes/settings.d.ts.map +1 -0
  398. package/dist/routes/settings.js +39 -0
  399. package/dist/routes/settings.js.map +1 -0
  400. package/dist/routes/shares.d.ts +3 -0
  401. package/dist/routes/shares.d.ts.map +1 -1
  402. package/dist/routes/shares.js +28 -15
  403. package/dist/routes/shares.js.map +1 -1
  404. package/dist/routes/slos.d.ts +4 -0
  405. package/dist/routes/slos.d.ts.map +1 -0
  406. package/dist/routes/slos.js +76 -0
  407. package/dist/routes/slos.js.map +1 -0
  408. package/dist/routes/sourcemaps.d.ts +9 -0
  409. package/dist/routes/sourcemaps.d.ts.map +1 -0
  410. package/dist/routes/sourcemaps.js +54 -0
  411. package/dist/routes/sourcemaps.js.map +1 -0
  412. package/dist/routes/status.d.ts +4 -0
  413. package/dist/routes/status.d.ts.map +1 -0
  414. package/dist/routes/status.js +60 -0
  415. package/dist/routes/status.js.map +1 -0
  416. package/dist/routes/tags.d.ts +4 -0
  417. package/dist/routes/tags.d.ts.map +1 -0
  418. package/dist/routes/tags.js +81 -0
  419. package/dist/routes/tags.js.map +1 -0
  420. package/dist/routes/uptime.d.ts +4 -0
  421. package/dist/routes/uptime.d.ts.map +1 -0
  422. package/dist/routes/uptime.js +71 -0
  423. package/dist/routes/uptime.js.map +1 -0
  424. package/dist/scale-exec.d.ts +3 -2
  425. package/dist/scale-exec.d.ts.map +1 -1
  426. package/dist/scale-exec.js +5 -4
  427. package/dist/scale-exec.js.map +1 -1
  428. package/dist/server.d.ts.map +1 -1
  429. package/dist/server.js +30 -7
  430. package/dist/server.js.map +1 -1
  431. package/dist/settle.d.ts +6 -3
  432. package/dist/settle.d.ts.map +1 -1
  433. package/dist/settle.js +11 -8
  434. package/dist/settle.js.map +1 -1
  435. package/dist/telemetry/ch/admin.d.ts +8 -4
  436. package/dist/telemetry/ch/admin.d.ts.map +1 -1
  437. package/dist/telemetry/ch/admin.js +33 -16
  438. package/dist/telemetry/ch/admin.js.map +1 -1
  439. package/dist/telemetry/ch/queue.d.ts +6 -4
  440. package/dist/telemetry/ch/queue.d.ts.map +1 -1
  441. package/dist/telemetry/ch/queue.js +13 -9
  442. package/dist/telemetry/ch/queue.js.map +1 -1
  443. package/dist/telemetry/ch/read.d.ts.map +1 -1
  444. package/dist/telemetry/ch/read.js +3 -1
  445. package/dist/telemetry/ch/read.js.map +1 -1
  446. package/dist/telemetry/ch/rebuild.d.ts +23 -0
  447. package/dist/telemetry/ch/rebuild.d.ts.map +1 -0
  448. package/dist/telemetry/ch/rebuild.js +65 -0
  449. package/dist/telemetry/ch/rebuild.js.map +1 -0
  450. package/dist/telemetry/ch/schema-facts.d.ts +1 -1
  451. package/dist/telemetry/ch/schema-facts.d.ts.map +1 -1
  452. package/dist/telemetry/ch/schema-facts.js +8 -2
  453. package/dist/telemetry/ch/schema-facts.js.map +1 -1
  454. package/dist/telemetry/ch/schema-raw.d.ts +2 -0
  455. package/dist/telemetry/ch/schema-raw.d.ts.map +1 -1
  456. package/dist/telemetry/ch/schema-raw.js +2 -0
  457. package/dist/telemetry/ch/schema-raw.js.map +1 -1
  458. package/dist/telemetry/ch/schema.d.ts.map +1 -1
  459. package/dist/telemetry/ch/schema.js +2 -2
  460. package/dist/telemetry/ch/schema.js.map +1 -1
  461. package/dist/telemetry/ch/settle-pool.d.ts +24 -0
  462. package/dist/telemetry/ch/settle-pool.d.ts.map +1 -0
  463. package/dist/telemetry/ch/settle-pool.js +58 -0
  464. package/dist/telemetry/ch/settle-pool.js.map +1 -0
  465. package/dist/telemetry/ch/settle-rows.d.ts +7 -4
  466. package/dist/telemetry/ch/settle-rows.d.ts.map +1 -1
  467. package/dist/telemetry/ch/settle-rows.js +15 -8
  468. package/dist/telemetry/ch/settle-rows.js.map +1 -1
  469. package/dist/telemetry/ch/settle-work.d.ts +21 -0
  470. package/dist/telemetry/ch/settle-work.d.ts.map +1 -0
  471. package/dist/telemetry/ch/settle-work.js +52 -0
  472. package/dist/telemetry/ch/settle-work.js.map +1 -0
  473. package/dist/telemetry/ch/settle-worker.d.ts +2 -0
  474. package/dist/telemetry/ch/settle-worker.d.ts.map +1 -0
  475. package/dist/telemetry/ch/settle-worker.js +10 -0
  476. package/dist/telemetry/ch/settle-worker.js.map +1 -0
  477. package/dist/telemetry/ch/settle.d.ts +17 -3
  478. package/dist/telemetry/ch/settle.d.ts.map +1 -1
  479. package/dist/telemetry/ch/settle.js +15 -56
  480. package/dist/telemetry/ch/settle.js.map +1 -1
  481. package/dist/telemetry/ch/store.d.ts +12 -1
  482. package/dist/telemetry/ch/store.d.ts.map +1 -1
  483. package/dist/telemetry/ch/store.js +37 -8
  484. package/dist/telemetry/ch/store.js.map +1 -1
  485. package/dist/telemetry/ch/util.d.ts +7 -0
  486. package/dist/telemetry/ch/util.d.ts.map +1 -1
  487. package/dist/telemetry/ch/util.js +4 -0
  488. package/dist/telemetry/ch/util.js.map +1 -1
  489. package/dist/telemetry/ch/write.d.ts +2 -1
  490. package/dist/telemetry/ch/write.d.ts.map +1 -1
  491. package/dist/telemetry/ch/write.js +10 -10
  492. package/dist/telemetry/ch/write.js.map +1 -1
  493. package/dist/telemetry/index.d.ts +4 -1
  494. package/dist/telemetry/index.d.ts.map +1 -1
  495. package/dist/telemetry/index.js +8 -3
  496. package/dist/telemetry/index.js.map +1 -1
  497. package/dist/telemetry/pg-store.d.ts.map +1 -1
  498. package/dist/telemetry/pg-store.js +13 -8
  499. package/dist/telemetry/pg-store.js.map +1 -1
  500. package/dist/telemetry/store.d.ts +13 -2
  501. package/dist/telemetry/store.d.ts.map +1 -1
  502. package/dist/uptime/headers.d.ts +6 -0
  503. package/dist/uptime/headers.d.ts.map +1 -0
  504. package/dist/uptime/headers.js +25 -0
  505. package/dist/uptime/headers.js.map +1 -0
  506. package/dist/uptime/run.d.ts +9 -0
  507. package/dist/uptime/run.d.ts.map +1 -0
  508. package/dist/uptime/run.js +40 -0
  509. package/dist/uptime/run.js.map +1 -0
  510. package/package.json +9 -5
  511. package/dist/alerts/notify.d.ts +0 -28
  512. package/dist/alerts/notify.d.ts.map +0 -1
  513. package/dist/alerts/notify.js +0 -52
  514. package/dist/alerts/notify.js.map +0 -1
package/dist/cli-args.js CHANGED
@@ -2,19 +2,30 @@ import { parseArgs } from "node:util";
2
2
  export const USAGE = `wizelens-cloud: the WizeLens service for many teams.
3
3
 
4
4
  Usage: wizelens-cloud [options]
5
+ wizelens-cloud plan set <org> <plan> [--gb <n>] [--retention-days <n>]
6
+ wizelens-cloud stripe-setup --stripe-secret-key <key>
5
7
 
6
8
  --database <url> postgres://..., pglite:<folder>, or memory.
7
9
  Default pglite:./.wizelens-cloud. (DATABASE_URL)
8
10
  --clickhouse <url> Scale mode: telemetry in ClickHouse, (WIZELENS_CLOUD_CLICKHOUSE_URL)
9
11
  http://user:pass@host:8123/database.
12
+ --settle-workers <n> Threads that settle new traces. 0 uses the (WIZELENS_CLOUD_SETTLE_WORKERS)
13
+ main thread. Default CPUs - 1, at most 4.
10
14
  --port <n> Default 5970. (PORT)
11
15
  --host <addr> Default 0.0.0.0. (WIZELENS_CLOUD_HOST)
12
16
  --public-url <url> The address people use, for links. (WIZELENS_CLOUD_PUBLIC_URL)
17
+ --mcp-url <url> Another origin your proxy sends to MCP, (WIZELENS_CLOUD_MCP_URL)
18
+ e.g. https://mcp.example.com.
13
19
  --signup <invite|open> Who can make an account. Default invite. (WIZELENS_CLOUD_SIGNUP)
14
20
  --retention-days <n> Default for new organizations. Default 30. (WIZELENS_CLOUD_RETENTION_DAYS)
15
21
  --ingest-per-minute <n> Ingest calls per key per minute. Default (WIZELENS_CLOUD_INGEST_PER_MINUTE)
16
22
  1200.
17
- --allow-private-webhooks Let alert webhooks reach private addresses. (WIZELENS_CLOUD_ALLOW_PRIVATE_WEBHOOKS=1)
23
+ --slow-query-ms <n> A database call this slow is slow. Default (WIZELENS_CLOUD_SLOW_QUERY_MS)
24
+ 100. Projects can set their own.
25
+ --n-plus-one <n> Similar calls in a request that make an (WIZELENS_CLOUD_N_PLUS_ONE)
26
+ N+1. Default 5.
27
+ --allow-private-webhooks Let alert webhooks and uptime checks reach (WIZELENS_CLOUD_ALLOW_PRIVATE_WEBHOOKS=1)
28
+ private addresses.
18
29
  --auth-secret <text> Signs sessions, encrypts 2FA secrets. 32+ (WIZELENS_CLOUD_AUTH_SECRET)
19
30
  characters; "2:new,1:old" rotates.
20
31
  Required with Postgres.
@@ -36,7 +47,13 @@ Usage: wizelens-cloud [options]
36
47
  --sso-origins <list> Identity provider origins for OIDC single (WIZELENS_CLOUD_SSO_ORIGINS)
37
48
  sign-on, comma separated, for example
38
49
  https://acme.okta.com. SAML needs none.
39
- --help Show this help.
50
+ --stripe-secret-key <key> Turns billing on (sk_... or rk_...). (WIZELENS_CLOUD_STRIPE_SECRET_KEY)
51
+ Without it, every organization is unlimited.
52
+ --stripe-webhook-secret <s> The Stripe webhook's whsec_ secret. (WIZELENS_CLOUD_STRIPE_WEBHOOK_SECRET)
53
+ Webhook URL: <public-url>/_wizelens/api/auth/stripe/webhook
54
+ --stripe-prices <json> Price and meter ids, as stripe-setup (WIZELENS_CLOUD_STRIPE_PRICES)
55
+ prints them.
56
+ --help Show this help.
40
57
  `;
41
58
  const int = (v) => (v && /^\d+$/.test(v) ? Number(v) : undefined);
42
59
  const signupOf = (v) => (v === "open" || v === "invite" ? v : undefined);
@@ -46,12 +63,16 @@ const flag = (v) => (v === "1" || v === "true" ? true : v === "0" || v === "fals
46
63
  const OPTIONS = {
47
64
  database: { type: "string" },
48
65
  clickhouse: { type: "string" },
66
+ "settle-workers": { type: "string" },
49
67
  port: { type: "string" },
50
68
  host: { type: "string" },
51
69
  "public-url": { type: "string" },
70
+ "mcp-url": { type: "string" },
52
71
  signup: { type: "string" },
53
72
  "retention-days": { type: "string" },
54
73
  "ingest-per-minute": { type: "string" },
74
+ "slow-query-ms": { type: "string" },
75
+ "n-plus-one": { type: "string" },
55
76
  "allow-private-webhooks": { type: "boolean" },
56
77
  "auth-secret": { type: "string" },
57
78
  "smtp-url": { type: "string" },
@@ -64,6 +85,9 @@ const OPTIONS = {
64
85
  "check-pwned-passwords": { type: "boolean" },
65
86
  "no-check-pwned-passwords": { type: "boolean" },
66
87
  "sso-origins": { type: "string" },
88
+ "stripe-secret-key": { type: "string" },
89
+ "stripe-webhook-secret": { type: "string" },
90
+ "stripe-prices": { type: "string" },
67
91
  help: { type: "boolean", short: "h" },
68
92
  };
69
93
  const pwnedOf = (a, env) => a["no-check-pwned-passwords"] ? false : (a["check-pwned-passwords"] ?? flag(env.WIZELENS_CLOUD_CHECK_PWNED));
@@ -75,12 +99,16 @@ export function optionsFromArgs(argv, env) {
75
99
  return {
76
100
  database: a.database ?? env.DATABASE_URL,
77
101
  clickhouseUrl: text(a.clickhouse, env.WIZELENS_CLOUD_CLICKHOUSE_URL),
102
+ settleWorkers: int(a["settle-workers"] ?? env.WIZELENS_CLOUD_SETTLE_WORKERS),
78
103
  port: int(a.port ?? env.PORT),
79
104
  host: a.host ?? env.WIZELENS_CLOUD_HOST,
80
105
  publicUrl: text(a["public-url"], env.WIZELENS_CLOUD_PUBLIC_URL),
106
+ mcpUrl: text(a["mcp-url"], env.WIZELENS_CLOUD_MCP_URL),
81
107
  signup: signupOf(a.signup ?? env.WIZELENS_CLOUD_SIGNUP),
82
108
  retentionDays: int(a["retention-days"] ?? env.WIZELENS_CLOUD_RETENTION_DAYS),
83
109
  ingestPerMinute: int(a["ingest-per-minute"] ?? env.WIZELENS_CLOUD_INGEST_PER_MINUTE),
110
+ slowQueryMs: int(a["slow-query-ms"] ?? env.WIZELENS_CLOUD_SLOW_QUERY_MS),
111
+ nPlusOneThreshold: int(a["n-plus-one"] ?? env.WIZELENS_CLOUD_N_PLUS_ONE),
84
112
  allowPrivateWebhooks: a["allow-private-webhooks"] ?? env.WIZELENS_CLOUD_ALLOW_PRIVATE_WEBHOOKS === "1",
85
113
  authSecret: text(a["auth-secret"], env.WIZELENS_CLOUD_AUTH_SECRET),
86
114
  smtpUrl: text(a["smtp-url"], env.WIZELENS_CLOUD_SMTP_URL),
@@ -92,6 +120,9 @@ export function optionsFromArgs(argv, env) {
92
120
  setupToken: text(a["setup-token"], env.WIZELENS_CLOUD_SETUP_TOKEN),
93
121
  checkPwnedPasswords: pwnedOf(a, env),
94
122
  ssoOrigins: list(text(a["sso-origins"], env.WIZELENS_CLOUD_SSO_ORIGINS)),
123
+ stripeSecretKey: text(a["stripe-secret-key"], env.WIZELENS_CLOUD_STRIPE_SECRET_KEY),
124
+ stripeWebhookSecret: text(a["stripe-webhook-secret"], env.WIZELENS_CLOUD_STRIPE_WEBHOOK_SECRET),
125
+ stripePrices: text(a["stripe-prices"], env.WIZELENS_CLOUD_STRIPE_PRICES),
95
126
  };
96
127
  }
97
128
  //# sourceMappingURL=cli-args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCpB,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtF,MAAM,QAAQ,GAAG,CAAC,CAAqB,EAA0B,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,MAAM,IAAI,GAAG,CAAC,GAAG,CAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1F,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3F,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE5H,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvC,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC7C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5C,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEX,MAAM,OAAO,GAAG,CAAC,CAA8E,EAAE,GAAsB,EAAE,EAAE,CACzH,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE/G,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,GAAsB;IACpE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,YAAY;QACxC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,6BAA6B,CAAC;QACpE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,mBAAmB;QACvC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,yBAAyB,CAAC;QAC/D,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,qBAAqB,CAAC;QACvD,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,6BAA6B,CAAC;QAC5E,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,gCAAgC,CAAC;QACpF,oBAAoB,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,qCAAqC,KAAK,GAAG;QACtG,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,0BAA0B,CAAC;QAClE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,uBAAuB,CAAC;QACzD,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,6BAA6B,CAAC;QAC1E,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,GAAG,CAAC,oCAAoC,CAAC;QAC/F,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,wBAAwB,CAAC;QAC5D,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,4BAA4B,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,KAAK,GAAG;QACtE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,0BAA0B,CAAC;QAClE,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { optionsFromArgs, USAGE } from "./cli-args.js";
3
3
  import { CLOUD_VERSION, createCloud } from "./server.js";
4
4
  import { copyMain } from "./copy-cli.js";
5
+ import { planMain, stripeSetupMain } from "./billing/cli.js";
5
6
  function notes(cloud) {
6
7
  const { app } = cloud;
7
8
  const out = [];
@@ -21,6 +22,10 @@ function notes(cloud) {
21
22
  async function main() {
22
23
  if (process.argv[2] === "copy-telemetry")
23
24
  return copyMain(process.argv.slice(3));
25
+ if (process.argv[2] === "plan")
26
+ return planMain(process.argv.slice(3), process.env);
27
+ if (process.argv[2] === "stripe-setup")
28
+ return stripeSetupMain(process.argv.slice(3), process.env);
24
29
  const options = optionsFromArgs(process.argv.slice(2), process.env);
25
30
  if (options === "help")
26
31
  return void process.stdout.write(USAGE);
@@ -35,6 +40,7 @@ async function main() {
35
40
  ` Database ${db}`,
36
41
  ` Telemetry ${cloud.app.telemetry.kind === "clickhouse" ? "ClickHouse" : "the database above"}`,
37
42
  ` Mail ${{ resend: "Resend", smtp: "SMTP", test: "test sender", log: "log only" }[cloud.app.mailer.via]}`,
43
+ ` Billing ${cloud.app.billing.on ? "Stripe (plans and limits on)" : "off (every organization is unlimited)"}`,
38
44
  ...notes(cloud),
39
45
  ].join("\n"));
40
46
  const stop = () => void cloud.close().then(() => process.exit(0));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,16 +1,21 @@
1
+ import { type BillingConfig, type BillingOptions } from "./billing/options.js";
1
2
  import type { Mail } from "./mail/mailer.js";
2
3
  export type SignupMode = "open" | "invite";
3
- export interface CloudOptions {
4
+ export interface CloudOptions extends BillingOptions {
4
5
  /** "postgres://...", "pglite:<folder>", or "memory". Default "pglite:./.wizelens-cloud". */
5
6
  database?: string;
6
7
  /** Scale mode: telemetry in ClickHouse, `http(s)://user:password@host:8123/database`. Accounts stay in `database`. */
7
8
  clickhouseUrl?: string;
9
+ /** Scale mode: worker threads that settle new traces. 0 settles in the main thread. Default: one less than the CPUs, at most 4. */
10
+ settleWorkers?: number;
8
11
  /** Default 5970. 0 picks a free port. */
9
12
  port?: number;
10
13
  /** Default "0.0.0.0". */
11
14
  host?: string;
12
15
  /** The address people use, for links in invites and shares. Default http://localhost:<port>. */
13
16
  publicUrl?: string;
17
+ /** Another address agents use for MCP only, for example https://mcp.wizelens.com, when a proxy sends it to `/_wizelens/mcp`. */
18
+ mcpUrl?: string;
14
19
  /** "invite": only the first account and invited people can sign up. "open": anyone can. Default "invite". */
15
20
  signup?: SignupMode;
16
21
  /** Default retention for new organizations, in days. Default 30. */
@@ -19,8 +24,10 @@ export interface CloudOptions {
19
24
  ingestPerMinute?: number;
20
25
  /** How often alert rules run, in ms. Default 60000. */
21
26
  alertIntervalMs?: number;
22
- /** Let alert webhooks call private and local addresses, and plain http. For self-hosting on a private network. Default false. */
27
+ /** Let alert webhooks and uptime checks call private and local addresses (webhooks: also plain http). For self-hosting on a private network. Default false. */
23
28
  allowPrivateWebhooks?: boolean;
29
+ /** PagerDuty's Events API URL; tests point it at a local server. */
30
+ pagerDutyUrl?: string;
24
31
  /** Outgoing mail: "smtp://user:pass@host:587" (STARTTLS) or "smtps://user:pass@host:465". Without it, mail is written to the log. */
25
32
  smtpUrl?: string;
26
33
  /** Outgoing mail through the Resend API (a `re_` key). Used in place of `smtpUrl`. */
@@ -42,6 +49,10 @@ export interface CloudOptions {
42
49
  /** Identity provider origins for OIDC single sign-on, for example https://acme.okta.com. The cloud fetches OIDC settings only from these. */
43
50
  ssoOrigins?: string[];
44
51
  redactKeys?: string[];
52
+ /** A database call this slow or slower counts as slow, in ms. Default 100. Projects can set their own. */
53
+ slowQueryMs?: number;
54
+ /** This many similar calls in one request is an N+1. Default 5. Projects can set their own. */
55
+ nPlusOneThreshold?: number;
45
56
  uiDir?: string;
46
57
  /** For tests: the clock, the HTTP client alerts use, and a mail sender in place of SMTP. */
47
58
  now?: () => number;
@@ -50,9 +61,10 @@ export interface CloudOptions {
50
61
  /** For tests: false keeps background jobs off, so a test runs them itself. Default true. */
51
62
  jobs?: boolean;
52
63
  }
53
- type Optional = "uiDir" | "clickhouseUrl" | "publicUrl" | "smtpUrl" | "resendApiKey" | "resendWebhookSecret" | "mailReplyTo" | "sendMail" | "authSecret" | "setupToken" | "checkPwnedPasswords";
64
+ type Optional = "stripeSecretKey" | "stripeWebhookSecret" | "stripePrices" | "stripeClient" | "uiDir" | "clickhouseUrl" | "publicUrl" | "mcpUrl" | "smtpUrl" | "resendApiKey" | "resendWebhookSecret" | "mailReplyTo" | "sendMail" | "authSecret" | "setupToken" | "checkPwnedPasswords" | "pagerDutyUrl";
54
65
  export type CloudConfig = Required<Omit<CloudOptions, Optional>> & Pick<CloudOptions, Optional> & {
55
66
  secureCookies: boolean;
67
+ billing: BillingConfig;
56
68
  };
57
69
  export declare function resolveConfig(o?: CloudOptions): CloudConfig;
58
70
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sHAAsH;IACtH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6GAA6G;IAC7G,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iIAAiI;IACjI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qIAAqI;IACrI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iIAAiI;IACjI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0HAA0H;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uHAAuH;IACvH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uIAAuI;IACvI,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6IAA6I;IAC7I,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,4FAA4F;IAC5F,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,QAAQ,GAAG,OAAO,GAAG,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,qBAAqB,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,qBAAqB,CAAC;AAChM,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC;AAqB7H,wBAAgB,aAAa,CAAC,CAAC,GAAE,YAAiB,GAAG,WAAW,CA+B/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAkB,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sHAAsH;IACtH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mIAAmI;IACnI,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gIAAgI;IAChI,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6GAA6G;IAC7G,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+JAA+J;IAC/J,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qIAAqI;IACrI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iIAAiI;IACjI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0HAA0H;IAC1H,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uHAAuH;IACvH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uIAAuI;IACvI,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6IAA6I;IAC7I,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0GAA0G;IAC1G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,4FAA4F;IAC5F,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,QAAQ,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,cAAc,GAAG,cAAc,GAAG,OAAO,GAAG,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,qBAAqB,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAC1S,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC;AA8BrJ,wBAAgB,aAAa,CAAC,CAAC,GAAE,YAAiB,GAAG,WAAW,CAqC/D"}
package/dist/config.js CHANGED
@@ -1,4 +1,6 @@
1
- import { DEFAULT_REDACT_KEYS } from "@wizeworks/lens-core";
1
+ import { availableParallelism } from "node:os";
2
+ import { DEFAULT_REDACT_KEYS, FACT_N_PLUS_ONE, FACT_SLOW_QUERY_MS } from "@wizeworks/lens-core";
3
+ import { resolveBilling } from "./billing/options.js";
2
4
  /** Mail links must use the public address: a link built from the request's Host header could point anywhere. */
3
5
  function checkMail(o) {
4
6
  if ((o.smtpUrl || o.resendApiKey) && !o.publicUrl)
@@ -22,19 +24,32 @@ function ssoOriginsOf(list) {
22
24
  return url.origin;
23
25
  });
24
26
  }
27
+ /** The MCP address as a bare origin: https, or http on this machine only. */
28
+ function mcpUrlOf(o) {
29
+ if (!o.mcpUrl)
30
+ return undefined;
31
+ const url = URL.canParse(o.mcpUrl) ? new URL(o.mcpUrl) : null;
32
+ const local = url?.protocol === "http:" && ["localhost", "127.0.0.1"].includes(url.hostname);
33
+ if (!url || (url.protocol !== "https:" && !local) || url.pathname !== "/" || url.search)
34
+ throw new Error(`--mcp-url: "${o.mcpUrl}" must be an https:// origin, like https://mcp.example.com.`);
35
+ return url.origin;
36
+ }
25
37
  export function resolveConfig(o = {}) {
26
38
  checkMail(o);
27
39
  return {
28
40
  database: o.database ?? "pglite:./.wizelens-cloud",
29
41
  clickhouseUrl: o.clickhouseUrl,
42
+ settleWorkers: o.settleWorkers ?? Math.min(4, availableParallelism() - 1),
30
43
  port: o.port ?? 5970,
31
44
  host: o.host ?? "0.0.0.0",
32
45
  publicUrl: o.publicUrl?.replace(/\/+$/, ""),
46
+ mcpUrl: mcpUrlOf(o),
33
47
  signup: o.signup ?? "invite",
34
48
  retentionDays: o.retentionDays ?? 30,
35
49
  ingestPerMinute: o.ingestPerMinute ?? 1200,
36
50
  alertIntervalMs: o.alertIntervalMs ?? 60_000,
37
51
  allowPrivateWebhooks: o.allowPrivateWebhooks ?? false,
52
+ pagerDutyUrl: o.pagerDutyUrl,
38
53
  smtpUrl: o.smtpUrl,
39
54
  resendApiKey: o.resendApiKey,
40
55
  resendWebhookSecret: o.resendWebhookSecret,
@@ -48,10 +63,13 @@ export function resolveConfig(o = {}) {
48
63
  checkPwnedPasswords: o.checkPwnedPasswords,
49
64
  ssoOrigins: ssoOriginsOf(o.ssoOrigins ?? []),
50
65
  redactKeys: o.redactKeys ?? [...DEFAULT_REDACT_KEYS],
66
+ slowQueryMs: o.slowQueryMs ?? FACT_SLOW_QUERY_MS,
67
+ nPlusOneThreshold: o.nPlusOneThreshold ?? FACT_N_PLUS_ONE,
51
68
  uiDir: o.uiDir,
52
69
  now: o.now ?? Date.now,
53
70
  fetch: o.fetch ?? fetch,
54
71
  secureCookies: !!o.publicUrl?.startsWith("https://"),
72
+ billing: resolveBilling(o),
55
73
  };
56
74
  }
57
75
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ALERTS2_MIGRATION = "\nALTER TABLE alert_rules ADD COLUMN service TEXT NOT NULL DEFAULT '';\nALTER TABLE alert_rules ADD COLUMN endpoint TEXT NOT NULL DEFAULT '';\nALTER TABLE alert_rules ADD COLUMN remind_ms DOUBLE PRECISION NOT NULL DEFAULT 0;\nALTER TABLE alert_rules ADD COLUMN muted_until_ms DOUBLE PRECISION;\nALTER TABLE alert_rules ADD COLUMN ack_ms DOUBLE PRECISION;\nALTER TABLE alert_rules ADD COLUMN last_notified_ms DOUBLE PRECISION;\nCREATE TABLE alert_values (\n rule_id TEXT NOT NULL REFERENCES alert_rules (id) ON DELETE CASCADE, time_ms DOUBLE PRECISION NOT NULL, value DOUBLE PRECISION,\n PRIMARY KEY (rule_id, time_ms)\n);\nCREATE INDEX ix_alert_values_time ON alert_values (time_ms);\n";
2
+ //# sourceMappingURL=schema-alerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-alerts.d.ts","sourceRoot":"","sources":["../../src/db/schema-alerts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,orBAY7B,CAAC"}
@@ -0,0 +1,15 @@
1
+ // Alert rules scoped to a service or endpoint, reminders, mute, acknowledge, and every evaluated value (for the rule's history).
2
+ export const ALERTS2_MIGRATION = `
3
+ ALTER TABLE alert_rules ADD COLUMN service TEXT NOT NULL DEFAULT '';
4
+ ALTER TABLE alert_rules ADD COLUMN endpoint TEXT NOT NULL DEFAULT '';
5
+ ALTER TABLE alert_rules ADD COLUMN remind_ms DOUBLE PRECISION NOT NULL DEFAULT 0;
6
+ ALTER TABLE alert_rules ADD COLUMN muted_until_ms DOUBLE PRECISION;
7
+ ALTER TABLE alert_rules ADD COLUMN ack_ms DOUBLE PRECISION;
8
+ ALTER TABLE alert_rules ADD COLUMN last_notified_ms DOUBLE PRECISION;
9
+ CREATE TABLE alert_values (
10
+ rule_id TEXT NOT NULL REFERENCES alert_rules (id) ON DELETE CASCADE, time_ms DOUBLE PRECISION NOT NULL, value DOUBLE PRECISION,
11
+ PRIMARY KEY (rule_id, time_ms)
12
+ );
13
+ CREATE INDEX ix_alert_values_time ON alert_values (time_ms);
14
+ `;
15
+ //# sourceMappingURL=schema-alerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-alerts.js","sourceRoot":"","sources":["../../src/db/schema-alerts.ts"],"names":[],"mappings":"AAAA,iIAAiI;AACjI,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;CAYhC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const BILLING_MIGRATION = "\nALTER TABLE orgs ADD COLUMN plan TEXT NOT NULL DEFAULT 'unlimited';\nALTER TABLE orgs ADD COLUMN plan_gb DOUBLE PRECISION;\nALTER TABLE orgs ADD COLUMN plan_retention_days INTEGER;\nALTER TABLE orgs ADD COLUMN spend_cap_cents INTEGER;\nALTER TABLE orgs ADD COLUMN stripe_customer_id TEXT;\nALTER TABLE orgs ADD COLUMN overage_subscription_id TEXT;\nALTER TABLE users ADD COLUMN stripe_customer_id TEXT;\nCREATE TABLE subscriptions (\n id TEXT NOT NULL PRIMARY KEY, plan TEXT NOT NULL, reference_id TEXT NOT NULL, stripe_customer_id TEXT, stripe_subscription_id TEXT,\n status TEXT, period_start TIMESTAMPTZ, period_end TIMESTAMPTZ, trial_start TIMESTAMPTZ, trial_end TIMESTAMPTZ,\n cancel_at_period_end BOOLEAN, cancel_at TIMESTAMPTZ, canceled_at TIMESTAMPTZ, ended_at TIMESTAMPTZ, seats INTEGER,\n billing_interval TEXT, stripe_schedule_id TEXT\n);\nCREATE INDEX ix_subscriptions_reference ON subscriptions (reference_id);\nCREATE INDEX ix_subscriptions_stripe ON subscriptions (stripe_subscription_id);\nCREATE TABLE usage_daily (\n org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, day TEXT NOT NULL, bytes DOUBLE PRECISION NOT NULL DEFAULT 0,\n spans DOUBLE PRECISION NOT NULL DEFAULT 0, logs DOUBLE PRECISION NOT NULL DEFAULT 0, points DOUBLE PRECISION NOT NULL DEFAULT 0,\n PRIMARY KEY (org_id, day)\n);\nCREATE TABLE usage_notices (\n org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, month TEXT NOT NULL, kind TEXT NOT NULL, sent_ms DOUBLE PRECISION NOT NULL,\n PRIMARY KEY (org_id, month, kind)\n);\nCREATE TABLE usage_reports (\n org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, day TEXT NOT NULL, gb DOUBLE PRECISION NOT NULL, reported_ms DOUBLE PRECISION NOT NULL,\n PRIMARY KEY (org_id, day)\n);\nCREATE TABLE scim_tokens (\n id TEXT NOT NULL PRIMARY KEY, org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, name TEXT NOT NULL, prefix TEXT NOT NULL,\n token_hash TEXT NOT NULL UNIQUE, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, last_used_ms DOUBLE PRECISION,\n revoked_ms DOUBLE PRECISION\n);\nCREATE INDEX ix_scim_tokens_org ON scim_tokens (org_id);\n";
2
+ //# sourceMappingURL=schema-billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-billing.d.ts","sourceRoot":"","sources":["../../src/db/schema-billing.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,smEAmC7B,CAAC"}
@@ -0,0 +1,38 @@
1
+ // Migration 14: plans, usage per day, and Stripe (names in auth/schema-names.ts). Existing organizations stay unlimited.
2
+ export const BILLING_MIGRATION = `
3
+ ALTER TABLE orgs ADD COLUMN plan TEXT NOT NULL DEFAULT 'unlimited';
4
+ ALTER TABLE orgs ADD COLUMN plan_gb DOUBLE PRECISION;
5
+ ALTER TABLE orgs ADD COLUMN plan_retention_days INTEGER;
6
+ ALTER TABLE orgs ADD COLUMN spend_cap_cents INTEGER;
7
+ ALTER TABLE orgs ADD COLUMN stripe_customer_id TEXT;
8
+ ALTER TABLE orgs ADD COLUMN overage_subscription_id TEXT;
9
+ ALTER TABLE users ADD COLUMN stripe_customer_id TEXT;
10
+ CREATE TABLE subscriptions (
11
+ id TEXT NOT NULL PRIMARY KEY, plan TEXT NOT NULL, reference_id TEXT NOT NULL, stripe_customer_id TEXT, stripe_subscription_id TEXT,
12
+ status TEXT, period_start TIMESTAMPTZ, period_end TIMESTAMPTZ, trial_start TIMESTAMPTZ, trial_end TIMESTAMPTZ,
13
+ cancel_at_period_end BOOLEAN, cancel_at TIMESTAMPTZ, canceled_at TIMESTAMPTZ, ended_at TIMESTAMPTZ, seats INTEGER,
14
+ billing_interval TEXT, stripe_schedule_id TEXT
15
+ );
16
+ CREATE INDEX ix_subscriptions_reference ON subscriptions (reference_id);
17
+ CREATE INDEX ix_subscriptions_stripe ON subscriptions (stripe_subscription_id);
18
+ CREATE TABLE usage_daily (
19
+ org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, day TEXT NOT NULL, bytes DOUBLE PRECISION NOT NULL DEFAULT 0,
20
+ spans DOUBLE PRECISION NOT NULL DEFAULT 0, logs DOUBLE PRECISION NOT NULL DEFAULT 0, points DOUBLE PRECISION NOT NULL DEFAULT 0,
21
+ PRIMARY KEY (org_id, day)
22
+ );
23
+ CREATE TABLE usage_notices (
24
+ org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, month TEXT NOT NULL, kind TEXT NOT NULL, sent_ms DOUBLE PRECISION NOT NULL,
25
+ PRIMARY KEY (org_id, month, kind)
26
+ );
27
+ CREATE TABLE usage_reports (
28
+ org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, day TEXT NOT NULL, gb DOUBLE PRECISION NOT NULL, reported_ms DOUBLE PRECISION NOT NULL,
29
+ PRIMARY KEY (org_id, day)
30
+ );
31
+ CREATE TABLE scim_tokens (
32
+ id TEXT NOT NULL PRIMARY KEY, org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, name TEXT NOT NULL, prefix TEXT NOT NULL,
33
+ token_hash TEXT NOT NULL UNIQUE, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, last_used_ms DOUBLE PRECISION,
34
+ revoked_ms DOUBLE PRECISION
35
+ );
36
+ CREATE INDEX ix_scim_tokens_org ON scim_tokens (org_id);
37
+ `;
38
+ //# sourceMappingURL=schema-billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-billing.js","sourceRoot":"","sources":["../../src/db/schema-billing.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ISSUES_MIGRATION = "\nCREATE TABLE issues (\n project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, kind TEXT NOT NULL, key TEXT NOT NULL,\n status TEXT NOT NULL, until_ms DOUBLE PRECISION, resolved_ms DOUBLE PRECISION, assignee TEXT,\n updated_ms DOUBLE PRECISION NOT NULL, updated_by TEXT NOT NULL, PRIMARY KEY (project_id, kind, key)\n);\n";
2
+ //# sourceMappingURL=schema-issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-issues.d.ts","sourceRoot":"","sources":["../../src/db/schema-issues.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,yVAM5B,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Migration 10: issue states. Error groups and insights a person resolved, ignored, or assigned, per project.
2
+ export const ISSUES_MIGRATION = `
3
+ CREATE TABLE issues (
4
+ project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, kind TEXT NOT NULL, key TEXT NOT NULL,
5
+ status TEXT NOT NULL, until_ms DOUBLE PRECISION, resolved_ms DOUBLE PRECISION, assignee TEXT,
6
+ updated_ms DOUBLE PRECISION NOT NULL, updated_by TEXT NOT NULL, PRIMARY KEY (project_id, kind, key)
7
+ );
8
+ `;
9
+ //# sourceMappingURL=schema-issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-issues.js","sourceRoot":"","sources":["../../src/db/schema-issues.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;CAM/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const LOGS_MIGRATION = "\nALTER TABLE fact_logs ADD COLUMN pattern TEXT NOT NULL DEFAULT '';\nCREATE INDEX ix_fact_logs_pattern ON fact_logs (project_id, pattern, time_ms);\nALTER TABLE projects ADD COLUMN log_retention_days INTEGER;\nALTER TABLE alert_rules ADD COLUMN log_search TEXT NOT NULL DEFAULT '{}';\nCREATE TABLE saved_searches (\n id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, kind TEXT NOT NULL, name TEXT NOT NULL,\n params TEXT NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL\n);\nCREATE INDEX ix_saved_searches_project ON saved_searches (project_id, kind, created_ms);\n";
2
+ //# sourceMappingURL=schema-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-logs.d.ts","sourceRoot":"","sources":["../../src/db/schema-logs.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,6nBAU1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Migration 19: logs as a product. Pattern ids on log facts, log retention per project, log alert searches, and saved searches.
2
+ export const LOGS_MIGRATION = `
3
+ ALTER TABLE fact_logs ADD COLUMN pattern TEXT NOT NULL DEFAULT '';
4
+ CREATE INDEX ix_fact_logs_pattern ON fact_logs (project_id, pattern, time_ms);
5
+ ALTER TABLE projects ADD COLUMN log_retention_days INTEGER;
6
+ ALTER TABLE alert_rules ADD COLUMN log_search TEXT NOT NULL DEFAULT '{}';
7
+ CREATE TABLE saved_searches (
8
+ id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, kind TEXT NOT NULL, name TEXT NOT NULL,
9
+ params TEXT NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL
10
+ );
11
+ CREATE INDEX ix_saved_searches_project ON saved_searches (project_id, kind, created_ms);
12
+ `;
13
+ //# sourceMappingURL=schema-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-logs.js","sourceRoot":"","sources":["../../src/db/schema-logs.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAChI,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;CAU7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const OAUTH_MIGRATION = "\nCREATE TABLE oauth_clients (\n id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL UNIQUE, client_secret TEXT, client_discovery_id TEXT, disabled BOOLEAN,\n skip_consent BOOLEAN, enable_end_session BOOLEAN, subject_type TEXT, scopes JSONB, client_credentials_scopes JSONB,\n user_id TEXT REFERENCES users (id) ON DELETE CASCADE, created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ, name TEXT, uri TEXT, icon TEXT,\n contacts JSONB, tos TEXT, policy TEXT, software_id TEXT, software_version TEXT, software_statement TEXT, redirect_uris JSONB NOT NULL,\n post_logout_redirect_uris JSONB, backchannel_logout_uri TEXT, backchannel_logout_session_required BOOLEAN, token_endpoint_auth_method TEXT,\n application_type TEXT, jwks TEXT, jwks_uri TEXT, grant_types JSONB, response_types JSONB, require_pkce BOOLEAN,\n dpop_bound_access_tokens BOOLEAN, reference_id TEXT, metadata JSONB\n);\nCREATE INDEX oauth_clients_user_id_idx ON oauth_clients (user_id);\nCREATE TABLE oauth_resources (\n id TEXT NOT NULL PRIMARY KEY, identifier TEXT NOT NULL UNIQUE, name TEXT NOT NULL, access_token_ttl INTEGER, refresh_token_ttl INTEGER,\n signing_algorithm TEXT, signing_key_id TEXT, allowed_scopes JSONB, custom_claims JSONB, dpop_bound_access_tokens_required BOOLEAN,\n disabled BOOLEAN, created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ, policy_version INTEGER, metadata JSONB\n);\nCREATE TABLE oauth_client_resources (\n id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,\n resource_id TEXT NOT NULL REFERENCES oauth_resources (identifier) ON DELETE CASCADE, metadata JSONB, created_at TIMESTAMPTZ\n);\nCREATE INDEX oauth_client_resources_client_id_idx ON oauth_client_resources (client_id);\nCREATE INDEX oauth_client_resources_resource_id_idx ON oauth_client_resources (resource_id);\nCREATE UNIQUE INDEX oauth_client_resources_client_id_resource_id_uidx ON oauth_client_resources (client_id, resource_id);\nCREATE TABLE oauth_refresh_tokens (\n id TEXT NOT NULL PRIMARY KEY, token TEXT NOT NULL UNIQUE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,\n session_id TEXT REFERENCES sessions (id) ON DELETE SET NULL, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE,\n reference_id TEXT, authorization_code_id TEXT, resources JSONB, requested_user_info_claims JSONB, expires_at TIMESTAMPTZ NOT NULL,\n created_at TIMESTAMPTZ NOT NULL, revoked TIMESTAMPTZ, rotated_at TIMESTAMPTZ, rotation_replay_response TEXT,\n rotation_replay_expires_at TIMESTAMPTZ, auth_time TIMESTAMPTZ, confirmation JSONB, scopes JSONB NOT NULL\n);\nCREATE INDEX oauth_refresh_tokens_client_id_idx ON oauth_refresh_tokens (client_id);\nCREATE INDEX oauth_refresh_tokens_session_id_idx ON oauth_refresh_tokens (session_id);\nCREATE INDEX oauth_refresh_tokens_user_id_idx ON oauth_refresh_tokens (user_id);\nCREATE INDEX oauth_refresh_tokens_authorization_code_id_idx ON oauth_refresh_tokens (authorization_code_id);\nCREATE INDEX oauth_refresh_tokens_reference_id_idx ON oauth_refresh_tokens (reference_id);\nCREATE TABLE oauth_access_tokens (\n id TEXT NOT NULL PRIMARY KEY, token TEXT NOT NULL UNIQUE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,\n session_id TEXT REFERENCES sessions (id) ON DELETE SET NULL, user_id TEXT REFERENCES users (id) ON DELETE CASCADE, reference_id TEXT,\n authorization_code_id TEXT, resources JSONB, requested_user_info_claims JSONB,\n refresh_id TEXT REFERENCES oauth_refresh_tokens (id) ON DELETE CASCADE, expires_at TIMESTAMPTZ NOT NULL, created_at TIMESTAMPTZ NOT NULL,\n revoked TIMESTAMPTZ, confirmation JSONB, scopes JSONB NOT NULL\n);\nCREATE INDEX oauth_access_tokens_client_id_idx ON oauth_access_tokens (client_id);\nCREATE INDEX oauth_access_tokens_session_id_idx ON oauth_access_tokens (session_id);\nCREATE INDEX oauth_access_tokens_user_id_idx ON oauth_access_tokens (user_id);\nCREATE INDEX oauth_access_tokens_authorization_code_id_idx ON oauth_access_tokens (authorization_code_id);\nCREATE INDEX oauth_access_tokens_refresh_id_idx ON oauth_access_tokens (refresh_id);\nCREATE INDEX oauth_access_tokens_reference_id_idx ON oauth_access_tokens (reference_id);\nCREATE TABLE oauth_consents (\n id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,\n user_id TEXT REFERENCES users (id) ON DELETE CASCADE, reference_id TEXT, resources JSONB, requested_user_info_claims JSONB,\n scopes JSONB NOT NULL, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL\n);\nCREATE INDEX oauth_consents_client_id_idx ON oauth_consents (client_id);\nCREATE INDEX oauth_consents_user_id_idx ON oauth_consents (user_id);\nCREATE INDEX oauth_consents_reference_id_idx ON oauth_consents (reference_id);\nCREATE TABLE oauth_client_assertions (id TEXT NOT NULL PRIMARY KEY, expires_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE oauth_grants (\n id TEXT NOT NULL PRIMARY KEY, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE,\n org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,\n session_id TEXT, all_projects BOOLEAN NOT NULL, project_ids TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL,\n used_ms DOUBLE PRECISION, revoked_ms DOUBLE PRECISION\n);\nCREATE INDEX ix_oauth_grants_user ON oauth_grants (user_id, client_id);\nCREATE INDEX ix_oauth_grants_org ON oauth_grants (org_id);\nCREATE INDEX ix_oauth_grants_session ON oauth_grants (session_id);\n";
2
+ //# sourceMappingURL=schema-oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-oauth.d.ts","sourceRoot":"","sources":["../../src/db/schema-oauth.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,k8KAkE3B,CAAC"}
@@ -0,0 +1,69 @@
1
+ // Migration 9: OAuth for MCP clients (Better Auth's OAuth provider; names in auth/oauth-names.ts) and the grants behind each consent.
2
+ export const OAUTH_MIGRATION = `
3
+ CREATE TABLE oauth_clients (
4
+ id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL UNIQUE, client_secret TEXT, client_discovery_id TEXT, disabled BOOLEAN,
5
+ skip_consent BOOLEAN, enable_end_session BOOLEAN, subject_type TEXT, scopes JSONB, client_credentials_scopes JSONB,
6
+ user_id TEXT REFERENCES users (id) ON DELETE CASCADE, created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ, name TEXT, uri TEXT, icon TEXT,
7
+ contacts JSONB, tos TEXT, policy TEXT, software_id TEXT, software_version TEXT, software_statement TEXT, redirect_uris JSONB NOT NULL,
8
+ post_logout_redirect_uris JSONB, backchannel_logout_uri TEXT, backchannel_logout_session_required BOOLEAN, token_endpoint_auth_method TEXT,
9
+ application_type TEXT, jwks TEXT, jwks_uri TEXT, grant_types JSONB, response_types JSONB, require_pkce BOOLEAN,
10
+ dpop_bound_access_tokens BOOLEAN, reference_id TEXT, metadata JSONB
11
+ );
12
+ CREATE INDEX oauth_clients_user_id_idx ON oauth_clients (user_id);
13
+ CREATE TABLE oauth_resources (
14
+ id TEXT NOT NULL PRIMARY KEY, identifier TEXT NOT NULL UNIQUE, name TEXT NOT NULL, access_token_ttl INTEGER, refresh_token_ttl INTEGER,
15
+ signing_algorithm TEXT, signing_key_id TEXT, allowed_scopes JSONB, custom_claims JSONB, dpop_bound_access_tokens_required BOOLEAN,
16
+ disabled BOOLEAN, created_at TIMESTAMPTZ, updated_at TIMESTAMPTZ, policy_version INTEGER, metadata JSONB
17
+ );
18
+ CREATE TABLE oauth_client_resources (
19
+ id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,
20
+ resource_id TEXT NOT NULL REFERENCES oauth_resources (identifier) ON DELETE CASCADE, metadata JSONB, created_at TIMESTAMPTZ
21
+ );
22
+ CREATE INDEX oauth_client_resources_client_id_idx ON oauth_client_resources (client_id);
23
+ CREATE INDEX oauth_client_resources_resource_id_idx ON oauth_client_resources (resource_id);
24
+ CREATE UNIQUE INDEX oauth_client_resources_client_id_resource_id_uidx ON oauth_client_resources (client_id, resource_id);
25
+ CREATE TABLE oauth_refresh_tokens (
26
+ id TEXT NOT NULL PRIMARY KEY, token TEXT NOT NULL UNIQUE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,
27
+ session_id TEXT REFERENCES sessions (id) ON DELETE SET NULL, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE,
28
+ reference_id TEXT, authorization_code_id TEXT, resources JSONB, requested_user_info_claims JSONB, expires_at TIMESTAMPTZ NOT NULL,
29
+ created_at TIMESTAMPTZ NOT NULL, revoked TIMESTAMPTZ, rotated_at TIMESTAMPTZ, rotation_replay_response TEXT,
30
+ rotation_replay_expires_at TIMESTAMPTZ, auth_time TIMESTAMPTZ, confirmation JSONB, scopes JSONB NOT NULL
31
+ );
32
+ CREATE INDEX oauth_refresh_tokens_client_id_idx ON oauth_refresh_tokens (client_id);
33
+ CREATE INDEX oauth_refresh_tokens_session_id_idx ON oauth_refresh_tokens (session_id);
34
+ CREATE INDEX oauth_refresh_tokens_user_id_idx ON oauth_refresh_tokens (user_id);
35
+ CREATE INDEX oauth_refresh_tokens_authorization_code_id_idx ON oauth_refresh_tokens (authorization_code_id);
36
+ CREATE INDEX oauth_refresh_tokens_reference_id_idx ON oauth_refresh_tokens (reference_id);
37
+ CREATE TABLE oauth_access_tokens (
38
+ id TEXT NOT NULL PRIMARY KEY, token TEXT NOT NULL UNIQUE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,
39
+ session_id TEXT REFERENCES sessions (id) ON DELETE SET NULL, user_id TEXT REFERENCES users (id) ON DELETE CASCADE, reference_id TEXT,
40
+ authorization_code_id TEXT, resources JSONB, requested_user_info_claims JSONB,
41
+ refresh_id TEXT REFERENCES oauth_refresh_tokens (id) ON DELETE CASCADE, expires_at TIMESTAMPTZ NOT NULL, created_at TIMESTAMPTZ NOT NULL,
42
+ revoked TIMESTAMPTZ, confirmation JSONB, scopes JSONB NOT NULL
43
+ );
44
+ CREATE INDEX oauth_access_tokens_client_id_idx ON oauth_access_tokens (client_id);
45
+ CREATE INDEX oauth_access_tokens_session_id_idx ON oauth_access_tokens (session_id);
46
+ CREATE INDEX oauth_access_tokens_user_id_idx ON oauth_access_tokens (user_id);
47
+ CREATE INDEX oauth_access_tokens_authorization_code_id_idx ON oauth_access_tokens (authorization_code_id);
48
+ CREATE INDEX oauth_access_tokens_refresh_id_idx ON oauth_access_tokens (refresh_id);
49
+ CREATE INDEX oauth_access_tokens_reference_id_idx ON oauth_access_tokens (reference_id);
50
+ CREATE TABLE oauth_consents (
51
+ id TEXT NOT NULL PRIMARY KEY, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,
52
+ user_id TEXT REFERENCES users (id) ON DELETE CASCADE, reference_id TEXT, resources JSONB, requested_user_info_claims JSONB,
53
+ scopes JSONB NOT NULL, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL
54
+ );
55
+ CREATE INDEX oauth_consents_client_id_idx ON oauth_consents (client_id);
56
+ CREATE INDEX oauth_consents_user_id_idx ON oauth_consents (user_id);
57
+ CREATE INDEX oauth_consents_reference_id_idx ON oauth_consents (reference_id);
58
+ CREATE TABLE oauth_client_assertions (id TEXT NOT NULL PRIMARY KEY, expires_at TIMESTAMPTZ NOT NULL);
59
+ CREATE TABLE oauth_grants (
60
+ id TEXT NOT NULL PRIMARY KEY, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE,
61
+ org_id TEXT NOT NULL REFERENCES orgs (id) ON DELETE CASCADE, client_id TEXT NOT NULL REFERENCES oauth_clients (client_id) ON DELETE CASCADE,
62
+ session_id TEXT, all_projects BOOLEAN NOT NULL, project_ids TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL,
63
+ used_ms DOUBLE PRECISION, revoked_ms DOUBLE PRECISION
64
+ );
65
+ CREATE INDEX ix_oauth_grants_user ON oauth_grants (user_id, client_id);
66
+ CREATE INDEX ix_oauth_grants_org ON oauth_grants (org_id);
67
+ CREATE INDEX ix_oauth_grants_session ON oauth_grants (session_id);
68
+ `;
69
+ //# sourceMappingURL=schema-oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-oauth.js","sourceRoot":"","sources":["../../src/db/schema-oauth.ts"],"names":[],"mappings":"AAAA,sIAAsI;AACtI,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkE9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SAVED_MOVE_MIGRATION: string;
2
+ //# sourceMappingURL=schema-saved-move.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-saved-move.d.ts","sourceRoot":"","sources":["../../src/db/schema-saved-move.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,QAShC,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Migration 22: saved log searches move into saved_items as shared searches of the Logs page, drawn as charts; saved_searches goes.
2
+ const enc = (v) => `replace(replace(replace(replace(replace(replace(${v}, '%', '%25'), '&', '%26'), '=', '%3D'), '#', '%23'), '+', '%2B'), ' ', '%20')`;
3
+ export const SAVED_MOVE_MIGRATION = `
4
+ INSERT INTO saved_items (id, project_id, owner_id, kind, name, shared, body, created_ms, updated_ms)
5
+ SELECT s.id, s.project_id, CASE WHEN s.created_by LIKE 'user:%' THEN substr(s.created_by, 6) ELSE s.created_by END, 'search', s.name, TRUE,
6
+ json_build_object('href', '#/logs' || COALESCE('?' || (SELECT string_agg(e.key || '=' || ${enc("e.value")}, '&' ORDER BY e.key)
7
+ FROM jsonb_each_text(s.params::jsonb) e WHERE e.value <> ''), ''), 'panels', json_build_array(), 'chart', TRUE)::text,
8
+ s.created_ms, s.created_ms
9
+ FROM saved_searches s
10
+ ON CONFLICT (id) DO NOTHING;
11
+ DROP TABLE saved_searches;
12
+ `;
13
+ //# sourceMappingURL=schema-saved-move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-saved-move.js","sourceRoot":"","sources":["../../src/db/schema-saved-move.ts"],"names":[],"mappings":"AAAA,oIAAoI;AACpI,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,mDAAmD,CAAC,gFAAgF,CAAC;AAEhK,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;6FAGyD,GAAG,CAAC,SAAS,CAAC;;;;;;CAM1G,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SAVED_MIGRATION = "\nCREATE TABLE saved_items (\n id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, owner_id TEXT NOT NULL, kind TEXT NOT NULL,\n name TEXT NOT NULL, shared BOOLEAN NOT NULL DEFAULT FALSE, body TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, updated_ms DOUBLE PRECISION NOT NULL\n);\nCREATE INDEX ix_saved_items_project ON saved_items (project_id);\nALTER TABLE shares ADD COLUMN page TEXT NOT NULL DEFAULT '';\nALTER TABLE shares ADD COLUMN title TEXT NOT NULL DEFAULT '';\nALTER TABLE shares ADD COLUMN snapshot TEXT;\nALTER TABLE shares ADD COLUMN params TEXT NOT NULL DEFAULT '{}';\n";
2
+ //# sourceMappingURL=schema-saved.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-saved.d.ts","sourceRoot":"","sources":["../../src/db/schema-saved.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,4nBAU3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Saved views, searches, and dashboards per project; and share links to a page (a snapshot of its numbers), not only a trace.
2
+ export const SAVED_MIGRATION = `
3
+ CREATE TABLE saved_items (
4
+ id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, owner_id TEXT NOT NULL, kind TEXT NOT NULL,
5
+ name TEXT NOT NULL, shared BOOLEAN NOT NULL DEFAULT FALSE, body TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, updated_ms DOUBLE PRECISION NOT NULL
6
+ );
7
+ CREATE INDEX ix_saved_items_project ON saved_items (project_id);
8
+ ALTER TABLE shares ADD COLUMN page TEXT NOT NULL DEFAULT '';
9
+ ALTER TABLE shares ADD COLUMN title TEXT NOT NULL DEFAULT '';
10
+ ALTER TABLE shares ADD COLUMN snapshot TEXT;
11
+ ALTER TABLE shares ADD COLUMN params TEXT NOT NULL DEFAULT '{}';
12
+ `;
13
+ //# sourceMappingURL=schema-saved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-saved.js","sourceRoot":"","sources":["../../src/db/schema-saved.ts"],"names":[],"mappings":"AAAA,8HAA8H;AAC9H,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;CAU9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SCIM_MIGRATION = "\nCREATE TABLE scim_connection_bindings (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, connection_key TEXT NOT NULL UNIQUE, provisioning_domain_id TEXT NOT NULL, created_at TIMESTAMPTZ NOT NULL, decommissioned_at TIMESTAMPTZ, decommission_status TEXT NOT NULL, decommission_cursor_user_id TEXT, decommission_reconciled_user_count INTEGER NOT NULL, decommission_batch_count INTEGER NOT NULL, decommission_revision INTEGER NOT NULL, decommission_completed_at TIMESTAMPTZ, decommission_lease_id TEXT, decommission_lease_expires_at TIMESTAMPTZ);\nCREATE TABLE scim_identity_tombstones (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, provisioning_domain_id TEXT NOT NULL, external_id TEXT NOT NULL, external_id_key TEXT NOT NULL UNIQUE, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE, profile TEXT NOT NULL, deleted_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE scim_subjects (id TEXT NOT NULL PRIMARY KEY, user_id TEXT NOT NULL UNIQUE REFERENCES users (id) ON DELETE CASCADE, profile_source_id TEXT, revision INTEGER NOT NULL, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE scim_users (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, provisioning_domain_id TEXT NOT NULL, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE, connection_user_key TEXT NOT NULL UNIQUE, user_name TEXT NOT NULL, user_name_key TEXT NOT NULL UNIQUE, primary_email TEXT NOT NULL, work_email_value_index TEXT NOT NULL, email_value_index TEXT NOT NULL, display_name TEXT NOT NULL, formatted_name TEXT NOT NULL, given_name TEXT, family_name TEXT, serialized_emails TEXT NOT NULL, serialized_attributes TEXT, external_id TEXT, external_id_key TEXT UNIQUE, active BOOLEAN NOT NULL, order_key TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE scim_projection_grants (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, provisioning_domain_id TEXT NOT NULL, scim_user_id TEXT NOT NULL REFERENCES scim_users (id) ON DELETE CASCADE, user_id TEXT NOT NULL REFERENCES users (id) ON DELETE CASCADE, source_kind TEXT NOT NULL, source_id TEXT NOT NULL, source_value TEXT, role TEXT NOT NULL, grant_key TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE scim_groups (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, provisioning_domain_id TEXT NOT NULL, revision INTEGER NOT NULL, display_name TEXT NOT NULL, display_name_key TEXT NOT NULL UNIQUE, external_id TEXT, external_id_key TEXT UNIQUE, order_key TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL);\nCREATE TABLE scim_group_members (id TEXT NOT NULL PRIMARY KEY, connection_id TEXT NOT NULL, group_id TEXT NOT NULL REFERENCES scim_groups (id) ON DELETE CASCADE, scim_user_id TEXT NOT NULL REFERENCES scim_users (id) ON DELETE CASCADE, membership_key TEXT NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL);\nCREATE INDEX scim_connection_bindings_connection_id_idx ON scim_connection_bindings (connection_id);\nCREATE INDEX scim_identity_tombstones_connection_id_idx ON scim_identity_tombstones (connection_id);\nCREATE INDEX scim_identity_tombstones_provisioning_domain_id_idx ON scim_identity_tombstones (provisioning_domain_id);\nCREATE INDEX scim_identity_tombstones_user_id_idx ON scim_identity_tombstones (user_id);\nCREATE INDEX scim_subjects_profile_source_id_idx ON scim_subjects (profile_source_id);\nCREATE INDEX scim_users_connection_id_idx ON scim_users (connection_id);\nCREATE INDEX scim_users_provisioning_domain_id_idx ON scim_users (provisioning_domain_id);\nCREATE INDEX scim_users_user_id_idx ON scim_users (user_id);\nCREATE INDEX scim_projection_grants_connection_id_idx ON scim_projection_grants (connection_id);\nCREATE INDEX scim_projection_grants_provisioning_domain_id_idx ON scim_projection_grants (provisioning_domain_id);\nCREATE INDEX scim_projection_grants_scim_user_id_idx ON scim_projection_grants (scim_user_id);\nCREATE INDEX scim_projection_grants_user_id_idx ON scim_projection_grants (user_id);\nCREATE INDEX scim_groups_connection_id_idx ON scim_groups (connection_id);\nCREATE INDEX scim_groups_provisioning_domain_id_idx ON scim_groups (provisioning_domain_id);\nCREATE INDEX scim_group_members_connection_id_idx ON scim_group_members (connection_id);\nCREATE INDEX scim_group_members_group_id_idx ON scim_group_members (group_id);\nCREATE INDEX scim_group_members_scim_user_id_idx ON scim_group_members (scim_user_id);\n";
2
+ //# sourceMappingURL=schema-scim.d.ts.map