Conversation
The tab labelled the app's id as "Key", which is the first thing that confuses people: it is the App ID, not a secret half of a pair. It then said the pair can "generate JWT tokens etc" without saying which token, for what, or how to choose, and it mentioned a Rotate action that is not on this screen. Now it names App ID and App Secret, says plainly that the secret is the signing key and should stay on a server you control, and adds a short table mapping the three credential kinds to the situation each is for: user token when a person is acting as themselves, app token for work scoped to one app, server token for tenant provisioning. Adds a section for connecting an AI assistant, since that is now a first-class way in and needs none of the above: the hosted MCP OAuth URL with a copy button, and a pointer to Account > AI Assistants for clients that cannot run a sign-in flow. Worth stating explicitly that the assistant acts as the signed-in person and never needs the App Secret, because the natural assumption is the opposite. The rotate warning moves next to the credentials it applies to. Claude-Session: https://claude.ai/code/session_011d6TeEAUvrRLiFcmxrRR1a
Member
Author
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.
The CEO flagged this tab as confusing. Current copy calls the app's id "Key", which reads as half of a key/secret pair when it is actually the App ID; says the pair can "generate JWT tokens etc" without saying which token or for what; and mentions a Rotate action that is not on this screen.
Changes
Type-clean, Prettier-clean, no behaviour or API change.
What this PR deliberately does not do
The CEO's actual ask was a ready-made B2B token on this screen. That is not possible today: I checked the backend and no endpoint issues a
type=servertoken —TOKEN_PURPOSES.SERVERis only ever verified (middlewares/auth.mw.ts,controllers/internal.controller/verifyToken.js), never signed for a caller. Today the only way to get one is to sign it yourself from the App Secret, which is what an integrator has to do and what I had to do to test the MCP server.Spec for the follow-up is in the BDSM report; short version: an authenticated owner-only endpoint that signs
{ data: { type: 'server', appId, tenantId } }withderiveScopedSecret(appSecret, 'server'), with a TTL and an audit row, then surface it here behind a reveal-once control like the Secret component.https://claude.ai/code/session_011d6TeEAUvrRLiFcmxrRR1a