@noodleseed/one 0.10.0 → 0.12.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.
Files changed (153) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +16 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive-ops.d.ts +3 -0
  5. package/dist/commands/archive-ops.d.ts.map +1 -0
  6. package/dist/commands/archive-ops.js +168 -0
  7. package/dist/commands/archive-ops.js.map +1 -0
  8. package/dist/commands/org-admin.d.ts +17 -0
  9. package/dist/commands/org-admin.d.ts.map +1 -0
  10. package/dist/commands/org-admin.js +241 -0
  11. package/dist/commands/org-admin.js.map +1 -0
  12. package/dist/commands/policy-ops.d.ts.map +1 -1
  13. package/dist/commands/policy-ops.js +123 -1
  14. package/dist/commands/policy-ops.js.map +1 -1
  15. package/dist/commands/session.d.ts +1 -15
  16. package/dist/commands/session.d.ts.map +1 -1
  17. package/dist/commands/session.js +15 -170
  18. package/dist/commands/session.js.map +1 -1
  19. package/dist/commands/shared.d.ts.map +1 -1
  20. package/dist/commands/shared.js +13 -5
  21. package/dist/commands/shared.js.map +1 -1
  22. package/dist/commands/update-ops.d.ts +29 -0
  23. package/dist/commands/update-ops.d.ts.map +1 -0
  24. package/dist/commands/update-ops.js +315 -0
  25. package/dist/commands/update-ops.js.map +1 -0
  26. package/dist/config.d.ts +2 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js.map +1 -1
  29. package/dist/update-binary.d.ts +38 -0
  30. package/dist/update-binary.d.ts.map +1 -0
  31. package/dist/update-binary.js +144 -0
  32. package/dist/update-binary.js.map +1 -0
  33. package/dist/update-check.d.ts +40 -0
  34. package/dist/update-check.d.ts.map +1 -0
  35. package/dist/update-check.js +212 -0
  36. package/dist/update-check.js.map +1 -0
  37. package/dist/update-render.d.ts +17 -0
  38. package/dist/update-render.d.ts.map +1 -0
  39. package/dist/update-render.js +39 -0
  40. package/dist/update-render.js.map +1 -0
  41. package/dist/update.d.ts +10 -9
  42. package/dist/update.d.ts.map +1 -1
  43. package/dist/update.js +21 -89
  44. package/dist/update.js.map +1 -1
  45. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  46. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +13 -1
  47. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  48. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  49. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +2 -0
  50. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  51. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  52. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts +43 -0
  53. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts.map +1 -0
  54. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js +122 -0
  55. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js.map +1 -0
  56. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts +11 -0
  57. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -0
  58. package/node_modules/@noodle-borg/service/dist/commercial-plans.js +119 -0
  59. package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -0
  60. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts +2 -0
  61. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts.map +1 -1
  62. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js +1 -1
  63. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js.map +1 -1
  64. package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -1
  65. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  67. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  68. package/node_modules/@noodle-borg/service/dist/options.d.ts +9 -0
  69. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/policy.d.ts +3 -0
  71. package/node_modules/@noodle-borg/service/dist/policy.d.ts.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/policy.js +32 -0
  73. package/node_modules/@noodle-borg/service/dist/policy.js.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +25 -0
  75. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -0
  76. package/node_modules/@noodle-borg/service/dist/registry-state.js +119 -0
  77. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -0
  78. package/node_modules/@noodle-borg/service/dist/registry.d.ts +7 -6
  79. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  80. package/node_modules/@noodle-borg/service/dist/registry.js +44 -44
  81. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  82. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts +16 -0
  83. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -0
  84. package/node_modules/@noodle-borg/service/dist/routes/archive.js +83 -0
  85. package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -0
  86. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +1 -18
  87. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +18 -260
  89. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  90. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +17 -0
  91. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -0
  92. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +88 -0
  93. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts +40 -0
  95. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -0
  96. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +353 -0
  97. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -0
  98. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +15 -0
  99. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  100. package/node_modules/@noodle-borg/service/dist/routes/paths.js +47 -0
  101. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  102. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +20 -0
  103. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/routes/plans.js +217 -0
  105. package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/routes/policies.d.ts.map +1 -1
  107. package/node_modules/@noodle-borg/service/dist/routes/policies.js +7 -0
  108. package/node_modules/@noodle-borg/service/dist/routes/policies.js.map +1 -1
  109. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  110. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +19 -1
  111. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  112. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  113. package/node_modules/@noodle-borg/service/dist/service.js +107 -4
  114. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  115. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +14 -0
  116. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  117. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +38 -0
  118. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  119. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +25 -0
  120. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -0
  121. package/node_modules/@noodle-borg/service/dist/store/json-file.js +163 -0
  122. package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -0
  123. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +14 -0
  124. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +16 -0
  126. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  127. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js +10 -4
  129. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +60 -0
  131. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -0
  132. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +101 -0
  133. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +10 -0
  136. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +20 -6
  138. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  139. package/node_modules/@noodle-borg/service/dist/store/postgres.js +74 -122
  140. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/store/records.d.ts +35 -0
  142. package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -0
  143. package/node_modules/@noodle-borg/service/dist/store/records.js +87 -0
  144. package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -0
  145. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +19 -0
  146. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -0
  147. package/node_modules/@noodle-borg/service/dist/store/validate.js +61 -0
  148. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -0
  149. package/node_modules/@noodle-borg/service/dist/store.d.ts +68 -44
  150. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  151. package/node_modules/@noodle-borg/service/dist/store.js +48 -213
  152. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  153. package/package.json +2 -2
