@noodleseed/one 0.109.0 → 0.111.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/dist/commands/analytics-ops.d.ts.map +1 -1
- package/dist/commands/analytics-ops.js +36 -57
- package/dist/commands/analytics-ops.js.map +1 -1
- package/dist/commands/apps-ops.d.ts.map +1 -1
- package/dist/commands/apps-ops.js +12 -32
- package/dist/commands/apps-ops.js.map +1 -1
- package/dist/commands/archive-ops.d.ts.map +1 -1
- package/dist/commands/archive-ops.js +30 -48
- package/dist/commands/archive-ops.js.map +1 -1
- package/dist/commands/audit-ops.js +17 -40
- package/dist/commands/audit-ops.js.map +1 -1
- package/dist/commands/author-loop.d.ts.map +1 -1
- package/dist/commands/author-loop.js +27 -51
- package/dist/commands/author-loop.js.map +1 -1
- package/dist/commands/catalog-data-tenant-admin.d.ts.map +1 -1
- package/dist/commands/catalog-data-tenant-admin.js +35 -0
- package/dist/commands/catalog-data-tenant-admin.js.map +1 -1
- package/dist/commands/config-values.d.ts.map +1 -1
- package/dist/commands/config-values.js +24 -59
- package/dist/commands/config-values.js.map +1 -1
- package/dist/commands/deploy-ops.d.ts +0 -1
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +6 -42
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/deployments-ops.d.ts.map +1 -1
- package/dist/commands/deployments-ops.js +11 -39
- package/dist/commands/deployments-ops.js.map +1 -1
- package/dist/commands/devtools.d.ts.map +1 -1
- package/dist/commands/devtools.js +19 -35
- package/dist/commands/devtools.js.map +1 -1
- package/dist/commands/envs-ops.d.ts.map +1 -1
- package/dist/commands/envs-ops.js +10 -35
- package/dist/commands/envs-ops.js.map +1 -1
- package/dist/commands/github-shared.d.ts +1 -1
- package/dist/commands/github-shared.d.ts.map +1 -1
- package/dist/commands/github-shared.js +11 -33
- package/dist/commands/github-shared.js.map +1 -1
- package/dist/commands/logs-ops.d.ts.map +1 -1
- package/dist/commands/logs-ops.js +18 -30
- package/dist/commands/logs-ops.js.map +1 -1
- package/dist/commands/org-admin.d.ts.map +1 -1
- package/dist/commands/org-admin.js +13 -47
- package/dist/commands/org-admin.js.map +1 -1
- package/dist/commands/org-domains.js +5 -36
- package/dist/commands/org-domains.js.map +1 -1
- package/dist/commands/org-mcp-subdomain.d.ts +9 -0
- package/dist/commands/org-mcp-subdomain.d.ts.map +1 -0
- package/dist/commands/org-mcp-subdomain.js +144 -0
- package/dist/commands/org-mcp-subdomain.js.map +1 -0
- package/dist/commands/org-member-args.d.ts.map +1 -1
- package/dist/commands/org-member-args.js +22 -57
- package/dist/commands/org-member-args.js.map +1 -1
- package/dist/commands/org-openai-challenge.js +9 -40
- package/dist/commands/org-openai-challenge.js.map +1 -1
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +0 -4
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/resource-shared.d.ts +1 -1
- package/dist/commands/resource-shared.d.ts.map +1 -1
- package/dist/commands/resource-shared.js +6 -31
- package/dist/commands/resource-shared.js.map +1 -1
- package/dist/commands/service-ops.js +21 -40
- package/dist/commands/service-ops.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +21 -52
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/shared.d.ts +16 -0
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +45 -33
- package/dist/commands/shared.js.map +1 -1
- package/dist/first-run.d.ts.map +1 -1
- package/dist/first-run.js +0 -3
- package/dist/first-run.js.map +1 -1
- package/node_modules/@noodle-borg/control-plane/dist/contracts.d.ts +249 -0
- package/node_modules/@noodle-borg/control-plane/dist/contracts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/contracts.js +2 -0
- package/node_modules/@noodle-borg/control-plane/dist/contracts.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.d.ts +116 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.js +302 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/index.d.ts +10 -0
- package/node_modules/@noodle-borg/control-plane/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/index.js +8 -0
- package/node_modules/@noodle-borg/control-plane/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.d.ts +42 -0
- package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.js +181 -0
- package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.d.ts +13 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.js +41 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.d.ts +11 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.js +2 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.d.ts +18 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.js +173 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.js +134 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.js.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/store/postgres-control-plane.d.ts → control-plane/dist/postgres-organization-store.d.ts} +4 -3
- package/node_modules/@noodle-borg/control-plane/dist/postgres-organization-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/store/postgres-control-plane.js → control-plane/dist/postgres-organization-store.js} +4 -5
- package/node_modules/@noodle-borg/control-plane/dist/postgres-organization-store.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.js +90 -0
- package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/validation.d.ts +18 -0
- package/node_modules/@noodle-borg/control-plane/dist/validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/validation.js +91 -0
- package/node_modules/@noodle-borg/control-plane/dist/validation.js.map +1 -0
- package/node_modules/@noodle-borg/control-plane/package.json +30 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +11 -3
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js +61 -12
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +6 -4
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts +3 -6
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +15 -28
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +15 -51
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +7 -3
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js +7 -35
- package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js +1 -1
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +3 -3
- package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts +1 -3
- package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/personal-workspace.js +2 -17
- package/node_modules/@noodle-borg/service/dist/personal-workspace.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +10 -10
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +4 -2
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js +8 -3
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-status.d.ts +2 -3
- package/node_modules/@noodle-borg/service/dist/registry-status.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-status.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -4
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +4 -2
- package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts +2 -3
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js +39 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +4 -6
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +4 -2
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +5 -6
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts +2 -3
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -2
- package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js +13 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +10 -7
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +175 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +11 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +2 -2
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js +6 -6
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts +3 -5
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js +18 -15
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +24 -35
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +4 -94
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js +25 -265
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.js +40 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +2 -84
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +5 -4
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +2 -20
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.js +7 -85
- package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +4 -209
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +2 -0
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +14 -8
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +2 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.js +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts +42 -0
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.js +49 -0
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +3 -2
- package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/routing.js +6 -3
- package/node_modules/@noodle-borg/transport-http/dist/routing.js.map +1 -1
- package/package.json +2 -1
- package/dist/banner.d.ts +0 -11
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js +0 -183
- package/dist/banner.js.map +0 -1
- package/dist/commands/deploy-fire-progress.d.ts +0 -28
- package/dist/commands/deploy-fire-progress.d.ts.map +0 -1
- package/dist/commands/deploy-fire-progress.js +0 -64
- package/dist/commands/deploy-fire-progress.js.map +0 -1
- package/dist/fire.d.ts +0 -108
- package/dist/fire.d.ts.map +0 -1
- package/dist/fire.js +0 -511
- package/dist/fire.js.map +0 -1
- package/dist/flavor.d.ts +0 -19
- package/dist/flavor.d.ts.map +0 -1
- package/dist/flavor.js +0 -105
- package/dist/flavor.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +0 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { type InMemoryOrganizationOperations } from '@noodle-borg/control-plane';
|
|
1
2
|
import { InMemoryBillingAccountStore } from '../billing/in-memory.js';
|
|
2
|
-
import type { ControlPlaneStore, CreateOrgWithOwnerInput,
|
|
3
|
+
import type { ControlPlaneStore, CreateOrgWithOwnerInput, OrgRecord, PersonalWorkspaceProvisionInput, PersonalWorkspaceProvisionResult, WelcomeEmailRecord } from '../store.js';
|
|
4
|
+
export interface InMemoryControlPlaneStore extends InMemoryOrganizationOperations {
|
|
5
|
+
}
|
|
3
6
|
export declare class InMemoryControlPlaneStore extends InMemoryBillingAccountStore implements ControlPlaneStore {
|
|
4
7
|
#private;
|
|
5
8
|
constructor(options?: {
|
|
@@ -21,99 +24,6 @@ export declare class InMemoryControlPlaneStore extends InMemoryBillingAccountSto
|
|
|
21
24
|
nextAttemptAt: Date;
|
|
22
25
|
}): Promise<void>;
|
|
23
26
|
getWelcomeEmail(subject: string): Promise<WelcomeEmailRecord | undefined>;
|
|
24
|
-
createOrg(input: {
|
|
25
|
-
slug: string;
|
|
26
|
-
displayName?: string;
|
|
27
|
-
}): Promise<OrgRecord>;
|
|
28
27
|
createOrgWithOwner(input: CreateOrgWithOwnerInput): Promise<OrgRecord>;
|
|
29
|
-
updateOrg(input: {
|
|
30
|
-
slug: string;
|
|
31
|
-
displayName: string;
|
|
32
|
-
}): Promise<OrgRecord | undefined>;
|
|
33
|
-
getOrg(org: string): Promise<OrgRecord | undefined>;
|
|
34
|
-
listOrgs(): Promise<readonly OrgRecord[]>;
|
|
35
|
-
listOrgsForSubject(subject: string): Promise<readonly OrgRecord[]>;
|
|
36
|
-
addOrgMember(input: {
|
|
37
|
-
org: string;
|
|
38
|
-
subject: string;
|
|
39
|
-
email: string;
|
|
40
|
-
role: OrgRole;
|
|
41
|
-
}): Promise<OrgMemberRecord>;
|
|
42
|
-
removeOrgMember(input: {
|
|
43
|
-
org: string;
|
|
44
|
-
subject: string;
|
|
45
|
-
}): Promise<boolean>;
|
|
46
|
-
updateOrgMemberRole(input: {
|
|
47
|
-
org: string;
|
|
48
|
-
subject: string;
|
|
49
|
-
role: OrgRole;
|
|
50
|
-
}): Promise<OrgMemberRecord | undefined>;
|
|
51
|
-
getOrgMember(input: {
|
|
52
|
-
org: string;
|
|
53
|
-
subject: string;
|
|
54
|
-
}): Promise<OrgMemberRecord | undefined>;
|
|
55
|
-
listOrgMembers(org: string): Promise<readonly OrgMemberRecord[]>;
|
|
56
|
-
isOrgMember(input: {
|
|
57
|
-
org: string;
|
|
58
|
-
subject: string;
|
|
59
|
-
}): Promise<boolean>;
|
|
60
|
-
addOrgDomain(input: {
|
|
61
|
-
org: string;
|
|
62
|
-
domain: string;
|
|
63
|
-
challenge?: string;
|
|
64
|
-
}): Promise<OrgDomainRecord>;
|
|
65
|
-
removeOrgDomain(input: {
|
|
66
|
-
org: string;
|
|
67
|
-
domain: string;
|
|
68
|
-
}): Promise<boolean>;
|
|
69
|
-
markOrgDomainVerification(input: {
|
|
70
|
-
org: string;
|
|
71
|
-
domain: string;
|
|
72
|
-
verified: boolean;
|
|
73
|
-
}): Promise<OrgDomainRecord | undefined>;
|
|
74
|
-
listOrgDomains(org: string): Promise<readonly OrgDomainRecord[]>;
|
|
75
|
-
setOrgOpenAIAppsChallenge(input: {
|
|
76
|
-
org: string;
|
|
77
|
-
challenge: string;
|
|
78
|
-
updatedBySubject?: string;
|
|
79
|
-
updatedByEmail?: string;
|
|
80
|
-
}): Promise<OrgOpenAIAppsChallengeRecord>;
|
|
81
|
-
getOrgOpenAIAppsChallenge(org: string): Promise<OrgOpenAIAppsChallengeRecord | undefined>;
|
|
82
|
-
clearOrgOpenAIAppsChallenge(org: string): Promise<boolean>;
|
|
83
|
-
isDataPlaneOrgMember(input: {
|
|
84
|
-
org: string;
|
|
85
|
-
subject: string;
|
|
86
|
-
email?: string;
|
|
87
|
-
}): Promise<boolean>;
|
|
88
|
-
allowSignup(input: {
|
|
89
|
-
kind: SignupAllowlistKind;
|
|
90
|
-
value: string;
|
|
91
|
-
createdBySubject?: string;
|
|
92
|
-
}): Promise<SignupAllowlistRecord>;
|
|
93
|
-
listSignupAllowlist(): Promise<readonly SignupAllowlistRecord[]>;
|
|
94
|
-
isSignupAllowed(input: {
|
|
95
|
-
subject: string;
|
|
96
|
-
email: string;
|
|
97
|
-
}): Promise<boolean>;
|
|
98
|
-
createOrgInvitation(input: {
|
|
99
|
-
org: string;
|
|
100
|
-
email: string;
|
|
101
|
-
role: OrgRole;
|
|
102
|
-
tokenHash: string;
|
|
103
|
-
createdBySubject: string;
|
|
104
|
-
createdByEmail?: string;
|
|
105
|
-
expiresAt: Date;
|
|
106
|
-
}): Promise<OrgInvitationRecord>;
|
|
107
|
-
getOrgInvitation(input: {
|
|
108
|
-
tokenHash: string;
|
|
109
|
-
}): Promise<OrgInvitationRecord | undefined>;
|
|
110
|
-
consumeOrgInvitation(input: {
|
|
111
|
-
tokenHash: string;
|
|
112
|
-
}): Promise<OrgInvitationRecord | undefined>;
|
|
113
|
-
listOrgInvitations(org: string): Promise<readonly OrgInvitationRecord[]>;
|
|
114
|
-
revokeOrgInvitation(input: {
|
|
115
|
-
org: string;
|
|
116
|
-
email: string;
|
|
117
|
-
}): Promise<number>;
|
|
118
28
|
}
|
|
119
29
|
//# sourceMappingURL=control-plane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EAIpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,SAAS,EACT,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,yBAA0B,SAAQ,8BAA8B;CAAG;AAEpF,qBAAa,yBACX,SAAQ,2BACR,YAAW,iBAAiB;;gBAc1B,OAAO,GAAE;QACP,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;QACjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;KAC/B;IAyBF,0BAA0B,CAC9B,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC;IA8F5C,iBAAiB,CAAC,KAAK,EAAE;QACvB,GAAG,EAAE,IAAI,CAAC;QACV,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAoB3C,oBAAoB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1F,sBAAsB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAInE,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;CAoC7E"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bindInMemoryOrganizationStore, InMemoryOrganizationStore, memberKey, personalOrgSlugSuffix, } from '@noodle-borg/control-plane';
|
|
2
2
|
import { InMemoryBillingAccountStore } from '../billing/in-memory.js';
|
|
3
3
|
import { InMemorySerialQueue } from '../billing/in-memory-serialization.js';
|
|
4
4
|
import { GOOGLE_CONTROL_PLANE_ISSUER } from '../billing/model.js';
|
|
5
|
-
import {
|
|
6
|
-
import { validateDomain, validateOpenAIAppsChallenge, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateUserOwnedOrgSlug, } from '../store.js';
|
|
5
|
+
import { validateUserOwnedOrgSlug } from '../store.js';
|
|
7
6
|
export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
8
7
|
#orgs;
|
|
9
8
|
#members;
|
|
10
|
-
#
|
|
11
|
-
#openAIAppsChallenges = new Map();
|
|
12
|
-
#signup = new Map();
|
|
13
|
-
#invitations = new Map();
|
|
9
|
+
#organizations;
|
|
14
10
|
#welcomeEmails = new Map();
|
|
15
11
|
#personalWorkspaces = new Map();
|
|
16
12
|
#billingBootstrapQueue = new InMemorySerialQueue();
|
|
@@ -19,20 +15,23 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
19
15
|
const now = options.now ?? (() => new Date());
|
|
20
16
|
const orgs = new Map();
|
|
21
17
|
const members = new Map();
|
|
18
|
+
const organizations = new InMemoryOrganizationStore({ now, orgs, members });
|
|
22
19
|
super({
|
|
23
20
|
now,
|
|
24
|
-
orgExists: (org) =>
|
|
25
|
-
isOrgOwner: (org, subject) =>
|
|
26
|
-
...(options.billingUsageRetryWindowMs
|
|
27
|
-
? {
|
|
28
|
-
: {}),
|
|
29
|
-
...(options.billingUsageObservedSince
|
|
30
|
-
? {
|
|
31
|
-
: {}),
|
|
21
|
+
orgExists: (org) => organizations.hasOrg(org),
|
|
22
|
+
isOrgOwner: (org, subject) => organizations.isExactOwner(org, subject),
|
|
23
|
+
...(options.billingUsageRetryWindowMs === undefined
|
|
24
|
+
? {}
|
|
25
|
+
: { billingUsageRetryWindowMs: options.billingUsageRetryWindowMs }),
|
|
26
|
+
...(options.billingUsageObservedSince === undefined
|
|
27
|
+
? {}
|
|
28
|
+
: { billingUsageObservedSince: options.billingUsageObservedSince }),
|
|
32
29
|
});
|
|
33
30
|
this.#orgs = orgs;
|
|
34
31
|
this.#members = members;
|
|
32
|
+
this.#organizations = organizations;
|
|
35
33
|
this.#now = now;
|
|
34
|
+
Object.assign(this, bindInMemoryOrganizationStore(organizations));
|
|
36
35
|
}
|
|
37
36
|
async provisionPersonalWorkspace(input) {
|
|
38
37
|
const requestedSlug = validateUserOwnedOrgSlug(input.slug);
|
|
@@ -46,6 +45,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
46
45
|
const org = this.#orgs.get(binding.org);
|
|
47
46
|
if (org === undefined)
|
|
48
47
|
throw new Error('personal workspace binding lost org');
|
|
48
|
+
this.#organizations.ensureDefaultMcpSubdomain(binding.org);
|
|
49
49
|
this.#assertPersonalOwner(binding.org, input.subject);
|
|
50
50
|
this.#ensurePersonalOwner(binding.org, input);
|
|
51
51
|
this.ensureDefaultAccountAndOrgLinkAtomic({ org: binding.org, owner: input, reason: 'personal-workspace-created' }, this.#now().toISOString());
|
|
@@ -55,7 +55,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
55
55
|
const suffixCandidates = [...this.#orgs.values()].filter((org) => org.slug.startsWith('u-') && org.slug.endsWith(suffix));
|
|
56
56
|
const candidates = [];
|
|
57
57
|
for (const candidate of suffixCandidates) {
|
|
58
|
-
if (this.#
|
|
58
|
+
if (!this.#organizations.isExactOwner(candidate.slug, input.subject))
|
|
59
59
|
continue;
|
|
60
60
|
const billing = await this.getOrgBillingLink(candidate.slug);
|
|
61
61
|
if (billing !== undefined &&
|
|
@@ -68,6 +68,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
68
68
|
throw new Error('personal workspace legacy mapping is ambiguous');
|
|
69
69
|
const legacy = candidates[0];
|
|
70
70
|
if (legacy !== undefined) {
|
|
71
|
+
this.#organizations.ensureDefaultMcpSubdomain(legacy.slug);
|
|
71
72
|
this.#ensurePersonalOwner(legacy.slug, input);
|
|
72
73
|
this.ensureDefaultAccountAndOrgLinkAtomic({ org: legacy.slug, owner: input, reason: 'personal-workspace-created' }, this.#now().toISOString());
|
|
73
74
|
this.#personalWorkspaces.set(input.subject, { org: legacy.slug, identityIssuer });
|
|
@@ -88,12 +89,13 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
88
89
|
const welcome = {
|
|
89
90
|
subject: input.subject,
|
|
90
91
|
email: input.email.toLowerCase(),
|
|
91
|
-
...(input.firstName
|
|
92
|
+
...(input.firstName === undefined ? {} : { firstName: input.firstName }),
|
|
92
93
|
createdAt,
|
|
93
94
|
attemptCount: 0,
|
|
94
95
|
nextAttemptAt: createdAt,
|
|
95
96
|
};
|
|
96
97
|
this.ensureDefaultAccountAndOrgLinkAtomic({ org: requestedSlug, owner: input, reason: 'personal-workspace-created' }, createdAt);
|
|
98
|
+
this.#organizations.ensureDefaultMcpSubdomain(requestedSlug);
|
|
97
99
|
this.#orgs.set(requestedSlug, org);
|
|
98
100
|
this.#members.set(memberKey(requestedSlug, input.subject), member);
|
|
99
101
|
this.#welcomeEmails.set(input.subject, welcome);
|
|
@@ -109,7 +111,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
109
111
|
this.#members.set(key, { ...existing, email: input.email.toLowerCase() });
|
|
110
112
|
}
|
|
111
113
|
#assertPersonalOwner(org, subject) {
|
|
112
|
-
if (this.#
|
|
114
|
+
if (!this.#organizations.isExactOwner(org, subject)) {
|
|
113
115
|
throw new Error('personal workspace legacy ownership mismatch');
|
|
114
116
|
}
|
|
115
117
|
}
|
|
@@ -157,31 +159,20 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
157
159
|
getWelcomeEmail(subject) {
|
|
158
160
|
return Promise.resolve(this.#welcomeEmails.get(subject));
|
|
159
161
|
}
|
|
160
|
-
createOrg(input) {
|
|
161
|
-
const slug = validateSlug('org', input.slug);
|
|
162
|
-
const existing = this.#orgs.get(slug);
|
|
163
|
-
if (existing)
|
|
164
|
-
return Promise.resolve(existing);
|
|
165
|
-
const org = {
|
|
166
|
-
slug,
|
|
167
|
-
...(input.displayName !== undefined ? { displayName: input.displayName } : {}),
|
|
168
|
-
createdAt: this.#now().toISOString(),
|
|
169
|
-
};
|
|
170
|
-
this.#orgs.set(slug, org);
|
|
171
|
-
return Promise.resolve(org);
|
|
172
|
-
}
|
|
173
162
|
async createOrgWithOwner(input) {
|
|
174
163
|
const slug = validateUserOwnedOrgSlug(input.slug);
|
|
175
164
|
return this.#billingBootstrapQueue.run(slug, () => {
|
|
176
165
|
const existing = this.#orgs.get(slug);
|
|
177
166
|
const hasOwner = existing !== undefined &&
|
|
178
167
|
[...this.#members.values()].some((member) => member.orgSlug === slug && member.role === 'owner');
|
|
179
|
-
if (existing !== undefined && hasOwner)
|
|
168
|
+
if (existing !== undefined && hasOwner) {
|
|
169
|
+
this.#organizations.ensureDefaultMcpSubdomain(slug);
|
|
180
170
|
return existing;
|
|
171
|
+
}
|
|
181
172
|
const createdAt = this.#now().toISOString();
|
|
182
173
|
const org = existing ?? {
|
|
183
174
|
slug,
|
|
184
|
-
...(input.displayName
|
|
175
|
+
...(input.displayName === undefined ? {} : { displayName: input.displayName }),
|
|
185
176
|
createdAt,
|
|
186
177
|
};
|
|
187
178
|
const member = {
|
|
@@ -192,243 +183,12 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
|
|
|
192
183
|
createdAt,
|
|
193
184
|
};
|
|
194
185
|
this.ensureDefaultAccountAndOrgLinkAtomic({ org: slug, owner: input.owner, reason: 'organization-created' }, createdAt);
|
|
186
|
+
this.#organizations.ensureDefaultMcpSubdomain(slug);
|
|
195
187
|
if (existing === undefined)
|
|
196
188
|
this.#orgs.set(slug, org);
|
|
197
189
|
this.#members.set(memberKey(slug, input.owner.subject), member);
|
|
198
190
|
return org;
|
|
199
191
|
});
|
|
200
192
|
}
|
|
201
|
-
updateOrg(input) {
|
|
202
|
-
const slug = validateSlug('org', input.slug);
|
|
203
|
-
const existing = this.#orgs.get(slug);
|
|
204
|
-
if (existing === undefined)
|
|
205
|
-
return Promise.resolve(undefined);
|
|
206
|
-
const updated = { ...existing, displayName: input.displayName };
|
|
207
|
-
this.#orgs.set(slug, updated);
|
|
208
|
-
return Promise.resolve(updated);
|
|
209
|
-
}
|
|
210
|
-
getOrg(org) {
|
|
211
|
-
return Promise.resolve(this.#orgs.get(validateSlug('org', org)));
|
|
212
|
-
}
|
|
213
|
-
listOrgs() {
|
|
214
|
-
return Promise.resolve([...this.#orgs.values()].sort((a, b) => a.slug.localeCompare(b.slug)));
|
|
215
|
-
}
|
|
216
|
-
listOrgsForSubject(subject) {
|
|
217
|
-
const slugs = new Set([...this.#members.values()]
|
|
218
|
-
.filter((member) => member.subject === subject)
|
|
219
|
-
.map((member) => member.orgSlug));
|
|
220
|
-
return Promise.resolve([...this.#orgs.values()]
|
|
221
|
-
.filter((org) => slugs.has(org.slug))
|
|
222
|
-
.sort((a, b) => a.slug.localeCompare(b.slug)));
|
|
223
|
-
}
|
|
224
|
-
async addOrgMember(input) {
|
|
225
|
-
const org = validateSlug('org', input.org);
|
|
226
|
-
await this.createOrg({ slug: org });
|
|
227
|
-
const member = {
|
|
228
|
-
orgSlug: org,
|
|
229
|
-
subject: input.subject,
|
|
230
|
-
email: input.email.toLowerCase(),
|
|
231
|
-
role: validateOrgRole(input.role),
|
|
232
|
-
createdAt: this.#now().toISOString(),
|
|
233
|
-
};
|
|
234
|
-
this.#members.set(memberKey(org, input.subject), member);
|
|
235
|
-
return member;
|
|
236
|
-
}
|
|
237
|
-
removeOrgMember(input) {
|
|
238
|
-
return Promise.resolve(this.#members.delete(memberKey(validateSlug('org', input.org), input.subject)));
|
|
239
|
-
}
|
|
240
|
-
updateOrgMemberRole(input) {
|
|
241
|
-
const org = validateSlug('org', input.org);
|
|
242
|
-
const role = validateOrgRole(input.role);
|
|
243
|
-
const key = memberKey(org, input.subject);
|
|
244
|
-
const existing = this.#members.get(key);
|
|
245
|
-
if (existing === undefined)
|
|
246
|
-
return Promise.resolve(undefined);
|
|
247
|
-
const updated = { ...existing, role };
|
|
248
|
-
this.#members.set(key, updated);
|
|
249
|
-
return Promise.resolve(updated);
|
|
250
|
-
}
|
|
251
|
-
getOrgMember(input) {
|
|
252
|
-
return Promise.resolve(this.#members.get(memberKey(validateSlug('org', input.org), input.subject)));
|
|
253
|
-
}
|
|
254
|
-
listOrgMembers(org) {
|
|
255
|
-
const safe = validateSlug('org', org);
|
|
256
|
-
return Promise.resolve([...this.#members.values()]
|
|
257
|
-
.filter((member) => member.orgSlug === safe)
|
|
258
|
-
.sort((a, b) => a.email.localeCompare(b.email)));
|
|
259
|
-
}
|
|
260
|
-
isOrgMember(input) {
|
|
261
|
-
return Promise.resolve(this.#members.has(memberKey(validateSlug('org', input.org), input.subject)));
|
|
262
|
-
}
|
|
263
|
-
async addOrgDomain(input) {
|
|
264
|
-
const org = validateSlug('org', input.org);
|
|
265
|
-
const domain = validateOrgMembershipDomain(input.domain);
|
|
266
|
-
await this.createOrg({ slug: org });
|
|
267
|
-
const key = domainKey(org, domain);
|
|
268
|
-
const existing = this.#domains.get(key);
|
|
269
|
-
if (existing !== undefined)
|
|
270
|
-
return existing;
|
|
271
|
-
const record = {
|
|
272
|
-
orgSlug: org,
|
|
273
|
-
domain,
|
|
274
|
-
challenge: input.challenge ?? `noodle-${randomUUID()}`,
|
|
275
|
-
createdAt: this.#now().toISOString(),
|
|
276
|
-
};
|
|
277
|
-
this.#domains.set(key, record);
|
|
278
|
-
return record;
|
|
279
|
-
}
|
|
280
|
-
removeOrgDomain(input) {
|
|
281
|
-
const org = validateSlug('org', input.org);
|
|
282
|
-
const domain = validateDomain(input.domain);
|
|
283
|
-
return Promise.resolve(this.#domains.delete(domainKey(org, domain)));
|
|
284
|
-
}
|
|
285
|
-
markOrgDomainVerification(input) {
|
|
286
|
-
const org = validateSlug('org', input.org);
|
|
287
|
-
const domain = validateDomain(input.domain);
|
|
288
|
-
const key = domainKey(org, domain);
|
|
289
|
-
const existing = this.#domains.get(key);
|
|
290
|
-
if (existing === undefined)
|
|
291
|
-
return Promise.resolve(undefined);
|
|
292
|
-
const checked = this.#now().toISOString();
|
|
293
|
-
const { verifiedAt: _oldVerifiedAt, ...withoutVerifiedAt } = existing;
|
|
294
|
-
const updated = {
|
|
295
|
-
...withoutVerifiedAt,
|
|
296
|
-
lastCheckedAt: checked,
|
|
297
|
-
...(input.verified ? { verifiedAt: existing.verifiedAt ?? checked } : {}),
|
|
298
|
-
};
|
|
299
|
-
this.#domains.set(key, updated);
|
|
300
|
-
return Promise.resolve(updated);
|
|
301
|
-
}
|
|
302
|
-
listOrgDomains(org) {
|
|
303
|
-
const safe = validateSlug('org', org);
|
|
304
|
-
return Promise.resolve([...this.#domains.values()]
|
|
305
|
-
.filter((record) => record.orgSlug === safe)
|
|
306
|
-
.sort((a, b) => a.domain.localeCompare(b.domain)));
|
|
307
|
-
}
|
|
308
|
-
async setOrgOpenAIAppsChallenge(input) {
|
|
309
|
-
const org = validateSlug('org', input.org);
|
|
310
|
-
await this.createOrg({ slug: org });
|
|
311
|
-
const record = {
|
|
312
|
-
orgSlug: org,
|
|
313
|
-
challenge: validateOpenAIAppsChallenge(input.challenge),
|
|
314
|
-
updatedAt: this.#now().toISOString(),
|
|
315
|
-
...(input.updatedBySubject !== undefined ? { updatedBySubject: input.updatedBySubject } : {}),
|
|
316
|
-
...(input.updatedByEmail !== undefined ? { updatedByEmail: input.updatedByEmail } : {}),
|
|
317
|
-
};
|
|
318
|
-
this.#openAIAppsChallenges.set(org, record);
|
|
319
|
-
return record;
|
|
320
|
-
}
|
|
321
|
-
getOrgOpenAIAppsChallenge(org) {
|
|
322
|
-
return Promise.resolve(this.#openAIAppsChallenges.get(validateSlug('org', org)));
|
|
323
|
-
}
|
|
324
|
-
clearOrgOpenAIAppsChallenge(org) {
|
|
325
|
-
return Promise.resolve(this.#openAIAppsChallenges.delete(validateSlug('org', org)));
|
|
326
|
-
}
|
|
327
|
-
async isDataPlaneOrgMember(input) {
|
|
328
|
-
if (await this.isOrgMember({ org: input.org, subject: input.subject }))
|
|
329
|
-
return true;
|
|
330
|
-
if (input.email === undefined)
|
|
331
|
-
return false;
|
|
332
|
-
const domain = domainFromEmail(input.email);
|
|
333
|
-
if (domain === undefined)
|
|
334
|
-
return false;
|
|
335
|
-
const domains = await this.listOrgDomains(input.org);
|
|
336
|
-
return domains.some((record) => record.domain === domain);
|
|
337
|
-
}
|
|
338
|
-
allowSignup(input) {
|
|
339
|
-
const record = {
|
|
340
|
-
kind: validateSignupAllowlistKind(input.kind),
|
|
341
|
-
value: normalizeSignupAllowlistValue(input.kind, input.value),
|
|
342
|
-
createdAt: this.#now().toISOString(),
|
|
343
|
-
...(input.createdBySubject !== undefined ? { createdBySubject: input.createdBySubject } : {}),
|
|
344
|
-
};
|
|
345
|
-
this.#signup.set(signupKey(record.kind, record.value), record);
|
|
346
|
-
return Promise.resolve(record);
|
|
347
|
-
}
|
|
348
|
-
listSignupAllowlist() {
|
|
349
|
-
return Promise.resolve([...this.#signup.values()].sort((a, b) => `${a.kind}:${a.value}`.localeCompare(`${b.kind}:${b.value}`)));
|
|
350
|
-
}
|
|
351
|
-
isSignupAllowed(input) {
|
|
352
|
-
const subject = input.subject.toLowerCase();
|
|
353
|
-
if (this.#signup.has(signupKey('subject', subject)))
|
|
354
|
-
return Promise.resolve(true);
|
|
355
|
-
const domain = domainFromEmail(input.email);
|
|
356
|
-
return Promise.resolve(domain !== undefined && this.#signup.has(signupKey('domain', domain)));
|
|
357
|
-
}
|
|
358
|
-
async createOrgInvitation(input) {
|
|
359
|
-
const org = validateSlug('org', input.org);
|
|
360
|
-
await this.createOrg({ slug: org });
|
|
361
|
-
const record = {
|
|
362
|
-
orgSlug: org,
|
|
363
|
-
email: input.email.toLowerCase(),
|
|
364
|
-
role: validateOrgRole(input.role),
|
|
365
|
-
tokenHash: input.tokenHash,
|
|
366
|
-
createdAt: this.#now().toISOString(),
|
|
367
|
-
expiresAt: input.expiresAt.toISOString(),
|
|
368
|
-
createdBySubject: input.createdBySubject,
|
|
369
|
-
...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
|
|
370
|
-
};
|
|
371
|
-
this.#invitations.set(input.tokenHash, record);
|
|
372
|
-
return record;
|
|
373
|
-
}
|
|
374
|
-
getOrgInvitation(input) {
|
|
375
|
-
const record = this.#invitations.get(input.tokenHash);
|
|
376
|
-
if (record === undefined || record.acceptedAt !== undefined)
|
|
377
|
-
return Promise.resolve(undefined);
|
|
378
|
-
if (Date.parse(record.expiresAt) <= this.#now().getTime())
|
|
379
|
-
return Promise.resolve(undefined);
|
|
380
|
-
return Promise.resolve(record);
|
|
381
|
-
}
|
|
382
|
-
consumeOrgInvitation(input) {
|
|
383
|
-
const record = this.#invitations.get(input.tokenHash);
|
|
384
|
-
if (record === undefined || record.acceptedAt !== undefined)
|
|
385
|
-
return Promise.resolve(undefined);
|
|
386
|
-
if (Date.parse(record.expiresAt) <= this.#now().getTime())
|
|
387
|
-
return Promise.resolve(undefined);
|
|
388
|
-
const accepted = { ...record, acceptedAt: this.#now().toISOString() };
|
|
389
|
-
this.#invitations.set(input.tokenHash, accepted);
|
|
390
|
-
return Promise.resolve(accepted);
|
|
391
|
-
}
|
|
392
|
-
listOrgInvitations(org) {
|
|
393
|
-
const safe = validateSlug('org', org);
|
|
394
|
-
return Promise.resolve([...this.#invitations.values()]
|
|
395
|
-
.filter((record) => record.orgSlug === safe)
|
|
396
|
-
.sort((a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt) || a.email.localeCompare(b.email)));
|
|
397
|
-
}
|
|
398
|
-
revokeOrgInvitation(input) {
|
|
399
|
-
const org = validateSlug('org', input.org);
|
|
400
|
-
const email = input.email.toLowerCase();
|
|
401
|
-
let revoked = 0;
|
|
402
|
-
for (const [tokenHash, record] of this.#invitations) {
|
|
403
|
-
if (record.orgSlug === org && record.email === email && record.acceptedAt === undefined) {
|
|
404
|
-
this.#invitations.delete(tokenHash);
|
|
405
|
-
revoked += 1;
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
return Promise.resolve(revoked);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
function memberKey(org, subject) {
|
|
412
|
-
return `${org}/${subject}`;
|
|
413
|
-
}
|
|
414
|
-
function domainKey(org, domain) {
|
|
415
|
-
return `${org}/${domain}`;
|
|
416
|
-
}
|
|
417
|
-
function domainFromEmail(email) {
|
|
418
|
-
const at = email.lastIndexOf('@');
|
|
419
|
-
if (at < 0)
|
|
420
|
-
return undefined;
|
|
421
|
-
try {
|
|
422
|
-
return validateDomain(email.slice(at + 1));
|
|
423
|
-
}
|
|
424
|
-
catch {
|
|
425
|
-
return undefined;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
function normalizeSignupAllowlistValue(kind, value) {
|
|
429
|
-
return kind === 'domain' ? validateDomain(value) : value.trim().toLowerCase();
|
|
430
|
-
}
|
|
431
|
-
function signupKey(kind, value) {
|
|
432
|
-
return `${kind}/${value}`;
|
|
433
193
|
}
|
|
434
194
|
//# sourceMappingURL=control-plane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { DeployRecord } from '../store.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Persist one deploy record and its parent app/environment rows in a single transaction. Extracted from
|
|
5
5
|
* `PostgresArtifactStore.append` so the deploy-record write SQL has its own home, mirroring the
|
|
6
|
-
*
|
|
6
|
+
* extracted control-plane row module.
|
|
7
7
|
*/
|
|
8
8
|
export declare function appendDeployRecordRows(pool: Pool, record: DeployRecord): Promise<void>;
|
|
9
9
|
//# sourceMappingURL=postgres-deploy-records.d.ts.map
|
|
@@ -7,7 +7,7 @@ import { deployRecordParams, rowToRecord } from './postgres-rows.js';
|
|
|
7
7
|
/**
|
|
8
8
|
* Persist one deploy record and its parent app/environment rows in a single transaction. Extracted from
|
|
9
9
|
* `PostgresArtifactStore.append` so the deploy-record write SQL has its own home, mirroring the
|
|
10
|
-
*
|
|
10
|
+
* extracted control-plane row module.
|
|
11
11
|
*/
|
|
12
12
|
export async function appendDeployRecordRows(pool, record) {
|
|
13
13
|
// Defence in depth (mirrors the file store): `deploymentId` is always minted as `[a-z0-9-]`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import type { ActiveMcpSubdomainClaim, ChangeMcpSubdomainInput, McpSubdomainMutationResult, McpSubdomainSetting } from '../store.js';
|
|
3
|
+
import { PostgresBillingStore } from './postgres-billing.js';
|
|
4
|
+
/** PostgreSQL adapter for organization MCP claims and their transactionally committed audit event. */
|
|
5
|
+
export declare abstract class PostgresMcpSubdomainStore extends PostgresBillingStore {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(pool: Pool, now: () => Date, billingUsageRetryWindowMs?: number);
|
|
8
|
+
getActiveMcpSubdomain(org: string): Promise<ActiveMcpSubdomainClaim | undefined>;
|
|
9
|
+
resolveActiveMcpSubdomain(mcpSubdomain: string): Promise<ActiveMcpSubdomainClaim | undefined>;
|
|
10
|
+
getMcpSubdomainSetting(org: string): Promise<McpSubdomainSetting | undefined>;
|
|
11
|
+
changeMcpSubdomain(input: ChangeMcpSubdomainInput): Promise<McpSubdomainMutationResult>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=postgres-mcp-subdomain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-mcp-subdomain.d.ts","sourceRoot":"","sources":["../../src/store/postgres-mcp-subdomain.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,sGAAsG;AACtG,8BAAsB,yBAA0B,SAAQ,oBAAoB;;gBAI9D,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,yBAAyB,CAAC,EAAE,MAAM;IAM3E,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAIhF,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAI7F,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAI7E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAsBxF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as controlPlaneRows from '@noodle-borg/control-plane';
|
|
2
|
+
import { insertAuditEvent } from '@noodle-borg/module-audit';
|
|
3
|
+
import { PostgresBillingStore } from './postgres-billing.js';
|
|
4
|
+
/** PostgreSQL adapter for organization MCP claims and their transactionally committed audit event. */
|
|
5
|
+
export class PostgresMcpSubdomainStore extends PostgresBillingStore {
|
|
6
|
+
#mcpSubdomainPool;
|
|
7
|
+
#mcpSubdomainNow;
|
|
8
|
+
constructor(pool, now, billingUsageRetryWindowMs) {
|
|
9
|
+
super(pool, now, billingUsageRetryWindowMs);
|
|
10
|
+
this.#mcpSubdomainPool = pool;
|
|
11
|
+
this.#mcpSubdomainNow = now;
|
|
12
|
+
}
|
|
13
|
+
getActiveMcpSubdomain(org) {
|
|
14
|
+
return controlPlaneRows.getActiveMcpSubdomainRow(this.#mcpSubdomainPool, org);
|
|
15
|
+
}
|
|
16
|
+
resolveActiveMcpSubdomain(mcpSubdomain) {
|
|
17
|
+
return controlPlaneRows.resolveActiveMcpSubdomainRow(this.#mcpSubdomainPool, mcpSubdomain);
|
|
18
|
+
}
|
|
19
|
+
getMcpSubdomainSetting(org) {
|
|
20
|
+
return controlPlaneRows.getMcpSubdomainSettingRow(this.#mcpSubdomainPool, org);
|
|
21
|
+
}
|
|
22
|
+
changeMcpSubdomain(input) {
|
|
23
|
+
return controlPlaneRows.changeMcpSubdomainRow(this.#mcpSubdomainPool, input, {
|
|
24
|
+
now: this.#mcpSubdomainNow,
|
|
25
|
+
recordAudit: (client, result, mutation) => insertAuditEvent(client, {
|
|
26
|
+
eventType: 'org.mcp_subdomain.changed',
|
|
27
|
+
org: result.orgSlug,
|
|
28
|
+
actorSubject: mutation.actor.subject,
|
|
29
|
+
...(mutation.actor.email === undefined ? {} : { actorEmail: mutation.actor.email }),
|
|
30
|
+
decision: 'allow',
|
|
31
|
+
status: 200,
|
|
32
|
+
details: {
|
|
33
|
+
previousMcpSubdomain: result.previousMcpSubdomain,
|
|
34
|
+
mcpSubdomain: result.mcpSubdomain,
|
|
35
|
+
},
|
|
36
|
+
}, { now: () => new Date(result.changedAt) }),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=postgres-mcp-subdomain.js.map
|