@empire-builder-kit/nx 1.0.0-rc.31 → 1.0.0-rc.32
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/package.json +7 -3
- package/src/aws/identity.js +1 -1
- package/src/aws/identity.js.map +1 -1
- package/src/aws-authority/stage-authority.d.ts +2 -0
- package/src/aws-authority/stage-authority.js +152 -20
- package/src/aws-authority/stage-authority.js.map +1 -1
- package/src/cli/main.d.ts +2 -0
- package/src/cli/main.js +11 -0
- package/src/cli/main.js.map +1 -1
- package/src/developer-agent/workspace-inspection.js +11 -2
- package/src/developer-agent/workspace-inspection.js.map +1 -1
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
- package/src/executors/github-bootstrap/schema.json +7 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +2 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js +18 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -1
- package/src/executors/local-deploy/local-deploy.d.ts +2 -0
- package/src/executors/local-deploy/local-deploy.js +17 -0
- package/src/executors/local-deploy/local-deploy.js.map +1 -1
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +2 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +2 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
- package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
- package/src/executors/secret-initialize/secret-initialize.js +14 -0
- package/src/executors/secret-initialize/secret-initialize.js.map +1 -1
- package/src/executors/secret-metadata/secret-metadata.d.ts +2 -0
- package/src/executors/secret-metadata/secret-metadata.js +14 -0
- package/src/executors/secret-metadata/secret-metadata.js.map +1 -1
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +2 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +17 -2
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/foundation/provision-logical-database.js +2 -0
- package/src/foundation/provision-logical-database.js.map +1 -1
- package/src/generators/preset/generator.js +6 -1
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/preset/schema.d.ts +3 -0
- package/src/generators/preset/schema.json +5 -5
- package/src/generators/preset/workspace-files-performance-load.js +21 -12
- package/src/generators/preset/workspace-files-performance-load.js.map +1 -1
- package/src/generators/preset/workspace-files-stage-authority.d.ts +2 -0
- package/src/generators/preset/workspace-files-stage-authority.js +264 -60
- package/src/generators/preset/workspace-files-stage-authority.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +6 -1
- package/src/generators/preset/workspace-files-thin-deploy.js +102 -36
- package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-docs.js +26 -10
- package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
- package/src/generators/preset/workspace-files.d.ts +1 -0
- package/src/generators/preset/workspace-files.js +111 -493
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +149 -19
- package/src/generators/repository-policy/repository-policy.js.map +1 -1
- package/src/generators/repository-policy/schema.d.ts +2 -0
- package/src/generators/repository-policy/schema.json +11 -1
- package/src/generators/repository-policy/tree-policy.d.ts +3 -0
- package/src/generators/repository-policy/tree-policy.js +25 -0
- package/src/generators/repository-policy/tree-policy.js.map +1 -0
- package/src/generators/slice/built-in-plan-async-work-files.js +41 -0
- package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +2 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +19 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +21 -3
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +20 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +22 -2
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-performance-files.js +60 -0
- package/src/generators/slice/built-in-plan-performance-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +13 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +20 -0
- package/src/generators/slice/built-in-plan-testing-files.js.map +1 -1
- package/src/generators/slice/slice.js +3 -3
- package/src/generators/slice/slice.js.map +1 -1
- package/src/generators/upgrade/upgrade.js +25 -28
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/performance-registration.js +4 -8
- package/src/generators/workload/performance-registration.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +10 -2
- package/src/git-policy/github-bootstrap.js +109 -13
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/local-dev/tls.js +5 -1
- package/src/local-dev/tls.js.map +1 -1
- package/src/repository-policy/policy.d.ts +16 -1
- package/src/repository-policy/policy.js +226 -12
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/repository-policy-v1.json +46 -2
- package/src/secrets/adapters.d.ts +2 -1
- package/src/secrets/adapters.js +12 -2
- package/src/secrets/adapters.js.map +1 -1
- package/src/supply-chain/generated-container-release-command.js +41 -18
- package/src/supply-chain/generated-container-release-command.js.map +1 -1
- package/src/workspace-deployment/identity.d.ts +3 -0
- package/src/workspace-deployment/identity.js +22 -0
- package/src/workspace-deployment/identity.js.map +1 -0
- package/src/workspace-deployment/index.d.ts +3 -0
- package/src/workspace-deployment/index.js +7 -0
- package/src/workspace-deployment/index.js.map +1 -0
- package/src/workspace-deployment/migration-evidence.d.ts +29 -0
- package/src/workspace-deployment/migration-evidence.js +83 -0
- package/src/workspace-deployment/migration-evidence.js.map +1 -0
- package/src/workspace-deployment/migration.d.ts +27 -0
- package/src/workspace-deployment/migration.js +109 -0
- package/src/workspace-deployment/migration.js.map +1 -0
- package/src/workspace-deployment/ownership.d.ts +81 -0
- package/src/workspace-deployment/ownership.js +381 -0
- package/src/workspace-deployment/ownership.js.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-container-release-command.js","sourceRoot":"","sources":["../../../../../packages/nx/src/supply-chain/generated-container-release-command.ts"],"names":[],"mappings":";;;AAwJA,
|
|
1
|
+
{"version":3,"file":"generated-container-release-command.js","sourceRoot":"","sources":["../../../../../packages/nx/src/supply-chain/generated-container-release-command.ts"],"names":[],"mappings":";;;AAwJA,sEAu4FC;AA/hGD,6FAI8C;AAC9C,+EAAwF;AAE3E,QAAA,aAAa,GAAG,QAAiB,CAAC;AAE/C,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B5C,CAAC;AAEF,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B5C,CAAC;AAQW,QAAA,cAAc,GACzB,MAAM,CAAC,MAAM,CAAC;IACZ,cAAc,EAAE;QACd,aAAa,EAAE,UAAU;QACzB,MAAM,EACJ,kEAAkE;QACpE,MAAM,EACJ,mHAAmH;KACtH;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,UAAU;QACzB,MAAM,EACJ,kEAAkE;QACpE,MAAM,EACJ,oHAAoH;KACvH;IACD,aAAa,EAAE;QACb,aAAa,EAAE,UAAU;QACzB,MAAM,EACJ,kEAAkE;QACpE,MAAM,EACJ,kHAAkH;KACrH;IACD,WAAW,EAAE;QACX,aAAa,EAAE,UAAU;QACzB,MAAM,EACJ,kEAAkE;QACpE,MAAM,EACJ,mHAAmH;KACtH;CACF,CAAC,CAAC;AAEL,SAAS,iBAAiB,CACxB,QAAwD;IAExD,IACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3B,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CACtB,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClD,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;YACvD,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACtC,CAAC,6FAA6F,CAAC,IAAI,CACjG,OAAO,CAAC,MAAM,CACf,CACJ,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAgD;IAEhD,IACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3B,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CACtB,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClD,OAAO,CAAC,aAAa,KAAK,UAAU;YACpC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACtC,CAAC,4JAA4J,CAAC,IAAI,CAChK,OAAO,CAAC,MAAM,CACf,CACJ,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,SAAgB,6BAA6B,CAC3C,UAMI,EAAE;IAEN,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,IAAI,qCAAqC,CAAC;IACnE,MAAM,QAAQ,GAAG,iBAAiB,CAChC,OAAO,CAAC,QAAQ,IAAI,4DAAuB,CAC5C,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,iDAAY,CAAC;IACxD,MAAM,aAAa,GAAG,sBAAsB,CAC1C,OAAO,CAAC,aAAa,IAAI,sBAAc,CACxC,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAa,CAAC;IAC3D,IACE,CAAC,iEAAiE,CAAC,IAAI,CACrE,eAAe,CAChB;QACD,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EACrC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAgCC,eAAe;;uBAEF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;sCACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;uCACb,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;qCAC/B,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC;qCAC1C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC;;;;+BAIhD,IAAI,CAAC,SAAS,CAAC,IAAA,2CAA0B,GAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4zF1E,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKSPACE_DEPLOYMENT_ID_PATTERN = void 0;
|
|
4
|
+
exports.createWorkspaceDeploymentId = createWorkspaceDeploymentId;
|
|
5
|
+
exports.normalizeWorkspaceDeploymentId = normalizeWorkspaceDeploymentId;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
exports.WORKSPACE_DEPLOYMENT_ID_PATTERN = /^ebkws-[a-f0-9]{32}$/u;
|
|
8
|
+
function createWorkspaceDeploymentId(createUuid = node_crypto_1.randomUUID) {
|
|
9
|
+
const uuid = createUuid();
|
|
10
|
+
if (!/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/u.test(uuid)) {
|
|
11
|
+
throw new Error('Workspace deployment identity generation requires one lowercase UUIDv4.');
|
|
12
|
+
}
|
|
13
|
+
return `ebkws-${uuid.replace(/-/g, '')}`;
|
|
14
|
+
}
|
|
15
|
+
function normalizeWorkspaceDeploymentId(value) {
|
|
16
|
+
if (typeof value !== 'string' ||
|
|
17
|
+
!exports.WORKSPACE_DEPLOYMENT_ID_PATTERN.test(value)) {
|
|
18
|
+
throw new Error('Workspace deployment ID must be ebkws- followed by exactly 128 bits of lowercase hexadecimal identity.');
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../../packages/nx/src/workspace-deployment/identity.ts"],"names":[],"mappings":";;;AAIA,kEAcC;AAED,wEAUC;AA9BD,6CAAyC;AAE5B,QAAA,+BAA+B,GAAG,uBAAuB,CAAC;AAEvE,SAAgB,2BAA2B,CACzC,aAA2B,wBAAU;IAErC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,IACE,CAAC,wEAAwE,CAAC,IAAI,CAC5E,IAAI,CACL,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,SAAgB,8BAA8B,CAAC,KAAc;IAC3D,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,uCAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./identity.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./migration.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./ownership.js"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/nx/src/workspace-deployment/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,yDAA+B;AAC/B,yDAA+B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION: 1;
|
|
2
|
+
export type WorkspaceDeploymentMigrationStage = 'development' | 'staging' | 'production';
|
|
3
|
+
export interface WorkspaceDeploymentMigrationCoordinate {
|
|
4
|
+
accountId: string;
|
|
5
|
+
region: string;
|
|
6
|
+
stage: WorkspaceDeploymentMigrationStage;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkspaceDeploymentMigrationEvidence {
|
|
9
|
+
decision: 'claim-existing-workspace-deployments';
|
|
10
|
+
kind: 'ebk-workspace-deployment-migration';
|
|
11
|
+
previousPolicySha256: string;
|
|
12
|
+
schemaVersion: typeof WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION;
|
|
13
|
+
tuples: readonly {
|
|
14
|
+
accountId: string;
|
|
15
|
+
occupancy: 'empty' | 'existing-workspace';
|
|
16
|
+
region: string;
|
|
17
|
+
resourceIdentityDigests: readonly string[];
|
|
18
|
+
stage: WorkspaceDeploymentMigrationStage;
|
|
19
|
+
}[];
|
|
20
|
+
workspaceDeploymentId: string;
|
|
21
|
+
workspaceName: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function validateWorkspaceDeploymentMigrationEvidence(input: {
|
|
24
|
+
evidence: unknown;
|
|
25
|
+
expectedCoordinates: readonly WorkspaceDeploymentMigrationCoordinate[];
|
|
26
|
+
expectedPreviousPolicySha256?: string;
|
|
27
|
+
workspaceDeploymentId: string;
|
|
28
|
+
workspaceName?: string;
|
|
29
|
+
}): WorkspaceDeploymentMigrationEvidence;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.validateWorkspaceDeploymentMigrationEvidence = validateWorkspaceDeploymentMigrationEvidence;
|
|
5
|
+
exports.WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION = 1;
|
|
6
|
+
const SHA256 = /^[a-f0-9]{64}$/u;
|
|
7
|
+
const WORKSPACE_NAME = /^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/u;
|
|
8
|
+
function exactKeys(value, expected) {
|
|
9
|
+
return (JSON.stringify(Object.keys(value).sort()) ===
|
|
10
|
+
JSON.stringify([...expected].sort()));
|
|
11
|
+
}
|
|
12
|
+
function hasExactOccupancyTuples(value, expected) {
|
|
13
|
+
if (!Array.isArray(value) || value.length > 3)
|
|
14
|
+
return false;
|
|
15
|
+
if (value.length !== expected.length)
|
|
16
|
+
return false;
|
|
17
|
+
return value.every((candidate, index) => {
|
|
18
|
+
if (!candidate ||
|
|
19
|
+
typeof candidate !== 'object' ||
|
|
20
|
+
Array.isArray(candidate)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const tuple = candidate;
|
|
24
|
+
const digests = tuple.resourceIdentityDigests;
|
|
25
|
+
if (!exactKeys(tuple, [
|
|
26
|
+
'accountId',
|
|
27
|
+
'occupancy',
|
|
28
|
+
'region',
|
|
29
|
+
'resourceIdentityDigests',
|
|
30
|
+
'stage',
|
|
31
|
+
]) ||
|
|
32
|
+
tuple.accountId !== expected[index]?.accountId ||
|
|
33
|
+
tuple.region !== expected[index]?.region ||
|
|
34
|
+
tuple.stage !== expected[index]?.stage ||
|
|
35
|
+
(tuple.occupancy !== 'empty' &&
|
|
36
|
+
tuple.occupancy !== 'existing-workspace') ||
|
|
37
|
+
!Array.isArray(digests) ||
|
|
38
|
+
digests.length > 256 ||
|
|
39
|
+
digests.some((digest) => typeof digest !== 'string' || !SHA256.test(digest)) ||
|
|
40
|
+
new Set(digests).size !== digests.length ||
|
|
41
|
+
JSON.stringify([...digests].sort()) !== JSON.stringify(digests)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return tuple.occupancy === 'empty'
|
|
45
|
+
? digests.length === 0
|
|
46
|
+
: digests.length > 0;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function validateWorkspaceDeploymentMigrationEvidence(input) {
|
|
50
|
+
if (!input.evidence ||
|
|
51
|
+
typeof input.evidence !== 'object' ||
|
|
52
|
+
Array.isArray(input.evidence)) {
|
|
53
|
+
throw new Error('Workspace deployment migration evidence must be one exact object.');
|
|
54
|
+
}
|
|
55
|
+
const evidence = input.evidence;
|
|
56
|
+
if (!exactKeys(evidence, [
|
|
57
|
+
'decision',
|
|
58
|
+
'kind',
|
|
59
|
+
'previousPolicySha256',
|
|
60
|
+
'schemaVersion',
|
|
61
|
+
'tuples',
|
|
62
|
+
'workspaceDeploymentId',
|
|
63
|
+
'workspaceName',
|
|
64
|
+
]) ||
|
|
65
|
+
evidence.kind !== 'ebk-workspace-deployment-migration' ||
|
|
66
|
+
evidence.schemaVersion !== exports.WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION ||
|
|
67
|
+
evidence.decision !== 'claim-existing-workspace-deployments' ||
|
|
68
|
+
typeof evidence.workspaceName !== 'string' ||
|
|
69
|
+
evidence.workspaceName.length > 214 ||
|
|
70
|
+
!WORKSPACE_NAME.test(evidence.workspaceName) ||
|
|
71
|
+
(input.workspaceName !== undefined &&
|
|
72
|
+
evidence.workspaceName !== input.workspaceName) ||
|
|
73
|
+
evidence.workspaceDeploymentId !== input.workspaceDeploymentId ||
|
|
74
|
+
typeof evidence.previousPolicySha256 !== 'string' ||
|
|
75
|
+
!SHA256.test(evidence.previousPolicySha256) ||
|
|
76
|
+
(input.expectedPreviousPolicySha256 !== undefined &&
|
|
77
|
+
evidence.previousPolicySha256 !== input.expectedPreviousPolicySha256) ||
|
|
78
|
+
!hasExactOccupancyTuples(evidence.tuples, input.expectedCoordinates)) {
|
|
79
|
+
throw new Error('Workspace deployment migration evidence does not exactly bind the prior policy, generated workspace identity, and configured AWS tuples.');
|
|
80
|
+
}
|
|
81
|
+
return evidence;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=migration-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-evidence.js","sourceRoot":"","sources":["../../../../../packages/nx/src/workspace-deployment/migration-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type RepositoryOperatingPolicy } from '../repository-policy/index.js';
|
|
2
|
+
export { WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION, validateWorkspaceDeploymentMigrationEvidence, type WorkspaceDeploymentMigrationCoordinate, type WorkspaceDeploymentMigrationEvidence, type WorkspaceDeploymentMigrationStage, } from './migration-evidence.js';
|
|
3
|
+
export declare function validateRepositoryPolicyWorkspaceDeploymentMigration(input: {
|
|
4
|
+
evidence: unknown;
|
|
5
|
+
policy: RepositoryOperatingPolicy;
|
|
6
|
+
workspaceName: string;
|
|
7
|
+
}): void;
|
|
8
|
+
export declare function migrateRepositoryPolicyWorkspaceDeploymentIdentity(input: {
|
|
9
|
+
evidence: unknown;
|
|
10
|
+
evidenceBytes: string;
|
|
11
|
+
evidencePath: string;
|
|
12
|
+
legacyPolicy: Readonly<Record<string, unknown>>;
|
|
13
|
+
previousPolicyBytes: string;
|
|
14
|
+
sourceLabel: string;
|
|
15
|
+
workspaceDeploymentId: string;
|
|
16
|
+
workspaceName: string;
|
|
17
|
+
}): RepositoryOperatingPolicy;
|
|
18
|
+
export declare function renewRepositoryPolicyWorkspaceDeploymentMigration(input: {
|
|
19
|
+
evidence: unknown;
|
|
20
|
+
evidenceBytes: string;
|
|
21
|
+
evidencePath: string;
|
|
22
|
+
previousEvidencePath: string;
|
|
23
|
+
previousPolicyBytes: string;
|
|
24
|
+
proposedPolicy: RepositoryOperatingPolicy;
|
|
25
|
+
sourceLabel: string;
|
|
26
|
+
workspaceName: string;
|
|
27
|
+
}): RepositoryOperatingPolicy;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateWorkspaceDeploymentMigrationEvidence = exports.WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.validateRepositoryPolicyWorkspaceDeploymentMigration = validateRepositoryPolicyWorkspaceDeploymentMigration;
|
|
5
|
+
exports.migrateRepositoryPolicyWorkspaceDeploymentIdentity = migrateRepositoryPolicyWorkspaceDeploymentIdentity;
|
|
6
|
+
exports.renewRepositoryPolicyWorkspaceDeploymentMigration = renewRepositoryPolicyWorkspaceDeploymentMigration;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const index_js_1 = require("../repository-policy/index.js");
|
|
9
|
+
const identity_js_1 = require("./identity.js");
|
|
10
|
+
const migration_evidence_js_1 = require("./migration-evidence.js");
|
|
11
|
+
var migration_evidence_js_2 = require("./migration-evidence.js");
|
|
12
|
+
Object.defineProperty(exports, "WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION", { enumerable: true, get: function () { return migration_evidence_js_2.WORKSPACE_DEPLOYMENT_MIGRATION_SCHEMA_VERSION; } });
|
|
13
|
+
Object.defineProperty(exports, "validateWorkspaceDeploymentMigrationEvidence", { enumerable: true, get: function () { return migration_evidence_js_2.validateWorkspaceDeploymentMigrationEvidence; } });
|
|
14
|
+
const WORKSPACE_NAME = /^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/u;
|
|
15
|
+
function expectedTupleCoordinates(policy) {
|
|
16
|
+
let region;
|
|
17
|
+
let accounts;
|
|
18
|
+
try {
|
|
19
|
+
region = (0, index_js_1.configuredDeploymentRegion)(policy.deploymentRegion);
|
|
20
|
+
accounts = (0, index_js_1.configuredDeploymentAccountTopology)(policy.deploymentProfile, policy.deploymentAccounts);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw new Error(`Workspace deployment migration must bind the exact intended Region and every active-stage account in the same policy change: ${error instanceof Error ? error.message : String(error)}`);
|
|
24
|
+
}
|
|
25
|
+
return (0, index_js_1.activeDeploymentStages)(policy.deploymentProfile)
|
|
26
|
+
.map((stage) => ({
|
|
27
|
+
accountId: accounts[stage],
|
|
28
|
+
region,
|
|
29
|
+
stage,
|
|
30
|
+
}))
|
|
31
|
+
.sort((left, right) => left.stage < right.stage ? -1 : left.stage > right.stage ? 1 : 0);
|
|
32
|
+
}
|
|
33
|
+
function requireWorkspaceName(workspaceName) {
|
|
34
|
+
if (workspaceName.length > 214 || !WORKSPACE_NAME.test(workspaceName)) {
|
|
35
|
+
throw new Error('Workspace deployment migration requires the exact generated root package name.');
|
|
36
|
+
}
|
|
37
|
+
return workspaceName;
|
|
38
|
+
}
|
|
39
|
+
function migrationProvenance(input) {
|
|
40
|
+
return {
|
|
41
|
+
evidencePath: input.evidencePath,
|
|
42
|
+
evidenceSha256: (0, node_crypto_1.createHash)('sha256')
|
|
43
|
+
.update(input.evidenceBytes, 'utf8')
|
|
44
|
+
.digest('hex'),
|
|
45
|
+
kind: 'migrated',
|
|
46
|
+
schemaVersion: 1,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function validateRepositoryPolicyWorkspaceDeploymentMigration(input) {
|
|
50
|
+
if (input.policy.workspaceDeploymentProvenance.kind !== 'migrated') {
|
|
51
|
+
throw new Error('Workspace deployment migration validation requires migrated provenance.');
|
|
52
|
+
}
|
|
53
|
+
(0, migration_evidence_js_1.validateWorkspaceDeploymentMigrationEvidence)({
|
|
54
|
+
evidence: input.evidence,
|
|
55
|
+
expectedCoordinates: expectedTupleCoordinates(input.policy),
|
|
56
|
+
workspaceDeploymentId: input.policy.workspaceDeploymentId,
|
|
57
|
+
workspaceName: requireWorkspaceName(input.workspaceName),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function migrateRepositoryPolicyWorkspaceDeploymentIdentity(input) {
|
|
61
|
+
const workspaceDeploymentId = (0, identity_js_1.normalizeWorkspaceDeploymentId)(input.workspaceDeploymentId);
|
|
62
|
+
const workspaceName = requireWorkspaceName(input.workspaceName);
|
|
63
|
+
const existingWorkspaceDeploymentId = input.legacyPolicy.workspaceDeploymentId;
|
|
64
|
+
if (existingWorkspaceDeploymentId !== undefined &&
|
|
65
|
+
existingWorkspaceDeploymentId !== workspaceDeploymentId) {
|
|
66
|
+
throw new Error('Workspace deployment identity is immutable after it is committed.');
|
|
67
|
+
}
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(input.legacyPolicy, 'workspaceDeploymentProvenance')) {
|
|
69
|
+
throw new Error('Workspace deployment provenance is already committed and cannot be replaced through prerelease migration.');
|
|
70
|
+
}
|
|
71
|
+
const legacyPolicy = { ...input.legacyPolicy };
|
|
72
|
+
delete legacyPolicy.workspaceDeploymentMigration;
|
|
73
|
+
const policy = (0, index_js_1.parseRepositoryOperatingPolicy)(JSON.stringify({
|
|
74
|
+
...legacyPolicy,
|
|
75
|
+
workspaceDeploymentId,
|
|
76
|
+
workspaceDeploymentProvenance: migrationProvenance(input),
|
|
77
|
+
}), `${input.sourceLabel} with explicit workspace-deployment migration`);
|
|
78
|
+
(0, migration_evidence_js_1.validateWorkspaceDeploymentMigrationEvidence)({
|
|
79
|
+
evidence: input.evidence,
|
|
80
|
+
expectedCoordinates: expectedTupleCoordinates(policy),
|
|
81
|
+
expectedPreviousPolicySha256: (0, node_crypto_1.createHash)('sha256')
|
|
82
|
+
.update(input.previousPolicyBytes)
|
|
83
|
+
.digest('hex'),
|
|
84
|
+
workspaceDeploymentId,
|
|
85
|
+
workspaceName,
|
|
86
|
+
});
|
|
87
|
+
return policy;
|
|
88
|
+
}
|
|
89
|
+
function renewRepositoryPolicyWorkspaceDeploymentMigration(input) {
|
|
90
|
+
if (input.evidencePath === input.previousEvidencePath) {
|
|
91
|
+
throw new Error('A migrated workspace topology change requires a new versioned evidence path so prior ownership evidence remains retained.');
|
|
92
|
+
}
|
|
93
|
+
const workspaceName = requireWorkspaceName(input.workspaceName);
|
|
94
|
+
const policy = (0, index_js_1.parseRepositoryOperatingPolicy)(JSON.stringify({
|
|
95
|
+
...input.proposedPolicy,
|
|
96
|
+
workspaceDeploymentProvenance: migrationProvenance(input),
|
|
97
|
+
}), `${input.sourceLabel} with renewed workspace-deployment migration evidence`);
|
|
98
|
+
(0, migration_evidence_js_1.validateWorkspaceDeploymentMigrationEvidence)({
|
|
99
|
+
evidence: input.evidence,
|
|
100
|
+
expectedCoordinates: expectedTupleCoordinates(policy),
|
|
101
|
+
expectedPreviousPolicySha256: (0, node_crypto_1.createHash)('sha256')
|
|
102
|
+
.update(input.previousPolicyBytes)
|
|
103
|
+
.digest('hex'),
|
|
104
|
+
workspaceDeploymentId: policy.workspaceDeploymentId,
|
|
105
|
+
workspaceName,
|
|
106
|
+
});
|
|
107
|
+
return policy;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../../../packages/nx/src/workspace-deployment/migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { SSMClient, type SSMClientConfig } from '@aws-sdk/client-ssm';
|
|
2
|
+
import { type CanonicalDeploymentStage, type RepositoryOperatingPolicy } from '../repository-policy/index.js';
|
|
3
|
+
export declare const WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION: 1;
|
|
4
|
+
export interface WorkspaceDeploymentIdentity {
|
|
5
|
+
workspaceDeploymentId: string;
|
|
6
|
+
workspaceName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkspaceStageOwnershipTarget extends WorkspaceDeploymentIdentity {
|
|
9
|
+
accountId: string;
|
|
10
|
+
region: string;
|
|
11
|
+
stage: CanonicalDeploymentStage;
|
|
12
|
+
}
|
|
13
|
+
type WorkspaceStageOwnerIdentity = Pick<WorkspaceStageOwnershipTarget, 'accountId' | 'region' | 'stage' | 'workspaceDeploymentId'>;
|
|
14
|
+
export interface WorkspaceStageOwnerRecord {
|
|
15
|
+
accountId: string;
|
|
16
|
+
kind: 'ebk-workspace-stage-owner';
|
|
17
|
+
region: string;
|
|
18
|
+
schemaVersion: typeof WORKSPACE_STAGE_OWNERSHIP_SCHEMA_VERSION;
|
|
19
|
+
stage: CanonicalDeploymentStage;
|
|
20
|
+
workspaceDeploymentId: string;
|
|
21
|
+
}
|
|
22
|
+
export interface WorkspaceStageOwnershipClaimPlan {
|
|
23
|
+
digestInput: string;
|
|
24
|
+
parameterArn: string;
|
|
25
|
+
parameterName: string;
|
|
26
|
+
stackName: string;
|
|
27
|
+
template: Readonly<Record<string, unknown>>;
|
|
28
|
+
value: string;
|
|
29
|
+
}
|
|
30
|
+
export type WorkspaceStageOwnershipInspection = {
|
|
31
|
+
accountId: string;
|
|
32
|
+
expectedOwner: WorkspaceStageOwnerRecord;
|
|
33
|
+
parameterArn: string;
|
|
34
|
+
parameterName: string;
|
|
35
|
+
region: string;
|
|
36
|
+
stage: CanonicalDeploymentStage;
|
|
37
|
+
status: 'owned';
|
|
38
|
+
} | {
|
|
39
|
+
accountId: string;
|
|
40
|
+
expectedOwner: WorkspaceStageOwnerRecord;
|
|
41
|
+
parameterArn: string;
|
|
42
|
+
parameterName: string;
|
|
43
|
+
region: string;
|
|
44
|
+
stage: CanonicalDeploymentStage;
|
|
45
|
+
status: 'unclaimed';
|
|
46
|
+
} | {
|
|
47
|
+
accountId: string;
|
|
48
|
+
actualOwner?: WorkspaceStageOwnerRecord;
|
|
49
|
+
expectedOwner: WorkspaceStageOwnerRecord;
|
|
50
|
+
parameterArn: string;
|
|
51
|
+
parameterName: string;
|
|
52
|
+
reason: 'different-owner' | 'malformed-record' | 'unexpected-identity';
|
|
53
|
+
region: string;
|
|
54
|
+
stage: CanonicalDeploymentStage;
|
|
55
|
+
status: 'conflict';
|
|
56
|
+
};
|
|
57
|
+
export interface WorkspaceStageOwnershipInspectionOptions {
|
|
58
|
+
client?: Pick<SSMClient, 'send'>;
|
|
59
|
+
clientFactory?: (configuration: SSMClientConfig) => Pick<SSMClient, 'send'>;
|
|
60
|
+
configFilepath?: string;
|
|
61
|
+
credentialsFilepath?: string;
|
|
62
|
+
profile?: string;
|
|
63
|
+
}
|
|
64
|
+
export declare function workspaceStageOwnerParameterName(stage: CanonicalDeploymentStage): string;
|
|
65
|
+
export declare function workspaceStageOwnerParameterArn(input: Pick<WorkspaceStageOwnershipTarget, 'accountId' | 'region' | 'stage'>): string;
|
|
66
|
+
export declare function createWorkspaceStageOwnerRecord(input: WorkspaceStageOwnerIdentity): WorkspaceStageOwnerRecord;
|
|
67
|
+
export declare function canonicalWorkspaceStageOwner(input: WorkspaceStageOwnerIdentity): string;
|
|
68
|
+
export declare function workspaceStageOwnershipTarget(workspaceRoot: string, stage: CanonicalDeploymentStage, policy?: RepositoryOperatingPolicy): WorkspaceStageOwnershipTarget;
|
|
69
|
+
export declare function createWorkspaceStageOwnershipClaimPlan(input: WorkspaceStageOwnershipTarget): WorkspaceStageOwnershipClaimPlan;
|
|
70
|
+
/** Bind the stage-authority change set to the already-claimed tuple. AWS
|
|
71
|
+
* resolves the exact SSM value while evaluating CloudFormation Rules, before
|
|
72
|
+
* any IAM resource in the authority stack can be changed. */
|
|
73
|
+
export declare function bindStageAuthorityTemplateToWorkspaceOwner(template: Readonly<Record<string, unknown>>, input: WorkspaceStageOwnershipTarget): Readonly<Record<string, unknown>>;
|
|
74
|
+
export declare function inspectWorkspaceStageOwnership(input: WorkspaceStageOwnershipTarget, options?: WorkspaceStageOwnershipInspectionOptions): Promise<WorkspaceStageOwnershipInspection>;
|
|
75
|
+
export declare function assertWorkspaceStageOwnership(input: WorkspaceStageOwnershipTarget, options?: WorkspaceStageOwnershipInspectionOptions): Promise<WorkspaceStageOwnershipInspection & {
|
|
76
|
+
status: 'owned';
|
|
77
|
+
}>;
|
|
78
|
+
export declare function assertWorkspaceStageOwnershipForWorkspace(workspaceRoot: string, stage: CanonicalDeploymentStage, options?: WorkspaceStageOwnershipInspectionOptions): Promise<WorkspaceStageOwnershipInspection & {
|
|
79
|
+
status: 'owned';
|
|
80
|
+
}>;
|
|
81
|
+
export {};
|