@sylphx/contract 0.2.0
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/CHANGELOG.md +44 -0
- package/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/endpoint.d.ts +65 -0
- package/dist/endpoint.d.ts.map +1 -0
- package/dist/endpoint.js +22 -0
- package/dist/endpoints/admin-ai-playground.d.ts +93 -0
- package/dist/endpoints/admin-ai-playground.d.ts.map +1 -0
- package/dist/endpoints/admin-ai-playground.js +37 -0
- package/dist/endpoints/admin-anomalies.d.ts +108 -0
- package/dist/endpoints/admin-anomalies.d.ts.map +1 -0
- package/dist/endpoints/admin-anomalies.js +72 -0
- package/dist/endpoints/admin-apm.d.ts +102 -0
- package/dist/endpoints/admin-apm.d.ts.map +1 -0
- package/dist/endpoints/admin-apm.js +70 -0
- package/dist/endpoints/admin-audit.d.ts +714 -0
- package/dist/endpoints/admin-audit.d.ts.map +1 -0
- package/dist/endpoints/admin-audit.js +494 -0
- package/dist/endpoints/admin-billing.d.ts +82 -0
- package/dist/endpoints/admin-billing.d.ts.map +1 -0
- package/dist/endpoints/admin-billing.js +190 -0
- package/dist/endpoints/admin-bootstrap.d.ts +16 -0
- package/dist/endpoints/admin-bootstrap.d.ts.map +1 -0
- package/dist/endpoints/admin-bootstrap.js +28 -0
- package/dist/endpoints/admin-broadcasts.d.ts +105 -0
- package/dist/endpoints/admin-broadcasts.d.ts.map +1 -0
- package/dist/endpoints/admin-broadcasts.js +60 -0
- package/dist/endpoints/admin-builds.d.ts +33 -0
- package/dist/endpoints/admin-builds.d.ts.map +1 -0
- package/dist/endpoints/admin-builds.js +36 -0
- package/dist/endpoints/admin-config.d.ts +180 -0
- package/dist/endpoints/admin-config.d.ts.map +1 -0
- package/dist/endpoints/admin-config.js +108 -0
- package/dist/endpoints/admin-consent.d.ts +123 -0
- package/dist/endpoints/admin-consent.d.ts.map +1 -0
- package/dist/endpoints/admin-consent.js +126 -0
- package/dist/endpoints/admin-env-services.d.ts +28 -0
- package/dist/endpoints/admin-env-services.d.ts.map +1 -0
- package/dist/endpoints/admin-env-services.js +35 -0
- package/dist/endpoints/admin-impersonation.d.ts +105 -0
- package/dist/endpoints/admin-impersonation.d.ts.map +1 -0
- package/dist/endpoints/admin-impersonation.js +88 -0
- package/dist/endpoints/admin-invitations.d.ts +73 -0
- package/dist/endpoints/admin-invitations.d.ts.map +1 -0
- package/dist/endpoints/admin-invitations.js +55 -0
- package/dist/endpoints/admin-jwt-keys.d.ts +75 -0
- package/dist/endpoints/admin-jwt-keys.d.ts.map +1 -0
- package/dist/endpoints/admin-jwt-keys.js +63 -0
- package/dist/endpoints/admin-logs.d.ts +109 -0
- package/dist/endpoints/admin-logs.d.ts.map +1 -0
- package/dist/endpoints/admin-logs.js +78 -0
- package/dist/endpoints/admin-plans.d.ts +63 -0
- package/dist/endpoints/admin-plans.d.ts.map +1 -0
- package/dist/endpoints/admin-plans.js +47 -0
- package/dist/endpoints/admin-project-users.d.ts +148 -0
- package/dist/endpoints/admin-project-users.d.ts.map +1 -0
- package/dist/endpoints/admin-project-users.js +89 -0
- package/dist/endpoints/admin-projects.d.ts +124 -0
- package/dist/endpoints/admin-projects.d.ts.map +1 -0
- package/dist/endpoints/admin-projects.js +74 -0
- package/dist/endpoints/admin-quotas.d.ts +98 -0
- package/dist/endpoints/admin-quotas.d.ts.map +1 -0
- package/dist/endpoints/admin-quotas.js +67 -0
- package/dist/endpoints/admin-rate-limits.d.ts +50 -0
- package/dist/endpoints/admin-rate-limits.d.ts.map +1 -0
- package/dist/endpoints/admin-rate-limits.js +53 -0
- package/dist/endpoints/admin-reconcile.d.ts +28 -0
- package/dist/endpoints/admin-reconcile.d.ts.map +1 -0
- package/dist/endpoints/admin-reconcile.js +33 -0
- package/dist/endpoints/admin-resources.d.ts +51 -0
- package/dist/endpoints/admin-resources.d.ts.map +1 -0
- package/dist/endpoints/admin-resources.js +53 -0
- package/dist/endpoints/admin-secrets.d.ts +41 -0
- package/dist/endpoints/admin-secrets.d.ts.map +1 -0
- package/dist/endpoints/admin-secrets.js +33 -0
- package/dist/endpoints/admin-services.d.ts +29 -0
- package/dist/endpoints/admin-services.d.ts.map +1 -0
- package/dist/endpoints/admin-services.js +35 -0
- package/dist/endpoints/admin-tasks.d.ts +186 -0
- package/dist/endpoints/admin-tasks.d.ts.map +1 -0
- package/dist/endpoints/admin-tasks.js +67 -0
- package/dist/endpoints/admin-tenants.d.ts +26 -0
- package/dist/endpoints/admin-tenants.d.ts.map +1 -0
- package/dist/endpoints/admin-tenants.js +30 -0
- package/dist/endpoints/admin-traces.d.ts +124 -0
- package/dist/endpoints/admin-traces.d.ts.map +1 -0
- package/dist/endpoints/admin-traces.js +59 -0
- package/dist/endpoints/admin-users.d.ts +106 -0
- package/dist/endpoints/admin-users.d.ts.map +1 -0
- package/dist/endpoints/admin-users.js +83 -0
- package/dist/endpoints/admin-webhook-signature-versions.d.ts +59 -0
- package/dist/endpoints/admin-webhook-signature-versions.d.ts.map +1 -0
- package/dist/endpoints/admin-webhook-signature-versions.js +57 -0
- package/dist/endpoints/ai-admin.d.ts +30 -0
- package/dist/endpoints/ai-admin.d.ts.map +1 -0
- package/dist/endpoints/ai-admin.js +59 -0
- package/dist/endpoints/analytics-admin.d.ts +279 -0
- package/dist/endpoints/analytics-admin.d.ts.map +1 -0
- package/dist/endpoints/analytics-admin.js +308 -0
- package/dist/endpoints/analytics.d.ts +58 -0
- package/dist/endpoints/analytics.d.ts.map +1 -0
- package/dist/endpoints/analytics.js +43 -0
- package/dist/endpoints/audit-chain.d.ts +49 -0
- package/dist/endpoints/audit-chain.d.ts.map +1 -0
- package/dist/endpoints/audit-chain.js +29 -0
- package/dist/endpoints/audit.d.ts +50 -0
- package/dist/endpoints/audit.d.ts.map +1 -0
- package/dist/endpoints/audit.js +30 -0
- package/dist/endpoints/auth-admin.d.ts +65 -0
- package/dist/endpoints/auth-admin.d.ts.map +1 -0
- package/dist/endpoints/auth-admin.js +55 -0
- package/dist/endpoints/auth.d.ts +157 -0
- package/dist/endpoints/auth.d.ts.map +1 -0
- package/dist/endpoints/auth.js +214 -0
- package/dist/endpoints/backups.d.ts +51 -0
- package/dist/endpoints/backups.d.ts.map +1 -0
- package/dist/endpoints/backups.js +47 -0
- package/dist/endpoints/billing-console.d.ts +294 -0
- package/dist/endpoints/billing-console.d.ts.map +1 -0
- package/dist/endpoints/billing-console.js +167 -0
- package/dist/endpoints/billing-settings.d.ts +107 -0
- package/dist/endpoints/billing-settings.d.ts.map +1 -0
- package/dist/endpoints/billing-settings.js +117 -0
- package/dist/endpoints/branch-databases.d.ts +75 -0
- package/dist/endpoints/branch-databases.d.ts.map +1 -0
- package/dist/endpoints/branch-databases.js +61 -0
- package/dist/endpoints/challenge.d.ts +62 -0
- package/dist/endpoints/challenge.d.ts.map +1 -0
- package/dist/endpoints/challenge.js +52 -0
- package/dist/endpoints/ci-settings.d.ts +89 -0
- package/dist/endpoints/ci-settings.d.ts.map +1 -0
- package/dist/endpoints/ci-settings.js +78 -0
- package/dist/endpoints/consent-admin.d.ts +134 -0
- package/dist/endpoints/consent-admin.d.ts.map +1 -0
- package/dist/endpoints/consent-admin.js +83 -0
- package/dist/endpoints/databases.d.ts +251 -0
- package/dist/endpoints/databases.d.ts.map +1 -0
- package/dist/endpoints/databases.js +150 -0
- package/dist/endpoints/deployments.d.ts +280 -0
- package/dist/endpoints/deployments.d.ts.map +1 -0
- package/dist/endpoints/deployments.js +205 -0
- package/dist/endpoints/domains.d.ts +356 -0
- package/dist/endpoints/domains.d.ts.map +1 -0
- package/dist/endpoints/domains.js +149 -0
- package/dist/endpoints/edge-deployments.d.ts +92 -0
- package/dist/endpoints/edge-deployments.d.ts.map +1 -0
- package/dist/endpoints/edge-deployments.js +58 -0
- package/dist/endpoints/email-admin.d.ts +415 -0
- package/dist/endpoints/email-admin.d.ts.map +1 -0
- package/dist/endpoints/email-admin.js +253 -0
- package/dist/endpoints/email.d.ts +37 -0
- package/dist/endpoints/email.d.ts.map +1 -0
- package/dist/endpoints/email.js +42 -0
- package/dist/endpoints/engagement-admin.d.ts +98 -0
- package/dist/endpoints/engagement-admin.d.ts.map +1 -0
- package/dist/endpoints/engagement-admin.js +64 -0
- package/dist/endpoints/env-vars.d.ts +66 -0
- package/dist/endpoints/env-vars.d.ts.map +1 -0
- package/dist/endpoints/env-vars.js +47 -0
- package/dist/endpoints/environments.d.ts +456 -0
- package/dist/endpoints/environments.d.ts.map +1 -0
- package/dist/endpoints/environments.js +237 -0
- package/dist/endpoints/experiments.d.ts +500 -0
- package/dist/endpoints/experiments.d.ts.map +1 -0
- package/dist/endpoints/experiments.js +93 -0
- package/dist/endpoints/flags-admin.d.ts +74 -0
- package/dist/endpoints/flags-admin.d.ts.map +1 -0
- package/dist/endpoints/flags-admin.js +84 -0
- package/dist/endpoints/flags.d.ts +23 -0
- package/dist/endpoints/flags.d.ts.map +1 -0
- package/dist/endpoints/flags.js +17 -0
- package/dist/endpoints/github.d.ts +30 -0
- package/dist/endpoints/github.d.ts.map +1 -0
- package/dist/endpoints/github.js +37 -0
- package/dist/endpoints/image-opt.d.ts +43 -0
- package/dist/endpoints/image-opt.d.ts.map +1 -0
- package/dist/endpoints/image-opt.js +44 -0
- package/dist/endpoints/kv-admin.d.ts +58 -0
- package/dist/endpoints/kv-admin.d.ts.map +1 -0
- package/dist/endpoints/kv-admin.js +69 -0
- package/dist/endpoints/kv.d.ts +63 -0
- package/dist/endpoints/kv.d.ts.map +1 -0
- package/dist/endpoints/kv.js +82 -0
- package/dist/endpoints/monitoring-admin.d.ts +204 -0
- package/dist/endpoints/monitoring-admin.d.ts.map +1 -0
- package/dist/endpoints/monitoring-admin.js +119 -0
- package/dist/endpoints/monitoring.d.ts +63 -0
- package/dist/endpoints/monitoring.d.ts.map +1 -0
- package/dist/endpoints/monitoring.js +27 -0
- package/dist/endpoints/newsletter.d.ts +366 -0
- package/dist/endpoints/newsletter.d.ts.map +1 -0
- package/dist/endpoints/newsletter.js +232 -0
- package/dist/endpoints/notifications-admin.d.ts +268 -0
- package/dist/endpoints/notifications-admin.d.ts.map +1 -0
- package/dist/endpoints/notifications-admin.js +172 -0
- package/dist/endpoints/notifications.d.ts +225 -0
- package/dist/endpoints/notifications.d.ts.map +1 -0
- package/dist/endpoints/notifications.js +150 -0
- package/dist/endpoints/oidc.d.ts +67 -0
- package/dist/endpoints/oidc.d.ts.map +1 -0
- package/dist/endpoints/oidc.js +49 -0
- package/dist/endpoints/organizations.d.ts +702 -0
- package/dist/endpoints/organizations.d.ts.map +1 -0
- package/dist/endpoints/organizations.js +460 -0
- package/dist/endpoints/plans.d.ts +136 -0
- package/dist/endpoints/plans.d.ts.map +1 -0
- package/dist/endpoints/plans.js +83 -0
- package/dist/endpoints/privacy.d.ts +131 -0
- package/dist/endpoints/privacy.d.ts.map +1 -0
- package/dist/endpoints/privacy.js +98 -0
- package/dist/endpoints/project-manifest.d.ts +1044 -0
- package/dist/endpoints/project-manifest.d.ts.map +1 -0
- package/dist/endpoints/project-manifest.js +59 -0
- package/dist/endpoints/projects.d.ts +187 -0
- package/dist/endpoints/projects.d.ts.map +1 -0
- package/dist/endpoints/projects.js +58 -0
- package/dist/endpoints/rate-limits.d.ts +83 -0
- package/dist/endpoints/rate-limits.d.ts.map +1 -0
- package/dist/endpoints/rate-limits.js +54 -0
- package/dist/endpoints/realtime-admin.d.ts +42 -0
- package/dist/endpoints/realtime-admin.d.ts.map +1 -0
- package/dist/endpoints/realtime-admin.js +50 -0
- package/dist/endpoints/realtime.d.ts +35 -0
- package/dist/endpoints/realtime.d.ts.map +1 -0
- package/dist/endpoints/realtime.js +39 -0
- package/dist/endpoints/referrals-admin.d.ts +118 -0
- package/dist/endpoints/referrals-admin.d.ts.map +1 -0
- package/dist/endpoints/referrals-admin.js +59 -0
- package/dist/endpoints/refresh.d.ts +19 -0
- package/dist/endpoints/refresh.d.ts.map +1 -0
- package/dist/endpoints/refresh.js +25 -0
- package/dist/endpoints/regions.d.ts +41 -0
- package/dist/endpoints/regions.d.ts.map +1 -0
- package/dist/endpoints/regions.js +43 -0
- package/dist/endpoints/runners.d.ts +55 -0
- package/dist/endpoints/runners.d.ts.map +1 -0
- package/dist/endpoints/runners.js +45 -0
- package/dist/endpoints/saml.d.ts +147 -0
- package/dist/endpoints/saml.d.ts.map +1 -0
- package/dist/endpoints/saml.js +106 -0
- package/dist/endpoints/search.d.ts +62 -0
- package/dist/endpoints/search.d.ts.map +1 -0
- package/dist/endpoints/search.js +40 -0
- package/dist/endpoints/secrets.d.ts +95 -0
- package/dist/endpoints/secrets.d.ts.map +1 -0
- package/dist/endpoints/secrets.js +81 -0
- package/dist/endpoints/security.d.ts +231 -0
- package/dist/endpoints/security.d.ts.map +1 -0
- package/dist/endpoints/security.js +291 -0
- package/dist/endpoints/service-tokens.d.ts +392 -0
- package/dist/endpoints/service-tokens.d.ts.map +1 -0
- package/dist/endpoints/service-tokens.js +125 -0
- package/dist/endpoints/session-replay.d.ts +142 -0
- package/dist/endpoints/session-replay.d.ts.map +1 -0
- package/dist/endpoints/session-replay.js +53 -0
- package/dist/endpoints/storage-admin.d.ts +96 -0
- package/dist/endpoints/storage-admin.d.ts.map +1 -0
- package/dist/endpoints/storage-admin.js +113 -0
- package/dist/endpoints/storage.d.ts +167 -0
- package/dist/endpoints/storage.d.ts.map +1 -0
- package/dist/endpoints/storage.js +117 -0
- package/dist/endpoints/tasks.d.ts +141 -0
- package/dist/endpoints/tasks.d.ts.map +1 -0
- package/dist/endpoints/tasks.js +97 -0
- package/dist/endpoints/users.d.ts +103 -0
- package/dist/endpoints/users.d.ts.map +1 -0
- package/dist/endpoints/users.js +98 -0
- package/dist/endpoints/webhooks.d.ts +201 -0
- package/dist/endpoints/webhooks.d.ts.map +1 -0
- package/dist/endpoints/webhooks.js +120 -0
- package/dist/errors.d.ts +153 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +73 -0
- package/dist/index.d.ts +12303 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +390 -0
- package/dist/schemas/_primitives.d.ts +37 -0
- package/dist/schemas/_primitives.d.ts.map +1 -0
- package/dist/schemas/_primitives.js +38 -0
- package/dist/schemas/admin-ai-playground.d.ts +128 -0
- package/dist/schemas/admin-ai-playground.d.ts.map +1 -0
- package/dist/schemas/admin-ai-playground.js +84 -0
- package/dist/schemas/admin-anomalies.d.ts +131 -0
- package/dist/schemas/admin-anomalies.d.ts.map +1 -0
- package/dist/schemas/admin-anomalies.js +106 -0
- package/dist/schemas/admin-apm.d.ts +151 -0
- package/dist/schemas/admin-apm.d.ts.map +1 -0
- package/dist/schemas/admin-apm.js +96 -0
- package/dist/schemas/admin-audit.d.ts +625 -0
- package/dist/schemas/admin-audit.d.ts.map +1 -0
- package/dist/schemas/admin-audit.js +508 -0
- package/dist/schemas/admin-billing.d.ts +73 -0
- package/dist/schemas/admin-billing.d.ts.map +1 -0
- package/dist/schemas/admin-billing.js +60 -0
- package/dist/schemas/admin-bootstrap.d.ts +32 -0
- package/dist/schemas/admin-bootstrap.d.ts.map +1 -0
- package/dist/schemas/admin-bootstrap.js +37 -0
- package/dist/schemas/admin-broadcasts.d.ts +181 -0
- package/dist/schemas/admin-broadcasts.d.ts.map +1 -0
- package/dist/schemas/admin-broadcasts.js +93 -0
- package/dist/schemas/admin-builds.d.ts +108 -0
- package/dist/schemas/admin-builds.d.ts.map +1 -0
- package/dist/schemas/admin-builds.js +127 -0
- package/dist/schemas/admin-config.d.ts +248 -0
- package/dist/schemas/admin-config.d.ts.map +1 -0
- package/dist/schemas/admin-config.js +145 -0
- package/dist/schemas/admin-consent.d.ts +129 -0
- package/dist/schemas/admin-consent.d.ts.map +1 -0
- package/dist/schemas/admin-consent.js +76 -0
- package/dist/schemas/admin-env-services.d.ts +63 -0
- package/dist/schemas/admin-env-services.d.ts.map +1 -0
- package/dist/schemas/admin-env-services.js +81 -0
- package/dist/schemas/admin-impersonation.d.ts +150 -0
- package/dist/schemas/admin-impersonation.d.ts.map +1 -0
- package/dist/schemas/admin-impersonation.js +114 -0
- package/dist/schemas/admin-invitations.d.ts +119 -0
- package/dist/schemas/admin-invitations.d.ts.map +1 -0
- package/dist/schemas/admin-invitations.js +80 -0
- package/dist/schemas/admin-jwt-keys.d.ts +130 -0
- package/dist/schemas/admin-jwt-keys.d.ts.map +1 -0
- package/dist/schemas/admin-jwt-keys.js +83 -0
- package/dist/schemas/admin-logs.d.ts +170 -0
- package/dist/schemas/admin-logs.d.ts.map +1 -0
- package/dist/schemas/admin-logs.js +108 -0
- package/dist/schemas/admin-plans.d.ts +92 -0
- package/dist/schemas/admin-plans.d.ts.map +1 -0
- package/dist/schemas/admin-plans.js +62 -0
- package/dist/schemas/admin-project-users.d.ts +183 -0
- package/dist/schemas/admin-project-users.d.ts.map +1 -0
- package/dist/schemas/admin-project-users.js +108 -0
- package/dist/schemas/admin-projects.d.ts +237 -0
- package/dist/schemas/admin-projects.d.ts.map +1 -0
- package/dist/schemas/admin-projects.js +129 -0
- package/dist/schemas/admin-quotas.d.ts +161 -0
- package/dist/schemas/admin-quotas.d.ts.map +1 -0
- package/dist/schemas/admin-quotas.js +107 -0
- package/dist/schemas/admin-rate-limits.d.ts +90 -0
- package/dist/schemas/admin-rate-limits.d.ts.map +1 -0
- package/dist/schemas/admin-rate-limits.js +72 -0
- package/dist/schemas/admin-reconcile.d.ts +89 -0
- package/dist/schemas/admin-reconcile.d.ts.map +1 -0
- package/dist/schemas/admin-reconcile.js +86 -0
- package/dist/schemas/admin-resources.d.ts +129 -0
- package/dist/schemas/admin-resources.d.ts.map +1 -0
- package/dist/schemas/admin-resources.js +143 -0
- package/dist/schemas/admin-secrets.d.ts +113 -0
- package/dist/schemas/admin-secrets.d.ts.map +1 -0
- package/dist/schemas/admin-secrets.js +94 -0
- package/dist/schemas/admin-services.d.ts +71 -0
- package/dist/schemas/admin-services.d.ts.map +1 -0
- package/dist/schemas/admin-services.js +61 -0
- package/dist/schemas/admin-tasks.d.ts +239 -0
- package/dist/schemas/admin-tasks.d.ts.map +1 -0
- package/dist/schemas/admin-tasks.js +103 -0
- package/dist/schemas/admin-tenants.d.ts +45 -0
- package/dist/schemas/admin-tenants.d.ts.map +1 -0
- package/dist/schemas/admin-tenants.js +54 -0
- package/dist/schemas/admin-traces.d.ts +203 -0
- package/dist/schemas/admin-traces.d.ts.map +1 -0
- package/dist/schemas/admin-traces.js +128 -0
- package/dist/schemas/admin-users.d.ts +158 -0
- package/dist/schemas/admin-users.d.ts.map +1 -0
- package/dist/schemas/admin-users.js +110 -0
- package/dist/schemas/admin-webhook-signature-versions.d.ts +103 -0
- package/dist/schemas/admin-webhook-signature-versions.d.ts.map +1 -0
- package/dist/schemas/admin-webhook-signature-versions.js +73 -0
- package/dist/schemas/ai-admin.d.ts +39 -0
- package/dist/schemas/ai-admin.d.ts.map +1 -0
- package/dist/schemas/ai-admin.js +29 -0
- package/dist/schemas/ai.d.ts +120 -0
- package/dist/schemas/ai.d.ts.map +1 -0
- package/dist/schemas/ai.js +84 -0
- package/dist/schemas/analytics-admin.d.ts +104 -0
- package/dist/schemas/analytics-admin.d.ts.map +1 -0
- package/dist/schemas/analytics-admin.js +61 -0
- package/dist/schemas/analytics.d.ts +118 -0
- package/dist/schemas/analytics.d.ts.map +1 -0
- package/dist/schemas/analytics.js +80 -0
- package/dist/schemas/audit-chain.d.ts +81 -0
- package/dist/schemas/audit-chain.d.ts.map +1 -0
- package/dist/schemas/audit-chain.js +62 -0
- package/dist/schemas/auth-admin.d.ts +55 -0
- package/dist/schemas/auth-admin.d.ts.map +1 -0
- package/dist/schemas/auth-admin.js +48 -0
- package/dist/schemas/auth.d.ts +865 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +815 -0
- package/dist/schemas/backups.d.ts +70 -0
- package/dist/schemas/backups.d.ts.map +1 -0
- package/dist/schemas/backups.js +38 -0
- package/dist/schemas/billing-console.d.ts +414 -0
- package/dist/schemas/billing-console.d.ts.map +1 -0
- package/dist/schemas/billing-console.js +298 -0
- package/dist/schemas/billing-settings.d.ts +156 -0
- package/dist/schemas/billing-settings.d.ts.map +1 -0
- package/dist/schemas/billing-settings.js +119 -0
- package/dist/schemas/billing.d.ts +211 -0
- package/dist/schemas/billing.d.ts.map +1 -0
- package/dist/schemas/billing.js +147 -0
- package/dist/schemas/branch-database.d.ts +98 -0
- package/dist/schemas/branch-database.d.ts.map +1 -0
- package/dist/schemas/branch-database.js +68 -0
- package/dist/schemas/challenge.d.ts +104 -0
- package/dist/schemas/challenge.d.ts.map +1 -0
- package/dist/schemas/challenge.js +74 -0
- package/dist/schemas/ci-settings.d.ts +122 -0
- package/dist/schemas/ci-settings.d.ts.map +1 -0
- package/dist/schemas/ci-settings.js +65 -0
- package/dist/schemas/consent-admin.d.ts +187 -0
- package/dist/schemas/consent-admin.d.ts.map +1 -0
- package/dist/schemas/consent-admin.js +114 -0
- package/dist/schemas/consent.d.ts +78 -0
- package/dist/schemas/consent.d.ts.map +1 -0
- package/dist/schemas/consent.js +68 -0
- package/dist/schemas/database.d.ts +104 -0
- package/dist/schemas/database.d.ts.map +1 -0
- package/dist/schemas/database.js +89 -0
- package/dist/schemas/deployment.d.ts +386 -0
- package/dist/schemas/deployment.d.ts.map +1 -0
- package/dist/schemas/deployment.js +282 -0
- package/dist/schemas/domain.d.ts +148 -0
- package/dist/schemas/domain.d.ts.map +1 -0
- package/dist/schemas/domain.js +86 -0
- package/dist/schemas/edge-deployments.d.ts +140 -0
- package/dist/schemas/edge-deployments.d.ts.map +1 -0
- package/dist/schemas/edge-deployments.js +87 -0
- package/dist/schemas/email-admin.d.ts +384 -0
- package/dist/schemas/email-admin.d.ts.map +1 -0
- package/dist/schemas/email-admin.js +313 -0
- package/dist/schemas/email.d.ts +46 -0
- package/dist/schemas/email.d.ts.map +1 -0
- package/dist/schemas/email.js +34 -0
- package/dist/schemas/engagement-admin.d.ts +148 -0
- package/dist/schemas/engagement-admin.d.ts.map +1 -0
- package/dist/schemas/engagement-admin.js +107 -0
- package/dist/schemas/env-var.d.ts +68 -0
- package/dist/schemas/env-var.d.ts.map +1 -0
- package/dist/schemas/env-var.js +52 -0
- package/dist/schemas/environment.d.ts +392 -0
- package/dist/schemas/environment.d.ts.map +1 -0
- package/dist/schemas/environment.js +211 -0
- package/dist/schemas/experiments.d.ts +540 -0
- package/dist/schemas/experiments.d.ts.map +1 -0
- package/dist/schemas/experiments.js +150 -0
- package/dist/schemas/flags-admin.d.ts +112 -0
- package/dist/schemas/flags-admin.d.ts.map +1 -0
- package/dist/schemas/flags-admin.js +84 -0
- package/dist/schemas/flags.d.ts +43 -0
- package/dist/schemas/flags.d.ts.map +1 -0
- package/dist/schemas/flags.js +27 -0
- package/dist/schemas/github.d.ts +34 -0
- package/dist/schemas/github.d.ts.map +1 -0
- package/dist/schemas/github.js +24 -0
- package/dist/schemas/ids.d.ts +39 -0
- package/dist/schemas/ids.d.ts.map +1 -0
- package/dist/schemas/ids.js +26 -0
- package/dist/schemas/image-opt.d.ts +70 -0
- package/dist/schemas/image-opt.d.ts.map +1 -0
- package/dist/schemas/image-opt.js +68 -0
- package/dist/schemas/kv-admin.d.ts +60 -0
- package/dist/schemas/kv-admin.d.ts.map +1 -0
- package/dist/schemas/kv-admin.js +43 -0
- package/dist/schemas/kv.d.ts +79 -0
- package/dist/schemas/kv.d.ts.map +1 -0
- package/dist/schemas/kv.js +54 -0
- package/dist/schemas/monitoring-admin.d.ts +314 -0
- package/dist/schemas/monitoring-admin.d.ts.map +1 -0
- package/dist/schemas/monitoring-admin.js +196 -0
- package/dist/schemas/monitoring.d.ts +143 -0
- package/dist/schemas/monitoring.d.ts.map +1 -0
- package/dist/schemas/monitoring.js +96 -0
- package/dist/schemas/newsletter.d.ts +366 -0
- package/dist/schemas/newsletter.d.ts.map +1 -0
- package/dist/schemas/newsletter.js +245 -0
- package/dist/schemas/notifications-admin.d.ts +337 -0
- package/dist/schemas/notifications-admin.d.ts.map +1 -0
- package/dist/schemas/notifications-admin.js +261 -0
- package/dist/schemas/notifications.d.ts +312 -0
- package/dist/schemas/notifications.d.ts.map +1 -0
- package/dist/schemas/notifications.js +235 -0
- package/dist/schemas/oidc.d.ts +74 -0
- package/dist/schemas/oidc.d.ts.map +1 -0
- package/dist/schemas/oidc.js +46 -0
- package/dist/schemas/organization-billing.d.ts +165 -0
- package/dist/schemas/organization-billing.d.ts.map +1 -0
- package/dist/schemas/organization-billing.js +156 -0
- package/dist/schemas/organization-project-users.d.ts +126 -0
- package/dist/schemas/organization-project-users.d.ts.map +1 -0
- package/dist/schemas/organization-project-users.js +88 -0
- package/dist/schemas/organization-projects.d.ts +129 -0
- package/dist/schemas/organization-projects.d.ts.map +1 -0
- package/dist/schemas/organization-projects.js +119 -0
- package/dist/schemas/organization-referrals.d.ts +129 -0
- package/dist/schemas/organization-referrals.d.ts.map +1 -0
- package/dist/schemas/organization-referrals.js +126 -0
- package/dist/schemas/organization-team.d.ts +123 -0
- package/dist/schemas/organization-team.d.ts.map +1 -0
- package/dist/schemas/organization-team.js +119 -0
- package/dist/schemas/organization.d.ts +210 -0
- package/dist/schemas/organization.d.ts.map +1 -0
- package/dist/schemas/organization.js +169 -0
- package/dist/schemas/plans.d.ts +211 -0
- package/dist/schemas/plans.d.ts.map +1 -0
- package/dist/schemas/plans.js +131 -0
- package/dist/schemas/privacy.d.ts +174 -0
- package/dist/schemas/privacy.d.ts.map +1 -0
- package/dist/schemas/privacy.js +132 -0
- package/dist/schemas/project-manifest.d.ts +1421 -0
- package/dist/schemas/project-manifest.d.ts.map +1 -0
- package/dist/schemas/project-manifest.js +318 -0
- package/dist/schemas/project.d.ts +132 -0
- package/dist/schemas/project.d.ts.map +1 -0
- package/dist/schemas/project.js +76 -0
- package/dist/schemas/realtime-admin.d.ts +51 -0
- package/dist/schemas/realtime-admin.d.ts.map +1 -0
- package/dist/schemas/realtime-admin.js +29 -0
- package/dist/schemas/realtime.d.ts +46 -0
- package/dist/schemas/realtime.d.ts.map +1 -0
- package/dist/schemas/realtime.js +32 -0
- package/dist/schemas/referrals-admin.d.ts +166 -0
- package/dist/schemas/referrals-admin.d.ts.map +1 -0
- package/dist/schemas/referrals-admin.js +123 -0
- package/dist/schemas/referrals.d.ts +148 -0
- package/dist/schemas/referrals.d.ts.map +1 -0
- package/dist/schemas/referrals.js +102 -0
- package/dist/schemas/refresh.d.ts +29 -0
- package/dist/schemas/refresh.d.ts.map +1 -0
- package/dist/schemas/refresh.js +18 -0
- package/dist/schemas/region.d.ts +118 -0
- package/dist/schemas/region.d.ts.map +1 -0
- package/dist/schemas/region.js +86 -0
- package/dist/schemas/resources.d.ts +345 -0
- package/dist/schemas/resources.d.ts.map +1 -0
- package/dist/schemas/resources.js +220 -0
- package/dist/schemas/runners.d.ts +93 -0
- package/dist/schemas/runners.d.ts.map +1 -0
- package/dist/schemas/runners.js +49 -0
- package/dist/schemas/saml.d.ts +254 -0
- package/dist/schemas/saml.d.ts.map +1 -0
- package/dist/schemas/saml.js +159 -0
- package/dist/schemas/search.d.ts +96 -0
- package/dist/schemas/search.d.ts.map +1 -0
- package/dist/schemas/search.js +57 -0
- package/dist/schemas/secret.d.ts +101 -0
- package/dist/schemas/secret.d.ts.map +1 -0
- package/dist/schemas/secret.js +79 -0
- package/dist/schemas/security.d.ts +345 -0
- package/dist/schemas/security.d.ts.map +1 -0
- package/dist/schemas/security.js +248 -0
- package/dist/schemas/service-tokens.d.ts +342 -0
- package/dist/schemas/service-tokens.d.ts.map +1 -0
- package/dist/schemas/service-tokens.js +101 -0
- package/dist/schemas/session-replay.d.ts +285 -0
- package/dist/schemas/session-replay.d.ts.map +1 -0
- package/dist/schemas/session-replay.js +145 -0
- package/dist/schemas/storage-admin.d.ts +351 -0
- package/dist/schemas/storage-admin.d.ts.map +1 -0
- package/dist/schemas/storage-admin.js +197 -0
- package/dist/schemas/storage.d.ts +257 -0
- package/dist/schemas/storage.d.ts.map +1 -0
- package/dist/schemas/storage.js +173 -0
- package/dist/schemas/tasks.d.ts +178 -0
- package/dist/schemas/tasks.d.ts.map +1 -0
- package/dist/schemas/tasks.js +102 -0
- package/dist/schemas/user.d.ts +103 -0
- package/dist/schemas/user.d.ts.map +1 -0
- package/dist/schemas/user.js +79 -0
- package/dist/schemas/webhooks.d.ts +259 -0
- package/dist/schemas/webhooks.d.ts.map +1 -0
- package/dist/schemas/webhooks.js +198 -0
- package/package.json +154 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Quotas — internal operator console schemas for quota management.
|
|
3
|
+
* Mirrors `/admin/quotas/*` in `apps/api/src/server/platform/routes/admin/quotas.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Plane: `admin`.
|
|
6
|
+
*
|
|
7
|
+
* Note — `service` is typed as `Schema.String` here because the billable
|
|
8
|
+
* service enum is the Drizzle enum SSOT in `core`; keeping it string-shaped
|
|
9
|
+
* avoids a cross-package enum sync every time a new service is added.
|
|
10
|
+
*/
|
|
11
|
+
import { Schema } from 'effect';
|
|
12
|
+
export declare const AdminBillableService: typeof Schema.String;
|
|
13
|
+
export type AdminBillableService = typeof AdminBillableService.Type;
|
|
14
|
+
export declare const AdminQuotaEnforcement: Schema.Literal<["hard", "soft", "none"]>;
|
|
15
|
+
export type AdminQuotaEnforcement = typeof AdminQuotaEnforcement.Type;
|
|
16
|
+
export declare const AdminQuotaStatus: Schema.Literal<["ok", "warning", "critical", "exceeded"]>;
|
|
17
|
+
export type AdminQuotaStatus = typeof AdminQuotaStatus.Type;
|
|
18
|
+
export declare const AdminOverallQuotaStatus: Schema.Literal<["ok", "warning", "critical", "exceeded", "blocked"]>;
|
|
19
|
+
export type AdminOverallQuotaStatus = typeof AdminOverallQuotaStatus.Type;
|
|
20
|
+
export declare const AdminQuotaPeriod: Schema.Literal<["hourly", "daily", "monthly", "unlimited"]>;
|
|
21
|
+
export type AdminQuotaPeriod = typeof AdminQuotaPeriod.Type;
|
|
22
|
+
export declare const AdminQuotaAlertLevel: Schema.Literal<["warning", "critical", "exceeded"]>;
|
|
23
|
+
export type AdminQuotaAlertLevel = typeof AdminQuotaAlertLevel.Type;
|
|
24
|
+
export declare const AdminQuotaItem: Schema.Struct<{
|
|
25
|
+
service: typeof Schema.String;
|
|
26
|
+
metric: typeof Schema.String;
|
|
27
|
+
currentUsage: typeof Schema.Number;
|
|
28
|
+
limit: typeof Schema.Number;
|
|
29
|
+
percentUsed: typeof Schema.Number;
|
|
30
|
+
enforcement: Schema.Literal<["hard", "soft", "none"]>;
|
|
31
|
+
period: Schema.Literal<["hourly", "daily", "monthly", "unlimited"]>;
|
|
32
|
+
status: Schema.Literal<["ok", "warning", "critical", "exceeded"]>;
|
|
33
|
+
isActive: typeof Schema.Boolean;
|
|
34
|
+
}>;
|
|
35
|
+
export type AdminQuotaItem = typeof AdminQuotaItem.Type;
|
|
36
|
+
export declare const AdminQuotaAlert: Schema.Struct<{
|
|
37
|
+
id: typeof Schema.String;
|
|
38
|
+
service: typeof Schema.String;
|
|
39
|
+
metric: typeof Schema.String;
|
|
40
|
+
level: Schema.Literal<["warning", "critical", "exceeded"]>;
|
|
41
|
+
usagePercent: typeof Schema.Number;
|
|
42
|
+
currentValue: typeof Schema.Number;
|
|
43
|
+
limitValue: typeof Schema.Number;
|
|
44
|
+
message: typeof Schema.String;
|
|
45
|
+
sentAt: typeof Schema.String;
|
|
46
|
+
acknowledgedAt: Schema.NullOr<typeof Schema.String>;
|
|
47
|
+
}>;
|
|
48
|
+
export type AdminQuotaAlert = typeof AdminQuotaAlert.Type;
|
|
49
|
+
export declare const AdminQuotaHistoryItem: Schema.Struct<{
|
|
50
|
+
date: typeof Schema.String;
|
|
51
|
+
value: typeof Schema.Number;
|
|
52
|
+
}>;
|
|
53
|
+
export type AdminQuotaHistoryItem = typeof AdminQuotaHistoryItem.Type;
|
|
54
|
+
export declare const AdminUpdatedQuota: Schema.Struct<{
|
|
55
|
+
service: typeof Schema.String;
|
|
56
|
+
metric: typeof Schema.String;
|
|
57
|
+
limitValue: typeof Schema.Number;
|
|
58
|
+
enforcement: Schema.Literal<["hard", "soft", "none"]>;
|
|
59
|
+
warningThresholdPercent: typeof Schema.Number;
|
|
60
|
+
criticalThresholdPercent: typeof Schema.Number;
|
|
61
|
+
isActive: typeof Schema.Boolean;
|
|
62
|
+
}>;
|
|
63
|
+
export type AdminUpdatedQuota = typeof AdminUpdatedQuota.Type;
|
|
64
|
+
export declare const AdminQuotasProjectParams: Schema.Struct<{
|
|
65
|
+
projectId: typeof Schema.String;
|
|
66
|
+
}>;
|
|
67
|
+
export type AdminQuotasProjectParams = typeof AdminQuotasProjectParams.Type;
|
|
68
|
+
export declare const AdminAlertIdParams: Schema.Struct<{
|
|
69
|
+
alertId: typeof Schema.String;
|
|
70
|
+
}>;
|
|
71
|
+
export type AdminAlertIdParams = typeof AdminAlertIdParams.Type;
|
|
72
|
+
export declare const AdminGetQuotaAlertsQuery: Schema.Struct<{
|
|
73
|
+
acknowledged: Schema.optional<typeof Schema.String>;
|
|
74
|
+
limit: Schema.optional<typeof Schema.String>;
|
|
75
|
+
}>;
|
|
76
|
+
export type AdminGetQuotaAlertsQuery = typeof AdminGetQuotaAlertsQuery.Type;
|
|
77
|
+
export declare const AdminGetQuotaHistoryQuery: Schema.Struct<{
|
|
78
|
+
service: typeof Schema.String;
|
|
79
|
+
metric: typeof Schema.String;
|
|
80
|
+
days: Schema.optional<typeof Schema.String>;
|
|
81
|
+
}>;
|
|
82
|
+
export type AdminGetQuotaHistoryQuery = typeof AdminGetQuotaHistoryQuery.Type;
|
|
83
|
+
export declare const AdminUpdateQuotaInput: Schema.Struct<{
|
|
84
|
+
service: typeof Schema.String;
|
|
85
|
+
metric: typeof Schema.String;
|
|
86
|
+
limitValue: Schema.optional<typeof Schema.Number>;
|
|
87
|
+
enforcement: Schema.optional<Schema.Literal<["hard", "soft", "none"]>>;
|
|
88
|
+
warningThresholdPercent: Schema.optional<typeof Schema.Number>;
|
|
89
|
+
criticalThresholdPercent: Schema.optional<typeof Schema.Number>;
|
|
90
|
+
isActive: Schema.optional<typeof Schema.Boolean>;
|
|
91
|
+
}>;
|
|
92
|
+
export type AdminUpdateQuotaInput = typeof AdminUpdateQuotaInput.Type;
|
|
93
|
+
export declare const AdminGetProjectQuotasResult: Schema.Struct<{
|
|
94
|
+
projectId: typeof Schema.String;
|
|
95
|
+
projectName: typeof Schema.String;
|
|
96
|
+
quotas: Schema.Array$<Schema.Struct<{
|
|
97
|
+
service: typeof Schema.String;
|
|
98
|
+
metric: typeof Schema.String;
|
|
99
|
+
currentUsage: typeof Schema.Number;
|
|
100
|
+
limit: typeof Schema.Number;
|
|
101
|
+
percentUsed: typeof Schema.Number;
|
|
102
|
+
enforcement: Schema.Literal<["hard", "soft", "none"]>;
|
|
103
|
+
period: Schema.Literal<["hourly", "daily", "monthly", "unlimited"]>;
|
|
104
|
+
status: Schema.Literal<["ok", "warning", "critical", "exceeded"]>;
|
|
105
|
+
isActive: typeof Schema.Boolean;
|
|
106
|
+
}>>;
|
|
107
|
+
mauCount: typeof Schema.Number;
|
|
108
|
+
mauLimit: typeof Schema.Number;
|
|
109
|
+
overallStatus: Schema.Literal<["ok", "warning", "critical", "exceeded", "blocked"]>;
|
|
110
|
+
unacknowledgedAlertsCount: typeof Schema.Number;
|
|
111
|
+
}>;
|
|
112
|
+
export type AdminGetProjectQuotasResult = typeof AdminGetProjectQuotasResult.Type;
|
|
113
|
+
export declare const AdminGetQuotaStatsResult: Schema.Struct<{
|
|
114
|
+
atLimit: typeof Schema.Number;
|
|
115
|
+
warning: typeof Schema.Number;
|
|
116
|
+
critical: typeof Schema.Number;
|
|
117
|
+
ok: typeof Schema.Number;
|
|
118
|
+
total: typeof Schema.Number;
|
|
119
|
+
}>;
|
|
120
|
+
export type AdminGetQuotaStatsResult = typeof AdminGetQuotaStatsResult.Type;
|
|
121
|
+
export declare const AdminGetQuotaAlertsResult: Schema.Struct<{
|
|
122
|
+
alerts: Schema.Array$<Schema.Struct<{
|
|
123
|
+
id: typeof Schema.String;
|
|
124
|
+
service: typeof Schema.String;
|
|
125
|
+
metric: typeof Schema.String;
|
|
126
|
+
level: Schema.Literal<["warning", "critical", "exceeded"]>;
|
|
127
|
+
usagePercent: typeof Schema.Number;
|
|
128
|
+
currentValue: typeof Schema.Number;
|
|
129
|
+
limitValue: typeof Schema.Number;
|
|
130
|
+
message: typeof Schema.String;
|
|
131
|
+
sentAt: typeof Schema.String;
|
|
132
|
+
acknowledgedAt: Schema.NullOr<typeof Schema.String>;
|
|
133
|
+
}>>;
|
|
134
|
+
}>;
|
|
135
|
+
export type AdminGetQuotaAlertsResult = typeof AdminGetQuotaAlertsResult.Type;
|
|
136
|
+
export declare const AdminGetQuotaHistoryResult: Schema.Struct<{
|
|
137
|
+
history: Schema.Array$<Schema.Struct<{
|
|
138
|
+
date: typeof Schema.String;
|
|
139
|
+
value: typeof Schema.Number;
|
|
140
|
+
}>>;
|
|
141
|
+
}>;
|
|
142
|
+
export type AdminGetQuotaHistoryResult = typeof AdminGetQuotaHistoryResult.Type;
|
|
143
|
+
export declare const AdminUpdateQuotaResult: Schema.Struct<{
|
|
144
|
+
success: typeof Schema.Boolean;
|
|
145
|
+
quota: Schema.Struct<{
|
|
146
|
+
service: typeof Schema.String;
|
|
147
|
+
metric: typeof Schema.String;
|
|
148
|
+
limitValue: typeof Schema.Number;
|
|
149
|
+
enforcement: Schema.Literal<["hard", "soft", "none"]>;
|
|
150
|
+
warningThresholdPercent: typeof Schema.Number;
|
|
151
|
+
criticalThresholdPercent: typeof Schema.Number;
|
|
152
|
+
isActive: typeof Schema.Boolean;
|
|
153
|
+
}>;
|
|
154
|
+
}>;
|
|
155
|
+
export type AdminUpdateQuotaResult = typeof AdminUpdateQuotaResult.Type;
|
|
156
|
+
export declare const AdminAcknowledgeAlertResult: Schema.Struct<{
|
|
157
|
+
success: typeof Schema.Boolean;
|
|
158
|
+
acknowledgedAt: Schema.NullOr<typeof Schema.String>;
|
|
159
|
+
}>;
|
|
160
|
+
export type AdminAcknowledgeAlertResult = typeof AdminAcknowledgeAlertResult.Type;
|
|
161
|
+
//# sourceMappingURL=admin-quotas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-quotas.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-quotas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,oBAAoB,sBAAgB,CAAA;AACjD,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,qBAAqB,0CAAyC,CAAA;AAC3E,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,gBAAgB,2DAA0D,CAAA;AACvF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,uBAAuB,sEAMnC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA;AAEzE,eAAO,MAAM,gBAAgB,6DAA4D,CAAA;AACzF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,oBAAoB,qDAAoD,CAAA;AACrF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,cAAc;;;;;;;;;;EAUzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,eAAe;;;;;;;;;;;EAW1B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,qBAAqB;;;EAGhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,iBAAiB;;;;;;;;EAQ5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAI7D,eAAO,MAAM,wBAAwB;;EAA8C,CAAA;AACnF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAC3E,eAAO,MAAM,kBAAkB;;EAA4C,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAI/D,eAAO,MAAM,wBAAwB;;;EAGnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;EAIpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAI7E,eAAO,MAAM,qBAAqB;;;;;;;;EAQhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAIrE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EAQtC,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA;AAEjF,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;EAEpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE7E,eAAO,MAAM,0BAA0B;;;;;EAErC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAA;AAE/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;EAGjC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,2BAA2B;;;EAGtC,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Quotas — internal operator console schemas for quota management.
|
|
3
|
+
* Mirrors `/admin/quotas/*` in `apps/api/src/server/platform/routes/admin/quotas.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Plane: `admin`.
|
|
6
|
+
*
|
|
7
|
+
* Note — `service` is typed as `Schema.String` here because the billable
|
|
8
|
+
* service enum is the Drizzle enum SSOT in `core`; keeping it string-shaped
|
|
9
|
+
* avoids a cross-package enum sync every time a new service is added.
|
|
10
|
+
*/
|
|
11
|
+
import { Schema } from 'effect';
|
|
12
|
+
export const AdminBillableService = Schema.String;
|
|
13
|
+
export const AdminQuotaEnforcement = Schema.Literal('hard', 'soft', 'none');
|
|
14
|
+
export const AdminQuotaStatus = Schema.Literal('ok', 'warning', 'critical', 'exceeded');
|
|
15
|
+
export const AdminOverallQuotaStatus = Schema.Literal('ok', 'warning', 'critical', 'exceeded', 'blocked');
|
|
16
|
+
export const AdminQuotaPeriod = Schema.Literal('hourly', 'daily', 'monthly', 'unlimited');
|
|
17
|
+
export const AdminQuotaAlertLevel = Schema.Literal('warning', 'critical', 'exceeded');
|
|
18
|
+
export const AdminQuotaItem = Schema.Struct({
|
|
19
|
+
service: AdminBillableService,
|
|
20
|
+
metric: Schema.String,
|
|
21
|
+
currentUsage: Schema.Number,
|
|
22
|
+
limit: Schema.Number,
|
|
23
|
+
percentUsed: Schema.Number,
|
|
24
|
+
enforcement: AdminQuotaEnforcement,
|
|
25
|
+
period: AdminQuotaPeriod,
|
|
26
|
+
status: AdminQuotaStatus,
|
|
27
|
+
isActive: Schema.Boolean,
|
|
28
|
+
});
|
|
29
|
+
export const AdminQuotaAlert = Schema.Struct({
|
|
30
|
+
id: Schema.String,
|
|
31
|
+
service: AdminBillableService,
|
|
32
|
+
metric: Schema.String,
|
|
33
|
+
level: AdminQuotaAlertLevel,
|
|
34
|
+
usagePercent: Schema.Number,
|
|
35
|
+
currentValue: Schema.Number,
|
|
36
|
+
limitValue: Schema.Number,
|
|
37
|
+
message: Schema.String,
|
|
38
|
+
sentAt: Schema.String,
|
|
39
|
+
acknowledgedAt: Schema.NullOr(Schema.String),
|
|
40
|
+
});
|
|
41
|
+
export const AdminQuotaHistoryItem = Schema.Struct({
|
|
42
|
+
date: Schema.String,
|
|
43
|
+
value: Schema.Number,
|
|
44
|
+
});
|
|
45
|
+
export const AdminUpdatedQuota = Schema.Struct({
|
|
46
|
+
service: AdminBillableService,
|
|
47
|
+
metric: Schema.String,
|
|
48
|
+
limitValue: Schema.Number,
|
|
49
|
+
enforcement: AdminQuotaEnforcement,
|
|
50
|
+
warningThresholdPercent: Schema.Number,
|
|
51
|
+
criticalThresholdPercent: Schema.Number,
|
|
52
|
+
isActive: Schema.Boolean,
|
|
53
|
+
});
|
|
54
|
+
// ── Params ─────────────────────────────────────────────────────────────────
|
|
55
|
+
export const AdminQuotasProjectParams = Schema.Struct({ projectId: Schema.String });
|
|
56
|
+
export const AdminAlertIdParams = Schema.Struct({ alertId: Schema.String });
|
|
57
|
+
// ── Query ──────────────────────────────────────────────────────────────────
|
|
58
|
+
export const AdminGetQuotaAlertsQuery = Schema.Struct({
|
|
59
|
+
acknowledged: Schema.optional(Schema.String),
|
|
60
|
+
limit: Schema.optional(Schema.String),
|
|
61
|
+
});
|
|
62
|
+
export const AdminGetQuotaHistoryQuery = Schema.Struct({
|
|
63
|
+
service: AdminBillableService,
|
|
64
|
+
metric: Schema.String,
|
|
65
|
+
days: Schema.optional(Schema.String),
|
|
66
|
+
});
|
|
67
|
+
// ── Inputs ─────────────────────────────────────────────────────────────────
|
|
68
|
+
export const AdminUpdateQuotaInput = Schema.Struct({
|
|
69
|
+
service: AdminBillableService,
|
|
70
|
+
metric: Schema.String,
|
|
71
|
+
limitValue: Schema.optional(Schema.Number),
|
|
72
|
+
enforcement: Schema.optional(AdminQuotaEnforcement),
|
|
73
|
+
warningThresholdPercent: Schema.optional(Schema.Number),
|
|
74
|
+
criticalThresholdPercent: Schema.optional(Schema.Number),
|
|
75
|
+
isActive: Schema.optional(Schema.Boolean),
|
|
76
|
+
});
|
|
77
|
+
// ── Responses ──────────────────────────────────────────────────────────────
|
|
78
|
+
export const AdminGetProjectQuotasResult = Schema.Struct({
|
|
79
|
+
projectId: Schema.String,
|
|
80
|
+
projectName: Schema.String,
|
|
81
|
+
quotas: Schema.Array(AdminQuotaItem),
|
|
82
|
+
mauCount: Schema.Number,
|
|
83
|
+
mauLimit: Schema.Number,
|
|
84
|
+
overallStatus: AdminOverallQuotaStatus,
|
|
85
|
+
unacknowledgedAlertsCount: Schema.Number,
|
|
86
|
+
});
|
|
87
|
+
export const AdminGetQuotaStatsResult = Schema.Struct({
|
|
88
|
+
atLimit: Schema.Number,
|
|
89
|
+
warning: Schema.Number,
|
|
90
|
+
critical: Schema.Number,
|
|
91
|
+
ok: Schema.Number,
|
|
92
|
+
total: Schema.Number,
|
|
93
|
+
});
|
|
94
|
+
export const AdminGetQuotaAlertsResult = Schema.Struct({
|
|
95
|
+
alerts: Schema.Array(AdminQuotaAlert),
|
|
96
|
+
});
|
|
97
|
+
export const AdminGetQuotaHistoryResult = Schema.Struct({
|
|
98
|
+
history: Schema.Array(AdminQuotaHistoryItem),
|
|
99
|
+
});
|
|
100
|
+
export const AdminUpdateQuotaResult = Schema.Struct({
|
|
101
|
+
success: Schema.Boolean,
|
|
102
|
+
quota: AdminUpdatedQuota,
|
|
103
|
+
});
|
|
104
|
+
export const AdminAcknowledgeAlertResult = Schema.Struct({
|
|
105
|
+
success: Schema.Boolean,
|
|
106
|
+
acknowledgedAt: Schema.NullOr(Schema.String),
|
|
107
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Rate-Limits — operator-driven tuning of per-credential-type
|
|
3
|
+
* multipliers (Production-Ready audit M-3).
|
|
4
|
+
*
|
|
5
|
+
* Pre-M-3 the multipliers were hard-coded constants in
|
|
6
|
+
* `packages/core/src/lib/security/rate-limit.ts:86-92`. Tuning required
|
|
7
|
+
* a code deploy + restart — exactly the workflow we don't want to run
|
|
8
|
+
* during a credential-enumeration attack on a `pk_*` key.
|
|
9
|
+
*
|
|
10
|
+
* Endpoints:
|
|
11
|
+
*
|
|
12
|
+
* - GET /admin/rate-limits/credential-multipliers — snapshot every
|
|
13
|
+
* credential type's current multiplier + exempt status.
|
|
14
|
+
* - POST /admin/rate-limits/credential-multipliers — upsert the row
|
|
15
|
+
* for one credential type. The enforcement layer picks up the
|
|
16
|
+
* change within 5 minutes (Redis cache TTL) or immediately via
|
|
17
|
+
* `invalidateAndReload()`.
|
|
18
|
+
*
|
|
19
|
+
* Auth: service token + scope `platform:ratelimits:write`. Super-admin
|
|
20
|
+
* sessions are NOT accepted server-side — a multiplier change is a
|
|
21
|
+
* security-policy decision and MUST be a programmatic step in an Ops
|
|
22
|
+
* runbook, never an interactive Console click.
|
|
23
|
+
*/
|
|
24
|
+
import { Schema } from 'effect';
|
|
25
|
+
/**
|
|
26
|
+
* Credential-type enumeration — mirrors `RateLimitCredentialType` in
|
|
27
|
+
* the schema layer. New types require a coordinated migration + union
|
|
28
|
+
* extension + this literal.
|
|
29
|
+
*/
|
|
30
|
+
export declare const AdminRateLimitCredentialType: Schema.Literal<["public", "secret", "service", "session", "spiffe", "unknown"]>;
|
|
31
|
+
export type AdminRateLimitCredentialType = typeof AdminRateLimitCredentialType.Type;
|
|
32
|
+
/**
|
|
33
|
+
* Snapshot row — one per credential type. `effectiveMultiplier` is
|
|
34
|
+
* the value the limiter is currently applying (after Redis cache
|
|
35
|
+
* settles); `exempt=true` means the limiter short-circuits to
|
|
36
|
+
* always-allow (used for the SPIFFE mesh path).
|
|
37
|
+
*/
|
|
38
|
+
export declare const AdminRateLimitMultiplierStatus: Schema.Struct<{
|
|
39
|
+
credentialType: Schema.Literal<["public", "secret", "service", "session", "spiffe", "unknown"]>;
|
|
40
|
+
multiplier: typeof Schema.Number;
|
|
41
|
+
exempt: typeof Schema.Boolean;
|
|
42
|
+
notes: Schema.NullOr<typeof Schema.String>;
|
|
43
|
+
lastUpdatedAt: Schema.NullOr<typeof Schema.String>;
|
|
44
|
+
}>;
|
|
45
|
+
export type AdminRateLimitMultiplierStatus = typeof AdminRateLimitMultiplierStatus.Type;
|
|
46
|
+
/**
|
|
47
|
+
* `GET /admin/rate-limits/credential-multipliers` response.
|
|
48
|
+
*/
|
|
49
|
+
export declare const AdminListRateLimitMultipliersResult: Schema.Struct<{
|
|
50
|
+
multipliers: Schema.Array$<Schema.Struct<{
|
|
51
|
+
credentialType: Schema.Literal<["public", "secret", "service", "session", "spiffe", "unknown"]>;
|
|
52
|
+
multiplier: typeof Schema.Number;
|
|
53
|
+
exempt: typeof Schema.Boolean;
|
|
54
|
+
notes: Schema.NullOr<typeof Schema.String>;
|
|
55
|
+
lastUpdatedAt: Schema.NullOr<typeof Schema.String>;
|
|
56
|
+
}>>;
|
|
57
|
+
}>;
|
|
58
|
+
export type AdminListRateLimitMultipliersResult = typeof AdminListRateLimitMultipliersResult.Type;
|
|
59
|
+
/**
|
|
60
|
+
* `POST /admin/rate-limits/credential-multipliers` body. One write
|
|
61
|
+
* per (credentialType) row — the table's PK enforces uniqueness.
|
|
62
|
+
*
|
|
63
|
+
* `multiplier` is required; pass any value in (0, 10]. To toggle
|
|
64
|
+
* exempt status, set `exempt=true` (multiplier becomes a no-op).
|
|
65
|
+
* `reason` is required and audited.
|
|
66
|
+
*/
|
|
67
|
+
export declare const AdminSetRateLimitMultiplierInput: Schema.Struct<{
|
|
68
|
+
credentialType: Schema.Literal<["public", "secret", "service", "session", "spiffe", "unknown"]>;
|
|
69
|
+
multiplier: Schema.filter<Schema.filter<typeof Schema.Number>>;
|
|
70
|
+
exempt: Schema.optional<typeof Schema.Boolean>;
|
|
71
|
+
reason: Schema.filter<typeof Schema.String>;
|
|
72
|
+
}>;
|
|
73
|
+
export type AdminSetRateLimitMultiplierInput = typeof AdminSetRateLimitMultiplierInput.Type;
|
|
74
|
+
/**
|
|
75
|
+
* Result envelope — returns the freshly-written row + the audit log
|
|
76
|
+
* ID for traceability.
|
|
77
|
+
*/
|
|
78
|
+
export declare const AdminSetRateLimitMultiplierResult: Schema.Struct<{
|
|
79
|
+
updated: Schema.Struct<{
|
|
80
|
+
credentialType: Schema.Literal<["public", "secret", "service", "session", "spiffe", "unknown"]>;
|
|
81
|
+
multiplier: typeof Schema.Number;
|
|
82
|
+
exempt: typeof Schema.Boolean;
|
|
83
|
+
notes: Schema.NullOr<typeof Schema.String>;
|
|
84
|
+
lastUpdatedAt: Schema.NullOr<typeof Schema.String>;
|
|
85
|
+
}>;
|
|
86
|
+
auditLogId: Schema.NullOr<typeof Schema.String>;
|
|
87
|
+
message: typeof Schema.String;
|
|
88
|
+
}>;
|
|
89
|
+
export type AdminSetRateLimitMultiplierResult = typeof AdminSetRateLimitMultiplierResult.Type;
|
|
90
|
+
//# sourceMappingURL=admin-rate-limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-rate-limits.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-rate-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,iFAOxC,CAAA;AACD,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC,IAAI,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;EAMzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAC,IAAI,CAAA;AAEvF;;GAEG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;EAE9C,CAAA;AACF,MAAM,MAAM,mCAAmC,GAAG,OAAO,mCAAmC,CAAC,IAAI,CAAA;AAEjG;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAA;AACF,MAAM,MAAM,gCAAgC,GAAG,OAAO,gCAAgC,CAAC,IAAI,CAAA;AAE3F;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;EAI5C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Rate-Limits — operator-driven tuning of per-credential-type
|
|
3
|
+
* multipliers (Production-Ready audit M-3).
|
|
4
|
+
*
|
|
5
|
+
* Pre-M-3 the multipliers were hard-coded constants in
|
|
6
|
+
* `packages/core/src/lib/security/rate-limit.ts:86-92`. Tuning required
|
|
7
|
+
* a code deploy + restart — exactly the workflow we don't want to run
|
|
8
|
+
* during a credential-enumeration attack on a `pk_*` key.
|
|
9
|
+
*
|
|
10
|
+
* Endpoints:
|
|
11
|
+
*
|
|
12
|
+
* - GET /admin/rate-limits/credential-multipliers — snapshot every
|
|
13
|
+
* credential type's current multiplier + exempt status.
|
|
14
|
+
* - POST /admin/rate-limits/credential-multipliers — upsert the row
|
|
15
|
+
* for one credential type. The enforcement layer picks up the
|
|
16
|
+
* change within 5 minutes (Redis cache TTL) or immediately via
|
|
17
|
+
* `invalidateAndReload()`.
|
|
18
|
+
*
|
|
19
|
+
* Auth: service token + scope `platform:ratelimits:write`. Super-admin
|
|
20
|
+
* sessions are NOT accepted server-side — a multiplier change is a
|
|
21
|
+
* security-policy decision and MUST be a programmatic step in an Ops
|
|
22
|
+
* runbook, never an interactive Console click.
|
|
23
|
+
*/
|
|
24
|
+
import { Schema } from 'effect';
|
|
25
|
+
/**
|
|
26
|
+
* Credential-type enumeration — mirrors `RateLimitCredentialType` in
|
|
27
|
+
* the schema layer. New types require a coordinated migration + union
|
|
28
|
+
* extension + this literal.
|
|
29
|
+
*/
|
|
30
|
+
export const AdminRateLimitCredentialType = Schema.Literal('public', 'secret', 'service', 'session', 'spiffe', 'unknown');
|
|
31
|
+
/**
|
|
32
|
+
* Snapshot row — one per credential type. `effectiveMultiplier` is
|
|
33
|
+
* the value the limiter is currently applying (after Redis cache
|
|
34
|
+
* settles); `exempt=true` means the limiter short-circuits to
|
|
35
|
+
* always-allow (used for the SPIFFE mesh path).
|
|
36
|
+
*/
|
|
37
|
+
export const AdminRateLimitMultiplierStatus = Schema.Struct({
|
|
38
|
+
credentialType: AdminRateLimitCredentialType,
|
|
39
|
+
multiplier: Schema.Number,
|
|
40
|
+
exempt: Schema.Boolean,
|
|
41
|
+
notes: Schema.NullOr(Schema.String),
|
|
42
|
+
lastUpdatedAt: Schema.NullOr(Schema.String),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* `GET /admin/rate-limits/credential-multipliers` response.
|
|
46
|
+
*/
|
|
47
|
+
export const AdminListRateLimitMultipliersResult = Schema.Struct({
|
|
48
|
+
multipliers: Schema.Array(AdminRateLimitMultiplierStatus),
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* `POST /admin/rate-limits/credential-multipliers` body. One write
|
|
52
|
+
* per (credentialType) row — the table's PK enforces uniqueness.
|
|
53
|
+
*
|
|
54
|
+
* `multiplier` is required; pass any value in (0, 10]. To toggle
|
|
55
|
+
* exempt status, set `exempt=true` (multiplier becomes a no-op).
|
|
56
|
+
* `reason` is required and audited.
|
|
57
|
+
*/
|
|
58
|
+
export const AdminSetRateLimitMultiplierInput = Schema.Struct({
|
|
59
|
+
credentialType: AdminRateLimitCredentialType,
|
|
60
|
+
multiplier: Schema.Number.pipe(Schema.greaterThan(0), Schema.lessThanOrEqualTo(10)),
|
|
61
|
+
exempt: Schema.optional(Schema.Boolean),
|
|
62
|
+
reason: Schema.String.pipe(Schema.minLength(3)),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Result envelope — returns the freshly-written row + the audit log
|
|
66
|
+
* ID for traceability.
|
|
67
|
+
*/
|
|
68
|
+
export const AdminSetRateLimitMultiplierResult = Schema.Struct({
|
|
69
|
+
updated: AdminRateLimitMultiplierStatus,
|
|
70
|
+
auditLogId: Schema.NullOr(Schema.String),
|
|
71
|
+
message: Schema.String,
|
|
72
|
+
});
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Reconcile — operator recovery schemas (OPS-6).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `apps/api/src/server/platform/routes/admin/reconcile.ts`.
|
|
5
|
+
* Replaces the manual `UPDATE project_environments SET generation = … ,
|
|
6
|
+
* reconcile_status = 'pending' …` from
|
|
7
|
+
* `docs/how-to/reconciler-cleanup-semantic.md` (lines 34, 42, 68, 74,
|
|
8
|
+
* 125) with a structured admin endpoint.
|
|
9
|
+
*
|
|
10
|
+
* Plane: `admin` (super-admin / scoped service-token only — scope
|
|
11
|
+
* `platform:reconcile:reset`).
|
|
12
|
+
*/
|
|
13
|
+
import { Schema } from 'effect';
|
|
14
|
+
/**
|
|
15
|
+
* Targetable rows. The wire vocabulary maps to:
|
|
16
|
+
*
|
|
17
|
+
* - `service` → `environment_services.id` (TypeID `esvc_*`).
|
|
18
|
+
* State machine: `pending | progressing | synced |
|
|
19
|
+
* degraded | failed | stopped` plus the
|
|
20
|
+
* lifecycle terminal `terminating`.
|
|
21
|
+
* - `environment` → `project_environments.id` (TypeID `env_*`).
|
|
22
|
+
* State machine: `pending | synced | failed` plus
|
|
23
|
+
* the lifecycle terminal `terminating`.
|
|
24
|
+
*
|
|
25
|
+
* Per ADR-055 §3, IDs are TypeIDs on the wire — the route decodes to UUID
|
|
26
|
+
* server-side via `parseIdOrError()`.
|
|
27
|
+
*/
|
|
28
|
+
declare const ReconcileKind: Schema.Union<[Schema.Literal<["service"]>, Schema.Literal<["environment"]>]>;
|
|
29
|
+
export type AdminReconcileKind = typeof ReconcileKind.Type;
|
|
30
|
+
/**
|
|
31
|
+
* Target reconcile_status. Operators only ever need two:
|
|
32
|
+
*
|
|
33
|
+
* - `pending` — re-arm the reconciler (the typical "undo a stuck
|
|
34
|
+
* failed/progressing/degraded row" path).
|
|
35
|
+
* - `synced` — mark the row as converged when the underlying K8s
|
|
36
|
+
* state has actually been verified out-of-band (the
|
|
37
|
+
* escape hatch for split-brain repairs).
|
|
38
|
+
*
|
|
39
|
+
* `terminating` / `terminated` are NOT acceptable here — those are
|
|
40
|
+
* lifecycle transitions driven by `handleTerminating` and the
|
|
41
|
+
* force-delete path (OPS-3), not by an operator's reset button.
|
|
42
|
+
*/
|
|
43
|
+
declare const ReconcileStatus: Schema.Union<[Schema.Literal<["pending"]>, Schema.Literal<["synced"]>]>;
|
|
44
|
+
export type AdminReconcileStatus = typeof ReconcileStatus.Type;
|
|
45
|
+
/**
|
|
46
|
+
* Body of `POST /admin/reconcile/reset`.
|
|
47
|
+
*
|
|
48
|
+
* Semantics:
|
|
49
|
+
*
|
|
50
|
+
* - `kind` — `service` or `environment`. Selects the target table.
|
|
51
|
+
* - `id` — TypeID (`esvc_*` for `service`, `env_*` for
|
|
52
|
+
* `environment`).
|
|
53
|
+
* - `to` — target `reconcile_status`. The endpoint validates the
|
|
54
|
+
* source state allows the transition (see route file for
|
|
55
|
+
* the full transition table).
|
|
56
|
+
* - `reason` — required (min 3 chars). Audit row narrative.
|
|
57
|
+
*
|
|
58
|
+
* Side effect on `to=pending`: also bumps `generation += 1` so the
|
|
59
|
+
* reconciler picks up the row on the next tick (matching the runbook's
|
|
60
|
+
* canonical UPDATE).
|
|
61
|
+
*/
|
|
62
|
+
export declare const AdminReconcileResetInput: Schema.Struct<{
|
|
63
|
+
kind: Schema.Union<[Schema.Literal<["service"]>, Schema.Literal<["environment"]>]>;
|
|
64
|
+
id: Schema.filter<typeof Schema.String>;
|
|
65
|
+
to: Schema.Union<[Schema.Literal<["pending"]>, Schema.Literal<["synced"]>]>;
|
|
66
|
+
reason: Schema.filter<Schema.filter<typeof Schema.String>>;
|
|
67
|
+
}>;
|
|
68
|
+
export type AdminReconcileResetInput = typeof AdminReconcileResetInput.Type;
|
|
69
|
+
/**
|
|
70
|
+
* Response envelope.
|
|
71
|
+
*
|
|
72
|
+
* - `kind` — echo of the request.
|
|
73
|
+
* - `id` — echo of the request (TypeID).
|
|
74
|
+
* - `previousStatus` — `reconcile_status` value the row carried just
|
|
75
|
+
* before the UPDATE landed.
|
|
76
|
+
* - `newStatus` — final value (matches `to`).
|
|
77
|
+
* - `generationBumped` — `true` iff the endpoint additionally
|
|
78
|
+
* incremented `generation` (only on `to=pending`).
|
|
79
|
+
*/
|
|
80
|
+
export declare const AdminReconcileResetResult: Schema.Struct<{
|
|
81
|
+
kind: Schema.Union<[Schema.Literal<["service"]>, Schema.Literal<["environment"]>]>;
|
|
82
|
+
id: typeof Schema.String;
|
|
83
|
+
previousStatus: typeof Schema.String;
|
|
84
|
+
newStatus: Schema.Union<[Schema.Literal<["pending"]>, Schema.Literal<["synced"]>]>;
|
|
85
|
+
generationBumped: typeof Schema.Boolean;
|
|
86
|
+
}>;
|
|
87
|
+
export type AdminReconcileResetResult = typeof AdminReconcileResetResult.Type;
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=admin-reconcile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-reconcile.d.ts","sourceRoot":"","sources":["../../src/schemas/admin-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,aAAa,8EAAyE,CAAA;AAC5F,MAAM,MAAM,kBAAkB,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,yEAAoE,CAAA;AACzF,MAAM,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAI9D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,wBAAwB;;;;;EASnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAE3E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Reconcile — operator recovery schemas (OPS-6).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `apps/api/src/server/platform/routes/admin/reconcile.ts`.
|
|
5
|
+
* Replaces the manual `UPDATE project_environments SET generation = … ,
|
|
6
|
+
* reconcile_status = 'pending' …` from
|
|
7
|
+
* `docs/how-to/reconciler-cleanup-semantic.md` (lines 34, 42, 68, 74,
|
|
8
|
+
* 125) with a structured admin endpoint.
|
|
9
|
+
*
|
|
10
|
+
* Plane: `admin` (super-admin / scoped service-token only — scope
|
|
11
|
+
* `platform:reconcile:reset`).
|
|
12
|
+
*/
|
|
13
|
+
import { Schema } from 'effect';
|
|
14
|
+
/**
|
|
15
|
+
* Targetable rows. The wire vocabulary maps to:
|
|
16
|
+
*
|
|
17
|
+
* - `service` → `environment_services.id` (TypeID `esvc_*`).
|
|
18
|
+
* State machine: `pending | progressing | synced |
|
|
19
|
+
* degraded | failed | stopped` plus the
|
|
20
|
+
* lifecycle terminal `terminating`.
|
|
21
|
+
* - `environment` → `project_environments.id` (TypeID `env_*`).
|
|
22
|
+
* State machine: `pending | synced | failed` plus
|
|
23
|
+
* the lifecycle terminal `terminating`.
|
|
24
|
+
*
|
|
25
|
+
* Per ADR-055 §3, IDs are TypeIDs on the wire — the route decodes to UUID
|
|
26
|
+
* server-side via `parseIdOrError()`.
|
|
27
|
+
*/
|
|
28
|
+
const ReconcileKind = Schema.Union(Schema.Literal('service'), Schema.Literal('environment'));
|
|
29
|
+
/**
|
|
30
|
+
* Target reconcile_status. Operators only ever need two:
|
|
31
|
+
*
|
|
32
|
+
* - `pending` — re-arm the reconciler (the typical "undo a stuck
|
|
33
|
+
* failed/progressing/degraded row" path).
|
|
34
|
+
* - `synced` — mark the row as converged when the underlying K8s
|
|
35
|
+
* state has actually been verified out-of-band (the
|
|
36
|
+
* escape hatch for split-brain repairs).
|
|
37
|
+
*
|
|
38
|
+
* `terminating` / `terminated` are NOT acceptable here — those are
|
|
39
|
+
* lifecycle transitions driven by `handleTerminating` and the
|
|
40
|
+
* force-delete path (OPS-3), not by an operator's reset button.
|
|
41
|
+
*/
|
|
42
|
+
const ReconcileStatus = Schema.Union(Schema.Literal('pending'), Schema.Literal('synced'));
|
|
43
|
+
const Reason = Schema.String.pipe(Schema.minLength(3), Schema.maxLength(500));
|
|
44
|
+
/**
|
|
45
|
+
* Body of `POST /admin/reconcile/reset`.
|
|
46
|
+
*
|
|
47
|
+
* Semantics:
|
|
48
|
+
*
|
|
49
|
+
* - `kind` — `service` or `environment`. Selects the target table.
|
|
50
|
+
* - `id` — TypeID (`esvc_*` for `service`, `env_*` for
|
|
51
|
+
* `environment`).
|
|
52
|
+
* - `to` — target `reconcile_status`. The endpoint validates the
|
|
53
|
+
* source state allows the transition (see route file for
|
|
54
|
+
* the full transition table).
|
|
55
|
+
* - `reason` — required (min 3 chars). Audit row narrative.
|
|
56
|
+
*
|
|
57
|
+
* Side effect on `to=pending`: also bumps `generation += 1` so the
|
|
58
|
+
* reconciler picks up the row on the next tick (matching the runbook's
|
|
59
|
+
* canonical UPDATE).
|
|
60
|
+
*/
|
|
61
|
+
export const AdminReconcileResetInput = Schema.Struct({
|
|
62
|
+
kind: ReconcileKind,
|
|
63
|
+
id: Schema.String.pipe(Schema.pattern(/^(esvc|env)_[0-9a-z]{20,30}$/i, {
|
|
64
|
+
message: () => 'id must be a TypeID with prefix `esvc_` or `env_`',
|
|
65
|
+
})),
|
|
66
|
+
to: ReconcileStatus,
|
|
67
|
+
reason: Reason,
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* Response envelope.
|
|
71
|
+
*
|
|
72
|
+
* - `kind` — echo of the request.
|
|
73
|
+
* - `id` — echo of the request (TypeID).
|
|
74
|
+
* - `previousStatus` — `reconcile_status` value the row carried just
|
|
75
|
+
* before the UPDATE landed.
|
|
76
|
+
* - `newStatus` — final value (matches `to`).
|
|
77
|
+
* - `generationBumped` — `true` iff the endpoint additionally
|
|
78
|
+
* incremented `generation` (only on `to=pending`).
|
|
79
|
+
*/
|
|
80
|
+
export const AdminReconcileResetResult = Schema.Struct({
|
|
81
|
+
kind: ReconcileKind,
|
|
82
|
+
id: Schema.String,
|
|
83
|
+
previousStatus: Schema.String,
|
|
84
|
+
newStatus: ReconcileStatus,
|
|
85
|
+
generationBumped: Schema.Boolean,
|
|
86
|
+
});
|