@xemahq/xema 0.59.1 → 0.60.1
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 -2
- package/dist/appliance-owner.d.ts.map +1 -1
- package/dist/appliance-owner.js +6 -6
- package/dist/appliance-owner.js.map +1 -1
- package/dist/assets/appliance-base/authorization.lock.json +5186 -0
- package/dist/assets/appliance-base/distribution.lock.json +760 -279
- package/dist/assets/appliance-base/images.lock.json +576 -513
- package/dist/assets/appliance-lean/authorization.lock.json +4648 -0
- package/dist/assets/appliance-lean/distribution.lock.json +641 -186
- package/dist/assets/appliance-lean/images.lock.json +574 -512
- package/dist/assets/boot-graph.json +33 -14
- package/dist/assets/distribution-assets.manifest.json +23 -20
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/biome-dev.d.ts.map +1 -1
- package/dist/commands/biome-dev.js +41 -137
- package/dist/commands/biome-dev.js.map +1 -1
- package/dist/commands/biome-lifecycle.d.ts +24 -0
- package/dist/commands/biome-lifecycle.d.ts.map +1 -0
- package/dist/commands/biome-lifecycle.js +253 -0
- package/dist/commands/biome-lifecycle.js.map +1 -0
- package/dist/commands/biome.d.ts +2 -4
- package/dist/commands/biome.d.ts.map +1 -1
- package/dist/commands/biome.js +61 -46
- package/dist/commands/biome.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +96 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +13 -20
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +14 -21
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/installation-tenancy.d.ts +11 -0
- package/dist/commands/installation-tenancy.d.ts.map +1 -0
- package/dist/commands/installation-tenancy.js +308 -0
- package/dist/commands/installation-tenancy.js.map +1 -0
- package/dist/commands/installation.d.ts.map +1 -1
- package/dist/commands/installation.js +19 -5
- package/dist/commands/installation.js.map +1 -1
- package/dist/commands/logs.d.ts +2 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +41 -8
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/{dev.d.ts → mirror.d.ts} +1 -1
- package/dist/commands/mirror.d.ts.map +1 -0
- package/dist/commands/mirror.js +132 -0
- package/dist/commands/mirror.js.map +1 -0
- package/dist/commands/source.d.ts.map +1 -1
- package/dist/commands/source.js +3 -2
- package/dist/commands/source.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +40 -21
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +36 -4
- package/dist/commands/up.js.map +1 -1
- package/dist/dev/infra-preflight.d.ts.map +1 -1
- package/dist/dev/infra-preflight.js +0 -4
- package/dist/dev/infra-preflight.js.map +1 -1
- package/dist/lib/confirm.d.ts +3 -0
- package/dist/lib/confirm.d.ts.map +1 -0
- package/dist/lib/confirm.js +19 -0
- package/dist/lib/confirm.js.map +1 -0
- package/dist/lib/output-format.d.ts +6 -0
- package/dist/lib/output-format.d.ts.map +1 -0
- package/dist/lib/output-format.js +20 -0
- package/dist/lib/output-format.js.map +1 -0
- package/dist/mirror/config/mirror-config-document.d.ts +18 -0
- package/dist/mirror/config/mirror-config-document.d.ts.map +1 -0
- package/dist/mirror/config/mirror-config-document.js +57 -0
- package/dist/mirror/config/mirror-config-document.js.map +1 -0
- package/dist/mirror/config/mirror-config-schema.d.ts +54 -0
- package/dist/mirror/config/mirror-config-schema.d.ts.map +1 -0
- package/dist/mirror/config/mirror-config-schema.js +80 -0
- package/dist/mirror/config/mirror-config-schema.js.map +1 -0
- package/dist/mirror/kit/delta.d.ts +4 -0
- package/dist/mirror/kit/delta.d.ts.map +1 -0
- package/dist/mirror/kit/delta.js +41 -0
- package/dist/mirror/kit/delta.js.map +1 -0
- package/dist/mirror/kit/export-kit.d.ts +16 -0
- package/dist/mirror/kit/export-kit.d.ts.map +1 -0
- package/dist/mirror/kit/export-kit.js +112 -0
- package/dist/mirror/kit/export-kit.js.map +1 -0
- package/dist/mirror/kit/import-kit.d.ts +9 -0
- package/dist/mirror/kit/import-kit.d.ts.map +1 -0
- package/dist/mirror/kit/import-kit.js +166 -0
- package/dist/mirror/kit/import-kit.js.map +1 -0
- package/dist/mirror/kit/kit-archive.d.ts +4 -0
- package/dist/mirror/kit/kit-archive.d.ts.map +1 -0
- package/dist/mirror/kit/kit-archive.js +38 -0
- package/dist/mirror/kit/kit-archive.js.map +1 -0
- package/dist/mirror/kit/kit-layout.d.ts +10 -0
- package/dist/mirror/kit/kit-layout.d.ts.map +1 -0
- package/dist/mirror/kit/kit-layout.js +19 -0
- package/dist/mirror/kit/kit-layout.js.map +1 -0
- package/dist/mirror/kit/kit-sums.d.ts +5 -0
- package/dist/mirror/kit/kit-sums.d.ts.map +1 -0
- package/dist/mirror/kit/kit-sums.js +63 -0
- package/dist/mirror/kit/kit-sums.js.map +1 -0
- package/dist/mirror/kit/layout-sync.d.ts +8 -0
- package/dist/mirror/kit/layout-sync.d.ts.map +1 -0
- package/dist/mirror/kit/layout-sync.js +58 -0
- package/dist/mirror/kit/layout-sync.js.map +1 -0
- package/dist/mirror/plan/bundle-content.d.ts +10 -0
- package/dist/mirror/plan/bundle-content.d.ts.map +1 -0
- package/dist/mirror/plan/bundle-content.js +61 -0
- package/dist/mirror/plan/bundle-content.js.map +1 -0
- package/dist/mirror/plan/declaration-file.d.ts +9 -0
- package/dist/mirror/plan/declaration-file.d.ts.map +1 -0
- package/dist/mirror/plan/declaration-file.js +27 -0
- package/dist/mirror/plan/declaration-file.js.map +1 -0
- package/dist/mirror/plan/edition-inputs.d.ts +57 -0
- package/dist/mirror/plan/edition-inputs.d.ts.map +1 -0
- package/dist/mirror/plan/edition-inputs.js +44 -0
- package/dist/mirror/plan/edition-inputs.js.map +1 -0
- package/dist/mirror/plan/edition-reader.d.ts +9 -0
- package/dist/mirror/plan/edition-reader.d.ts.map +1 -0
- package/dist/mirror/plan/edition-reader.js +47 -0
- package/dist/mirror/plan/edition-reader.js.map +1 -0
- package/dist/mirror/plan/image-content.d.ts +30 -0
- package/dist/mirror/plan/image-content.d.ts.map +1 -0
- package/dist/mirror/plan/image-content.js +120 -0
- package/dist/mirror/plan/image-content.js.map +1 -0
- package/dist/mirror/plan/npm-lockfile.d.ts +12 -0
- package/dist/mirror/plan/npm-lockfile.d.ts.map +1 -0
- package/dist/mirror/plan/npm-lockfile.js +106 -0
- package/dist/mirror/plan/npm-lockfile.js.map +1 -0
- package/dist/mirror/plan/oci-reads.d.ts +22 -0
- package/dist/mirror/plan/oci-reads.d.ts.map +1 -0
- package/dist/mirror/plan/oci-reads.js +43 -0
- package/dist/mirror/plan/oci-reads.js.map +1 -0
- package/dist/mirror/plan/plan-command.d.ts +22 -0
- package/dist/mirror/plan/plan-command.d.ts.map +1 -0
- package/dist/mirror/plan/plan-command.js +81 -0
- package/dist/mirror/plan/plan-command.js.map +1 -0
- package/dist/mirror/plan/plan-file.d.ts +13 -0
- package/dist/mirror/plan/plan-file.d.ts.map +1 -0
- package/dist/mirror/plan/plan-file.js +63 -0
- package/dist/mirror/plan/plan-file.js.map +1 -0
- package/dist/mirror/plan/resolve-content-set.d.ts +16 -0
- package/dist/mirror/plan/resolve-content-set.d.ts.map +1 -0
- package/dist/mirror/plan/resolve-content-set.js +90 -0
- package/dist/mirror/plan/resolve-content-set.js.map +1 -0
- package/dist/mirror/preflight/glob.d.ts +2 -0
- package/dist/mirror/preflight/glob.d.ts.map +1 -0
- package/dist/mirror/preflight/glob.js +59 -0
- package/dist/mirror/preflight/glob.js.map +1 -0
- package/dist/mirror/preflight/harbor-api.d.ts +27 -0
- package/dist/mirror/preflight/harbor-api.d.ts.map +1 -0
- package/dist/mirror/preflight/harbor-api.js +39 -0
- package/dist/mirror/preflight/harbor-api.js.map +1 -0
- package/dist/mirror/preflight/preflight.d.ts +18 -0
- package/dist/mirror/preflight/preflight.d.ts.map +1 -0
- package/dist/mirror/preflight/preflight.js +41 -0
- package/dist/mirror/preflight/preflight.js.map +1 -0
- package/dist/mirror/preflight/tag-moves.d.ts +16 -0
- package/dist/mirror/preflight/tag-moves.d.ts.map +1 -0
- package/dist/mirror/preflight/tag-moves.js +28 -0
- package/dist/mirror/preflight/tag-moves.js.map +1 -0
- package/dist/mirror/preflight/write-probe.d.ts +10 -0
- package/dist/mirror/preflight/write-probe.d.ts.map +1 -0
- package/dist/mirror/preflight/write-probe.js +36 -0
- package/dist/mirror/preflight/write-probe.js.map +1 -0
- package/dist/mirror/target/extras.d.ts +16 -0
- package/dist/mirror/target/extras.d.ts.map +1 -0
- package/dist/mirror/target/extras.js +47 -0
- package/dist/mirror/target/extras.js.map +1 -0
- package/dist/mirror/target/npm-registry.d.ts +20 -0
- package/dist/mirror/target/npm-registry.d.ts.map +1 -0
- package/dist/mirror/target/npm-registry.js +67 -0
- package/dist/mirror/target/npm-registry.js.map +1 -0
- package/dist/mirror/target/npm-sync.d.ts +15 -0
- package/dist/mirror/target/npm-sync.d.ts.map +1 -0
- package/dist/mirror/target/npm-sync.js +44 -0
- package/dist/mirror/target/npm-sync.js.map +1 -0
- package/dist/mirror/target/oci-items.d.ts +27 -0
- package/dist/mirror/target/oci-items.d.ts.map +1 -0
- package/dist/mirror/target/oci-items.js +79 -0
- package/dist/mirror/target/oci-items.js.map +1 -0
- package/dist/mirror/target/oci-sync.d.ts +20 -0
- package/dist/mirror/target/oci-sync.d.ts.map +1 -0
- package/dist/mirror/target/oci-sync.js +93 -0
- package/dist/mirror/target/oci-sync.js.map +1 -0
- package/dist/mirror/target/receipt-store.d.ts +13 -0
- package/dist/mirror/target/receipt-store.d.ts.map +1 -0
- package/dist/mirror/target/receipt-store.js +61 -0
- package/dist/mirror/target/receipt-store.js.map +1 -0
- package/dist/mirror/target/receipt.d.ts +13 -0
- package/dist/mirror/target/receipt.d.ts.map +1 -0
- package/dist/mirror/target/receipt.js +25 -0
- package/dist/mirror/target/receipt.js.map +1 -0
- package/dist/mirror/target/seed-push.d.ts +15 -0
- package/dist/mirror/target/seed-push.d.ts.map +1 -0
- package/dist/mirror/target/seed-push.js +20 -0
- package/dist/mirror/target/seed-push.js.map +1 -0
- package/dist/mirror/target/target-access.d.ts +7 -0
- package/dist/mirror/target/target-access.d.ts.map +1 -0
- package/dist/mirror/target/target-access.js +17 -0
- package/dist/mirror/target/target-access.js.map +1 -0
- package/dist/mirror/target/target-commands.d.ts +21 -0
- package/dist/mirror/target/target-commands.d.ts.map +1 -0
- package/dist/mirror/target/target-commands.js +134 -0
- package/dist/mirror/target/target-commands.js.map +1 -0
- package/dist/mirror/target/target-context.d.ts +11 -0
- package/dist/mirror/target/target-context.d.ts.map +1 -0
- package/dist/mirror/target/target-context.js +31 -0
- package/dist/mirror/target/target-context.js.map +1 -0
- package/dist/mirror/target/target-ports.d.ts +18 -0
- package/dist/mirror/target/target-ports.d.ts.map +1 -0
- package/dist/mirror/target/target-ports.js +49 -0
- package/dist/mirror/target/target-ports.js.map +1 -0
- package/dist/mirror/target/target-state.d.ts +22 -0
- package/dist/mirror/target/target-state.d.ts.map +1 -0
- package/dist/mirror/target/target-state.js +41 -0
- package/dist/mirror/target/target-state.js.map +1 -0
- package/dist/runtime/biome-dev.d.ts +0 -16
- package/dist/runtime/biome-dev.d.ts.map +1 -1
- package/dist/runtime/biome-dev.js +0 -53
- package/dist/runtime/biome-dev.js.map +1 -1
- package/dist/runtime/biome-host/biome-directory-packer.d.ts +3 -0
- package/dist/runtime/biome-host/biome-directory-packer.d.ts.map +1 -0
- package/dist/runtime/biome-host/biome-directory-packer.js +12 -0
- package/dist/runtime/biome-host/biome-directory-packer.js.map +1 -0
- package/dist/runtime/biome-host/bundle-packer.d.ts +8 -0
- package/dist/runtime/biome-host/bundle-packer.d.ts.map +1 -0
- package/dist/runtime/biome-host/bundle-packer.js +3 -0
- package/dist/runtime/biome-host/bundle-packer.js.map +1 -0
- package/dist/runtime/biome-host/from-spec.d.ts +33 -0
- package/dist/runtime/biome-host/from-spec.d.ts.map +1 -0
- package/dist/runtime/biome-host/from-spec.js +70 -0
- package/dist/runtime/biome-host/from-spec.js.map +1 -0
- package/dist/runtime/biome-host/lifecycle-client.d.ts +20 -0
- package/dist/runtime/biome-host/lifecycle-client.d.ts.map +1 -0
- package/dist/runtime/biome-host/lifecycle-client.js +197 -0
- package/dist/runtime/biome-host/lifecycle-client.js.map +1 -0
- package/dist/runtime/biome-host/lifecycle-contract.d.ts +95 -0
- package/dist/runtime/biome-host/lifecycle-contract.d.ts.map +1 -0
- package/dist/runtime/biome-host/lifecycle-contract.js +61 -0
- package/dist/runtime/biome-host/lifecycle-contract.js.map +1 -0
- package/dist/runtime/biome-host/lifecycle-flow.d.ts +29 -0
- package/dist/runtime/biome-host/lifecycle-flow.d.ts.map +1 -0
- package/dist/runtime/biome-host/lifecycle-flow.js +106 -0
- package/dist/runtime/biome-host/lifecycle-flow.js.map +1 -0
- package/dist/runtime/biome-host/plan-sources.d.ts +4 -0
- package/dist/runtime/biome-host/plan-sources.d.ts.map +1 -0
- package/dist/runtime/biome-host/plan-sources.js +26 -0
- package/dist/runtime/biome-host/plan-sources.js.map +1 -0
- package/dist/runtime/biome-host/relay/bundle-fetch.d.ts +12 -0
- package/dist/runtime/biome-host/relay/bundle-fetch.d.ts.map +1 -0
- package/dist/runtime/biome-host/relay/bundle-fetch.js +76 -0
- package/dist/runtime/biome-host/relay/bundle-fetch.js.map +1 -0
- package/dist/runtime/biome-host/relay/declared-scheme.d.ts +3 -0
- package/dist/runtime/biome-host/relay/declared-scheme.d.ts.map +1 -0
- package/dist/runtime/biome-host/relay/declared-scheme.js +14 -0
- package/dist/runtime/biome-host/relay/declared-scheme.js.map +1 -0
- package/dist/runtime/biome-host/relay/npm-token.d.ts +4 -0
- package/dist/runtime/biome-host/relay/npm-token.d.ts.map +1 -0
- package/dist/runtime/biome-host/relay/npm-token.js +16 -0
- package/dist/runtime/biome-host/relay/npm-token.js.map +1 -0
- package/dist/runtime/biome-host/relay/relay-flow.d.ts +16 -0
- package/dist/runtime/biome-host/relay/relay-flow.d.ts.map +1 -0
- package/dist/runtime/biome-host/relay/relay-flow.js +48 -0
- package/dist/runtime/biome-host/relay/relay-flow.js.map +1 -0
- package/dist/runtime/biome-host/source-staging.d.ts +17 -0
- package/dist/runtime/biome-host/source-staging.d.ts.map +1 -0
- package/dist/runtime/biome-host/source-staging.js +80 -0
- package/dist/runtime/biome-host/source-staging.js.map +1 -0
- package/dist/runtime/biome-host/sse.d.ts +2 -0
- package/dist/runtime/biome-host/sse.d.ts.map +1 -0
- package/dist/runtime/biome-host/sse.js +33 -0
- package/dist/runtime/biome-host/sse.js.map +1 -0
- package/dist/runtime/biome-local-install.js +1 -1
- package/dist/runtime/biome-local-install.js.map +1 -1
- package/dist/runtime/browser-origins.d.ts +9 -0
- package/dist/runtime/browser-origins.d.ts.map +1 -1
- package/dist/runtime/browser-origins.js +10 -0
- package/dist/runtime/browser-origins.js.map +1 -1
- package/dist/runtime/config/config-document.d.ts +10 -0
- package/dist/runtime/config/config-document.d.ts.map +1 -0
- package/dist/runtime/config/config-document.js +56 -0
- package/dist/runtime/config/config-document.js.map +1 -0
- package/dist/runtime/config/config-migrations.d.ts +21 -0
- package/dist/runtime/config/config-migrations.d.ts.map +1 -0
- package/dist/runtime/config/config-migrations.js +102 -0
- package/dist/runtime/config/config-migrations.js.map +1 -0
- package/dist/runtime/config/config-paths.d.ts +3 -0
- package/dist/runtime/config/config-paths.d.ts.map +1 -0
- package/dist/runtime/config/config-paths.js +9 -0
- package/dist/runtime/config/config-paths.js.map +1 -0
- package/dist/runtime/config/dev-mode.d.ts +0 -1
- package/dist/runtime/config/dev-mode.d.ts.map +1 -1
- package/dist/runtime/config/dev-mode.js +11 -27
- package/dist/runtime/config/dev-mode.js.map +1 -1
- package/dist/runtime/config/init-presets.js +5 -9
- package/dist/runtime/config/init-presets.js.map +1 -1
- package/dist/runtime/config/launch-config-help.d.ts +4 -0
- package/dist/runtime/config/launch-config-help.d.ts.map +1 -0
- package/dist/runtime/config/launch-config-help.js +42 -0
- package/dist/runtime/config/launch-config-help.js.map +1 -0
- package/dist/runtime/config/launch-config.d.ts +60 -0
- package/dist/runtime/config/launch-config.d.ts.map +1 -0
- package/dist/runtime/config/launch-config.js +123 -0
- package/dist/runtime/config/launch-config.js.map +1 -0
- package/dist/runtime/config/launch-schema.d.ts +18 -0
- package/dist/runtime/config/launch-schema.d.ts.map +1 -0
- package/dist/runtime/config/launch-schema.js +31 -0
- package/dist/runtime/config/launch-schema.js.map +1 -0
- package/dist/runtime/config/loader.d.ts.map +1 -1
- package/dist/runtime/config/loader.js +4 -14
- package/dist/runtime/config/loader.js.map +1 -1
- package/dist/runtime/config/schema.d.ts +43 -38
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/config/schema.js +17 -46
- package/dist/runtime/config/schema.js.map +1 -1
- package/dist/runtime/config/sources-config.d.ts +0 -2
- package/dist/runtime/config/sources-config.d.ts.map +1 -1
- package/dist/runtime/config/sources-config.js +10 -29
- package/dist/runtime/config/sources-config.js.map +1 -1
- package/dist/runtime/config/versioned-document.d.ts +26 -0
- package/dist/runtime/config/versioned-document.d.ts.map +1 -0
- package/dist/runtime/config/versioned-document.js +87 -0
- package/dist/runtime/config/versioned-document.js.map +1 -0
- package/dist/runtime/directory-changes.d.ts +12 -0
- package/dist/runtime/directory-changes.d.ts.map +1 -0
- package/dist/runtime/directory-changes.js +62 -0
- package/dist/runtime/directory-changes.js.map +1 -0
- package/dist/runtime/foreground.d.ts +2 -0
- package/dist/runtime/foreground.d.ts.map +1 -1
- package/dist/runtime/foreground.js +5 -20
- package/dist/runtime/foreground.js.map +1 -1
- package/dist/runtime/infra/infra-runner.js +5 -5
- package/dist/runtime/infra/infra-runner.js.map +1 -1
- package/dist/runtime/infra/keycloak-realm.d.ts +3 -19
- package/dist/runtime/infra/keycloak-realm.d.ts.map +1 -1
- package/dist/runtime/infra/keycloak-realm.js +12 -133
- package/dist/runtime/infra/keycloak-realm.js.map +1 -1
- package/dist/runtime/installation/current-launcher-renderer.js.map +1 -1
- package/dist/runtime/installation/from-current-config.d.ts.map +1 -1
- package/dist/runtime/installation/from-current-config.js +24 -47
- package/dist/runtime/installation/from-current-config.js.map +1 -1
- package/dist/runtime/installation/index.d.ts +1 -0
- package/dist/runtime/installation/index.d.ts.map +1 -1
- package/dist/runtime/installation/index.js +1 -0
- package/dist/runtime/installation/index.js.map +1 -1
- package/dist/runtime/installation/installation-file.d.ts +3 -0
- package/dist/runtime/installation/installation-file.d.ts.map +1 -0
- package/dist/runtime/installation/installation-file.js +9 -0
- package/dist/runtime/installation/installation-file.js.map +1 -0
- package/dist/runtime/installation/readiness.d.ts +6 -7
- package/dist/runtime/installation/readiness.d.ts.map +1 -1
- package/dist/runtime/installation/readiness.js +82 -132
- package/dist/runtime/installation/readiness.js.map +1 -1
- package/dist/runtime/installation/state-store.d.ts +4 -0
- package/dist/runtime/installation/state-store.d.ts.map +1 -1
- package/dist/runtime/installation/state-store.js +22 -1
- package/dist/runtime/installation/state-store.js.map +1 -1
- package/dist/runtime/installation/to-current-config.d.ts +4 -1
- package/dist/runtime/installation/to-current-config.d.ts.map +1 -1
- package/dist/runtime/installation/to-current-config.js +10 -36
- package/dist/runtime/installation/to-current-config.js.map +1 -1
- package/dist/runtime/launch-plan-format.d.ts.map +1 -1
- package/dist/runtime/launch-plan-format.js +31 -6
- package/dist/runtime/launch-plan-format.js.map +1 -1
- package/dist/runtime/launch-result.d.ts +15 -0
- package/dist/runtime/launch-result.d.ts.map +1 -0
- package/dist/runtime/launch-result.js +3 -0
- package/dist/runtime/launch-result.js.map +1 -0
- package/dist/runtime/launch.d.ts +16 -5
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +151 -315
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/license/helm-pull-secret.d.ts +1 -1
- package/dist/runtime/license/helm-pull-secret.d.ts.map +1 -1
- package/dist/runtime/license/helm-pull-secret.js +2 -2
- package/dist/runtime/license/helm-pull-secret.js.map +1 -1
- package/dist/runtime/lifecycle-progress/index.d.ts +9 -0
- package/dist/runtime/lifecycle-progress/index.d.ts.map +1 -0
- package/dist/runtime/lifecycle-progress/index.js +30 -0
- package/dist/runtime/lifecycle-progress/index.js.map +1 -0
- package/dist/runtime/lifecycle-progress/json-renderer.d.ts +3 -0
- package/dist/runtime/lifecycle-progress/json-renderer.d.ts.map +1 -0
- package/dist/runtime/lifecycle-progress/json-renderer.js +27 -0
- package/dist/runtime/lifecycle-progress/json-renderer.js.map +1 -0
- package/dist/runtime/lifecycle-progress/text-renderer.d.ts +5 -0
- package/dist/runtime/lifecycle-progress/text-renderer.d.ts.map +1 -0
- package/dist/runtime/lifecycle-progress/text-renderer.js +83 -0
- package/dist/runtime/lifecycle-progress/text-renderer.js.map +1 -0
- package/dist/runtime/lifecycle-progress/types.d.ts +79 -0
- package/dist/runtime/lifecycle-progress/types.d.ts.map +1 -0
- package/dist/runtime/lifecycle-progress/types.js +32 -0
- package/dist/runtime/lifecycle-progress/types.js.map +1 -0
- package/dist/runtime/lock-loader.d.ts +13 -3
- package/dist/runtime/lock-loader.d.ts.map +1 -1
- package/dist/runtime/lock-loader.js +28 -8
- package/dist/runtime/lock-loader.js.map +1 -1
- package/dist/runtime/paths.d.ts +2 -0
- package/dist/runtime/paths.d.ts.map +1 -1
- package/dist/runtime/paths.js +17 -4
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/roster.d.ts +6 -5
- package/dist/runtime/roster.d.ts.map +1 -1
- package/dist/runtime/roster.js +0 -21
- package/dist/runtime/roster.js.map +1 -1
- package/dist/runtime/runner/container-preflight.d.ts +3 -2
- package/dist/runtime/runner/container-preflight.d.ts.map +1 -1
- package/dist/runtime/runner/container-preflight.js +5 -5
- package/dist/runtime/runner/container-preflight.js.map +1 -1
- package/dist/runtime/runner/container-runner.d.ts +0 -22
- package/dist/runtime/runner/container-runner.d.ts.map +1 -1
- package/dist/runtime/runner/container-runner.js +0 -112
- package/dist/runtime/runner/container-runner.js.map +1 -1
- package/dist/runtime/runner/docker-cli.d.ts +1 -0
- package/dist/runtime/runner/docker-cli.d.ts.map +1 -1
- package/dist/runtime/runner/docker-cli.js +19 -0
- package/dist/runtime/runner/docker-cli.js.map +1 -1
- package/dist/runtime/runner/helm-cli.d.ts +1 -0
- package/dist/runtime/runner/helm-cli.d.ts.map +1 -1
- package/dist/runtime/runner/helm-cli.js +5 -1
- package/dist/runtime/runner/helm-cli.js.map +1 -1
- package/dist/runtime/runner/helm-pre-install.d.ts +3 -2
- package/dist/runtime/runner/helm-pre-install.d.ts.map +1 -1
- package/dist/runtime/runner/helm-pre-install.js +3 -3
- package/dist/runtime/runner/helm-pre-install.js.map +1 -1
- package/dist/runtime/runner/helm-runner.d.ts +29 -4
- package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
- package/dist/runtime/runner/helm-runner.js +44 -14
- package/dist/runtime/runner/helm-runner.js.map +1 -1
- package/dist/runtime/runner/kube-cli.d.ts +1 -0
- package/dist/runtime/runner/kube-cli.d.ts.map +1 -1
- package/dist/runtime/runner/kube-cli.js +24 -2
- package/dist/runtime/runner/kube-cli.js.map +1 -1
- package/dist/runtime/secrets/managed-local-key-provider.d.ts +2 -0
- package/dist/runtime/secrets/managed-local-key-provider.d.ts.map +1 -1
- package/dist/runtime/secrets/managed-local-key-provider.js +17 -8
- package/dist/runtime/secrets/managed-local-key-provider.js.map +1 -1
- package/dist/runtime/seed/closure-container.d.ts +8 -0
- package/dist/runtime/seed/closure-container.d.ts.map +1 -0
- package/dist/runtime/seed/closure-container.js +23 -0
- package/dist/runtime/seed/closure-container.js.map +1 -0
- package/dist/runtime/seed/closure-helm.d.ts +9 -0
- package/dist/runtime/seed/closure-helm.d.ts.map +1 -0
- package/dist/runtime/seed/closure-helm.js +16 -0
- package/dist/runtime/seed/closure-helm.js.map +1 -0
- package/dist/runtime/seed/closure-names.d.ts +4 -0
- package/dist/runtime/seed/closure-names.d.ts.map +1 -0
- package/dist/runtime/seed/closure-names.js +29 -0
- package/dist/runtime/seed/closure-names.js.map +1 -0
- package/dist/runtime/seed/closure-native.d.ts +3 -0
- package/dist/runtime/seed/closure-native.d.ts.map +1 -0
- package/dist/runtime/seed/closure-native.js +18 -0
- package/dist/runtime/seed/closure-native.js.map +1 -0
- package/dist/runtime/seed/installation-tar.d.ts +5 -0
- package/dist/runtime/seed/installation-tar.d.ts.map +1 -0
- package/dist/runtime/seed/installation-tar.js +30 -0
- package/dist/runtime/seed/installation-tar.js.map +1 -0
- package/dist/runtime/seed/launch-env.d.ts +42 -0
- package/dist/runtime/seed/launch-env.d.ts.map +1 -0
- package/dist/runtime/seed/launch-env.js +150 -0
- package/dist/runtime/seed/launch-env.js.map +1 -0
- package/dist/runtime/seed/seed-container.d.ts +13 -0
- package/dist/runtime/seed/seed-container.d.ts.map +1 -0
- package/dist/runtime/seed/seed-container.js +175 -0
- package/dist/runtime/seed/seed-container.js.map +1 -0
- package/dist/runtime/seed/seed-delivery-env.d.ts +39 -0
- package/dist/runtime/seed/seed-delivery-env.d.ts.map +1 -0
- package/dist/runtime/seed/seed-delivery-env.js +47 -0
- package/dist/runtime/seed/seed-delivery-env.js.map +1 -0
- package/dist/runtime/seed/seed-down.d.ts +2 -0
- package/dist/runtime/seed/seed-down.d.ts.map +1 -0
- package/dist/runtime/seed/seed-down.js +52 -0
- package/dist/runtime/seed/seed-down.js.map +1 -0
- package/dist/runtime/seed/seed-env-file.d.ts +3 -0
- package/dist/runtime/seed/seed-env-file.d.ts.map +1 -0
- package/dist/runtime/seed/seed-env-file.js +24 -0
- package/dist/runtime/seed/seed-env-file.js.map +1 -0
- package/dist/runtime/seed/seed-env-secret.d.ts +18 -0
- package/dist/runtime/seed/seed-env-secret.d.ts.map +1 -0
- package/dist/runtime/seed/seed-env-secret.js +62 -0
- package/dist/runtime/seed/seed-env-secret.js.map +1 -0
- package/dist/runtime/seed/seed-environment.d.ts +12 -0
- package/dist/runtime/seed/seed-environment.d.ts.map +1 -0
- package/dist/runtime/seed/seed-environment.js +66 -0
- package/dist/runtime/seed/seed-environment.js.map +1 -0
- package/dist/runtime/seed/seed-facts.d.ts +22 -0
- package/dist/runtime/seed/seed-facts.d.ts.map +1 -0
- package/dist/runtime/seed/seed-facts.js +40 -0
- package/dist/runtime/seed/seed-facts.js.map +1 -0
- package/dist/runtime/seed/seed-helm.d.ts +10 -0
- package/dist/runtime/seed/seed-helm.d.ts.map +1 -0
- package/dist/runtime/seed/seed-helm.js +74 -0
- package/dist/runtime/seed/seed-helm.js.map +1 -0
- package/dist/runtime/seed/seed-image-user.d.ts +6 -0
- package/dist/runtime/seed/seed-image-user.d.ts.map +1 -0
- package/dist/runtime/seed/seed-image-user.js +14 -0
- package/dist/runtime/seed/seed-image-user.js.map +1 -0
- package/dist/runtime/seed/seed-installation-files.d.ts +23 -0
- package/dist/runtime/seed/seed-installation-files.d.ts.map +1 -0
- package/dist/runtime/seed/seed-installation-files.js +51 -0
- package/dist/runtime/seed/seed-installation-files.js.map +1 -0
- package/dist/runtime/seed/seed-installation.d.ts +20 -0
- package/dist/runtime/seed/seed-installation.d.ts.map +1 -0
- package/dist/runtime/seed/seed-installation.js +36 -0
- package/dist/runtime/seed/seed-installation.js.map +1 -0
- package/dist/runtime/seed/seed-launcher.d.ts +14 -0
- package/dist/runtime/seed/seed-launcher.d.ts.map +1 -0
- package/dist/runtime/seed/seed-launcher.js +155 -0
- package/dist/runtime/seed/seed-launcher.js.map +1 -0
- package/dist/runtime/seed/seed-options.d.ts +22 -0
- package/dist/runtime/seed/seed-options.d.ts.map +1 -0
- package/dist/runtime/seed/seed-options.js +57 -0
- package/dist/runtime/seed/seed-options.js.map +1 -0
- package/dist/runtime/seed/seed-platform-endpoints.d.ts +8 -0
- package/dist/runtime/seed/seed-platform-endpoints.d.ts.map +1 -0
- package/dist/runtime/seed/seed-platform-endpoints.js +55 -0
- package/dist/runtime/seed/seed-platform-endpoints.js.map +1 -0
- package/dist/runtime/seed/seed-process.d.ts +22 -0
- package/dist/runtime/seed/seed-process.d.ts.map +1 -0
- package/dist/runtime/seed/seed-process.js +79 -0
- package/dist/runtime/seed/seed-process.js.map +1 -0
- package/dist/runtime/seed/seed-record.d.ts +101 -0
- package/dist/runtime/seed/seed-record.d.ts.map +1 -0
- package/dist/runtime/seed/seed-record.js +141 -0
- package/dist/runtime/seed/seed-record.js.map +1 -0
- package/dist/runtime/seed/seed-resolved-deployment.d.ts +14 -0
- package/dist/runtime/seed/seed-resolved-deployment.d.ts.map +1 -0
- package/dist/runtime/seed/seed-resolved-deployment.js +52 -0
- package/dist/runtime/seed/seed-resolved-deployment.js.map +1 -0
- package/dist/runtime/seed/substrate-facts.d.ts +52 -0
- package/dist/runtime/seed/substrate-facts.d.ts.map +1 -0
- package/dist/runtime/seed/substrate-facts.js +92 -0
- package/dist/runtime/seed/substrate-facts.js.map +1 -0
- package/dist/runtime/seed/supervisor-contract.d.ts +9 -0
- package/dist/runtime/seed/supervisor-contract.d.ts.map +1 -0
- package/dist/runtime/seed/supervisor-contract.js +68 -0
- package/dist/runtime/seed/supervisor-contract.js.map +1 -0
- package/dist/runtime/seed/workload-identity-facts.d.ts +17 -0
- package/dist/runtime/seed/workload-identity-facts.d.ts.map +1 -0
- package/dist/runtime/seed/workload-identity-facts.js +53 -0
- package/dist/runtime/seed/workload-identity-facts.js.map +1 -0
- package/dist/runtime/sources/schema.d.ts +2 -0
- package/dist/runtime/sources/schema.d.ts.map +1 -1
- package/dist/runtime/sources/schema.js +10 -9
- package/dist/runtime/sources/schema.js.map +1 -1
- package/dist/runtime/store-client.d.ts +0 -10
- package/dist/runtime/store-client.d.ts.map +1 -1
- package/dist/runtime/store-client.js +0 -5
- package/dist/runtime/store-client.js.map +1 -1
- package/dist/runtime/tenancy/identity-installer.d.ts +11 -0
- package/dist/runtime/tenancy/identity-installer.d.ts.map +1 -0
- package/dist/runtime/tenancy/identity-installer.js +39 -0
- package/dist/runtime/tenancy/identity-installer.js.map +1 -0
- package/dist/runtime/tenancy/import-cache.d.ts +5 -0
- package/dist/runtime/tenancy/import-cache.d.ts.map +1 -0
- package/dist/runtime/tenancy/import-cache.js +27 -0
- package/dist/runtime/tenancy/import-cache.js.map +1 -0
- package/dist/runtime/tenancy/openfga.d.ts +4 -0
- package/dist/runtime/tenancy/openfga.d.ts.map +1 -0
- package/dist/runtime/tenancy/openfga.js +29 -0
- package/dist/runtime/tenancy/openfga.js.map +1 -0
- package/dist/runtime/tenancy/servers.d.ts +18 -0
- package/dist/runtime/tenancy/servers.d.ts.map +1 -0
- package/dist/runtime/tenancy/servers.js +102 -0
- package/dist/runtime/tenancy/servers.js.map +1 -0
- package/dist/runtime/tenancy/session.d.ts +19 -0
- package/dist/runtime/tenancy/session.d.ts.map +1 -0
- package/dist/runtime/tenancy/session.js +79 -0
- package/dist/runtime/tenancy/session.js.map +1 -0
- package/dist/runtime/tenancy/specs.d.ts +27 -0
- package/dist/runtime/tenancy/specs.d.ts.map +1 -0
- package/dist/runtime/tenancy/specs.js +129 -0
- package/dist/runtime/tenancy/specs.js.map +1 -0
- package/examples/01-local-native.yaml +1 -3
- package/examples/02-local-container-full.yaml +0 -2
- package/examples/03-byo-infra.yaml +1 -5
- package/examples/06-biome-sources.yaml +1 -3
- package/package.json +32 -37
- package/xema.config.example.yaml +1 -10
- package/dist/assets/keycloak/realm-xema.json +0 -397
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -196
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/edition.d.ts +0 -3
- package/dist/commands/edition.d.ts.map +0 -1
- package/dist/commands/edition.js +0 -54
- package/dist/commands/edition.js.map +0 -1
- package/dist/commands/serve.d.ts +0 -3
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -114
- package/dist/commands/serve.js.map +0 -1
- package/dist/dev/carved-installs.d.ts +0 -3
- package/dist/dev/carved-installs.d.ts.map +0 -1
- package/dist/dev/carved-installs.js +0 -63
- package/dist/dev/carved-installs.js.map +0 -1
- package/dist/dev/env-defaults.d.ts +0 -15
- package/dist/dev/env-defaults.d.ts.map +0 -1
- package/dist/dev/env-defaults.js +0 -178
- package/dist/dev/env-defaults.js.map +0 -1
- package/dist/dev/forked-worker-bootstrap-protocol.d.ts +0 -17
- package/dist/dev/forked-worker-bootstrap-protocol.d.ts.map +0 -1
- package/dist/dev/forked-worker-bootstrap-protocol.js +0 -35
- package/dist/dev/forked-worker-bootstrap-protocol.js.map +0 -1
- package/dist/dev/forked-worker-bootstrap.d.ts +0 -18
- package/dist/dev/forked-worker-bootstrap.d.ts.map +0 -1
- package/dist/dev/forked-worker-bootstrap.js +0 -84
- package/dist/dev/forked-worker-bootstrap.js.map +0 -1
- package/dist/dev/forked-worker.d.ts +0 -43
- package/dist/dev/forked-worker.d.ts.map +0 -1
- package/dist/dev/forked-worker.js +0 -358
- package/dist/dev/forked-worker.js.map +0 -1
- package/dist/edition/verify-image-evidence.bundle.mjs +0 -70456
- package/dist/edition/verify-image-evidence.bundle.provenance.json +0 -3957
- package/dist/runtime/backing-registration.d.ts +0 -11
- package/dist/runtime/backing-registration.d.ts.map +0 -1
- package/dist/runtime/backing-registration.js +0 -94
- package/dist/runtime/backing-registration.js.map +0 -1
- package/dist/runtime/edition/run-entry.d.ts +0 -9
- package/dist/runtime/edition/run-entry.d.ts.map +0 -1
- package/dist/runtime/edition/run-entry.js +0 -36
- package/dist/runtime/edition/run-entry.js.map +0 -1
- package/dist/runtime/edition/verb-map.d.ts +0 -70
- package/dist/runtime/edition/verb-map.d.ts.map +0 -1
- package/dist/runtime/edition/verb-map.js +0 -166
- package/dist/runtime/edition/verb-map.js.map +0 -1
- package/dist/runtime/env-seeder.d.ts +0 -26
- package/dist/runtime/env-seeder.d.ts.map +0 -1
- package/dist/runtime/env-seeder.js +0 -340
- package/dist/runtime/env-seeder.js.map +0 -1
- package/dist/runtime/port-map.d.ts +0 -3
- package/dist/runtime/port-map.d.ts.map +0 -1
- package/dist/runtime/port-map.js +0 -25
- package/dist/runtime/port-map.js.map +0 -1
- package/dist/runtime/run-manifest.d.ts +0 -52
- package/dist/runtime/run-manifest.d.ts.map +0 -1
- package/dist/runtime/run-manifest.js +0 -585
- package/dist/runtime/run-manifest.js.map +0 -1
- package/dist/runtime/runner/native-runner.d.ts +0 -13
- package/dist/runtime/runner/native-runner.d.ts.map +0 -1
- package/dist/runtime/runner/native-runner.js +0 -94
- package/dist/runtime/runner/native-runner.js.map +0 -1
- package/dist/runtime/runner/service-runner.d.ts +0 -28
- package/dist/runtime/runner/service-runner.d.ts.map +0 -1
- package/dist/runtime/runner/service-runner.js +0 -10
- package/dist/runtime/runner/service-runner.js.map +0 -1
- package/dist/runtime/secrets/generated-platform-secrets.d.ts +0 -16
- package/dist/runtime/secrets/generated-platform-secrets.d.ts.map +0 -1
- package/dist/runtime/secrets/generated-platform-secrets.js +0 -115
- package/dist/runtime/secrets/generated-platform-secrets.js.map +0 -1
- package/dist/runtime/secrets/resolver.d.ts +0 -23
- package/dist/runtime/secrets/resolver.d.ts.map +0 -1
- package/dist/runtime/secrets/resolver.js +0 -266
- package/dist/runtime/secrets/resolver.js.map +0 -1
- package/dist/runtime/supervisor.d.ts +0 -67
- package/dist/runtime/supervisor.d.ts.map +0 -1
- package/dist/runtime/supervisor.js +0 -227
- package/dist/runtime/supervisor.js.map +0 -1
- package/edition/README.md +0 -293
- package/edition/adapter-bundled-versions.mjs +0 -108
- package/edition/adapter-host-versions.mjs +0 -41
- package/edition/assemble-producer-input.mjs +0 -1423
- package/edition/assemble-third-party-input.mjs +0 -336
- package/edition/authored-source-check.mjs +0 -135
- package/edition/authorization-base.mjs +0 -357
- package/edition/biome-content.mjs +0 -327
- package/edition/build-biome-index.mjs +0 -180
- package/edition/build-ledger-completeness.mjs +0 -67
- package/edition/build-ledger.mjs +0 -107
- package/edition/build-platform-service-index.mjs +0 -292
- package/edition/build-runtime-image-source-index.mjs +0 -1187
- package/edition/built-verifier.mjs +0 -55
- package/edition/candidate-edition.mjs +0 -697
- package/edition/canonical-evidence-json.mjs +0 -82
- package/edition/canonical-repository-url.mjs +0 -47
- package/edition/catalogue-edition.mjs +0 -49
- package/edition/catalogue-evidence.mjs +0 -228
- package/edition/catalogue-fetch.mjs +0 -124
- package/edition/catalogue-lock-field.mjs +0 -41
- package/edition/catalogue-pin.mjs +0 -71
- package/edition/catalogue.mjs +0 -223
- package/edition/chart-set-source-commit.mjs +0 -97
- package/edition/check-committed-image-evidence.mjs +0 -412
- package/edition/checkout-indexed-source-repositories.mjs +0 -283
- package/edition/collected-refusals.mjs +0 -59
- package/edition/comment-blanker.mjs +0 -75
- package/edition/connector-source-authority.mjs +0 -60
- package/edition/contract-authority.mjs +0 -122
- package/edition/cosign-certificate-constraints.mjs +0 -50
- package/edition/cross-repo-build-inputs.mjs +0 -158
- package/edition/customer-definition.mjs +0 -174
- package/edition/customer-edition-verbs.mjs +0 -617
- package/edition/customer-flags.mjs +0 -15
- package/edition/develop-catalogue-free-resolve.mjs +0 -280
- package/edition/develop-chart-roster.mjs +0 -96
- package/edition/develop-chart-set.mjs +0 -147
- package/edition/develop-coverage-readers.mjs +0 -217
- package/edition/develop-coverage-run.mjs +0 -50
- package/edition/develop-coverage-verdict.mjs +0 -153
- package/edition/develop-coverage.mjs +0 -131
- package/edition/develop-current-resolution.mjs +0 -29
- package/edition/develop-edition-invariants.mjs +0 -142
- package/edition/develop-edition-resolve.mjs +0 -211
- package/edition/develop-edition.mjs +0 -379
- package/edition/develop-engine-image.mjs +0 -95
- package/edition/develop-follow.mjs +0 -491
- package/edition/develop-freeze.mjs +0 -289
- package/edition/develop-git-bundles.mjs +0 -255
- package/edition/develop-graph.mjs +0 -28
- package/edition/develop-image-coordinate.mjs +0 -54
- package/edition/develop-image-probe.mjs +0 -120
- package/edition/develop-image-record.mjs +0 -194
- package/edition/develop-record-ancestry.mjs +0 -144
- package/edition/develop-record-verify.mjs +0 -216
- package/edition/develop-resolve-report.mjs +0 -159
- package/edition/develop-select-records.mjs +0 -172
- package/edition/develop-selection-line.mjs +0 -30
- package/edition/develop-selection-pins.mjs +0 -36
- package/edition/develop-snapshot-inputs.mjs +0 -93
- package/edition/develop-verify-image-record.mjs +0 -109
- package/edition/dispatched-runtime-components.mjs +0 -172
- package/edition/dist-check.mjs +0 -1137
- package/edition/distribution-evidence-set.mjs +0 -1064
- package/edition/distribution-paths.mjs +0 -191
- package/edition/edition-artifact.mjs +0 -529
- package/edition/edition-biome-manifests.mjs +0 -85
- package/edition/edition-ceiling.mjs +0 -180
- package/edition/edition-channel.mjs +0 -20
- package/edition/edition-chart-set.mjs +0 -104
- package/edition/edition-config.mjs +0 -374
- package/edition/edition-constants.mjs +0 -110
- package/edition/edition-contract-parse.mjs +0 -179
- package/edition/edition-contract.json +0 -100
- package/edition/edition-image-seal.mjs +0 -110
- package/edition/edition-kind.mjs +0 -10
- package/edition/edition-list.mjs +0 -35
- package/edition/edition-locks.mjs +0 -79
- package/edition/edition-pin-verbs.mjs +0 -183
- package/edition/edition-pin.mjs +0 -17
- package/edition/edition-pinned-inputs.mjs +0 -116
- package/edition/edition-protocol.mjs +0 -277
- package/edition/edition-publisher.mjs +0 -21
- package/edition/edition-seal.mjs +0 -257
- package/edition/edition-source-pins.mjs +0 -211
- package/edition/edition-unpin.mjs +0 -16
- package/edition/edition-workspace.mjs +0 -204
- package/edition/evidence-checkout.mjs +0 -439
- package/edition/evidence-grammars.mjs +0 -18
- package/edition/evidence-input-mode.mjs +0 -136
- package/edition/evidence-trust-pin.mjs +0 -380
- package/edition/evidence-trust-policy.mjs +0 -374
- package/edition/external-source-walk.mjs +0 -485
- package/edition/first-party-source-ids.mjs +0 -62
- package/edition/fleet-coordinate-finality.mjs +0 -363
- package/edition/fulcio-certificate-extensions.mjs +0 -231
- package/edition/git-json.mjs +0 -54
- package/edition/git-source-auth.mjs +0 -131
- package/edition/image-delivery-entitlement-descriptor.mjs +0 -106
- package/edition/image-evidence-replay-state.mjs +0 -242
- package/edition/image-evidence.mjs +0 -1404
- package/edition/image-lock-service-rows.mjs +0 -26
- package/edition/image-subject-identity.mjs +0 -24
- package/edition/images-from-record.mjs +0 -298
- package/edition/indexes-at-pins.mjs +0 -13
- package/edition/kernel-capability-domain.mjs +0 -30
- package/edition/kernel-contract-authority.mjs +0 -517
- package/edition/kernel-contract-source-path-set.mjs +0 -94
- package/edition/kernel-package.mjs +0 -206
- package/edition/kernel-protocol-choice.mjs +0 -239
- package/edition/kernel-signer-kind.mjs +0 -23
- package/edition/lib.mjs +0 -3303
- package/edition/locked-bundle-signer.mjs +0 -297
- package/edition/map-with-concurrency.mjs +0 -19
- package/edition/no-follow-file.mjs +0 -94
- package/edition/oci-evidence-verbs.mjs +0 -419
- package/edition/oci-image-source-evidence.mjs +0 -364
- package/edition/operation-grant-admission.mjs +0 -285
- package/edition/operation-requirements.mjs +0 -282
- package/edition/oras-process.mjs +0 -35
- package/edition/oras.mjs +0 -742
- package/edition/pin-source.mjs +0 -242
- package/edition/pinned-cosign.mjs +0 -70
- package/edition/plan-image-evidence-refresh.mjs +0 -427
- package/edition/platform-lock-readability.mjs +0 -901
- package/edition/platform-service-class.mjs +0 -85
- package/edition/platform-service-ownership.mjs +0 -88
- package/edition/platform-service-source-authority.mjs +0 -105
- package/edition/positive-closure.mjs +0 -162
- package/edition/previous-seal-registry.mjs +0 -149
- package/edition/produce-distribution-completeness-evidence.mjs +0 -318
- package/edition/produce-edition-catalogue-evidence.mjs +0 -252
- package/edition/produce-image-delivery-entitlement-evidence.mjs +0 -304
- package/edition/produce-image-source-evidence.mjs +0 -788
- package/edition/producer-evidence-bundle.mjs +0 -201
- package/edition/producer-evidence-index-file.mjs +0 -4
- package/edition/record-refused.mjs +0 -12
- package/edition/registry-credentials.mjs +0 -225
- package/edition/release-catalogue.mjs +0 -47
- package/edition/release-channel-guard.mjs +0 -108
- package/edition/release-edition-artifact.mjs +0 -152
- package/edition/release-edition.mjs +0 -54
- package/edition/remedy-command.mjs +0 -89
- package/edition/repin-evidence-trust.mjs +0 -109
- package/edition/required-resource-provider.mjs +0 -58
- package/edition/resolve-chart-set.mjs +0 -376
- package/edition/resolve-customer-edition.mjs +0 -374
- package/edition/resolve-distribution.mjs +0 -2639
- package/edition/resolve-edition.mjs +0 -192
- package/edition/resolve-images.mjs +0 -2351
- package/edition/seal-image-digests.mjs +0 -954
- package/edition/sealed-distribution-lock.mjs +0 -22
- package/edition/sealed-evidence-accept.mjs +0 -82
- package/edition/shallow-checkout.mjs +0 -18
- package/edition/sigstore-bundle-media-type.mjs +0 -4
- package/edition/source-authority.mjs +0 -713
- package/edition/source-closure.mjs +0 -115
- package/edition/store-publisher-trust.mjs +0 -40
- package/edition/strict-json.mjs +0 -121
- package/edition/string-order.mjs +0 -5
- package/edition/third-party-admission.mjs +0 -91
- package/edition/third-party-bundle-registry.mjs +0 -242
- package/edition/third-party-certificate-extensions.mjs +0 -21
- package/edition/third-party-image-pins.mjs +0 -41
- package/edition/third-party-pins-trusted.mjs +0 -24
- package/edition/third-party-producer-evidence.mjs +0 -76
- package/edition/third-party-source-check.mjs +0 -28
- package/edition/third-party-source-context.mjs +0 -41
- package/edition/third-party-source-evidence.mjs +0 -287
- package/edition/third-party-source-flags.mjs +0 -134
- package/edition/third-party-source-pins.mjs +0 -259
- package/edition/third-party-source-uniqueness.mjs +0 -54
- package/edition/third-party-source-walk.mjs +0 -115
- package/edition/third-party-source-writer.mjs +0 -213
- package/edition/third-party-subjects.mjs +0 -128
- package/edition/trust-policy-arming-verb.mjs +0 -60
- package/edition/trust-policy-arming.mjs +0 -144
- package/edition/trust-policy-image-ownership.mjs +0 -85
- package/edition/trusted-executable.mjs +0 -166
- package/edition/verifier-binding.mjs +0 -45
- package/edition/verifier-files.mjs +0 -8
- package/edition/verifier-kernel-schemas.mjs +0 -22
- package/edition/verifier-provenance.mjs +0 -64
- package/edition/verify-catalogue-evidence.mjs +0 -247
- package/edition/verify-image-evidence.mjs +0 -475
- package/edition/verify-image-platforms.mjs +0 -523
- package/edition/why.mjs +0 -56
- package/edition/workspace-sections.mjs +0 -276
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
// The data root's declared evidence trust policy and the PIN that binds it.
|
|
2
|
-
//
|
|
3
|
-
// `edition-workspace.json` may declare `evidenceTrustPolicy: {policy, pin}`. The
|
|
4
|
-
// policy is the offline Sigstore trust policy (who may sign, which binaries may
|
|
5
|
-
// verify); the pin is a reviewed data-root file that fixes the digest of that
|
|
6
|
-
// policy, the digests of the one verifier bundle and its provenance, the
|
|
7
|
-
// kernel contract authority every evidence statement is held to, and the oras
|
|
8
|
-
// binaries that may read a registry. So the policy cannot change, the verifier
|
|
9
|
-
// that enforces it cannot change, the kernel contract the evidence binds cannot
|
|
10
|
-
// change and the registry reader cannot change without a reviewed data-root
|
|
11
|
-
// commit.
|
|
12
|
-
//
|
|
13
|
-
// A customer data root has no such index; its pin records `kernelContractAuthority: null` and pins only what exists.
|
|
14
|
-
//
|
|
15
|
-
// The kernel contract authority is pinned HERE because nothing else can hold
|
|
16
|
-
// it: `runtime-image-source-index.json` states the authority, and the image
|
|
17
|
-
// locks and statements are compared with what that file states. Comparing the
|
|
18
|
-
// file with itself decides nothing, so its authority is first held to this
|
|
19
|
-
// pin, and only the pinned authority is what evidence is compared with.
|
|
20
|
-
|
|
21
|
-
import { closeSync, constants as fsConstants, existsSync, openSync, writeFileSync } from 'node:fs';
|
|
22
|
-
import { join } from 'node:path';
|
|
23
|
-
|
|
24
|
-
import { COMMIT_PATTERN } from './evidence-grammars.mjs';
|
|
25
|
-
import {
|
|
26
|
-
canonicalJsonBytes,
|
|
27
|
-
readCanonicalJsonFromRoot,
|
|
28
|
-
sha256Digest,
|
|
29
|
-
validatePinnedTrustedRoot,
|
|
30
|
-
} from './image-evidence.mjs';
|
|
31
|
-
import { readBoundedNoFollowFile } from './no-follow-file.mjs';
|
|
32
|
-
import { parseStrictJson } from './strict-json.mjs';
|
|
33
|
-
import { THIRD_PARTY_SOURCE_PINS_FILE, thirdPartySourcePinsDigest } from './third-party-source-pins.mjs';
|
|
34
|
-
import { assertTrustPolicyImageOwnership, firstPartyOwnersFromIndex } from './trust-policy-image-ownership.mjs';
|
|
35
|
-
|
|
36
|
-
export const EVIDENCE_TRUST_PIN_SCHEMA_VERSION = 2;
|
|
37
|
-
export const RUNTIME_IMAGE_SOURCE_INDEX_FILE = 'runtime-image-source-index.json';
|
|
38
|
-
|
|
39
|
-
/** A data root that declares no evidence trust has no pin to hold the kernel contract authority to. */
|
|
40
|
-
export const KERNEL_CONTRACT_AUTHORITY_UNPINNED = 'KERNEL_CONTRACT_AUTHORITY_UNPINNED';
|
|
41
|
-
/** The data root's runtime image source index states another authority than the pin records. */
|
|
42
|
-
export const KERNEL_CONTRACT_AUTHORITY_NOT_PINNED_ONE = 'KERNEL_CONTRACT_AUTHORITY_NOT_PINNED_ONE';
|
|
43
|
-
|
|
44
|
-
export class KernelContractAuthorityPinError extends Error {
|
|
45
|
-
/** @param {string} code @param {string} message */
|
|
46
|
-
constructor(code, message) {
|
|
47
|
-
super(message);
|
|
48
|
-
this.name = 'KernelContractAuthorityPinError';
|
|
49
|
-
this.code = code;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
export const REPIN_COMMAND = 'xema edition repin-evidence-trust';
|
|
53
|
-
|
|
54
|
-
const MAX_PIN_BYTES = 64 * 1024;
|
|
55
|
-
const MAX_INDEX_BYTES = 16 * 1024 * 1024;
|
|
56
|
-
const SHA256_DIGEST = /^sha256:[a-f0-9]{64}$/;
|
|
57
|
-
const PIN_KEYS = Object.freeze([
|
|
58
|
-
'kernelContractAuthority',
|
|
59
|
-
'policyDigest',
|
|
60
|
-
'schemaVersion',
|
|
61
|
-
'trustedOrasBinaryDigests',
|
|
62
|
-
'verifier',
|
|
63
|
-
]);
|
|
64
|
-
/**
|
|
65
|
-
* Present iff the data root holds `third-party-source-pins.json`. Optional so a pin written before third-party
|
|
66
|
-
* sources existed, for a data root without that file, keeps loading unchanged (the schemaVersion stays 2).
|
|
67
|
-
*/
|
|
68
|
-
const THIRD_PARTY_SOURCE_PINS_DIGEST_KEY = 'thirdPartySourcePinsDigest';
|
|
69
|
-
const VERIFIER_KEYS = Object.freeze(['bundleDigest', 'provenanceDigest']);
|
|
70
|
-
const AUTHORITY_PIN_KEYS = Object.freeze(['digest', 'sourceCommit']);
|
|
71
|
-
const PIN_SHAPE =
|
|
72
|
-
'{schemaVersion, policyDigest, verifier: {bundleDigest, provenanceDigest}, ' +
|
|
73
|
-
'kernelContractAuthority: {sourceCommit, digest} | null, trustedOrasBinaryDigests: [sha256:…, …], ' +
|
|
74
|
-
`[${THIRD_PARTY_SOURCE_PINS_DIGEST_KEY}: sha256:… (only when the data root holds ${THIRD_PARTY_SOURCE_PINS_FILE})]}`;
|
|
75
|
-
|
|
76
|
-
const exactKeys = (value, keys) =>
|
|
77
|
-
value !== null &&
|
|
78
|
-
typeof value === 'object' &&
|
|
79
|
-
!Array.isArray(value) &&
|
|
80
|
-
Object.keys(value).sort().join() === keys.join();
|
|
81
|
-
|
|
82
|
-
function requireDigest(value, what) {
|
|
83
|
-
if (typeof value !== 'string' || !SHA256_DIGEST.test(value)) {
|
|
84
|
-
throw new Error(`evidence trust pin: ${what} must be sha256:<64 hex>`);
|
|
85
|
-
}
|
|
86
|
-
return value;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/** Digest of the parsed policy in its canonical JSON form. */
|
|
90
|
-
export const trustPolicyDigest = (policy) =>
|
|
91
|
-
sha256Digest(canonicalJsonBytes(policy));
|
|
92
|
-
|
|
93
|
-
/** The verifier digests a pin records: the bundle's bytes and its provenance's bytes. */
|
|
94
|
-
export function verifierDigests({ bundleBytes, provenanceBytes }) {
|
|
95
|
-
return Object.freeze({
|
|
96
|
-
bundleDigest: sha256Digest(bundleBytes),
|
|
97
|
-
provenanceDigest: sha256Digest(provenanceBytes),
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Read, parse and validate the declared policy: kernel schema, then the pinned
|
|
103
|
-
* Sigstore trusted root it names (resolved against the data root).
|
|
104
|
-
*/
|
|
105
|
-
export function loadDeclaredTrustPolicy({ dataRoot, declaration, schemas }) {
|
|
106
|
-
const policy = schemas.parseSigstoreOfflineTrustPolicy(
|
|
107
|
-
readCanonicalJsonFromRoot(
|
|
108
|
-
dataRoot,
|
|
109
|
-
declaration.policy,
|
|
110
|
-
'declared image evidence trust policy',
|
|
111
|
-
),
|
|
112
|
-
);
|
|
113
|
-
validatePinnedTrustedRoot(dataRoot, policy);
|
|
114
|
-
assertTrustPolicyImageOwnership({
|
|
115
|
-
policy,
|
|
116
|
-
firstPartyOwners: hasRuntimeImageSourceIndex(dataRoot) ? firstPartyOwnersFromIndex(readRuntimeImageSourceIndexDocument(dataRoot)) : null,
|
|
117
|
-
});
|
|
118
|
-
return Object.freeze({ policy, policyDigest: trustPolicyDigest(policy) });
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/** Read the declared pin file: strict JSON, exact keys. */
|
|
122
|
-
export function readEvidenceTrustPin({ dataRoot, declaration }) {
|
|
123
|
-
const label = 'declared image evidence trust pin';
|
|
124
|
-
const { bytes } = readBoundedNoFollowFile(
|
|
125
|
-
dataRoot,
|
|
126
|
-
declaration.pin,
|
|
127
|
-
label,
|
|
128
|
-
MAX_PIN_BYTES,
|
|
129
|
-
);
|
|
130
|
-
const pin = parseStrictJson(bytes.toString('utf8'), declaration.pin);
|
|
131
|
-
const hasSourcePinsDigest = pin !== null && typeof pin === 'object' && THIRD_PARTY_SOURCE_PINS_DIGEST_KEY in pin;
|
|
132
|
-
if (
|
|
133
|
-
!exactKeys(pin, hasSourcePinsDigest ? [...PIN_KEYS, THIRD_PARTY_SOURCE_PINS_DIGEST_KEY].sort() : PIN_KEYS) ||
|
|
134
|
-
!exactKeys(pin.verifier, VERIFIER_KEYS) ||
|
|
135
|
-
!(pin.kernelContractAuthority === null || exactKeys(pin.kernelContractAuthority, AUTHORITY_PIN_KEYS)) ||
|
|
136
|
-
!Array.isArray(pin.trustedOrasBinaryDigests)
|
|
137
|
-
) {
|
|
138
|
-
throw new Error(`${declaration.pin}: the pin is exactly ${PIN_SHAPE}`);
|
|
139
|
-
}
|
|
140
|
-
if (pin.schemaVersion !== EVIDENCE_TRUST_PIN_SCHEMA_VERSION) {
|
|
141
|
-
throw new Error(
|
|
142
|
-
`${declaration.pin}: schemaVersion must be ${EVIDENCE_TRUST_PIN_SCHEMA_VERSION}`,
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
return Object.freeze({
|
|
146
|
-
schemaVersion: pin.schemaVersion,
|
|
147
|
-
policyDigest: requireDigest(pin.policyDigest, 'policyDigest'),
|
|
148
|
-
verifier: Object.freeze({
|
|
149
|
-
bundleDigest: requireDigest(pin.verifier.bundleDigest, 'verifier.bundleDigest'),
|
|
150
|
-
provenanceDigest: requireDigest(
|
|
151
|
-
pin.verifier.provenanceDigest,
|
|
152
|
-
'verifier.provenanceDigest',
|
|
153
|
-
),
|
|
154
|
-
}),
|
|
155
|
-
kernelContractAuthority:
|
|
156
|
-
pin.kernelContractAuthority === null
|
|
157
|
-
? null
|
|
158
|
-
: Object.freeze({
|
|
159
|
-
sourceCommit: requireCommit(pin.kernelContractAuthority.sourceCommit),
|
|
160
|
-
digest: requireDigest(pin.kernelContractAuthority.digest, 'kernelContractAuthority.digest'),
|
|
161
|
-
}),
|
|
162
|
-
trustedOrasBinaryDigests: requireOrasDigests(pin.trustedOrasBinaryDigests),
|
|
163
|
-
thirdPartySourcePinsDigest: hasSourcePinsDigest
|
|
164
|
-
? requireDigest(pin[THIRD_PARTY_SOURCE_PINS_DIGEST_KEY], THIRD_PARTY_SOURCE_PINS_DIGEST_KEY)
|
|
165
|
-
: null,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Hold the data root's `third-party-source-pins.json` to the pin: when the file exists the pin must record its sha256
|
|
171
|
-
* (and it must be the file's); when the file does not exist the pin must record none.
|
|
172
|
-
*/
|
|
173
|
-
export function assertPinnedThirdPartySourcePins({ pin, dataRoot }) {
|
|
174
|
-
const actual = thirdPartySourcePinsDigest(dataRoot);
|
|
175
|
-
if (actual === null) {
|
|
176
|
-
if (pin.thirdPartySourcePinsDigest !== null) {
|
|
177
|
-
throw new Error(
|
|
178
|
-
`the pin records ${THIRD_PARTY_SOURCE_PINS_FILE} at ${pin.thirdPartySourcePinsDigest} but the data root holds no such file; ` +
|
|
179
|
-
`review the removal, then re-pin with \`${REPIN_COMMAND}\``,
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
if (pin.thirdPartySourcePinsDigest === null) {
|
|
185
|
-
throw new Error(
|
|
186
|
-
`the data root holds ${THIRD_PARTY_SOURCE_PINS_FILE} (${actual}) but the pin records none; ` +
|
|
187
|
-
`review the third-party source pins, then re-pin with \`${REPIN_COMMAND}\``,
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
if (pin.thirdPartySourcePinsDigest !== actual) {
|
|
191
|
-
throw new Error(
|
|
192
|
-
`${THIRD_PARTY_SOURCE_PINS_FILE} hashes to ${actual} but the pin records ${pin.thirdPartySourcePinsDigest}; ` +
|
|
193
|
-
`review the third-party source pin change, then re-pin with \`${REPIN_COMMAND}\``,
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
function requireCommit(value) {
|
|
199
|
-
if (typeof value !== 'string' || !COMMIT_PATTERN.test(value)) {
|
|
200
|
-
throw new Error('evidence trust pin: kernelContractAuthority.sourceCommit must be an exact 40-hex commit');
|
|
201
|
-
}
|
|
202
|
-
return value;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/** At least one digest, each canonical, none repeated: a pin that trusts no oras cannot read a registry. */
|
|
206
|
-
export function requireOrasDigests(value) {
|
|
207
|
-
if (!Array.isArray(value) || value.length === 0) {
|
|
208
|
-
throw new Error(
|
|
209
|
-
'evidence trust pin: trustedOrasBinaryDigests must list at least one sha256 digest of an oras binary ' +
|
|
210
|
-
'(`shasum -a 256` of the real file); state it with --trusted-oras-digest when re-pinning',
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
const digests = value.map((digest, index) => requireDigest(digest, `trustedOrasBinaryDigests[${index}]`));
|
|
214
|
-
if (new Set(digests).size !== digests.length) {
|
|
215
|
-
throw new Error('evidence trust pin: trustedOrasBinaryDigests repeats a digest');
|
|
216
|
-
}
|
|
217
|
-
return Object.freeze([...digests]);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/** What a pin records of a kernel contract authority: its commit, and the digest of the whole authority. */
|
|
221
|
-
export function kernelContractAuthorityPin(authority) {
|
|
222
|
-
return Object.freeze({
|
|
223
|
-
sourceCommit: requireCommit(authority?.sourceCommit),
|
|
224
|
-
digest: sha256Digest(canonicalJsonBytes(authority)),
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Whether the data root holds a runtime image source index. A vendor data root does; a customer data root has none
|
|
230
|
-
* (it consumes a catalogue and states no kernel contract authority of its own), and its pin records `null`.
|
|
231
|
-
*/
|
|
232
|
-
export function hasRuntimeImageSourceIndex(dataRoot) {
|
|
233
|
-
return existsSync(join(dataRoot, RUNTIME_IMAGE_SOURCE_INDEX_FILE));
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/** The data root's runtime image source index as parsed JSON (not schema-validated here). */
|
|
237
|
-
function readRuntimeImageSourceIndexDocument(dataRoot) {
|
|
238
|
-
const { bytes } = readBoundedNoFollowFile(
|
|
239
|
-
dataRoot,
|
|
240
|
-
RUNTIME_IMAGE_SOURCE_INDEX_FILE,
|
|
241
|
-
'runtime image source index',
|
|
242
|
-
MAX_INDEX_BYTES,
|
|
243
|
-
);
|
|
244
|
-
return JSON.parse(bytes.toString('utf8'));
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/** The kernel contract authority the data root's runtime image source index STATES; nothing is trusted yet. */
|
|
248
|
-
export function readStatedKernelContractAuthority({ dataRoot, schemas }) {
|
|
249
|
-
if (!schemas?.parseRuntimeImageSourceIndex) {
|
|
250
|
-
throw new Error('trusted kernel distribution schemas are required');
|
|
251
|
-
}
|
|
252
|
-
return schemas.parseRuntimeImageSourceIndex(readRuntimeImageSourceIndexDocument(dataRoot)).contractAuthority;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/** Refuse an authority that is not the one the pin records. */
|
|
256
|
-
export function assertPinnedKernelContractAuthority({ pin, authority, label }) {
|
|
257
|
-
const actual = kernelContractAuthorityPin(authority);
|
|
258
|
-
if (pin.kernelContractAuthority === null) {
|
|
259
|
-
throw new KernelContractAuthorityPinError(
|
|
260
|
-
KERNEL_CONTRACT_AUTHORITY_NOT_PINNED_ONE,
|
|
261
|
-
`${label} states kernel contract authority ${actual.sourceCommit} (${actual.digest}) but the pin records none ` +
|
|
262
|
-
`(it was written for a data root without a runtime image source index); review the index, then re-pin with \`${REPIN_COMMAND}\``,
|
|
263
|
-
);
|
|
264
|
-
}
|
|
265
|
-
if (
|
|
266
|
-
actual.sourceCommit !== pin.kernelContractAuthority.sourceCommit ||
|
|
267
|
-
actual.digest !== pin.kernelContractAuthority.digest
|
|
268
|
-
) {
|
|
269
|
-
throw new KernelContractAuthorityPinError(
|
|
270
|
-
KERNEL_CONTRACT_AUTHORITY_NOT_PINNED_ONE,
|
|
271
|
-
`${label} states kernel contract authority ${actual.sourceCommit} (${actual.digest}) but the pin records ` +
|
|
272
|
-
`${pin.kernelContractAuthority.sourceCommit} (${pin.kernelContractAuthority.digest}); ` +
|
|
273
|
-
`review the kernel contract change, then re-pin with \`${REPIN_COMMAND}\``,
|
|
274
|
-
);
|
|
275
|
-
}
|
|
276
|
-
return authority;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* The kernel contract authority evidence is held to: the one the data root's
|
|
281
|
-
* runtime image source index states, ONLY once it is the one the data root's
|
|
282
|
-
* evidence-trust pin records. A data root that declares no evidence trust has
|
|
283
|
-
* no pin, so it has no authority to hold evidence to and this refuses.
|
|
284
|
-
*
|
|
285
|
-
* @param {{dataRoot: string, declaration: {policy: string|null, pin: string|null}, schemas: object}} options
|
|
286
|
-
*/
|
|
287
|
-
export function readPinnedKernelContractAuthority({ dataRoot, declaration, schemas }) {
|
|
288
|
-
if (declaration.policy === null) {
|
|
289
|
-
throw new KernelContractAuthorityPinError(
|
|
290
|
-
KERNEL_CONTRACT_AUTHORITY_UNPINNED,
|
|
291
|
-
`${dataRoot} declares no evidenceTrustPolicy in edition-workspace.json, so no pin records the kernel contract ` +
|
|
292
|
-
'authority and no image evidence can be produced, planned or checked against it',
|
|
293
|
-
);
|
|
294
|
-
}
|
|
295
|
-
return assertPinnedKernelContractAuthority({
|
|
296
|
-
pin: readEvidenceTrustPin({ dataRoot, declaration }),
|
|
297
|
-
authority: readStatedKernelContractAuthority({ dataRoot, schemas }),
|
|
298
|
-
label: `${dataRoot}/${RUNTIME_IMAGE_SOURCE_INDEX_FILE}`,
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/** Refuse a pin whose policy digest is not the declared policy's. */
|
|
303
|
-
export function assertPinnedPolicy({ pin, policyDigest }) {
|
|
304
|
-
if (pin.policyDigest !== policyDigest) {
|
|
305
|
-
throw new Error(
|
|
306
|
-
`the trust policy hashes to ${policyDigest} but the pin records ${pin.policyDigest}; ` +
|
|
307
|
-
`review the policy change, then re-pin it with \`${REPIN_COMMAND}\``,
|
|
308
|
-
);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* The declared policy, held to the pin's record of it. Refuses a data root that
|
|
314
|
-
* declares none: there is no policy to produce or accept evidence under.
|
|
315
|
-
*/
|
|
316
|
-
export function loadPinnedDeclaredTrustPolicy({ dataRoot, declaration, schemas }) {
|
|
317
|
-
if (declaration.policy === null) {
|
|
318
|
-
throw new Error(
|
|
319
|
-
`${dataRoot} declares no evidenceTrustPolicy in edition-workspace.json; there is no policy to produce evidence under`,
|
|
320
|
-
);
|
|
321
|
-
}
|
|
322
|
-
const { policy, policyDigest } = loadDeclaredTrustPolicy({ dataRoot, declaration, schemas });
|
|
323
|
-
const pin = readEvidenceTrustPin({ dataRoot, declaration });
|
|
324
|
-
assertPinnedPolicy({ pin, policyDigest });
|
|
325
|
-
assertPinnedThirdPartySourcePins({ pin, dataRoot });
|
|
326
|
-
return policy;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/** Refuse a pin whose verifier digests are not the verifier's actual ones. */
|
|
330
|
-
export function assertPinnedVerifier({ pin, actual }) {
|
|
331
|
-
for (const key of VERIFIER_KEYS) {
|
|
332
|
-
if (pin.verifier[key] !== actual[key]) {
|
|
333
|
-
throw new Error(
|
|
334
|
-
`the verifier's ${key} is ${actual[key]} but the pin records ${pin.verifier[key]}; ` +
|
|
335
|
-
`this CLI's verifier is not the one the data root pinned. Install the pinned ` +
|
|
336
|
-
`CLI version, or review the verifier change and re-pin with \`${REPIN_COMMAND}\``,
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
/** Write the pin for the declared policy, the verifier digests, the kernel contract authority, the oras digests and (when the data root holds the file) the third-party source pins' digest. */
|
|
343
|
-
export function writeEvidenceTrustPin({
|
|
344
|
-
dataRoot,
|
|
345
|
-
declaration,
|
|
346
|
-
policyDigest,
|
|
347
|
-
verifier,
|
|
348
|
-
kernelContractAuthority,
|
|
349
|
-
trustedOrasBinaryDigests,
|
|
350
|
-
thirdPartySourcePinsDigest: sourcePinsDigest = null,
|
|
351
|
-
}) {
|
|
352
|
-
const pin = {
|
|
353
|
-
schemaVersion: EVIDENCE_TRUST_PIN_SCHEMA_VERSION,
|
|
354
|
-
policyDigest,
|
|
355
|
-
verifier: {
|
|
356
|
-
bundleDigest: verifier.bundleDigest,
|
|
357
|
-
provenanceDigest: verifier.provenanceDigest,
|
|
358
|
-
},
|
|
359
|
-
kernelContractAuthority: kernelContractAuthority === null ? null : { ...kernelContractAuthorityPin(kernelContractAuthority) },
|
|
360
|
-
trustedOrasBinaryDigests: [...requireOrasDigests(trustedOrasBinaryDigests)].sort(),
|
|
361
|
-
...(sourcePinsDigest === null
|
|
362
|
-
? {}
|
|
363
|
-
: { [THIRD_PARTY_SOURCE_PINS_DIGEST_KEY]: requireDigest(sourcePinsDigest, THIRD_PARTY_SOURCE_PINS_DIGEST_KEY) }),
|
|
364
|
-
};
|
|
365
|
-
const text = `${JSON.stringify(pin, null, 2)}\n`;
|
|
366
|
-
const descriptor = openSync(
|
|
367
|
-
join(dataRoot, declaration.pin),
|
|
368
|
-
fsConstants.O_WRONLY |
|
|
369
|
-
fsConstants.O_CREAT |
|
|
370
|
-
fsConstants.O_TRUNC |
|
|
371
|
-
fsConstants.O_NOFOLLOW,
|
|
372
|
-
0o644,
|
|
373
|
-
);
|
|
374
|
-
try {
|
|
375
|
-
writeFileSync(descriptor, text);
|
|
376
|
-
} finally {
|
|
377
|
-
closeSync(descriptor);
|
|
378
|
-
}
|
|
379
|
-
return pin;
|
|
380
|
-
}
|