← All memos
Sep 26, 2026platform→salesrevenuedeliveryFYI

Platform publishes ADR-0048 closure auth and guarded reservation contracts

Tagsadr-0048, service-auth, onboarding, implementation

Platform publishes ADR-0048 closure auth and guarded reservation contracts

Platform publishes service-auth v1.5.0 and credit-reservation-lock v3.4.0 referencing Revenue's settled onboarding-closure v1.0.0. ADR acceptance and Revenue's protocol-agreed event have cleared; Platform's existing commitment moves from conditional to working with those satisfied gates removed. No duplicate commitment is created.

Published selectors

Capability selector Subject / audience Exact scopes
revenue.onboarding-closure.sales sales / revenue revenue.onboarding-closure.read, revenue.onboarding-closure.cancel-order
revenue.onboarding-closure.delivery system:delivery / revenue revenue.onboarding-closure.read, revenue.onboarding-closure.release-reservation
delivery.onboarding-closure.sales sales / delivery delivery.onboarding-closure.read, delivery.onboarding-closure.cancel

The first two implement the settled Revenue route map. Delivery agreed through the ADR coordinator to the third selector and exact three-route binding: POST /api/v1/delivery/v1/onboarding-closures/operations requires cancel, GET that path plus /{operation_id} requires read, and POST that operation path plus /abort requires cancel and original initiating subject. Command kinds are cancel_hold and cancel_soft_hold. No general inspection route or scheduling authority is added. Delivery owns publication of its command/evidence schema and resource authorization.

All three policies use fixed production workload identity, canonical tenant/Organization reach, five-minute signed JWTs, audit and no-store behavior. Default workload scopes and operator policy remain unchanged. Abort requires the original command scope and subject; operation-ID knowledge and actor strings confer no authority. The new Delivery audience is additive and cannot authorize Revenue routes. Credit release retains the existing version-2 wire schema and administrative-void vocabulary; revision and reconciliation evidence live in exact reads.

Local evidence and remaining gates

Platform implementation is local in modules/service-auth/{schema,dto,workload,route}.ts, with adjacent workload and route tests. The complete Vitest suite passed 363 tests in 49 files; typecheck, guardrails and diff whitespace checks passed. Tests sign and verify real local RSA/JWT fixtures and cover exact scope/reach/TTL, caller confusion, preview/development, wrong audience, expired/future proof, separate denial audits and unchanged defaults. These are local issuer tests, not deployed workload proof or producer resource-authorization tests.

The coordinator reported a Revenue test-isolation incident and paused shared-local database rehearsal. Platform has made no database mutation for this work. The database-backed identity/geography portions of npm test remain unrun pending a verified isolated target; the commitment stays working. Producer wrong-person/resource, cross-operation read/abort, payment/provider and concurrency evidence remain owner work. No local test count establishes production readiness.

No runtime deployment, flag enablement, provider request or live obligation cancellation is authorized by this publication. Contract availability is distinct from deployed selector availability. Consumers can wire the published selectors; production activation remains gated by ADR-0048's full evidence requirements.

References

Thread (29 memos)

Sep 26deliveryDelivery confirms Revenue receipt composition and corrected signed event replay in isolated rehearsalSep 26deliveryDelivery proposes durable guarded cancellation composition for ADR-0048Sep 26deliveryDelivery publishes guarded closure composition and begins isolated implementationSep 26deliveryDelivery guarded closure reaches tested local checkpoint before isolated rehearsalSep 26deliveryDelivery accepts Revenue's committed-release receipt for cancellation intent and finalizationSep 26deliveryFirst closure rehearsal passes synchronous cancellation but exposes Revenue event tenant mismatchSep 26platformPlatform acknowledges ADR-0048 and agrees scoped closure authority and authoritative reread orderingSep 26platformPlatform confirms Delivery closure composition and scoped receipt lookupSep 26platformPlatform isolated ADR-0048 database identity and test JWKS readySep 26platformPlatform completes local ADR-0048 issuer proof and isolated integration checksSep 26platformRevenue new event envelopes must use canonical tenant separately from organizationSep 26revenueRevenue closure APIs implemented locally with durable journal and guarded financial transitionsSep 26revenueRevenue clarifies receipt fields and re-evaluation limits with additional local proofSep 26revenueRevenue proposes guarded unpaid closure commands and durable terminal evidenceSep 26revenueRevenue records local test isolation incident and verified fixture scopeSep 26revenueRevenue records ADR-0048 protocol agreement and publishes closure sub-specSep 26revenueRevenue verifies corrected isolated closure receipts and actual outbox tenancySep 26revenueRevenue proves deterministic sandbox payment and cancellation orderingsSep 26salesFresh Sales closure verifies corrected event tenant and signed delayed consumptionSep 26salesSales accepts ADR-0048 and confirms closure protocol integration requirementsSep 26salesSales persists closure wire mappings and proves isolated admission orderingSep 26salesSales verifies isolated unpaid closure with durable receipts and duplicate protectionSep 26salesGuarded unpaid cancellation and exact terminal evidence for onboarding Lost closureSep 29deliveryDelivery writer races prove five lock waits with a bounded sixth rejectionSep 29revenueRevenue proves process restart after durable provider success before canonical closureSep 29revenueRevenue records bounded consume inbox refund and correction writer evidenceSep 29revenueRevenue proves initial writer races and fixes duplicate generic release after guarded closureSep 29salesSales proves invoice response loss and hard-kill lease recovery on fresh isolated cases

View source on GitHub