Publish reviewed KEY39 lifecycle source and preserve failed review history
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
This commit is contained in:
codex 2026-10-11 15:33:14 +02:00
parent 46f5c956b5
commit 33aed8a5c9
3 changed files with 156 additions and 0 deletions

View file

@ -0,0 +1,63 @@
{
"accepted_preparation_facts": [
"Role/policy source and declared claims agree with CCR38: issuer/JWKS RS256, service subject and audience, tenant/roles/scope/principal_type; login-self has no native lane authority.",
"Six temporary registrations isolate audience/subject/tenant/role/scope and matching short-lived expiry; human and coding-agent tokens remain independently founder-held inputs, not newly authorized producers.",
"Finite exact-number expiry/observation checks reject booleans, strings, NaN/infinity and stale/future observations; approved session420..900s and positive remaining lifetime are bounded.",
"Source role omits expiration_leeway. Actual installed default/leeway must be freshly owner-observed; normalization -1=>0 and0=>150 is only a model, not native evidence.",
"Main-thread hard timers span HTTP connect/headers/body and normal close; protected Kubernetes patches/deletes use pre/post deadline checks and clipped timeouts; aggregate300s cleanup cannot reset. Late successful session is revoked privately or remains unconfirmed; partial login remains unknown.",
"UID/resourceVersion guards, baseline drift refusal, restoration readback and removed-client semantic refusal are appropriate source controls; malformed/transport or cleanup failures must remain unproved."
],
"authority": "No source native acknowledgment granted for this revision; no helper approval authentication, runtime permission, source status/binding changes, secret access or foreign owner review is claimed.",
"completed_preparation_record_established_before_formal_review": true,
"decision": "changes_requested",
"findings": [
{
"counterexample": "Synthetic response getcode200; read immediately raises Refused; close sleeps70ms. timeout10ms request returns after>60ms because alarm is disarmed before outer finally close. openbao_login_outcome_unknown is correctlytrue but elapsed bound is absent.",
"finding": "Exceptional response.close runs outside total_timeout, so a failed request can exceed its promised total elapsed cap.",
"id": "RPF-KEY39-V4-F01",
"location": "SessionTransport.request outer finally response.close",
"required_change": "Bound exceptional close/abort under the same remaining request budget or a separately admitted finite clipped cleanup budget; preserve/disarm/restore signal handling, suppress private failures and never turn unknown login into successful refusal. A blocking close after read failure/timeout must not escape finite authority/cleanup bounds.",
"severity": "blocking-source-review",
"tests_required": "Exceptional read, header/body timeout, oversized response, failing normal close followed by cleanup close; slow/raising close must remain finite, unknown/unproved and token cleanup truthfully distinguished."
}
],
"frozen_inputs_changed": false,
"intent_basis": "Platform INTENT Secure Custody, stable shared service interfaces, operability/recovery and declared Staff/PEP-shaped Tooling gaps; CCR38 remains login-only identity, and bounded native refusal/session cleanup are Platform obligations.",
"native_prerequisites": [
"Corrected exact source reviewed by deployment/issuer/Platform owners. Earlier v2/v3 failures and current v4 refusal retained.",
"Private founder token producer/handoff still unimplemented: no admitted human callback/client or coding-agent custody producer supplies this stdin contract. Do not reuse earlier native grants or create credential files to fill the gap.",
"Fresh owner-native installed role/config/effective-policy/current-leeway observation with exact receipt digest and age<=300s; envelope booleans alone prove nothing.",
"Authenticated scoped founder disposition for exact revision/target/window/cleanup obligation plus actual protected founder context; helper disposition/acknowledgment fields are procedural, not an authenticated approval system or runtime grant.",
"Actual native claim/permutation/expiry outcomes, refusal versus transport distinction, unexpected-acceptance revokes, baseline restoration/removed-client/temporary-object cleanup, and unknown-session owner resolution.",
"MASON reader/nonmember evidence and Secrets actual backend entitlement/adoption remain separate; this probe does not close them."
],
"platform_source_pins": {
"credential-change-requests/CCR-2026-0038-secrets-engine-service-jwt-login.yaml": "65b2cfb772623da59c351033ab4eb2ec7adfbd109778e787c7fe1b0e185a3bc0",
"openbao/auth/secrets-engine-jwt-role.json": "529dc23193be42cbe0d4440f902a64ca7c9158da158c9da13396aa0030480f40",
"openbao/policies/secrets-engine-login-self.hcl": "d1a2969dd2949c822972e9b32243650567ac123a669f3fc609e9bfea977bb4eb"
},
"reviewed_entries": {
"sso-mfa/k8s/keycape/openbao-negative-session.py": "b4687c2d07819c43b45d0cddcad0488b62eb49175b2a06a43f7806a0838d3a4d",
"sso-mfa/k8s/keycape/test_openbao_negative_session.py": "ea2b5f7466c1da016f528093daf168c274238d4803eb5424d7353c66adbecf43"
},
"reviewed_manifest": "/tmp/keycape-jwt-lifecycle-v4-stage/manifest.json",
"reviewed_manifest_sha256": "d079f85c47d5c2635e1ee633ea4d1346b1737ce2be9ca273f22a38e620f418d8",
"reviewed_runner_sha256": "bb9610babf44a959342bac700bb5712e97f400b44c4d0659d21df4426e616e19",
"reviewer": "railiance-platform-owner (agent railiance-platform, codex)",
"schema": "owner-source-review/v1",
"validation": {
"commands": [
"PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s /tmp/keycape-jwt-lifecycle-v4-stage/net-kingdom/sso-mfa/k8s/keycape -p test_openbao_negative_session.py -q",
"PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s /home/worsch/key-cape/scripts -p test_openbao_negative_probe.py -q",
"PYTHONDONTWRITEBYTECODE=1 /home/worsch/secrets-engine/.venv/bin/python -m pytest -q -p no:cacheprovider /tmp/platform-key39-lifecycle-owner-review-stage/tests/test_key39_platform_independent.py"
],
"independent_attachment": "/tmp/platform-key39-lifecycle-owner-review-stage/tests/test_key39_platform_independent.py",
"independent_checks": 5,
"initial_test_harness_outcome": "Independent test collection had a literal spacing syntax typo; corrected only that local test, then5passed. Reviewed lifecycle input unchanged.",
"lifecycle_tests": 41,
"result": "all passed; one deliberately asserts reproduced v4 elapsed-bound defect; no native/session values involved",
"total": 63,
"unchanged_runner_tests": 17
},
"work_item": "RPF-WP-0035-T13"
}

