@noodleseed/one 0.95.0 → 0.95.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/commands/auth-live-doctor.d.ts +1 -0
  2. package/dist/commands/auth-live-doctor.d.ts.map +1 -1
  3. package/dist/commands/auth-live-doctor.js +7 -6
  4. package/dist/commands/auth-live-doctor.js.map +1 -1
  5. package/dist/commands/auth-metadata-readiness.d.ts +2 -0
  6. package/dist/commands/auth-metadata-readiness.d.ts.map +1 -1
  7. package/dist/commands/auth-metadata-readiness.js +7 -0
  8. package/dist/commands/auth-metadata-readiness.js.map +1 -1
  9. package/dist/commands/auth-ops.d.ts +1 -0
  10. package/dist/commands/auth-ops.d.ts.map +1 -1
  11. package/dist/commands/auth-ops.js +26 -7
  12. package/dist/commands/auth-ops.js.map +1 -1
  13. package/dist/commands/catalog-data-auth-discovery.d.ts.map +1 -1
  14. package/dist/commands/catalog-data-auth-discovery.js +7 -0
  15. package/dist/commands/catalog-data-auth-discovery.js.map +1 -1
  16. package/dist/saas-scaffold-template.d.ts.map +1 -1
  17. package/dist/saas-scaffold-template.js +2 -1
  18. package/dist/saas-scaffold-template.js.map +1 -1
  19. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
  20. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  21. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.js +3 -3
  22. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.js.map +1 -1
  23. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  24. package/node_modules/@noodle-borg/capabilities/dist/index.js +1 -1
  25. package/node_modules/@noodle-borg/capabilities/dist/index.js.map +1 -1
  26. package/node_modules/@noodle-borg/module/dist/contract.d.ts +1 -1
  27. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  28. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-binding.d.ts +37 -0
  29. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-binding.d.ts.map +1 -0
  30. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-binding.js +182 -0
  31. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-binding.js.map +1 -0
  32. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-quarantine.d.ts +5 -0
  33. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-quarantine.d.ts.map +1 -0
  34. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-quarantine.js +14 -0
  35. package/node_modules/@noodle-borg/service/dist/customer-auth-audience-quarantine.js.map +1 -0
  36. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +5 -4
  37. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  38. package/node_modules/@noodle-borg/service/dist/options.d.ts +2 -2
  39. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  40. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js +20 -8
  42. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js.map +1 -1
  43. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts +2 -0
  44. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts.map +1 -1
  45. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js +58 -13
  46. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js.map +1 -1
  47. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts +1 -0
  48. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts.map +1 -1
  49. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js +3 -0
  50. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js.map +1 -1
  51. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +24 -24
  52. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts +2 -1
  53. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts.map +1 -1
  54. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js +4 -1
  55. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js.map +1 -1
  56. package/node_modules/@noodle-borg/service/dist/registry-access.d.ts +5 -1
  57. package/node_modules/@noodle-borg/service/dist/registry-access.d.ts.map +1 -1
  58. package/node_modules/@noodle-borg/service/dist/registry-access.js +64 -15
  59. package/node_modules/@noodle-borg/service/dist/registry-access.js.map +1 -1
  60. package/node_modules/@noodle-borg/service/dist/registry-rollback.d.ts +19 -0
  61. package/node_modules/@noodle-borg/service/dist/registry-rollback.d.ts.map +1 -0
  62. package/node_modules/@noodle-borg/service/dist/registry-rollback.js +91 -0
  63. package/node_modules/@noodle-borg/service/dist/registry-rollback.js.map +1 -0
  64. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +18 -2
  65. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/service/dist/registry-state.js +83 -7
  67. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -1
  68. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts +8 -0
  69. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/registry-targets.js +24 -0
  71. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +1 -1
  73. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -1
  75. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  76. package/node_modules/@noodle-borg/service/dist/registry.js +72 -83
  77. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  78. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/service/dist/routes/archive.js +14 -0
  80. package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -1
  81. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.d.ts.map +1 -1
  82. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js +4 -0
  83. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js.map +1 -1
  84. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts +1 -0
  85. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts.map +1 -1
  86. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +17 -4
  87. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js.map +1 -1
  88. package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +9 -9
  89. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.d.ts.map +1 -1
  90. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js +1 -1
  91. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js.map +1 -1
  92. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  93. package/node_modules/@noodle-borg/service/dist/serve.js +4 -2
  94. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  95. package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +5 -2
  96. package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts.map +1 -1
  97. package/node_modules/@noodle-borg/service/dist/store/in-memory.js +51 -8
  98. package/node_modules/@noodle-borg/service/dist/store/in-memory.js.map +1 -1
  99. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +5 -2
  100. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -1
  101. package/node_modules/@noodle-borg/service/dist/store/json-file.js +55 -6
  102. package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -1
  103. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts +2 -2
  104. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts.map +1 -1
  105. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js +30 -15
  106. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js.map +1 -1
  107. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience-schema.d.ts +16 -0
  108. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience-schema.d.ts.map +1 -0
  109. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience-schema.js +329 -0
  110. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience-schema.js.map +1 -0
  111. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience.d.ts +5 -0
  112. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience.d.ts.map +1 -0
  113. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience.js +24 -0
  114. package/node_modules/@noodle-borg/service/dist/store/postgres-customer-auth-audience.js.map +1 -0
  115. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts.map +1 -1
  116. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +2 -1
  117. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js.map +1 -1
  118. package/node_modules/@noodle-borg/service/dist/store/postgres-deployment-access.d.ts +9 -0
  119. package/node_modules/@noodle-borg/service/dist/store/postgres-deployment-access.d.ts.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/store/postgres-deployment-access.js +53 -0
  121. package/node_modules/@noodle-borg/service/dist/store/postgres-deployment-access.js.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts.map +1 -1
  123. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js +2 -1
  124. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +2 -1
  126. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -1
  127. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +2 -24
  128. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -1
  129. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts +2 -1
  130. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  131. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +3 -0
  132. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  133. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +7 -2
  134. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/store/postgres.js +27 -31
  136. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/store.d.ts +20 -1
  138. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  139. package/package.json +1 -1
