@xemahq/contracts 0.76.0 → 0.78.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/README.md +1 -1
- package/dist/.source-stamp.json +2 -2
- package/dist/authorization-module/index.d.ts +2 -0
- package/dist/authorization-module/index.d.ts.map +1 -1
- package/dist/authorization-module/index.js +2 -0
- package/dist/authorization-module/index.js.map +1 -1
- package/dist/authorization-module/lib/authorization-composition-error.d.ts +11 -0
- package/dist/authorization-module/lib/authorization-composition-error.d.ts.map +1 -1
- package/dist/authorization-module/lib/authorization-composition-error.js +16 -1
- package/dist/authorization-module/lib/authorization-composition-error.js.map +1 -1
- package/dist/authorization-module/lib/authorization-interface-requirements.d.ts +5 -1
- package/dist/authorization-module/lib/authorization-interface-requirements.d.ts.map +1 -1
- package/dist/authorization-module/lib/authorization-interface-requirements.js +1 -0
- package/dist/authorization-module/lib/authorization-interface-requirements.js.map +1 -1
- package/dist/authorization-module/lib/authorization-module-contribution.d.ts +24 -0
- package/dist/authorization-module/lib/authorization-module-contribution.d.ts.map +1 -1
- package/dist/authorization-module/lib/authorization-module-contribution.js +1 -0
- package/dist/authorization-module/lib/authorization-module-contribution.js.map +1 -1
- package/dist/authorization-module/lib/authorization-module-envelope.d.ts +11 -0
- package/dist/authorization-module/lib/authorization-module-envelope.d.ts.map +1 -1
- package/dist/authorization-module/lib/authorization-module-envelope.js +4 -0
- package/dist/authorization-module/lib/authorization-module-envelope.js.map +1 -1
- package/dist/authorization-module/lib/delegation-origination.d.ts +26 -0
- package/dist/authorization-module/lib/delegation-origination.d.ts.map +1 -0
- package/dist/authorization-module/lib/delegation-origination.js +43 -0
- package/dist/authorization-module/lib/delegation-origination.js.map +1 -0
- package/dist/authorization-module/lib/delegation-wildcard-ceiling.d.ts +6 -0
- package/dist/authorization-module/lib/delegation-wildcard-ceiling.d.ts.map +1 -0
- package/dist/authorization-module/lib/delegation-wildcard-ceiling.js +17 -0
- package/dist/authorization-module/lib/delegation-wildcard-ceiling.js.map +1 -0
- package/dist/authorization-module/lib/platform-authorization-modules.d.ts.map +1 -1
- package/dist/authorization-module/lib/platform-authorization-modules.js +10 -11
- package/dist/authorization-module/lib/platform-authorization-modules.js.map +1 -1
- package/dist/authorization-module/platform/xema_core.fga +76 -45
- package/dist/authorization-module/platform/xema_core.fga.yaml +522 -97
- package/dist/authorization-module/platform/xema_sharing.fga +48 -33
- package/dist/authorization-module/platform/xema_sharing.fga.yaml +555 -2
- package/dist/authorization-module/server/authorization-interface-conformance.d.ts +1 -0
- package/dist/authorization-module/server/authorization-interface-conformance.d.ts.map +1 -1
- package/dist/authorization-module/server/authorization-interface-conformance.js +13 -1
- package/dist/authorization-module/server/authorization-interface-conformance.js.map +1 -1
- package/dist/authorization-module/server/compose-authorization-base.d.ts +2 -0
- package/dist/authorization-module/server/compose-authorization-base.d.ts.map +1 -1
- package/dist/authorization-module/server/compose-authorization-base.js +15 -2
- package/dist/authorization-module/server/compose-authorization-base.js.map +1 -1
- package/dist/authorization-module/server/delegation-origination-conformance.d.ts +15 -0
- package/dist/authorization-module/server/delegation-origination-conformance.d.ts.map +1 -0
- package/dist/authorization-module/server/delegation-origination-conformance.js +92 -0
- package/dist/authorization-module/server/delegation-origination-conformance.js.map +1 -0
- package/dist/authorization-module/server/userset-subject-types.d.ts +3 -0
- package/dist/authorization-module/server/userset-subject-types.d.ts.map +1 -0
- package/dist/authorization-module/server/userset-subject-types.js +65 -0
- package/dist/authorization-module/server/userset-subject-types.js.map +1 -0
- package/dist/authzen/index.d.ts +1 -0
- package/dist/authzen/index.d.ts.map +1 -1
- package/dist/authzen/index.js +1 -0
- package/dist/authzen/index.js.map +1 -1
- package/dist/authzen/lib/durable-delegation-model.d.ts +33 -11
- package/dist/authzen/lib/durable-delegation-model.d.ts.map +1 -1
- package/dist/authzen/lib/durable-delegation-model.js +54 -16
- package/dist/authzen/lib/durable-delegation-model.js.map +1 -1
- package/dist/authzen/lib/xema-membership.d.ts +6 -0
- package/dist/authzen/lib/xema-membership.d.ts.map +1 -0
- package/dist/authzen/lib/xema-membership.js +16 -0
- package/dist/authzen/lib/xema-membership.js.map +1 -0
- package/dist/biome-dependency/lib/peer-seam-table.d.ts +1 -0
- package/dist/biome-dependency/lib/peer-seam-table.d.ts.map +1 -1
- package/dist/biome-dependency/lib/peer-seam-table.js +2 -1
- package/dist/biome-dependency/lib/peer-seam-table.js.map +1 -1
- package/dist/deployment/lib/resolved-deployment.d.ts +29 -4
- package/dist/deployment/lib/resolved-deployment.d.ts.map +1 -1
- package/dist/deployment/lib/resolved-deployment.js +57 -17
- package/dist/deployment/lib/resolved-deployment.js.map +1 -1
- package/dist/distribution/index.d.ts +5 -1
- package/dist/distribution/index.d.ts.map +1 -1
- package/dist/distribution/index.js +6 -0
- package/dist/distribution/index.js.map +1 -1
- package/dist/distribution/lib/authorization-lock.d.ts +16 -0
- package/dist/distribution/lib/authorization-lock.d.ts.map +1 -0
- package/dist/distribution/lib/authorization-lock.js +34 -0
- package/dist/distribution/lib/authorization-lock.js.map +1 -0
- package/dist/distribution/lib/customer-edition-definition.d.ts +10 -1
- package/dist/distribution/lib/customer-edition-definition.d.ts.map +1 -1
- package/dist/distribution/lib/customer-edition-definition.js +53 -2
- package/dist/distribution/lib/customer-edition-definition.js.map +1 -1
- package/dist/distribution/lib/delivered-biome.d.ts +2 -2
- package/dist/distribution/lib/delivered-biome.d.ts.map +1 -1
- package/dist/distribution/lib/delivered-biome.js.map +1 -1
- package/dist/distribution/lib/distribution-lock.d.ts +2 -1
- package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
- package/dist/distribution/lib/distribution-lock.js +24 -0
- package/dist/distribution/lib/distribution-lock.js.map +1 -1
- package/dist/distribution/lib/image-producer-evidence.d.ts +86 -14
- package/dist/distribution/lib/image-producer-evidence.d.ts.map +1 -1
- package/dist/distribution/lib/image-producer-evidence.js +72 -12
- package/dist/distribution/lib/image-producer-evidence.js.map +1 -1
- package/dist/distribution/lib/kernel-contract-authority.d.ts +1 -0
- package/dist/distribution/lib/kernel-contract-authority.d.ts.map +1 -1
- package/dist/distribution/lib/kernel-contract-authority.js +6 -2
- package/dist/distribution/lib/kernel-contract-authority.js.map +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.d.ts +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.d.ts.map +1 -1
- package/dist/distribution/lib/kernel-contract-source-paths.js +9 -0
- package/dist/distribution/lib/kernel-contract-source-paths.js.map +1 -1
- package/dist/distribution/lib/nexus-endpoint-specs.d.ts +2 -2
- package/dist/distribution/lib/nexus-endpoint-specs.d.ts.map +1 -1
- package/dist/distribution/lib/nexus-endpoint-specs.js.map +1 -1
- package/dist/distribution/lib/resolve-unsplit-deployment.d.ts +16 -0
- package/dist/distribution/lib/resolve-unsplit-deployment.d.ts.map +1 -0
- package/dist/distribution/lib/resolve-unsplit-deployment.js +48 -0
- package/dist/distribution/lib/resolve-unsplit-deployment.js.map +1 -0
- package/dist/distribution/lib/runtime-image-source-index.d.ts +18 -1
- package/dist/distribution/lib/runtime-image-source-index.d.ts.map +1 -1
- package/dist/distribution/lib/runtime-image-source-index.js +38 -2
- package/dist/distribution/lib/runtime-image-source-index.js.map +1 -1
- package/dist/distribution/lib/verified-resolved-deployment.d.ts +12 -2
- package/dist/distribution/lib/verified-resolved-deployment.d.ts.map +1 -1
- package/dist/distribution/lib/verify-delivered-locks.d.ts +41 -0
- package/dist/distribution/lib/verify-delivered-locks.d.ts.map +1 -0
- package/dist/distribution/lib/verify-delivered-locks.js +76 -0
- package/dist/distribution/lib/verify-delivered-locks.js.map +1 -0
- package/dist/distribution/lib/verify-resolved-deployment.d.ts +27 -7
- package/dist/distribution/lib/verify-resolved-deployment.d.ts.map +1 -1
- package/dist/distribution/lib/verify-resolved-deployment.js +61 -4
- package/dist/distribution/lib/verify-resolved-deployment.js.map +1 -1
- package/dist/distribution/server/index.d.ts +8 -0
- package/dist/distribution/server/index.d.ts.map +1 -0
- package/dist/distribution/server/index.js +34 -0
- package/dist/distribution/server/index.js.map +1 -0
- package/dist/edition-protocol/edition-contract.schema.json +1 -1
- package/dist/edition-protocol/edition-protocol.json +1 -1
- package/dist/edition-protocol/lib/edition-protocol.d.ts +2 -1
- package/dist/edition-protocol/lib/edition-protocol.d.ts.map +1 -1
- package/dist/edition-protocol/lib/edition-protocol.js +4 -2
- package/dist/edition-protocol/lib/edition-protocol.js.map +1 -1
- package/dist/redis-key/index.d.ts +1 -0
- package/dist/redis-key/index.d.ts.map +1 -1
- package/dist/redis-key/index.js +1 -0
- package/dist/redis-key/index.js.map +1 -1
- package/dist/redis-key/lib/deployment-acl-policy.d.ts.map +1 -1
- package/dist/redis-key/lib/deployment-acl-policy.js +1 -0
- package/dist/redis-key/lib/deployment-acl-policy.js.map +1 -1
- package/dist/redis-key/lib/erasure-request.d.ts +6 -0
- package/dist/redis-key/lib/erasure-request.d.ts.map +1 -0
- package/dist/redis-key/lib/erasure-request.js +75 -0
- package/dist/redis-key/lib/erasure-request.js.map +1 -0
- package/dist/redis-key/lib/lease-acl-policy.d.ts.map +1 -1
- package/dist/redis-key/lib/lease-acl-policy.js +2 -0
- package/dist/redis-key/lib/lease-acl-policy.js.map +1 -1
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts +4 -1
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts.map +1 -1
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js +80 -1
- package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js.map +1 -1
- package/dist/service-registry/lib/on-behalf-descriptor.d.ts.map +1 -1
- package/dist/service-registry/lib/on-behalf-descriptor.js.map +1 -1
- package/dist/service-registry/lib/service-descriptor.d.ts +6 -0
- package/dist/service-registry/lib/service-descriptor.d.ts.map +1 -1
- package/dist/service-registry/lib/service-descriptor.js +16 -1
- package/dist/service-registry/lib/service-descriptor.js.map +1 -1
- package/package.json +5 -2
|
@@ -25,8 +25,13 @@ export declare const BuildStepContextDirectorySchema: z.ZodObject<{
|
|
|
25
25
|
reason: z.ZodString;
|
|
26
26
|
}, z.core.$strict>;
|
|
27
27
|
export type BuildStepContextDirectory = z.infer<typeof BuildStepContextDirectorySchema>;
|
|
28
|
+
export declare const ProducerWorkflowPinSchema: z.ZodObject<{
|
|
29
|
+
repository: z.ZodString;
|
|
30
|
+
workflowCommit: z.ZodString;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
export type ProducerWorkflowPin = z.infer<typeof ProducerWorkflowPinSchema>;
|
|
28
33
|
export declare const RuntimeImageSourceIndexSchema: z.ZodObject<{
|
|
29
|
-
schemaVersion: z.ZodLiteral<
|
|
34
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
30
35
|
contractAuthority: z.ZodObject<{
|
|
31
36
|
schemaVersion: z.ZodLiteral<1>;
|
|
32
37
|
generatorIdentity: z.ZodLiteral<"xema-distributions/build-runtime-image-source-index.mjs@v1">;
|
|
@@ -65,6 +70,10 @@ export declare const RuntimeImageSourceIndexSchema: z.ZodObject<{
|
|
|
65
70
|
sourceCommit: z.ZodString;
|
|
66
71
|
vendoredSourceCommit: z.ZodString;
|
|
67
72
|
}, z.core.$strict>>>;
|
|
73
|
+
producerWorkflowPins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
74
|
+
repository: z.ZodString;
|
|
75
|
+
workflowCommit: z.ZodString;
|
|
76
|
+
}, z.core.$strict>>>;
|
|
68
77
|
platformServiceBindings: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
69
78
|
platformService: z.ZodString;
|
|
70
79
|
subjectKind: z.ZodEnum<typeof RuntimeImageSubjectKind>;
|
|
@@ -73,4 +82,12 @@ export declare const RuntimeImageSourceIndexSchema: z.ZodObject<{
|
|
|
73
82
|
}, z.core.$strict>;
|
|
74
83
|
export type RuntimeImageSourceIndex = z.infer<typeof RuntimeImageSourceIndexSchema>;
|
|
75
84
|
export declare function parseRuntimeImageSourceIndex(raw: unknown): RuntimeImageSourceIndex;
|
|
85
|
+
export declare enum ProducerWorkflowPinRefusal {
|
|
86
|
+
Unpinned = "producer_workflow_unpinned",
|
|
87
|
+
Mismatch = "producer_workflow_pin_mismatch"
|
|
88
|
+
}
|
|
89
|
+
export declare function producerWorkflowPinRefusal(index: RuntimeImageSourceIndex, producer: {
|
|
90
|
+
readonly repository: string;
|
|
91
|
+
readonly workflowCommit: string;
|
|
92
|
+
}): ProducerWorkflowPinRefusal | undefined;
|
|
76
93
|
//# sourceMappingURL=runtime-image-source-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-image-source-index.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/runtime-image-source-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-image-source-index.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/runtime-image-source-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AA8CvD,eAAO,MAAM,oCAAoC;;;;;;;;;;kBAYtC,CAAC;AAeZ,eAAO,MAAM,yBAAyB;;;;;;kBAiB3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAc5E,eAAO,MAAM,+BAA+B;;;;kBASjC,CAAC;AAEZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAMF,eAAO,MAAM,yBAAyB;;;kBAM3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+PtC,CAAC;AAEL,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,GACX,uBAAuB,CAUzB;AAGD,oBAAY,0BAA0B;IAEpC,QAAQ,+BAA+B;IAEvC,QAAQ,mCAAmC;CAC5C;AAWD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACzE,0BAA0B,GAAG,SAAS,CAQxC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeImageSourceIndexSchema = exports.BuildStepContextDirectorySchema = exports.CrossRepoBuildInputSchema = exports.RuntimeImageSupplementalSourceSchema = void 0;
|
|
3
|
+
exports.ProducerWorkflowPinRefusal = exports.RuntimeImageSourceIndexSchema = exports.ProducerWorkflowPinSchema = exports.BuildStepContextDirectorySchema = exports.CrossRepoBuildInputSchema = exports.RuntimeImageSupplementalSourceSchema = void 0;
|
|
4
4
|
exports.parseRuntimeImageSourceIndex = parseRuntimeImageSourceIndex;
|
|
5
|
+
exports.producerWorkflowPinRefusal = producerWorkflowPinRefusal;
|
|
5
6
|
const zod_1 = require("zod");
|
|
6
7
|
const image_lock_1 = require("./image-lock");
|
|
8
|
+
const image_producer_evidence_1 = require("./image-producer-evidence");
|
|
7
9
|
const kernel_contract_authority_1 = require("./kernel-contract-authority");
|
|
8
10
|
const RuntimeIdentitySchema = zod_1.z
|
|
9
11
|
.string()
|
|
@@ -65,9 +67,15 @@ exports.BuildStepContextDirectorySchema = zod_1.z
|
|
|
65
67
|
reason: zod_1.z.string().min(20),
|
|
66
68
|
})
|
|
67
69
|
.strict();
|
|
70
|
+
exports.ProducerWorkflowPinSchema = zod_1.z
|
|
71
|
+
.object({
|
|
72
|
+
repository: image_producer_evidence_1.GithubRepositorySchema,
|
|
73
|
+
workflowCommit: GitCommitSchema,
|
|
74
|
+
})
|
|
75
|
+
.strict();
|
|
68
76
|
exports.RuntimeImageSourceIndexSchema = zod_1.z
|
|
69
77
|
.object({
|
|
70
|
-
schemaVersion: zod_1.z.literal(
|
|
78
|
+
schemaVersion: zod_1.z.literal(2),
|
|
71
79
|
contractAuthority: kernel_contract_authority_1.KernelContractAuthoritySchema,
|
|
72
80
|
supplementalSubjects: zod_1.z
|
|
73
81
|
.array(exports.RuntimeImageSupplementalSourceSchema)
|
|
@@ -87,6 +95,7 @@ exports.RuntimeImageSourceIndexSchema = zod_1.z
|
|
|
87
95
|
.strict())
|
|
88
96
|
.min(1)
|
|
89
97
|
.readonly(),
|
|
98
|
+
producerWorkflowPins: zod_1.z.array(exports.ProducerWorkflowPinSchema).readonly(),
|
|
90
99
|
platformServiceBindings: zod_1.z
|
|
91
100
|
.array(zod_1.z
|
|
92
101
|
.object({
|
|
@@ -228,6 +237,20 @@ exports.RuntimeImageSourceIndexSchema = zod_1.z
|
|
|
228
237
|
});
|
|
229
238
|
}
|
|
230
239
|
}
|
|
240
|
+
const pinnedWorkflows = new Map();
|
|
241
|
+
for (const [index, pin] of value.producerWorkflowPins.entries()) {
|
|
242
|
+
const incumbent = pinnedWorkflows.get(pin.repository);
|
|
243
|
+
if (incumbent !== undefined) {
|
|
244
|
+
context.addIssue({
|
|
245
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
246
|
+
path: ['producerWorkflowPins', index, 'repository'],
|
|
247
|
+
message: `duplicates producerWorkflowPins[${incumbent}].repository "${pin.repository}"`,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
pinnedWorkflows.set(pin.repository, index);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
231
254
|
const platformServices = new Map();
|
|
232
255
|
for (const [index, binding] of value.platformServiceBindings.entries()) {
|
|
233
256
|
const incumbent = platformServices.get(binding.platformService);
|
|
@@ -252,4 +275,17 @@ function parseRuntimeImageSourceIndex(raw) {
|
|
|
252
275
|
}
|
|
253
276
|
return result.data;
|
|
254
277
|
}
|
|
278
|
+
var ProducerWorkflowPinRefusal;
|
|
279
|
+
(function (ProducerWorkflowPinRefusal) {
|
|
280
|
+
ProducerWorkflowPinRefusal["Unpinned"] = "producer_workflow_unpinned";
|
|
281
|
+
ProducerWorkflowPinRefusal["Mismatch"] = "producer_workflow_pin_mismatch";
|
|
282
|
+
})(ProducerWorkflowPinRefusal || (exports.ProducerWorkflowPinRefusal = ProducerWorkflowPinRefusal = {}));
|
|
283
|
+
function producerWorkflowPinRefusal(index, producer) {
|
|
284
|
+
const pin = index.producerWorkflowPins.find((candidate) => candidate.repository === producer.repository);
|
|
285
|
+
if (pin === undefined)
|
|
286
|
+
return ProducerWorkflowPinRefusal.Unpinned;
|
|
287
|
+
return pin.workflowCommit === producer.workflowCommit
|
|
288
|
+
? undefined
|
|
289
|
+
: ProducerWorkflowPinRefusal.Mismatch;
|
|
290
|
+
}
|
|
255
291
|
//# sourceMappingURL=runtime-image-source-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-image-source-index.js","sourceRoot":"","sources":["../../../src/distribution/lib/runtime-image-source-index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"runtime-image-source-index.js","sourceRoot":"","sources":["../../../src/distribution/lib/runtime-image-source-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EngineResolvedDeployment, UnsplitResolvedDeployment } from "../../deployment";
|
|
2
2
|
import type { DistributionLockReadView } from "./distribution-lock";
|
|
3
3
|
declare const verifiedBrand: unique symbol;
|
|
4
|
-
export type VerifiedResolvedDeployment =
|
|
4
|
+
export type VerifiedResolvedDeployment = EngineResolvedDeployment & {
|
|
5
5
|
readonly [verifiedBrand]: true;
|
|
6
6
|
};
|
|
7
|
+
declare const verifiedUnsplitBrand: unique symbol;
|
|
8
|
+
export type VerifiedUnsplitResolvedDeployment = UnsplitResolvedDeployment & {
|
|
9
|
+
readonly [verifiedUnsplitBrand]: true;
|
|
10
|
+
};
|
|
7
11
|
declare const editionResolutionBrand: unique symbol;
|
|
8
12
|
export interface VerifiedEditionResolution {
|
|
9
13
|
readonly [editionResolutionBrand]: true;
|
|
10
14
|
readonly resolved: VerifiedResolvedDeployment;
|
|
11
15
|
readonly lock: DistributionLockReadView;
|
|
12
16
|
}
|
|
17
|
+
declare const unsplitEditionResolutionBrand: unique symbol;
|
|
18
|
+
export interface VerifiedUnsplitEditionResolution {
|
|
19
|
+
readonly [unsplitEditionResolutionBrand]: true;
|
|
20
|
+
readonly resolved: VerifiedUnsplitResolvedDeployment;
|
|
21
|
+
readonly lock: DistributionLockReadView;
|
|
22
|
+
}
|
|
13
23
|
export {};
|
|
14
24
|
//# sourceMappingURL=verified-resolved-deployment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-resolved-deployment.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/verified-resolved-deployment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"verified-resolved-deployment.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/verified-resolved-deployment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAgB3C,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,GAAG;IAClE,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,MAAM,CAAC;AASlD,MAAM,MAAM,iCAAiC,GAAG,yBAAyB,GAAG;IAC1E,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;CACvC,CAAC;AAEF,OAAO,CAAC,MAAM,sBAAsB,EAAE,OAAO,MAAM,CAAC;AAepD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAE9C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;CACzC;AAED,OAAO,CAAC,MAAM,6BAA6B,EAAE,OAAO,MAAM,CAAC;AAO3D,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IAErD,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;CACzC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type AuthorizationLockReadView } from "./authorization-lock";
|
|
2
|
+
import { type ImageLock } from "./image-lock";
|
|
3
|
+
import type { VerifiedEditionResolution, VerifiedUnsplitEditionResolution } from "./verified-resolved-deployment";
|
|
4
|
+
export declare enum ImagesLockRefusalCode {
|
|
5
|
+
BytesMissing = "images-lock-bytes-missing",
|
|
6
|
+
DigestMismatch = "images-lock-digest-mismatch",
|
|
7
|
+
Unparseable = "images-lock-unparseable",
|
|
8
|
+
DistributionMismatch = "images-lock-distribution-mismatch"
|
|
9
|
+
}
|
|
10
|
+
export declare enum AuthorizationLockRefusalCode {
|
|
11
|
+
BytesMissing = "authorization-lock-bytes-missing",
|
|
12
|
+
DigestMismatch = "authorization-lock-digest-mismatch",
|
|
13
|
+
Unparseable = "authorization-lock-unparseable",
|
|
14
|
+
DistributionMismatch = "authorization-lock-distribution-mismatch"
|
|
15
|
+
}
|
|
16
|
+
export interface ImagesLockRefusal {
|
|
17
|
+
readonly code: ImagesLockRefusalCode;
|
|
18
|
+
readonly message: string;
|
|
19
|
+
}
|
|
20
|
+
export interface AuthorizationLockRefusal {
|
|
21
|
+
readonly code: AuthorizationLockRefusalCode;
|
|
22
|
+
readonly message: string;
|
|
23
|
+
}
|
|
24
|
+
export type ImagesLockVerification = {
|
|
25
|
+
readonly ok: true;
|
|
26
|
+
readonly imageLock: ImageLock;
|
|
27
|
+
} | {
|
|
28
|
+
readonly ok: false;
|
|
29
|
+
readonly refusals: readonly ImagesLockRefusal[];
|
|
30
|
+
};
|
|
31
|
+
export type AuthorizationLockVerification = {
|
|
32
|
+
readonly ok: true;
|
|
33
|
+
readonly authorizationLock: AuthorizationLockReadView;
|
|
34
|
+
} | {
|
|
35
|
+
readonly ok: false;
|
|
36
|
+
readonly refusals: readonly AuthorizationLockRefusal[];
|
|
37
|
+
};
|
|
38
|
+
export type VerifiedResolution = VerifiedEditionResolution | VerifiedUnsplitEditionResolution;
|
|
39
|
+
export declare function verifyImagesLock(verified: VerifiedResolution, imagesLockBytes: Uint8Array): Promise<ImagesLockVerification>;
|
|
40
|
+
export declare function verifyAuthorizationLock(verified: VerifiedResolution, authorizationLockBytes: Uint8Array): Promise<AuthorizationLockVerification>;
|
|
41
|
+
//# sourceMappingURL=verify-delivered-locks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-delivered-locks.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/verify-delivered-locks.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EACV,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,gCAAgC,CAAC;AAsBxC,oBAAY,qBAAqB;IAE/B,YAAY,8BAA8B;IAE1C,cAAc,gCAAgC;IAE9C,WAAW,4BAA4B;IAEvC,oBAAoB,sCAAsC;CAC3D;AAGD,oBAAY,4BAA4B;IAEtC,YAAY,qCAAqC;IAEjD,cAAc,uCAAuC;IAErD,WAAW,mCAAmC;IAE9C,oBAAoB,6CAA6C;CAClE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAErC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAE5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,6BAA6B,GACrC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAA;CAAE,GAC5E;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACxD,CAAC;AAGN,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,gCAAgC,CAAC;AAgBrC,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,UAAU,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAmCjC;AAQD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,kBAAkB,EAC5B,sBAAsB,EAAE,UAAU,GACjC,OAAO,CAAC,6BAA6B,CAAC,CAmCxC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthorizationLockRefusalCode = exports.ImagesLockRefusalCode = void 0;
|
|
4
|
+
exports.verifyImagesLock = verifyImagesLock;
|
|
5
|
+
exports.verifyAuthorizationLock = verifyAuthorizationLock;
|
|
6
|
+
const content_address_1 = require("../../content-address");
|
|
7
|
+
const authorization_lock_1 = require("./authorization-lock");
|
|
8
|
+
const image_lock_1 = require("./image-lock");
|
|
9
|
+
var ImagesLockRefusalCode;
|
|
10
|
+
(function (ImagesLockRefusalCode) {
|
|
11
|
+
ImagesLockRefusalCode["BytesMissing"] = "images-lock-bytes-missing";
|
|
12
|
+
ImagesLockRefusalCode["DigestMismatch"] = "images-lock-digest-mismatch";
|
|
13
|
+
ImagesLockRefusalCode["Unparseable"] = "images-lock-unparseable";
|
|
14
|
+
ImagesLockRefusalCode["DistributionMismatch"] = "images-lock-distribution-mismatch";
|
|
15
|
+
})(ImagesLockRefusalCode || (exports.ImagesLockRefusalCode = ImagesLockRefusalCode = {}));
|
|
16
|
+
var AuthorizationLockRefusalCode;
|
|
17
|
+
(function (AuthorizationLockRefusalCode) {
|
|
18
|
+
AuthorizationLockRefusalCode["BytesMissing"] = "authorization-lock-bytes-missing";
|
|
19
|
+
AuthorizationLockRefusalCode["DigestMismatch"] = "authorization-lock-digest-mismatch";
|
|
20
|
+
AuthorizationLockRefusalCode["Unparseable"] = "authorization-lock-unparseable";
|
|
21
|
+
AuthorizationLockRefusalCode["DistributionMismatch"] = "authorization-lock-distribution-mismatch";
|
|
22
|
+
})(AuthorizationLockRefusalCode || (exports.AuthorizationLockRefusalCode = AuthorizationLockRefusalCode = {}));
|
|
23
|
+
function hasBytes(bytes) {
|
|
24
|
+
return bytes instanceof Uint8Array && bytes.length > 0;
|
|
25
|
+
}
|
|
26
|
+
function decodeJson(bytes) {
|
|
27
|
+
return JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
|
|
28
|
+
}
|
|
29
|
+
async function verifyImagesLock(verified, imagesLockBytes) {
|
|
30
|
+
const refuse = (code, message) => ({
|
|
31
|
+
ok: false,
|
|
32
|
+
refusals: [{ code, message }],
|
|
33
|
+
});
|
|
34
|
+
if (!hasBytes(imagesLockBytes)) {
|
|
35
|
+
return refuse(ImagesLockRefusalCode.BytesMissing, "the images lock bytes are missing or empty; they are the file's exact bytes.");
|
|
36
|
+
}
|
|
37
|
+
const expected = verified.resolved.edition.imagesLockSha256;
|
|
38
|
+
const digest = await (0, content_address_1.sha256Hex)(imagesLockBytes);
|
|
39
|
+
if (digest !== expected) {
|
|
40
|
+
return refuse(ImagesLockRefusalCode.DigestMismatch, `the images lock bytes hash to ${digest}, but the resolved deployment pins ${expected}; it is not this edition's images lock.`);
|
|
41
|
+
}
|
|
42
|
+
let imageLock;
|
|
43
|
+
try {
|
|
44
|
+
imageLock = (0, image_lock_1.parseImageLock)(decodeJson(imagesLockBytes));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return refuse(ImagesLockRefusalCode.Unparseable, `the images lock bytes are not a readable images lock: ${error.message}`);
|
|
48
|
+
}
|
|
49
|
+
if (imageLock.distributionId !== verified.lock.distributionId) {
|
|
50
|
+
return refuse(ImagesLockRefusalCode.DistributionMismatch, `the images lock is for distribution "${imageLock.distributionId}", but the verified edition lock is for "${verified.lock.distributionId}".`);
|
|
51
|
+
}
|
|
52
|
+
return { ok: true, imageLock };
|
|
53
|
+
}
|
|
54
|
+
async function verifyAuthorizationLock(verified, authorizationLockBytes) {
|
|
55
|
+
const refuse = (code, message) => ({ ok: false, refusals: [{ code, message }] });
|
|
56
|
+
if (!hasBytes(authorizationLockBytes)) {
|
|
57
|
+
return refuse(AuthorizationLockRefusalCode.BytesMissing, "the authorization lock bytes are missing or empty; they are the file's exact bytes.");
|
|
58
|
+
}
|
|
59
|
+
const expected = verified.resolved.edition.authorizationLockSha256;
|
|
60
|
+
const digest = await (0, content_address_1.sha256Hex)(authorizationLockBytes);
|
|
61
|
+
if (digest !== expected) {
|
|
62
|
+
return refuse(AuthorizationLockRefusalCode.DigestMismatch, `the authorization lock bytes hash to ${digest}, but the resolved deployment pins ${expected}; it is not this edition's authorization lock.`);
|
|
63
|
+
}
|
|
64
|
+
let authorizationLock;
|
|
65
|
+
try {
|
|
66
|
+
authorizationLock = (0, authorization_lock_1.parseAuthorizationLockReadView)(decodeJson(authorizationLockBytes));
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
return refuse(AuthorizationLockRefusalCode.Unparseable, `the authorization lock bytes are not a readable authorization lock: ${error.message}`);
|
|
70
|
+
}
|
|
71
|
+
if (authorizationLock.distributionId !== verified.lock.distributionId) {
|
|
72
|
+
return refuse(AuthorizationLockRefusalCode.DistributionMismatch, `the authorization lock is for distribution "${authorizationLock.distributionId}", but the verified edition lock is for "${verified.lock.distributionId}".`);
|
|
73
|
+
}
|
|
74
|
+
return { ok: true, authorizationLock };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=verify-delivered-locks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-delivered-locks.js","sourceRoot":"","sources":["../../../src/distribution/lib/verify-delivered-locks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import type { VerifiedEditionResolution } from "./verified-resolved-deployment";
|
|
1
|
+
import type { VerifiedEditionResolution, VerifiedUnsplitEditionResolution } from "./verified-resolved-deployment";
|
|
2
|
+
export declare enum ResolvedDeploymentAcceptance {
|
|
3
|
+
Engine = "engine",
|
|
4
|
+
Unsplit = "unsplit"
|
|
5
|
+
}
|
|
6
|
+
export interface VerifyResolvedDeploymentOptions<A extends ResolvedDeploymentAcceptance = ResolvedDeploymentAcceptance> {
|
|
7
|
+
readonly accept?: A;
|
|
8
|
+
}
|
|
2
9
|
export declare enum ResolvedDeploymentRefusalCode {
|
|
3
10
|
MalformedArtifact = "malformed-artifact",
|
|
11
|
+
UnsplitNotAccepted = "unsplit-not-accepted",
|
|
12
|
+
EngineNotAccepted = "engine-not-accepted",
|
|
4
13
|
LockDigestMismatch = "lock-digest-mismatch",
|
|
5
14
|
MalformedLock = "malformed-lock",
|
|
15
|
+
EditionIdMismatch = "edition-id-mismatch",
|
|
6
16
|
BiomeMissing = "biome-missing",
|
|
7
17
|
BiomeNotInLock = "biome-not-in-lock",
|
|
8
18
|
TrustCeilingMismatch = "trust-ceiling-mismatch",
|
|
@@ -14,12 +24,22 @@ export interface ResolvedDeploymentRefusal {
|
|
|
14
24
|
readonly serviceAccount?: string;
|
|
15
25
|
readonly message: string;
|
|
16
26
|
}
|
|
17
|
-
export
|
|
18
|
-
readonly ok: true;
|
|
19
|
-
} & VerifiedEditionResolution) | {
|
|
27
|
+
export interface ResolvedDeploymentRefused {
|
|
20
28
|
readonly ok: false;
|
|
21
29
|
readonly refusals: readonly ResolvedDeploymentRefusal[];
|
|
22
|
-
}
|
|
23
|
-
export
|
|
24
|
-
|
|
30
|
+
}
|
|
31
|
+
export type ResolvedDeploymentVerification = ({
|
|
32
|
+
readonly ok: true;
|
|
33
|
+
} & VerifiedEditionResolution) | ResolvedDeploymentRefused;
|
|
34
|
+
export type UnsplitResolvedDeploymentVerification = ({
|
|
35
|
+
readonly ok: true;
|
|
36
|
+
} & VerifiedUnsplitEditionResolution) | ResolvedDeploymentRefused;
|
|
37
|
+
export declare function verifyResolvedDeployment(resolved: unknown, lockBytes: Uint8Array, options?: VerifyResolvedDeploymentOptions<ResolvedDeploymentAcceptance.Engine>): Promise<ResolvedDeploymentVerification>;
|
|
38
|
+
export declare function verifyResolvedDeployment(resolved: unknown, lockBytes: Uint8Array, options: {
|
|
39
|
+
readonly accept: ResolvedDeploymentAcceptance.Unsplit;
|
|
40
|
+
}): Promise<UnsplitResolvedDeploymentVerification>;
|
|
41
|
+
export declare function assertResolvedDeployment(resolved: unknown, lockBytes: Uint8Array, options?: VerifyResolvedDeploymentOptions<ResolvedDeploymentAcceptance.Engine>): Promise<VerifiedEditionResolution>;
|
|
42
|
+
export declare function assertResolvedDeployment(resolved: unknown, lockBytes: Uint8Array, options: {
|
|
43
|
+
readonly accept: ResolvedDeploymentAcceptance.Unsplit;
|
|
44
|
+
}): Promise<VerifiedUnsplitEditionResolution>;
|
|
25
45
|
//# sourceMappingURL=verify-resolved-deployment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-resolved-deployment.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/verify-resolved-deployment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-resolved-deployment.d.ts","sourceRoot":"","sources":["../../../src/distribution/lib/verify-resolved-deployment.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,yBAAyB,EAEzB,gCAAgC,EAEjC,MAAM,gCAAgC,CAAC;AAsCxC,oBAAY,4BAA4B;IAEtC,MAAM,WAAW;IAEjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,+BAA+B,CAC9C,CAAC,SAAS,4BAA4B,GAAG,4BAA4B;IAGrE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CACrB;AAGD,oBAAY,6BAA6B;IAEvC,iBAAiB,uBAAuB;IAExC,kBAAkB,yBAAyB;IAE3C,iBAAiB,wBAAwB;IAEzC,kBAAkB,yBAAyB;IAE3C,aAAa,mBAAmB;IAKhC,iBAAiB,wBAAwB;IAEzC,YAAY,kBAAkB;IAE9B,cAAc,sBAAsB;IAEpC,oBAAoB,2BAA2B;IAE/C,gBAAgB,sBAAsB;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAE7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACzD;AAED,MAAM,MAAM,8BAA8B,GACtC,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,yBAAyB,CAAC,GACnD,yBAAyB,CAAC;AAE9B,MAAM,MAAM,qCAAqC,GAC7C,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,gCAAgC,CAAC,GAC1D,yBAAyB,CAAC;AA6C9B,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,+BAA+B,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAC7E,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAC3C,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC;CACvD,GACA,OAAO,CAAC,qCAAqC,CAAC,CAAC;AA2IlD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,+BAA+B,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAC7E,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACtC,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC;CACvD,GACA,OAAO,CAAC,gCAAgC,CAAC,CAAC"}
|
|
@@ -1,23 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResolvedDeploymentRefusalCode = void 0;
|
|
3
|
+
exports.ResolvedDeploymentRefusalCode = exports.ResolvedDeploymentAcceptance = void 0;
|
|
4
4
|
exports.verifyResolvedDeployment = verifyResolvedDeployment;
|
|
5
5
|
exports.assertResolvedDeployment = assertResolvedDeployment;
|
|
6
6
|
const content_address_1 = require("../../content-address");
|
|
7
7
|
const deployment_1 = require("../../deployment");
|
|
8
8
|
const process_topology_1 = require("../../process-topology");
|
|
9
9
|
const distribution_lock_1 = require("./distribution-lock");
|
|
10
|
+
var ResolvedDeploymentAcceptance;
|
|
11
|
+
(function (ResolvedDeploymentAcceptance) {
|
|
12
|
+
ResolvedDeploymentAcceptance["Engine"] = "engine";
|
|
13
|
+
ResolvedDeploymentAcceptance["Unsplit"] = "unsplit";
|
|
14
|
+
})(ResolvedDeploymentAcceptance || (exports.ResolvedDeploymentAcceptance = ResolvedDeploymentAcceptance = {}));
|
|
10
15
|
var ResolvedDeploymentRefusalCode;
|
|
11
16
|
(function (ResolvedDeploymentRefusalCode) {
|
|
12
17
|
ResolvedDeploymentRefusalCode["MalformedArtifact"] = "malformed-artifact";
|
|
18
|
+
ResolvedDeploymentRefusalCode["UnsplitNotAccepted"] = "unsplit-not-accepted";
|
|
19
|
+
ResolvedDeploymentRefusalCode["EngineNotAccepted"] = "engine-not-accepted";
|
|
13
20
|
ResolvedDeploymentRefusalCode["LockDigestMismatch"] = "lock-digest-mismatch";
|
|
14
21
|
ResolvedDeploymentRefusalCode["MalformedLock"] = "malformed-lock";
|
|
22
|
+
ResolvedDeploymentRefusalCode["EditionIdMismatch"] = "edition-id-mismatch";
|
|
15
23
|
ResolvedDeploymentRefusalCode["BiomeMissing"] = "biome-missing";
|
|
16
24
|
ResolvedDeploymentRefusalCode["BiomeNotInLock"] = "biome-not-in-lock";
|
|
17
25
|
ResolvedDeploymentRefusalCode["TrustCeilingMismatch"] = "trust-ceiling-mismatch";
|
|
18
26
|
ResolvedDeploymentRefusalCode["UnknownComponent"] = "unknown-component";
|
|
19
27
|
})(ResolvedDeploymentRefusalCode || (exports.ResolvedDeploymentRefusalCode = ResolvedDeploymentRefusalCode = {}));
|
|
20
|
-
|
|
28
|
+
function acceptanceOf(options) {
|
|
29
|
+
if (options === undefined)
|
|
30
|
+
return ResolvedDeploymentAcceptance.Engine;
|
|
31
|
+
if (options === null || typeof options !== "object" || Array.isArray(options)) {
|
|
32
|
+
throw new TypeError("verifyResolvedDeployment: options must be an object `{ accept }` or absent.");
|
|
33
|
+
}
|
|
34
|
+
const unknownKeys = Object.keys(options).filter((key) => key !== "accept");
|
|
35
|
+
if (unknownKeys.length > 0) {
|
|
36
|
+
throw new TypeError(`verifyResolvedDeployment: unknown option(s) ${unknownKeys.map((key) => `"${key}"`).join(", ")}; the only option is "accept".`);
|
|
37
|
+
}
|
|
38
|
+
const accept = options.accept;
|
|
39
|
+
if (accept === undefined)
|
|
40
|
+
return ResolvedDeploymentAcceptance.Engine;
|
|
41
|
+
if (accept !== ResolvedDeploymentAcceptance.Engine &&
|
|
42
|
+
accept !== ResolvedDeploymentAcceptance.Unsplit) {
|
|
43
|
+
throw new TypeError(`verifyResolvedDeployment: accept must be "${ResolvedDeploymentAcceptance.Engine}" or ` +
|
|
44
|
+
`"${ResolvedDeploymentAcceptance.Unsplit}", got ${JSON.stringify(accept) ?? String(accept)}.`);
|
|
45
|
+
}
|
|
46
|
+
return accept;
|
|
47
|
+
}
|
|
48
|
+
async function verifyResolvedDeployment(resolved, lockBytes, options) {
|
|
49
|
+
const accept = acceptanceOf(options);
|
|
21
50
|
const parsed = deployment_1.ResolvedDeploymentSchema.safeParse(resolved);
|
|
22
51
|
if (!parsed.success) {
|
|
23
52
|
return refuse({
|
|
@@ -29,6 +58,20 @@ async function verifyResolvedDeployment(resolved, lockBytes) {
|
|
|
29
58
|
});
|
|
30
59
|
}
|
|
31
60
|
const artifact = parsed.data;
|
|
61
|
+
const unsplit = (0, deployment_1.isUnsplitResolvedDeployment)(artifact);
|
|
62
|
+
if (unsplit && accept !== ResolvedDeploymentAcceptance.Unsplit) {
|
|
63
|
+
return refuse({
|
|
64
|
+
code: ResolvedDeploymentRefusalCode.UnsplitNotAccepted,
|
|
65
|
+
message: `the resolved deployment is the unsplit variant (no engine, no chart, no ServiceAccount), ` +
|
|
66
|
+
`and this caller accepts only an engine deployment.`,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (!unsplit && accept !== ResolvedDeploymentAcceptance.Engine) {
|
|
70
|
+
return refuse({
|
|
71
|
+
code: ResolvedDeploymentRefusalCode.EngineNotAccepted,
|
|
72
|
+
message: `the resolved deployment is an engine deployment, and this caller accepts only the unsplit variant.`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
32
75
|
const digest = await (0, content_address_1.sha256Hex)(lockBytes);
|
|
33
76
|
if (digest !== artifact.edition.lockSha256) {
|
|
34
77
|
return refuse({
|
|
@@ -47,6 +90,13 @@ async function verifyResolvedDeployment(resolved, lockBytes) {
|
|
|
47
90
|
message: `the lock bytes are not a readable distribution lock: ${error.message}`,
|
|
48
91
|
});
|
|
49
92
|
}
|
|
93
|
+
if (artifact.edition.id !== lock.distributionId) {
|
|
94
|
+
return refuse({
|
|
95
|
+
code: ResolvedDeploymentRefusalCode.EditionIdMismatch,
|
|
96
|
+
message: `the resolved deployment names edition "${artifact.edition.id}", but the lock's ` +
|
|
97
|
+
`distributionId is "${lock.distributionId}"; an edition's id is its lock's distributionId.`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
50
100
|
const refusals = [];
|
|
51
101
|
const lockBiomes = new Map(lock.biomes.map((biome) => [biome.id, biome]));
|
|
52
102
|
const placed = new Set(artifact.biomes.map((biome) => biome.id));
|
|
@@ -96,14 +146,21 @@ async function verifyResolvedDeployment(resolved, lockBytes) {
|
|
|
96
146
|
}
|
|
97
147
|
if (refusals.length > 0)
|
|
98
148
|
return { ok: false, refusals };
|
|
149
|
+
if (unsplit) {
|
|
150
|
+
return {
|
|
151
|
+
ok: true,
|
|
152
|
+
resolved: artifact,
|
|
153
|
+
lock,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
99
156
|
return {
|
|
100
157
|
ok: true,
|
|
101
158
|
resolved: artifact,
|
|
102
159
|
lock,
|
|
103
160
|
};
|
|
104
161
|
}
|
|
105
|
-
async function assertResolvedDeployment(resolved, lockBytes) {
|
|
106
|
-
const verification = await verifyResolvedDeployment(resolved, lockBytes);
|
|
162
|
+
async function assertResolvedDeployment(resolved, lockBytes, options) {
|
|
163
|
+
const verification = await verifyResolvedDeployment(resolved, lockBytes, options);
|
|
107
164
|
if (!verification.ok) {
|
|
108
165
|
throw new Error(`resolved deployment is refused:\n` +
|
|
109
166
|
verification.refusals
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-resolved-deployment.js","sourceRoot":"","sources":["../../../src/distribution/lib/verify-resolved-deployment.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"verify-resolved-deployment.js","sourceRoot":"","sources":["../../../src/distribution/lib/verify-resolved-deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DistributionLock } from '../lib/distribution-lock';
|
|
2
|
+
import { DistributionImagesPredicateRefusal, ImageDeliveryEntitlementRefusal, type DistributionImagesPredicate, type ImageDeliveryEntitlementPredicate } from '../lib/image-producer-evidence';
|
|
3
|
+
import { type BiomeSourceManifestHash } from '../lib/kernel-contract-authority';
|
|
4
|
+
export declare function computeBiomeSourceManifestHashSync(rawManifest: unknown): BiomeSourceManifestHash;
|
|
5
|
+
export declare function distributionLockDigest(lock: DistributionLock): string;
|
|
6
|
+
export declare function distributionImagesPredicateLockRefusal(predicate: DistributionImagesPredicate, lock: DistributionLock): DistributionImagesPredicateRefusal | undefined;
|
|
7
|
+
export declare function imageDeliveryEntitlementRefusal(predicate: ImageDeliveryEntitlementPredicate, lock: DistributionLock): ImageDeliveryEntitlementRefusal | undefined;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/distribution/server/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACvC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAO1C,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,OAAO,GACnB,uBAAuB,CAMzB;AAkBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGrE;AAQD,wBAAgB,sCAAsC,CACpD,SAAS,EAAE,2BAA2B,EACtC,IAAI,EAAE,gBAAgB,GACrB,kCAAkC,GAAG,SAAS,CAIhD;AAgBD,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,iCAAiC,EAC5C,IAAI,EAAE,gBAAgB,GACrB,+BAA+B,GAAG,SAAS,CAQ7C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeBiomeSourceManifestHashSync = computeBiomeSourceManifestHashSync;
|
|
4
|
+
exports.distributionLockDigest = distributionLockDigest;
|
|
5
|
+
exports.distributionImagesPredicateLockRefusal = distributionImagesPredicateLockRefusal;
|
|
6
|
+
exports.imageDeliveryEntitlementRefusal = imageDeliveryEntitlementRefusal;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const server_1 = require("../../content-address/server");
|
|
9
|
+
const image_producer_evidence_1 = require("../lib/image-producer-evidence");
|
|
10
|
+
const kernel_contract_authority_1 = require("../lib/kernel-contract-authority");
|
|
11
|
+
function computeBiomeSourceManifestHashSync(rawManifest) {
|
|
12
|
+
return (0, kernel_contract_authority_1.parseBiomeSourceManifestHash)((0, node_crypto_1.createHash)('sha256')
|
|
13
|
+
.update((0, kernel_contract_authority_1.biomeSourceManifestHashPreimage)(rawManifest))
|
|
14
|
+
.digest('hex'));
|
|
15
|
+
}
|
|
16
|
+
function distributionLockDigest(lock) {
|
|
17
|
+
const { resolvedAt: _resolvedAt, ...rest } = lock;
|
|
18
|
+
return (0, server_1.canonicalJsonSha256)(rest);
|
|
19
|
+
}
|
|
20
|
+
function distributionImagesPredicateLockRefusal(predicate, lock) {
|
|
21
|
+
return predicate.lockDigest === distributionLockDigest(lock)
|
|
22
|
+
? undefined
|
|
23
|
+
: image_producer_evidence_1.DistributionImagesPredicateRefusal.LockDigestMismatch;
|
|
24
|
+
}
|
|
25
|
+
function imageDeliveryEntitlementRefusal(predicate, lock) {
|
|
26
|
+
if (predicate.lockDigest !== distributionLockDigest(lock)) {
|
|
27
|
+
return image_producer_evidence_1.ImageDeliveryEntitlementRefusal.LockDigestMismatch;
|
|
28
|
+
}
|
|
29
|
+
const lockCatalogue = lock.catalogueDigest ?? null;
|
|
30
|
+
return predicate.catalogueDigest === lockCatalogue
|
|
31
|
+
? undefined
|
|
32
|
+
: image_producer_evidence_1.ImageDeliveryEntitlementRefusal.CatalogueDigestMismatch;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/distribution/server/index.ts"],"names":[],"mappings":";;AAiCA,gFAQC;AAkBD,wDAGC;AAQD,wFAOC;AAgBD,0EAWC;AA5FD,6CAAyC;AAEzC,yDAAmE;AAEnE,4EAKwC;AACxC,gFAI0C;AAO1C,SAAgB,kCAAkC,CAChD,WAAoB;IAEpB,OAAO,IAAA,wDAA4B,EACjC,IAAA,wBAAU,EAAC,QAAQ,CAAC;SACjB,MAAM,CAAC,IAAA,2DAA+B,EAAC,WAAW,CAAC,CAAC;SACpD,MAAM,CAAC,KAAK,CAAC,CACjB,CAAC;AACJ,CAAC;AAkBD,SAAgB,sBAAsB,CAAC,IAAsB;IAC3D,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,IAAA,4BAAmB,EAAC,IAAa,CAAC,CAAC;AAC5C,CAAC;AAQD,SAAgB,sCAAsC,CACpD,SAAsC,EACtC,IAAsB;IAEtB,OAAO,SAAS,CAAC,UAAU,KAAK,sBAAsB,CAAC,IAAI,CAAC;QAC1D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,4DAAkC,CAAC,kBAAkB,CAAC;AAC5D,CAAC;AAgBD,SAAgB,+BAA+B,CAC7C,SAA4C,EAC5C,IAAsB;IAEtB,IAAI,SAAS,CAAC,UAAU,KAAK,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,yDAA+B,CAAC,kBAAkB,CAAC;IAC5D,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACnD,OAAO,SAAS,CAAC,eAAe,KAAK,aAAa;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,yDAA+B,CAAC,uBAAuB,CAAC;AAC9D,CAAC"}
|