From c9754ac11a75295c367c100a1a3f3787b723d809 Mon Sep 17 00:00:00 2001 From: Hampus Date: Wed, 23 Sep 2026 18:03:36 +0200 Subject: [PATCH] fix(api): exempt internal rpc from the client ip check (#2910) --- fluxer_api/src/api/middleware/RequireClientIpMiddleware.ts | 1 + .../api/middleware/tests/RequireClientIpMiddleware.test.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/fluxer_api/src/api/middleware/RequireClientIpMiddleware.ts b/fluxer_api/src/api/middleware/RequireClientIpMiddleware.ts index e7a1cb160..306d2ad81 100644 --- a/fluxer_api/src/api/middleware/RequireClientIpMiddleware.ts +++ b/fluxer_api/src/api/middleware/RequireClientIpMiddleware.ts @@ -15,6 +15,7 @@ interface RequireClientIpOptions { const defaultExemptPaths: Array = [ '/_health', + '/internal', '/webhooks/livekit', '/test', '/connections/bluesky/client-metadata.json', diff --git a/fluxer_api/src/api/middleware/tests/RequireClientIpMiddleware.test.ts b/fluxer_api/src/api/middleware/tests/RequireClientIpMiddleware.test.ts index 036b5b13f..cfd232ac1 100644 --- a/fluxer_api/src/api/middleware/tests/RequireClientIpMiddleware.test.ts +++ b/fluxer_api/src/api/middleware/tests/RequireClientIpMiddleware.test.ts @@ -22,6 +22,7 @@ function createHarness(path = 'http://localhost/v1/messages'): Harness { return ctx.text('ok'); }); app.get('/_health', (ctx) => ctx.text('OK')); + app.get('/internal/rpc', (ctx) => ctx.text('OK')); app.onError(AppErrorHandler); return { request: async (headers) => app.request(path, {headers}), @@ -80,6 +81,12 @@ describe('RequireClientIpMiddleware', () => { expect(response.status).toBe(200); }); + it('leaves internal service to service calls alone', async () => { + const harness = createHarness('http://localhost/internal/rpc'); + const response = await harness.request({}); + expect(response.status).toBe(200); + }); + it('passes every request through in test mode', async () => { Config.dev.testModeEnabled = true; const harness = createHarness();