@@ -1,5 +1,30 @@
1
+ import { assertUniqueActiveCustomerAuthAudienceBindings, CustomerAuthAudienceConflictError, } from './customer-auth-audience-binding.js';
1
2
  import { activeRecord, activeRecordVersion } from './registry-state.js';
2
3
  import { tenantDeploymentKey, tryServedTargetFor } from './registry-targets.js';
4
+ /** Registry-facing access transition with customer audience ownership preflight and atomic translation. */
5
+ export async function updateRegistryAccess(state, tenant, nextAccessMode, serverVersion, loadServed, customerVerifierFactory, hasCustomerAuthConflict) {
6
+ if (nextAccessMode === 'customers') {
7
+ const record = serverVersion === undefined
8
+ ? await activeRecord(state, tenant)
9
+ : await activeRecordVersion(state, tenant, serverVersion);
10
+ const served = record === undefined ? undefined : await loadServed(record.deploymentId);
11
+ const auth = served?.served.artifact.server.auth;
12
+ if (record !== undefined &&
13
+ auth !== undefined &&
14
+ (await hasCustomerAuthConflict({ ...record, accessMode: 'customers' }, auth))) {
15
+ return customerAuthAudienceConflict();
16
+ }
17
+ }
18
+ try {
19
+ return await updateActiveAccess(state, tenant, nextAccessMode, serverVersion, loadServed, customerVerifierFactory);
20
+ }
21
+ catch (error) {
22
+ if (error instanceof CustomerAuthAudienceConflictError) {
23
+ return customerAuthAudienceConflict();
24
+ }
25
+ throw error;
26
+ }
27
+ }
3
28
  /** Whether a manifest has an expression rooted at the caller's identity object. */
