From b0c34cc1ef10c8da6a46f43455d511286796b2b5 Mon Sep 17 00:00:00 2001 From: bryan newbold Date: Tue, 19 Dec 2023 19:26:02 +0400 Subject: [PATCH] bsky: add top-level and robots.txt endpoints These provide helpful context (instead of just a generic 404). The robots.txt in particular will show up for public.api.bsky.app --- packages/bsky/src/api/health.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/bsky/src/api/health.ts b/packages/bsky/src/api/health.ts index bdcdeefcb4b..b8ebadd4b71 100644 --- a/packages/bsky/src/api/health.ts +++ b/packages/bsky/src/api/health.ts @@ -5,6 +5,20 @@ import AppContext from '../context' export const createRouter = (ctx: AppContext): express.Router => { const router = express.Router() + router.get('/', function (req, res) { + res.type('text/plain') + res.send( + 'This is an AT Protocol Application View (AppView) for the "bsky.app" application: https://github.com/bluesky-social/atproto\n\nMost API routes are under /xrpc/', + ) + }) + + router.get('/robots.txt', function (req, res) { + res.type('text/plain') + res.send( + '# Hello Friends!\n\n# Crawling the public parts of the API is allowed. HTTP 429 ("backoff") status codes are used for rate-limiting. Up to a handful concurrent requests should be ok.\nUser-agent: *\nAllow: /', + ) + }) + router.get('/xrpc/_health', async function (req, res) { const { version } = ctx.cfg const db = ctx.db.getPrimary()