@@ -1,9 +1,11 @@
1
1
  import { normalizeServerVersion } from '@noodle-borg/module';
2
2
  import { defaultActiveRecord } from '../deployment-versioning.js';
3
3
  import { DEPLOYMENT_ID_PATTERN, scopeChain, validateConfigName, validateConfigScope, validateSlug, validateTenantRef, } from '../store.js';
4
- import { addOrgMemberRow, allowSignupRow, consumeOrgInvitationRow, createOrgDomainChallengeRow, createOrgInvitationRow, createOrgRow, getOrgInvitationRow, getOrgMemberRow, hasVerifiedOrgDomainMembership, isOrgMemberRow, isSignupAllowedByRows, listOrgDomainRows, listOrgMemberRows, listOrgRows, listOrgRowsForSubject, listSignupAllowlistRows, markOrgDomainVerificationRow, removeOrgMemberRow, } from './postgres-control-plane.js';
4
+ import { addOrgMemberRow, allowSignupRow, consumeOrgInvitationRow, createOrgDomainChallengeRow, createOrgInvitationRow, createOrgRow, getOrgInvitationRow, getOrgMemberRow, hasVerifiedOrgDomainMembership, isOrgMemberRow, isSignupAllowedByRows, listOrgDomainRows, listOrgInvitationRows, listOrgMemberRows, listOrgRows, listOrgRowsForSubject, listSignupAllowlistRows, markOrgDomainVerificationRow, removeOrgMemberRow, revokeOrgInvitationRows, updateOrgMemberRoleRow, updateOrgRow, } from './postgres-control-plane.js';
5
5
  import { deletePolicyAssignmentRow, getPolicyAssignmentRow, listActivePolicyAssignmentRows, listPolicyAssignmentHistoryRows, listPolicyAssignmentRows, putPolicyAssignmentRow, } from './postgres-policy.js';
6
+ import { configRowToMetadata, isPostgresStoreOptions, openConfigSecret, rowToRecord, scopeParts, sealConfigSecret, validateConfigKind, } from './postgres-rows.js';
6
7
  import { ensureArtifactSchema } from './postgres-schema.js';
