28 lines
2.9 KiB
JSON
28 lines
2.9 KiB
JSON
{
|
|
"proposal_id": "FORGE6-ROUTES-001",
|
|
"revision": 1,
|
|
"state": "prepared-awaiting-isolated-proof-and-attended-login",
|
|
"origin": "https://forgejo.coulomb.social",
|
|
"user": "tegwick",
|
|
"repository_name": "custodian-routes-f140c6b840da4bbb9de64a74",
|
|
"source_sha256": {
|
|
"accept_forge_routes.py": "f87e643f1d49de031c2bfc3f956280eca0c61d2126fb20fd04541aa6324ef565",
|
|
"run_forge_routes.py": "6258140d408e5fbed7373611cdcd65e64aee743a0b36ce4fe55b5dc94663120f",
|
|
"receive-hook-proposal.json": "9c8ea3b7fbe16a997359432af7bcf09f429881fd23cc567188c21129e80ccf8d",
|
|
"activate_forge_template.py": "ef2b38f655d5520d69dcd69cdb4997eaad4b50773f32c1d798d16331b204c789",
|
|
"activate_receive_hooks.py": "9b01ee383e16463981112226e19156b0de59af2d03dd71b9403e144e280a9fb3",
|
|
"verify_receive_native.py": "c9120122c6f6f0b7c41fe4fa975e5a2a340e776885d852b861b8c13b7664adcd"
|
|
},
|
|
"target": "One newly created private disposable repository; pinned deployed Forgejo and admitted hook. Existing repository content, hooks, accounts and policies remain untouched.",
|
|
"expected_result": "Authenticated native HTTPS clean acceptance and synthetic-secret refusal with detector evidence; API private creation inherits exact hook; clean/content-secret and clean/merge-message refusal with unchanged refs; quarantine commit absent; anonymous private access refused; owned test repository deleted and absent.",
|
|
"verification": "Exact shared Suite rehearsed against pinned isolated Forgejo; four boundary regression tests. Live receipt required; rehearsal is not deployed acceptance.",
|
|
"rollback": "Automatic cleanup checks numeric repository ID, owner, private flag, name and ownership description before deleting only the newly created test repository. On interrupted known creation, rerun run_forge_routes.py with the same proposal and receipt plus --cleanup-only. Ambiguous POST before numeric ID receipt requires reconciliation, never replay or delete by name.",
|
|
"abort_owner": "railiance-forge; custodian-codex prepares and verifies receipts",
|
|
"cost_estimate_eur": 0,
|
|
"cost_basis": "Existing service only; serialized small private probes, no added resources or spend commitments.",
|
|
"risk_estimate": "Bounded synthetic test writes to a unique private disposable repository. No real secret fixtures, account creation, access-policy change or external publication. Unexpected acceptance may retain an unbound synthetic private-key fixture until cleanup. API/network failure stops the trial; ambiguous creation and cleanup remain explicitly unverified.",
|
|
"authorization_ref": "canon/standards/build-mode-change-authorization_v0.1.md",
|
|
"lane": "orange: existing caller OIDC/MFA required; no access or secret-policy scope change",
|
|
"live_receipt": "docs/evidence/2026-10-13-netkingdom-security/forge-routes-live.json",
|
|
"remaining_scope": "Browser/SSO journey, external gitlink repository, CI, import/mirror, historical/LFS/log/artifact detection and finding response remain open."
|
|
}
|