@xemahq/contracts 0.70.0 → 0.71.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 (74) hide show
  1. package/dist/.source-stamp.json +2 -2
  2. package/dist/authorization-module/lib/platform-authorization-modules.d.ts.map +1 -1
  3. package/dist/authorization-module/lib/platform-authorization-modules.js +1 -1
  4. package/dist/authorization-module/lib/platform-authorization-modules.js.map +1 -1
  5. package/dist/authorization-module/platform/xema_capability.fga +4 -2
  6. package/dist/authorization-module/platform/xema_capability.fga.yaml +10 -0
  7. package/dist/authorization-module/platform/xema_core.fga +26 -9
  8. package/dist/authorization-module/platform/xema_core.fga.yaml +46 -0
  9. package/dist/authzen/lib/org-authority-contextual-tuple.d.ts +17 -0
  10. package/dist/authzen/lib/org-authority-contextual-tuple.d.ts.map +1 -1
  11. package/dist/authzen/lib/org-authority-contextual-tuple.js +66 -8
  12. package/dist/authzen/lib/org-authority-contextual-tuple.js.map +1 -1
  13. package/dist/authzen/lib/xema-authzen-profile.d.ts.map +1 -1
  14. package/dist/authzen/lib/xema-authzen-profile.js.map +1 -1
  15. package/dist/biome/lib/biome-component-process-facts.d.ts.map +1 -1
  16. package/dist/biome/lib/biome-component-process-facts.js.map +1 -1
  17. package/dist/biome/lib/biome-component.d.ts +5 -0
  18. package/dist/biome/lib/biome-component.d.ts.map +1 -1
  19. package/dist/biome/lib/biome-component.js +9 -2
  20. package/dist/biome/lib/biome-component.js.map +1 -1
  21. package/dist/biome/lib/biome-manifest.d.ts +6 -0
  22. package/dist/biome/lib/biome-manifest.d.ts.map +1 -1
  23. package/dist/biome/lib/biome-manifest.js +6 -10
  24. package/dist/biome/lib/biome-manifest.js.map +1 -1
  25. package/dist/biome/xema-biome.schema.json +10 -0
  26. package/dist/deployment/index.d.ts +3 -0
  27. package/dist/deployment/index.d.ts.map +1 -1
  28. package/dist/deployment/index.js +3 -0
  29. package/dist/deployment/index.js.map +1 -1
  30. package/dist/deployment/lib/artifact-signer-trust.d.ts +59 -0
  31. package/dist/deployment/lib/artifact-signer-trust.d.ts.map +1 -0
  32. package/dist/deployment/lib/artifact-signer-trust.js +121 -0
  33. package/dist/deployment/lib/artifact-signer-trust.js.map +1 -0
  34. package/dist/deployment/lib/resolved-deployment.d.ts +38 -0
  35. package/dist/deployment/lib/resolved-deployment.d.ts.map +1 -0
  36. package/dist/deployment/lib/resolved-deployment.js +103 -0
  37. package/dist/deployment/lib/resolved-deployment.js.map +1 -0
  38. package/dist/deployment/lib/trust-domain.d.ts +3 -0
  39. package/dist/deployment/lib/trust-domain.d.ts.map +1 -1
  40. package/dist/deployment/lib/trust-domain.js +17 -1
  41. package/dist/deployment/lib/trust-domain.js.map +1 -1
  42. package/dist/deployment/lib/trust-partition.d.ts +28 -0
  43. package/dist/deployment/lib/trust-partition.d.ts.map +1 -0
  44. package/dist/deployment/lib/trust-partition.js +93 -0
  45. package/dist/deployment/lib/trust-partition.js.map +1 -0
  46. package/dist/distribution/index.d.ts +1 -0
  47. package/dist/distribution/index.d.ts.map +1 -1
  48. package/dist/distribution/index.js +1 -0
  49. package/dist/distribution/index.js.map +1 -1
  50. package/dist/distribution/lib/distribution-lock.d.ts +36 -1
  51. package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
  52. package/dist/distribution/lib/distribution-lock.js +171 -3
  53. package/dist/distribution/lib/distribution-lock.js.map +1 -1
  54. package/dist/distribution/lib/distribution.d.ts +2 -0
  55. package/dist/distribution/lib/distribution.d.ts.map +1 -1
  56. package/dist/distribution/lib/distribution.js +2 -0
  57. package/dist/distribution/lib/distribution.js.map +1 -1
  58. package/dist/distribution/lib/nexus-endpoint-specs.d.ts +1 -0
  59. package/dist/distribution/lib/nexus-endpoint-specs.d.ts.map +1 -1
  60. package/dist/distribution/lib/nexus-endpoint-specs.js +4 -4
  61. package/dist/distribution/lib/nexus-endpoint-specs.js.map +1 -1
  62. package/dist/distribution/lib/verify-resolved-deployment.d.ts +30 -0
  63. package/dist/distribution/lib/verify-resolved-deployment.d.ts.map +1 -0
  64. package/dist/distribution/lib/verify-resolved-deployment.js +117 -0
  65. package/dist/distribution/lib/verify-resolved-deployment.js.map +1 -0
  66. package/dist/process-topology/lib/process-topology.d.ts +18 -2
  67. package/dist/process-topology/lib/process-topology.d.ts.map +1 -1
  68. package/dist/process-topology/lib/process-topology.js +43 -2
  69. package/dist/process-topology/lib/process-topology.js.map +1 -1
  70. package/dist/process-topology/lib/resolve-process-topology.d.ts +3 -0
  71. package/dist/process-topology/lib/resolve-process-topology.d.ts.map +1 -1
  72. package/dist/process-topology/lib/resolve-process-topology.js +32 -3
  73. package/dist/process-topology/lib/resolve-process-topology.js.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ export declare enum TrustPartitionViolationCode {
2
+ UnknownBiome = "unknown-biome",
3
+ ExceedsCeiling = "exceeds-ceiling",
4
+ IdentitySpansTrustDomains = "identity-spans-trust-domains",
5
+ DuplicateIdentity = "duplicate-identity",
6
+ UnplacedIdentityBiome = "unplaced-identity-biome"
7
+ }
8
+ export interface TrustPartitionViolation {
9
+ readonly code: TrustPartitionViolationCode;
10
+ readonly domain?: string;
11
+ readonly serviceAccount?: string;
12
+ readonly message: string;
13
+ }
14
+ export interface PartitionedBiome {
15
+ readonly id: string;
16
+ readonly trustCeiling: string;
17
+ readonly trustDomain: string;
18
+ }
19
+ export declare function gradeTrustRefinement(biomes: readonly PartitionedBiome[]): TrustPartitionViolation[];
20
+ export interface EnforcementIdentity {
21
+ readonly serviceAccount: string;
22
+ readonly actsFor: readonly {
23
+ readonly biome: string;
24
+ readonly component: string;
25
+ }[];
26
+ }
27
+ export declare function gradeEnforcementIdentities(identities: readonly EnforcementIdentity[], domainOf: Readonly<Record<string, string>>): TrustPartitionViolation[];
28
+ //# sourceMappingURL=trust-partition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-partition.d.ts","sourceRoot":"","sources":["../../../src/deployment/lib/trust-partition.ts"],"names":[],"mappings":"AAmBA,oBAAY,2BAA2B;IAErC,YAAY,kBAAkB;IAE9B,cAAc,oBAAoB;IAElC,yBAAyB,iCAAiC;IAE1D,iBAAiB,uBAAuB;IAExC,qBAAqB,4BAA4B;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAE3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AASD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,uBAAuB,EAAE,CA2B3B;AAGD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrF;AAaD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACzC,uBAAuB,EAAE,CAkD3B"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrustPartitionViolationCode = void 0;
4
+ exports.gradeTrustRefinement = gradeTrustRefinement;
5
+ exports.gradeEnforcementIdentities = gradeEnforcementIdentities;
6
+ var TrustPartitionViolationCode;
7
+ (function (TrustPartitionViolationCode) {
8
+ TrustPartitionViolationCode["UnknownBiome"] = "unknown-biome";
9
+ TrustPartitionViolationCode["ExceedsCeiling"] = "exceeds-ceiling";
10
+ TrustPartitionViolationCode["IdentitySpansTrustDomains"] = "identity-spans-trust-domains";
11
+ TrustPartitionViolationCode["DuplicateIdentity"] = "duplicate-identity";
12
+ TrustPartitionViolationCode["UnplacedIdentityBiome"] = "unplaced-identity-biome";
13
+ })(TrustPartitionViolationCode || (exports.TrustPartitionViolationCode = TrustPartitionViolationCode = {}));
14
+ function gradeTrustRefinement(biomes) {
15
+ const ceilingsOf = new Map();
16
+ for (const biome of biomes) {
17
+ const ceilings = ceilingsOf.get(biome.trustDomain) ?? new Map();
18
+ const members = ceilings.get(biome.trustCeiling) ?? [];
19
+ members.push(biome.id);
20
+ ceilings.set(biome.trustCeiling, members);
21
+ ceilingsOf.set(biome.trustDomain, ceilings);
22
+ }
23
+ const violations = [];
24
+ for (const domain of [...ceilingsOf.keys()].sort(codeUnit)) {
25
+ const ceilings = ceilingsOf.get(domain);
26
+ if (ceilings.size <= 1)
27
+ continue;
28
+ const summary = [...ceilings.entries()]
29
+ .map(([ceiling, members]) => `${ceiling} (${[...members].sort(codeUnit).join(', ')})`)
30
+ .sort(codeUnit)
31
+ .join(' and ');
32
+ violations.push({
33
+ code: TrustPartitionViolationCode.ExceedsCeiling,
34
+ domain,
35
+ message: `trust domain "${domain}" holds biomes of ${ceilings.size} edition ceiling domains: ${summary}. ` +
36
+ `A deployment may only split an edition's trust domains, never merge them; to let these biomes ` +
37
+ `share a domain, the edition must group them in its trustCeiling.`,
38
+ });
39
+ }
40
+ return violations;
41
+ }
42
+ function gradeEnforcementIdentities(identities, domainOf) {
43
+ const violations = [];
44
+ const seen = new Set();
45
+ for (const identity of identities) {
46
+ if (seen.has(identity.serviceAccount)) {
47
+ violations.push({
48
+ code: TrustPartitionViolationCode.DuplicateIdentity,
49
+ serviceAccount: identity.serviceAccount,
50
+ message: `ServiceAccount "${identity.serviceAccount}" is listed twice; list it once with every ` +
51
+ `component it acts for, since a boundary sees one identity.`,
52
+ });
53
+ continue;
54
+ }
55
+ seen.add(identity.serviceAccount);
56
+ const domains = new Map();
57
+ for (const { biome, component } of identity.actsFor) {
58
+ const domain = Object.prototype.hasOwnProperty.call(domainOf, biome)
59
+ ? domainOf[biome]
60
+ : undefined;
61
+ if (domain === undefined) {
62
+ violations.push({
63
+ code: TrustPartitionViolationCode.UnplacedIdentityBiome,
64
+ serviceAccount: identity.serviceAccount,
65
+ message: `ServiceAccount "${identity.serviceAccount}" acts for ${biome}/${component}, ` +
66
+ `but the partition places no biome "${biome}".`,
67
+ });
68
+ continue;
69
+ }
70
+ const members = domains.get(domain) ?? [];
71
+ members.push(`${biome}/${component}`);
72
+ domains.set(domain, members);
73
+ }
74
+ if (domains.size > 1) {
75
+ const summary = [...domains.entries()]
76
+ .map(([domain, members]) => `${domain} (${members.sort(codeUnit).join(', ')})`)
77
+ .sort(codeUnit)
78
+ .join(' and ');
79
+ violations.push({
80
+ code: TrustPartitionViolationCode.IdentitySpansTrustDomains,
81
+ serviceAccount: identity.serviceAccount,
82
+ message: `ServiceAccount "${identity.serviceAccount}" acts for components of ${domains.size} trust ` +
83
+ `domains: ${summary}. One account is one identity at every boundary, so these domains ` +
84
+ `are not separate; run the components under separate accounts or place them in one domain.`,
85
+ });
86
+ }
87
+ }
88
+ return violations;
89
+ }
90
+ function codeUnit(a, b) {
91
+ return a < b ? -1 : a > b ? 1 : 0;
92
+ }
93
+ //# sourceMappingURL=trust-partition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-partition.js","sourceRoot":"","sources":["../../../src/deployment/lib/trust-partition.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,5 @@ export * from './lib/nexus-binding';
17
17
  export * from './lib/resolve-nexus-bindings';
