fix(auth): verlopen API-token weigeren in getAuth en getTokenScopedProducts (ISS-9) #163
No reviewers
Labels
No labels
severity/s2
severity/s3
severity/s4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/scrum4me-mcp!163
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/api-token-expiry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem
getAuth()engetTokenScopedProducts()insrc/auth.tscontroleerden alleenrevoked_at. Een token metexpires_atin het verleden bleef daardoor werken op alle MCP-tools, terwijl de workers-UI het als "Verlopen" toont. Het dispatchpad (src/dispatch/auth.ts) controleerde de vervaldatum al wel.Wijziging
getAuth()weigert een token metexpires_at <= now, met dezelfde foutmelding als een ingetrokken token.getTokenScopedProducts()geeft voor zo'n token[]en vraagtexpires_atop in de select.expires_at IS NULLof> now.Tests
__tests__/auth-scoped.test.ts: verlopen geweigerd, zonder vervaldatum geaccepteerd, toekomstige vervaldatum geaccepteerd, voor beide functies. Drie van de nieuwe tests faalden voor de fix.npm run typecheckennpm test: 1814 geslaagd, 51 overgeslagen (integratiesuites zonder database).Let op bij uitrol
Niet-ingetrokken tokens die al verlopen zijn, worden na deze wijziging geweigerd. JP controleert dat voor de merge.
Niet in deze PR
src/presence/heartbeat.tscontroleert ook alleenrevoked_at. Die fix kwam na de merge van deze PR en staat in een eigen vervolg-PR.Zuster-PR in Scrum4Me voor
lib/api-auth.ts(ISS-2).🤖 Generated with Claude Code
Verdict: APPROVED
Bevindingen
Geen bevindingen met blokkerende of error-severity.
De expiratiecontrole volgt de bestaande dispatch-semantiek: een token is uitsluitend geldig wanneer
expires_atleeg is of strikt in de toekomst ligt. De wijziging dekt zowelgetAuthals de scope-helper af, met gerichte tests voor verlopen, lege en toekomstige waarden.Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Testverificatie kon lokaal niet worden uitgevoerd: de tijdelijke reviewmap is als
noexecgemount (esbuild kreegEACCES). Dit is geen defect in de PR; de test- en TypeScript-configuratie zijn wel geïnspecteerd.