@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.
- package/README.md +3 -0
- package/dist/alerts/evaluate.d.ts +6 -5
- package/dist/alerts/evaluate.d.ts.map +1 -1
- package/dist/alerts/evaluate.js +59 -26
- package/dist/alerts/evaluate.js.map +1 -1
- package/dist/alerts/problem-link.d.ts +12 -0
- package/dist/alerts/problem-link.d.ts.map +1 -0
- package/dist/alerts/problem-link.js +31 -0
- package/dist/alerts/problem-link.js.map +1 -0
- package/dist/app.d.ts +9 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/auth/auth.d.ts +8 -2
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/auth/auth.js +25 -2
- package/dist/auth/auth.js.map +1 -1
- package/dist/auth/billing-hooks.d.ts +9 -0
- package/dist/auth/billing-hooks.d.ts.map +1 -0
- package/dist/auth/billing-hooks.js +49 -0
- package/dist/auth/billing-hooks.js.map +1 -0
- package/dist/auth/bridge.js +2 -2
- package/dist/auth/bridge.js.map +1 -1
- package/dist/auth/crypto.d.ts +2 -0
- package/dist/auth/crypto.d.ts.map +1 -1
- package/dist/auth/crypto.js +2 -2
- package/dist/auth/crypto.js.map +1 -1
- package/dist/auth/deps.d.ts +7 -0
- package/dist/auth/deps.d.ts.map +1 -1
- package/dist/auth/deps.js.map +1 -1
- package/dist/auth/hooks.d.ts.map +1 -1
- package/dist/auth/hooks.js +8 -1
- package/dist/auth/hooks.js.map +1 -1
- package/dist/auth/join-scope.d.ts +1 -1
- package/dist/auth/join-scope.d.ts.map +1 -1
- package/dist/auth/join-scope.js +8 -4
- package/dist/auth/join-scope.js.map +1 -1
- package/dist/auth/oauth-access.d.ts +8 -0
- package/dist/auth/oauth-access.d.ts.map +1 -0
- package/dist/auth/oauth-access.js +31 -0
- package/dist/auth/oauth-access.js.map +1 -0
- package/dist/auth/oauth-grant.d.ts +5 -0
- package/dist/auth/oauth-grant.d.ts.map +1 -0
- package/dist/auth/oauth-grant.js +79 -0
- package/dist/auth/oauth-grant.js.map +1 -0
- package/dist/auth/oauth-names.d.ts +104 -0
- package/dist/auth/oauth-names.d.ts.map +1 -0
- package/dist/auth/oauth-names.js +72 -0
- package/dist/auth/oauth-names.js.map +1 -0
- package/dist/auth/oauth.d.ts +17 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/oauth.js +47 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/options.d.ts.map +1 -1
- package/dist/auth/options.js +2 -0
- package/dist/auth/options.js.map +1 -1
- package/dist/auth/plugins.d.ts.map +1 -1
- package/dist/auth/plugins.js +15 -1
- package/dist/auth/plugins.js.map +1 -1
- package/dist/auth/principal.d.ts +10 -1
- package/dist/auth/principal.d.ts.map +1 -1
- package/dist/auth/principal.js +8 -7
- package/dist/auth/principal.js.map +1 -1
- package/dist/auth/roles.d.ts +5 -2
- package/dist/auth/roles.d.ts.map +1 -1
- package/dist/auth/roles.js +1 -0
- package/dist/auth/roles.js.map +1 -1
- package/dist/auth/schema-names.d.ts +33 -0
- package/dist/auth/schema-names.d.ts.map +1 -1
- package/dist/auth/schema-names.js +23 -0
- package/dist/auth/schema-names.js.map +1 -1
- package/dist/auth/scim.d.ts +6 -0
- package/dist/auth/scim.d.ts.map +1 -0
- package/dist/auth/scim.js +56 -0
- package/dist/auth/scim.js.map +1 -0
- package/dist/auth/signup.d.ts.map +1 -1
- package/dist/auth/signup.js +5 -2
- package/dist/auth/signup.js.map +1 -1
- package/dist/auth/wire.d.ts +2 -1
- package/dist/auth/wire.d.ts.map +1 -1
- package/dist/auth/wire.js +4 -1
- package/dist/auth/wire.js.map +1 -1
- package/dist/billing/cli.d.ts +6 -0
- package/dist/billing/cli.d.ts.map +1 -0
- package/dist/billing/cli.js +54 -0
- package/dist/billing/cli.js.map +1 -0
- package/dist/billing/gate.d.ts +13 -0
- package/dist/billing/gate.d.ts.map +1 -0
- package/dist/billing/gate.js +27 -0
- package/dist/billing/gate.js.map +1 -0
- package/dist/billing/limits.d.ts +29 -0
- package/dist/billing/limits.d.ts.map +1 -0
- package/dist/billing/limits.js +69 -0
- package/dist/billing/limits.js.map +1 -0
- package/dist/billing/notices.d.ts +4 -0
- package/dist/billing/notices.d.ts.map +1 -0
- package/dist/billing/notices.js +40 -0
- package/dist/billing/notices.js.map +1 -0
- package/dist/billing/options.d.ts +37 -0
- package/dist/billing/options.d.ts.map +1 -0
- package/dist/billing/options.js +33 -0
- package/dist/billing/options.js.map +1 -0
- package/dist/billing/plans.d.ts +50 -0
- package/dist/billing/plans.d.ts.map +1 -0
- package/dist/billing/plans.js +47 -0
- package/dist/billing/plans.js.map +1 -0
- package/dist/billing/report.d.ts +26 -0
- package/dist/billing/report.d.ts.map +1 -0
- package/dist/billing/report.js +53 -0
- package/dist/billing/report.js.map +1 -0
- package/dist/billing/service.d.ts +20 -0
- package/dist/billing/service.d.ts.map +1 -0
- package/dist/billing/service.js +29 -0
- package/dist/billing/service.js.map +1 -0
- package/dist/billing/stripe-plugin.d.ts +14 -0
- package/dist/billing/stripe-plugin.d.ts.map +1 -0
- package/dist/billing/stripe-plugin.js +39 -0
- package/dist/billing/stripe-plugin.js.map +1 -0
- package/dist/billing/stripe-setup.d.ts +15 -0
- package/dist/billing/stripe-setup.d.ts.map +1 -0
- package/dist/billing/stripe-setup.js +73 -0
- package/dist/billing/stripe-setup.js.map +1 -0
- package/dist/billing/summary.d.ts +59 -0
- package/dist/billing/summary.d.ts.map +1 -0
- package/dist/billing/summary.js +50 -0
- package/dist/billing/summary.js.map +1 -0
- package/dist/billing/sync.d.ts +5 -0
- package/dist/billing/sync.d.ts.map +1 -0
- package/dist/billing/sync.js +35 -0
- package/dist/billing/sync.js.map +1 -0
- package/dist/billing/usage-sub.d.ts +17 -0
- package/dist/billing/usage-sub.d.ts.map +1 -0
- package/dist/billing/usage-sub.js +47 -0
- package/dist/billing/usage-sub.js.map +1 -0
- package/dist/billing/usage.d.ts +28 -0
- package/dist/billing/usage.d.ts.map +1 -0
- package/dist/billing/usage.js +80 -0
- package/dist/billing/usage.js.map +1 -0
- package/dist/billing/webhook.d.ts +6 -0
- package/dist/billing/webhook.d.ts.map +1 -0
- package/dist/billing/webhook.js +41 -0
- package/dist/billing/webhook.js.map +1 -0
- package/dist/cli-args.d.ts +1 -1
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +33 -2
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +15 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -1
- package/dist/config.js.map +1 -1
- package/dist/db/schema-alerts.d.ts +2 -0
- package/dist/db/schema-alerts.d.ts.map +1 -0
- package/dist/db/schema-alerts.js +15 -0
- package/dist/db/schema-alerts.js.map +1 -0
- package/dist/db/schema-billing.d.ts +2 -0
- package/dist/db/schema-billing.d.ts.map +1 -0
- package/dist/db/schema-billing.js +38 -0
- package/dist/db/schema-billing.js.map +1 -0
- package/dist/db/schema-issues.d.ts +2 -0
- package/dist/db/schema-issues.d.ts.map +1 -0
- package/dist/db/schema-issues.js +9 -0
- package/dist/db/schema-issues.js.map +1 -0
- package/dist/db/schema-logs.d.ts +2 -0
- package/dist/db/schema-logs.d.ts.map +1 -0
- package/dist/db/schema-logs.js +13 -0
- package/dist/db/schema-logs.js.map +1 -0
- package/dist/db/schema-oauth.d.ts +2 -0
- package/dist/db/schema-oauth.d.ts.map +1 -0
- package/dist/db/schema-oauth.js +69 -0
- package/dist/db/schema-oauth.js.map +1 -0
- package/dist/db/schema-saved-move.d.ts +2 -0
- package/dist/db/schema-saved-move.d.ts.map +1 -0
- package/dist/db/schema-saved-move.js +13 -0
- package/dist/db/schema-saved-move.js.map +1 -0
- package/dist/db/schema-saved.d.ts +2 -0
- package/dist/db/schema-saved.d.ts.map +1 -0
- package/dist/db/schema-saved.js +13 -0
- package/dist/db/schema-saved.js.map +1 -0
- package/dist/db/schema-scim.d.ts +2 -0
- package/dist/db/schema-scim.d.ts.map +1 -0
- package/dist/db/schema-scim.js +28 -0
- package/dist/db/schema-scim.js.map +1 -0
- package/dist/db/schema-slos.d.ts +2 -0
- package/dist/db/schema-slos.d.ts.map +1 -0
- package/dist/db/schema-slos.js +12 -0
- package/dist/db/schema-slos.js.map +1 -0
- package/dist/db/schema-sourcemaps.d.ts +2 -0
- package/dist/db/schema-sourcemaps.d.ts.map +1 -0
- package/dist/db/schema-sourcemaps.js +9 -0
- package/dist/db/schema-sourcemaps.js.map +1 -0
- package/dist/db/schema-tags.d.ts +2 -0
- package/dist/db/schema-tags.d.ts.map +1 -0
- package/dist/db/schema-tags.js +12 -0
- package/dist/db/schema-tags.js.map +1 -0
- package/dist/db/schema-team.d.ts +2 -0
- package/dist/db/schema-team.d.ts.map +1 -0
- package/dist/db/schema-team.js +15 -0
- package/dist/db/schema-team.js.map +1 -0
- package/dist/db/schema-uptime.d.ts +2 -0
- package/dist/db/schema-uptime.d.ts.map +1 -0
- package/dist/db/schema-uptime.js +22 -0
- package/dist/db/schema-uptime.js.map +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +30 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/http/http.d.ts +5 -1
- package/dist/http/http.d.ts.map +1 -1
- package/dist/http/http.js +5 -1
- package/dist/http/http.js.map +1 -1
- package/dist/jobs.d.ts +1 -1
- package/dist/jobs.d.ts.map +1 -1
- package/dist/jobs.js +15 -2
- package/dist/jobs.js.map +1 -1
- package/dist/mail/emails-billing.d.ts +17 -0
- package/dist/mail/emails-billing.d.ts.map +1 -0
- package/dist/mail/emails-billing.js +36 -0
- package/dist/mail/emails-billing.js.map +1 -0
- package/dist/mail/emails.d.ts +1 -1
- package/dist/mail/emails.d.ts.map +1 -1
- package/dist/mail/emails.js +7 -4
- package/dist/mail/emails.js.map +1 -1
- package/dist/mail/mailer.d.ts +1 -1
- package/dist/mail/mailer.d.ts.map +1 -1
- package/dist/mail/samples.d.ts.map +1 -1
- package/dist/mail/samples.js +17 -0
- package/dist/mail/samples.js.map +1 -1
- package/dist/mail/templates.d.ts +1 -1
- package/dist/mail/templates.d.ts.map +1 -1
- package/dist/notify/digest-data.d.ts.map +1 -1
- package/dist/notify/digest-data.js +2 -2
- package/dist/notify/digest-data.js.map +1 -1
- package/dist/notify/digest.d.ts.map +1 -1
- package/dist/notify/digest.js +4 -1
- package/dist/notify/digest.js.map +1 -1
- package/dist/notify/team-describe.d.ts.map +1 -1
- package/dist/notify/team-describe.js +14 -0
- package/dist/notify/team-describe.js.map +1 -1
- package/dist/repo/alert-events.d.ts +38 -0
- package/dist/repo/alert-events.d.ts.map +1 -0
- package/dist/repo/alert-events.js +29 -0
- package/dist/repo/alert-events.js.map +1 -0
- package/dist/repo/alerts.d.ts +14 -44
- package/dist/repo/alerts.d.ts.map +1 -1
- package/dist/repo/alerts.js +35 -13
- package/dist/repo/alerts.js.map +1 -1
- package/dist/repo/audit.d.ts +19 -1
- package/dist/repo/audit.d.ts.map +1 -1
- package/dist/repo/audit.js +24 -2
- package/dist/repo/audit.js.map +1 -1
- package/dist/repo/auth-prune.d.ts +1 -1
- package/dist/repo/auth-prune.d.ts.map +1 -1
- package/dist/repo/auth-prune.js +13 -1
- package/dist/repo/auth-prune.js.map +1 -1
- package/dist/repo/billing.d.ts +30 -0
- package/dist/repo/billing.d.ts.map +1 -0
- package/dist/repo/billing.js +47 -0
- package/dist/repo/billing.js.map +1 -0
- package/dist/repo/grants.d.ts +30 -0
- package/dist/repo/grants.d.ts.map +1 -0
- package/dist/repo/grants.js +57 -0
- package/dist/repo/grants.js.map +1 -0
- package/dist/repo/issues.d.ts +15 -0
- package/dist/repo/issues.d.ts.map +1 -0
- package/dist/repo/issues.js +31 -0
- package/dist/repo/issues.js.map +1 -0
- package/dist/repo/keys.d.ts +51 -0
- package/dist/repo/keys.d.ts.map +1 -0
- package/dist/repo/keys.js +58 -0
- package/dist/repo/keys.js.map +1 -0
- package/dist/repo/log-retention.d.ts +8 -0
- package/dist/repo/log-retention.d.ts.map +1 -0
- package/dist/repo/log-retention.js +20 -0
- package/dist/repo/log-retention.js.map +1 -0
- package/dist/repo/metric-read.d.ts +2 -0
- package/dist/repo/metric-read.d.ts.map +1 -1
- package/dist/repo/metric-read.js +5 -1
- package/dist/repo/metric-read.js.map +1 -1
- package/dist/repo/metric-write.d.ts.map +1 -1
- package/dist/repo/metric-write.js +3 -2
- package/dist/repo/metric-write.js.map +1 -1
- package/dist/repo/orgs.d.ts +2 -0
- package/dist/repo/orgs.d.ts.map +1 -1
- package/dist/repo/orgs.js +5 -1
- package/dist/repo/orgs.js.map +1 -1
- package/dist/repo/project-roles.d.ts +28 -0
- package/dist/repo/project-roles.d.ts.map +1 -0
- package/dist/repo/project-roles.js +39 -0
- package/dist/repo/project-roles.js.map +1 -0
- package/dist/repo/projects.d.ts +3 -22
- package/dist/repo/projects.d.ts.map +1 -1
- package/dist/repo/projects.js +4 -29
- package/dist/repo/projects.js.map +1 -1
- package/dist/repo/saved.d.ts +9 -0
- package/dist/repo/saved.d.ts.map +1 -0
- package/dist/repo/saved.js +29 -0
- package/dist/repo/saved.js.map +1 -0
- package/dist/repo/scim-tokens.d.ts +20 -0
- package/dist/repo/scim-tokens.d.ts.map +1 -0
- package/dist/repo/scim-tokens.js +32 -0
- package/dist/repo/scim-tokens.js.map +1 -0
- package/dist/repo/services.d.ts.map +1 -1
- package/dist/repo/services.js +2 -1
- package/dist/repo/services.js.map +1 -1
- package/dist/repo/settings.d.ts +30 -0
- package/dist/repo/settings.d.ts.map +1 -0
- package/dist/repo/settings.js +55 -0
- package/dist/repo/settings.js.map +1 -0
- package/dist/repo/slos.d.ts +10 -0
- package/dist/repo/slos.d.ts.map +1 -0
- package/dist/repo/slos.js +27 -0
- package/dist/repo/slos.js.map +1 -0
- package/dist/repo/sourcemaps.d.ts +9 -0
- package/dist/repo/sourcemaps.d.ts.map +1 -0
- package/dist/repo/sourcemaps.js +34 -0
- package/dist/repo/sourcemaps.js.map +1 -0
- package/dist/repo/tags.d.ts +11 -0
- package/dist/repo/tags.d.ts.map +1 -0
- package/dist/repo/tags.js +33 -0
- package/dist/repo/tags.js.map +1 -0
- package/dist/repo/trace-read.d.ts.map +1 -1
- package/dist/repo/trace-read.js +3 -1
- package/dist/repo/trace-read.js.map +1 -1
- package/dist/repo/trace-write.d.ts +1 -1
- package/dist/repo/trace-write.d.ts.map +1 -1
- package/dist/repo/trace-write.js +11 -5
- package/dist/repo/trace-write.js.map +1 -1
- package/dist/repo/uptime.d.ts +21 -0
- package/dist/repo/uptime.d.ts.map +1 -0
- package/dist/repo/uptime.js +53 -0
- package/dist/repo/uptime.js.map +1 -0
- package/dist/routes/alerts.d.ts.map +1 -1
- package/dist/routes/alerts.js +65 -66
- package/dist/routes/alerts.js.map +1 -1
- package/dist/routes/apps.d.ts +20 -0
- package/dist/routes/apps.d.ts.map +1 -0
- package/dist/routes/apps.js +53 -0
- package/dist/routes/apps.js.map +1 -0
- package/dist/routes/billing.d.ts +4 -0
- package/dist/routes/billing.d.ts.map +1 -0
- package/dist/routes/billing.js +51 -0
- package/dist/routes/billing.js.map +1 -0
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +16 -7
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +24 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/ingest.d.ts +3 -1
- package/dist/routes/ingest.d.ts.map +1 -1
- package/dist/routes/ingest.js +55 -14
- package/dist/routes/ingest.js.map +1 -1
- package/dist/routes/issues.d.ts +4 -0
- package/dist/routes/issues.d.ts.map +1 -0
- package/dist/routes/issues.js +34 -0
- package/dist/routes/issues.js.map +1 -0
- package/dist/routes/keys.d.ts +4 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +70 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +60 -23
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/me.d.ts.map +1 -1
- package/dist/routes/me.js +15 -5
- package/dist/routes/me.js.map +1 -1
- package/dist/routes/metrics.js +1 -1
- package/dist/routes/metrics.js.map +1 -1
- package/dist/routes/models.d.ts +7 -1
- package/dist/routes/models.d.ts.map +1 -1
- package/dist/routes/models.js +55 -19
- package/dist/routes/models.js.map +1 -1
- package/dist/routes/notify.d.ts.map +1 -1
- package/dist/routes/notify.js +3 -1
- package/dist/routes/notify.js.map +1 -1
- package/dist/routes/oauth-meta.d.ts +7 -0
- package/dist/routes/oauth-meta.d.ts.map +1 -0
- package/dist/routes/oauth-meta.js +52 -0
- package/dist/routes/oauth-meta.js.map +1 -0
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +23 -7
- package/dist/routes/orgs.js.map +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +31 -22
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/saved.d.ts +4 -0
- package/dist/routes/saved.d.ts.map +1 -0
- package/dist/routes/saved.js +56 -0
- package/dist/routes/saved.js.map +1 -0
- package/dist/routes/scim.d.ts +4 -0
- package/dist/routes/scim.d.ts.map +1 -0
- package/dist/routes/scim.js +37 -0
- package/dist/routes/scim.js.map +1 -0
- package/dist/routes/search.d.ts.map +1 -1
- package/dist/routes/search.js +8 -5
- package/dist/routes/search.js.map +1 -1
- package/dist/routes/settings.d.ts +4 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +39 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/shares.d.ts +3 -0
- package/dist/routes/shares.d.ts.map +1 -1
- package/dist/routes/shares.js +28 -15
- package/dist/routes/shares.js.map +1 -1
- package/dist/routes/slos.d.ts +4 -0
- package/dist/routes/slos.d.ts.map +1 -0
- package/dist/routes/slos.js +76 -0
- package/dist/routes/slos.js.map +1 -0
- package/dist/routes/sourcemaps.d.ts +9 -0
- package/dist/routes/sourcemaps.d.ts.map +1 -0
- package/dist/routes/sourcemaps.js +54 -0
- package/dist/routes/sourcemaps.js.map +1 -0
- package/dist/routes/status.d.ts +4 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +60 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/tags.d.ts +4 -0
- package/dist/routes/tags.d.ts.map +1 -0
- package/dist/routes/tags.js +81 -0
- package/dist/routes/tags.js.map +1 -0
- package/dist/routes/uptime.d.ts +4 -0
- package/dist/routes/uptime.d.ts.map +1 -0
- package/dist/routes/uptime.js +71 -0
- package/dist/routes/uptime.js.map +1 -0
- package/dist/scale-exec.d.ts +3 -2
- package/dist/scale-exec.d.ts.map +1 -1
- package/dist/scale-exec.js +5 -4
- package/dist/scale-exec.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +30 -7
- package/dist/server.js.map +1 -1
- package/dist/settle.d.ts +6 -3
- package/dist/settle.d.ts.map +1 -1
- package/dist/settle.js +11 -8
- package/dist/settle.js.map +1 -1
- package/dist/telemetry/ch/admin.d.ts +8 -4
- package/dist/telemetry/ch/admin.d.ts.map +1 -1
- package/dist/telemetry/ch/admin.js +33 -16
- package/dist/telemetry/ch/admin.js.map +1 -1
- package/dist/telemetry/ch/queue.d.ts +6 -4
- package/dist/telemetry/ch/queue.d.ts.map +1 -1
- package/dist/telemetry/ch/queue.js +13 -9
- package/dist/telemetry/ch/queue.js.map +1 -1
- package/dist/telemetry/ch/read.d.ts.map +1 -1
- package/dist/telemetry/ch/read.js +3 -1
- package/dist/telemetry/ch/read.js.map +1 -1
- package/dist/telemetry/ch/rebuild.d.ts +23 -0
- package/dist/telemetry/ch/rebuild.d.ts.map +1 -0
- package/dist/telemetry/ch/rebuild.js +65 -0
- package/dist/telemetry/ch/rebuild.js.map +1 -0
- package/dist/telemetry/ch/schema-facts.d.ts +1 -1
- package/dist/telemetry/ch/schema-facts.d.ts.map +1 -1
- package/dist/telemetry/ch/schema-facts.js +8 -2
- package/dist/telemetry/ch/schema-facts.js.map +1 -1
- package/dist/telemetry/ch/schema-raw.d.ts +2 -0
- package/dist/telemetry/ch/schema-raw.d.ts.map +1 -1
- package/dist/telemetry/ch/schema-raw.js +2 -0
- package/dist/telemetry/ch/schema-raw.js.map +1 -1
- package/dist/telemetry/ch/schema.d.ts.map +1 -1
- package/dist/telemetry/ch/schema.js +2 -2
- package/dist/telemetry/ch/schema.js.map +1 -1
- package/dist/telemetry/ch/settle-pool.d.ts +24 -0
- package/dist/telemetry/ch/settle-pool.d.ts.map +1 -0
- package/dist/telemetry/ch/settle-pool.js +58 -0
- package/dist/telemetry/ch/settle-pool.js.map +1 -0
- package/dist/telemetry/ch/settle-rows.d.ts +7 -4
- package/dist/telemetry/ch/settle-rows.d.ts.map +1 -1
- package/dist/telemetry/ch/settle-rows.js +15 -8
- package/dist/telemetry/ch/settle-rows.js.map +1 -1
- package/dist/telemetry/ch/settle-work.d.ts +21 -0
- package/dist/telemetry/ch/settle-work.d.ts.map +1 -0
- package/dist/telemetry/ch/settle-work.js +52 -0
- package/dist/telemetry/ch/settle-work.js.map +1 -0
- package/dist/telemetry/ch/settle-worker.d.ts +2 -0
- package/dist/telemetry/ch/settle-worker.d.ts.map +1 -0
- package/dist/telemetry/ch/settle-worker.js +10 -0
- package/dist/telemetry/ch/settle-worker.js.map +1 -0
- package/dist/telemetry/ch/settle.d.ts +17 -3
- package/dist/telemetry/ch/settle.d.ts.map +1 -1
- package/dist/telemetry/ch/settle.js +15 -56
- package/dist/telemetry/ch/settle.js.map +1 -1
- package/dist/telemetry/ch/store.d.ts +12 -1
- package/dist/telemetry/ch/store.d.ts.map +1 -1
- package/dist/telemetry/ch/store.js +37 -8
- package/dist/telemetry/ch/store.js.map +1 -1
- package/dist/telemetry/ch/util.d.ts +7 -0
- package/dist/telemetry/ch/util.d.ts.map +1 -1
- package/dist/telemetry/ch/util.js +4 -0
- package/dist/telemetry/ch/util.js.map +1 -1
- package/dist/telemetry/ch/write.d.ts +2 -1
- package/dist/telemetry/ch/write.d.ts.map +1 -1
- package/dist/telemetry/ch/write.js +10 -10
- package/dist/telemetry/ch/write.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +8 -3
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/pg-store.d.ts.map +1 -1
- package/dist/telemetry/pg-store.js +13 -8
- package/dist/telemetry/pg-store.js.map +1 -1
- package/dist/telemetry/store.d.ts +13 -2
- package/dist/telemetry/store.d.ts.map +1 -1
- package/dist/uptime/headers.d.ts +6 -0
- package/dist/uptime/headers.d.ts.map +1 -0
- package/dist/uptime/headers.js +25 -0
- package/dist/uptime/headers.js.map +1 -0
- package/dist/uptime/run.d.ts +9 -0
- package/dist/uptime/run.d.ts.map +1 -0
- package/dist/uptime/run.js +40 -0
- package/dist/uptime/run.js.map +1 -0
- package/package.json +9 -5
- package/dist/alerts/notify.d.ts +0 -28
- package/dist/alerts/notify.d.ts.map +0 -1
- package/dist/alerts/notify.js +0 -52
- package/dist/alerts/notify.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-scim.d.ts","sourceRoot":"","sources":["../../src/db/schema-scim.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,k7IAyB1B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Migration 15: SCIM provisioning (Better Auth's SCIM plugin, tables renamed to snake_case in auth/scim.ts). Tokens are in scim_tokens.
|
|
2
|
+
export const SCIM_MIGRATION = `
|
|
3
|
+
CREATE 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);
|
|
4
|
+
CREATE 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);
|
|
5
|
+
CREATE 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);
|
|
6
|
+
CREATE 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);
|
|
7
|
+
CREATE 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);
|
|
8
|
+
CREATE 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);
|
|
9
|
+
CREATE 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);
|
|
10
|
+
CREATE INDEX scim_connection_bindings_connection_id_idx ON scim_connection_bindings (connection_id);
|
|
11
|
+
CREATE INDEX scim_identity_tombstones_connection_id_idx ON scim_identity_tombstones (connection_id);
|
|
12
|
+
CREATE INDEX scim_identity_tombstones_provisioning_domain_id_idx ON scim_identity_tombstones (provisioning_domain_id);
|
|
13
|
+
CREATE INDEX scim_identity_tombstones_user_id_idx ON scim_identity_tombstones (user_id);
|
|
14
|
+
CREATE INDEX scim_subjects_profile_source_id_idx ON scim_subjects (profile_source_id);
|
|
15
|
+
CREATE INDEX scim_users_connection_id_idx ON scim_users (connection_id);
|
|
16
|
+
CREATE INDEX scim_users_provisioning_domain_id_idx ON scim_users (provisioning_domain_id);
|
|
17
|
+
CREATE INDEX scim_users_user_id_idx ON scim_users (user_id);
|
|
18
|
+
CREATE INDEX scim_projection_grants_connection_id_idx ON scim_projection_grants (connection_id);
|
|
19
|
+
CREATE INDEX scim_projection_grants_provisioning_domain_id_idx ON scim_projection_grants (provisioning_domain_id);
|
|
20
|
+
CREATE INDEX scim_projection_grants_scim_user_id_idx ON scim_projection_grants (scim_user_id);
|
|
21
|
+
CREATE INDEX scim_projection_grants_user_id_idx ON scim_projection_grants (user_id);
|
|
22
|
+
CREATE INDEX scim_groups_connection_id_idx ON scim_groups (connection_id);
|
|
23
|
+
CREATE INDEX scim_groups_provisioning_domain_id_idx ON scim_groups (provisioning_domain_id);
|
|
24
|
+
CREATE INDEX scim_group_members_connection_id_idx ON scim_group_members (connection_id);
|
|
25
|
+
CREATE INDEX scim_group_members_group_id_idx ON scim_group_members (group_id);
|
|
26
|
+
CREATE INDEX scim_group_members_scim_user_id_idx ON scim_group_members (scim_user_id);
|
|
27
|
+
`;
|
|
28
|
+
//# sourceMappingURL=schema-scim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-scim.js","sourceRoot":"","sources":["../../src/db/schema-scim.ts"],"names":[],"mappings":"AAAA,wIAAwI;AACxI,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyB7B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const SLOS_MIGRATION = "\nCREATE TABLE slos (\n id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, name TEXT NOT NULL, service TEXT NOT NULL,\n endpoint TEXT NOT NULL DEFAULT '', kind TEXT NOT NULL, target DOUBLE PRECISION NOT NULL, threshold_ms DOUBLE PRECISION NOT NULL DEFAULT 0,\n window_days INTEGER NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL\n);\nCREATE INDEX ix_slos_project ON slos (project_id);\nCREATE TABLE apdex_targets (project_id TEXT PRIMARY KEY REFERENCES projects (id) ON DELETE CASCADE, targets TEXT NOT NULL);\nALTER TABLE alert_rules ADD COLUMN slo_id TEXT NOT NULL DEFAULT '';\n";
|
|
2
|
+
//# sourceMappingURL=schema-slos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-slos.d.ts","sourceRoot":"","sources":["../../src/db/schema-slos.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,4oBAS1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// SLOs and Apdex targets per project, and alert rules that watch an SLO's burn rate.
|
|
2
|
+
export const SLOS_MIGRATION = `
|
|
3
|
+
CREATE TABLE slos (
|
|
4
|
+
id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, name TEXT NOT NULL, service TEXT NOT NULL,
|
|
5
|
+
endpoint TEXT NOT NULL DEFAULT '', kind TEXT NOT NULL, target DOUBLE PRECISION NOT NULL, threshold_ms DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
6
|
+
window_days INTEGER NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL
|
|
7
|
+
);
|
|
8
|
+
CREATE INDEX ix_slos_project ON slos (project_id);
|
|
9
|
+
CREATE TABLE apdex_targets (project_id TEXT PRIMARY KEY REFERENCES projects (id) ON DELETE CASCADE, targets TEXT NOT NULL);
|
|
10
|
+
ALTER TABLE alert_rules ADD COLUMN slo_id TEXT NOT NULL DEFAULT '';
|
|
11
|
+
`;
|
|
12
|
+
//# sourceMappingURL=schema-slos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-slos.js","sourceRoot":"","sources":["../../src/db/schema-slos.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;CAS7B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const SOURCEMAPS_MIGRATION = "\nCREATE TABLE sourcemaps (\n project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, release TEXT NOT NULL, file TEXT NOT NULL,\n map BYTEA NOT NULL, bytes INTEGER NOT NULL, uploaded_ms DOUBLE PRECISION NOT NULL, PRIMARY KEY (project_id, release, file)\n);\nCREATE INDEX sourcemaps_uploaded_idx ON sourcemaps (project_id, uploaded_ms);\n";
|
|
2
|
+
//# sourceMappingURL=schema-sourcemaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-sourcemaps.d.ts","sourceRoot":"","sources":["../../src/db/schema-sourcemaps.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,oBAAoB,qWAMhC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Migration 18: browser source maps per project, release, and generated file, kept gzipped (docs/CONTRACT.md, "Source maps").
|
|
2
|
+
export const SOURCEMAPS_MIGRATION = `
|
|
3
|
+
CREATE TABLE sourcemaps (
|
|
4
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, release TEXT NOT NULL, file TEXT NOT NULL,
|
|
5
|
+
map BYTEA NOT NULL, bytes INTEGER NOT NULL, uploaded_ms DOUBLE PRECISION NOT NULL, PRIMARY KEY (project_id, release, file)
|
|
6
|
+
);
|
|
7
|
+
CREATE INDEX sourcemaps_uploaded_idx ON sourcemaps (project_id, uploaded_ms);
|
|
8
|
+
`;
|
|
9
|
+
//# sourceMappingURL=schema-sourcemaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-sourcemaps.js","sourceRoot":"","sources":["../../src/db/schema-sourcemaps.ts"],"names":[],"mappings":"AAAA,8HAA8H;AAC9H,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;CAMnC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const TAGS_MIGRATION = "\nCREATE TABLE tag_rules (\n project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, id TEXT NOT NULL, name TEXT NOT NULL, color TEXT NOT NULL,\n query TEXT NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, updated_ms DOUBLE PRECISION NOT NULL,\n PRIMARY KEY (project_id, id), UNIQUE (project_id, name)\n);\nCREATE TABLE tag_builtins (\n project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, name TEXT NOT NULL, enabled BOOLEAN NOT NULL, PRIMARY KEY (project_id, name)\n);\n";
|
|
2
|
+
//# sourceMappingURL=schema-tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-tags.d.ts","sourceRoot":"","sources":["../../src/db/schema-tags.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,qhBAS1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Migration 16: tag rules per project, and the built-in tags a project turned off (docs/TAGS-PLAN.md). Settings, never telemetry.
|
|
2
|
+
export const TAGS_MIGRATION = `
|
|
3
|
+
CREATE TABLE tag_rules (
|
|
4
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, id TEXT NOT NULL, name TEXT NOT NULL, color TEXT NOT NULL,
|
|
5
|
+
query TEXT NOT NULL, created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, updated_ms DOUBLE PRECISION NOT NULL,
|
|
6
|
+
PRIMARY KEY (project_id, id), UNIQUE (project_id, name)
|
|
7
|
+
);
|
|
8
|
+
CREATE TABLE tag_builtins (
|
|
9
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE, name TEXT NOT NULL, enabled BOOLEAN NOT NULL, PRIMARY KEY (project_id, name)
|
|
10
|
+
);
|
|
11
|
+
`;
|
|
12
|
+
//# sourceMappingURL=schema-tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-tags.js","sourceRoot":"","sources":["../../src/db/schema-tags.ts"],"names":[],"mappings":"AAAA,kIAAkI;AAClI,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;CAS7B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const TEAM_MIGRATION = "\nALTER TABLE projects ADD COLUMN settings TEXT NOT NULL DEFAULT '{}';\nALTER TABLE projects ADD COLUMN retention_days INTEGER;\nCREATE TABLE project_roles (\n project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, user_id TEXT NOT NULL, role TEXT NOT NULL,\n PRIMARY KEY (project_id, user_id)\n);\nCREATE INDEX ix_project_roles_user ON project_roles (user_id);\nALTER TABLE api_keys ADD COLUMN expires_ms DOUBLE PRECISION;\nALTER TABLE api_keys ADD COLUMN scopes TEXT;\nALTER TABLE api_keys ADD COLUMN rotated_from TEXT;\nCREATE INDEX ix_audit_org_action ON audit (org_id, action, time_ms);\n";
|
|
2
|
+
//# sourceMappingURL=schema-team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-team.d.ts","sourceRoot":"","sources":["../../src/db/schema-team.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,smBAY1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Project settings (thresholds, extra redacted keys, a shorter retention), roles per project, key expiry and scopes, and audit filters.
|
|
2
|
+
export const TEAM_MIGRATION = `
|
|
3
|
+
ALTER TABLE projects ADD COLUMN settings TEXT NOT NULL DEFAULT '{}';
|
|
4
|
+
ALTER TABLE projects ADD COLUMN retention_days INTEGER;
|
|
5
|
+
CREATE TABLE project_roles (
|
|
6
|
+
project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, user_id TEXT NOT NULL, role TEXT NOT NULL,
|
|
7
|
+
PRIMARY KEY (project_id, user_id)
|
|
8
|
+
);
|
|
9
|
+
CREATE INDEX ix_project_roles_user ON project_roles (user_id);
|
|
10
|
+
ALTER TABLE api_keys ADD COLUMN expires_ms DOUBLE PRECISION;
|
|
11
|
+
ALTER TABLE api_keys ADD COLUMN scopes TEXT;
|
|
12
|
+
ALTER TABLE api_keys ADD COLUMN rotated_from TEXT;
|
|
13
|
+
CREATE INDEX ix_audit_org_action ON audit (org_id, action, time_ms);
|
|
14
|
+
`;
|
|
15
|
+
//# sourceMappingURL=schema-team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-team.js","sourceRoot":"","sources":["../../src/db/schema-team.ts"],"names":[],"mappings":"AAAA,wIAAwI;AACxI,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;CAY7B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const UPTIME_MIGRATION = "\nCREATE TABLE uptime_checks (\n id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, name TEXT NOT NULL, url TEXT NOT NULL,\n method TEXT NOT NULL, headers TEXT NOT NULL, expect_status TEXT NOT NULL, expect_body TEXT NOT NULL, interval_min INTEGER NOT NULL,\n timeout_ms INTEGER NOT NULL, env TEXT NOT NULL DEFAULT '', enabled BOOLEAN NOT NULL, created_by TEXT NOT NULL,\n created_ms DOUBLE PRECISION NOT NULL, state TEXT NOT NULL DEFAULT 'pending', last_run_ms DOUBLE PRECISION,\n last_duration_ms DOUBLE PRECISION, last_status INTEGER, last_error TEXT, tls_expires_ms DOUBLE PRECISION, next_ms DOUBLE PRECISION NOT NULL\n);\nCREATE INDEX ix_uptime_checks_project ON uptime_checks (project_id);\nCREATE INDEX ix_uptime_checks_due ON uptime_checks (next_ms) WHERE enabled;\nCREATE TABLE uptime_incidents (\n id TEXT PRIMARY KEY, check_id TEXT NOT NULL REFERENCES uptime_checks (id) ON DELETE CASCADE, project_id TEXT NOT NULL,\n start_ms DOUBLE PRECISION NOT NULL, end_ms DOUBLE PRECISION, reason TEXT NOT NULL\n);\nCREATE INDEX ix_uptime_incidents_project ON uptime_incidents (project_id, start_ms);\nCREATE TABLE status_pages (\n project_id TEXT PRIMARY KEY REFERENCES projects (id) ON DELETE CASCADE, token_hash TEXT NOT NULL UNIQUE, title TEXT NOT NULL,\n created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, views INTEGER NOT NULL DEFAULT 0\n);\n";
|
|
2
|
+
//# sourceMappingURL=schema-uptime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-uptime.d.ts","sourceRoot":"","sources":["../../src/db/schema-uptime.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,s4CAmB5B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Migration 17: uptime checks, their incidents, and public status pages. Results are spans of the wizelens-uptime service.
|
|
2
|
+
export const UPTIME_MIGRATION = `
|
|
3
|
+
CREATE TABLE uptime_checks (
|
|
4
|
+
id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects (id) ON DELETE CASCADE, name TEXT NOT NULL, url TEXT NOT NULL,
|
|
5
|
+
method TEXT NOT NULL, headers TEXT NOT NULL, expect_status TEXT NOT NULL, expect_body TEXT NOT NULL, interval_min INTEGER NOT NULL,
|
|
6
|
+
timeout_ms INTEGER NOT NULL, env TEXT NOT NULL DEFAULT '', enabled BOOLEAN NOT NULL, created_by TEXT NOT NULL,
|
|
7
|
+
created_ms DOUBLE PRECISION NOT NULL, state TEXT NOT NULL DEFAULT 'pending', last_run_ms DOUBLE PRECISION,
|
|
8
|
+
last_duration_ms DOUBLE PRECISION, last_status INTEGER, last_error TEXT, tls_expires_ms DOUBLE PRECISION, next_ms DOUBLE PRECISION NOT NULL
|
|
9
|
+
);
|
|
10
|
+
CREATE INDEX ix_uptime_checks_project ON uptime_checks (project_id);
|
|
11
|
+
CREATE INDEX ix_uptime_checks_due ON uptime_checks (next_ms) WHERE enabled;
|
|
12
|
+
CREATE TABLE uptime_incidents (
|
|
13
|
+
id TEXT PRIMARY KEY, check_id TEXT NOT NULL REFERENCES uptime_checks (id) ON DELETE CASCADE, project_id TEXT NOT NULL,
|
|
14
|
+
start_ms DOUBLE PRECISION NOT NULL, end_ms DOUBLE PRECISION, reason TEXT NOT NULL
|
|
15
|
+
);
|
|
16
|
+
CREATE INDEX ix_uptime_incidents_project ON uptime_incidents (project_id, start_ms);
|
|
17
|
+
CREATE TABLE status_pages (
|
|
18
|
+
project_id TEXT PRIMARY KEY REFERENCES projects (id) ON DELETE CASCADE, token_hash TEXT NOT NULL UNIQUE, title TEXT NOT NULL,
|
|
19
|
+
created_by TEXT NOT NULL, created_ms DOUBLE PRECISION NOT NULL, views INTEGER NOT NULL DEFAULT 0
|
|
20
|
+
);
|
|
21
|
+
`;
|
|
22
|
+
//# sourceMappingURL=schema-uptime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-uptime.js","sourceRoot":"","sources":["../../src/db/schema-uptime.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;CAmB/B,CAAC"}
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EA0NvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,uHAAuH,CAAC"}
|
package/dist/db/schema.js
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
+
import { ALERTS2_MIGRATION } from "./schema-alerts.js";
|
|
1
2
|
import { AUTH_MIGRATION } from "./schema-auth.js";
|
|
3
|
+
import { LOGS_MIGRATION } from "./schema-logs.js";
|
|
4
|
+
import { BILLING_MIGRATION } from "./schema-billing.js";
|
|
2
5
|
import { MAIL_MIGRATION } from "./schema-mail.js";
|
|
3
6
|
import { NOTIFY_MIGRATION } from "./schema-notify.js";
|
|
7
|
+
import { ISSUES_MIGRATION } from "./schema-issues.js";
|
|
8
|
+
import { OAUTH_MIGRATION } from "./schema-oauth.js";
|
|
9
|
+
import { SAVED_MIGRATION } from "./schema-saved.js";
|
|
10
|
+
import { SCIM_MIGRATION } from "./schema-scim.js";
|
|
4
11
|
import { SEARCH_MIGRATION } from "./schema-search.js";
|
|
12
|
+
import { SOURCEMAPS_MIGRATION } from "./schema-sourcemaps.js";
|
|
13
|
+
import { SLOS_MIGRATION } from "./schema-slos.js";
|
|
5
14
|
import { SSO_MIGRATION } from "./schema-sso.js";
|
|
15
|
+
import { UPTIME_MIGRATION } from "./schema-uptime.js";
|
|
16
|
+
import { TAGS_MIGRATION } from "./schema-tags.js";
|
|
17
|
+
import { TEAM_MIGRATION } from "./schema-team.js";
|
|
18
|
+
import { SAVED_MOVE_MIGRATION } from "./schema-saved-move.js";
|
|
6
19
|
// Cloud schema, one entry per version. Never edit a shipped entry: add a new one (docs/CONTRACT.md, "Cloud storage").
|
|
7
20
|
export const MIGRATIONS = [
|
|
8
21
|
`
|
|
@@ -205,6 +218,23 @@ CREATE INDEX ix_metric_1h_time ON metric_1h (project_id, bucket_ms);
|
|
|
205
218
|
MAIL_MIGRATION,
|
|
206
219
|
NOTIFY_MIGRATION,
|
|
207
220
|
SEARCH_MIGRATION,
|
|
221
|
+
OAUTH_MIGRATION,
|
|
222
|
+
ISSUES_MIGRATION,
|
|
223
|
+
ALERTS2_MIGRATION,
|
|
224
|
+
SLOS_MIGRATION,
|
|
225
|
+
SAVED_MIGRATION,
|
|
226
|
+
BILLING_MIGRATION,
|
|
227
|
+
SCIM_MIGRATION,
|
|
228
|
+
TAGS_MIGRATION,
|
|
229
|
+
UPTIME_MIGRATION,
|
|
230
|
+
SOURCEMAPS_MIGRATION,
|
|
231
|
+
LOGS_MIGRATION,
|
|
232
|
+
// Migration 20: an alert event names the problem it is part of (docs/CONTRACT.md, "Problems").
|
|
233
|
+
`
|
|
234
|
+
ALTER TABLE alert_events ADD COLUMN problem TEXT NOT NULL DEFAULT '';
|
|
235
|
+
`,
|
|
236
|
+
TEAM_MIGRATION,
|
|
237
|
+
SAVED_MOVE_MIGRATION,
|
|
208
238
|
];
|
|
209
239
|
export const MIGRATIONS_TABLE = `CREATE TABLE IF NOT EXISTS wizelens_migrations (version INTEGER PRIMARY KEY, applied_ms DOUBLE PRECISION NOT NULL)`;
|
|
210
240
|
//# sourceMappingURL=schema.js.map
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,sHAAsH;AACtH,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ED;IACC;;;;;;;;;;CAUD;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGD;IACC,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;IACd,+FAA+F;IAC/F;;CAED;IACC,cAAc;IACd,oBAAoB;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,oHAAoH,CAAC"}
|
package/dist/http/http.d.ts
CHANGED
|
@@ -2,7 +2,11 @@ import type { IncomingMessage, ServerResponse } from "node:http";
|
|
|
2
2
|
/** A failure that becomes one JSON error answer. */
|
|
3
3
|
export declare class HttpError extends Error {
|
|
4
4
|
readonly status: number;
|
|
5
|
-
|
|
5
|
+
/** More fields for the JSON answer, for example the plan a 402 needs. */
|
|
6
|
+
readonly extra: Record<string, unknown>;
|
|
7
|
+
constructor(status: number, message: string,
|
|
8
|
+
/** More fields for the JSON answer, for example the plan a 402 needs. */
|
|
9
|
+
extra?: Record<string, unknown>);
|
|
6
10
|
}
|
|
7
11
|
export declare const fail: (status: number, message: string) => never;
|
|
8
12
|
export declare function sendJson(res: ServerResponse, status: number, value: unknown, headers?: Record<string, string | string[]>): void;
|
package/dist/http/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIjE,oDAAoD;AACpD,qBAAa,SAAU,SAAQ,KAAK;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIjE,oDAAoD;AACpD,qBAAa,SAAU,SAAQ,KAAK;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAJzC,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf,yEAAyE;IAChE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAG7C;CACF;AAED,eAAO,MAAM,IAAI,WAAY,MAAM,WAAW,MAAM,KAAG,KAEtD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAM,GAAG,IAAI,CAGnI;AAED,4EAA4E;AAC5E,wBAAsB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvE;AAED,oEAAoE;AACpE,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASzF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM/E;AAED,wFAAwF;AACxF,eAAO,MAAM,MAAM,SAAU,MAAM,SAAS,MAAM,WAAW,MAAM,UAAU,OAAO,KAAG,MACgC,CAAC;AAExH,eAAO,MAAM,QAAQ,QAAS,eAAe,KAAG,MAAM,GAAG,SAGxD,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,MAAM,CAKvF"}
|
package/dist/http/http.js
CHANGED
|
@@ -2,9 +2,13 @@ const MAX_JSON = 1024 * 1024;
|
|
|
2
2
|
/** A failure that becomes one JSON error answer. */
|
|
3
3
|
export class HttpError extends Error {
|
|
4
4
|
status;
|
|
5
|
-
|
|
5
|
+
extra;
|
|
6
|
+
constructor(status, message,
|
|
7
|
+
/** More fields for the JSON answer, for example the plan a 402 needs. */
|
|
8
|
+
extra = {}) {
|
|
6
9
|
super(message);
|
|
7
10
|
this.status = status;
|
|
11
|
+
this.extra = extra;
|
|
8
12
|
}
|
|
9
13
|
}
|
|
10
14
|
export const fail = (status, message) => {
|
package/dist/http/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7B,oDAAoD;AACpD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEvB,MAAM;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CloudApp } from "./app.js";
|
|
2
|
-
/** Background work: retention, old services, stats, rollups, sessions, alert rules, team and health notices, and
|
|
2
|
+
/** Background work: retention, old services, stats, rollups, sessions, alert rules, team and health notices, digests, uptime checks, usage, and the Stripe meter. Returns a function that stops it. */
|
|
3
3
|
export declare function startJobs(app: CloudApp): () => void;
|
|
4
4
|
//# sourceMappingURL=jobs.d.ts.map
|
package/dist/jobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAuCzC,uMAAuM;AACvM,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,IAAI,CAyBnD"}
|
package/dist/jobs.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { evaluateAll } from "./alerts/evaluate.js";
|
|
2
|
+
import { sendUsageNotices } from "./billing/notices.js";
|
|
2
3
|
import { pruneAuthRows } from "./repo/auth-prune.js";
|
|
4
|
+
import { pruneAlertValues } from "./repo/alert-events.js";
|
|
3
5
|
import { pruneServices } from "./repo/services.js";
|
|
4
6
|
import { sendDigests } from "./notify/digest.js";
|
|
5
7
|
import { checkHealth } from "./notify/health.js";
|
|
6
8
|
import { sendTeamNotices } from "./notify/team.js";
|
|
9
|
+
import { pruneIncidents } from "./repo/uptime.js";
|
|
10
|
+
import { runUptime } from "./uptime/run.js";
|
|
7
11
|
const HOUSEKEEPING_MS = 10 * 60_000;
|
|
8
12
|
const SETTLE_MS = 3_000;
|
|
9
13
|
/** A settle run this big means a backlog: settle again at once instead of waiting for the next tick. */
|
|
@@ -11,6 +15,9 @@ const SETTLE_BACKLOG = 1_000;
|
|
|
11
15
|
const ROLLUP_PRUNE_MS = 60_000;
|
|
12
16
|
const NOTICE_MS = 60_000;
|
|
13
17
|
const DIGEST_MS = 10 * 60_000;
|
|
18
|
+
const UPTIME_MS = 15_000;
|
|
19
|
+
const USAGE_MS = 60_000;
|
|
20
|
+
const REPORT_MS = 10 * 60_000;
|
|
14
21
|
/** Run `job` now and then every `everyMs`. A failed run logs and waits for the next one. */
|
|
15
22
|
function every(name, everyMs, job) {
|
|
16
23
|
let running = false;
|
|
@@ -28,26 +35,32 @@ function every(name, everyMs, job) {
|
|
|
28
35
|
first.unref();
|
|
29
36
|
return () => (clearInterval(timer), clearTimeout(first));
|
|
30
37
|
}
|
|
31
|
-
/** Background work: retention, old services, stats, rollups, sessions, alert rules, team and health notices, and
|
|
38
|
+
/** Background work: retention, old services, stats, rollups, sessions, alert rules, team and health notices, digests, uptime checks, usage, and the Stripe meter. Returns a function that stops it. */
|
|
32
39
|
export function startJobs(app) {
|
|
33
40
|
const now = app.config.now;
|
|
34
41
|
const stops = [
|
|
35
42
|
every("retention", HOUSEKEEPING_MS, () => app.telemetry.prune(now())),
|
|
36
43
|
every("services", HOUSEKEEPING_MS, () => pruneServices(app.db, now())),
|
|
37
44
|
every("settle", SETTLE_MS, async () => {
|
|
38
|
-
const
|
|
45
|
+
const defaultFacts = { slowQueryMs: app.config.slowQueryMs, nPlusOneThreshold: app.config.nPlusOneThreshold };
|
|
46
|
+
const o = { defaultRetentionDays: app.config.retentionDays, defaultFacts, onSettled: (p) => app.changes.emit(p) };
|
|
39
47
|
while ((await app.telemetry.settle(now(), o)) >= SETTLE_BACKLOG)
|
|
40
48
|
;
|
|
41
49
|
}),
|
|
42
50
|
every("rollups", ROLLUP_PRUNE_MS, () => app.telemetry.pruneRollups(now())),
|
|
43
51
|
every("sessions", HOUSEKEEPING_MS, () => pruneAuthRows(app.db)),
|
|
44
52
|
every("alerts", app.config.alertIntervalMs, () => evaluateAll(app)),
|
|
53
|
+
every("alert values", HOUSEKEEPING_MS, () => pruneAlertValues(app.db, now())),
|
|
45
54
|
every("team notices", NOTICE_MS, async () => {
|
|
46
55
|
while ((await sendTeamNotices(app)) > 0)
|
|
47
56
|
;
|
|
48
57
|
}),
|
|
49
58
|
every("project health", HOUSEKEEPING_MS, () => checkHealth(app)),
|
|
50
59
|
every("digests", DIGEST_MS, () => sendDigests(app)),
|
|
60
|
+
every("uptime", UPTIME_MS, () => runUptime(app)),
|
|
61
|
+
every("uptime incidents", HOUSEKEEPING_MS, () => pruneIncidents(app.db, now())),
|
|
62
|
+
every("usage", USAGE_MS, async () => (await app.billing.usage.flush(), await sendUsageNotices(app))),
|
|
63
|
+
...(app.billing.report ? [every("billing report", REPORT_MS, app.billing.report)] : []),
|
|
51
64
|
];
|
|
52
65
|
return () => stops.forEach((stop) => stop());
|
|
53
66
|
}
|
package/dist/jobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type EmailContent } from "./content.js";
|
|
2
|
+
export interface UsageNotice {
|
|
3
|
+
org: string;
|
|
4
|
+
plan: string;
|
|
5
|
+
usedGb: number;
|
|
6
|
+
includedGb: number;
|
|
7
|
+
/** 80 or 100. */
|
|
8
|
+
percent: number;
|
|
9
|
+
/** Team and Business keep taking data past the included GB, at extra cost. */
|
|
10
|
+
overage: boolean;
|
|
11
|
+
url: string;
|
|
12
|
+
}
|
|
13
|
+
/** 80% or 100% of the plan's included GB this month. */
|
|
14
|
+
export declare function usageNotice(n: UsageNotice): EmailContent;
|
|
15
|
+
/** The spend cap stopped ingest. */
|
|
16
|
+
export declare function spendCapReached(org: string, capUsd: number, url: string): EmailContent;
|
|
17
|
+
//# sourceMappingURL=emails-billing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emails-billing.d.ts","sourceRoot":"","sources":["../../src/mail/emails-billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,cAAc,CAAC;AAK9D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAOD,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,YAAY,CAYxD;AAED,oCAAoC;AACpC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAWtF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { facts, text } from "./content.js";
|
|
2
|
+
const gb = (n) => `${n >= 100 ? Math.round(n) : Math.round(n * 10) / 10} GB`;
|
|
3
|
+
const footer = (org) => `You get this because you are an owner or admin of ${org}.`;
|
|
4
|
+
function whatNext(n) {
|
|
5
|
+
if (n.percent < 100)
|
|
6
|
+
return n.overage ? "Past the included GB, data keeps coming in and each extra GB is billed." : "At 100%, data stops until the 1st (UTC). Upgrade to keep it coming.";
|
|
7
|
+
return n.overage ? "Data keeps coming in. Each extra GB is billed at the end of the month." : "New data is refused until the 1st (UTC). Upgrade to accept it again now.";
|
|
8
|
+
}
|
|
9
|
+
/** 80% or 100% of the plan's included GB this month. */
|
|
10
|
+
export function usageNotice(n) {
|
|
11
|
+
const full = n.percent >= 100;
|
|
12
|
+
return {
|
|
13
|
+
kind: "billing",
|
|
14
|
+
subject: `${n.org} used ${n.percent}% of its WizeLens data for this month`,
|
|
15
|
+
preview: `${gb(n.usedGb)} of ${gb(n.includedGb)} on the ${n.plan} plan.`,
|
|
16
|
+
heading: full ? `${n.org} used all of this month's data.` : `${n.org} used ${n.percent}% of this month's data.`,
|
|
17
|
+
tone: full && !n.overage ? "bad" : "warn",
|
|
18
|
+
blocks: [text(whatNext(n)), facts([["Plan", n.plan], ["Used this month", gb(n.usedGb)], ["Included", gb(n.includedGb)]])],
|
|
19
|
+
action: { label: full && !n.overage ? "Upgrade" : "Open Billing", url: n.url },
|
|
20
|
+
footer: footer(n.org),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** The spend cap stopped ingest. */
|
|
24
|
+
export function spendCapReached(org, capUsd, url) {
|
|
25
|
+
return {
|
|
26
|
+
kind: "billing",
|
|
27
|
+
subject: `${org} reached its WizeLens spend cap`,
|
|
28
|
+
preview: `Extra data reached the $${capUsd} cap, so new data is refused until the 1st.`,
|
|
29
|
+
heading: `${org} reached its spend cap.`,
|
|
30
|
+
tone: "bad",
|
|
31
|
+
blocks: [text(`Extra data this month reached the cap of $${capUsd} an owner set. New data is refused until the 1st (UTC), or until an owner raises the cap.`)],
|
|
32
|
+
action: { label: "Open Billing", url },
|
|
33
|
+
footer: footer(org),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=emails-billing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emails-billing.js","sourceRoot":"","sources":["../../src/mail/emails-billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;AACrF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,qDAAqD,GAAG,GAAG,CAAC;AAc5F,SAAS,QAAQ,CAAC,CAAc;IAC9B,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC,qEAAqE,CAAC;IAC1L,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC,0EAA0E,CAAC;AAC3K,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,WAAW,CAAC,CAAc;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,uCAAuC;QAC1E,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,QAAQ;QACxE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,iCAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,yBAAyB;QAC/G,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QACzC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QAC9E,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,MAAc,EAAE,GAAW;IACtE,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,GAAG,iCAAiC;QAChD,OAAO,EAAE,2BAA2B,MAAM,6CAA6C;QACvF,OAAO,EAAE,GAAG,GAAG,yBAAyB;QACxC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,CAAC,IAAI,CAAC,6CAA6C,MAAM,2FAA2F,CAAC,CAAC;QAC9J,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;KACpB,CAAC;AACJ,CAAC"}
|
package/dist/mail/emails.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Notice } from "
|
|
1
|
+
import type { Notice } from "@wizeworks/lens-hub/kit";
|
|
2
2
|
import { type EmailContent } from "./content.js";
|
|
3
3
|
export declare const verifyEmail: (url: string) => EmailContent;
|
|
4
4
|
export declare const resetPassword: (url: string) => EmailContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/mail/emails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/mail/emails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,cAAc,CAAC;AAUpE,eAAO,MAAM,WAAW,QAAS,MAAM,iBACsI,CAAC;AAE9K,eAAO,MAAM,aAAa,QAAS,MAAM,iBAIrC,CAAC;AAEL,eAAO,MAAM,WAAW,aAAc,MAAM,OAAO,MAAM,iBAIrD,CAAC;AAEL,eAAO,MAAM,aAAa,QAAS,MAAM,iBAIrC,CAAC;AAEL,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAW5F;AAWD,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAY7C"}
|
package/dist/mail/emails.js
CHANGED
|
@@ -30,9 +30,12 @@ export function invite(inviter, org, role, url) {
|
|
|
30
30
|
footer: `${inviter} sent this invite. If you do not know them, ignore it.`,
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
const VERB = { fired: "Alert", resolved: "Resolved", test: "Test" };
|
|
34
|
-
const TONE = { fired: "bad", resolved: "good", test: "neutral" };
|
|
33
|
+
const VERB = { fired: "Alert", resolved: "Resolved", remind: "Still firing", test: "Test" };
|
|
34
|
+
const TONE = { fired: "bad", resolved: "good", remind: "bad", test: "neutral" };
|
|
35
35
|
const number = (v) => (v === null ? "no data" : String(Math.round(v * 100) / 100));
|
|
36
|
+
/** The line a rule watches: a fixed threshold, or the normal value and how far above it alerts. */
|
|
37
|
+
const lineRows = (n) => (n.baseline ? [["Normal", number(n.baseline.normal)], ["Alerts above", number(n.baseline.upper)]] : [["Threshold", number(n.threshold)]]);
|
|
38
|
+
const problemBlocks = (n) => (n.problem ? [note(`Part of a problem: ${n.problem.title}.${n.problem.cause ? ` Suspected cause: ${n.problem.cause}` : ""}`)] : []);
|
|
36
39
|
export function alert(n) {
|
|
37
40
|
const when = `${new Date(n.timeMs).toISOString().slice(0, 16).replace("T", " ")} UTC`;
|
|
38
41
|
return {
|
|
@@ -41,8 +44,8 @@ export function alert(n) {
|
|
|
41
44
|
preview: n.message,
|
|
42
45
|
heading: `${VERB[n.state]}: ${n.rule}.`,
|
|
43
46
|
tone: TONE[n.state],
|
|
44
|
-
blocks: [text(n.message), facts([["Project", n.project], ["Value", number(n.value)],
|
|
45
|
-
action: { label: "Open the alert", url: n.url },
|
|
47
|
+
blocks: [text(n.message), ...problemBlocks(n), facts([["Project", n.project], ["Value", number(n.value)], ...lineRows(n), ["When", when]])],
|
|
48
|
+
action: n.problem ? { label: "Open the problem", url: n.problem.url } : { label: "Open the alert", url: n.url },
|
|
46
49
|
footer: `You get this because an alert rule in ${n.project} emails you. Change it on the Alerts page.`,
|
|
47
50
|
};
|
|
48
51
|
}
|
package/dist/mail/emails.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/mail/emails.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpE,6GAA6G;AAC7G,MAAM,MAAM,GAAG,0EAA0E,CAAC;AAC1F,MAAM,cAAc,GAAG,mEAAmE,CAAC;AAE3F,SAAS,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,KAAe,EAAE,MAAsC;IACxG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAChK,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CACzC,OAAO,CAAC,iCAAiC,EAAE,qBAAqB,EAAE,CAAC,qEAAqE,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;AAE9K,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAC3C,OAAO,CAAC,8BAA8B,EAAE,sBAAsB,EAAE,CAAC,2FAA2F,EAAE,wCAAwC,CAAC,EAAE;IACvM,KAAK,EAAE,oBAAoB;IAC3B,GAAG;CACJ,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,GAAW,EAAE,EAAE,CAC3D,OAAO,CAAC,iCAAiC,EAAE,wBAAwB,EAAE,CAAC,wDAAwD,QAAQ,GAAG,EAAE,gEAAgE,CAAC,EAAE;IAC5M,KAAK,EAAE,oBAAoB;IAC3B,GAAG;CACJ,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAC3C,OAAO,CAAC,wCAAwC,EAAE,sBAAsB,EAAE,CAAC,wFAAwF,CAAC,EAAE;IACpK,KAAK,EAAE,mBAAmB;IAC1B,GAAG;CACJ,CAAC,CAAC;AAEL,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY,EAAE,GAAW;IAC5E,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,OAAO,mBAAmB,GAAG,cAAc;QACvD,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,GAAG;QAClC,OAAO,EAAE,QAAQ,GAAG,GAAG;QACvB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,GAAG,mBAAmB,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChJ,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,GAAG,OAAO,wDAAwD;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/mail/emails.ts"],"names":[],"mappings":"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"}
|
package/dist/mail/mailer.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CloudConfig } from "../config.js";
|
|
2
2
|
import type { Queryable } from "../db/db.js";
|
|
3
3
|
/** "account": mail the person asked for. "security": notices about their own account. The rest: mail someone or something else started. */
|
|
4
|
-
export type MailKind = "account" | "security" | "invite" | "alert" | "team" | "health" | "digest";
|
|
4
|
+
export type MailKind = "account" | "security" | "invite" | "alert" | "team" | "health" | "digest" | "billing";
|
|
5
5
|
export interface Mail {
|
|
6
6
|
kind: MailKind;
|
|
7
7
|
to: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../src/mail/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,2IAA2I;AAC3I,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../src/mail/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,2IAA2I;AAC3I,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAK9G,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,MAAM;IACrB,6GAA6G;IAC7G,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,oIAAoI;IACpI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAkCD,4EAA4E;AAC5E,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/mail/samples.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/mail/samples.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA2DjD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA0BhD,CAAC"}
|
package/dist/mail/samples.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as emails from "./emails.js";
|
|
2
|
+
import { spendCapReached, usageNotice } from "./emails-billing.js";
|
|
2
3
|
import { digest } from "./emails-digest.js";
|
|
3
4
|
import { projectBack, projectQuiet } from "./emails-health.js";
|
|
4
5
|
import * as security from "./emails-security.js";
|
|
@@ -10,6 +11,7 @@ const STOP = `${APP}/api/mail/unsubscribe?token=sample`;
|
|
|
10
11
|
const AT = Date.UTC(2026, 9, 18, 14, 30);
|
|
11
12
|
const LINKS = { account: `${APP}/#/account`, forgot: `${APP}/#/forgot-password` };
|
|
12
13
|
const notice = (state) => ({
|
|
14
|
+
ruleId: "r1",
|
|
13
15
|
rule: "Checkout errors",
|
|
14
16
|
project: "shop",
|
|
15
17
|
state,
|
|
@@ -19,6 +21,16 @@ const notice = (state) => ({
|
|
|
19
21
|
timeMs: AT,
|
|
20
22
|
url: `${APP}/#/alerts?project=p1`,
|
|
21
23
|
});
|
|
24
|
+
/** An "above normal" alert that is part of a problem. */
|
|
25
|
+
const problemNotice = {
|
|
26
|
+
...notice("fired"),
|
|
27
|
+
rule: "Checkout p95",
|
|
28
|
+
message: "p95 duration is above normal on pay POST /api/charge: 412 ms (normal 31 ms, alerts above 46 ms)",
|
|
29
|
+
value: 412,
|
|
30
|
+
threshold: 3,
|
|
31
|
+
baseline: { normal: 31, upper: 46 },
|
|
32
|
+
problem: { id: "k3x9a", title: "Error rate above normal on pay and 2 more", cause: "pay 2.0.0 was released as it started.", url: `${APP}/#/problems?project=p1&problem=k3x9a` },
|
|
33
|
+
};
|
|
22
34
|
const h = (value, previous) => ({ value, previous, change: ((value - previous) / previous) * 100, series: [] });
|
|
23
35
|
const WEEK = {
|
|
24
36
|
empty: false,
|
|
@@ -46,6 +58,7 @@ export const SAMPLES = {
|
|
|
46
58
|
invite: emails.invite("Olive", "Acme", "member", LINK),
|
|
47
59
|
"alert-fired": emails.alert(notice("fired")),
|
|
48
60
|
"alert-resolved": emails.alert(notice("resolved")),
|
|
61
|
+
"alert-problem": emails.alert(problemNotice),
|
|
49
62
|
"security-password": security.passwordChanged(LINKS, AT),
|
|
50
63
|
"security-email": security.emailChanged(LINKS, "olive@new.io", AT),
|
|
51
64
|
"security-2fa-off": security.twoFactorChanged(LINKS, false, AT),
|
|
@@ -58,6 +71,10 @@ export const SAMPLES = {
|
|
|
58
71
|
"health-quiet": projectQuiet("shop", "Acme", AT, AT + 3 * 3_600_000, `${APP}/#/`, STOP),
|
|
59
72
|
"health-back": projectBack("shop", "Acme", 5 * 3_600_000, `${APP}/#/`, STOP),
|
|
60
73
|
"digest-weekly": digest("shop", "Acme", "weekly", WEEK, { project: `${APP}/#/`, stop: STOP }),
|
|
74
|
+
"billing-usage-80": usageNotice({ org: "Acme", plan: "Free", usedGb: 8.1, includedGb: 10, percent: 80, overage: false, url: `${APP}/#/team/billing` }),
|
|
75
|
+
"billing-usage-100": usageNotice({ org: "Acme", plan: "Free", usedGb: 10, includedGb: 10, percent: 100, overage: false, url: `${APP}/#/team/billing` }),
|
|
76
|
+
"billing-usage-team": usageNotice({ org: "Acme", plan: "Team", usedGb: 50.2, includedGb: 50, percent: 100, overage: true, url: `${APP}/#/team/billing` }),
|
|
77
|
+
"billing-spend-cap": spendCapReached("Acme", 40, `${APP}/#/team/billing`),
|
|
61
78
|
"digest-daily": digest("shop", "Acme", "daily", { ...WEEK, alertsFired: 0, errorRate: h(0.9, 1.4), errors: [] }, { project: `${APP}/#/`, stop: STOP }),
|
|
62
79
|
};
|
|
63
80
|
//# sourceMappingURL=samples.js.map
|