App versioning
Ship a whole-app config change as a reviewable version instead of editing a live client in place. You submit a full config snapshot — name, redirect URIs, scopes and declared webhook events — with a changelog and justification; the live client keeps serving its current config until a moderator approves. On approval the snapshot is applied atomically.
- Submit a new version with an updated config snapshot, a changelog, and a justification.
- The live app keeps running its current config while the version is
pendingreview — approval is what promotes it to production. - At most one open (
draft/pending) version exists per app at a time. - A snapshot may carry self-service and review-tier scopes (
account:read,a2a,recipe:express); the reviewer is what grants the review-tier ones, at approve time, exactly as for a per-scope request. Team sign-off scopes such asnode:manageare dropped from the snapshot.
Endpoints
Owner endpoints are session-authenticated (developer portal). Review endpoints require a moderator.
| Method | Path | Notes |
|---|---|---|
| POST | /developer/clients/{clientId}/versions | Submit a new version — { config, changelog, justification }; rate-limited to 20/hour |
| GET | /developer/clients/{clientId}/versions | List the app's versions, newest first |
| GET | /admin/oauth/client-versions | Moderator: review queue · ?status=pending|approved|rejected|all ?limit |
| PATCH | /admin/oauth/client-versions/{id} | Moderator: { decision: approved|rejected, reject_reason? } — approve applies the snapshot |
The full request/response shapes are in the OpenAPI spec under the App versions tag: OpenAPI 3.1 (JSON) · YAML.
- See Registering apps for the in-place edit path and API overview for the full endpoint surface.