8
+ import { deploymentSummary, validateDeploymentListFilter } from './records.js';
7
9
  export class PostgresArtifactStore {
8
10
  #pool;
9
11
  #secretBox;
@@ -73,8 +75,8 @@ export class PostgresArtifactStore {
73
75
  await client.query(`INSERT INTO deploy_records
74
76
  (deployment_id, org_slug, app_slug, environment, server_version, deployment_version, active, server_name,
75
77
  created_at, created_by_subject, created_by_email, access_mode, server_auth, caller_key_hash,
76
- manifest, connectors, hosted_assets, secrets, schema_version)
77
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13::jsonb, $14, $15, $16, $17::jsonb, $18::jsonb, $19)
78
+ manifest, connectors, hosted_assets, secrets, schema_version, archived_at)
79
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13::jsonb, $14, $15, $16, $17::jsonb, $18::jsonb, $19, $20::timestamptz)
78
80
  ON CONFLICT (deployment_id) DO UPDATE SET
79
81
  org_slug = EXCLUDED.org_slug,
80
82
  app_slug = EXCLUDED.app_slug,
@@ -93,7 +95,8 @@ export class PostgresArtifactStore {
93
95
  connectors = EXCLUDED.connectors,
94
96
  hosted_assets = EXCLUDED.hosted_assets,
95
97
  secrets = EXCLUDED.secrets,
96
- schema_version = EXCLUDED.schema_version`, [
98
+ schema_version = EXCLUDED.schema_version,
99
+ archived_at = EXCLUDED.archived_at`, [
97
100
  record.deploymentId,
98
101
  record.orgSlug,
99
102
  record.appSlug,
@@ -116,6 +119,7 @@ export class PostgresArtifactStore {
116
119
  : null,
117
120
  JSON.stringify(record.secrets),
118
121
  record.schemaVersion,
122
+ record.archivedAt ?? null,
119
123
  ]);
120
124
  await client.query('COMMIT');
121
125
  }
@@ -137,6 +141,7 @@ export class PostgresArtifactStore {
137
141
  const { rows } = await this.#pool.query(`SELECT *
138
142
  FROM deploy_records
139
143
  WHERE org_slug = $1 AND app_slug = $2 AND environment = $3 AND active = true
144
+ AND archived_at IS NULL
140
145
  ORDER BY deployment_version DESC`, [safe.org, safe.app, safe.env]);
141
146
  return defaultActiveRecord(rows.map(rowToRecord), safe);
142
147
  }
@@ -150,6 +155,7 @@ export class PostgresArtifactStore {
150
155
  AND environment = $3
151
156
  AND server_version = $4
152
157
  AND active = true
158
+ AND archived_at IS NULL
153
159
  ORDER BY deployment_version DESC
154
160
  LIMIT 1`, [safe.org, safe.app, safe.env, safeVersion]);
155
161
  const row = rows[0];
@@ -229,25 +235,70 @@ export class PostgresArtifactStore {
229
235
  return rows.map(rowToRecord);
230
236
  }
231
237
  async listDeployments(filter) {
232
- const org = validateSlug('org', filter.org);
233
- const app = filter.app !== undefined ? validateSlug('app', filter.app) : undefined;
234
- const env = filter.env !== undefined ? validateSlug('env', filter.env) : undefined;
238
+ const safe = validateDeploymentListFilter(filter);
235
239
  const clauses = ['org_slug = $1'];
236
- const values = [org];
237
- if (app !== undefined) {
238
- values.push(app);
240
+ const values = [safe.org];
241
+ if (safe.app !== undefined) {
242
+ values.push(safe.app);
239
243
  clauses.push(`app_slug = $${values.length}`);
240
244
  }
241
- if (env !== undefined) {
242
- values.push(env);
245
+ if (safe.env !== undefined) {
246
+ values.push(safe.env);
243
247
  clauses.push(`environment = $${values.length}`);
244
248
  }
249
+ if (safe.includeArchived !== true)
250
+ clauses.push('archived_at IS NULL');
245
251
  const { rows } = await this.#pool.query(`SELECT *
246
252
  FROM deploy_records
247
253
  WHERE ${clauses.join(' AND ')}
248
254
  ORDER BY deployment_version DESC`, values);
249
255
  return rows.map((row) => deploymentSummary(rowToRecord(row)));
250
256
  }
257
+ async getAppArchivedAt(org, app) {
258
+ const { rows } = await this.#pool.query(`SELECT count(*)::int AS total, count(archived_at)::int AS archived, max(archived_at) AS latest
259
+ FROM deploy_records
260
+ WHERE org_slug = $1 AND app_slug = $2`, [validateSlug('org', org), validateSlug('app', app)]);
261
+ const row = rows[0];
262
+ if (row === undefined || row.total === 0 || row.archived !== row.total || row.latest === null) {
263
+ return undefined;
264
+ }
265
+ return new Date(row.latest).toISOString();
266
+ }
267
+ async archiveApp(org, app, at) {
268
+ const safeOrg = validateSlug('org', org);
269
+ const safeApp = validateSlug('app', app);
270
+ const { rowCount } = await this.#pool.query(`UPDATE deploy_records
271
+ SET archived_at = $3::timestamptz
272
+ WHERE org_slug = $1 AND app_slug = $2 AND archived_at IS NULL`, [safeOrg, safeApp, at]);
273
+ const archivedDeployments = rowCount ?? 0;
274
+ if (archivedDeployments > 0) {
275
+ return { archivedAt: at, archivedDeployments, alreadyArchived: false };
276
+ }
277
+ // Nothing stamped: either the app is already fully archived (no-op, original stamp preserved so
278
+ // the retention clock never resets — ADR 0117 §5) or it has no records at all.
279
+ const existing = await this.getAppArchivedAt(safeOrg, safeApp);
280
+ if (existing === undefined)
281
+ return undefined;
282
+ return { archivedAt: existing, archivedDeployments: 0, alreadyArchived: true };
283
+ }
284
+ async restoreApp(org, app) {
285
+ const safeOrg = validateSlug('org', org);
286
+ const safeApp = validateSlug('app', app);
287
+ const { rowCount } = await this.#pool.query(`UPDATE deploy_records
288
+ SET archived_at = NULL
289
+ WHERE org_slug = $1 AND app_slug = $2 AND archived_at IS NOT NULL`, [safeOrg, safeApp]);
290
+ const restoredDeployments = rowCount ?? 0;
291
+ if (restoredDeployments > 0)
292
+ return { restoredDeployments };
293
+ const { rows } = await this.#pool.query(`SELECT count(*)::int AS total FROM deploy_records WHERE org_slug = $1 AND app_slug = $2`, [safeOrg, safeApp]);
294
+ return (rows[0]?.total ?? 0) > 0 ? { restoredDeployments: 0 } : undefined;
295
+ }
296
+ async sweepArchived(before) {
297
+ const { rows } = await this.#pool.query(`DELETE FROM deploy_records
298
+ WHERE archived_at IS NOT NULL AND archived_at < $1::timestamptz
299
+ RETURNING *`, [before]);
300
+ return rows.map(rowToRecord);
301
+ }
251
302
  async setConfigValue(input) {
252
303
  const kind = validateConfigKind(input.kind);
253
304
  const scope = validateConfigScope(input.scope);
@@ -324,6 +375,9 @@ export class PostgresArtifactStore {
324
375
  async createOrg(input) {
325
376
  return createOrgRow(this.#pool, input);
326
377
  }
378
+ async updateOrg(input) {
379
+ return updateOrgRow(this.#pool, input);
380
+ }
327
381
  async listOrgs() {
328
382
  return listOrgRows(this.#pool);
329
383
  }
@@ -336,6 +390,9 @@ export class PostgresArtifactStore {
336
390
  async removeOrgMember(input) {
337
391
  return removeOrgMemberRow(this.#pool, input);
338
392
  }
393
+ async updateOrgMemberRole(input) {
394
+ return updateOrgMemberRoleRow(this.#pool, input);
395
+ }
339
396
  async getOrgMember(input) {
340
397
  return getOrgMemberRow(this.#pool, input);
341
398
  }
@@ -381,116 +438,11 @@ export class PostgresArtifactStore {
381
438
  async consumeOrgInvitation(input) {
382
439
  return consumeOrgInvitationRow(this.#pool, this.#now, input);
383
440
  }
384
- }
385
- function rowToRecord(row) {
386
- return {
387
- schemaVersion: row.schema_version,
388
- deploymentId: row.deployment_id,
389
- orgSlug: row.org_slug,
390
- appSlug: row.app_slug,
391
- environment: row.environment,
392
- ...(row.server_version !== null ? { serverVersion: row.server_version } : {}),
393
- // `Date.now()` ms timestamps fit JS's safe-integer range, so the bigint string coerces losslessly.
394
- deploymentVersion: Number(row.deployment_version),
395
- active: row.active,
396
- serverName: row.server_name,
397
- // timestamptz → the canonical ISO-8601 string the rest of the system uses.
398
- createdAt: new Date(row.created_at).toISOString(),
399
- ...(row.created_by_subject !== null ? { createdBySubject: row.created_by_subject } : {}),
400
- ...(row.created_by_email !== null ? { createdByEmail: row.created_by_email } : {}),
401
- ...(row.access_mode === 'owner-only' ||
402
- row.access_mode === 'org-members' ||
403
- row.access_mode === 'public' ||
404
- row.access_mode === 'mixed' ||
405
- row.access_mode === 'authenticated' ||
406
- row.access_mode === 'customers'
407
- ? { accessMode: row.access_mode }
408
- : {}),
409
- ...(isTenantAuthConfig(row.server_auth) ? { serverAuth: row.server_auth } : {}),
410
- manifest: row.manifest,
411
- ...(row.connectors !== null ? { connectors: row.connectors } : {}),
412
- ...(row.hosted_assets !== null ? { hostedAssets: row.hosted_assets } : {}),
413
- secrets: row.secrets,
414
- };
415
- }
416
- function configRowToMetadata(row) {
417
- return {
418
- kind: validateConfigKind(row.kind),
419
- scope: rowToScope(row),
420
- name: row.name,
421
- updatedAt: new Date(row.updated_at).toISOString(),
422
- ...(row.updated_by_subject !== null ? { updatedBySubject: row.updated_by_subject } : {}),
423
- ...(row.updated_by_email !== null ? { updatedByEmail: row.updated_by_email } : {}),
424
- ...(row.kind === 'variable' && row.variable_value !== null
425
- ? { value: row.variable_value }
426
- : {}),
427
- };
428
- }
429
- function isTenantAuthConfig(value) {
430
- if (typeof value !== 'object' || value === null)
431
- return false;
432
- const auth = value;
433
- if (auth.kind === 'bridge')
434
- return typeof auth.provider === 'string';
435
- return typeof auth.issuer === 'string' && typeof auth.audience === 'string';
436
- }
437
- function validateConfigKind(kind) {
438
- if (kind !== 'secret' && kind !== 'variable')
439
- throw new Error(`invalid config kind: ${kind}`);
440
- return kind;
441
- }
442
- function scopeParts(scope) {
443
- if (scope.level === 'org')
444
- return { level: 'org', org: scope.org, app: '', env: '' };
445
- if (scope.level === 'app')
446
- return { level: 'app', org: scope.org, app: scope.app, env: '' };
447
- return { level: 'env', org: scope.org, app: scope.app, env: scope.env };
448
- }
449
- function rowToScope(row) {
450
- if (row.scope_level === 'org')
451
- return { level: 'org', org: row.org_slug };
452
- if (row.scope_level === 'app')
453
- return { level: 'app', org: row.org_slug, app: row.app_slug };
454
- if (row.scope_level === 'env') {
455
- return { level: 'env', org: row.org_slug, app: row.app_slug, env: row.environment };
456
- }
457
- throw new Error(`invalid config scope_level: ${row.scope_level}`);
458
- }
459
- async function sealConfigSecret(value, secretBox) {
460
- if (secretBox === undefined) {
461
- throw new Error('durable secret config requires a secret master-key custodian');
441
+ async listOrgInvitations(org) {
442
+ return listOrgInvitationRows(this.#pool, org);
443
+ }
444
+ async revokeOrgInvitation(input) {
445
+ return revokeOrgInvitationRows(this.#pool, input);
462
446
  }
463
- return { enc: 'aes-256-gcm', sealed: await secretBox.seal(value) };
464
- }
465
- async function openConfigSecret(envelope, secretBox) {
466
- if (envelope === null)
467
- throw new Error('secret config row has no encrypted value');
468
- if (envelope.enc === 'none') {
469
- const value = envelope.values.value;
470
- if (typeof value !== 'string')
471
- throw new Error('legacy secret config row has no value');
472
- return value;
473
- }
474
- if (secretBox === undefined) {
475
- throw new Error('cannot resolve encrypted config without a secret master-key custodian');
476
- }
477
- return secretBox.open(envelope.sealed);
478
- }
479
- function isPostgresStoreOptions(value) {
480
- return typeof value === 'object' && value !== null && ('secretBox' in value || 'now' in value);
481
- }
482
- function deploymentSummary(record) {
483
- return {
484
- deploymentId: record.deploymentId,
485
- orgSlug: record.orgSlug,
486
- appSlug: record.appSlug,
487
- environment: record.environment,
488
- ...(record.serverVersion !== undefined ? { serverVersion: record.serverVersion } : {}),
489
- active: record.active,
490
- serverName: record.serverName,
491
- createdAt: record.createdAt,
492
- ...(record.createdByEmail !== undefined ? { createdByEmail: record.createdByEmail } : {}),
493
- accessMode: record.accessMode ?? 'owner-only',
494
- };
495
447
  }
496
448
  //# sourceMappingURL=postgres.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/store/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/store/postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Pure record-level helpers shared by every {@link ArtifactStore} backend: the canonical
3
+ * deployment-summary mapping, list filtering, and app archive/restore planning (ADR 0117).
4
+ * No I/O here — backends apply the plans to their own persistence.
5
+ */
6
+ import type { AppArchiveResult, AppRestoreResult, DeploymentListFilter, DeploymentSummary, DeployRecord } from '../store.js';
7
+ /** The canonical, secret-free list projection of a {@link DeployRecord}. */
8
+ export declare function deploymentSummary(record: DeployRecord): DeploymentSummary;
9
+ /** Validate a deployments-list filter's slugs; archived records are excluded unless opted in. */
10
+ export declare function validateDeploymentListFilter(filter: DeploymentListFilter): DeploymentListFilter;
11
+ /** Whether a record belongs in a (pre-validated) deployments list. */
12
+ export declare function matchesDeploymentFilter(record: DeployRecord, filter: DeploymentListFilter): boolean;
13
+ /**
14
+ * The app's archived stamp: defined iff the app has at least one record and **every** record is
15
+ * stamped. The latest stamp wins — it is the retention clock (ADR 0117 §6).
16
+ */
17
+ export declare function appArchivedAt(records: readonly DeployRecord[]): string | undefined;
18
+ /**
19
+ * Plan an app archive over the app's records (all environments/versions): which records to stamp
20
+ * plus the caller-facing result. `undefined` when the app has no records at all. Re-archiving an
21
+ * already-archived app is a no-op that preserves the original stamp (the retention clock never
22
+ * resets — ADR 0117 §5).
23
+ */
24
+ export declare function planAppArchive(records: readonly DeployRecord[], at: string): {
25
+ readonly result: AppArchiveResult;
26
+ readonly stamp: readonly DeployRecord[];
27
+ } | undefined;
28
+ /** Plan an app restore: which records to clear. `undefined` when the app has no records at all. */
29
+ export declare function planAppRestore(records: readonly DeployRecord[]): {
30
+ readonly result: AppRestoreResult;
31
+ readonly clear: readonly DeployRecord[];
32
+ } | undefined;
33
+ /** Strip the archive stamp from a record (exact-optional safe). */
34
+ export declare function withoutArchiveStamp(record: DeployRecord): DeployRecord;
35
+ //# sourceMappingURL=records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/store/records.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAczE;AAED,iGAAiG;AACjG,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAO/F;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,EAAE,EAAE,MAAM,GACT;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GAAG,SAAS,CAiB5F;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GAAG,SAAS,CAI5F;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAGtE"}
@@ -0,0 +1,87 @@
1
+ import { validateSlug } from './validate.js';
2
+ /** The canonical, secret-free list projection of a {@link DeployRecord}. */
3
+ export function deploymentSummary(record) {
4
+ return {
5
+ deploymentId: record.deploymentId,
6
+ orgSlug: record.orgSlug,
7
+ appSlug: record.appSlug,
8
+ environment: record.environment,
9
+ ...(record.serverVersion !== undefined ? { serverVersion: record.serverVersion } : {}),
10
+ active: record.active,
11
+ serverName: record.serverName,
12
+ createdAt: record.createdAt,
13
+ ...(record.createdByEmail !== undefined ? { createdByEmail: record.createdByEmail } : {}),
14
+ accessMode: record.accessMode ?? 'owner-only',
15
+ ...(record.archivedAt !== undefined ? { archivedAt: record.archivedAt } : {}),
16
+ };
17
+ }
18
+ /** Validate a deployments-list filter's slugs; archived records are excluded unless opted in. */
19
+ export function validateDeploymentListFilter(filter) {
20
+ return {
21
+ org: validateSlug('org', filter.org),
22
+ ...(filter.app !== undefined ? { app: validateSlug('app', filter.app) } : {}),
23
+ ...(filter.env !== undefined ? { env: validateSlug('env', filter.env) } : {}),
24
+ ...(filter.includeArchived === true ? { includeArchived: true } : {}),
25
+ };
26
+ }
27
+ /** Whether a record belongs in a (pre-validated) deployments list. */
28
+ export function matchesDeploymentFilter(record, filter) {
29
+ return (record.orgSlug === filter.org &&
30
+ (filter.app === undefined || record.appSlug === filter.app) &&
31
+ (filter.env === undefined || record.environment === filter.env) &&
32
+ (filter.includeArchived === true || record.archivedAt === undefined));
33
+ }
34
+ /**
35
+ * The app's archived stamp: defined iff the app has at least one record and **every** record is
36
+ * stamped. The latest stamp wins — it is the retention clock (ADR 0117 §6).
37
+ */
38
+ export function appArchivedAt(records) {
39
+ if (records.length === 0)
40
+ return undefined;
41
+ let latest;
42
+ for (const record of records) {
43
+ if (record.archivedAt === undefined)
44
+ return undefined;
45
+ if (latest === undefined || record.archivedAt > latest)
46
+ latest = record.archivedAt;
47
+ }
48
+ return latest;
49
+ }
50
+ /**
51
+ * Plan an app archive over the app's records (all environments/versions): which records to stamp
52
+ * plus the caller-facing result. `undefined` when the app has no records at all. Re-archiving an
53
+ * already-archived app is a no-op that preserves the original stamp (the retention clock never
54
+ * resets — ADR 0117 §5).
55
+ */
56
+ export function planAppArchive(records, at) {
57
+ if (records.length === 0)
58
+ return undefined;
59
+ const stamp = records.filter((record) => record.archivedAt === undefined);
60
+ if (stamp.length === 0) {
61
+ return {
62
+ result: {
63
+ archivedAt: appArchivedAt(records),
64
+ archivedDeployments: 0,
65
+ alreadyArchived: true,
66
+ },
67
+ stamp,
68
+ };
69
+ }
70
+ return {
71
+ result: { archivedAt: at, archivedDeployments: stamp.length, alreadyArchived: false },
72
+ stamp,
73
+ };
74
+ }
75
+ /** Plan an app restore: which records to clear. `undefined` when the app has no records at all. */
76
+ export function planAppRestore(records) {
77
+ if (records.length === 0)
78
+ return undefined;
79
+ const clear = records.filter((record) => record.archivedAt !== undefined);
80
+ return { result: { restoredDeployments: clear.length }, clear };
81
+ }
82
+ /** Strip the archive stamp from a record (exact-optional safe). */
83
+ export function withoutArchiveStamp(record) {
84
+ const { archivedAt: _cleared, ...rest } = record;
85
+ return rest;
86
+ }
87
+ //# sourceMappingURL=records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/store/records.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Slug/name/domain validation shared by every store backend. Extracted verbatim from `store.ts`
3
+ * (which re-exports everything here) so backend modules can import validators without a runtime
4
+ * import cycle through the store aggregate.
5
+ */
6
+ import type { ConfigScope, OrgRole, SignupAllowlistKind, TenantRef } from '../store.js';
7
+ /** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
8
+ export declare const DEPLOYMENT_ID_PATTERN: RegExp;
9
+ export declare const SLUG_PATTERN: RegExp;
10
+ export declare const CONFIG_NAME_PATTERN: RegExp;
11
+ export declare const DOMAIN_PATTERN: RegExp;
12
+ export declare function validateSlug(kind: 'org' | 'app' | 'env', value: string): string;
13
+ export declare function validateTenantRef(ref: TenantRef): TenantRef;
14
+ export declare function validateConfigName(name: string): string;
15
+ export declare function validateDomain(value: string): string;
16
+ export declare function validateSignupAllowlistKind(value: string): SignupAllowlistKind;
17
+ export declare function validateConfigScope(scope: ConfigScope): ConfigScope;
18
+ export declare function validateOrgRole(role: string): OrgRole;
19
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/store/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExF,2GAA2G;AAC3G,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AACpD,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,mBAAmB,QAAoB,CAAC;AACrD,eAAO,MAAM,cAAc,QAAoD,CAAC;AAIhF,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAM3D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAI9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAenE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrD"}
@@ -0,0 +1,61 @@
1
+ /** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
2
+ export const DEPLOYMENT_ID_PATTERN = /^[a-z0-9-]+$/;
3
+ export const SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
4
+ export const CONFIG_NAME_PATTERN = /^[A-Za-z0-9_]+$/;
5
+ export const DOMAIN_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,62}\.)+[a-z0-9-]{2,63}$/;
6
+ const RESERVED_SLUGS = new Set(['deploy', 'healthz', 'readyz', 'v1', 'o', 'mcp']);
7
+ export function validateSlug(kind, value) {
8
+ if (!SLUG_PATTERN.test(value) || RESERVED_SLUGS.has(value)) {
9
+ throw new Error(`invalid ${kind} slug "${value}"; use lowercase letters, numbers, and hyphens only`);
10
+ }
11
+ return value;
12
+ }
13
+ export function validateTenantRef(ref) {
14
+ return {
15
+ org: validateSlug('org', ref.org),
16
+ app: validateSlug('app', ref.app),
17
+ env: validateSlug('env', ref.env),
18
+ };
19
+ }
20
+ export function validateConfigName(name) {
21
+ if (!CONFIG_NAME_PATTERN.test(name)) {
22
+ throw new Error(`invalid config name "${name}"; use letters, numbers, and underscores only`);
23
+ }
24
+ return name;
25
+ }
26
+ export function validateDomain(value) {
27
+ const domain = value.trim().toLowerCase();
28
+ if (!DOMAIN_PATTERN.test(domain)) {
29
+ throw new Error(`invalid domain "${value}"`);
30
+ }
31
+ return domain;
32
+ }
33
+ export function validateSignupAllowlistKind(value) {
34
+ if (value !== 'subject' && value !== 'domain')
35
+ throw new Error(`invalid signup allowlist kind "${value}"`);
36
+ return value;
37
+ }
38
+ export function validateConfigScope(scope) {
39
+ if (scope.level === 'org')
40
+ return { level: 'org', org: validateSlug('org', scope.org) };
41
+ if (scope.level === 'app') {
42
+ return {
43
+ level: 'app',
44
+ org: validateSlug('org', scope.org),
45
+ app: validateSlug('app', scope.app),
46
+ };
47
+ }
48
+ return {
49
+ level: 'env',
50
+ org: validateSlug('org', scope.org),
51
+ app: validateSlug('app', scope.app),
52
+ env: validateSlug('env', scope.env),
53
+ };
54
+ }
55
+ export function validateOrgRole(role) {
56
+ if (role !== 'owner' && role !== 'developer') {
57
+ throw new Error(`invalid org role "${role}"`);
58
+ }
59
+ return role;
60
+ }
61
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/store/validate.ts"],"names":[],"mappings":"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"}