mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-21 06:11:45 +00:00
fix(atlas): gzip-compress responses so large country GeoJSON loads behind reverse proxies (#1262)
The admin-0 country GeoJSON served at /api/addons/atlas/countries/geo is ~30 MB uncompressed. With no compression in the request pipeline the transfer aborts (~8s, net::ERR_FAILED despite a 200) behind reverse proxies / Cloudflare Tunnel, so the Atlas map never colours visited countries. LAN is unaffected. Add the `compression` middleware to the shared applyGlobalMiddleware pipeline (gzip brings ~30 MB down to ~4 MB). text/event-stream is excluded so the /mcp StreamableHTTP (SSE) transport is not buffered. Adds BOOT-008 asserting content-encoding: gzip on the geo endpoint. Fixes #1254 Co-authored-by: pai <pai@stabpablo.eu>
This commit is contained in:
@@ -122,4 +122,17 @@ describe('BOOTSTRAP (F6) — unified NestJS app serves the whole surface', () =>
|
||||
else process.env.NODE_ENV = prev;
|
||||
}
|
||||
});
|
||||
|
||||
it('BOOT-008 — large responses are gzip-compressed (Atlas country GeoJSON, #1254)', async () => {
|
||||
// The admin-0 country GeoJSON is multi-MB; without compression it stalls
|
||||
// behind reverse proxies / Cloudflare Tunnel. Proves applyGlobalMiddleware
|
||||
// gzips it on the wire.
|
||||
const { user } = createUser(testDb);
|
||||
const res = await request(instance)
|
||||
.get('/api/addons/atlas/countries/geo')
|
||||
.set('Accept-Encoding', 'gzip')
|
||||
.set('Cookie', authCookie(user.id));
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.headers['content-encoding']).toBe('gzip');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user