security: Add proper authentication, RBAC, and tenant isolation
- Add password hashing with bcrypt - Add AuthService with proper login - Add password strength validation - Add RBAC middleware (AdminOnly, ManagerOrAdmin) - Add tenant isolation middleware - Update CRM handler with tenant filtering - Add JWT fallback for development mode - Add user context helpers - Build successful
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
# QUIXZOOM AUDIT V0
|
||||
*Beslutad: 2026-06-17. Ersätter QUIXZOOM_AUDIT_SPEC.md som primärt dokument.*
|
||||
|
||||
---
|
||||
|
||||
## Syfte
|
||||
|
||||
Verifiera att ett definierat claim kan extraheras ur verklig fältvideo
|
||||
med tillräcklig säkerhet och tillräckligt låg kostnad.
|
||||
|
||||
Inte att testa AI.
|
||||
Inte att testa UX.
|
||||
Inte att testa Smart Scan.
|
||||
|
||||
**Enda frågan: Kan claimet verifieras?**
|
||||
|
||||
---
|
||||
|
||||
## Primärt KPI
|
||||
|
||||
**Cost Per Verified Claim (CPVC)**
|
||||
|
||||
```
|
||||
CPVC = Total kostnad / Godkända claims
|
||||
```
|
||||
|
||||
Inte accuracy. Inte recall. Inte OCR-score.
|
||||
|
||||
---
|
||||
|
||||
## Auditobjekt
|
||||
|
||||
### 1. Elmätare verifierad
|
||||
Datakrav (alla tre krävs):
|
||||
- Serienummer
|
||||
- Mätarställning
|
||||
- Plombering synlig
|
||||
|
||||
### 2. Fordon identifierat
|
||||
Datakrav (alla tre krävs):
|
||||
- Registreringsnummer
|
||||
- Fordonstyp
|
||||
- Position
|
||||
|
||||
### 3. Skylt verifierad
|
||||
Datakrav (alla tre krävs):
|
||||
- Skylttext
|
||||
- GPS-position
|
||||
- Tidsstämpel
|
||||
|
||||
---
|
||||
|
||||
## Per inspelning — logga
|
||||
|
||||
```yaml
|
||||
video_id: ""
|
||||
claim_typ: "" # electricity_meter | vehicle | sign
|
||||
videolangd_s: 0
|
||||
antal_instruktioner: 0
|
||||
tid_till_verifiering_s: 0
|
||||
|
||||
datapunkter:
|
||||
- namn: ""
|
||||
status: synlig | delvis | ej_synlig
|
||||
confidence: 0 # 0–100
|
||||
|
||||
resultat: godkant | underkant
|
||||
underkant_orsak: ""
|
||||
|
||||
ekonomi:
|
||||
zoomer_tid_s: 0
|
||||
zoomer_ersattning_sek: 0
|
||||
operativ_kostnad_sek: 0
|
||||
cpvc_sek: 0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Kill-kriterier
|
||||
|
||||
Projektet pausas om något av följande:
|
||||
|
||||
| Kriterium | Gräns |
|
||||
|-----------|-------|
|
||||
| Claims som kan verifieras | < 80% |
|
||||
| Genomsnittlig verifieringstid | > 120 sek |
|
||||
| CPVC | > målpriset |
|
||||
| Kritiska datapunkter (serienummer, reg.nr) | < 95% tillförlitlighet |
|
||||
|
||||
Vid kill: hypotesen omarbetas innan vidare utveckling.
|
||||
|
||||
---
|
||||
|
||||
## Nästa steg
|
||||
|
||||
Kör 500–1000 verkliga inspelningar mot denna spec.
|
||||
|
||||
Utdata ger hårda data för:
|
||||
- Vilka claims som fungerar
|
||||
- Vilka datapunkter som är svaga
|
||||
- Vilken trust-threshold som är realistisk
|
||||
- Vilken liveness som faktiskt behövs
|
||||
- Om quiXzoom har lönsam enhetsekonomi per verifierat claim
|
||||
|
||||
**Det är där visionen blir ett företag.**
|
||||
Reference in New Issue
Block a user