@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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/archive-ops.d.ts +3 -0
- package/dist/commands/archive-ops.d.ts.map +1 -0
- package/dist/commands/archive-ops.js +168 -0
- package/dist/commands/archive-ops.js.map +1 -0
- package/dist/commands/org-admin.d.ts +17 -0
- package/dist/commands/org-admin.d.ts.map +1 -0
- package/dist/commands/org-admin.js +241 -0
- package/dist/commands/org-admin.js.map +1 -0
- package/dist/commands/policy-ops.d.ts.map +1 -1
- package/dist/commands/policy-ops.js +123 -1
- package/dist/commands/policy-ops.js.map +1 -1
- package/dist/commands/session.d.ts +1 -15
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +15 -170
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +13 -5
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/update-ops.d.ts +29 -0
- package/dist/commands/update-ops.d.ts.map +1 -0
- package/dist/commands/update-ops.js +315 -0
- package/dist/commands/update-ops.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/update-binary.d.ts +38 -0
- package/dist/update-binary.d.ts.map +1 -0
- package/dist/update-binary.js +144 -0
- package/dist/update-binary.js.map +1 -0
- package/dist/update-check.d.ts +40 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +212 -0
- package/dist/update-check.js.map +1 -0
- package/dist/update-render.d.ts +17 -0
- package/dist/update-render.d.ts.map +1 -0
- package/dist/update-render.js +39 -0
- package/dist/update-render.js.map +1 -0
- package/dist/update.d.ts +10 -9
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +21 -89
- package/dist/update.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +13 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts +43 -0
- package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/archive-sweeper.js +122 -0
- package/node_modules/@noodle-borg/service/dist/archive-sweeper.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/commercial-plans.js +119 -0
- package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/deployment-versioning.js +1 -1
- package/node_modules/@noodle-borg/service/dist/deployment-versioning.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -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/options.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/policy.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/policy.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/policy.js +32 -0
- package/node_modules/@noodle-borg/service/dist/policy.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.js +119 -0
- package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +7 -6
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +44 -44
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts +16 -0
- package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/archive.js +83 -0
- package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +1 -18
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +18 -260
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +88 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts +40 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +353 -0
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +47 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/plans.js +217 -0
- package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/policies.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/policies.js +7 -0
- package/node_modules/@noodle-borg/service/dist/routes/policies.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +19 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.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 +107 -4
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +14 -0
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js +38 -0
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.js +163 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +14 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +16 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-policy.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js +10 -4
- package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +60 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +101 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +10 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +20 -6
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +74 -122
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/records.d.ts +35 -0
- package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/records.js +87 -0
- package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +19 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.js +61 -0
- package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store.d.ts +68 -44
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js +48 -213
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- 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
|
|
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
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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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"}
|