@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,152 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// release-edition-artifact — write the OCI artifact of a RELEASE edition from
|
|
3
|
-
// the committed, sealed locks of the editions root.
|
|
4
|
-
//
|
|
5
|
-
// <id> --channel release --registry <root> --coordinate <tag>
|
|
6
|
-
// --engine-image <repository>@sha256:<digest> --out <dir> [--local]
|
|
7
|
-
//
|
|
8
|
-
// The artifact has the layout of every edition (edition-artifact.mjs): the
|
|
9
|
-
// descriptor plus the four locks and the offering's catalogue.json, written to <dir>, and the target
|
|
10
|
-
// `<root>/<release namespace segment>/xema-edition-<id>:<coordinate>` is printed. The workflow pushes
|
|
11
|
-
// <dir> with oras and signs the manifest DIGEST with cosign; the tag is for
|
|
12
|
-
// humans. A lock set that is not sealed is refused: an unsealed images lock names
|
|
13
|
-
// no image digests, so nothing could be admitted against it.
|
|
14
|
-
|
|
15
|
-
import { readFileSync } from 'node:fs';
|
|
16
|
-
import { join, resolve } from 'node:path';
|
|
17
|
-
|
|
18
|
-
import { verifyBiomeContentHashes } from './biome-content.mjs';
|
|
19
|
-
import { writeCatalogue } from './catalogue.mjs';
|
|
20
|
-
import { assertCanonicalDistributionId } from './distribution-paths.mjs';
|
|
21
|
-
import { LOCAL_WORKFLOW, assertEngineImage, editionTarget, workflowFromEnv, writeEditionArtifact } from './edition-artifact.mjs';
|
|
22
|
-
import { assertRosteredChartSetLock } from './edition-chart-set.mjs';
|
|
23
|
-
import { EditionChannel, EditionKind, EditionLockFile } from './edition-constants.mjs';
|
|
24
|
-
import { editionPinnedInputs } from './edition-pinned-inputs.mjs';
|
|
25
|
-
import { WorkspaceRoot, configureEditionWorkspaceFromProcess, editionsRoot, isEntryModule } from './edition-workspace.mjs';
|
|
26
|
-
import { descriptorEvidenceTrust } from './evidence-trust-policy.mjs';
|
|
27
|
-
import { loadKernelDistributionSchemas, validateImmutableImageLock } from './lib.mjs';
|
|
28
|
-
import { releaseCatalogue } from './release-catalogue.mjs';
|
|
29
|
-
import { assertReleaseEditionTree } from './release-channel-guard.mjs';
|
|
30
|
-
import { externalSourceTrees, sourceTreeLocator } from './resolve-images.mjs';
|
|
31
|
-
import { readSealedDistributionLock } from './sealed-distribution-lock.mjs';
|
|
32
|
-
import { createPinnedSourceAuthority } from './source-authority.mjs';
|
|
33
|
-
|
|
34
|
-
if (isEntryModule(import.meta.url)) {
|
|
35
|
-
configureEditionWorkspaceFromProcess([WorkspaceRoot.Data, WorkspaceRoot.Editions, WorkspaceRoot.Sources, WorkspaceRoot.Kernel]);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const VALUE_FLAGS = Object.freeze(['--channel', '--registry', '--coordinate', '--engine-image', '--out']);
|
|
39
|
-
const REQUIRED_FLAGS = VALUE_FLAGS;
|
|
40
|
-
const DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/;
|
|
41
|
-
|
|
42
|
-
/** Parse `<id> --flag value ...` (the argv AFTER the `artifact` verb, which the edition dispatcher has already stripped); only the release channel is written by this verb. */
|
|
43
|
-
export function parseReleaseArtifactArgs(argv) {
|
|
44
|
-
const rest = argv;
|
|
45
|
-
const options = {};
|
|
46
|
-
const positional = [];
|
|
47
|
-
for (let i = 0; i < rest.length; i += 1) {
|
|
48
|
-
const arg = rest[i];
|
|
49
|
-
if (arg === '--local') {
|
|
50
|
-
options[arg] = true;
|
|
51
|
-
} else if (VALUE_FLAGS.includes(arg)) {
|
|
52
|
-
const value = rest[i + 1];
|
|
53
|
-
if (value === undefined || (value.startsWith('--') && value.length > 2)) {throw new Error(`${arg} requires a value`);}
|
|
54
|
-
options[arg] = value;
|
|
55
|
-
i += 1;
|
|
56
|
-
} else if (arg.startsWith('--')) {
|
|
57
|
-
throw new Error(`unknown argument ${arg} for artifact`);
|
|
58
|
-
} else {
|
|
59
|
-
positional.push(arg);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (positional.length !== 1) {throw new Error('artifact takes exactly one <distribution-id>');}
|
|
63
|
-
for (const required of REQUIRED_FLAGS) {
|
|
64
|
-
if (options[required] === undefined) {throw new Error(`artifact requires ${required}`);}
|
|
65
|
-
}
|
|
66
|
-
if (options['--channel'] !== EditionChannel.Release) {
|
|
67
|
-
throw new Error(
|
|
68
|
-
`--channel ${JSON.stringify(options['--channel'])}: this verb writes ${EditionChannel.Release} editions from the committed locks; ` +
|
|
69
|
-
'a develop edition is resolved from a snapshot by `xema edition develop resolve`',
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
assertCanonicalDistributionId(positional[0]);
|
|
73
|
-
assertEngineImage(options['--engine-image']);
|
|
74
|
-
return { id: positional[0], options };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** The images lock must be sealed: every subject names the registry digest of its image. */
|
|
78
|
-
export function assertSealedImageLock(lock, label) {
|
|
79
|
-
const subjects = lock?.subjects ?? [];
|
|
80
|
-
if (subjects.length === 0) {throw new Error(`${label} carries no subjects, so it seals nothing`);}
|
|
81
|
-
const unsealed = subjects.filter((subject) => !DIGEST_PATTERN.test(String(subject?.imageDigest)));
|
|
82
|
-
if (unsealed.length > 0) {
|
|
83
|
-
throw new Error(
|
|
84
|
-
`${label} is not sealed: ${unsealed.length} of ${subjects.length} subjects carry no imageDigest ` +
|
|
85
|
-
`(first: ${unsealed[0].kind}:${unsealed[0].id}). Run \`xema edition resolve-digests\` first.`,
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* The four committed locks of a release edition, validated. Nothing is published from a set
|
|
92
|
-
* that is not sealed and intact: the images lock names every digest, the distribution lock is
|
|
93
|
-
* the SEALED grammar (an unsealed one is refused), and every `biomeContentHash` is recomputed
|
|
94
|
-
* from its inputs and compared, so a lock edited after its seal is refused, naming the biome.
|
|
95
|
-
*/
|
|
96
|
-
export async function readCommittedEdition(id, root = editionsRoot()) {
|
|
97
|
-
const dir = join(root, id);
|
|
98
|
-
assertReleaseEditionTree(dir);
|
|
99
|
-
const read = (file) => JSON.parse(readFileSync(join(dir, file), 'utf8'));
|
|
100
|
-
const schemas = await loadKernelDistributionSchemas();
|
|
101
|
-
const imageLock = validateImmutableImageLock(schemas.parseImageLock(read(EditionLockFile.Images)), schemas);
|
|
102
|
-
assertSealedImageLock(imageLock, join(dir, EditionLockFile.Images));
|
|
103
|
-
const { raw: distributionLock, sealed } = readSealedDistributionLock({
|
|
104
|
-
schemas,
|
|
105
|
-
lockPath: join(dir, EditionLockFile.Distribution),
|
|
106
|
-
distributionId: id,
|
|
107
|
-
});
|
|
108
|
-
const authority = createPinnedSourceAuthority({ pins: (await editionPinnedInputs(id, { schemas })).repositoryPins });
|
|
109
|
-
await verifyBiomeContentHashes({
|
|
110
|
-
schemas,
|
|
111
|
-
lock: sealed,
|
|
112
|
-
imageLock,
|
|
113
|
-
locate: sourceTreeLocator(externalSourceTrees(sealed)),
|
|
114
|
-
vendoredCommit: (repo) => authority.vendoredSourceCommitForRepository(repo),
|
|
115
|
-
});
|
|
116
|
-
return {
|
|
117
|
-
distributionLock,
|
|
118
|
-
imageLock: read(EditionLockFile.Images),
|
|
119
|
-
authorizationLock: read(EditionLockFile.Authorization),
|
|
120
|
-
chartSetLock: assertRosteredChartSetLock(read(EditionLockFile.ChartSet), join(dir, EditionLockFile.ChartSet)),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
async function run(argv, env) {
|
|
125
|
-
const { id, options } = parseReleaseArtifactArgs(argv);
|
|
126
|
-
const target = editionTarget(id, options['--registry'], EditionChannel.Release, options['--coordinate']);
|
|
127
|
-
const workflow = options['--local'] ? LOCAL_WORKFLOW : workflowFromEnv(env);
|
|
128
|
-
const locks = await readCommittedEdition(id);
|
|
129
|
-
// Refuses (EvidenceTrustRequiredError) unless the policy is ARMED on the
|
|
130
|
-
// release channel: a release artifact is never written not-armed.
|
|
131
|
-
const evidenceTrustPolicy = await descriptorEvidenceTrust({ kind: EditionKind.Resolved, channel: EditionChannel.Release });
|
|
132
|
-
const outDir = resolve(options['--out']);
|
|
133
|
-
writeEditionArtifact({
|
|
134
|
-
outDir,
|
|
135
|
-
channel: EditionChannel.Release,
|
|
136
|
-
distributionId: id,
|
|
137
|
-
pins: {},
|
|
138
|
-
workflow,
|
|
139
|
-
evidenceTrustPolicy,
|
|
140
|
-
engineImage: options['--engine-image'],
|
|
141
|
-
...locks,
|
|
142
|
-
});
|
|
143
|
-
writeCatalogue(outDir, await releaseCatalogue(id, locks));
|
|
144
|
-
console.log(target);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (isEntryModule(import.meta.url)) {
|
|
148
|
-
run(process.argv.slice(2), process.env).catch((error) => {
|
|
149
|
-
console.error(`[edition-artifact] ${error.message}`);
|
|
150
|
-
process.exit(1);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// release-edition — the customer RELEASE edition's command line: `xema edition release <verb> --definition <file>`.
|
|
3
|
-
//
|
|
4
|
-
// It is `xema edition develop <verb> --definition <file>` on the release channel: the same parser, the same frame
|
|
5
|
-
// and the same verbs (customer-edition-verbs.mjs); only the inputs differ. The id is the definition's, and the
|
|
6
|
-
// catalogue is the one pinned for `release` in catalogue.pin.json beside the definition.
|
|
7
|
-
//
|
|
8
|
-
// freeze-sources --definition <file> --out <file>
|
|
9
|
-
// one `sources/<name>` pin per source the definition declares, each at the source's DECLARED ref (a branch,
|
|
10
|
-
// or a tag taken at its peeled commit); a ref that is both a branch and a tag, or missing, is refused.
|
|
11
|
-
// Written exclusively (wx).
|
|
12
|
-
// target --definition <file> --pins <file> --registry <root> --engine-image <repository>@sha256:<digest>
|
|
13
|
-
// [--source-image <source>=<registry>/<prefix>]...
|
|
14
|
-
// print <root>/<release segment>/xema-edition-<id>:<tag>, the tag being snapshotEditionTag of the CLI
|
|
15
|
-
// version, the engine image, the pins and the source-image map (as on develop).
|
|
16
|
-
// check-existing --definition <file> --pins <file> --artifact <dir> --engine-image <repository>@sha256:<digest>
|
|
17
|
-
// [--catalogue-username <name> --catalogue-token-env <VAR>] [--source-image <source>=<registry>/<prefix>]...
|
|
18
|
-
// refuse to reuse a pulled artifact whose descriptor disagrees with this snapshot.
|
|
19
|
-
// resolve --definition <file> --pins <file> --out <dir> --registry <root> --engine-image <repository>@sha256:<digest>
|
|
20
|
-
// [--source-image <source>=<registry>/<prefix>]... [--catalogue-username <name> --catalogue-token-env <VAR>] [--local]
|
|
21
|
-
// resolve the edition against the pinned release catalogue, seal the customer's own image rows at the digests
|
|
22
|
-
// the registry serves for `<repository>:<contentHash>` (it never builds an image), and write the descriptor and
|
|
23
|
-
// the four locks to <dir>.
|
|
24
|
-
//
|
|
25
|
-
// `resolve` and `check-existing` read the release catalogue only after its signed E4 evidence verified against the
|
|
26
|
-
// CUSTOMER's own evidence trust policy (catalogue-evidence.mjs), and require that policy armed on the release channel.
|
|
27
|
-
// Until the E4 referrer layout lands, no catalogue verifies and both refuse. Takes the roots of the
|
|
28
|
-
// develop customer form (--data-root, --editions-root, --sources-root, --cache-dir per verb), never the kernel.
|
|
29
|
-
|
|
30
|
-
import { customerRootsOf, parseEditionVerbArgs, runCustomerVerb } from './customer-edition-verbs.mjs';
|
|
31
|
-
import { EditionChannel } from './edition-constants.mjs';
|
|
32
|
-
import { configureEditionWorkspaceFromProcess, isEntryModule } from './edition-workspace.mjs';
|
|
33
|
-
|
|
34
|
-
if (isEntryModule(import.meta.url)) {
|
|
35
|
-
const [command] = process.argv.slice(2);
|
|
36
|
-
try {
|
|
37
|
-
configureEditionWorkspaceFromProcess(customerRootsOf(command), { refuseOthers: true });
|
|
38
|
-
} catch (error) {
|
|
39
|
-
console.error(`[release-edition] ${error.message}`);
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async function run(argv, env) {
|
|
45
|
-
const { command, options } = parseEditionVerbArgs(EditionChannel.Release, argv);
|
|
46
|
-
await runCustomerVerb({ channel: EditionChannel.Release, command, options, env });
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (isEntryModule(import.meta.url)) {
|
|
50
|
-
run(process.argv.slice(2), process.env).catch((error) => {
|
|
51
|
-
console.error(`[release-edition] ${error.message}`);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
2
|
-
// A REMEDY THIS REPOSITORY CAN ACTUALLY RUN.
|
|
3
|
-
//
|
|
4
|
-
// WHY THIS EXISTS
|
|
5
|
-
//
|
|
6
|
-
// This repository's `package.json` has NO `scripts` block. Every `pnpm
|
|
7
|
-
// dist:*` command is declared one directory up, in the AGGREGATOR's
|
|
8
|
-
// `package.json`, as a bare `node repos-infra/xema-distributions/<file>.mjs`.
|
|
9
|
-
// So a diagnostic printing `pnpm dist:images <id>` names a command its reader
|
|
10
|
-
// cannot run — and the reader of a dist-check failure is standing in a FLAT
|
|
11
|
-
// checkout of this repository, which is exactly where the pnpm spelling does
|
|
12
|
-
// not resolve. A remedy that cannot be run where it is printed is a dead end
|
|
13
|
-
// (`.claude/rules/writing-boundary-checks.md`).
|
|
14
|
-
//
|
|
15
|
-
// Measured 2026-09-28 at `origin/develop`: 52 `pnpm dist:*` references in
|
|
16
|
-
// this repository, 19 such scripts declared in the aggregator, and ZERO
|
|
17
|
-
// declared here.
|
|
18
|
-
//
|
|
19
|
-
// WHY NOT A SECOND `scripts` BLOCK
|
|
20
|
-
//
|
|
21
|
-
// That was the obvious fix and it is the wrong one: it would put 19 name→file
|
|
22
|
-
// mappings in two places, free to drift, and drift between them is invisible
|
|
23
|
-
// — a new script reachable from one side and not the other, with nothing able
|
|
24
|
-
// to say so short of a new gate. The rule forbids buying a fix with
|
|
25
|
-
// a permanent check.
|
|
26
|
-
//
|
|
27
|
-
// Deriving the command from the script's REAL PATH has one authority — the
|
|
28
|
-
// file system — and cannot go stale: rename the file and the command follows,
|
|
29
|
-
// because it IS the file. This is the treatment `seal-image-digests.mjs`
|
|
30
|
-
// already chose for itself and argued for in its own words; it is extracted
|
|
31
|
-
// here so the other ten diagnostics get it too rather than each re-deriving
|
|
32
|
-
// it, and so `sealCommandFor` stops being the only site that is right.
|
|
33
|
-
//
|
|
34
|
-
// WHAT IT DOES NOT DO
|
|
35
|
-
//
|
|
36
|
-
// It does not replace the aggregator's `pnpm dist:*` spelling, which is real,
|
|
37
|
-
// is what CI invokes, and is correct FROM THE AGGREGATOR. Documentation may
|
|
38
|
-
// name either; a RUNTIME diagnostic names this one, because the process
|
|
39
|
-
// printing it already knows where it is standing and the reader does not.
|
|
40
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
41
|
-
|
|
42
|
-
import { dirname, relative, resolve } from 'node:path';
|
|
43
|
-
import { fileURLToPath } from 'node:url';
|
|
44
|
-
|
|
45
|
-
/** This module's directory — the distributions root in both layouts the fleet runs. */
|
|
46
|
-
const ROOT = dirname(fileURLToPath(import.meta.url));
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Render an absolute script path as the SHORTEST form that still resolves from
|
|
50
|
-
* the caller's current directory.
|
|
51
|
-
*
|
|
52
|
-
* A relative path is preferred when the script is at or below `process.cwd()`
|
|
53
|
-
* — that is the form an operator can paste — and the absolute path is used
|
|
54
|
-
* otherwise, because a `../../..` chain is longer, harder to read, and no more
|
|
55
|
-
* runnable. Escaping to a parent (`..`) is never shown for that reason.
|
|
56
|
-
*/
|
|
57
|
-
function shortestRunnablePath(script) {
|
|
58
|
-
const fromCwd = relative(process.cwd(), script);
|
|
59
|
-
return !fromCwd.startsWith('..') && fromCwd.length < script.length
|
|
60
|
-
? fromCwd
|
|
61
|
-
: script;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* The command that runs `scriptFileName` — a sibling of this module — with
|
|
66
|
-
* `args`, spelled so the reader can run it from wherever they are standing.
|
|
67
|
-
*
|
|
68
|
-
* Takes a FILE NAME rather than a script name on purpose: a file name is
|
|
69
|
-
* checked by the file system the moment anybody runs the remedy, whereas a
|
|
70
|
-
* `dist:*` name is checked by nothing and is what went wrong here.
|
|
71
|
-
*
|
|
72
|
-
* @param {string} scriptFileName e.g. `'resolve-distribution.mjs'`
|
|
73
|
-
* @param {...string} args positional arguments, appended verbatim
|
|
74
|
-
*/
|
|
75
|
-
export function commandFor(scriptFileName, ...args) {
|
|
76
|
-
const shown = shortestRunnablePath(resolve(ROOT, scriptFileName));
|
|
77
|
-
return ['node', shown, ...args].join(' ');
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* The command that runs the CALLING module itself.
|
|
82
|
-
*
|
|
83
|
-
* @param {string} importMetaUrl the caller's `import.meta.url`
|
|
84
|
-
* @param {...string} args positional arguments, appended verbatim
|
|
85
|
-
*/
|
|
86
|
-
export function commandForSelf(importMetaUrl, ...args) {
|
|
87
|
-
const shown = shortestRunnablePath(fileURLToPath(importMetaUrl));
|
|
88
|
-
return ['node', shown, ...args].join(' ');
|
|
89
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// `xema edition repin-evidence-trust` - write the data root's evidence trust
|
|
3
|
-
// pin: the digest of the declared policy, the digests of THIS CLI's built
|
|
4
|
-
// verifier bundle and provenance, the kernel contract authority the data
|
|
5
|
-
// root's runtime image source index states (a customer data root has no such
|
|
6
|
-
// index: the pin then records none and pins only what exists), and the oras
|
|
7
|
-
// binaries that may read a registry, and (only when the data root holds `third-party-source-pins.json`) that
|
|
8
|
-
// file's sha256. The result is a data-root change to review; nothing here is
|
|
9
|
-
// generated into the library.
|
|
10
|
-
//
|
|
11
|
-
// [--trusted-oras-digest sha256:<64 hex>]… the oras binaries to trust. Without
|
|
12
|
-
// the flag the list of the existing pin is kept; a first pin requires it.
|
|
13
|
-
//
|
|
14
|
-
// Refuses when the data root declares no evidenceTrustPolicy.
|
|
15
|
-
|
|
16
|
-
import { existsSync } from 'node:fs';
|
|
17
|
-
import { join } from 'node:path';
|
|
18
|
-
|
|
19
|
-
import { locateBuiltVerifier, readBuiltVerifierDigests } from './built-verifier.mjs';
|
|
20
|
-
import { editionWorkspaceConfig } from './edition-config.mjs';
|
|
21
|
-
import {
|
|
22
|
-
WorkspaceRoot,
|
|
23
|
-
configureEditionWorkspaceFromProcess,
|
|
24
|
-
dataRoot,
|
|
25
|
-
isEntryModule,
|
|
26
|
-
} from './edition-workspace.mjs';
|
|
27
|
-
import {
|
|
28
|
-
loadDeclaredTrustPolicy,
|
|
29
|
-
hasRuntimeImageSourceIndex,
|
|
30
|
-
readEvidenceTrustPin,
|
|
31
|
-
readStatedKernelContractAuthority,
|
|
32
|
-
requireOrasDigests,
|
|
33
|
-
writeEvidenceTrustPin,
|
|
34
|
-
} from './evidence-trust-pin.mjs';
|
|
35
|
-
import { loadKernelDistributionSchemas } from './lib.mjs';
|
|
36
|
-
import { loadThirdPartySourcePins, thirdPartySourcePinsDigest } from './third-party-source-pins.mjs';
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Write the pin for the configured data root and return it.
|
|
40
|
-
* `locateVerifier` is a parameter so a test can supply a fixture bundle.
|
|
41
|
-
*/
|
|
42
|
-
export async function repinEvidenceTrust({
|
|
43
|
-
locateVerifier = locateBuiltVerifier,
|
|
44
|
-
trustedOrasBinaryDigests = undefined,
|
|
45
|
-
} = {}) {
|
|
46
|
-
const root = dataRoot();
|
|
47
|
-
const declaration = editionWorkspaceConfig().evidenceTrustPolicy;
|
|
48
|
-
if (declaration.policy === null) {
|
|
49
|
-
throw new Error(
|
|
50
|
-
`${root} declares no evidenceTrustPolicy in edition-workspace.json; there is nothing to pin`,
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
const schemas = await loadKernelDistributionSchemas();
|
|
54
|
-
const { policyDigest } = loadDeclaredTrustPolicy({ dataRoot: root, declaration, schemas });
|
|
55
|
-
const verifier = readBuiltVerifierDigests(locateVerifier);
|
|
56
|
-
let orasDigests = trustedOrasBinaryDigests;
|
|
57
|
-
if (orasDigests === undefined) {
|
|
58
|
-
if (!existsSync(join(root, declaration.pin))) {
|
|
59
|
-
// Names the flag: a first pin has no list to keep.
|
|
60
|
-
requireOrasDigests([]);
|
|
61
|
-
}
|
|
62
|
-
orasDigests = readEvidenceTrustPin({ dataRoot: root, declaration }).trustedOrasBinaryDigests;
|
|
63
|
-
}
|
|
64
|
-
// A present file is a reviewed record: a schema-invalid one is refused here, never pinned.
|
|
65
|
-
loadThirdPartySourcePins(root);
|
|
66
|
-
return writeEvidenceTrustPin({
|
|
67
|
-
dataRoot: root,
|
|
68
|
-
declaration,
|
|
69
|
-
policyDigest,
|
|
70
|
-
verifier,
|
|
71
|
-
kernelContractAuthority: hasRuntimeImageSourceIndex(root) ? readStatedKernelContractAuthority({ dataRoot: root, schemas }) : null,
|
|
72
|
-
trustedOrasBinaryDigests: orasDigests,
|
|
73
|
-
thirdPartySourcePinsDigest: thirdPartySourcePinsDigest(root),
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** `--trusted-oras-digest <digest>` and `--trusted-oras-digest=<digest>`, repeated; nothing else is an argument. */
|
|
78
|
-
export function parseRepinArguments(argv) {
|
|
79
|
-
const digests = [];
|
|
80
|
-
for (let index = 0; index < argv.length; index += 1) {
|
|
81
|
-
const argument = argv[index];
|
|
82
|
-
if (argument === '--trusted-oras-digest') {
|
|
83
|
-
index += 1;
|
|
84
|
-
if (argv[index] === undefined) {throw new Error('--trusted-oras-digest needs a value');}
|
|
85
|
-
digests.push(argv[index]);
|
|
86
|
-
} else if (argument.startsWith('--trusted-oras-digest=')) {
|
|
87
|
-
digests.push(argument.slice('--trusted-oras-digest='.length));
|
|
88
|
-
} else {
|
|
89
|
-
throw new Error(`unknown argument "${argument}"; usage: xema edition repin-evidence-trust [--trusted-oras-digest sha256:<64 hex>]…`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return { trustedOrasBinaryDigests: digests.length === 0 ? undefined : digests };
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (isEntryModule(import.meta.url)) {
|
|
96
|
-
try {
|
|
97
|
-
configureEditionWorkspaceFromProcess([WorkspaceRoot.Data, WorkspaceRoot.Kernel]);
|
|
98
|
-
const pin = await repinEvidenceTrust(parseRepinArguments(process.argv.slice(2)));
|
|
99
|
-
console.log(
|
|
100
|
-
`[repin-evidence-trust] pinned policy ${pin.policyDigest}, verifier ${pin.verifier.bundleDigest}, ` +
|
|
101
|
-
// A customer data root states no kernel contract authority: its pin records none.
|
|
102
|
-
`kernel contract authority ${pin.kernelContractAuthority === null ? 'none' : pin.kernelContractAuthority.sourceCommit} and ` +
|
|
103
|
-
`${pin.trustedOrasBinaryDigests.length} oras binary digest(s)`,
|
|
104
|
-
);
|
|
105
|
-
} catch (error) {
|
|
106
|
-
console.error(`[repin-evidence-trust] ${error.message}`);
|
|
107
|
-
process.exitCode = 1;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
// A required resource requirement is a closure edge.
|
|
2
|
-
//
|
|
3
|
-
// A biome service that declares `inclusion: required` for a resource kind
|
|
4
|
-
// (postgres.schema, redis.namespace, ...) cannot run without a provider of that
|
|
5
|
-
// kind, exactly as it cannot run without a biome it `requires`. So the
|
|
6
|
-
// resolver follows the edge to the provider and ships it; naming the consumer
|
|
7
|
-
// is enough, no edition lists a provider by hand.
|
|
8
|
-
//
|
|
9
|
-
// The edge resolves only when exactly one deliverable biome provides the kind.
|
|
10
|
-
// Zero providers or several are refused with a typed error: with none the
|
|
11
|
-
// consumer can never boot, and with several no provider-selection policy
|
|
12
|
-
// exists, so choosing one would be a guess made on the consumer's behalf.
|
|
13
|
-
|
|
14
|
-
export const RequiredResourceProviderFailure = Object.freeze({
|
|
15
|
-
NoProvider: 'no-provider',
|
|
16
|
-
AmbiguousProvider: 'ambiguous-provider',
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export class RequiredResourceProviderError extends Error {
|
|
20
|
-
constructor(failure, { distributionId, consumerId, requirement, providerIds }) {
|
|
21
|
-
const subject =
|
|
22
|
-
`biome "${consumerId}" service "${requirement.consumerService}" requires ` +
|
|
23
|
-
`${requirement.kind} "${requirement.logicalName}" (${requirement.inclusion})`;
|
|
24
|
-
super(
|
|
25
|
-
failure === RequiredResourceProviderFailure.NoProvider
|
|
26
|
-
? `distribution "${distributionId}": ${subject}, and no biome in the index provides ` +
|
|
27
|
-
`${requirement.kind}, so the consumer cannot run in any edition.`
|
|
28
|
-
: `distribution "${distributionId}": ${subject}, and ${providerIds.length} biomes provide ` +
|
|
29
|
-
`that kind: ${providerIds.join(', ')}. No provider-selection policy exists, so the ` +
|
|
30
|
-
`resolver refuses rather than choosing one.`,
|
|
31
|
-
);
|
|
32
|
-
this.name = 'RequiredResourceProviderError';
|
|
33
|
-
this.failure = failure;
|
|
34
|
-
this.distributionId = distributionId;
|
|
35
|
-
this.consumerId = consumerId;
|
|
36
|
-
this.requirement = requirement;
|
|
37
|
-
this.providerIds = providerIds;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* The biome entry that is the sole provider of the requirement's kind among
|
|
43
|
-
* `candidates` (the deliverable, source-admissible index entries).
|
|
44
|
-
*/
|
|
45
|
-
export function soleResourceProvider({ distributionId, consumer, requirement, candidates }) {
|
|
46
|
-
const providers = candidates.filter((entry) =>
|
|
47
|
-
(entry.providesResources ?? []).some((provision) => provision.kind === requirement.kind),
|
|
48
|
-
);
|
|
49
|
-
const providerIds = [...new Set(providers.map((entry) => entry.id))].sort();
|
|
50
|
-
const context = { distributionId, consumerId: consumer.id, requirement, providerIds };
|
|
51
|
-
if (providers.length === 0) {
|
|
52
|
-
throw new RequiredResourceProviderError(RequiredResourceProviderFailure.NoProvider, context);
|
|
53
|
-
}
|
|
54
|
-
if (providerIds.length > 1) {
|
|
55
|
-
throw new RequiredResourceProviderError(RequiredResourceProviderFailure.AmbiguousProvider, context);
|
|
56
|
-
}
|
|
57
|
-
return providers[0];
|
|
58
|
-
}
|