Connections carry who signed in - #298
Merged
Merged
Conversation
czpython
force-pushed
the
connection-identity
branch
3 times, most recently
from
August 22, 2026 05:56
fc559a0 to
ca8ba69
Compare
A service declares where its provider answers "who signed in" (identity_endpoint, with identity_scopes joining the consent union visibly); a provider that answers elsewhere or in another shape overrides get_identity. The callback asks once with the fresh access token and stamps the facts on the connection — best-effort, an unanswered ask never fails the consent and never blanks a known identity. MCP connections get the same stamp for free when the discovered metadata advertises a userinfo endpoint. The service card and the Connections page label each row with the provider's own facts — email, username, name — instead of a bare date.
czpython
force-pushed
the
connection-identity
branch
from
August 22, 2026 06:01
ca8ba69 to
3baacd0
Compare
czpython
enabled auto-merge (squash)
August 22, 2026 06:01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A connection row now says who it is. The service declares the provider
endpoint that returns the signed-in account's facts:
Some providers have no such endpoint, or return the facts in a different
shape. They override
get_identity(access_token)instead. Only theplatform calls it.
How it lands
oauth_connections.identity— a JSONB facts dict (email, username,name). The callback fills it once at consent with the fresh access
token. Any failure leaves the connection unlabeled; the consent never
fails, and a reconsent that gets no answer keeps the identity it had.
identity_scopesjoin the consent ask visibly.authorization-server metadata advertises a
userinfo_endpoint.email/username/login/name, falling back to the consentdate and scopes as before.