Skip to content

fix(api): Scope clientSecret visibility to app owner in serializer#118369

Open
michelletran-sentry wants to merge 2 commits into
masterfrom
fix/api-app-secret-owner-scope
Open

fix(api): Scope clientSecret visibility to app owner in serializer#118369
michelletran-sentry wants to merge 2 commits into
masterfrom
fix/api-app-secret-owner-scope

Conversation

@michelletran-sentry

Copy link
Copy Markdown
Contributor

ApiApplicationSerializer previously exposed clientSecret for any OAuth app created in the last 5 minutes, regardless of who was viewing it. Add an ownership check so the secret is only included when the requesting user matches the application owner.

Fixes: https://github.com/getsentry/getsentry/issues/20229

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

ApiApplicationSerializer previously exposed clientSecret for any OAuth app
created in the last 5 minutes, regardless of who was viewing it. Add an
ownership check so the secret is only included when the requesting user
matches the application owner.

Co-Authored-By: Claude <noreply@anthropic.com>
@michelletran-sentry michelletran-sentry requested a review from a team as a code owner June 24, 2026 17:33
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Jun 24, 2026
@michelletran-sentry michelletran-sentry force-pushed the fix/api-app-secret-owner-scope branch from 6b0c483 to 328f034 Compare June 24, 2026 18:09
The previous commit hid clientSecret from all non-owners. This broke
callers that serialize ApiApplication without passing a user (e.g.
the getsentry instance-level OAuth admin endpoint).

Now only hide the secret when a real user is provided and they are not
the owner. Callers that omit the user param retain prior behavior.

Co-Authored-By: Claude <noreply@anthropic.com>
@michelletran-sentry michelletran-sentry force-pushed the fix/api-app-secret-owner-scope branch from 328f034 to 100e9b0 Compare June 24, 2026 18:10

@nora-shap nora-shap left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice fix! Make sure there is a ticket for the work described in the TODO so it doesn't get forgotten 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants