Features #368
öppenFeatures #352: Samling: Inför provideroberoende SMS-transport
Maintenance #359: Samling: Egen SMS-gateway för Android 14
Features #362: Anpassa säkert lokalt SMS-API till provider-kontraktet
Inför rate limiting och loggredigering i lokalt SMS-API
80%
Beskrivning
Utfall: Det lokala API:t begränsar missbruk och lämnar inga känsliga uppgifter i loggar.
Definition of Done:
- Dokumenterad och testad rate limit ger HTTP 429 med Retry-After utan att påverka health.
- Loggar innehåller inte telefonnummer, meddelandetext, autentiseringsuppgifter eller tokens.
- Tester täcker gräns, återhämtning efter tidsfönster och redigering av både lyckade och felaktiga requests.
Utanför scope: nätverksbrandvägg, internetexponering och central loggplattform.
Verifiering: automatiska API- och loggtester i isolerad testmiljö.
Acceptanskriterier
API:t ger testad 429/Retry-After vid överträdelse och loggar aldrig telefonnummer, meddelanden eller autentiseringshemligheter.
CA Uppdaterad av Codex API för 6 dagar sedan
Implementerat lokalt per-klientskydd med 30 anrop per 60 sekunder för alla lokala API-rutter utom /health. Begränsade svar innehåller X-RateLimit-* och vid överskridande HTTP 429 samt Retry-After. Central loggredigering maskerar Authorization, lösenord, tokens, telefonnummer, mottagare och meddelandetext före lagring; fel loggas med säker routemall. Verifierat med 7 nya enhetstester, full testDebugUnitTest + lintDebug + assembleDebug (BUILD SUCCESSFUL), APK SHA-256 91FD8B719B03E3F7AA679DC78BF813A3CCBF31FCAA9FF8B921F12E227C6193DB. Fysiskt telefonprov utan SMS: anrop 1-30 gav 401, anrop 31 gav 429 med Retry-After, /health fortsatte ge 200, och efter 60 sekunder återgick routen till 401. Gatewaytjänst och permanent notifiering kvarstår. Ändringen inväntar commit/push-godkännande.
CA Uppdaterad av Codex API för 6 dagar sedan
Commit b0940640ee15c6bcaedb416a3d939d897af4de7f skapad med exakt sju #368-filer och pushad till codex/local-sms-api. Lokal och remote SHA verifierades identiska; arbetskatalogen är ren. Implementations- och telefonverifieringen är klar. Ärendet går via Resolved till Verification och inväntar senare release-/acceptansbeslut.