Record reproducible CLI release and exact native admission requirements
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a140c4-354a-7823-8f0d-8f717397f786
This commit is contained in:
tegwick 2026-10-16 18:44:05 +02:00
parent 4dd004a225
commit 3718e60d73
3 changed files with 104 additions and 23 deletions

View file

@ -1,5 +1,52 @@
# Native CLI signer and consumer admission preparation
## Current release preparation — 2026-10-16 R2
Published canonical Secrets `4dd004a2250104ba56293b2d7b0d96f4e076ea99` was
built twice from an isolated clean checkout. Artifacts and deterministic bundle
manifest match exactly: manifest SHA256
`sha256:105dcebe6f03e9799f91ea75175e20500df2aa7f08b5e32d39c1c367593ca47e`,
fixed helper SHA256
`sha256:ed922b62533e4d33ae2d5f11175111f6f28e684a19e63ac704d43b63f0e0e12e`.
Disposable installation/help and empty native trust refusal pass; no native
prefix, trust/key, caller credential, protected effect or rollout was admitted.
Artifact integrity is not independent package admission. Full receipts and a
concrete probe/placement proposal are in Custodian `decision-native-preparation/r2/`.
Initial native scope remains the existing lifecycle pin and **0/11 protected
sites across10 handlers**. Runtime UID/release/config/catalog/stance/trust/evidence
and scoped caller/Approval delivery paths remain owner-unselected. A concrete
workstation candidate uses a new release prefix ending
`4dd004a22501-105dcebe6f03`; it is a proposal, not an installed/admitted path.
Only its exact future `bin/secrets-engine` wrapper is the effect entrypoint.
The current repo editable invocation and ambient demo/preflight fallbacks do not
constitute release admission. A local CLI does not automatically hold the named
ServiceAccount identity: existing docs describe separately authorized per-session
TokenRequest delivery, not a standing credential or pod identity grant.
Access's single offline signer-receipt tool is published at
`2b064eee510640224274ccdc7cefceb1ae13162e`; verified API/sign source matches this
consumer. Native producer rollout still awaits independent public kid/key/custody
and immutable candidate image/log/storage returns, including the Access owner's
separate durable-log hardening review. Published source alone is not that image.
The lifecycle pin stays v2/bd11c5fe...; task v2 is a separate unadmitted pin.
Source task correspondence is now implemented and cross-owner source-server
proved: fixed typed service mapping before issue, retained-registry signed-DENY
preapproval, original claim/context preservation, independent fresh source facts,
precise Approval CAS and independent confirmation/journal/native disposable proof.
This supersedes the historical source gaps below; it neither adds an execute-ccr
CLI command nor selects a real CCR/catalogue/Plan/grant/backend/journal runtime.
All native effect, caller/key/config and task-entitlement gates remain open under
existing WP14/WP13/WP8 records. `service-jwt` still refuses protected CLI work.
## Historical ff1a13d preparation (preserved)
The following draft records the earlier source/admission observations. References
to absent B2/B3/request/source-fact implementation are superseded by R2 above;
missing native keys, runtime placement and actual task inputs remain unresolved.
This proposal covers the existing lifecycle CLI authentication path under
SECRETS-WP-0014. It grants no installation, key retrieval, caller mint, approval
consume, OpenBao effect or task-policy activation. All native acceptance counts

View file