18
18
  export * from './lib/nexus-endpoint-specs';
19
19
  export * from './lib/lock-consumers';
20
+ export * from './lib/verify-resolved-deployment';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/distribution/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/distribution/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC"}
@@ -33,4 +33,5 @@ __exportStar(require("./lib/nexus-binding"), exports);
33
33
  __exportStar(require("./lib/resolve-nexus-bindings"), exports);
34
34
  __exportStar(require("./lib/nexus-endpoint-specs"), exports);
35
35
  __exportStar(require("./lib/lock-consumers"), exports);
36
+ __exportStar(require("./lib/verify-resolved-deployment"), exports);
36
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/distribution/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C;AAC7C,qDAAmC;AACnC,2DAAyC;AACzC,sDAAoC;AACpC,0DAAwC;AACxC,mDAAiC;AACjC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,mEAAiD;AACjD,uEAAqD;AACrD,+DAA6C;AAC7C,qDAAmC;AACnC,sDAAoC;AACpC,+DAA6C;AAC7C,6DAA2C;AAC3C,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/distribution/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C;AAC7C,qDAAmC;AACnC,2DAAyC;AACzC,sDAAoC;AACpC,0DAAwC;AACxC,mDAAiC;AACjC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,mEAAiD;AACjD,uEAAqD;AACrD,+DAA6C;AAC7C,qDAAmC;AACnC,sDAAoC;AACpC,+DAA6C;AAC7C,6DAA2C;AAC3C,uDAAqC;AACrC,mEAAiD"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { BiomeComponentKind, BiomeScalingMode, type BiomeComponentProcessFacts, type PostgresExtensionName, type BiomeTier, type BiomeTarget, type BiomeOrigin, type BiomeAudience, type BiomeBundleSourceSpec } from '../../biome';
3
+ import { type ResolvedDeployment } from '../../deployment';
3
4
  import { type ResourceInclusion, type ResourceKindRef, type ResourceLogicalName, type ResourceScope } from '../../resource-requirement';
