feat: point auth.md and the Link header at the real oauth-authorization-server - #686
Merged
Merged
Conversation
…on-server _shorebird#3031 merged on 2026-09-11 and auth.shorebird.dev now serves real RFC 8414 metadata: issuer, /login, /token, PKCE, the actual scopes (admin, preview_read, zap_preview_publish). Verified live before touching anything. Added an accurate pointer to it in auth.md's Protected resources section and restored the oauth-authorization-server Link header rel, both pointing at auth.shorebird.dev, not a copy on this domain. Deliberately not republishing a copy at docs.shorebird.dev/.well-known/oauth-authorization-server, even though isitagentready.com's oauth-discovery check only looks at the scanned domain's own well-known paths and wouldn't pass otherwise: that is exactly the mistake _shorebird's own review caught and #659 removed from this repo. RFC 8414 resolves the well-known path from the issuer, so a copy here would not be found by standards-based discovery and would silently drift if the real document ever changes. Chose not to re-add the mistake for one check's score. oauth-protected-resource (_shorebird#3043) is still open/unmerged and 404s on api.shorebird.dev, so left untouched. Confirmed no stale scope names (apps:read etc, deleted in #659) remain anywhere in this repo. Also confirmed the real shorebird_mcp_server now exists and is live at mcp.shorebird.dev/mcp (401 on an unauthenticated request, matching its RFC 9728 design), but it backs Shorebird Zap, a prototype documented only on a deliberately unlisted page (src/unlisted.ts) for a limited beta. Not publishing an MCP Server Card for it: that would publicly advertise a capability the product side has deliberately kept out of the sitemap, llms.txt, and search indexes. Cleaned up 6 pre-existing em-dashes in functions/_middleware.ts and one in auth.md while in both files. Verified via wrangler pages dev: the new Link header and auth.md content, and the full existing negotiation scenario suite, against a currently-live page (the earlier /ci/view-logs/ test target from prior sessions was removed in #685 since Shorebird CI is deprecated).
Member
Author
|
Reviewed with fresh eyes: no correctness, cleanup, or convention issues found. The review independently curled the live |
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.
Summary
_shorebird#3031merged on 2026-09-11, andauth.shorebird.devnow serves real RFC 8414 metadata (issuer,/login,/token, PKCE, the actual scopes:admin,preview_read,zap_preview_publish). Verified live before touching anything.auth.md's Protected resources section.oauth-authorization-serverLink header rel, pointing atauth.shorebird.dev(not a copy on this domain).Deliberately not done
docs.shorebird.dev/.well-known/oauth-authorization-server. isitagentready.com'soauth-discoverycheck only looks at the scanned domain's own well-known paths and would not pass without one, but that is exactly the mistake_shorebird's own review caught and fix: remove OAuth and OIDC metadata that describes endpoints we do not have #659 removed. RFC 8414 resolves the well-known path from the issuer, so a copy here would not be found by standards-based discovery and would silently drift if the real document changes. Chose accuracy over that one check's score.oauth-protected-resource:_shorebird#3043is still open, andapi.shorebird.dev/.well-known/oauth-protected-resourcestill 404s. Left untouched.shorebird_mcp_serveris real and live now atmcp.shorebird.dev/mcp(401 on an unauthenticated request, matching its RFC 9728 design). It backs Shorebird Zap, a prototype documented only on a deliberately unlisted page (src/unlisted.ts) for a limited beta. Publishing a public Server Card would advertise a capability the product side has deliberately kept out of the sitemap,llms.txt, and search indexes.Other
apps:read, etc, deleted in fix: remove OAuth and OIDC metadata that describes endpoints we do not have #659) remain anywhere in this repo.functions/_middleware.tsand one inauth.mdwhile in both files.Test plan
npx tsc --noEmit -p functions/tsconfig.jsonpassesnpm run buildpasses, cspell and prettier cleanwrangler pages dev: new Link header andauth.mdcontent correct, full existing negotiation scenario suite still passes (the old/ci/view-logs/test target from earlier sessions was removed in docs: remove CI sub-routes #685 since Shorebird CI is deprecated; retested against/getting-started/)