Status: PASS / LIVE_CANDIDATE / PROVIDER_UNBOUND / PRODUCTION_NO_GO
V2 closes the trust gap in V1 where a caller could supply an arbitrary
authorizer_receipt_sha256. Deployment planning now accepts only a complete signed
consumption receipt from the dedicated R2 authorizer V2 and verifies it offline.
Required authorizer:
DEDICATED_R2_AUTHORIZER_V2_SIGNED_RECEIPTS
Receipt schema:
rumbo-r2-dedicated-authorizer-consumption/v2
Algorithm:
ES256 / ECDSA P-256 + SHA-256
Pinned signing key id:
bQgIMRdRTyvdHBTMuEdc7T4hTH8zwJA_gkVEcR2TcJY
Only the public verification JWK is embedded in the deployer.
POST /v2/prepare verifies:
The plan is derived from the verified receipt rather than duplicate caller-supplied binding fields.
V1 unsigned endpoints are retired with HTTP 410.
A cryptographically valid TEST_ONLY receipt may be stored as a non-executable
evidence plan, but POST /v2/execute rejects it with:
AUTHORIZER_ACTION_NOT_MERGE_PR
before checking the deployment enable flag.
For an executable path, all of the following would be required:
MERGE_PR;merge_authorized=true;R2_ALLOW_DEPLOY=true;The current runtime fails closed before those conditions:
NOT_BOUND;Branch evaluation:
01a04ba9-dcc8-767a-9cae-18783c6e0100
Result: PASS.
Matrix:
Fixture authorizer receipt SHA-256:
e493623c38a1028e7263311300cb558cc8b69665a718ae9c0845a78e9b03602b
The deployer controller now independently authenticates authorizer receipts. This closes receipt authenticity and action-escalation gaps between authorization custody and deployment planning.
Actual provider execution is still not live and remains impossible under current gates. No merge, deployment or product-production authorization is implied.