Status: PASS / LIVE_CANDIDATE / MERGE_DISABLED / PRODUCTION_NO_GO
V2 hardens the independent R2 authorizer by making every successful consumption receipt cryptographically verifiable outside the authorizer database.
Algorithm:
ES256 / ECDSA P-256 + SHA-256
Signing key id:
bQgIMRdRTyvdHBTMuEdc7T4hTH8zwJA_gkVEcR2TcJY
The private P-256 JWK exists only in encrypted environment variable
R2_RECEIPT_SIGNING_JWK_V1.
The corresponding public JWK is exposed by GET /health and may be pinned by downstream
verifiers. The private key is not present in source or response payloads.
Successful POST /v1/consume now returns schema:
rumbo-r2-dedicated-authorizer-consumption/v2
The signature covers the exact canonical receipt object, including:
The response includes:
receipt_sha256;receipt_signature.alg=ES256;Branch evaluation:
01a04ba6-7c96-71ee-888f-953a2f36529f
Result: PASS.
Additional V2 checks:
MERGE_PR still disabled at issuance and consumption;production_go=false.Validated test receipt SHA-256:
ea6091f0d05f4c5ddd6693728fe6ec41fa39bb627f4128a74fb1ebc597a60756
The deployer no longer needs to trust an arbitrary caller-supplied
authorizer_receipt_sha256. It can verify a signed consumption receipt offline using
only the pinned public key.
This closes the receipt-authenticity gap between authorization custody and deployment planning. It does not enable merge or deployment.