Preserve October 10 owner decision source packets
Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
This commit is contained in:
parent
8964affdea
commit
96eb40c695
4 changed files with 335 additions and 0 deletions
132
docs/security-case-execution-owner-review.md
Normal file
132
docs/security-case-execution-owner-review.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# NetKingdom owner review: closed SecurityCase execution seam — 2026-10-10
|
||||
|
||||
Disposition: **support design direction with the requirements below**. This is
|
||||
NetKingdom's architectural owner review; it is not founder approval, another
|
||||
repository's review, executable type acceptance, materialization or native case
|
||||
completion. Reviewed proposal SHA256: 78ab1439e4c5beb205aeccf15b1b2e706511be55ab195c5a3aa682f326c7c77c.
|
||||
|
||||
## Architectural fit
|
||||
|
||||
NetKingdom declares Taxonomy and owns case canon/schema/type composition.
|
||||
ops-warden owns follow-through routing and caller-proxy orchestration. The
|
||||
existing type's entry_point/auth/check/action fields are descriptive strings,
|
||||
not fixed argv contracts. Inferring a shell command from those descriptions
|
||||
would invent a new execution interface and authority. The proposal correctly
|
||||
keeps them descriptive and adds a separately validated closed owner adapter
|
||||
reference, exact source/interface pins, parameter schemas and bounded receipts.
|
||||
Owner-native execution/undo remains with each provider; consumer OIDC/group
|
||||
configuration remains railiance-apps, and mint remains railiance-platform.
|
||||
|
||||
Caller proxy must continue to use the caller's declared lane and grant. It
|
||||
must not become a standing Warden broker, borrow user-engine's provisioner
|
||||
credential, or merge the KeyCape and OpenBao issuer sessions. The proposal's
|
||||
receipt-only pending-owner path is useful and does not count as success. Its
|
||||
uncertain-on-interruption, no replay of success, reconcile-before-retry and
|
||||
created-object-only rollback are appropriate. Confirmed grant/session
|
||||
revocation is part of native completion, not an inferred exit-code success.
|
||||
|
||||
## Source-evidenced deadlock and version mismatch
|
||||
|
||||
1. ops-mason/workplans/MASON-WP-0010-security-case-materialization.md T03's
|
||||
blocking_reason waits for CCR application **plus mint-secret**, and then says
|
||||
the case is live. Its task acceptance is materialization, not full live
|
||||
follow-through. The same file says its build writes a bundle and never
|
||||
contacts OpenBao; bundle preparation is not observed materialization.
|
||||
2. ops-warden/src/warden/case_plan.py requires case status materialized before
|
||||
planning (`PLANNABLE_CASE_STATUS`, plan_case); an accepted case is refused.
|
||||
3. railiance-platform/scripts/keycape_client_secret_generate.py check_case
|
||||
also requires status materialized before mint (line117 at this revision).
|
||||
mint is a follow_through step in type1.1, not a structural materialization
|
||||
template. Thus requiring mint before materialized prevents the mint route
|
||||
from being entered. The accepted case still has status accepted.
|
||||
4. The original broker source separately pins `CASE_TYPE = oidc-browser-relying-party@1.0`
|
||||
and compares exact case.type. Forgejo has already been accepted/re-pinned
|
||||
to @1.1 on the founder's recorded go. No run can silently pass the @1.1
|
||||
case as @1.0 or ignore the check. Platform must review the broker's actual
|
||||
version binding and owner test it against the exact accepted type/case.
|
||||
Platform now has a reviewed staged correction at
|
||||
/tmp/security-stage/railiance-platform/scripts/keycape_client_secret_generate.py
|
||||
SHA256 9576cd211cfc06526ec4cc9bd0a5b06f0f59287a68931bb2d6e3592a951ddc7d:
|
||||
exact @1.1 is admitted, @1.0/later types and unmaterialized cases remain
|
||||
refused. Its owner reports ten fake-backend subprocess tests passed. This
|
||||
removes the identified source mismatch when applied; it does not establish
|
||||
installed broker provenance, applied structural receipts or native mint.
|
||||
|
||||
## Required implementation contract
|
||||
|
||||
- Define materialized as accepted and verified structure: exact type/case/render
|
||||
pins plus the owner's native structural receipt identifying created and
|
||||
pre-existing objects and current target identity. All applicable structure
|
||||
must have admission evidence; CCR-0042's unfinished consumer binding is not
|
||||
waived by separating mint. Empty generated-value custody can exist at this
|
||||
state; mint/delivery/env/registry/consumer/verification occur afterwards.
|
||||
A file status label or source bundle cannot stand in for that receipt.
|
||||
- Lifecycle change from accepted to materialized changes exact case bytes and
|
||||
therefore case-ref. Authoritative materialization receipt must preserve the
|
||||
accepted content/record and bind the new exact bytes, rather than carry an
|
||||
old case-ref into broker generation. Do not mark the type implemented until
|
||||
a reference case is actually live and verified; keep the established first
|
||||
acknowledged-type exception explicit.
|
||||
- Introduce a separately versioned schema for adapter references and run/step
|
||||
receipts, with closed fields, immutable owner/interface/source references,
|
||||
machine target/parameter mapping, actor/lane equality and fixed argv (no shell
|
||||
interpolation). Unknown adapters/params fail closed. Existing descriptive
|
||||
types remain valid for plan-only output until migrated; absence of execution
|
||||
descriptors permits no dispatch. Receipt provenance must be authenticated or
|
||||
explicitly attended manual evidence, with bounded input and secret withholding.
|
||||
- Classify each actual type migration under canon section6. Preserving existing
|
||||
auth/trust and adding closed execution references is not itself authority to
|
||||
change those boundaries. A changed auth path/materialization/trust transition
|
||||
or loosened validation needs new informed-decision acknowledgment. Retain
|
||||
existing type1.0 acknowledgment and founder-approved1.1 provenance.
|
||||
- Reconcile broker CAS0 outcomes via an owner adapter. Already-present metadata
|
||||
is not proof this case generated the value or its consumer can use it, and
|
||||
must not be retried into generation or automatically promoted to success.
|
||||
Map grant creation, write and post-write verification uncertainty explicitly;
|
||||
no exception may claim failed-before-change without owner evidence. Grant
|
||||
revocation and attended parent-session revocation are distinct receipts.
|
||||
- Rollback may remove only changes actually attributed to the exact case, not
|
||||
every target rendered from templates. Existing group memberships, policies,
|
||||
shared registrations and custody data survive. Secret rollback is owner-native
|
||||
and may not extract prior values through Warden.
|
||||
|
||||
The proposal's stated negative tests should accompany the schema and injected
|
||||
runner implementation: changed pins, unsupported argv/adapter, unaccepted or
|
||||
unmaterialized case, agent mint refusal, pending-owner, crash after running,
|
||||
lost result, CAS reconciliation, explicit safe retry, uncertain undo, malicious
|
||||
output suppression and absent revocation. Add current type1.1 broker compatibility
|
||||
and materialized-before-mint ordering tests using non-secret fixtures.
|
||||
|
||||
## Precise final-revision re-review
|
||||
|
||||
The final proposal reviewed here is the staged SHA256 named above, which
|
||||
supersedes the earlier 1035f049... review. The added Local reducer prototype
|
||||
appendix explicitly says the reducer is pure preparation, not an accepted wire
|
||||
format, and implements no provenance, durable storage, dispatch or live action.
|
||||
This boundary is appropriate. Inspected staged case_receipt_state.py: begin
|
||||
returns running intent; recover marks interrupted dispatch uncertain; success
|
||||
cannot replay; explicit retry-safe failed-before is the only retry path;
|
||||
created-object rollback is reversed and interrupted undo becomes uncertain.
|
||||
Those functions do not enforce materialization, caller authorization, receipt
|
||||
provenance or persistence themselves. The design decision must therefore not
|
||||
accept their local outcome enum or dataclass shape as a completed runtime
|
||||
protocol. pending-owner remains a run-sheet/native gate even though the reducer
|
||||
has no pending-owner dispatch state. The previously stated schema, owner
|
||||
adapter and persistence requirements remain implementation prerequisites.
|
||||
No new auth/session or live authority is introduced by this appendix.
|
||||
|
||||
## Concrete informed-decision act
|
||||
|
||||
Recommended design question: adopt a closed owner-adapter and immutable
|
||||
receipt contract for SecurityCase follow-through, keeping current case/type
|
||||
acceptance and caller/session authority intact; require structural materialized
|
||||
receipt before follow-through and leave missing adapters as pending-owner.
|
||||
Alternative: continue manual owner execution with honest source/run-sheet
|
||||
receipts, and do not expose Warden run/rollback dispatch. Reject inferred shell
|
||||
execution from prose. Acceptance authorizes schema/interface implementation and
|
||||
local tests only; it grants no live rollout, mint, credential, case status
|
||||
transition, new issuer identity, type risk-class change or consumer configuration.
|
||||
|
||||
NK-WP-0048-T06 remains wait for this execution seam and actual structural/native
|
||||
owner receipts. Its historical approvals remain valid within scope. T07 waits
|
||||
for first live proof; this design review does not satisfy it.
|
||||
50
docs/security-case-execution-owner-review.sources.json
Normal file
50
docs/security-case-execution-owner-review.sources.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"reviewed_at": "2026-10-10",
|
||||
"references": {
|
||||
"proposal": {
|
||||
"path": "ops-warden/docs/security-case-execution-proposal.md",
|
||||
"reviewed_source_path": "/tmp/security-stage/ops-warden/docs/security-case-execution-proposal.md",
|
||||
"sha256": "78ab1439e4c5beb205aeccf15b1b2e706511be55ab195c5a3aa682f326c7c77c"
|
||||
},
|
||||
"canon": {
|
||||
"path": "/home/worsch/net-kingdom/canon/standards/security-case-types_v0.1.md",
|
||||
"sha256": "a4fda906d5138d2594a1f8d047c7c28e1cdf96b1eae051f543b9a5e5852bcb5e"
|
||||
},
|
||||
"type": {
|
||||
"path": "/home/worsch/net-kingdom/security-case-types/oidc-browser-relying-party/type.yaml",
|
||||
"sha256": "f705c64e4875e9b8e18a912fb51c135e77898926d6a451f5cb74ab3c0cbe4d1c"
|
||||
},
|
||||
"case": {
|
||||
"path": "/home/worsch/net-kingdom/security-cases/forgejo-netkingdom-oidc.yaml",
|
||||
"sha256": "bcc2c6d5bae0d28242b3cdb71e74d8ca297c2afe04766b55d53597f86893351d"
|
||||
},
|
||||
"mason_workplan": {
|
||||
"path": "/home/worsch/ops-mason/workplans/MASON-WP-0010-security-case-materialization.md",
|
||||
"sha256": "115731e0c7cd830dd75375844c1772de40f1bdb011f8ef35f5dd2aa17d3baf5d"
|
||||
},
|
||||
"warden_planner": {
|
||||
"path": "/home/worsch/ops-warden/src/warden/case_plan.py",
|
||||
"sha256": "9352ae8683d1181980c4ff38524582e4be448d33c85b558f60582c1e5bb5bbaa"
|
||||
},
|
||||
"broker": {
|
||||
"path": "/home/worsch/railiance-platform/scripts/keycape_client_secret_generate.py",
|
||||
"sha256": "f3404c4b0f8144f56346547a86d66f933781840307520865d338925bf77fce0a"
|
||||
},
|
||||
"reducer_prototype": {
|
||||
"path": "/tmp/security-stage/ops-warden/src/warden/case_receipt_state.py",
|
||||
"sha256": "a2cda7f187e77bd76d4d209505638de44a587fae0bc033ec75c23ee9ea9f73bc",
|
||||
"boundary": "staged source only; no installed/native acceptance"
|
||||
},
|
||||
"broker_correction": {
|
||||
"path": "/tmp/security-stage/railiance-platform/scripts/keycape_client_secret_generate.py",
|
||||
"sha256": "9576cd211cfc06526ec4cc9bd0a5b06f0f59287a68931bb2d6e3592a951ddc7d",
|
||||
"boundary": "staged source only; no installed/native acceptance"
|
||||
},
|
||||
"broker_correction_owner_receipt": {
|
||||
"path": "/tmp/security-stage/railiance-platform/docs/keycape-client-secret-generate-type-pin-review.md",
|
||||
"sha256": "38c5bdc08243cc26f70f37ab70d1947130923c01d4f48e4dcc90e40d732e13cc",
|
||||
"boundary": "staged source only; no installed/native acceptance"
|
||||
}
|
||||
},
|
||||
"supersedes_proposal_review_sha256": "1035f0494115424f5fa3d09b0e2e887acbca4c326194d481f5dbb253f18cec07"
|
||||
}
|
||||
82
docs/security-layer-v0.8-publication-readiness.md
Normal file
82
docs/security-layer-v0.8-publication-readiness.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# Proposed security-layer v0.8 publication readiness — 2026-10-10
|
||||
|
||||
Derived source-assembly record, not ratification or a technical review in another
|
||||
owner's voice. Exact proposed cut: canon/standards/security-layer-model_v0.8.md
|
||||
SHA256 103a635f19ab9fe53094d69c3eeebcccd8e87ac9588846167e7e204a7c6de167. v0.7 remains accepted; checkers and publication pointers
|
||||
are unchanged. Adjacent sources JSON pins every record/return/reference checker.
|
||||
|
||||
## Concrete delta
|
||||
|
||||
A9 supplies the four closed tokens and ASCII-insensitive comparison. A10 supplies
|
||||
the evidence-source column yes/no/unassessed (only access-engine yes, audit-core
|
||||
no; other rows unassessed), source marking and per-event-class emission inventories.
|
||||
A11 r2 makes INTENT frontmatter govern, sidecars derived, disagreement a finding,
|
||||
and requires stated scope including the permitted single-repository scope. A12 r3
|
||||
forbids standard/companion pins, excludes provenance citations and non-declaration
|
||||
stance/claim/evidence maps, and places version/scope in every run. The quoted
|
||||
normative paragraphs are taken from exact amendment-set v0.3, SHA256
|
||||
9b454b83c9aeed08ba13dba4d812f5ae6b4293ced9e43088d64cc3cc00b1459d.
|
||||
|
||||
GH-DEC-2026-024's A2 correction extends explicit non-completeness statements to
|
||||
load-bearing guarantees where the guarantee is not itself completeness; it leaves
|
||||
the existing volume/rare heartbeat-and-reconciliation requirement intact. Its
|
||||
A10 correction distinguishes no from unassessed; its failure-path release
|
||||
exception remains refused. No fresh doctrine, observation or actuation capability
|
||||
is manufactured. §14 and §15 record current assembly and bounded review provenance.
|
||||
|
||||
A13's coordinate note is a factual publication adaptation: the circulated text
|
||||
said flex-auth was the currently resolving repository and the governed rename
|
||||
was pending. FLEX-WP-0020 records completed operation a15af186 on September30;
|
||||
the assembled note preserves the ruled authority and flex-auth runtime names,
|
||||
identifies the now-resolved access-engine repository coordinate and retains the
|
||||
migration-owner record as execution authority. The three fresh worker returns
|
||||
assent only to A11 r2/A12 r3; they do not review this factual A13 adaptation or
|
||||
ratify the final assembled cut. Its provenance is the migration-owner receipt,
|
||||
not a new layer or runtime naming ruling.
|
||||
|
||||
## GH-DEC-2026-019 closing-condition evidence
|
||||
|
||||
1. Amendments drafted/circulated/dispositioned: source-complete. GateHouse
|
||||
GH-WP-0004-T09 is now done in the applied workplan. The three dedicated owner
|
||||
returns are applied under kings-guard, approval-engine and railiance-master;
|
||||
their exact SHA256 values match T09's recorded table and the common current
|
||||
amendment SHA256 above. Existing earlier returns remain correctly scoped
|
||||
history. No earlier-version approval is carried forward or silence counted
|
||||
as assent. T09's source disposition is not founder acceptance of this cut.
|
||||
2. AuditCore §11 review: returned September23, not declined; T07 done. GH024/T12
|
||||
disposition resolves both findings and refuses the proposed exception; the
|
||||
assembly now includes those source corrections. §9.5's KingsGuard review was
|
||||
wanted but explicitly not a GH019 acceptance condition and is not inferred.
|
||||
3. Four declarations/dated gaps: T08 done, naming GateHouse, KeyCape, OpsMason and
|
||||
NetKingdom records. This asks declaration or dated gap, not universal conformance.
|
||||
|
||||
All three GH019 conditions are now source-evidenced complete in applied
|
||||
owner/GateHouse records, and this exact final proposed cut carries their
|
||||
amendments. Prepare informed-decision with the cut digest and disposition
|
||||
receipts. Requested human act: accept the assembled v0.8 publication cut,
|
||||
including the bounded A13 factual coordinate update, as the new standard under
|
||||
NetKingdom's publication responsibility. A human answer is not inferred from
|
||||
technical returns or source application. Until then status remains proposed
|
||||
and v0.7 governs.
|
||||
|
||||
GH-WP-0004-T11 checker convergence is post-flip: eight named implementers change
|
||||
VALIDATED_AGAINST and detector copies, or retain a dated reason. It is not a
|
||||
pre-flip requirement to name proposed v0.8 as normative. Companion alignment and
|
||||
current publication pointer changes likewise belong to the concrete approved
|
||||
publication action; they are not performed by this source preparation.
|
||||
|
||||
## Verification
|
||||
|
||||
Unchanged ops-warden reference checker passed, explicitly naming accepted v0.7
|
||||
plus GH017/GH020/GH021 and its run scope. Its existing tests passed 28/28 via
|
||||
PYTHONDONTWRITEBYTECODE=1 python3 -m pytest -q -p no:cacheprovider
|
||||
tests/test_layer_conformance.py. This verifies the established declaration/detector
|
||||
reference, not an estate-wide v0.8 compliance run. Source assembly checks compare
|
||||
A9/A11r2/A12r3 quotations, the complete GH024/A2 non-claim paragraph byte for
|
||||
byte, catalogue markings and retained emission bounds; no
|
||||
source checker was silently repointed, and no native security execution occurred.
|
||||
|
||||
No new live workload, credential, grant or risk exception is involved. The proposed
|
||||
publication action is reversible through versioned canon/pointer restoration;
|
||||
owner migrations require separate reviewed commits. Existing build exceptions
|
||||
remain declared and are not legalized by accepting this standard.
|
||||
71
docs/security-layer-v0.8-publication-readiness.sources.json
Normal file
71
docs/security-layer-v0.8-publication-readiness.sources.json
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"prepared_at": "2026-10-10",
|
||||
"final_proposed_cut": {
|
||||
"path": "canon/standards/security-layer-model_v0.8.md",
|
||||
"sha256": "103a635f19ab9fe53094d69c3eeebcccd8e87ac9588846167e7e204a7c6de167",
|
||||
"status": "proposed"
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "/home/worsch/gate-house/docs/amendments/v0.8-section-11-declaration-amendments.md",
|
||||
"sha256": "9b454b83c9aeed08ba13dba4d812f5ae6b4293ced9e43088d64cc3cc00b1459d",
|
||||
"boundary": "current source record"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/gate-house/docs/amendments/v0.8-amendment-set.md",
|
||||
"sha256": "9ec92497156845397c9ea40a1693d97c870af7495292cb42bc39cb47773fd23b",
|
||||
"boundary": "current source record"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/gate-house/decisions/decisions.md",
|
||||
"sha256": "7c0d582448a9f4f39a438a24300a487259241d32616c2a6da16f8e5c52eb2425",
|
||||
"boundary": "current source record"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/gate-house/workplans/GH-WP-0004-section-11-layer-declarations.md",
|
||||
"sha256": "99f344162050e5dc792adbe193999db8fd755685cf0ba873014ab57002ea70ef",
|
||||
"boundary": "current source record"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/access-engine/workplans/FLEX-WP-0020-repository-identity-migration.md",
|
||||
"sha256": "7e1c1a3b888e93cdce274dac8d2b3b6149980ff10ad2b6fe2f3f100f05ed586f",
|
||||
"boundary": "current source record"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/kings-guard/docs/reviews/2026-10-10-a11-r2-a12-r3.md",
|
||||
"sha256": "eb0bf102653707f5c80f4594df1427ef70f65ed3686abc824418fa19ab9983bb",
|
||||
"boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/approval-engine/docs/reviews/2026-10-10-gate-house-a11-r2-a12-r3-owner-review.md",
|
||||
"sha256": "978527d58222bd14fb20cbe963eb87cad49dfd4a8b2dfa420ee102b5ffb4d002",
|
||||
"boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/railiance-master/docs/reviews/2026-10-10-gate-house-a11-r2-a12-r3-owner-review.md",
|
||||
"sha256": "ee3739febdd9346537ff9892dd0bf2f086544a42e3e65275f5342edc8f23ef84",
|
||||
"boundary": "applied exact-amendment technical return, disposition recorded by GateHouse T09; no founder acceptance"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/ops-warden/scripts/check_layer_conformance.py",
|
||||
"sha256": "064be430b64072fd1620e6adc19b4e24a1790c9df06144a9670cd262faf66e8a",
|
||||
"boundary": "unchanged v0.7 plus ruled-amendment reference checker"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/ops-warden/tests/test_layer_conformance.py",
|
||||
"sha256": "3d39b0a24a65263b2be9f18add2b9c69e12b7926716d610e8200d5c788c1b696",
|
||||
"boundary": "unchanged v0.7 plus ruled-amendment reference checker"
|
||||
},
|
||||
{
|
||||
"path": "/home/worsch/ops-warden/wiki/playbooks/netkingdom-layer-declaration.md",
|
||||
"sha256": "2dbef2235afdc33203fb01582220370051cf6c9eefc7c7d482ff05ebd615fb64",
|
||||
"boundary": "unchanged v0.7 plus ruled-amendment reference checker"
|
||||
}
|
||||
],
|
||||
"closing_conditions": {
|
||||
"GH019_condition1": "applied T09 done with exact fresh returns",
|
||||
"GH019_condition2": "T07 done, audit review returned; findings dispositioned T12 done/GH024",
|
||||
"GH019_condition3": "T08 done, required declarations/dated gaps recorded",
|
||||
"founder_acceptance": "not recorded; cut remains proposed"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue