# Plan för produktlansering

Detta dokument är en releasechecklista.
Det kompletterar `NEXT_STEPS.md` och ska inte duplicera backloggen.

## Dokumentstatus (2026-05-21)

- Målgrupp: produktägare, systemadministratörer, utvecklingsteam.
- Fokus: vad som måste vara verifierat innan release.

## 1. Säkerhet och dataskydd

- [ ] Känsliga uppgifter krypterade enligt beslutad modell.
- [ ] Rate limiting aktiv på relevanta API/AI-endpoints.
- [ ] Secret-hantering verifierad (inga hardkodade hemligheter).
- [ ] Roll- och accesskontroller testade i praktiken.
- [ ] Migrera autentisering från `localStorage` till `httpOnly`-cookies i Flutter Web.
- [ ] Implementera automatiserad datarensning för `AiTrace` (retention-policy).
- [ ] Utför penetrationstest för IDOR och XSS.
- [ ] Dokumentera GDPR-processer (t.ex. rätt att glömmas, dataportabilitet).

## 2. DevOps och stabilitet

- [ ] CI/CD för build, test och deploy på plats.
- [ ] Migreringar + seedning kör konsekvent vid release.
- [ ] Health checks och loggning verifierade.
- [ ] Backup/restore testad för datavolymer.

## 3. Kvalitet och test

- [ ] Kritiska flöden har testtäckning (auth, import, CRUD, AI).
- [ ] Minst en end-to-end verifiering i testmiljö per release.
- [ ] DTO-validering och felhantering kontrollerad.
- [ ] Skapa E2E-tester för flyer- och kvittoimport (t.ex. Cypress eller Playwright).
- [ ] Validera OCR-korrigeringar med ett större dataset.

## 4. Funktionell releaseklarhet

- [ ] Kvittoimport fungerar end-to-end med granskningsteg.
- [ ] User-scoped produktmodell verifierad med flera testanvändare.
- [ ] Kategoriträd seedat och validerat i aktuell miljö.
- [ ] Bildimport och fallbackflöde fungerar i driftmiljö.
- [ ] Genomför manuell testning av aliasflödet med riktiga kvitton.
- [ ] Test sessionhydrering i olika scenarier (t.ex. flikbyte, app-krasch).

## 5. Riskhantering

- [ ] AI-kostnad, timeout och fallback-beteende verifierat.
- [ ] Ingen osynk mellan migrationer och seedskript.
- [ ] Kända release-risker dokumenterade med ansvarig ägare.
- [ ] Implementera adaptiv retry-logik med exponentiell backoff för AI-anrop.
- [ ] Lägg till kostnadsgränser och varningar i `AiTraceService`.
- [ ] Dokumentera fallback-beteende (t.ex. cache, manuell granskning).

## 6. Prestanda och skalbarhet

- [ ] Optimera Prisma-frågor med `EXPLAIN ANALYZE` och indexering.
- [ ] Implementera virtuell scrollning i Flutter för stora listor.
- [ ] Dokumentera belastningsgränser för `importer-api` och planera för skalning.
- [ ] Lägg till Redis-cache för vanliga frågor (t.ex. produkt-sökning).

## 7. Dokumentation och användarstöd

- [ ] Skapa admin-handbok med vanliga arbetsflöden.
- [ ] Förbättra felmeddelanden i UI med tydliga instruktioner.
- [ ] Utöka `HelpTextsModule` med kontextuella guider för alla huvudfunktioner.
- [ ] Generera OpenAPI-specifikation för backend (t.ex. med `@nestjs/swagger`).

## Relaterade dokument

- `NEXT_STEPS.md` — övergripande prioriteringar.
- `TEKNISK_BESKRIVNING.md` — teknisk implementation.
- `flutter/next_steps_flutter.md` — Flutter-specifik leveransplan.
- `MVP_CHECKLISTA.md` — testchecklista för MVP.

## Kritiska utvecklingsområden

### 1. Säkerhet och dataskydd (Högsta prioritet)
**Motivering:**
- Känsliga uppgifter (t.ex. JWT i localStorage) och AI-trace-loggar innehåller maskerade men potentiellt känsliga uppgifter.
- Risk för XSS-attacker och IDOR om inte åtgärdat.

**Åtgärder:**
- Migrera autentisering till `httpOnly`-cookies.
- Implementera automatiserad datarensning för `AiTrace`.
- Utför penetrationstester.

---

### 2. Stabilitet i AI-integration (Hög prioritet)
**Motivering:**
- Timeout och retry-logik kan leda till 503-fel.
- Saknad kostnadskontroll för AI-anrop.

**Åtgärder:**
- Implementera adaptiv retry-logik.
- Lägg till kostnadsgränser i `AiTraceService`.
- Dokumentera fallback-beteende.

---

### 3. Sluttestning av importflöden (Hög prioritet)
**Motivering:**
- Alias-strategin och sessionhydrering är ej fullt testade.
- Saknas E2E-tester för hela importflödet.

**Åtgärder:**
- Genomför manuell testning med riktiga kvitton.
- Skapa E2E-tester.

---

### 4. Prestanda och skalbarhet (Medel prioritet)
**Motivering:**
- Långsamma Prisma-frågor och renderingsproblem i Flutter-UI.
- Saknad caching-strategi.

**Åtgärder:**
- Optimera databasfrågor.
- Implementera virtuell scrollning.
- Lägg till Redis-cache.

---

### 5. Dokumentation och användarstöd (Medel prioritet)
**Motivering:**
- Saknas admin-guider och tydliga felmeddelanden.
- Begränsat innehåll i `HelpTextsModule`.

**Åtgärder:**
- Skapa admin-handbok.
- Utöka hjälptexter.
- Generera OpenAPI-dokumentation.

---

## Prioriteringsordning

| **Område**                     | **Prioritet** | **Berörda filer/dokument**                          |
|---------------------------------|---------------|-----------------------------------------------------|
| 1. Säkerhet och dataskydd       | ⭐⭐⭐⭐⭐       | `TEKNISK_BESKRIVNING.md`, `flutter/.../auth/`        |
| 2. Stabilitet i AI-integration  | ⭐⭐⭐⭐        | `flyerimporter.md`, `backend/src/ai/`               |
| 3. Sluttestning av importflöden | ⭐⭐⭐⭐        | `MVP_CHECKLISTA.md`, `NEXT_STEPS.md`                |
| 4. Prestanda och skalbarhet     | ⭐⭐⭐          | `backend/src/flyer-import/`, `flutter/lib/admin/`   |
| 5. Dokumentation och stöd       | ⭐⭐           | `README.md`, `HelpTextsModule`, `backend/src/ai/`   |

---

## Nästa steg

1. Låsa säkerhetsbristerna (särskilt autentisering och dataskydd).
2. Stabilisera AI-integration med bättre felhantering och kostnadskontroll.
3. Kör sluttestning av importflöden och rätta eventuella regressioner.
4. Optimera prestanda i databas och UI.
5. Förbättra dokumentationen för admin och slutanvändare.

Dessa åtgärder säkerställer en **stabil, säker och användarvänlig lansering**.