4
29
  export function manifestUsesUserRoot(manifest) {
5
30
  return /\$\{\s*user(?:[.[]|\s*\})/.test(JSON.stringify(manifest));
@@ -16,28 +41,32 @@ export async function updateActiveAccess(state, tenant, nextAccessMode, serverVe
16
41
  if (record === undefined)
17
42
  return noActiveDeployment();
18
43
  const previousAccessMode = record.accessMode ?? 'owner-only';
44
+ const served = previousAccessMode !== nextAccessMode || nextAccessMode === 'customers'
45
+ ? await loadServed(record.deploymentId)
46
+ : undefined;
47
+ const serverAuth = served?.served.artifact.server.auth;
48
+ if (nextAccessMode === 'customers' && serverAuth === undefined) {
49
+ return {
50
+ ok: false,
51
+ status: 409,
52
+ code: 'server_auth_required',
53
+ message: 'Customer access requires server authentication.',
54
+ };
55
+ }
19
56
  if (previousAccessMode === nextAccessMode) {
20
57
  const committed = state.store === undefined
21
- ? commitInMemoryAccessUpdate(state, tenant, record, nextAccessMode)
58
+ ? commitInMemoryAccessUpdate(state, tenant, record, nextAccessMode, serverAuth)
22
59
  : await state.store.updateActiveAccess(tenant, record.deploymentId, nextAccessMode, {
23
60
  expectedAccessMode: record.accessMode,
61
+ ...(serverAuth !== undefined ? { serverAuth } : {}),
24
62
  });
25
63
  if (committed === undefined)
26
64
  return accessUpdateConflict();
27
65
  reconcileCommittedAccess(state, tenant, committed);
28
66
  return { ok: true, changed: false, previousAccessMode, record: committed };
29
67
  }
30
- const served = await loadServed(record.deploymentId);
31
68
  if (served === undefined)
32
69
  return accessUpdateConflict();
33
- if (nextAccessMode === 'customers' && served.served.artifact.server.auth === undefined) {
34
- return {
35
- ok: false,
36
- status: 409,
37
- code: 'server_auth_required',
38
- message: 'Customer access requires server authentication.',
39
- };
40
- }
41
70
  if (nextAccessMode === 'public' && manifestUsesUserRoot(record.manifest)) {
42
71
  return {
43
72
  ok: false,
@@ -54,14 +83,19 @@ export async function updateActiveAccess(state, tenant, nextAccessMode, serverVe
54
83
  message: 'Owner-only access requires a recorded deployer identity.',
55
84
  };
56
85
  }
57
- const updated = { ...record, accessMode: nextAccessMode };
86
+ const updated = {
87
+ ...record,
88
+ accessMode: nextAccessMode,
89
+ ...(nextAccessMode === 'customers' && serverAuth !== undefined ? { serverAuth } : {}),
90
+ };
58
91
  const target = tryServedTargetFor(updated, served.served, customerVerifierFactory);
59
92
  if (target === undefined)
60
93
  return accessUpdateConflict();
61
94
  const committed = state.store === undefined
62
- ? commitInMemoryAccessUpdate(state, tenant, record, nextAccessMode)
95
+ ? commitInMemoryAccessUpdate(state, tenant, record, nextAccessMode, serverAuth)
63
96
  : await state.store.updateActiveAccess(tenant, record.deploymentId, nextAccessMode, {
64
97
  expectedAccessMode: record.accessMode,
98
+ ...(serverAuth !== undefined ? { serverAuth } : {}),
65
99
  });
66
100
  if (committed === undefined)
67
101
  return accessUpdateConflict();
@@ -69,7 +103,7 @@ export async function updateActiveAccess(state, tenant, nextAccessMode, serverVe
69
103
  state.servers.set(committed.deploymentId, target);
70
104
  return { ok: true, changed: true, previousAccessMode, record: committed };
71
105
  }
72
- function commitInMemoryAccessUpdate(state, tenant, observed, nextAccessMode) {
106
+ function commitInMemoryAccessUpdate(state, tenant, observed, nextAccessMode, serverAuth) {
73
107
  const current = state.records.get(observed.deploymentId);
74
108
  if (current === undefined ||
75
109
  !current.active ||
@@ -80,9 +114,16 @@ function commitInMemoryAccessUpdate(state, tenant, observed, nextAccessMode) {
80
114
  current.accessMode !== observed.accessMode) {
81
115
  return undefined;
82
116
  }
83
- if ((current.accessMode ?? 'owner-only') === nextAccessMode)
117
+ if ((current.accessMode ?? 'owner-only') === nextAccessMode && nextAccessMode !== 'customers') {
84
118
  return current;
85
- const committed = { ...current, accessMode: nextAccessMode };
119
+ }
120
+ const committed = {
121
+ ...current,
122
+ accessMode: nextAccessMode,
123
+ ...(nextAccessMode === 'customers' && serverAuth !== undefined ? { serverAuth } : {}),
124
+ };
125
+ const proposed = new Map(state.records).set(committed.deploymentId, committed);
126
+ assertUniqueActiveCustomerAuthAudienceBindings([...proposed.values()]);
86
127
  state.records.set(committed.deploymentId, committed);
87
128
  return committed;
88
129
  }
@@ -106,4 +147,12 @@ function accessUpdateConflict() {
106
147
  message: 'The active deployment changed before access could be updated.',
107
148
  };
108
149
  }
150
+ function customerAuthAudienceConflict() {
151
+ return {
152
+ ok: false,
153
+ status: 409,
154
+ code: 'customer_auth_audience_conflict',
155
+ message: 'Customer OIDC issuer/audience bindings must be unique to one app and environment.',
156
+ };
157
+ }
109
158
  //# sourceMappingURL=registry-access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry-access.js","sourceRoot":"","sources":["../src/registry-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-access.js","sourceRoot":"","sources":["../src/registry-access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CapabilityName } from '@noodle-borg/capabilities';
2
+ import type { ServedArtifact } from '@noodle-borg/protocol';
3
+ import type { OwnerTokenVerifier } from '@noodle-borg/transport-http';
4
+ import { type RegistryStateView } from './registry-state.js';
5
+ import type { DeployError, RollbackResult } from './registry-types.js';
6
+ import type { DeployRecord, TenantAuthConfig, TenantRef } from './store.js';
7
+ type CompilePersistedRecord = (record: DeployRecord) => Promise<{
8
+ readonly ok: true;
9
+ readonly served: ServedArtifact;
10
+ readonly bindDeployment: (deploymentId: string) => ServedArtifact;
11
+ } | {
12
+ readonly ok: false;
13
+ readonly errors: readonly DeployError[];
14
+ }>;
15
+ type CustomerAuthConflictGuard = (record: DeployRecord, auth: TenantAuthConfig | undefined) => Promise<boolean>;
16
+ /** Validate and atomically activate a previous deployment within one tenant boundary. */
17
+ export declare function rollbackDeployment(state: RegistryStateView, ref: TenantRef, deploymentId: string, compilePersistedRecord: CompilePersistedRecord, serviceCapabilities: readonly CapabilityName[], customerVerifierFactory: ((auth: TenantAuthConfig) => OwnerTokenVerifier) | undefined, hasCustomerAuthConflict: CustomerAuthConflictGuard): Promise<RollbackResult>;
18
+ export {};
19
+ //# sourceMappingURL=registry-rollback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-rollback.d.ts","sourceRoot":"","sources":["../src/registry-rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAC3D;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,cAAc,CAAC;CACnE,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,CAClE,CAAC;AAEF,KAAK,yBAAyB,GAAG,CAC/B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,gBAAgB,GAAG,SAAS,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,yFAAyF;AACzF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,MAAM,EACpB,sBAAsB,EAAE,sBAAsB,EAC9C,mBAAmB,EAAE,SAAS,cAAc,EAAE,EAC9C,uBAAuB,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,CAAC,GAAG,SAAS,EACrF,uBAAuB,EAAE,yBAAyB,GACjD,OAAO,CAAC,cAAc,CAAC,CA4FzB"}
@@ -0,0 +1,91 @@
1
+ import { missingCapabilityErrors } from './registry-helpers.js';
2
+ import { activateInMemory } from './registry-state.js';
3
+ import { recordMatchesTenant, servedTargetFor, tenantDeploymentKey, tenantKey, tryServedTargetFor, } from './registry-targets.js';
4
+ /** Validate and atomically activate a previous deployment within one tenant boundary. */
5
+ export async function rollbackDeployment(state, ref, deploymentId, compilePersistedRecord, serviceCapabilities, customerVerifierFactory, hasCustomerAuthConflict) {
6
+ const target = state.store
7
+ ? await state.store.get(deploymentId)
8
+ : state.records.get(deploymentId);
9
+ if (target === undefined || !recordMatchesTenant(target, ref)) {
10
+ return { ok: false, status: 404, error: 'deployment not found for target environment' };
11
+ }
12
+ const built = await compilePersistedRecord(target);
13
+ if (!built.ok) {
14
+ return {
15
+ ok: false,
16
+ status: 409,
17
+ error: `deployment cannot be activated: ${built.errors.map((error) => error.code).join(',')}`,
18
+ };
19
+ }
20
+ const missingCapabilities = missingCapabilityErrors(built.served.artifact.requirements?.capabilities ?? [], serviceCapabilities);
21
+ if (missingCapabilities.length > 0) {
22
+ return {
23
+ ok: false,
24
+ status: 409,
25
+ error: `deployment cannot be activated: ${missingCapabilities.map((error) => error.code).join(',')}`,
26
+ };
27
+ }
28
+ const compiledAuth = built.served.artifact.server.auth;
29
+ const projectedTarget = {
30
+ ...target,
31
+ ...(target.accessMode === 'customers' && compiledAuth !== undefined
32
+ ? { serverAuth: compiledAuth }
33
+ : {}),
34
+ };
35
+ if (tryServedTargetFor(projectedTarget, built.served, customerVerifierFactory) === undefined) {
36
+ return {
37
+ ok: false,
38
+ status: 409,
39
+ error: 'deployment cannot be activated: server_auth_required',
40
+ };
41
+ }
42
+ if (await hasCustomerAuthConflict({ ...projectedTarget, active: true }, compiledAuth)) {
43
+ return {
44
+ ok: false,
45
+ status: 409,
46
+ error: 'deployment cannot be activated: customer_auth_audience_conflict',
47
+ };
48
+ }
49
+ const activation = state.store
50
+ ? await state.store.activateDeployment(ref, deploymentId, {
51
+ expectedAccessMode: target.accessMode,
52
+ ...(compiledAuth !== undefined ? { serverAuth: compiledAuth } : {}),
53
+ })
54
+ : activateInMemory(state.records, ref, deploymentId, {
55
+ expectedAccessMode: target.accessMode,
56
+ ...(compiledAuth !== undefined ? { serverAuth: compiledAuth } : {}),
57
+ });
58
+ if (activation === undefined) {
59
+ const latest = state.store
60
+ ? await state.store.get(deploymentId)
61
+ : state.records.get(deploymentId);
62
+ return latest !== undefined && recordMatchesTenant(latest, ref)
63
+ ? {
64
+ ok: false,
65
+ status: 409,
66
+ error: 'deployment changed while rollback was being validated',
67
+ }
68
+ : { ok: false, status: 404, error: 'deployment not found for target environment' };
69
+ }
70
+ const active = activation.active;
71
+ const previous = activation.previousActive;
72
+ state.records.set(active.deploymentId, active);
73
+ if (previous !== undefined && previous.deploymentId !== active.deploymentId) {
74
+ state.records.set(previous.deploymentId, { ...previous, active: false });
75
+ }
76
+ state.servers.set(active.deploymentId, servedTargetFor(active, built.served, customerVerifierFactory));
77
+ state.activeTenants.set(tenantDeploymentKey(ref, active.serverVersion), active.deploymentId);
78
+ state.activeTenants.delete(tenantKey(ref));
79
+ return {
80
+ ok: true,
81
+ deploymentId: active.deploymentId,
82
+ ...(active.serverVersion !== undefined ? { serverVersion: active.serverVersion } : {}),
83
+ ...(previous !== undefined ? { previousDeploymentId: previous.deploymentId } : {}),
84
+ alreadyActive: activation.alreadyActive,
85
+ accessMode: active.accessMode ?? 'owner-only',
86
+ ...(previous?.accessMode !== undefined ? { previousAccessMode: previous.accessMode } : {}),
87
+ serverName: active.serverName,
88
+ createdAt: active.createdAt,
89
+ };
90
+ }
91
+ //# sourceMappingURL=registry-rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-rollback.js","sourceRoot":"","sources":["../src/registry-rollback.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ServedTarget } from '@noodle-borg/transport-http';
2
- import type { AppArchiveResult, AppRestoreResult, AppSummary, ArtifactStore, DeploymentSummary, DeployRecord, EnvSummary, ProductionEnvironmentChange, TenantRef } from './store.js';
2
+ import type { AppArchiveResult, AppRestoreResult, AppSummary, ArtifactStore, CustomerAuthRestoreProjection, DeploymentSummary, DeployRecord, EnvSummary, ProductionEnvironmentChange, TenantAuthConfig, TenantRef } from './store.js';
3
3
  export interface RegistryStateView {
4
4
  readonly store: ArtifactStore | undefined;
5
5
  readonly records: Map<string, DeployRecord>;
@@ -7,6 +7,18 @@ export interface RegistryStateView {
7
7
  readonly activeTenants: Map<string, string>;
8
8
  readonly productionEnvironments: Map<string, string>;
9
9
  }
10
+ type CompileCustomerAuthRecord = (record: DeployRecord) => Promise<{
11
+ readonly ok: true;
12
+ readonly served: {
13
+ readonly artifact: {
14
+ readonly server: {
15
+ readonly auth?: TenantAuthConfig;
16
+ };
17
+ };
18
+ };
19
+ } | {
20
+ readonly ok: false;
21
+ }>;
10
22
  export declare function reconcilePlatformAccountResetRegistryCache(state: RegistryStateView, input: {
11
23
  readonly action: 'quarantine' | 'rollback';
12
24
  readonly apps: readonly {
@@ -24,6 +36,7 @@ export declare function persistDeployRecord(view: RegistryStateView, record: Dep
24
36
  /** No-store activation fallback (moved verbatim from `ServerRegistry.#activateInMemory`). */
25
37
  export declare function activateInMemory(records: Map<string, DeployRecord>, ref: TenantRef, deploymentId: string, precondition?: {
26
38
  readonly expectedAccessMode: DeployRecord['accessMode'];
39
+ readonly serverAuth?: DeployRecord['serverAuth'];
27
40
  }): {
28
41
  readonly active: DeployRecord;
29
42
  readonly previousActive?: DeployRecord;
@@ -39,7 +52,9 @@ export declare function activeRecord(state: RegistryStateView, ref: TenantRef):
39
52
  export declare function activeRecordVersion(state: RegistryStateView, ref: TenantRef, serverVersion: string): Promise<DeployRecord | undefined>;
40
53
  export declare function registryAppArchivedAt(state: RegistryStateView, org: string, app: string): Promise<string | undefined>;
41
54
  export declare function registryArchiveApp(state: RegistryStateView, org: string, app: string, at: string): Promise<AppArchiveResult | undefined>;
42
- export declare function registryRestoreApp(state: RegistryStateView, org: string, app: string): Promise<AppRestoreResult | undefined>;
55
+ export declare function registryRestoreApp(state: RegistryStateView, org: string, app: string, compileRecord: CompileCustomerAuthRecord): Promise<AppRestoreResult | undefined>;
56
+ /** Compile exact private auth snapshots for a later atomic bulk-restore precondition. */
57
+ export declare function registryCustomerAuthRestoreProjections(state: RegistryStateView, deploymentIds: readonly string[], compileRecord: CompileCustomerAuthRecord): Promise<readonly CustomerAuthRestoreProjection[]>;
43
58
  export declare function registrySweepArchived(state: RegistryStateView, before: string): Promise<readonly DeployRecord[]>;
44
59
  /** The `apps` resource, store-first with a no-store fallback over the registry's own record cache. */
45
60
  export declare function registryListApps(state: RegistryStateView, org: string, opts: {
@@ -61,4 +76,5 @@ export declare function registrySetProductionEnvironment(state: RegistryStateVie
61
76
  * record cache. `undefined` both for an unknown id and for an id that belongs to a different org.
62
77
  */
63
78
  export declare function registryGetDeployment(state: RegistryStateView, org: string, deploymentId: string): Promise<DeploymentSummary | undefined>;
79
+ export {};
64
80
  //# sourceMappingURL=registry-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry-state.d.ts","sourceRoot":"","sources":["../src/registry-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-state.d.ts","sourceRoot":"","sources":["../src/registry-state.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAqBhE,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtD;AAED,KAAK,yBAAyB,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAC9D;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAA;aAAE,CAAA;SAAE,CAAC;KAC9E,CAAC;CACH,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CACzB,CAAC;AAEF,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE;IACL,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,GACA,IAAI,CAON;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAClC,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE;IACb,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;CAClD,GAEC;IACE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,GACD,SAAS,CAuCZ;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAenC;AAED,sGAAsG;AACtG,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAwBnC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAYvC;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,yBAAyB,GACvC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAsCvC;AAED,yFAAyF;AACzF,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,aAAa,EAAE,yBAAyB,GACvC,OAAO,CAAC,SAAS,6BAA6B,EAAE,CAAC,CAuBnD;AAgBD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAgBlC;AAED,sGAAsG;AACtG,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAQhF;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAOjC;AAED,sGAAsG;AACtG,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAWhC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAejC;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAqBlD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAMxC"}
@@ -5,6 +5,7 @@
5
5
  * durable store first, then reconcile the in-process caches so no instance keeps serving stale state.
6
6
  */
7
7
  import { normalizeServerVersion } from '@noodle-borg/module';
8
+ import { assertCustomerAuthRestorePrecondition, assertUniqueActiveCustomerAuthAudienceBindings, CustomerAuthAudienceProjectionError, hasExactCustomerAuthProjection, } from './customer-auth-audience-binding.js';
8
9
  import { defaultActiveRecord } from './deployment-versioning.js';
9
10
  import { recordMatchesTenant, tenantDeploymentKey, tenantKey } from './registry-targets.js';
10
11
  import { appArchivedAt, deploymentSummary, paginateAppSummaries, planAppArchive, planAppRestore, resolveProductionEnvironment, summarizeApps, summarizeEnvs, withoutArchiveStamp, } from './store/records.js';
@@ -30,6 +31,11 @@ export async function persistDeployRecord(view, record, tenant, activatesNow) {
30
31
  view.records.set(record.deploymentId, record);
31
32
  }
32
33
  else {
34
+ const proposed = new Map(view.records);
35
+ if (record.active)
36
+ deactivateScope(proposed, record);
37
+ proposed.set(record.deploymentId, record);
38
+ assertUniqueActiveCustomerAuthAudienceBindings([...proposed.values()]);
33
39
  const productionKey = `${tenant.org}/${tenant.app}`;
34
40
  if (!view.productionEnvironments.has(productionKey)) {
35
41
  view.productionEnvironments.set(productionKey, tenant.env);
@@ -60,6 +66,18 @@ export function activateInMemory(records, ref, deploymentId, precondition) {
60
66
  .filter((record) => record.serverVersion === target.serverVersion)
61
67
  .sort((a, b) => b.deploymentVersion - a.deploymentVersion)[0];
62
68
  const alreadyActive = previousActive?.deploymentId === deploymentId;
69
+ const activated = {
70
+ ...target,
71
+ active: true,
72
+ ...(target.accessMode === 'customers' && precondition?.serverAuth !== undefined
73
+ ? { serverAuth: precondition.serverAuth }
74
+ : {}),
75
+ };
76
+ const proposed = new Map(records);
77
+ if (!alreadyActive)
78
+ deactivateScope(proposed, target);
79
+ proposed.set(deploymentId, activated);
80
+ assertUniqueActiveCustomerAuthAudienceBindings([...proposed.values()]);
63
81
  if (!alreadyActive) {
64
82
  for (const [id, record] of records) {
65
83
  if (record.active &&
@@ -68,10 +86,10 @@ export function activateInMemory(records, ref, deploymentId, precondition) {
68
86
  records.set(id, { ...record, active: false });
69
87
  }
70
88
  }
71
- records.set(deploymentId, { ...target, active: true });
72
89
  }
90
+ records.set(deploymentId, activated);
73
91
  return {
74
- active: { ...target, active: true },
92
+ active: activated,
75
93
  ...(previousActive !== undefined ? { previousActive } : {}),
76
94
  alreadyActive,
77
95
  };
@@ -144,21 +162,79 @@ export async function registryArchiveApp(state, org, app, at) {
144
162
  evictArchivedApp(state, safeOrg, safeApp, plan.result.archivedAt);
145
163
  return plan.result;
146
164
  }
147
- export async function registryRestoreApp(state, org, app) {
165
+ export async function registryRestoreApp(state, org, app, compileRecord) {
148
166
  const safeOrg = validateSlug('org', org);
149
167
  const safeApp = validateSlug('app', app);
168
+ const appRecords = state.store
169
+ ? (await state.store.loadAll()).filter((record) => record.orgSlug === safeOrg && record.appSlug === safeApp)
170
+ : appRecordsFromMap(state.records, safeOrg, safeApp);
171
+ const plan = planAppRestore(appRecords);
172
+ if (plan === undefined)
173
+ return undefined;
174
+ const projections = [];
175
+ for (const record of plan.clear) {
176
+ if (!record.active || record.accessMode !== 'customers')
177
+ continue;
178
+ const built = await compileRecord(record);
179
+ const compiledAuth = built.ok ? built.served.artifact.server.auth : undefined;
180
+ if (compiledAuth === undefined || !hasExactCustomerAuthProjection(record, compiledAuth)) {
181
+ throw new CustomerAuthAudienceProjectionError();
182
+ }
183
+ projections.push({
184
+ deploymentId: record.deploymentId,
185
+ manifest: record.manifest,
186
+ serverAuth: compiledAuth,
187
+ });
188
+ }
189
+ const precondition = { customerAuthProjections: projections };
150
190
  if (state.store !== undefined) {
151
- const result = await state.store.restoreApp(safeOrg, safeApp);
191
+ const result = await state.store.restoreApp(safeOrg, safeApp, precondition);
152
192
  if (result !== undefined)
153
193
  clearCachedArchiveStamps(state, safeOrg, safeApp);
154
194
  return result;
155
195
  }
156
- const plan = planAppRestore(appRecordsFromMap(state.records, safeOrg, safeApp));
157
- if (plan === undefined)
158
- return undefined;
196
+ assertCustomerAuthRestorePrecondition(plan.clear, precondition);
197
+ const proposed = new Map(state.records);
198
+ for (const record of plan.clear) {
199
+ proposed.set(record.deploymentId, withoutArchiveStamp(record));
200
+ }
201
+ assertUniqueActiveCustomerAuthAudienceBindings([...proposed.values()]);
159
202
  clearCachedArchiveStamps(state, safeOrg, safeApp);
160
203
  return plan.result;
161
204
  }
205
+ /** Compile exact private auth snapshots for a later atomic bulk-restore precondition. */
206
+ export async function registryCustomerAuthRestoreProjections(state, deploymentIds, compileRecord) {
207
+ const records = await Promise.all(deploymentIds.map((deploymentId) => state.store === undefined
208
+ ? Promise.resolve(state.records.get(deploymentId))
209
+ : state.store.get(deploymentId)));
210
+ const projections = [];
211
+ for (const record of records) {
212
+ if (record === undefined || !record.active || record.accessMode !== 'customers')
213
+ continue;
214
+ const built = await compileRecord(record);
215
+ const compiledAuth = built.ok ? built.served.artifact.server.auth : undefined;
216
+ if (compiledAuth === undefined || !hasExactCustomerAuthProjection(record, compiledAuth)) {
217
+ throw new CustomerAuthAudienceProjectionError();
218
+ }
219
+ projections.push({
220
+ deploymentId: record.deploymentId,
221
+ manifest: record.manifest,
222
+ serverAuth: compiledAuth,
223
+ });
224
+ }
225
+ return projections;
226
+ }
227
+ function deactivateScope(records, candidate) {
228
+ for (const [id, record] of records) {
229
+ if (record.active &&
230
+ record.orgSlug === candidate.orgSlug &&
231
+ record.appSlug === candidate.appSlug &&
232
+ record.environment === candidate.environment &&
233
+ record.serverVersion === candidate.serverVersion) {
234
+ records.set(id, { ...record, active: false });
235
+ }
236
+ }
237
+ }
162
238
  export async function registrySweepArchived(state, before) {
163
239
  let deleted;
164
240
  if (state.store !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry-state.js","sourceRoot":"","sources":["../src/registry-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-state.js","sourceRoot":"","sources":["../src/registry-state.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,14 @@ export declare class MissingCustomerAuthError extends Error {
13
13
  }
14
14
  export declare function tryServedTargetFor(record: DeployRecord, served: ServedArtifact, customerVerifierFactory?: (auth: TenantAuthConfig) => OwnerTokenVerifier): ServedTarget | undefined;
15
15
  export declare function servedTargetMatchesRecord(target: ServedTarget, record: DeployRecord): boolean;
16
+ /** Reconcile one persisted record with its cached served target without trusting stale auth projections. */
17
+ export declare function targetForPersistedRecord(record: DeployRecord, state: {
18
+ readonly records: Map<string, DeployRecord>;
19
+ readonly servers: Map<string, ServedTarget>;
20
+ readonly customerVerifierFactory?: (auth: TenantAuthConfig) => OwnerTokenVerifier;
21
+ readonly hasCustomerAuthConflict: (record: DeployRecord, auth: TenantAuthConfig | undefined) => Promise<boolean>;
22
+ readonly load?: () => Promise<ServedTarget | undefined>;
23
+ }): Promise<ServedTarget | undefined>;
16
24
  export declare function customerTargetFields(auth: TenantAuthConfig, customerVerifierFactory?: (auth: TenantAuthConfig) => OwnerTokenVerifier): {
17
25
  readonly authServerIssuer?: string;
18
26
  readonly authServerIssuers?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"registry-targets.d.ts","sourceRoot":"","sources":["../src/registry-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5F;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE,YAAY,CA0Bd;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAI1C;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE,YAAY,GAAG,SAAS,CAO1B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAa7F;AAYD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE;IACD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C,CAkBA;AAID,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,GACrB,OAAO,CACN;IACE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,GACD,SAAS,CACZ,CAkBA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAEjF;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAEhD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"registry-targets.d.ts","sourceRoot":"","sources":["../src/registry-targets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5F;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE,YAAY,CA6Bd;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAI1C;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE,YAAY,GAAG,SAAS,CAO1B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAa7F;AAED,4GAA4G;AAC5G,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,CAAC;IAClF,QAAQ,CAAC,uBAAuB,EAAE,CAChC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,gBAAgB,GAAG,SAAS,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACzD,GACA,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkBnC;AAYD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,GACvE;IACD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C,CAkBA;AAID,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,GACrB,OAAO,CACN;IACE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,GACD,SAAS,CACZ,CAkBA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAEjF;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAEhD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAExE"}