@noodleseed/one 0.83.0 → 0.84.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/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/catalog-data-platform-auth.d.ts.map +1 -1
- package/dist/commands/catalog-data-platform-auth.js +70 -2
- package/dist/commands/catalog-data-platform-auth.js.map +1 -1
- package/dist/commands/platform-account-reset-args.d.ts +40 -0
- package/dist/commands/platform-account-reset-args.d.ts.map +1 -0
- package/dist/commands/platform-account-reset-args.js +181 -0
- package/dist/commands/platform-account-reset-args.js.map +1 -0
- package/dist/commands/platform-account-reset-files.d.ts +9 -0
- package/dist/commands/platform-account-reset-files.d.ts.map +1 -0
- package/dist/commands/platform-account-reset-files.js +45 -0
- package/dist/commands/platform-account-reset-files.js.map +1 -0
- package/dist/commands/platform-account-reset-ops.d.ts +3 -0
- package/dist/commands/platform-account-reset-ops.d.ts.map +1 -0
- package/dist/commands/platform-account-reset-ops.js +162 -0
- package/dist/commands/platform-account-reset-ops.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.d.ts +4 -4
- package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts +6 -6
- package/node_modules/@noodle-borg/service/dist/index.d.ts +4 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +2 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +5 -0
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js +17 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +25 -5
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +5 -3
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.js +5 -5
- package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js +7 -2
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js +6 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.js +24 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.js +110 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.js +46 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts +77 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js +144 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.js +59 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.js +22 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.d.ts +41 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.js +314 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.d.ts +14 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.js +210 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.js +71 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.js +2 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js +177 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts +35 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js +184 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.js +120 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.d.ts +79 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js +286 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.d.ts +21 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js +81 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts +46 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js +283 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js +81 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts +30 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js +248 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js +281 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.d.ts +55 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js +262 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.js +439 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset.d.ts +276 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset.js +141 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js +5 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js +10 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts +5 -10
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js +86 -47
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js +240 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +63 -63
- package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts +18 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js +97 -2
- package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts +4 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js +4 -0
- package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts +7 -2
- package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js +24 -2
- package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js +4 -0
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js +121 -8
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js +11 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts +5 -3
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js +15 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts +23 -2
- package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity.js +21 -0
- package/node_modules/@noodle-borg/service/dist/platform-identity.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.js +15 -2
- package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +4 -1
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.js +36 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.js +201 -0
- package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js +36 -0
- package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +16 -1
- package/node_modules/@noodle-borg/service/dist/serve.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 +4 -5
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts +22 -3
- package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/workos-directory.js +56 -5
- package/node_modules/@noodle-borg/service/dist/workos-directory.js.map +1 -1
- package/package.json +1 -1
package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { canonicalJson } from './platform-account-reset-fingerprint.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reintroduces only exact frozen owner-only app locators into rollback discovery. The current row must
|
|
4
|
+
* still carry this operation's quarantine archive stamp; broader archived deployment scans are forbidden.
|
|
5
|
+
*/
|
|
6
|
+
export async function loadPlatformAccountResetFrozenOwnerOnlyApps(pool, operationId, targetPrincipalIds, cleanupResources) {
|
|
7
|
+
const applications = new Set(cleanupResources
|
|
8
|
+
.filter((resource) => resource.provider === 'postgres' && resource.resourceKind === 'application')
|
|
9
|
+
.map((resource) => frozenApplication(resource.locator))
|
|
10
|
+
.filter((application) => application !== undefined)
|
|
11
|
+
.map(applicationKey));
|
|
12
|
+
const deployments = cleanupResources
|
|
13
|
+
.filter((resource) => resource.provider === 'postgres' && resource.resourceKind === 'deployment')
|
|
14
|
+
.map((resource) => frozenDeployment(resource.locator))
|
|
15
|
+
.filter((deployment) => deployment !== undefined && applications.has(applicationKey(deployment)));
|
|
16
|
+
if (deployments.length === 0)
|
|
17
|
+
return [];
|
|
18
|
+
const stored = await pool.query(`SELECT deployment.deployment_id, deployment.org_slug, deployment.app_slug,
|
|
19
|
+
deployment.environment, deployment.active, deployment.access_mode,
|
|
20
|
+
deployment.created_by_subject,
|
|
21
|
+
deployment.archived_at = operation.quarantined_at AS operation_archived
|
|
22
|
+
FROM deploy_records deployment
|
|
23
|
+
JOIN platform_account_reset_operations operation
|
|
24
|
+
ON operation.operation_id = $1
|
|
25
|
+
WHERE deployment.deployment_id = ANY($2::text[])`, [operationId, deployments.map((deployment) => deployment.deploymentId)]);
|
|
26
|
+
const frozenById = new Map(deployments.map((deployment) => [deployment.deploymentId, deployment]));
|
|
27
|
+
return [
|
|
28
|
+
...new Map(stored.rows
|
|
29
|
+
.filter((row) => {
|
|
30
|
+
const frozen = frozenById.get(row.deployment_id);
|
|
31
|
+
return (frozen !== undefined &&
|
|
32
|
+
row.operation_archived &&
|
|
33
|
+
row.org_slug === frozen.org &&
|
|
34
|
+
row.app_slug === frozen.app &&
|
|
35
|
+
row.environment === frozen.environment &&
|
|
36
|
+
row.active === frozen.active &&
|
|
37
|
+
row.access_mode === 'owner-only' &&
|
|
38
|
+
row.created_by_subject !== null &&
|
|
39
|
+
targetPrincipalIds.includes(row.created_by_subject));
|
|
40
|
+
})
|
|
41
|
+
.map((row) => [
|
|
42
|
+
applicationKey({ org: row.org_slug, app: row.app_slug }),
|
|
43
|
+
{ org_slug: row.org_slug, app_slug: row.app_slug },
|
|
44
|
+
])).values(),
|
|
45
|
+
].sort((left, right) => canonicalJson(left).localeCompare(canonicalJson(right)));
|
|
46
|
+
}
|
|
47
|
+
function frozenApplication(locator) {
|
|
48
|
+
return typeof locator.org === 'string' && typeof locator.app === 'string'
|
|
49
|
+
? { org: locator.org, app: locator.app }
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
function frozenDeployment(locator) {
|
|
53
|
+
const application = frozenApplication(locator);
|
|
54
|
+
return application !== undefined &&
|
|
55
|
+
typeof locator.deploymentId === 'string' &&
|
|
56
|
+
typeof locator.environment === 'string' &&
|
|
57
|
+
locator.active === true &&
|
|
58
|
+
locator.archived === false
|
|
59
|
+
? {
|
|
60
|
+
...application,
|
|
61
|
+
deploymentId: locator.deploymentId,
|
|
62
|
+
environment: locator.environment,
|
|
63
|
+
active: true,
|
|
64
|
+
archived: false,
|
|
65
|
+
}
|
|
66
|
+
: undefined;
|
|
67
|
+
}
|
|
68
|
+
function applicationKey(application) {
|
|
69
|
+
return `${application.org}\u0000${application.app}`;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=platform-account-reset-ownership-rollback-postgres.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-ownership-rollback-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-ownership-rollback-postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PlatformAccountResetExecuteRequest, PlatformAccountResetOperatorPreviewRequest, PlatformAccountResetResult, PlatformAccountResetStatusRequest } from './platform-account-reset.js';
|
|
2
|
+
/** Route and CLI boundary for the private, aggregate-only account-reset operator. */
|
|
3
|
+
export interface PlatformAccountResetOperatorPort {
|
|
4
|
+
preview(input: PlatformAccountResetOperatorPreviewRequest): Promise<PlatformAccountResetResult>;
|
|
5
|
+
execute(input: PlatformAccountResetExecuteRequest): Promise<PlatformAccountResetResult>;
|
|
6
|
+
status(input: PlatformAccountResetStatusRequest): Promise<PlatformAccountResetResult | undefined>;
|
|
7
|
+
}
|
|
8
|
+
/** Persistence boundary; implementations must never return reservation emails or provider locators. */
|
|
9
|
+
export interface PlatformAccountResetStorePort {
|
|
10
|
+
readSafeResult(operationId: string): Promise<PlatformAccountResetResult | undefined>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=platform-account-reset-ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-ports.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,0CAA0C,EAC1C,0BAA0B,EAC1B,iCAAiC,EAClC,MAAM,6BAA6B,CAAC;AAErC,qFAAqF;AACrF,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,KAAK,EAAE,0CAA0C,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAChG,OAAO,CAAC,KAAK,EAAE,kCAAkC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;CACnG;AAED,uGAAuG;AACvG,MAAM,WAAW,6BAA6B;IAC5C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;CACtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-ports.js","sourceRoot":"","sources":["../src/platform-account-reset-ports.ts"],"names":[],"mappings":""}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
|
|
2
|
+
import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
|
|
3
|
+
import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
|
|
4
|
+
import type { PlatformAccountResetDirectory, PlatformAccountResetDirectoryReadOptions } from './workos-directory.js';
|
|
5
|
+
export interface PlatformAccountResetContactEvidence {
|
|
6
|
+
readonly normalizedContacts: ReadonlyMap<string, string>;
|
|
7
|
+
readonly evidenceByTarget: ReadonlyMap<string, unknown>;
|
|
8
|
+
readonly missingCount: number;
|
|
9
|
+
readonly ambiguousCount: number;
|
|
10
|
+
}
|
|
11
|
+
export interface PlatformAccountResetWorkosEvidence {
|
|
12
|
+
readonly resources: readonly PlatformAccountResetCleanupResource[];
|
|
13
|
+
readonly providerUnavailableCount: number;
|
|
14
|
+
readonly conflictCount: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function loadPlatformAccountResetCustomerEvidence(connection: PlatformIdentityQueryable, targets: readonly string[]): Promise<readonly {
|
|
17
|
+
readonly subject: string;
|
|
18
|
+
readonly source: string;
|
|
19
|
+
}[]>;
|
|
20
|
+
export declare function loadPlatformAccountResetContactEvidence(connection: PlatformIdentityQueryable, targets: readonly string[], configured: PlatformAuthInventorySourceManifest): Promise<PlatformAccountResetContactEvidence>;
|
|
21
|
+
export declare function loadPlatformAccountResetWorkosEvidence(contacts: ReadonlyMap<string, string>, directory: PlatformAccountResetDirectory, workosRealm: string, options: PlatformAccountResetDirectoryReadOptions): Promise<PlatformAccountResetWorkosEvidence>;
|
|
22
|
+
//# sourceMappingURL=platform-account-reset-preview-evidence-postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EACV,6BAA6B,EAC7B,wCAAwC,EAEzC,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,mCAAmC,EAAE,CAAC;IACnE,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAsB,wCAAwC,CAC5D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAY3E;AAED,wBAAsB,uCAAuC,CAC3D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,mCAAmC,CAAC,CA4E9C;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,SAAS,EAAE,6BAA6B,EACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,wCAAwC,GAChD,OAAO,CAAC,kCAAkC,CAAC,CA2D7C"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { sha256Canonical } from './platform-account-reset-fingerprint.js';
|
|
2
|
+
import { normalizePlatformIdentityEmail } from './platform-identity.js';
|
|
3
|
+
export async function loadPlatformAccountResetCustomerEvidence(connection, targets) {
|
|
4
|
+
return queryRows(connection, `SELECT owner_subject AS subject, 'oauth_refresh_tokens'::text AS source
|
|
5
|
+
FROM oauth_refresh_tokens
|
|
6
|
+
WHERE owner_subject = ANY($1::text[]) AND identity_kind = 'customer'
|
|
7
|
+
UNION ALL
|
|
8
|
+
SELECT owner_subject AS subject, 'oauth_device_authorizations'::text AS source
|
|
9
|
+
FROM oauth_device_authorizations
|
|
10
|
+
WHERE owner_subject = ANY($1::text[]) AND identity_kind = 'customer'`, [targets]);
|
|
11
|
+
}
|
|
12
|
+
export async function loadPlatformAccountResetContactEvidence(connection, targets, configured) {
|
|
13
|
+
const statements = [];
|
|
14
|
+
if (configured.org_members === 'configured')
|
|
15
|
+
statements.push(`SELECT subject, email, 'org_members'::text AS source
|
|
16
|
+
FROM org_members WHERE subject = ANY($1::text[])`);
|
|
17
|
+
if (configured.billing_account_members === 'configured')
|
|
18
|
+
statements.push(`SELECT subject, email, 'billing_account_members'::text AS source
|
|
19
|
+
FROM billing_account_members WHERE subject = ANY($1::text[])`);
|
|
20
|
+
if (configured.oauth_refresh_tokens === 'configured')
|
|
21
|
+
statements.push(`SELECT owner_subject AS subject, owner_email AS email,
|
|
22
|
+
'oauth_refresh_tokens'::text AS source
|
|
23
|
+
FROM oauth_refresh_tokens
|
|
24
|
+
WHERE owner_subject = ANY($1::text[]) AND identity_kind <> 'customer'`);
|
|
25
|
+
if (configured.deploy_records === 'configured')
|
|
26
|
+
statements.push(`SELECT created_by_subject AS subject, created_by_email AS email,
|
|
27
|
+
'deploy_records'::text AS source
|
|
28
|
+
FROM deploy_records
|
|
29
|
+
WHERE created_by_subject = ANY($1::text[]) AND active AND archived_at IS NULL`);
|
|
30
|
+
if (configured.oauth_device_authorizations === 'configured')
|
|
31
|
+
statements.push(`SELECT owner_subject AS subject, owner_email AS email,
|
|
32
|
+
'oauth_device_authorizations'::text AS source
|
|
33
|
+
FROM oauth_device_authorizations
|
|
34
|
+
WHERE owner_subject = ANY($1::text[]) AND identity_kind <> 'customer'`);
|
|
35
|
+
if (configured.welcome_email_outbox === 'configured')
|
|
36
|
+
statements.push(`SELECT subject, email, 'welcome_email_outbox'::text AS source
|
|
37
|
+
FROM welcome_email_outbox WHERE subject = ANY($1::text[])`);
|
|
38
|
+
const rows = statements.length === 0
|
|
39
|
+
? []
|
|
40
|
+
: await queryRows(connection, statements.join(' UNION ALL '), [targets]);
|
|
41
|
+
const rowsByTarget = groupBy(rows, (row) => row.subject);
|
|
42
|
+
const normalizedContacts = new Map();
|
|
43
|
+
const evidenceByTarget = new Map();
|
|
44
|
+
let missingCount = 0;
|
|
45
|
+
let ambiguousCount = 0;
|
|
46
|
+
for (const target of targets) {
|
|
47
|
+
const targetRows = rowsByTarget.get(target) ?? [];
|
|
48
|
+
const candidates = [
|
|
49
|
+
...new Set(targetRows
|
|
50
|
+
.map((row) => safelyNormalizeEmail(row.email))
|
|
51
|
+
.filter((email) => email !== undefined)),
|
|
52
|
+
].sort(compareText);
|
|
53
|
+
if (candidates.length === 0)
|
|
54
|
+
missingCount += 1;
|
|
55
|
+
else if (candidates.length !== 1)
|
|
56
|
+
ambiguousCount += 1;
|
|
57
|
+
else
|
|
58
|
+
normalizedContacts.set(target, candidates[0]);
|
|
59
|
+
evidenceByTarget.set(target, {
|
|
60
|
+
candidates: candidates.map((email) => sha256Canonical({ email })),
|
|
61
|
+
contributions: targetRows.map((row) => {
|
|
62
|
+
const normalized = safelyNormalizeEmail(row.email);
|
|
63
|
+
return {
|
|
64
|
+
source: row.source,
|
|
65
|
+
valueFingerprint: normalized === undefined ? 'invalid' : sha256Canonical({ normalized }),
|
|
66
|
+
};
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
normalizedContacts,
|
|
72
|
+
evidenceByTarget,
|
|
73
|
+
missingCount,
|
|
74
|
+
ambiguousCount,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export async function loadPlatformAccountResetWorkosEvidence(contacts, directory, workosRealm, options) {
|
|
78
|
+
const resources = [];
|
|
79
|
+
let providerUnavailableCount = 0;
|
|
80
|
+
let conflictCount = 0;
|
|
81
|
+
const orderedContacts = [...contacts].sort(([left], [right]) => compareText(left, right));
|
|
82
|
+
for (const [principalId, normalizedEmail] of orderedContacts) {
|
|
83
|
+
if (providerReadAborted(options))
|
|
84
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
85
|
+
let users;
|
|
86
|
+
try {
|
|
87
|
+
users = await directory.listUsersByNormalizedEmail(normalizedEmail, options);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
if (providerReadAborted(options))
|
|
91
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
92
|
+
providerUnavailableCount += 1;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (providerReadAborted(options))
|
|
96
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
97
|
+
const exact = users
|
|
98
|
+
.filter((user) => safelyNormalizeEmail(user.normalizedEmail) === normalizedEmail)
|
|
99
|
+
.sort((left, right) => compareText(left.id, right.id));
|
|
100
|
+
if (exact.length > 1 || exact.some((user) => user.externalId !== undefined)) {
|
|
101
|
+
conflictCount += 1;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const user = exact[0];
|
|
105
|
+
if (user === undefined)
|
|
106
|
+
continue;
|
|
107
|
+
if (providerReadAborted(options))
|
|
108
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
109
|
+
let byId;
|
|
110
|
+
try {
|
|
111
|
+
byId = await directory.findUserById(user.id, options);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
if (providerReadAborted(options))
|
|
115
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
116
|
+
providerUnavailableCount += 1;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (providerReadAborted(options))
|
|
120
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
121
|
+
if (byId === undefined ||
|
|
122
|
+
byId.id !== user.id ||
|
|
123
|
+
safelyNormalizeEmail(byId.normalizedEmail) !== normalizedEmail ||
|
|
124
|
+
byId.externalId !== undefined) {
|
|
125
|
+
conflictCount += 1;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const locator = { principalId, userId: user.id, normalizedEmail, realm: workosRealm };
|
|
129
|
+
const resourceKind = 'unlinked_user';
|
|
130
|
+
resources.push({
|
|
131
|
+
provider: 'workos',
|
|
132
|
+
resourceKind,
|
|
133
|
+
locator,
|
|
134
|
+
locatorFingerprint: sha256Canonical({
|
|
135
|
+
schemaVersion: 1,
|
|
136
|
+
label: `platform_account_reset_locator:workos:${resourceKind}`,
|
|
137
|
+
locator,
|
|
138
|
+
}),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (providerReadAborted(options))
|
|
142
|
+
return unavailableWorkosEvidence(orderedContacts.length);
|
|
143
|
+
return { resources, providerUnavailableCount, conflictCount };
|
|
144
|
+
}
|
|
145
|
+
function providerReadAborted(options) {
|
|
146
|
+
return options.signal.aborted || options.deadline.getTime() <= Date.now();
|
|
147
|
+
}
|
|
148
|
+
function unavailableWorkosEvidence(contactCount) {
|
|
149
|
+
return {
|
|
150
|
+
resources: [],
|
|
151
|
+
providerUnavailableCount: contactCount,
|
|
152
|
+
conflictCount: 0,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function queryRows(pool, text, values) {
|
|
156
|
+
return pool.query(text, values).then((result) => result.rows);
|
|
157
|
+
}
|
|
158
|
+
function groupBy(values, key) {
|
|
159
|
+
const grouped = new Map();
|
|
160
|
+
for (const value of values) {
|
|
161
|
+
const itemKey = key(value);
|
|
162
|
+
grouped.set(itemKey, [...(grouped.get(itemKey) ?? []), value]);
|
|
163
|
+
}
|
|
164
|
+
return grouped;
|
|
165
|
+
}
|
|
166
|
+
function compareText(left, right) {
|
|
167
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
168
|
+
}
|
|
169
|
+
function safelyNormalizeEmail(value) {
|
|
170
|
+
try {
|
|
171
|
+
return normalizePlatformIdentityEmail(value);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=platform-account-reset-preview-evidence-postgres.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"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"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PlatformAccountResetBlockerCode, PlatformAccountResetPreviewRequest, PlatformAccountResetResult } from './platform-account-reset.js';
|
|
2
|
+
import { type PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
|
|
3
|
+
import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
|
|
4
|
+
import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
|
|
5
|
+
export interface PlatformAccountResetLocalInspection {
|
|
6
|
+
readonly operationId: string;
|
|
7
|
+
readonly request: PlatformAccountResetPreviewRequest;
|
|
8
|
+
readonly targets: readonly string[];
|
|
9
|
+
readonly normalizedContacts: ReadonlyMap<string, string>;
|
|
10
|
+
readonly targetEvidence: ReadonlyMap<string, Readonly<Record<string, unknown>>>;
|
|
11
|
+
readonly cleanupResources: readonly PlatformAccountResetCleanupResource[];
|
|
12
|
+
readonly ownershipFingerprint: string;
|
|
13
|
+
readonly localCleanupSetFingerprint: string;
|
|
14
|
+
readonly requestFingerprint: string;
|
|
15
|
+
readonly workosRealmFingerprint: string;
|
|
16
|
+
readonly counts: PlatformAccountResetResult['counts'];
|
|
17
|
+
readonly blockers: readonly {
|
|
18
|
+
readonly code: PlatformAccountResetBlockerCode;
|
|
19
|
+
readonly count: number;
|
|
20
|
+
}[];
|
|
21
|
+
readonly evidenceFingerprint: string;
|
|
22
|
+
}
|
|
23
|
+
export interface PlatformAccountResetLocalInspectionOptions {
|
|
24
|
+
readonly sourceAvailability: PlatformAuthInventorySourceManifest;
|
|
25
|
+
readonly googleRealm: string;
|
|
26
|
+
readonly workosRealm: string;
|
|
27
|
+
readonly releaseSha: string;
|
|
28
|
+
readonly excludedSubjects: readonly {
|
|
29
|
+
readonly subject: string;
|
|
30
|
+
readonly kind: 'workload' | 'synthetic';
|
|
31
|
+
}[];
|
|
32
|
+
readonly ignoreCurrentOperation?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function inspectPlatformAccountResetLocalEvidence(connection: PlatformIdentityQueryable, request: PlatformAccountResetPreviewRequest, operationId: string, options: PlatformAccountResetLocalInspectionOptions): Promise<PlatformAccountResetLocalInspection>;
|
|
35
|
+
//# sourceMappingURL=platform-account-reset-preview-local-postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-local-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-local-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gDAAgD,CAAC;AAMxD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AA6BjF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,gBAAgB,EAAE,SAAS,mCAAmC,EAAE,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;QAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,0CAA0C;IACzD,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,SAAS;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;KACzC,EAAE,CAAC;IACJ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,wBAAsB,wCAAwC,CAC5D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,kCAAkC,EAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,0CAA0C,GAClD,OAAO,CAAC,mCAAmC,CAAC,CAoN9C"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { sha256Canonical } from './platform-account-reset-fingerprint.js';
|
|
2
|
+
import { loadPlatformAccountResetOwnershipSnapshot, } from './platform-account-reset-ownership-postgres.js';
|
|
3
|
+
import { loadPlatformAccountResetContactEvidence, loadPlatformAccountResetCustomerEvidence, } from './platform-account-reset-preview-evidence-postgres.js';
|
|
4
|
+
import { readPlatformAuthInventorySourceEpoch } from './platform-auth-inventory-source-fence-postgres.js';
|
|
5
|
+
export async function inspectPlatformAccountResetLocalEvidence(connection, request, operationId, options) {
|
|
6
|
+
const targets = [...request.targetSet.principalIds].sort(compareText);
|
|
7
|
+
const targetSet = new Set(targets);
|
|
8
|
+
const targetFingerprints = targets.map((target) => sha256Canonical(target));
|
|
9
|
+
const blockers = new Map();
|
|
10
|
+
const rollout = await connection.query(`SELECT generation::text FROM platform_auth_rollout_state
|
|
11
|
+
WHERE singleton = true FOR SHARE`);
|
|
12
|
+
const generation = Number(rollout.rows[0]?.generation);
|
|
13
|
+
const sourceEpoch = Number(await readPlatformAuthInventorySourceEpoch(connection));
|
|
14
|
+
if (request.releaseSha !== options.releaseSha)
|
|
15
|
+
increment(blockers, 'release_mismatch');
|
|
16
|
+
if (request.expectedGeneration !== generation)
|
|
17
|
+
increment(blockers, 'generation_mismatch');
|
|
18
|
+
if (request.sourceEpoch !== sourceEpoch)
|
|
19
|
+
increment(blockers, 'source_epoch_mismatch');
|
|
20
|
+
if (request.workosRealm !== options.workosRealm)
|
|
21
|
+
increment(blockers, 'operation_conflict');
|
|
22
|
+
const principals = await queryRows(connection, `SELECT principal_id, status, billing_identity_issuer, billing_subject
|
|
23
|
+
FROM platform_principals WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
24
|
+
const links = await queryRows(connection, `SELECT principal_id, provider, realm, external_id, disabled_at
|
|
25
|
+
FROM platform_identity_links WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
26
|
+
const verified = await queryRows(connection, `SELECT principal_id FROM platform_verified_emails
|
|
27
|
+
WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
28
|
+
const imports = await queryRows(connection, `SELECT principal_id FROM workos_import_ledger
|
|
29
|
+
WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
30
|
+
const importAttempts = await queryRows(connection, `SELECT principal_id, principal_fingerprint FROM workos_import_attempt_evidence
|
|
31
|
+
WHERE principal_id = ANY($1::text[])
|
|
32
|
+
OR principal_fingerprint = ANY($2::text[])`, [targets, targetFingerprints]);
|
|
33
|
+
const activeResets = await queryRows(connection, `SELECT target.principal_id
|
|
34
|
+
FROM platform_account_reset_targets target
|
|
35
|
+
JOIN platform_account_reset_operations operation
|
|
36
|
+
ON operation.operation_id = target.operation_id
|
|
37
|
+
WHERE target.principal_id = ANY($1::text[])
|
|
38
|
+
AND (
|
|
39
|
+
(operation.lifecycle = 'previewed'
|
|
40
|
+
AND operation.preview_expires_at > clock_timestamp())
|
|
41
|
+
OR operation.lifecycle IN ('quarantined','finalizing','finalization_blocked')
|
|
42
|
+
)
|
|
43
|
+
AND ($2::text IS NULL OR target.operation_id <> $2)`, [targets, options.ignoreCurrentOperation === true ? operationId : null]);
|
|
44
|
+
const personal = await queryRows(connection, `SELECT binding.principal_subject, binding.org_slug,
|
|
45
|
+
binding.billing_identity_issuer, binding.billing_subject,
|
|
46
|
+
binding.billing_account_id,
|
|
47
|
+
defaults.billing_account_id AS default_billing_account_id,
|
|
48
|
+
home.billing_account_id AS home_billing_account_id,
|
|
49
|
+
home.home_owner_identity_issuer, home.home_owner_subject
|
|
50
|
+
FROM personal_workspace_bindings binding
|
|
51
|
+
LEFT JOIN billing_account_defaults defaults
|
|
52
|
+
ON defaults.identity_issuer = binding.billing_identity_issuer
|
|
53
|
+
AND defaults.subject = binding.billing_subject
|
|
54
|
+
LEFT JOIN org_billing_home_accounts home ON home.org_slug = binding.org_slug
|
|
55
|
+
WHERE binding.principal_subject = ANY($1::text[])`, [targets]);
|
|
56
|
+
const principalsById = new Map(principals.map((row) => [row.principal_id, row]));
|
|
57
|
+
const linksByPrincipal = groupBy(links, (row) => row.principal_id);
|
|
58
|
+
for (const target of targets) {
|
|
59
|
+
const principal = principalsById.get(target);
|
|
60
|
+
if (principal?.status !== 'active') {
|
|
61
|
+
increment(blockers, 'principal_not_active');
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const googleLinks = (linksByPrincipal.get(target) ?? []).filter((row) => row.provider === 'google' && row.realm === options.googleRealm && row.disabled_at === null);
|
|
65
|
+
if (googleLinks.length !== 1 ||
|
|
66
|
+
googleLinks[0]?.external_id !== target ||
|
|
67
|
+
principal.billing_identity_issuer !== 'https://accounts.google.com' ||
|
|
68
|
+
principal.billing_subject !== target)
|
|
69
|
+
increment(blockers, 'principal_not_legacy_google');
|
|
70
|
+
}
|
|
71
|
+
if (verified.length !== 0)
|
|
72
|
+
blockers.set('verified_email_evidence_present', verified.length);
|
|
73
|
+
const workosLinks = links.filter((row) => row.provider === 'workos');
|
|
74
|
+
if (workosLinks.length !== 0)
|
|
75
|
+
blockers.set('workos_link_present', workosLinks.length);
|
|
76
|
+
if (imports.length + importAttempts.length !== 0)
|
|
77
|
+
blockers.set('workos_import_present', imports.length + importAttempts.length);
|
|
78
|
+
if (activeResets.length !== 0)
|
|
79
|
+
blockers.set('operation_conflict', activeResets.length);
|
|
80
|
+
const customerEvidence = await loadPlatformAccountResetCustomerEvidence(connection, targets);
|
|
81
|
+
const configuredExcluded = options.excludedSubjects.filter((entry) => targetSet.has(entry.subject));
|
|
82
|
+
if (customerEvidence.length + configuredExcluded.length !== 0)
|
|
83
|
+
blockers.set('synthetic_or_customer_identity', customerEvidence.length + configuredExcluded.length);
|
|
84
|
+
const personalByTarget = groupBy(personal, (row) => row.principal_subject);
|
|
85
|
+
for (const target of targets) {
|
|
86
|
+
const rows = personalByTarget.get(target) ?? [];
|
|
87
|
+
const row = rows[0];
|
|
88
|
+
if (rows.length !== 1 ||
|
|
89
|
+
row === undefined ||
|
|
90
|
+
row.billing_identity_issuer !== 'https://accounts.google.com' ||
|
|
91
|
+
row.billing_subject !== target ||
|
|
92
|
+
row.billing_account_id !== row.default_billing_account_id ||
|
|
93
|
+
row.billing_account_id !== row.home_billing_account_id ||
|
|
94
|
+
row.home_owner_identity_issuer !== 'https://accounts.google.com' ||
|
|
95
|
+
row.home_owner_subject !== target)
|
|
96
|
+
increment(blockers, 'personal_workspace_mismatch');
|
|
97
|
+
}
|
|
98
|
+
const contactEvidence = await loadPlatformAccountResetContactEvidence(connection, targets, options.sourceAvailability);
|
|
99
|
+
if (contactEvidence.missingCount !== 0)
|
|
100
|
+
blockers.set('contact_hint_missing', contactEvidence.missingCount);
|
|
101
|
+
if (contactEvidence.ambiguousCount !== 0)
|
|
102
|
+
blockers.set('contact_hint_ambiguous', contactEvidence.ambiguousCount);
|
|
103
|
+
const ownership = await loadPlatformAccountResetOwnershipSnapshot(connection, {
|
|
104
|
+
targetPrincipalIds: targets,
|
|
105
|
+
});
|
|
106
|
+
for (const blocker of ownership.blockers)
|
|
107
|
+
blockers.set(blocker.code, (blockers.get(blocker.code) ?? 0) + blocker.count);
|
|
108
|
+
const blockerList = [...blockers]
|
|
109
|
+
.map(([code, count]) => ({ code, count }))
|
|
110
|
+
.sort((left, right) => left.code.localeCompare(right.code));
|
|
111
|
+
const targetEvidence = new Map();
|
|
112
|
+
for (const target of targets) {
|
|
113
|
+
targetEvidence.set(target, {
|
|
114
|
+
schemaVersion: 1,
|
|
115
|
+
label: 'platform_account_reset_target_eligibility',
|
|
116
|
+
target,
|
|
117
|
+
principal: principalsById.get(target) ?? null,
|
|
118
|
+
links: linksByPrincipal.get(target) ?? [],
|
|
119
|
+
verifiedEmailEvidence: verified.filter((row) => row.principal_id === target),
|
|
120
|
+
importEvidence: imports.filter((row) => row.principal_id === target),
|
|
121
|
+
importAttemptEvidence: importAttempts.filter((row) => row.principal_id === target || row.principal_fingerprint === sha256Canonical(target)),
|
|
122
|
+
personal: personalByTarget.get(target) ?? [],
|
|
123
|
+
contact: contactEvidence.evidenceByTarget.get(target),
|
|
124
|
+
configuredExclusion: configuredExcluded.find((entry) => entry.subject === target) ?? null,
|
|
125
|
+
customerEvidence: customerEvidence.filter((row) => row.subject === target),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const requestFingerprint = sha256Canonical(request);
|
|
129
|
+
const workosRealmFingerprint = sha256Canonical({
|
|
130
|
+
schemaVersion: 1,
|
|
131
|
+
label: 'workos_realm',
|
|
132
|
+
realm: request.workosRealm,
|
|
133
|
+
});
|
|
134
|
+
const counts = {
|
|
135
|
+
targetCount: targets.length,
|
|
136
|
+
suspendedPrincipalCount: principals.filter((row) => row.status === 'suspended').length,
|
|
137
|
+
...ownership.counts,
|
|
138
|
+
cleanupPendingCount: 0,
|
|
139
|
+
};
|
|
140
|
+
const evidenceFingerprint = sha256Canonical({
|
|
141
|
+
schemaVersion: 1,
|
|
142
|
+
label: 'platform_account_reset_local_evidence',
|
|
143
|
+
requestFingerprint,
|
|
144
|
+
workosRealmFingerprint,
|
|
145
|
+
targetEvidence: [...targetEvidence],
|
|
146
|
+
blockers: blockerList,
|
|
147
|
+
counts,
|
|
148
|
+
ownershipFingerprint: ownership.ownershipFingerprint,
|
|
149
|
+
cleanupSetFingerprint: ownership.cleanupSetFingerprint,
|
|
150
|
+
});
|
|
151
|
+
return {
|
|
152
|
+
operationId,
|
|
153
|
+
request,
|
|
154
|
+
targets,
|
|
155
|
+
normalizedContacts: contactEvidence.normalizedContacts,
|
|
156
|
+
targetEvidence,
|
|
157
|
+
cleanupResources: ownership.cleanupResources,
|
|
158
|
+
ownershipFingerprint: ownership.ownershipFingerprint,
|
|
159
|
+
localCleanupSetFingerprint: ownership.cleanupSetFingerprint,
|
|
160
|
+
requestFingerprint,
|
|
161
|
+
workosRealmFingerprint,
|
|
162
|
+
counts,
|
|
163
|
+
blockers: blockerList,
|
|
164
|
+
evidenceFingerprint,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
function queryRows(pool, text, values) {
|
|
168
|
+
return pool.query(text, values).then((result) => result.rows);
|
|
169
|
+
}
|
|
170
|
+
function groupBy(values, key) {
|
|
171
|
+
const grouped = new Map();
|
|
172
|
+
for (const value of values) {
|
|
173
|
+
const itemKey = key(value);
|
|
174
|
+
grouped.set(itemKey, [...(grouped.get(itemKey) ?? []), value]);
|
|
175
|
+
}
|
|
176
|
+
return grouped;
|
|
177
|
+
}
|
|
178
|
+
function increment(blockers, code) {
|
|
179
|
+
blockers.set(code, (blockers.get(code) ?? 0) + 1);
|
|
180
|
+
}
|
|
181
|
+
function compareText(left, right) {
|
|
182
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=platform-account-reset-preview-local-postgres.js.map
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-local-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-local-postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type PlatformAccountResetFrozenInspection } from './platform-account-reset-preview-result.js';
|
|
2
|
+
import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
|
|
3
|
+
export declare function persistPlatformAccountResetPreview(connection: PlatformIdentityQueryable, inspection: PlatformAccountResetFrozenInspection, options: {
|
|
4
|
+
readonly actorFingerprint: string;
|
|
5
|
+
readonly approvedTargetSetFingerprint: string;
|
|
6
|
+
readonly workosRealm: string;
|
|
7
|
+
readonly createdAt: Date | string;
|
|
8
|
+
readonly previewExpiresAt: Date | string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
export declare function assertPlatformAccountResetCleanupEvidence(connection: PlatformIdentityQueryable, operationId: string, inspection: PlatformAccountResetFrozenInspection): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=platform-account-reset-preview-persistence-postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-persistence-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-persistence-postgres.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,oCAAoC,EAE1C,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,yBAAyB,EACrC,UAAU,EAAE,oCAAoC,EAChD,OAAO,EAAE;IACP,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1C,GACA,OAAO,CAAC,IAAI,CAAC,CAkFf;AAED,wBAAsB,yCAAyC,CAC7D,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,oCAAoC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|