alf: the atproto Latency Fabric alf.fly.dev/
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix scope in OAuth routes — was still hardcoded to transition:generic

client-metadata.json and the authorize call both had their own hardcoded
scope strings, independent of the scope built in createOAuthClient.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

+4 -2
+4 -2
src/routes/oauth.ts
··· 20 20 * OAuth client metadata document (ATProto client registration) 21 21 * PDSes use this to discover client capabilities 22 22 */ 23 + const scope = `atproto repo:${config.allowedCollections}?action=create blob:*/*`; 24 + 23 25 router.get('/client-metadata.json', (_req, res) => { 24 26 res.json({ 25 27 client_id: `${config.serviceUrl}/oauth/client-metadata.json`, 26 28 client_name: 'Scheduled Posts', 27 29 client_uri: config.serviceUrl, 28 30 redirect_uris: [`${config.serviceUrl}/oauth/callback`], 29 - scope: 'atproto transition:generic', 31 + scope, 30 32 grant_types: ['authorization_code', 'refresh_token'], 31 33 response_types: ['code'], 32 34 token_endpoint_auth_method: 'none', ··· 76 78 } 77 79 78 80 const url = await oauthClient.authorize(handle, { 79 - scope: 'atproto transition:generic', 81 + scope, 80 82 ...(stateKey ? { state: stateKey } : {}), 81 83 }); 82 84