@kungfu-tech/buildchain 4.0.1-alpha.5 → 4.0.1-alpha.8
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/actions/release-tail/README.md +8 -0
- package/architecture/ci-lane-change-budget.json +187 -0
- package/architecture/internal-capabilities.json +65 -5
- package/architecture/maintainability-policy.json +27 -21
- package/architecture/release-tail-contract-inventory.json +5 -2
- package/architecture/v4-adopter-delivery-parity.json +32 -5
- package/architecture/v4-floating-consumer-policy.json +6 -0
- package/architecture/v4-publication-rehearsal-parity.json +84 -0
- package/bin/buildchain.mjs +7 -1
- package/bin/internal/adopter-delivery-cli.mjs +70 -0
- package/bin/internal/command-registry.mjs +1 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
- package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
- package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
- package/contracts/v4-floating-consumer-policy-receipt-v1.schema.json +4 -2
- package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
- package/dist/site/agent-index.json +3 -0
- package/dist/site/artifact-schemas.json +6 -0
- package/dist/site/buildchain-contract.json +14 -14
- package/dist/site/buildchain-site.json +231 -24
- package/dist/site/capability-registry.json +11 -10
- package/dist/site/cli-registry.json +53 -1
- package/dist/site/kfd-claims.json +279 -14
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +20 -5
- package/dist/site/node-api-registry.json +11569 -9299
- package/dist/site/page-registry.json +214 -15
- package/dist/site/public-surface-audit.json +206 -11
- package/dist/site/publication-authority-registry.json +39 -8
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +15 -0
- package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
- package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
- package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
- package/dist/site/site-manifest.json +17 -9
- package/dist/site/workflow-registry.json +110 -8
- package/docs/MAP.md +3 -1
- package/docs/cli-reference.md +68 -0
- package/docs/cli.md +8 -0
- package/docs/dev-delivery-warrant.md +22 -1
- package/docs/node-api-reference.md +332 -172
- package/docs/release-tail-provider-plane.md +30 -0
- package/docs/v4-adopter-delivery.md +133 -0
- package/docs/v4-publication-rehearsal.md +130 -0
- package/package.json +18 -3
- package/packages/core/adopter-delivery-passport.js +259 -0
- package/packages/core/adopter-delivery-vectors.js +158 -0
- package/packages/core/adopter-delivery-vectors.json +77 -0
- package/packages/core/buildchain-agent-manuals.js +1 -0
- package/packages/core/buildchain-config.js +84 -0
- package/packages/core/buildchain-delivery-bootstrap.js +240 -0
- package/packages/core/buildchain-delivery-infrastructure.js +164 -0
- package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
- package/packages/core/buildchain-publication-authority.js +1 -0
- package/packages/core/ci-lane-change-budget.js +247 -0
- package/packages/core/dev-delivery-native-proof.js +43 -27
- package/packages/core/dev-delivery-warrant-state.js +31 -8
- package/packages/core/dev-delivery-warrant.js +8 -3
- package/packages/core/github-governance-authority.js +1 -0
- package/packages/core/index.js +5 -0
- package/packages/core/legacy-kfd-adopter-driver.js +167 -0
- package/packages/core/published-delivery-authority.js +266 -0
- package/packages/core/release-candidate-recovery.js +66 -11
- package/packages/core/release-candidate.js +2 -2
- package/packages/core/release-passport.js +36 -9
- package/packages/core/v4-adopter-delivery-parity.js +3 -3
- package/packages/core/v4-adopter-delivery.js +359 -0
- package/packages/core/v4-delivery-warrant-read-candidate.js +10 -3
- package/packages/core/v4-floating-consumer-evidence.js +18 -4
- package/packages/core/v4-floating-consumer-policy.js +138 -35
- package/packages/core/v4-floating-consumer-release-passport.js +30 -3
- package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
- package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
- package/packages/core/v4-publication-rehearsal.js +481 -0
- package/packages/core/workflow-yaml-contract.js +24 -2
- package/scripts/buildchain-cli-help.mjs +10 -0
- package/scripts/check-ci-lane-change-budget.mjs +100 -0
- package/scripts/check-inventory.mjs +3 -3
- package/scripts/check-v4-floating-consumer-policy-contract.mjs +23 -4
- package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
- package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
- package/scripts/dev-delivery-warrant-store.mjs +10 -6
- package/scripts/dev-delivery-warrant.mjs +5 -1
- package/scripts/dev-pr-delivery-warrant.mjs +1 -0
- package/scripts/dev-qualification-patrol.mjs +9 -9
- package/scripts/generate-channel-promotion-workflow.mjs +2 -2
- package/scripts/generate-release-candidate-passport.mjs +152 -0
- package/scripts/generate-site-bundle.mjs +30 -0
- package/scripts/promotion-channel-router.mjs +4 -4
- package/scripts/release-candidate-anchor-provenance.mjs +99 -0
- package/scripts/release-tail.mjs +51 -3
- package/scripts/resume-from-candidate-run.mjs +556 -29
- package/scripts/site-capability-metadata.mjs +17 -0
- package/scripts/v4-consumer-policy.mjs +4 -0
- package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "buildchain.v4.publication-rehearsal-parity/v1",
|
|
3
|
+
"source": {
|
|
4
|
+
"branch": "dev/v3/v3.0",
|
|
5
|
+
"commit": "6b96bdad8d9f8ccf9275f27d9370a226a9c78465",
|
|
6
|
+
"runtime": "packages/core/publication-rehearsal-runtime.js"
|
|
7
|
+
},
|
|
8
|
+
"target": {
|
|
9
|
+
"branch": "dev/v4/v4.0",
|
|
10
|
+
"commit": "bc12cd0ff18a7e1d918777ea093c169349952d34",
|
|
11
|
+
"capsuleContract": "packages/core/v4-publication-rehearsal-capsule.js",
|
|
12
|
+
"runtime": "packages/core/v4-publication-rehearsal.js",
|
|
13
|
+
"providerBindings": "packages/core/v4-publication-rehearsal-provider-bindings.js"
|
|
14
|
+
},
|
|
15
|
+
"sharedProductionCore": {
|
|
16
|
+
"planner": "compileReleaseTailDeclaration",
|
|
17
|
+
"initializer": "createReleaseTailTransaction",
|
|
18
|
+
"executor": "executeReleaseTailTransaction",
|
|
19
|
+
"version": "buildchain.release-tail/v1"
|
|
20
|
+
},
|
|
21
|
+
"stageCapsuleBoundary": {
|
|
22
|
+
"contract": "buildchain-v4-stage-capsule/v1",
|
|
23
|
+
"purpose": "pure platform-stage build checkpoint reuse",
|
|
24
|
+
"publicationEffects": false,
|
|
25
|
+
"publicationAuthority": false
|
|
26
|
+
},
|
|
27
|
+
"matrix": [
|
|
28
|
+
{
|
|
29
|
+
"invariant": "capsule-purpose",
|
|
30
|
+
"v3": "publication rehearsal",
|
|
31
|
+
"v4": "publication rehearsal distinct from Stage Capsule",
|
|
32
|
+
"parity": "safety-strengthened"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"invariant": "content-addressed-inputs",
|
|
36
|
+
"v3": "capsule, declaration, transaction, files, data-only provider bindings, policy and observations",
|
|
37
|
+
"v4": "capsule, source, candidate, manifest, config, provider bindings, provider policy, expected observations and core version",
|
|
38
|
+
"parity": "safety-strengthened"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"invariant": "provider-request-binding",
|
|
42
|
+
"v3": "provider binding payload is capsule-rooted and every input path is in files",
|
|
43
|
+
"v4": "providerBindingsRoot covers canonical bindings and every request byte is inventory-rooted before adapters",
|
|
44
|
+
"parity": "exact"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"invariant": "shared-release-tail-core",
|
|
48
|
+
"v3": "shared planner and executor",
|
|
49
|
+
"v4": "same production planner, initializer and executor",
|
|
50
|
+
"parity": "exact"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"invariant": "effect-default",
|
|
54
|
+
"v3": "simulate and replay local defaults",
|
|
55
|
+
"v4": "provider policy is rooted and effect-disabled by default",
|
|
56
|
+
"parity": "safety-strengthened"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"invariant": "authorized-provider-rehearsal",
|
|
60
|
+
"v3": "provider observations are recorded without authority",
|
|
61
|
+
"v4": "exact capsule-bound rehearsal-only authority plus request and readback transcript",
|
|
62
|
+
"parity": "safety-strengthened"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"invariant": "release-authority",
|
|
66
|
+
"v3": "externalPublicationClaimed false",
|
|
67
|
+
"v4": "productionAuthority false and releasePassport null",
|
|
68
|
+
"parity": "exact"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"invariant": "tamper-response",
|
|
72
|
+
"v3": "capsule and file mismatch fail closed",
|
|
73
|
+
"v4": "every named identity root and core version mismatch fails closed",
|
|
74
|
+
"parity": "safety-strengthened"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"invariant": "portability",
|
|
78
|
+
"v3": "platform-independent local capsule root",
|
|
79
|
+
"v4": "byte-identical offline linux, macos and windows vector",
|
|
80
|
+
"parity": "exact"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"matrixRoot": "sha256:521694ce2cc1d5b383eaa6b84f1b6926ef8ce8f33085e02507e611e9f9b6e784"
|
|
84
|
+
}
|
package/bin/buildchain.mjs
CHANGED
|
@@ -111,6 +111,7 @@ import {
|
|
|
111
111
|
} from "./internal/trust-release-cli.mjs";
|
|
112
112
|
import { dispatchRegisteredCommand } from "./internal/command-registry.mjs";
|
|
113
113
|
import { runCompatibilityFactsCli } from "./internal/compatibility-facts-cli.mjs";
|
|
114
|
+
import { runAdopterDeliveryCli } from "./internal/adopter-delivery-cli.mjs";
|
|
114
115
|
|
|
115
116
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
116
117
|
const embeddedPackageVersion = process.env.BUILDCHAIN_EMBEDDED_PACKAGE_VERSION || "";
|
|
@@ -1675,7 +1676,7 @@ async function handleReleaseGovernanceCommand(args) {
|
|
|
1675
1676
|
}
|
|
1676
1677
|
|
|
1677
1678
|
async function handleReleaseTailCommand(args) {
|
|
1678
|
-
runReleaseTailCli(args);
|
|
1679
|
+
await runReleaseTailCli(args);
|
|
1679
1680
|
}
|
|
1680
1681
|
|
|
1681
1682
|
async function handleTailResealCommand(args) {
|
|
@@ -1750,6 +1751,10 @@ async function handleArchitectureCommand(args) {
|
|
|
1750
1751
|
runScript("v4-architecture.mjs", args);
|
|
1751
1752
|
}
|
|
1752
1753
|
|
|
1754
|
+
async function handleAdopterDeliveryCommand(args) {
|
|
1755
|
+
await runAdopterDeliveryCli(args);
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1753
1758
|
const BUILDCHAIN_COMMAND_HANDLERS = Object.freeze({
|
|
1754
1759
|
"help": handleHelpCommand,
|
|
1755
1760
|
"version": handleVersionCommand,
|
|
@@ -1790,6 +1795,7 @@ const BUILDCHAIN_COMMAND_HANDLERS = Object.freeze({
|
|
|
1790
1795
|
"build-contract": handleBuildContractCommand,
|
|
1791
1796
|
"publish-source": handlePublishSourceCommand,
|
|
1792
1797
|
"architecture": handleArchitectureCommand,
|
|
1798
|
+
"adopter-delivery": handleAdopterDeliveryCommand,
|
|
1793
1799
|
});
|
|
1794
1800
|
|
|
1795
1801
|
async function main(argv = process.argv.slice(2)) {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadV4PublishedAdopterDeliveryAuthority,
|
|
3
|
+
qualifyV4AdopterDeliveryBootstrap,
|
|
4
|
+
runV4AdopterDeliveryGate,
|
|
5
|
+
verifyV4AdopterDeliveryReadback,
|
|
6
|
+
} from "../../packages/core/v4-adopter-delivery.js";
|
|
7
|
+
import {
|
|
8
|
+
printJson,
|
|
9
|
+
readFlag,
|
|
10
|
+
readJsonInput,
|
|
11
|
+
writeJsonFile,
|
|
12
|
+
} from "./cli-options.mjs";
|
|
13
|
+
|
|
14
|
+
function emit(args, value) {
|
|
15
|
+
writeJsonFile(readFlag(args, "output", ""), value);
|
|
16
|
+
printJson(value);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function runAdopterDeliveryCli(args = []) {
|
|
20
|
+
const [subcommand = "", ...commandArgs] = args;
|
|
21
|
+
if (subcommand === "run") {
|
|
22
|
+
const input = readJsonInput(readFlag(commandArgs, "input", ""), {
|
|
23
|
+
label: "adopter delivery input",
|
|
24
|
+
});
|
|
25
|
+
emit(commandArgs, runV4AdopterDeliveryGate(input));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (subcommand === "verify") {
|
|
29
|
+
const input = readJsonInput(readFlag(commandArgs, "input", ""), {
|
|
30
|
+
label: "adopter delivery input",
|
|
31
|
+
});
|
|
32
|
+
const readback = readJsonInput(readFlag(commandArgs, "readback", ""), {
|
|
33
|
+
label: "adopter delivery readback",
|
|
34
|
+
});
|
|
35
|
+
emit(commandArgs, verifyV4AdopterDeliveryReadback({ input, readback }));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (subcommand === "bootstrap") {
|
|
39
|
+
const request = readJsonInput(readFlag(commandArgs, "input", ""), {
|
|
40
|
+
label: "adopter delivery bootstrap input",
|
|
41
|
+
});
|
|
42
|
+
emit(commandArgs, qualifyV4AdopterDeliveryBootstrap(request));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (subcommand === "archive") {
|
|
46
|
+
const request = readJsonInput(readFlag(commandArgs, "input", ""), {
|
|
47
|
+
label: "published archive input",
|
|
48
|
+
});
|
|
49
|
+
const authority = await loadV4PublishedAdopterDeliveryAuthority(request);
|
|
50
|
+
try {
|
|
51
|
+
emit(commandArgs, {
|
|
52
|
+
schemaVersion: authority.schemaVersion,
|
|
53
|
+
contract: authority.contract,
|
|
54
|
+
packages: authority.packages,
|
|
55
|
+
moduleCoordinates: authority.moduleCoordinates,
|
|
56
|
+
authorityRoot: authority.authorityRoot,
|
|
57
|
+
qualifying: authority.qualifying,
|
|
58
|
+
selfCertified: authority.selfCertified,
|
|
59
|
+
releaseAuthorized: authority.releaseAuthorized,
|
|
60
|
+
finalAuthority: authority.finalAuthority,
|
|
61
|
+
});
|
|
62
|
+
} finally {
|
|
63
|
+
await authority.dispose();
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
throw new Error(
|
|
68
|
+
"usage: buildchain adopter-delivery <run|verify|bootstrap|archive> --input <json-or-path> [--readback <json-or-path>] [--output <path>]",
|
|
69
|
+
);
|
|
70
|
+
}
|
|
@@ -41,6 +41,7 @@ const BUILDCHAIN_COMMAND_REGISTRY = Object.freeze([
|
|
|
41
41
|
{ id: "build-contract", aliases: [] },
|
|
42
42
|
{ id: "publish-source", aliases: [] },
|
|
43
43
|
{ id: "architecture", aliases: [] },
|
|
44
|
+
{ id: "adopter-delivery", aliases: [] },
|
|
44
45
|
]);
|
|
45
46
|
|
|
46
47
|
function buildCommandLookup(registry = BUILDCHAIN_COMMAND_REGISTRY) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"packages": {
|
|
3
|
+
"buildchain": {
|
|
4
|
+
"name": "@kungfu-tech/buildchain",
|
|
5
|
+
"version": "3.0.9-alpha.16",
|
|
6
|
+
"archivePath": ".buildchain/adopter-delivery-archives/kungfu-tech-buildchain-3.0.9-alpha.16.tgz",
|
|
7
|
+
"archiveRoot": "sha256:3f425e2c77d11f0bee8eb9aa2448566bca7a9d14672a7e528ced3e505b3f14a3",
|
|
8
|
+
"artifactRoot": "sha256:3f425e2c77d11f0bee8eb9aa2448566bca7a9d14672a7e528ced3e505b3f14a3"
|
|
9
|
+
},
|
|
10
|
+
"kfd": {
|
|
11
|
+
"name": "@kungfu-tech/kfd",
|
|
12
|
+
"version": "1.0.0-alpha.65",
|
|
13
|
+
"archivePath": ".buildchain/adopter-delivery-archives/kungfu-tech-kfd-1.0.0-alpha.65.tgz",
|
|
14
|
+
"archiveRoot": "sha256:c4dbd3f954910236d7f0823ea6887f4151e43b871df526ccdd599123421bced2",
|
|
15
|
+
"artifactRoot": "sha256:c0781bcaf191a58561ae32ee2fbedabbb48ed50b5725c356fbd83704089637f8"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"expectedAuthorityRoot": "sha256:9ba0cc6042b189ce749d01003617b57bcd03ea6ecf40e96d19e8ecbbfa347134"
|
|
19
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"authority": {
|
|
4
|
+
"version": "3.0.9-alpha.16",
|
|
5
|
+
"sourceCommit": "6b96bdad8d9f8ccf9275f27d9370a226a9c78465",
|
|
6
|
+
"packageRoot": "sha256:3f425e2c77d11f0bee8eb9aa2448566bca7a9d14672a7e528ced3e505b3f14a3",
|
|
7
|
+
"gateRoot": "sha256:cdcb54ea103fe62a94e2f0755fab5b105802f32e569f47e77d7a1f3ff0636cfc",
|
|
8
|
+
"protocol": {
|
|
9
|
+
"id": "buildchain.adopter/json-assertion",
|
|
10
|
+
"version": "1.0.0",
|
|
11
|
+
"root": "sha256:bcc9fc43402c50e11c68dfec5bba63ecc5b10f2f304921dec2ba95b44c43ad13"
|
|
12
|
+
},
|
|
13
|
+
"profile": {
|
|
14
|
+
"id": "buildchain.adopter/delivery-infrastructure",
|
|
15
|
+
"version": "1.0.0",
|
|
16
|
+
"root": "sha256:94dc2f34f76be8f4627fb84b753ad855492555111b37cbf3edcee68e2f30e126"
|
|
17
|
+
},
|
|
18
|
+
"protected": true,
|
|
19
|
+
"published": true
|
|
20
|
+
},
|
|
21
|
+
"candidate": {
|
|
22
|
+
"version": "4.0.1-alpha.4",
|
|
23
|
+
"sourceCommit": "e0342713c7447960c13bd73377282b2e93f4853d",
|
|
24
|
+
"packageRoot": "sha256:ca25e78191aedb60e999a12100b52caa2b075e29a46f0baa91722f018adb6609",
|
|
25
|
+
"gateRoot": "sha256:cdcb54ea103fe62a94e2f0755fab5b105802f32e569f47e77d7a1f3ff0636cfc",
|
|
26
|
+
"protocol": {
|
|
27
|
+
"id": "buildchain.adopter/json-assertion",
|
|
28
|
+
"version": "1.0.0",
|
|
29
|
+
"root": "sha256:bcc9fc43402c50e11c68dfec5bba63ecc5b10f2f304921dec2ba95b44c43ad13"
|
|
30
|
+
},
|
|
31
|
+
"profile": {
|
|
32
|
+
"id": "buildchain.adopter/delivery-infrastructure",
|
|
33
|
+
"version": "1.0.0",
|
|
34
|
+
"root": "sha256:94dc2f34f76be8f4627fb84b753ad855492555111b37cbf3edcee68e2f30e126"
|
|
35
|
+
},
|
|
36
|
+
"authorityVersion": "3.0.9-alpha.16"
|
|
37
|
+
},
|
|
38
|
+
"gateResult": {
|
|
39
|
+
"schemaVersion": 1,
|
|
40
|
+
"contract": "kungfu-buildchain-adopter-delivery-result",
|
|
41
|
+
"status": "passed",
|
|
42
|
+
"qualifying": false,
|
|
43
|
+
"selfCertified": false,
|
|
44
|
+
"project": {
|
|
45
|
+
"instanceId": "kungfu-systems/buildchain@4.0.1-alpha.4",
|
|
46
|
+
"adopterId": "kungfu-systems/buildchain"
|
|
47
|
+
},
|
|
48
|
+
"artifact": {
|
|
49
|
+
"kind": "package",
|
|
50
|
+
"coordinate": "@kungfu-tech/buildchain@4.0.1-alpha.4",
|
|
51
|
+
"root": "sha256:ca25e78191aedb60e999a12100b52caa2b075e29a46f0baa91722f018adb6609"
|
|
52
|
+
},
|
|
53
|
+
"protocol": {
|
|
54
|
+
"id": "buildchain.adopter/json-assertion",
|
|
55
|
+
"version": "1.0.0",
|
|
56
|
+
"loaded": true,
|
|
57
|
+
"reportRoot": "sha256:01b903f7315a51d0d26d8759194a82d7d45d0d05ad10480dbb6ebf7398445d5c"
|
|
58
|
+
},
|
|
59
|
+
"artifactProfile": {
|
|
60
|
+
"id": "buildchain.artifact/package",
|
|
61
|
+
"version": "1.0.0",
|
|
62
|
+
"loaded": true,
|
|
63
|
+
"valid": true
|
|
64
|
+
},
|
|
65
|
+
"semanticReport": {
|
|
66
|
+
"valid": true,
|
|
67
|
+
"qualifying": false,
|
|
68
|
+
"selfCertified": false,
|
|
69
|
+
"releaseAuthorized": false
|
|
70
|
+
},
|
|
71
|
+
"nonClaims": [
|
|
72
|
+
"A passing delivery gate does not grant runtime permission, release authorization, or independent certification.",
|
|
73
|
+
"Protocol semantics remain owned by the selected protocol driver and its published authority."
|
|
74
|
+
],
|
|
75
|
+
"issues": [],
|
|
76
|
+
"gateRoot": "sha256:8f74b438d1b581c02704d3ff677b2be4dcb5a6d0dc4d9435ef42a368ff834ceb"
|
|
77
|
+
},
|
|
78
|
+
"warrant": {
|
|
79
|
+
"outcome": "merged",
|
|
80
|
+
"sourceHead": "e0342713c7447960c13bd73377282b2e93f4853d",
|
|
81
|
+
"sourceProofRoot": "sha256:2aeeaacaa4f2d136155ac2c478a7939772a162c284a3bfd0458dfb00cce872aa",
|
|
82
|
+
"nativeProofRoot": "sha256:d66669fff994b931c9f89f3c313f37ad625f5aae29af0f6528054b8782b607a5",
|
|
83
|
+
"integrationProofRoot": "sha256:e5623b4de65781d68a73401857d000fba970bdad62a94b5cd7b2d39fee176613"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"lineage": {
|
|
87
|
+
"schemaVersion": 1,
|
|
88
|
+
"contract": "kungfu-buildchain-v4-adopter-delivery-bootstrap-lineage/v1",
|
|
89
|
+
"sourceAuthorityCommit": "6b96bdad8d9f8ccf9275f27d9370a226a9c78465",
|
|
90
|
+
"targetBaseCommit": "e0342713c7447960c13bd73377282b2e93f4853d",
|
|
91
|
+
"authorityArchiveRoot": "sha256:3f425e2c77d11f0bee8eb9aa2448566bca7a9d14672a7e528ced3e505b3f14a3"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-v4-adopter-delivery/v1",
|
|
4
|
+
"driverSelector": "json-assertion",
|
|
5
|
+
"artifactProfileSelector": "git-commit",
|
|
6
|
+
"request": {
|
|
7
|
+
"schemaVersion": 1,
|
|
8
|
+
"contract": "kungfu-buildchain-adopter-delivery-request",
|
|
9
|
+
"protocol": {
|
|
10
|
+
"id": "buildchain.adopter/json-assertion",
|
|
11
|
+
"version": "1.0.0"
|
|
12
|
+
},
|
|
13
|
+
"artifactProfile": {
|
|
14
|
+
"id": "buildchain.artifact/git-commit",
|
|
15
|
+
"version": "1.0.0"
|
|
16
|
+
},
|
|
17
|
+
"project": {
|
|
18
|
+
"instanceId": "example.org/adopter@1.0.0",
|
|
19
|
+
"adopterId": "example.org/adopter"
|
|
20
|
+
},
|
|
21
|
+
"artifact": {
|
|
22
|
+
"kind": "git-commit",
|
|
23
|
+
"coordinate": "example.org/adopter@1111111111111111111111111111111111111111",
|
|
24
|
+
"root": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
|
|
25
|
+
},
|
|
26
|
+
"declaration": { "valid": true }
|
|
27
|
+
},
|
|
28
|
+
"context": {}
|
|
29
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-v4-adopter-delivery/v1",
|
|
4
|
+
"driverSelector": "private-buildchain-driver",
|
|
5
|
+
"artifactProfileSelector": "git-commit",
|
|
6
|
+
"request": {
|
|
7
|
+
"schemaVersion": 1,
|
|
8
|
+
"contract": "kungfu-buildchain-adopter-delivery-request",
|
|
9
|
+
"protocol": { "id": "private.buildchain/driver", "version": "1.0.0" },
|
|
10
|
+
"artifactProfile": {
|
|
11
|
+
"id": "buildchain.artifact/git-commit",
|
|
12
|
+
"version": "1.0.0"
|
|
13
|
+
},
|
|
14
|
+
"project": {
|
|
15
|
+
"instanceId": "example.org/adopter@1.0.0",
|
|
16
|
+
"adopterId": "example.org/adopter"
|
|
17
|
+
},
|
|
18
|
+
"artifact": {
|
|
19
|
+
"kind": "git-commit",
|
|
20
|
+
"coordinate": "example.org/adopter@1111111111111111111111111111111111111111",
|
|
21
|
+
"root": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
|
|
22
|
+
},
|
|
23
|
+
"declaration": { "valid": true }
|
|
24
|
+
},
|
|
25
|
+
"context": {}
|
|
26
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-v4-adopter-delivery-offline-vectors/v1",
|
|
4
|
+
"sourceAuthority": {
|
|
5
|
+
"branch": "dev/v3/v3.0",
|
|
6
|
+
"commit": "6b96bdad8d9f8ccf9275f27d9370a226a9c78465",
|
|
7
|
+
"vectorSuiteRoot": "sha256:c978707556406ffda4ef4192032332c01c2da1cebb6ad8c4f0edfc65d5cef0c7"
|
|
8
|
+
},
|
|
9
|
+
"initialTargetBase": "e5611377efc03178f8687d99968cfdfa3ce2825b",
|
|
10
|
+
"targetBase": "e0342713c7447960c13bd73377282b2e93f4853d",
|
|
11
|
+
"cases": [
|
|
12
|
+
{
|
|
13
|
+
"id": "positive-public-driver",
|
|
14
|
+
"class": "positive",
|
|
15
|
+
"expected": "passed"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "positive-n-minus-one-bootstrap",
|
|
19
|
+
"class": "positive",
|
|
20
|
+
"expected": "passed"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "positive-published-archive",
|
|
24
|
+
"class": "positive",
|
|
25
|
+
"expected": "loaded"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "negative-selector",
|
|
29
|
+
"class": "negative",
|
|
30
|
+
"expected": "fail-closed"
|
|
31
|
+
},
|
|
32
|
+
{ "id": "negative-driver", "class": "negative", "expected": "fail-closed" },
|
|
33
|
+
{
|
|
34
|
+
"id": "negative-archive-identity",
|
|
35
|
+
"class": "negative",
|
|
36
|
+
"expected": "fail-closed"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "negative-bootstrap-lineage",
|
|
40
|
+
"class": "negative",
|
|
41
|
+
"expected": "fail-closed"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "negative-protocol-version",
|
|
45
|
+
"class": "negative",
|
|
46
|
+
"expected": "fail-closed"
|
|
47
|
+
},
|
|
48
|
+
{ "id": "tamper-readback", "class": "tamper", "expected": "fail-closed" }
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
portable-publication-product
|
package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schema":"fixture.release-activation/v1","status":"candidate"}
|
package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schema":"fixture.signed-channel/v1","channel":"alpha"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schema":"fixture.qualification/v1","qualified":true}
|
package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schema":"fixture.release-passport/v1","productionAuthority":false}
|