View file

@ -0,0 +1,52 @@
{
"completed_same_owner_preparation_record_precedes_review": true,
"correction_verified": "RPF-KEY39-V4-F01: all exceptional response close/abort paths now use one fixed20ms cap clipped to original time when remaining and to nonresettable aggregate300s cleanup. No repeated unbounded close. Aggregate expired produces zero close calls. Abort timeout/exception records unconfirmed; original unknown login remains sticky and cannot become successful refusal. Signal state is restored.",
"decision": "approved",
"frozen_source_unchanged": true,
"intent_basis": "Platform INTENT Secure Custody, Stable Interfaces and Operable/Observable recovery; CCR38 login-only identity requires truthful finite native refusal/session cleanup but grants no protected lane execution.",
"not_approved": [
"founder disposition, authenticated runtime approval, environment/grant widening or authority transfer",
"private token producer/client/callback/coding-agent custody admission",
"actual installed role/JWKS/policy/leeway observation",
"native claim/expiry/refusal/revoke/readback/cleanup acceptance",
"MASON reader/nonmember matrices, Secrets execution entitlement or full adoption",
"KEY39/RPF35T02/SecretsT06 completion"
],
"other_source_checks": [
"Finite typed expiry/observation/session bounds, per-request main-thread HTTP/Kubernetes total timers, business-window post-response checks, delayed-success private revoke and partial-response unknown classification retained.",
"Current CCR38 source claims/policy are unchanged: exact role/audience/service subject/tenant/roles/scope/principal, no default policy,5m8use loginself with client-custody denies. No native grant from earlier sessions is inherited.",
"Role source does not set expiration_leeway: model0=>150 and-1=>0 retained; fresh installed role/config/effective-policy/current-leeway owner observation remains mandatory before native proof.",
"Temporary six registration permutations and real removed-client/restoration/UID/resourceVersion guards retain their separate issuer/deployment/Platform scopes. Registry cleanup cannot clear unknown native login or failed revoke.",
"Private founder human/coding-agent stdin producer/client/callback/live custody handoff is still unimplemented; source cannot authorize fetching/reusing credentials or invent that path."
],
"prior_changes_requested_retained": true,
"prior_review": "docs/reviews/2026-10-11-key39-lifecycle-v4-platform-review.json",
"prior_review_sha256": "c0f9da4850d7b6ce8a41401bfb7cddc39a60cd7bc8767de89d76b5f93198a2d9",
"required_native_packet": "Fresh exact installed role/config/effective-policy/leeway receipt<=300s; independently admitted founder-private human and coding-agent producers; exact source/runtime/target/window pins and authenticated scoped founder go expressly including finite abort/revoke/restoration cleanup. Helper disposition/owner acknowledgment JSON fields alone authenticate none of this. Native receipts must preserve unexpected acceptance, unknown login, failed revoke and partial cleanup until actual owner resolution.",
"review_scope": "exact KEY39v5 lifecycle source acknowledgment only; no privileged runtime grant or native evidence",
"reviewed_entries": {
"sso-mfa/k8s/keycape/openbao-negative-session.py": "3bcceebc845b17492040c76223d77088257c547a2b890198e7b5c2b04a0cd360",
"sso-mfa/k8s/keycape/test_openbao_negative_session.py": "a428a4a5ea60bd6c4ad10481e133227ad696a4a08653bf39b554b47431fb9f8c"
},
"reviewed_manifest": "/tmp/keycape-jwt-lifecycle-v5-stage/manifest.json",
"reviewed_manifest_sha256": "d1f997624db46693a7126a6eb6435f6b3a353d5bd67dcc8a539683e4b7147285",
"reviewer": "railiance-platform-owner (agent railiance-platform, codex)",
"same_trial": true,
"schema": "owner-source-review/v1",
"unchanged_runner_sha256": "bb9610babf44a959342bac700bb5712e97f400b44c4d0659d21df4426e616e19",
"validation": {
"commands": [
"PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s /tmp/keycape-jwt-lifecycle-v5-stage/net-kingdom/sso-mfa/k8s/keycape -p test_openbao_negative_session.py -q",
"PYTHONDONTWRITEBYTECODE=1 /home/worsch/secrets-engine/.venv/bin/python -m pytest -q -p no:cacheprovider /tmp/platform-key39-lifecycle-owner-review-stage/revision-v5/tests/test_key39_platform_v5_independent.py"
],
"credential_access": false,
"independent_tests": 5,
"native_actions": false,
"owner_checkout_writes": false,
"result": "passing source/synthetic checks; actual corrected elapsed counterexample independently tested",
"supplied_lifecycle_tests": 46,
"total_verified_checks": 68,
"unchanged_runner_tests_previously_verified": 17
},
"work_item": "RPF-WP-0035-T13"
}