4
5
  import { type PlatformServiceTier } from './distribution';
5
6
  import { type ClosureEntry } from './biome-closure';
@@ -98,6 +99,8 @@ export interface LockedBiome {
98
99
  nexusRequires?: readonly NexusServiceRequirement[];
99
100
  workerTaskQueues?: Readonly<Record<string, readonly LockedWorkerTaskQueue[]>>;
100
101
  workflowClients?: Readonly<Record<string, readonly LockedWorkflowClient[]>>;
102
+ workflowSubjects?: readonly LockedWorkflowSubject[];
103
+ trustCeiling?: string;
101
104
  workerImages: Readonly<Record<string, LockedWorkerImage>>;
102
105
  imageDigest?: string;
103
106
  displayName: string;
@@ -120,16 +123,48 @@ export declare const LockedWorkerImageSchema: z.ZodObject<{
120
123
  entry: z.ZodString;
121
124
  }, z.core.$strict>;
122
125
  export interface LockedWorkflowClient {
126
+ biome?: string | undefined;
123
127
  component: string;
124
128
  taskQueue: LockedWorkerTaskQueue;
125
129
  }
126
130
  export declare const LockedWorkflowClientSchema: z.ZodObject<{
131
+ biome: z.ZodOptional<z.ZodString>;
127
132
  component: z.ZodString;
128
133
  taskQueue: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
129
134
  name: z.ZodEnum<typeof import("../../workflow").TaskQueueName>;
130
135
  placement: z.ZodEnum<typeof import("../../execution-target").TaskQueuePlacement>;
131
136
  }, z.core.$strict>]>;
132
137
  }, z.core.$strict>;
138
+ export declare enum WorkflowSubjectPermission {
139
+ Write = "write"
140
+ }
141
+ export declare function controllerTokenServiceAccount(worker: string): string;
142
+ export interface LockedWorkflowSubject {
143
+ component: string;
144
+ permissions: WorkflowSubjectPermission[];
145
+ }
146
+ export declare const LockedWorkflowSubjectSchema: z.ZodObject<{
147
+ component: z.ZodString;
148
+ permissions: z.ZodArray<z.ZodEnum<typeof WorkflowSubjectPermission>>;
149
+ }, z.core.$strict>;
150
+ export declare function deriveWorkflowSubjects(biome: {
151
+ readonly workerTaskQueues?: Readonly<Record<string, readonly LockedWorkerTaskQueue[]>> | undefined;
152
+ readonly workflowClients?: Readonly<Record<string, readonly LockedWorkflowClient[]>> | undefined;
153
+ }): LockedWorkflowSubject[];
154
+ export interface ResolvedWorkflowSubject {
155
+ serviceAccount: string;
156
+ permissions: WorkflowSubjectPermission[];
157
+ actsFor: {
158
+ biome: string;
159
+ component: string;
160
+ }[];
161
+ }
162
+ export declare function resolveWorkflowSubjects(lock: {
163
+ readonly biomes: readonly {
164
+ readonly id: string;
165
+ readonly workflowSubjects?: readonly LockedWorkflowSubject[] | undefined;
166
+ }[];
167
+ }, resolved: Pick<ResolvedDeployment, 'biomes' | 'serviceAccounts'>): Record<string, ResolvedWorkflowSubject[]>;
133
168
  export declare const LockedWorkerTaskQueueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
