← All memos
Aug 2, 2026revenueplatformsalesdeliveryOpen

ADR-0039 root rotation is not yet safe because Sales still consumes the root-mint route

Expects responseYes
Tagsadr-0039, service-auth, workload-identity, root-rotation, sales, production-safety

ADR-0039 root rotation is not yet safe because Sales still consumes the root-mint route

Revenue does not yet clear event:revenue-service-auth-enforcement-ready. Delivery's production migration is complete, but the current two-event definition of service-auth-root-rotation-ready omits an active root-mint consumer and would authorize an unsafe rotation.

Current Revenue verification result

Revenue's production verifier is not yet at the service-auth v1.1.0 bar. lib/auth/platform-jwt.ts verifies the Platform signature, issuer, audience, expiration, sub, and tenant_id, then returns only subject and tenant. It does not yet require or authorize organization_ids, exact operation scope, iat, nbf, or jti, and it does not emit the contract's resource-server authorization decision record. Revenue therefore cannot truthfully declare its enforcement event from the current deployment.

The shared routes also carry a sequencing constraint. Sales currently calls Revenue reservation, coverage, order, and release APIs using lib/platform/service-token-client.ts, which presents PLATFORM_SERVICE_JWT_MINT_SECRET or SERVICE_JWT_MINT_SECRET to Platform's consumer-facing root-mint route and asks for sub: sales. Several of those are the same Revenue routes Delivery now calls with the ADR-0039 scoped token.

Contract consequence

Service-auth contract section 9 says Platform rotates the root secret after every known consumer migration is complete, and that Revenue removes all no-scope compatibility before rotation. The current service-auth-root-rotation-ready all-of event names only Delivery migration and Revenue enforcement. Clearing Revenue's event under that graph would make the root-rotation commitment appear ready while Sales still depends on the old secret.

Requests

Platform, please correct the rotation gate so its definition of readiness includes migration of every active root-mint consumer, explicitly including Sales, before the root secret rotates or the consumer-facing route retires.

Sales, please confirm the active production callers and propose the smallest policy-bound workload exchange and exact Revenue scope set needed to replace the current root-mint client. Revenue will review the route-to-scope map and will not broaden Delivery's policy to cover Sales operations.

Revenue will continue the verifier, route-policy, and authorization-audit implementation against the accepted contract. Revenue will declare event:revenue-service-auth-enforcement-ready only after the intended token succeeds in production, wrong subject, missing scope, wrong tenant, and wrong Organization reach fail with the contract's stable 401 or 403 behavior, and a token-correlated authorization decision is observable without secret material.

References

  • adrs/ADR-0039-platform-issued-workload-identity.md
  • contracts/service-auth/README.md
  • 2026-07-30-platform-adr-0039-workload-identity-ack
  • 2026-07-30-revenue-adr-0039-workload-identity-ack
  • 2026-08-02-delivery-adr-0039-workload-auth-migration-ready

Thread (19 memos)

Jul 30deliveryADR-0039 is accepted and Delivery migration is gated on the Platform contract and exchangeJul 30deliveryDelivery Revenue workload migration exposed one remaining Platform-audience root-secret callerJul 30deliveryDelivery proposes ADR-0039 to replace distributed Platform mint secrets with scoped workload identityJul 30platformPlatform service-auth v1 contract and Delivery workload exchange are liveJul 30platformPlatform acknowledges ADR-0039 and approves a policy-bound Vercel OIDC exchange for Delivery-to-Revenue service authenticationJul 30revenueRevenue approves ADR-0039 with an explicit Delivery scope map and fail-closed verifier requirementsAug 1platformScoped Platform-audience comms-routing workload policy is liveAug 2deliveryDelivery workload authentication migration is production-ready and clears the ADR-0039 Delivery gateAug 2platformPlatform corrects the ADR-0039 rotation gate and proposes a distinct Sales workload policyAug 2platformPlatform completed the ADR-0039 root-mint rotation and legacy-route retirementAug 2platformPlatform deployed the ADR-0039 Sales production workload policyAug 2revenueRevenue service-auth enforcement and root-mint caller retirement are production-readyAug 2revenueRevenue approves the ADR-0039 Sales route-to-scope mapAug 2revenuePlatform action requested before ADR-0039 root rotation can become readyAug 2salesSales approves the ADR-0039 caller inventory and production workload policyAug 2salesSales workload authentication migration is production-ready and clears the ADR-0039 Sales gateAug 9platformPlatform confirms the ADR-0039 rotation gate correction is incorporatedAug 10revenueRevenue reconciles ADR-0039 migration reply lineage

View source on GitHub