# Shade V3.1 — Documentation & Hardening Foundation **Status:** Done **Effort:** S (1–2 uker) **Forrige:** V2.3 **Neste:** V3.2 / V3.3 / V3.4 (kan kjøres parallelt) --- ## Mål Lukke "lav-friksjon"-gjelden fra V2.1, V2.2 og V2.3 før vi tar fatt på de tunge sikkerhetsløftene. Dette er pre-arbeidet som låser opp resten av roadmapen: operatører skal kunne deploye trygt, transfer-konsumenter skal ha klare grenser, og OpenAPI skal dekke hele HTTP-flaten. Ingen ny kjernekode — kun docs, OpenAPI-utvidelser, retention-defaults og en test-/threat-matrise. --- ## Scope ### Inn - README + `@shade/server`-README: eksplisitt "keys vs payloads"-narrativ med diagram + lenke til `THREAT-MODEL.md`. - Ny `docs/PRODUCTION-CHECKLIST.md`: TLS, backup, observer-token-rotering, SQLite vs PG, log-nivå, stale-params, secret-rotering. - Hardening-seksjon i `docs/streams.md`: max stream-size, TTL, quota-mønstre — peker mot `@shade/files`-hooks som referanse. - `openapi.yaml` utvidet med `/v1/transfer/*` (`chunk`, `state`, `health`) + sikkerhetsskjema for `ShadeTransferAuthenticator`. - Retention-defaults i `docs/streams.md` + SDK-template: `pruneStreamStates`-cron som default — "ferdige streams ryddes etter N dager". - `SECURITY.md`-utvidelse: review-status, "hvordan rapportere", lenking fra `THREAT-MODEL.md`-rader → `tests/security/*` (test-/threat-matrise). ### Ut - Faktisk crypto-review (det er V4.0). - Endringer i krypto- eller wire-format. - Ny kode utenfor SDK-templates. --- ## Leveranser ### Dokumentasjon - `docs/PRODUCTION-CHECKLIST.md` — ny. - `docs/streams.md` — utvidet med "Hardening" og "Retention". - `README.md` — diagram-justering + "Hva som ikke går via Shade-server". - `packages/shade-server/README.md` — speile narrativet. - `SECURITY.md` — review-status + threat-/test-matrise. - `THREAT-MODEL.md` — krysslenker til konkrete tester. ### Kode (kun konfig + templates) - `packages/shade-server/openapi.yaml` — `/v1/transfer/*`-paths, `ShadeTransferAuthenticator` securityScheme. - `packages/shade-cli/templates/bun-server` — default `pruneStreamStates`-cron. ### Tester - Lint-test: OpenAPI-spec validerer fortsatt mot OpenAPI 3.1-skjema. - Smoke-test for cron i template. --- ## Akseptansekriterier - [ ] Ny utvikler kan lese README + `PRODUCTION-CHECKLIST.md` og deploye prod-klar Shade uten å lese hele kodebasen. - [ ] Generert klient (Python eller Go) fra `openapi.yaml` dekker både prekey- og transfer-flate uten manuelle fixes for happy path. - [ ] `THREAT-MODEL.md` linker hver "Mitigations"-rad til minst én test-fil. - [ ] Default SDK-template `bun-server` prune'r resumable streams uten manuell konfig. --- ## Avhengigheter Ingen. --- ## Risiko Lav. Verste utfall er foreldet docs hvis V3.2+ endrer overflater. Mitiger ved å skrive små, oppdaterbare seksjoner heller enn lange narrative kapitler. --- ## Migrasjon Ingen — alt er additivt.