134
169
  name: z.ZodEnum<typeof import("../../workflow").TaskQueueName>;
135
170
  placement: z.ZodEnum<typeof import("../../execution-target").TaskQueuePlacement>;
@@ -142,7 +177,7 @@ export interface LockedBiomeDisplay {
142
177
  summary?: string;
143
178
  accent?: string;
144
179
  }
145
- export type LockedBiomeV3 = Omit<LockedBiome, 'bundleSource' | 'serviceResources' | 'serviceProcessFacts' | 'nexusProvides' | 'nexusRequires' | 'workerTaskQueues' | 'workflowClients' | 'workerImages'>;
180
+ export type LockedBiomeV3 = Omit<LockedBiome, 'bundleSource' | 'serviceResources' | 'serviceProcessFacts' | 'nexusProvides' | 'nexusRequires' | 'workerTaskQueues' | 'workflowClients' | 'workflowSubjects' | 'trustCeiling' | 'workerImages'>;
146
181
  export type LockedBiomeV2 = Omit<LockedBiomeV3, 'serviceDatabaseExtensions' | 'source'> & {
147
182
  source?: LockedBiomeSourceV2;
148
183
  };
@@ -1 +1 @@
1
- {"version":3,"file":"distribution-lock.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/distribution-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution-lock.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/distribution-lock.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DistributionLockReaderSchema = exports.DistributionLockSchema = exports.DistributionLockV4Schema = exports.DistributionLockV3Schema = exports.DistributionLockV2Schema = exports.DistributionLockResolutionSchema = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_LATEST = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_V3 = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_BASELINE = exports.DISTRIBUTION_LOCK_SCHEMA_VERSIONS = exports.CapabilityDomainOwnerSchema = exports.LockedPlatformServiceSchema = exports.LockedBiomeSchema = exports.LockedBiomeV3Schema = exports.LockedBiomeV2Schema = exports.LockedServiceProcessFactsSchema = exports.LockedWorkerTaskQueueSchema = exports.LockedWorkflowClientSchema = exports.LockedWorkerImageSchema = exports.LockedBiomeSourceSchema = exports.LockedBiomeSourceV2Schema = exports.LockedHostModuleSchema = exports.LockedServiceResourcesSchema = exports.LockedServiceResourceSchema = exports.LockedResourceProviderSchema = exports.LockedServiceDependencySchema = exports.ServiceOwnerIdentitySchema = exports.PlatformServiceOwnerIdentitySchema = exports.BiomeServiceOwnerIdentitySchema = void 0;
3
+ exports.DistributionLockReaderSchema = exports.DistributionLockSchema = exports.DistributionLockV4Schema = exports.DistributionLockV3Schema = exports.DistributionLockV2Schema = exports.DistributionLockResolutionSchema = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_LATEST = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_V3 = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION = exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_BASELINE = exports.DISTRIBUTION_LOCK_SCHEMA_VERSIONS = exports.CapabilityDomainOwnerSchema = exports.LockedPlatformServiceSchema = exports.LockedBiomeSchema = exports.LockedBiomeV3Schema = exports.LockedBiomeV2Schema = exports.LockedServiceProcessFactsSchema = exports.LockedWorkerTaskQueueSchema = exports.LockedWorkflowSubjectSchema = exports.WorkflowSubjectPermission = exports.LockedWorkflowClientSchema = exports.LockedWorkerImageSchema = exports.LockedBiomeSourceSchema = exports.LockedBiomeSourceV2Schema = exports.LockedHostModuleSchema = exports.LockedServiceResourcesSchema = exports.LockedServiceResourceSchema = exports.LockedResourceProviderSchema = exports.LockedServiceDependencySchema = exports.ServiceOwnerIdentitySchema = exports.PlatformServiceOwnerIdentitySchema = exports.BiomeServiceOwnerIdentitySchema = void 0;
4
4
  exports.compareLockedServiceResources = compareLockedServiceResources;
5
5
  exports.parseLockedServiceResources = parseLockedServiceResources;
6
+ exports.controllerTokenServiceAccount = controllerTokenServiceAccount;
7
+ exports.deriveWorkflowSubjects = deriveWorkflowSubjects;
8
+ exports.resolveWorkflowSubjects = resolveWorkflowSubjects;
6
9
  exports.lockedWorkerTaskQueueName = lockedWorkerTaskQueueName;
7
10
  exports.lockedVersionedWorkers = lockedVersionedWorkers;
8
11
  exports.distributionLockSchemaVersionFor = distributionLockSchemaVersionFor;
@@ -13,6 +16,8 @@ const zod_1 = require("zod");
13
16
  const biome_1 = require("../../biome");
14
17
  const capability_1 = require("../../capability");
15
18
  const execution_target_1 = require("../../execution-target");
19
+ const deployment_1 = require("../../deployment");
20
+ const process_topology_1 = require("../../process-topology");
16
21
  const resource_requirement_1 = require("../../resource-requirement");
17
22
  const distribution_1 = require("./distribution");
18
23
  const biome_closure_1 = require("./biome-closure");
@@ -158,10 +163,90 @@ exports.LockedWorkerImageSchema = zod_1.z
158
163
  .strict();
159
164
  exports.LockedWorkflowClientSchema = zod_1.z
160
165
  .object({
166
+ biome: biome_1.BiomeIdSchema.optional(),
161
167
  component: zod_1.z.string().min(1),
162
168
  taskQueue: execution_target_1.WorkerTaskQueueRefSchema,
163
169
  })
164
170
  .strict();
171
+ var WorkflowSubjectPermission;
172
+ (function (WorkflowSubjectPermission) {
173
+ WorkflowSubjectPermission["Write"] = "write";
174
+ })(WorkflowSubjectPermission || (exports.WorkflowSubjectPermission = WorkflowSubjectPermission = {}));
175
+ const CONTROLLER_TOKEN_SERVICE_ACCOUNT_SUFFIX = '-controller-token';
176
+ function controllerTokenServiceAccount(worker) {
177
+ return `${worker}${CONTROLLER_TOKEN_SERVICE_ACCOUNT_SUFFIX}`;
178
+ }
179
+ exports.LockedWorkflowSubjectSchema = zod_1.z
180
+ .object({
181
+ component: zod_1.z.string().min(1),
182
+ permissions: zod_1.z
183
+ .array(zod_1.z.nativeEnum(WorkflowSubjectPermission))
184
+ .min(1)
185
+ .refine((permissions) => new Set(permissions).size === permissions.length, {
186
+ message: 'must not name a permission twice',
187
+ }),
188
+ })
189
+ .strict();
190
+ function deriveWorkflowSubjects(biome) {
191
+ const components = new Set([
192
+ ...Object.keys(biome.workerTaskQueues ?? {}),
193
+ ...Object.keys(biome.workflowClients ?? {}),
194
+ ]);
195
+ return [...components].sort(codeUnitOrder).map((component) => ({
196
+ component,
197
+ permissions: [WorkflowSubjectPermission.Write],
198
+ }));
199
+ }
200
+ function resolveWorkflowSubjects(lock, resolved) {
201
+ const domainOf = new Map(resolved.biomes.map((biome) => [biome.id, biome.trustDomain]));
202
+ const accountsOf = new Map();
203
+ for (const account of resolved.serviceAccounts) {
204
+ for (const { biome, component } of account.actsFor) {
205
+ const key = `${biome}/${component}`;
206
+ accountsOf.set(key, [...(accountsOf.get(key) ?? []), account.name]);
207
+ }
208
+ }
209
+ const byDomain = new Map();
210
+ for (const biome of lock.biomes) {
211
+ const subjects = biome.workflowSubjects ?? [];
212
+ if (subjects.length === 0)
213
+ continue;
214
+ const domain = domainOf.get(biome.id);
215
+ if (domain === undefined) {
216
+ throw new Error(`resolveWorkflowSubjects: the resolved deployment places no biome "${biome.id}"; it was not resolved from this lock`);
217
+ }
218
+ const rows = byDomain.get(domain) ?? new Map();
219
+ for (const subject of subjects) {
220
+ for (const serviceAccount of accountsOf.get(`${biome.id}/${subject.component}`) ?? []) {
221
+ const row = rows.get(serviceAccount) ?? { serviceAccount, permissions: [], actsFor: [] };
222
+ for (const permission of subject.permissions) {
223
+ if (!row.permissions.includes(permission))
224
+ row.permissions.push(permission);
225
+ }
226
+ row.actsFor.push({ biome: biome.id, component: subject.component });
227
+ rows.set(serviceAccount, row);
228
+ }
229
+ }
230
+ byDomain.set(domain, rows);
231
+ }
232
+ const result = {};
233
+ for (const domain of [...byDomain.keys()].sort(codeUnitOrder)) {
234
+ const rows = [...byDomain.get(domain).values()];
235
+ if (rows.length === 0)
236
+ continue;
237
+ result[domain] = rows
238
+ .map((row) => ({
239
+ serviceAccount: row.serviceAccount,
240
+ permissions: [...row.permissions].sort(codeUnitOrder),
241
+ actsFor: [...row.actsFor].sort((a, b) => codeUnitOrder(a.biome, b.biome) || codeUnitOrder(a.component, b.component)),
242
+ }))
243
+ .sort((a, b) => codeUnitOrder(a.serviceAccount, b.serviceAccount));
244
+ }
245
+ return result;
246
+ }
247
+ function codeUnitOrder(a, b) {
248
+ return a < b ? -1 : a > b ? 1 : 0;
249
+ }
165
250
  exports.LockedWorkerTaskQueueSchema = execution_target_1.WorkerTaskQueueRefSchema;
166
251
  function lockedWorkerTaskQueueName(queue) {
167
252
  return (0, execution_target_1.workerTaskQueueRefDeclaration)(queue).name;
@@ -321,6 +406,8 @@ const refineLockedBiomeResources = (value, context) => {
321
406
  (0, resolve_nexus_bindings_1.refineLockedNexusFacts)(value, context);
322
407
  refineLockedWorkerTaskQueues(value, context);
323
408
  refineLockedWorkflowClients(value, context);
409
+ refineLockedWorkflowSubjects(value, context);
410
+ refineLockedTrustCeiling(value, context);
324
411
  refineLockedWorkerImages(value, context);
325
412
  };
326
413
  const refineLockedWorkerImages = (value, context) => {
@@ -414,7 +501,7 @@ const refineLockedWorkflowClients = (value, context) => {
414
501
  clients.forEach((client, index) => {
415
502
  const clientQueue = (0, execution_target_1.workerTaskQueueRefDeclaration)(client.taskQueue);
416
503
  const clientQueueKey = (0, execution_target_1.workerTaskQueueKey)(clientQueue);
417
- const pair = `${client.component}:${clientQueueKey}`;
504
+ const pair = `${client.biome ?? value.id}/${client.component}:${clientQueueKey}`;
418
505
  if (seen.has(pair)) {
419
506
  context.addIssue({
420
507
  code: zod_1.z.ZodIssueCode.custom,
@@ -423,6 +510,8 @@ const refineLockedWorkflowClients = (value, context) => {
423
510
  });
424
511
  }
425
512
  seen.add(pair);
513
+ if (client.biome !== undefined && client.biome !== value.id)
514
+ return;
426
515
  const queues = Object.prototype.hasOwnProperty.call(workerQueues, client.component)
427
516
  ? workerQueues[client.component]
428
517
  : undefined;
@@ -443,6 +532,42 @@ const refineLockedWorkflowClients = (value, context) => {
443
532
  });
444
533
  }
445
534
  };
535
+ const refineLockedWorkflowSubjects = (value, context) => {
536
+ const stated = value.workflowSubjects;
537
+ if (stated === undefined)
538
+ return;
539
+ if (stated.length === 0) {
540
+ context.addIssue({
541
+ code: zod_1.z.ZodIssueCode.custom,
542
+ path: ['workflowSubjects'],
543
+ message: 'must be omitted when empty',
544
+ });
545
+ return;
546
+ }
547
+ const expected = deriveWorkflowSubjects(value);
548
+ const render = (row) => row === undefined ? '(none)' : JSON.stringify(row);
549
+ for (let index = 0; index < Math.max(stated.length, expected.length); index += 1) {
550
+ if (render(stated[index]) !== render(expected[index])) {
551
+ context.addIssue({
552
+ code: zod_1.z.ZodIssueCode.custom,
553
+ path: ['workflowSubjects', index],
554
+ message: `differs from the subjects derived from biome "${value.id}": stated ${render(stated[index])}, derived ${render(expected[index])}`,
555
+ });
556
+ return;
557
+ }
558
+ }
559
+ };
560
+ const refineLockedTrustCeiling = (value, context) => {
561
+ if (value.trustCeiling === undefined || value.origin === undefined)
562
+ return;
563
+ if (value.trustCeiling === (0, process_topology_1.defaultTrustDomain)(value.id, value.origin)) {
564
+ context.addIssue({
565
+ code: zod_1.z.ZodIssueCode.custom,
566
+ path: ['trustCeiling'],
567
+ message: `"${value.trustCeiling}" is biome "${value.id}"'s default domain; the writer omits it`,
568
+ });
569
+ }
570
+ };
446
571
  function lockedVersionedWorkers(biome) {
447
572
  return Object.keys(biome.workerTaskQueues ?? {}).sort();
448
573
  }
@@ -490,6 +615,8 @@ const lockedBiomeV4Shape = {
490
615
  .record(zod_1.z.string().min(1), zod_1.z.array(exports.LockedWorkflowClientSchema).min(1).readonly())
491
616
  .readonly()
492
617
  .optional(),
618
+ workflowSubjects: zod_1.z.array(exports.LockedWorkflowSubjectSchema).readonly().optional(),
619
+ trustCeiling: deployment_1.TrustDomainNameSchema.optional(),
493
620
  workerImages: zod_1.z
494
621
  .record(zod_1.z.string().min(1), exports.LockedWorkerImageSchema)
495
622
  .readonly(),
@@ -651,6 +778,46 @@ const refineResourceProviders = (lock, context) => {
651
778
  });
652
779
  });
653
780
  };
781
+ const refineCrossBiomeWorkflowClients = (lock, context) => {
782
+ const byId = new Map(lock.biomes.map((biome) => [biome.id, biome]));
783
+ lock.biomes.forEach((biome, biomeIndex) => {
784
+ for (const [name, clients] of Object.entries(biome.workflowClients ?? {})) {
785
+ clients.forEach((client, index) => {
786
+ if (client.biome === undefined || client.biome === biome.id)
787
+ return;
788
+ const path = ['biomes', biomeIndex, 'workflowClients', name, index];
789
+ const target = byId.get(client.biome);
790
+ if (target === undefined) {
791
+ context.addIssue({
792
+ code: zod_1.z.ZodIssueCode.custom,
793
+ path: [...path, 'biome'],
794
+ message: `names biome "${client.biome}", which this lock does not ship`,
795
+ });
796
+ return;
797
+ }
798
+ const queues = Object.prototype.hasOwnProperty.call(target.workerTaskQueues ?? {}, client.component)
799
+ ? target.workerTaskQueues?.[client.component]
800
+ : undefined;
801
+ if (queues === undefined) {
802
+ context.addIssue({
803
+ code: zod_1.z.ZodIssueCode.custom,
804
+ path: [...path, 'component'],
805
+ message: `"${client.component}" is not a worker/v2 of biome "${client.biome}" — it has no workerTaskQueues entry`,
806
+ });
807
+ return;
808
+ }
809
+ const wanted = (0, execution_target_1.workerTaskQueueRefDeclaration)(client.taskQueue);
810
+ if (!queues.some((queue) => (0, execution_target_1.sameWorkerTaskQueue)((0, execution_target_1.workerTaskQueueRefDeclaration)(queue), wanted))) {
811
+ context.addIssue({
812
+ code: zod_1.z.ZodIssueCode.custom,
813
+ path: [...path, 'taskQueue'],
814
+ message: `task queue "${(0, execution_target_1.workerTaskQueueKey)(wanted)}" is not one worker "${client.component}" of biome "${client.biome}" polls`,
815
+ });
816
+ }
817
+ });
818
+ }
819
+ });
820
+ };
654
821
  const distributionLockV4Object = zod_1.z
655
822
  .object({
656
823
  schemaVersion: zod_1.z.literal(exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_LATEST),
@@ -663,7 +830,8 @@ const distributionLockV4Object = zod_1.z
663
830
  .superRefine(refineResourceProviders)
664
831
  .superRefine(refineResolutionCoverage)
665
832
  .superRefine(nexus_binding_1.refineNexusBindings)
666
- .superRefine(resolve_nexus_bindings_1.refineNexusBindingsAgreeWithFacts);
833
+ .superRefine(resolve_nexus_bindings_1.refineNexusBindingsAgreeWithFacts)
834
+ .superRefine(refineCrossBiomeWorkflowClients);
667
835
  const readerDistributionLockV2Object = zod_1.z.looseObject({
668
836
  schemaVersion: zod_1.z.literal(exports.DISTRIBUTION_LOCK_SCHEMA_VERSION_BASELINE),
669
837
  biomes: zod_1.z.array(readerLockedBiomeV2Object).readonly(),