Changeset 82c3356 in Klonkt


Ignore:
Timestamp:
08/08/2026 11:36:16 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
e667d26
Parents:
c72e45e
Message:

De AP-limiter telde de hele site mee (Barts 429-jacht, de echte wortel)

"Too many requests, please try again later" dat niet overging. De
trust-proxy-fix van eerder was echt maar niet genoeg; de kijkbuis vond
het bewijs dat dieper wees: een lege /ap-teller naast remaining: 0 --
de emmer liep leeg ZONDER AP-verkeer.

De AP-router is op de ROOT gemonteerd (dat moest al, zie het commentaar
over de 404 die ooit de hele site raakte), en router.use(apReadLimiter)
zonder pad draait dan voor ELKE request: pagina's, media, avatars, de
PWA. De guardian-PWA met honderd ward-avatars leegde zo in seconden een
emmer die "voor /ap-reads" heette, en haar doorlopende verkeer hield hem
op nul -- voor het hele huishouden achter dat IP, app incluis. Vandaar
ook "live komt niet binnen": de wachtlus verhongerde mee.

De limiter is nu padgebonden: /ap, /.well-known en /nodeinfo. Tien
site-verzoeken laten de AP-emmer sindsdien onberoerd (remaining 299).

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    rc72e45e r82c3356  
    3535// (the /ap/* paths then fall through to the app's normal 404, which is correct).
    3636router.use((req, res, next) => { if (!apEnabled()) return next('router'); next(); });
    37 // Generous per-IP baseline over all /ap/* (reads). The inbox POST gets an
     37// Generous per-IP baseline over the AP-READ paths. The inbox POST gets an
    3838// additional, tighter cap inline (it triggers outbound fetches).
    39 router.use(apReadLimiter);
     39//
     40// PADGEBONDEN, niet router.use kaal (Barts 429-jacht, 9-8): deze router is op
     41// de ROOT gemonteerd, dus een kale use() draait voor ELKE request van de hele
     42// site -- pagina's, media, avatars, de PWA. De guardian-PWA met honderd
     43// ward-avatars leegde zo in seconden een emmer die "voor /ap-reads" heette,
     44// en hield hem leeg: vandaar een Too many requests die niet overging. De
     45// kijkbuis die dit vond: een lege /ap-teller naast remaining: 0.
     46router.use(['/ap', '/.well-known', '/nodeinfo'], apReadLimiter);
    4047let _ver = '1.0.0';
    4148try { _ver = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url))).version || _ver; } catch { /* keep default */ }
Note: See TracChangeset for help on using the changeset viewer.