@xemahq/xema 0.59.0 → 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 -1414
- 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 -2294
- 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,379 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// develop-edition — the develop edition's command line.
|
|
3
|
-
//
|
|
4
|
-
// resolve <id> --pins <file> --out <dir> --registry <root>
|
|
5
|
-
// --engine-repository <repository> --engine-signer <certificate identity> --cosign <absolute-path> [--local]
|
|
6
|
-
// [--images-from <image build record>]
|
|
7
|
-
// resolve the edition from the snapshot, seal it against the develop image
|
|
8
|
-
// repositories, write the descriptor and the four locks to <dir>, print the target.
|
|
9
|
-
// The engine is found and proven here (see `engine`), and every refusal of the run is reported
|
|
10
|
-
// in one table (develop-resolve-report.mjs): independent checks all run, a dependent one is
|
|
11
|
-
// reported `blocked by <check>`, and when anything is refused nothing is sealed or written.
|
|
12
|
-
// --images-from takes the digests from the everyday job's image build record instead of the registry probe:
|
|
13
|
-
// no probe and no rehash; satellite entries are cosign-verified against their producer's develop build
|
|
14
|
-
// records, and a subject missing, duplicated or extra in the record refuses (images-from-record.mjs).
|
|
15
|
-
// The workflow run is recorded from GITHUB_REPOSITORY / GITHUB_RUN_ID;
|
|
16
|
-
// --local stamps `local` instead, for a resolve outside GitHub Actions.
|
|
17
|
-
// resolve --definition <file> --pins <file> --out <dir> --registry <root>
|
|
18
|
-
// --engine-image <repository>@sha256:<digest> [--source-image <source>=<registry>/<prefix>]...
|
|
19
|
-
// [--catalogue-username <name> --catalogue-token-env <VAR>] [--local]
|
|
20
|
-
// a CUSTOMER develop edition: the definition resolved against the develop catalogue pinned in
|
|
21
|
-
// catalogue.pin.json beside it (see catalogue-pin.mjs and resolve-customer-edition.mjs), frozen at the
|
|
22
|
-
// customer's own pins. --pins holds exactly one `sources/<name>` commit per source the definition
|
|
23
|
-
// declares (`freeze-sources --definition` writes it); the catalogue digest is frozen into the descriptor's
|
|
24
|
-
// provenance pins as `catalogue`. The id is the definition's. Takes --data-root, --editions-root,
|
|
25
|
-
// --sources-root, --cache-dir (no --deploy-root, no --kernel: the kernel is the catalogue's, from npm).
|
|
26
|
-
// It takes the customer edition's OWN previous seal, exactly one of --previous-lock <file> --previous-lock-sha256 <hex>
|
|
27
|
-
// (the customer edition's last images lock: sha256 of its bytes, its id the definition's) or --first-seal; it carries
|
|
28
|
-
// the generations of the customer's own composed artifacts forward (vendor rows are the catalogue's, unchanged).
|
|
29
|
-
// resolve --definition-at <owner>/<repo>,<path>,<dataRoot> --offering <owner>/<repo>,<path>,<dataRoot>
|
|
30
|
-
// --pins <file> --out <dir> --registry <root> --engine-repository <repository> --engine-signer <certificate identity>
|
|
31
|
-
// --cosign <absolute-path> --offering-previous-lock <file> --offering-previous-lock-sha256 <hex>
|
|
32
|
-
// (--previous-lock <file> --previous-lock-sha256 <hex> | --first-seal) [--source-image <source>=<registry>/<prefix>]... [--local]
|
|
33
|
-
// a CATALOGUE-FREE customer develop edition (develop-catalogue-free-resolve.mjs): the vendor offering named by
|
|
34
|
-
// --offering (its directory in the vendor data checkout) is resolved first by a child `resolve` on the vendor
|
|
35
|
-
// roots, sealed against the OFFERING's previous seal (--offering-previous-lock, as `follow` froze it, held to its
|
|
36
|
-
// sha256 and the offering's id) with the engine it finds and proves; then the definition, read from its repository at
|
|
37
|
-
// --pins "definition-repository", is resolved against the catalogue that child wrote, on its own roots, carrying the
|
|
38
|
-
// customer's own composed generations from --previous-lock (or --first-seal). --pins is the complete frozen set (the
|
|
39
|
-
// vendor pins, the definition's sources/<name>, "definition-repository"); no head is read and nothing is pushed. The
|
|
40
|
-
// edition pins those and the definition digest, no catalogue (the catalogue's content digest is in the distribution
|
|
41
|
-
// lock only), and records the vendor step's engine. catalogue.pin.json beside the definition is refused.
|
|
42
|
-
// Takes the vendor roots.
|
|
43
|
-
// engine <id> --pins <file> --engine-repository <repository> --engine-signer <certificate identity> --cosign <absolute-path>
|
|
44
|
-
// print <repository>@sha256:<digest>: the engine xema-deploy CI published (tag sha-<12 hex>) for the
|
|
45
|
-
// snapshot's xema-deploy commit, its signature verified offline against the pinned trust root as made by
|
|
46
|
-
// --engine-signer with the signed annotations commit=<that commit> and branch=develop
|
|
47
|
-
// (develop-engine-image.mjs). The image `target` and `check-existing` take as --engine-image.
|
|
48
|
-
// target <id> --pins <file> --registry <root> --engine-image <repository>@sha256:<digest> [--images-from <image build record>]
|
|
49
|
-
// print <root>/<develop segment>/xema-edition-<id>:<tag>, the tag being sha256 of the canonical
|
|
50
|
-
// { cli, engine, pins, sourceImages } (snapshotEditionTag): every input of the bytes the artifact records,
|
|
51
|
-
// so the same pins with another engine, source-image map or CLI version are another artifact. With
|
|
52
|
-
// --images-from the record's digest (imageBuildRecordDigest) is one more input, named imageBuildRecord; resolve
|
|
53
|
-
// --images-from prints the same target. The root is always the caller's
|
|
54
|
-
// registry root (e.g. registry.example.com/acme); the develop namespace segment and the repository
|
|
55
|
-
// prefix come from edition-contract.json, and no root is implied.
|
|
56
|
-
// target --definition <file> --pins <file> --registry <root> --engine-image <repository>@sha256:<digest>
|
|
57
|
-
// [--source-image <source>=<registry>/<prefix>]...
|
|
58
|
-
// the same for a customer edition (id = the definition's; the tag covers the pinned catalogue digest).
|
|
59
|
-
// freeze-graph --data-sha <sha> --kernel-sha <sha>
|
|
60
|
-
// --deploy-sha <sha> [--editions-root-url <https url>]
|
|
61
|
-
// [--overrides <json> | --member-pins <selection file>] --out <file>
|
|
62
|
-
// resolve refs/heads/develop once per develop-graph repository (the data root's
|
|
63
|
-
// firstPartySources, at each declared URL) and the editions root; the three checked-out
|
|
64
|
-
// repositories are pinned at what the workflow checked out; write the pins. --member-pins takes a select-records
|
|
65
|
-
// selection (only .pins, 40-hex, is read) and pins each graph member at its selected record commit instead of its
|
|
66
|
-
// develop head: the selection must pin exactly the graph minus its currentResolution members (which must equal
|
|
67
|
-
// the graph members' declared currentResolution), a missing or extra member is refused by name, and a currentResolution
|
|
68
|
-
// member is pinned at its develop head. --member-pins together with --overrides is refused. --kernel-sha is refused
|
|
69
|
-
// unless its declared edition protocol is one this CLI supports (the check choose-kernel applies to a pin).
|
|
70
|
-
// check-existing <id> --pins <file> --artifact <dir> --engine-image <repository>@sha256:<digest>
|
|
71
|
-
// refuse to reuse a pulled artifact whose descriptor disagrees with this snapshot.
|
|
72
|
-
// check-existing --definition <file> --pins <file> --artifact <dir> --engine-image <repository>@sha256:<digest>
|
|
73
|
-
// [--catalogue-username <name> --catalogue-token-env <VAR>] [--source-image <source>=<registry>/<prefix>]...
|
|
74
|
-
// the same for a customer artifact; its descriptor's catalogue provenance pin must also equal the
|
|
75
|
-
// pinned develop catalogue digest, and its own image rows must be the rows the --source-image map composes. It fetches that catalogue (as `resolve --definition` does) to take the
|
|
76
|
-
// kernel from it. Takes --data-root, --cache-dir.
|
|
77
|
-
// coverage <id> --pins <file> --cosign <absolute-path> [--json]
|
|
78
|
-
// READ-ONLY: for every image subject of the snapshot, whether its develop image is producer-signed
|
|
79
|
-
// in the form T72 resolve accepts (attested | signature-verified | no-row | unsigned |
|
|
80
|
-
// annotations-missing | annotation-mismatch | not-built). Prints a table grouped by producer repo
|
|
81
|
-
// and `covered N/M` (--json: the same as data). Exit 0 only when every subject is covered, 1 when
|
|
82
|
-
// not, 2 on an operational error. Takes the roots `resolve` takes; writes nothing.
|
|
83
|
-
// verify-image-record --image <name>@sha256:<digest> --producer <owner/repo> --registry <root> --cosign <absolute-path>
|
|
84
|
-
// whether an authenticated develop build record of the producer lists exactly this image name and digest: the
|
|
85
|
-
// producer's records are read newest run first and verified as select-records verifies them (shared core); a record of a
|
|
86
|
-
// workflow other than the producer's `.github/workflows/ci.yaml` is skipped, and the newest ci.yaml record that lists the image answers.
|
|
87
|
-
// Prints { image, digest, producer, commit }: commit is that of the newest verified ci.yaml record (by run number, then attempt)
|
|
88
|
-
// that lists the digest; it can be an older commit when a later run targeted it, which is safe because the digest binds the bytes.
|
|
89
|
-
// Refuses (exit 1) when no ci.yaml record lists the image, the record
|
|
90
|
-
// names another producer, or cosign refuses the identity. Takes the roots `resolve` takes.
|
|
91
|
-
// select-records --branch develop --registry <root> --cosign <absolute-path> --out <file> [--at <ISO-8601 UTC>] [--published-pins <file>]
|
|
92
|
-
// for every develop-graph member, take the newest build record the data root's record workflow signed for
|
|
93
|
-
// the branch (<root>/build-records/<name>, verified offline by digest against the pinned trusted root, as
|
|
94
|
-
// signed by <data root>/.github/workflows/record-build.yaml at refs/heads/<branch>, called by the member at the
|
|
95
|
-
// record's own commit) and write { pins, snapshot, behind, images, currentResolution }, once (wx); a member that keeps its current resolution (a declared currentResolution, develop-current-resolution.mjs) is skipped with no registry read, listed in currentResolution, and printed as `xema-docs: current resolution (leaves the edition, XEMA-2373)`; behind is { <repo>: { head, commits } }, develop's head and how many commits the selected one trails it by, and one line per member `<short name>: record <commit>, <N> commits behind HEAD` goes to stdout (always `commits`; short name = the repo's last path segment, refused when two members share one); images[] entries carry `member`, the owning repo handle. Any missing, unsigned, mismatched or
|
|
96
|
-
// unreadable record refuses the whole run and writes nothing: a newer bad record is never skipped for an older
|
|
97
|
-
// one. --at takes the newest record completed at or before that time. Only `develop` has a declared signer; the
|
|
98
|
-
// data root must declare dataRootRepositoryUrl. Takes the roots `resolve` takes (no registry root is implied).
|
|
99
|
-
// "Newest" is the newest COMMIT on develop, not the highest run: EVERY record of the branch is read and cosign-verified,
|
|
100
|
-
// the selected commit must equal or descend from every other record's commit (git merge-base on develop fetched
|
|
101
|
-
// from the member), and among that commit's records the highest run and attempt wins. --published-pins takes a file
|
|
102
|
-
// this verb wrote (only .pins is read): a member's published commit is kept when the records are not ahead of it
|
|
103
|
-
// (its own record must exist), a diverged one is refused. Without the flag the rule applies among the records only;
|
|
104
|
-
// part 07 passes the flag.
|
|
105
|
-
// Residual: anyone who can delete registry tags can remove newer records, and this then pins the newest remaining
|
|
106
|
-
// valid one; the guard is part 07's, deploy-latest's owner refuses a snapshot that goes backwards.
|
|
107
|
-
// follow --definition-at <owner>/<repo>,<path>,<dataRoot> --data-sha <sha> --kernel-sha <sha> --deploy-sha <upper bound>
|
|
108
|
-
// --engine-repository <registry>/<path> --registry <root> --cosign <absolute-path> (--first | --current-pins <file>) --out <file>
|
|
109
|
-
// the pins a dev deployment's follow policy selects (develop-follow.mjs), written once (wx) as the COMPLETE frozen
|
|
110
|
-
// set `resolve` reads; nothing else is read or written. The data root checkout is the definition: the data root's
|
|
111
|
-
// declared repository, clean at --data-sha, its data root and distribution directory at dataRoot and path, and the
|
|
112
|
-
// editions root that same repository; the kernel checkout is at --kernel-sha. Members: select-records' newest-commit
|
|
113
|
-
// rule over their signed build records (the same verifier), with the --current-pins as the published pins (behind or
|
|
114
|
-
// equal keeps the current pin, diverged is refused by name), pinned as freeze-graph --member-pins pins them (a member
|
|
115
|
-
// that keeps its current resolution at its develop head). Deploy root: --deploy-sha is an UPPER BOUND, the pin the
|
|
116
|
-
// newest first-parent commit of the deploy checkout at or below it whose engine <--engine-repository>:sha-<12 hex> is
|
|
117
|
-
// published (unpublished skipped and counted, none within the walk limit refused by name). Tooling roots:
|
|
118
|
-
// freeze-graph's rules, then each classified against its current pin by ancestry in its own checkout (behind,
|
|
119
|
-
// diverged or absent from the checkout is refused by type). Declared sources: their develop heads, newer-wins
|
|
120
|
-
// against the current pin by the same ancestry rule. Prints {distributionId, definition, follow: first |
|
|
121
|
-
// from-current, tooling, advanced, kept, added, dropped, deploy: {deploySha, upperBound, skipped}}: --first says so
|
|
122
|
-
// and classifies nothing. Takes the roots `resolve` takes.
|
|
123
|
-
// image-record <id> --selection <file> --pins <file> --out <file>
|
|
124
|
-
// write the edition's image build record (the file `resolve --images-from` reads) from a select-records selection:
|
|
125
|
-
// the subjects are the checked-out snapshot's first-party image subjects (enumerated as `coverage` does). A subject of
|
|
126
|
-
// a member that keeps its current resolution (a declared currentResolution, develop-current-resolution.mjs) is probed as resolve probes it
|
|
127
|
-
// and goes in `images`; every other first-party subject takes the selection's image of its develop repository, whose
|
|
128
|
-
// selected commit must be the snapshot's, and goes in `satellites`. Platforms are read from the registry by digest.
|
|
129
|
-
// Any subject without an image, any commit mismatch refuses the whole run and writes nothing, once (wx). Third-party
|
|
130
|
-
// subjects are ignored. Takes the roots `resolve` takes.
|
|
131
|
-
// choose-kernel [--kernel-pin <40-hex>] --out <file>
|
|
132
|
-
// choose the develop kernel commit in the --kernel checkout (full history; its refs/remotes/origin/develop is the develop head):
|
|
133
|
-
// the newest first-parent commit whose declared edition protocol this CLI supports
|
|
134
|
-
// (kernel-protocol-choice.mjs). Writes {chosenSha, headSha, held, reason} (reason: head-supported |
|
|
135
|
-
// head-ahead | explicit-pin); when held, prints `kernel held at v<N> (<sha12>), head at v<M> (<sha12>):
|
|
136
|
-
// raise the CLI` to stdout (never persisted). A pin wins and is still checked; nothing supported is refused.
|
|
137
|
-
// Takes only --kernel (the checkout need not be built).
|
|
138
|
-
// check-overrides --overrides <json>
|
|
139
|
-
// refuse a pins override that would select the tooling this run executes
|
|
140
|
-
// (the edition tooling's own repository); the workflow runs it before any other checkout.
|
|
141
|
-
// freeze-sources <id> --pins <file> [--overrides <json>] --out <file>
|
|
142
|
-
// add one pin per source the edition's chain declares (run after the editions
|
|
143
|
-
// root is checked out and passed as --editions-root); write the final pins.
|
|
144
|
-
// freeze-sources --definition <file> --out <file>
|
|
145
|
-
// a CUSTOMER edition: one `sources/<name>` pin per source the definition declares, each the head of
|
|
146
|
-
// refs/heads/develop of that source's repository, resolved once; written exclusively (wx).
|
|
147
|
-
//
|
|
148
|
-
// Tokens come from the environment (EVIDENCE_REPOSITORIES_TOKEN, XEMA_GHCR_PULL_TOKEN),
|
|
149
|
-
// never argv. Nothing here writes git or publishes a release edition.
|
|
150
|
-
|
|
151
|
-
import { resolve } from 'node:path';
|
|
152
|
-
|
|
153
|
-
import { writeCatalogue } from './catalogue.mjs';
|
|
154
|
-
import { CUSTOMER_ROOTS, FIRST_SEAL_FLAG, IMAGES_FROM_FLAG, PREVIOUS_LOCK_FLAG, PREVIOUS_LOCK_SHA256_FLAG, headResolver, parseEditionVerbArgs, runCustomerVerb, writeOnce } from './customer-edition-verbs.mjs';
|
|
155
|
-
import { DEFINITION_FLAG } from './customer-flags.mjs';
|
|
156
|
-
import { resolveCatalogueFree } from './develop-catalogue-free-resolve.mjs';
|
|
157
|
-
import { runDevelopCoverage } from './develop-coverage-run.mjs';
|
|
158
|
-
import { CoverageExit } from './develop-coverage.mjs';
|
|
159
|
-
import { resolveDevelopEdition } from './develop-edition-resolve.mjs';
|
|
160
|
-
import { resolveDevelopEngineImage } from './develop-engine-image.mjs';
|
|
161
|
-
import { runFollow } from './develop-follow.mjs';
|
|
162
|
-
import { assertNoToolingOverride, freezeGraph, freezeSources } from './develop-freeze.mjs';
|
|
163
|
-
import { developGraphMembers } from './develop-graph.mjs';
|
|
164
|
-
import { runImageRecord } from './develop-image-record.mjs';
|
|
165
|
-
import { runSelectRecords } from './develop-select-records.mjs';
|
|
166
|
-
import { readSelectionPins } from './develop-selection-pins.mjs';
|
|
167
|
-
import { runVerifyImageRecord } from './develop-verify-image-record.mjs';
|
|
168
|
-
import { LOCAL_WORKFLOW, assertExistingArtifactMatches, developEditionTarget, editionRepository, workflowFromEnv, writeEditionArtifact } from './edition-artifact.mjs';
|
|
169
|
-
import { EditionChannel, EditionKind } from './edition-constants.mjs';
|
|
170
|
-
import { WorkspaceRoot, configureEditionWorkspaceFromProcess, isEntryModule, kernelRepoDir } from './edition-workspace.mjs';
|
|
171
|
-
import { descriptorEvidenceTrust } from './evidence-trust-policy.mjs';
|
|
172
|
-
import { createSatelliteVerifier, imageBuildRecordDigest, readImageBuildRecord } from './images-from-record.mjs';
|
|
173
|
-
import { assertKernelCommitSupported, chooseKernelCommit } from './kernel-protocol-choice.mjs';
|
|
174
|
-
import { loadKernelDistributionSchemas } from './lib.mjs';
|
|
175
|
-
import { snapshotPinSource } from './pin-source.mjs';
|
|
176
|
-
import { PREVIOUS_SEAL_SIGNER_FLAG, previousSealFromRegistry } from './previous-seal-registry.mjs';
|
|
177
|
-
import { composeEdition } from './resolve-distribution.mjs';
|
|
178
|
-
import { resolvePreviousSeal } from './resolve-images.mjs';
|
|
179
|
-
import { readStrictJsonFile } from './strict-json.mjs';
|
|
180
|
-
|
|
181
|
-
// The roots a verb takes. A customer form (it names --definition) takes fewer, and never the kernel (the
|
|
182
|
-
// catalogue's kernel is downloaded from npm into the cache root): `target` none, `check-existing` the data
|
|
183
|
-
// root and the cache, `freeze-sources` the data root only, `resolve` all but the deploy root. `check-overrides`
|
|
184
|
-
// takes only the data root in either form: it judges its --overrides JSON against the pin roles the data
|
|
185
|
-
// root declares, so it reads nothing else and refuses every other root flag.
|
|
186
|
-
const VENDOR_ROOTS = Object.freeze([WorkspaceRoot.Data, WorkspaceRoot.Editions, WorkspaceRoot.Sources, WorkspaceRoot.Kernel, WorkspaceRoot.Deploy, WorkspaceRoot.Cache]);
|
|
187
|
-
// `coverage` is the P2b gate: 1 means "not covered", so an operational error is a distinct 2.
|
|
188
|
-
const COVERAGE_COMMAND = 'coverage';
|
|
189
|
-
const COVERAGE_OPERATIONAL_EXIT = CoverageExit.Operational;
|
|
190
|
-
const DATA_ROOT_ONLY_COMMANDS = Object.freeze(['check-overrides']);
|
|
191
|
-
// `choose-kernel` reads the kernel checkout's git history only, before the kernel is built.
|
|
192
|
-
const KERNEL_ROOT_ONLY_COMMANDS = Object.freeze(['choose-kernel']);
|
|
193
|
-
|
|
194
|
-
if (isEntryModule(import.meta.url)) {
|
|
195
|
-
const [command] = process.argv.slice(2);
|
|
196
|
-
if (DATA_ROOT_ONLY_COMMANDS.includes(command)) {
|
|
197
|
-
configureEditionWorkspaceFromProcess([WorkspaceRoot.Data], { refuseOthers: true });
|
|
198
|
-
} else if (KERNEL_ROOT_ONLY_COMMANDS.includes(command)) {
|
|
199
|
-
configureEditionWorkspaceFromProcess([WorkspaceRoot.Kernel], { refuseOthers: true });
|
|
200
|
-
} else {
|
|
201
|
-
const customerForm = process.argv.includes(DEFINITION_FLAG);
|
|
202
|
-
configureEditionWorkspaceFromProcess(customerForm ? (CUSTOMER_ROOTS[command] ?? VENDOR_ROOTS) : VENDOR_ROOTS, {
|
|
203
|
-
refuseOthers: customerForm && CUSTOMER_ROOTS[command] !== undefined,
|
|
204
|
-
...(command === COVERAGE_COMMAND ? { failureExitCode: COVERAGE_OPERATIONAL_EXIT } : {}),
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/** Parse `<command> [<id>] --flag value ...` against the closed vocabulary of the develop command. */
|
|
210
|
-
export const parseDevelopEditionArgs = (argv) => parseEditionVerbArgs(EditionChannel.Develop, argv);
|
|
211
|
-
|
|
212
|
-
function parseOverrides(text) {
|
|
213
|
-
if (text === undefined || text.trim() === '') {return {};}
|
|
214
|
-
const parsed = JSON.parse(text);
|
|
215
|
-
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
216
|
-
throw new Error('--overrides must be a JSON object mapping pin key -> 40-hex commit');
|
|
217
|
-
}
|
|
218
|
-
return parsed;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/** The target-tag input of `--images-from`: the record's digest, or nothing on the probe path. */
|
|
222
|
-
async function imageBuildRecordTagInput(options) {
|
|
223
|
-
return options[IMAGES_FROM_FLAG] === undefined ? {} : { imageBuildRecordDigest: imageBuildRecordDigest(await readImageBuildRecord(options[IMAGES_FROM_FLAG])) };
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
async function run(argv, env) {
|
|
227
|
-
const { command, id, options, customer, catalogueFree } = parseDevelopEditionArgs(argv);
|
|
228
|
-
switch (command) {
|
|
229
|
-
case 'target': {
|
|
230
|
-
if (customer) {return runCustomerVerb({ channel: EditionChannel.Develop, command, options, env });}
|
|
231
|
-
console.log(developEditionTarget(id, readStrictJsonFile(options['--pins']), { registry: options['--registry'], engineImage: options['--engine-image'], ...(await imageBuildRecordTagInput(options)) }));
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
case 'resolve': {
|
|
235
|
-
if (customer) {return runCustomerVerb({ channel: EditionChannel.Develop, command, options, env });}
|
|
236
|
-
if (catalogueFree) {
|
|
237
|
-
await resolveCatalogueFree({ options, env });
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
const pins = readStrictJsonFile(options['--pins']);
|
|
241
|
-
const workflow = options['--local'] ? LOCAL_WORKFLOW : workflowFromEnv(env);
|
|
242
|
-
const evidenceTrustPolicy = await descriptorEvidenceTrust({ kind: EditionKind.Resolved, channel: EditionChannel.Develop });
|
|
243
|
-
const { catalogue, engineImage, ...resolved } = await resolveDevelopEdition({
|
|
244
|
-
id,
|
|
245
|
-
pins,
|
|
246
|
-
env,
|
|
247
|
-
engine: { repository: options['--engine-repository'], signer: options['--engine-signer'] },
|
|
248
|
-
cosignBinary: options['--cosign'],
|
|
249
|
-
previousLock: await resolvePreviousSeal({
|
|
250
|
-
distributionId: id,
|
|
251
|
-
previousLockPath: options[PREVIOUS_LOCK_FLAG],
|
|
252
|
-
previousLockSha256: options[PREVIOUS_LOCK_SHA256_FLAG],
|
|
253
|
-
firstSeal: Boolean(options[FIRST_SEAL_FLAG]),
|
|
254
|
-
...(options[PREVIOUS_SEAL_SIGNER_FLAG] === undefined ? {} : {
|
|
255
|
-
registry: {
|
|
256
|
-
find: () => previousSealFromRegistry({
|
|
257
|
-
repository: editionRepository(id, options['--registry'], EditionChannel.Develop),
|
|
258
|
-
signerIdentity: options[PREVIOUS_SEAL_SIGNER_FLAG],
|
|
259
|
-
cosignBinary: options['--cosign'],
|
|
260
|
-
env,
|
|
261
|
-
}),
|
|
262
|
-
},
|
|
263
|
-
}),
|
|
264
|
-
}),
|
|
265
|
-
...(options[IMAGES_FROM_FLAG] === undefined ? {} : {
|
|
266
|
-
imagesFrom: await readImageBuildRecord(options[IMAGES_FROM_FLAG]),
|
|
267
|
-
verifySatellites: createSatelliteVerifier({ registry: options['--registry'], cosignBinary: options['--cosign'], env }),
|
|
268
|
-
}),
|
|
269
|
-
});
|
|
270
|
-
const target = developEditionTarget(id, pins, { registry: options['--registry'], engineImage, ...(await imageBuildRecordTagInput(options)) });
|
|
271
|
-
const outDir = resolve(options['--out']);
|
|
272
|
-
writeEditionArtifact({
|
|
273
|
-
outDir,
|
|
274
|
-
channel: EditionChannel.Develop,
|
|
275
|
-
distributionId: id,
|
|
276
|
-
pins,
|
|
277
|
-
workflow,
|
|
278
|
-
evidenceTrustPolicy,
|
|
279
|
-
engineImage,
|
|
280
|
-
...resolved,
|
|
281
|
-
});
|
|
282
|
-
writeCatalogue(outDir, catalogue);
|
|
283
|
-
console.log(target);
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
case 'engine':
|
|
287
|
-
console.log(
|
|
288
|
-
await resolveDevelopEngineImage({
|
|
289
|
-
pins: readStrictJsonFile(options['--pins']),
|
|
290
|
-
engine: { repository: options['--engine-repository'], signer: options['--engine-signer'] },
|
|
291
|
-
cosignBinary: options['--cosign'],
|
|
292
|
-
env,
|
|
293
|
-
}),
|
|
294
|
-
);
|
|
295
|
-
return;
|
|
296
|
-
case 'coverage':
|
|
297
|
-
return runDevelopCoverage({
|
|
298
|
-
id,
|
|
299
|
-
pins: readStrictJsonFile(options['--pins']),
|
|
300
|
-
cosignBinary: options['--cosign'],
|
|
301
|
-
json: options['--json'] === true,
|
|
302
|
-
env,
|
|
303
|
-
});
|
|
304
|
-
case 'follow':
|
|
305
|
-
await runFollow({ options, env });
|
|
306
|
-
return;
|
|
307
|
-
case 'select-records':
|
|
308
|
-
await runSelectRecords({ options, env });
|
|
309
|
-
return;
|
|
310
|
-
case 'image-record':
|
|
311
|
-
await runImageRecord({ id, options, env });
|
|
312
|
-
return;
|
|
313
|
-
case 'verify-image-record':
|
|
314
|
-
await runVerifyImageRecord({ options, env });
|
|
315
|
-
return;
|
|
316
|
-
case 'check-existing': {
|
|
317
|
-
if (customer) {return runCustomerVerb({ channel: EditionChannel.Develop, command, options, env });}
|
|
318
|
-
assertExistingArtifactMatches({
|
|
319
|
-
artifactDir: resolve(options['--artifact']),
|
|
320
|
-
distributionId: id,
|
|
321
|
-
channel: EditionChannel.Develop,
|
|
322
|
-
evidenceTrustPolicy: await descriptorEvidenceTrust({ kind: EditionKind.Resolved, channel: EditionChannel.Develop }),
|
|
323
|
-
pins: readStrictJsonFile(options['--pins']),
|
|
324
|
-
engineImage: options['--engine-image'],
|
|
325
|
-
});
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
case 'check-overrides': {
|
|
329
|
-
assertNoToolingOverride(parseOverrides(options['--overrides']));
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
case 'choose-kernel': {
|
|
333
|
-
const { choice, notice } = chooseKernelCommit({ repoDir: kernelRepoDir(), pin: options['--kernel-pin'] });
|
|
334
|
-
writeOnce(options['--out'], choice);
|
|
335
|
-
if (notice !== undefined) {console.log(notice);}
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
case 'freeze-graph': {
|
|
339
|
-
assertKernelCommitSupported({ repoDir: kernelRepoDir(), commit: options['--kernel-sha'], label: `--kernel-sha ${options['--kernel-sha']}` });
|
|
340
|
-
const pins = freezeGraph({
|
|
341
|
-
dataSha: options['--data-sha'],
|
|
342
|
-
kernelSha: options['--kernel-sha'],
|
|
343
|
-
deploySha: options['--deploy-sha'],
|
|
344
|
-
editionsRootUrl: options['--editions-root-url'],
|
|
345
|
-
overrides: parseOverrides(options['--overrides']),
|
|
346
|
-
...(options['--member-pins'] === undefined ? {} : { memberPins: readSelectionPins(options['--member-pins'], '--member-pins', developGraphMembers()) }),
|
|
347
|
-
...headResolver(EditionChannel.Develop, env),
|
|
348
|
-
});
|
|
349
|
-
writeOnce(options['--out'], pins);
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
case 'freeze-sources': {
|
|
353
|
-
if (customer) {return runCustomerVerb({ channel: EditionChannel.Develop, command, options, env });}
|
|
354
|
-
const pins = readStrictJsonFile(options['--pins']);
|
|
355
|
-
const { parseDistribution } = await loadKernelDistributionSchemas();
|
|
356
|
-
const declaredSources = composeEdition(parseDistribution, id, snapshotPinSource(pins)).declaredSources;
|
|
357
|
-
writeOnce(
|
|
358
|
-
options['--out'],
|
|
359
|
-
freezeSources({ pins, declaredSources, overrides: parseOverrides(options['--overrides']), ...headResolver(EditionChannel.Develop, env) }),
|
|
360
|
-
);
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
default:
|
|
364
|
-
throw new Error(`unhandled command ${command}`);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (isEntryModule(import.meta.url)) {
|
|
369
|
-
const argv = process.argv.slice(2);
|
|
370
|
-
run(argv, process.env).then(
|
|
371
|
-
(code) => {
|
|
372
|
-
if (typeof code === 'number') {process.exitCode = code;}
|
|
373
|
-
},
|
|
374
|
-
(error) => {
|
|
375
|
-
console.error(`[develop-edition] ${error.message}`);
|
|
376
|
-
process.exit(argv[0] === COVERAGE_COMMAND ? COVERAGE_OPERATIONAL_EXIT : 1);
|
|
377
|
-
},
|
|
378
|
-
);
|
|
379
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
// develop-engine-image — the engine image a develop edition is deployed with, found and proven.
|
|
2
|
-
//
|
|
3
|
-
// The edition's engine is the one the deploy repository's CI published for EXACTLY the deploy commit the snapshot pins
|
|
4
|
-
// (tag `sha-<12 hex>`, keyless signature by a `workflow_run` follower of a green push CI). The tag only finds the digest.
|
|
5
|
-
// The signature is checked offline against the pinned trust root through the CLI's one cosign path (pinned-cosign.mjs)
|
|
6
|
-
// with the publisher's EXACT identity, issuer, workflow repository and ref (cosign-certificate-constraints.mjs); never a
|
|
7
|
-
// pattern. A follower runs the default branch's copy of the workflow, so the certificate's own workflow commit is not the
|
|
8
|
-
// built one: the built commit is bound by the signed annotations commit=<40 hex> and branch=develop.
|
|
9
|
-
// The digest is what the edition records.
|
|
10
|
-
|
|
11
|
-
import { RefusalError } from './collected-refusals.mjs';
|
|
12
|
-
import { certificateIdentityArgs } from './cosign-certificate-constraints.mjs';
|
|
13
|
-
import { assertEngineImage } from './edition-artifact.mjs';
|
|
14
|
-
import { assertPublisher, publisherIdentity } from './edition-publisher.mjs';
|
|
15
|
-
import { deployPinKey } from './pin-source.mjs';
|
|
16
|
-
import { cosignEnvironment, withPinnedCosign } from './pinned-cosign.mjs';
|
|
17
|
-
import { splitImageRef } from './registry-credentials.mjs';
|
|
18
|
-
import { isNotPublishedYet } from './seal-image-digests.mjs';
|
|
19
|
-
import { GITHUB_ACTIONS_OIDC_ISSUER } from './third-party-source-evidence.mjs';
|
|
20
|
-
|
|
21
|
-
const COMMIT_PATTERN = /^[a-f0-9]{40}$/;
|
|
22
|
-
const TAG_PREFIX = 'sha-';
|
|
23
|
-
const TAG_COMMIT_LENGTH = 12;
|
|
24
|
-
const DEVELOP_BRANCH = 'develop';
|
|
25
|
-
const STDERR_TAIL_BYTES = 800;
|
|
26
|
-
|
|
27
|
-
/** The tag xema-deploy CI gives the engine it publishes for `deploySha`. */
|
|
28
|
-
export const engineTagOf = (deploySha) => `${TAG_PREFIX}${deploySha.slice(0, TAG_COMMIT_LENGTH)}`;
|
|
29
|
-
|
|
30
|
-
const IDENTITY_PATTERN = /^https:\/\/github\.com\/([^/@]+\/[^/@]+)\/(\.github\/workflows\/[^/@]+)@(.+)$/;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The signer an exact certificate identity `https://github.com/<owner>/<name>/.github/workflows/<file>@<ref>` names, held to
|
|
34
|
-
* the publisher grammar of edition-contract.json (so no pattern, no wildcard).
|
|
35
|
-
*/
|
|
36
|
-
export function engineSignerOf(identity) {
|
|
37
|
-
const match = typeof identity === 'string' ? IDENTITY_PATTERN.exec(identity) : null;
|
|
38
|
-
if (match === null) {
|
|
39
|
-
throw new RefusalError(`--engine-signer must be the exact certificate identity https://github.com/<owner>/<name>/.github/workflows/<file>@<ref>; got ${JSON.stringify(identity)}`);
|
|
40
|
-
}
|
|
41
|
-
const publisher = assertPublisher({ repository: match[1], workflow: match[2], ref: match[3] }, '--engine-signer');
|
|
42
|
-
return { certificateIdentity: publisherIdentity(publisher), oidcIssuer: GITHUB_ACTIONS_OIDC_ISSUER, githubWorkflow: { repository: publisher.repository, ref: publisher.ref } };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const tail = (text) => String(text).trim().slice(-STDERR_TAIL_BYTES);
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @param {object} request
|
|
49
|
-
* @param {Record<string, string>} request.pins the snapshot's pins; the xema-deploy commit is read from them
|
|
50
|
-
* @param {{repository: string, signer: string}} request.engine the engine repository and the signer's exact certificate identity
|
|
51
|
-
* @param {string} request.cosignBinary absolute path of cosign
|
|
52
|
-
* @param {object} request.env the environment the registry credentials are named in
|
|
53
|
-
* @param {object} [request.pinned] withPinnedCosign's injections (tests)
|
|
54
|
-
* @returns {Promise<string>} `<repository>@sha256:<digest>`
|
|
55
|
-
*/
|
|
56
|
-
export async function resolveDevelopEngineImage({ pins, engine, cosignBinary, env, pinned = {} }) {
|
|
57
|
-
const deploySha = pins[deployPinKey()];
|
|
58
|
-
if (typeof deploySha !== 'string' || !COMMIT_PATTERN.test(deploySha)) {
|
|
59
|
-
throw new RefusalError(`the pin ${deployPinKey()} is ${JSON.stringify(deploySha)}, not a 40-hex commit`);
|
|
60
|
-
}
|
|
61
|
-
const { repository } = engine;
|
|
62
|
-
const signer = engineSignerOf(engine.signer);
|
|
63
|
-
const tag = engineTagOf(deploySha);
|
|
64
|
-
const { authority, repository: path } = splitImageRef(repository);
|
|
65
|
-
return withPinnedCosign({ cosignBinary, env, ...pinned }, async ({ runCosign, cosignEnvFor, clientFor, trustedRootPath }) => {
|
|
66
|
-
let digest;
|
|
67
|
-
try {
|
|
68
|
-
digest = (await clientFor(authority).getManifestByTag(path, tag)).digest;
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if (!isNotPublishedYet(error)) {throw error;}
|
|
71
|
-
throw new RefusalError(
|
|
72
|
-
`no engine ${repository}:${tag} for the ${deployPinKey()} commit ${deploySha}. The deploy repository's CI publishes one for a green push to develop or main, ` +
|
|
73
|
-
'or a CI dispatch at that branch; a commit pushed with GITHUB_TOKEN has none until CI is dispatched. ' +
|
|
74
|
-
`Dispatch that CI at develop, or pin ${deployPinKey()} to a commit that has an engine.`,
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
const image = `${repository}@${digest}`;
|
|
78
|
-
const result = await runCosign(
|
|
79
|
-
[
|
|
80
|
-
'verify', '--offline', '--trusted-root', trustedRootPath,
|
|
81
|
-
...certificateIdentityArgs(signer),
|
|
82
|
-
'-a', `commit=${deploySha}`, '-a', `branch=${DEVELOP_BRANCH}`,
|
|
83
|
-
image,
|
|
84
|
-
],
|
|
85
|
-
cosignEnvironment(cosignEnvFor, authority),
|
|
86
|
-
);
|
|
87
|
-
if (result.code !== 0) {
|
|
88
|
-
throw new RefusalError(
|
|
89
|
-
`${image} (${tag}) is not signed by the engine signer ${signer.certificateIdentity} with commit=${deploySha} branch=${DEVELOP_BRANCH}; ` +
|
|
90
|
-
`refusing it as this edition's engine (cosign exit ${result.code}): ${tail(result.stderr)}`,
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
return assertEngineImage(image);
|
|
94
|
-
});
|
|
95
|
-
}
|