Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
d38f227 to
f3ed393
Compare
Greptile SummaryThis PR fills the CRUD gap for OAuth clients by adding GET (list + by ID), PUT (update), and POST secret-rotation endpoints, and extends the Key observations:
Confidence Score: 4/5
Important Files Changed
Last reviewed commit: "Updates." |
|
@greptile rereview |
2 similar comments
|
@greptile rereview |
|
@greptile rereview |
|
@greptile rereview |
|
@greptile rereview |
Ticket ENG-3001
Description Of Changes
Extends the OAuth client model with name and description fields, and adds the missing CRUD endpoints for managing clients via the API. Previously, clients could be created and deleted but not listed, fetched, or updated. This PR fills that gap and also adds a dedicated secret rotation endpoint so callers can cycle credentials without deleting and recreating the client.
A shared _generate_and_hash_secret helper consolidates the secret-hashing logic that was previously duplicated between initial creation and any future rotation path.
Code Changes
/oauth/client— paginated list of all clients (excludes root client)/oauth/client/{client_id}— fetch a single client by ID/oauth/client/{client_id}— update name, description, and/or scopes/oauth/client/{client_id}/secret— rotate a client's secret, returning it exactly once/oauth/clientto accept a ClientCreateRequest body (name, description, scopes) instead of a raw scopes list_generate_and_hash_secrethelper to deduplicate secret generation logic between creation and rotationrotate_secretmethod to ClientDetailclient_idproperty alias on ClientDetail for clean API serializationSteps to Confirm
/oauth/clientwith a name and description — confirm name/description are persisted and returned/oauth/client— confirm the list is paginated and the root client is excluded/oauth/client/{client_id}— confirm the correct client is returned; confirm 404 for unknown ID/oauth/client/{client_id}— update scopes, name, and description; confirm changes are reflected/oauth/client/{client_id}/secret— confirm a new secret is returned and the old one no longer authenticatesPre-Merge Checklist
CHANGELOG.mdupdatedmaindowngrade()migration is correct and works