@ -1,7 +1,7 @@
{
"proposal_id": "SECRETS-WP-0014-native-cli-20261016",
"status": "preparation only; not installable or executable authorization",
"source_base": "ff1a13dabd44ba02ddd6bc26ad75568f6d2e6225",
"source_base": "4dd004a2250104ba56293b2d7b0d96f4e076ea99",
"workplans": [
"SECRETS-WP-0014-T02",
"SECRETS-WP-0014-T03",
@ -33,8 +33,10 @@
"custody_receipt": null,
"candidate_producer_oci_digest": null,
"rule": "No responder keys endpoint, synthetic fixture key or deployment metadata substitutes for independent owner admission",
"receipt_verifier_integrated_revision": null,
"signer_purpose_pin_and_sharing_receipt": null
"receipt_verifier_integrated_revision": "2b064eee510640224274ccdc7cefceb1ae13162e",
"signer_purpose_pin_and_sharing_receipt": null,
"public_fingerprint_convention": "Platform proposal: sha256(canonical unpadded base64url43 public-key ASCII); independent owner receipt required",
"candidate_producer_prerequisite": "Access durable-log hardening source and immutable image/storage/custody awaiting separate root/Platform review; published2b064ee alone is not native candidate admission"
},
"placement": {
"owner": "Secrets consumer/deploying owner; exact runtime UID and paths not yet agreed",
@ -52,7 +54,9 @@
"absolute independently reviewed config/catalog/policy/stance/trust paths; no working-directory defaults for native use",
"trust regular non-symlink, not group/world writable; key admission not file-presence inference",
"owner retains manifest/admission/installation receipts and same-UID control boundary"
]
],
"candidate_cli_release_prefix": "/home/worsch/.local/share/secrets-engine/releases/4dd004a22501-105dcebe6f03",
"candidate_status": "proposal only; no path selected/created/admitted"
},
"configuration_contract": {
"SECRETS_ENGINE_PDP_URL": "literal loopback bare origin bound to independently verified cluster and named producer pod; exact native port awaiting owner placement",
@ -81,36 +85,41 @@
},
"task_mapping_gap": {
"existing_cli_execute_ccr_command": false,
"source_handoff": "secrets_engine.task_execution_handoff authorize_task_execution/consume_task_execution",
"source_handoff": "secrets_engine.task_execution_handoff prepare_task_approval/authorize_task_execution/consume_task_execution",
"platform_source_mediator": "railiance-platform/scripts/task_execution_mediator.py run_native_fixture_task; source proof only",
"unadmitted_inputs": [
"real service caller-to-subject server mapping and request/service binding join",
"actual task policy candidate and independently reviewed source/runtime admission; both false gates unchanged",
"native admission of the existing exact service-caller-to-subject request mapping and immutable original-claim/source join",
"owner-selected fresh approved CCR/catalog/execution-grant, compiled Plan/whole descriptor and operation UUID",
"independent expected-before/after bytes for exact two metadata targets and actual estate/backend origin",
"actual source/Plan/install/journal/cleanup placement and trusted provider endpoints/credentials/custody",
"load-bearing audit/outbox cadence and durable receipt correlation",
"Approval/Access reviewed out-of-band fresh-fact versus original carried-claim correspondence and signed provenance; strict context equality remains unchanged"
"exact native task v2 policy/caller/source/config/placement/key/runtime admission; v1 hard DENY retained"
],
"approval_fact_interface_review": {
"status": "review preference only; no implementation/admission",
"preserve": "strict binding.context equality and original submitted/approval-free/native joins",
"direction": "Access prefers out-of-band server-fetched authoritative fact checking while retaining original carried context, then reviewed producer-owned signed provenance/audit evidence",
"required_review": [
"Approval fact/freshness semantic correspondence",
"Access source receipt/provenance binding and exact request digests"
],
"b1": "signed-DENY caller join only; no context replacement",
"b2_b3": "not enabled or implemented here"
"status": "implemented/source-proved; native source/config/identity/trust admission remains missing",
"preserve": "type-sensitive original context/native/request/descriptor correspondence; original and independently fresh fact deadlines; no numeric translation",
"receipt": "Custodian decision-trusted-successor/verification-final-r4.json"
},
"approval_fact_contract": {
"artifact": "the-custodian/docs/changes/netkingdom-target-2026-10-16/approval-fact-contract/consumer-contract.md",
"sha256": "3dfb7987a4d9fe461b917cfa5bae7beef61bc4d9a4561fdded3e90128f5966de",
"sha256": "sha256:3dfb7987a4d9fe461b917cfa5bae7beef61bc4d9a4561fdded3e90128f5966de",
"vectors_artifact": "the-custodian/docs/changes/netkingdom-target-2026-10-16/approval-fact-contract/golden-vectors.json",
"vectors_sha256": "dfb0a8810cd91847d7af6a7af6a51607a67a66fad7b86fc57365308c36bd9323",
"status": "owner source contract pending integration; no Go conformance or B2 behavior admitted",
"required": "preserve original fact/context/freshness, independently validate fresh fact window and exact nonfreshness authority; do not translate native numeric digests or invent target restrictions"
}
"vectors_sha256": "sha256:dfb0a8810cd91847d7af6a7af6a51607a67a66fad7b86fc57365308c36bd9323",
"status": "owner contract/helper source implemented and integrated; Go conformance and actual source-server B2 behavior proved; native identity/config/trust/custody/effect admission remains unaccepted",
"required": "preserve original fact/context/freshness, independently validate fresh fact window and exact nonfreshness authority; do not translate native numeric digests or invent target restrictions",
"historical_attribution": "artifact and golden vectors below identify the initial prehelper contract; their former pending status was historical source preparation, not current implementation",
"current_helper_package": {
"artifact": "the-custodian/docs/changes/netkingdom-target-2026-10-16/approval-go-fact/manifest.json",
"sha256": "sha256:6d67f0005d4642bc60ed3a5f8901442f10c7bbf3f6b5d9fb8dba621298ed3851"
},
"integrated_source": {
"producer_git_commit": "2b064eee510640224274ccdc7cefceb1ae13162e",
"consumer_git_commit": "4dd004a2250104ba56293b2d7b0d96f4e076ea99",
"receipt": "the-custodian/docs/changes/netkingdom-target-2026-10-16/decision-trusted-successor/verification-final-r4.json",
"receipt_sha256": "sha256:9ed4d80a7d1aa7353d7b57954b7924a146329d1bd18a3f9152c6055bd51b92b5"
}
},
"source_status": "implemented and cross-owner source-server proved, including retained registry and precise CAS; no native adoption"
},
"approval_state": "no owner assent, key admission, install, caller token, operation grant or live change requested/executed by this preparation",
"denominator": {
@ -129,5 +138,15 @@
"platform_source_mediator_native_acceptance": false,
"generic_cli_consume_is_strict_task_handoff": false,
"effect_acceptance_required": "Review actual selected handler/generic consume response and caller scope separately; strict Platform fixture proof does not close existing CLI effects"
},
"historical_source_base": "ff1a13dabd44ba02ddd6bc26ad75568f6d2e6225",
"release_candidate": {
"bundle_manifest_sha256": "sha256:105dcebe6f03e9799f91ea75175e20500df2aa7f08b5e32d39c1c367593ca47e",
"helper_sha256": "sha256:ed922b62533e4d33ae2d5f11175111f6f28e684a19e63ac704d43b63f0e0e12e",
"two_clean_builds_equal": true,
"disposable_install_passed": true,
"native_install_admitted": false,
"artifact_integrity_is_not_package_admission": true,
"receipt": "Custodian decision-native-preparation/r2/canonical-build-install-receipt.json"
}
}