- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
4.1 KiB
BYGGE-PLAN — Enterprise-resiliens (start 2026-06-04 23:13 UTC)
Erik: "Starta bygge. Allt utom det som kräver manuell handpåläggning med konton/kort."
VAD JAG KAN BYGGA NU (inget kort/konto/kostnad)
| # | Bygge | Varför möjligt |
|---|---|---|
| B1 | AI-Gateway (fristående, PM2, port 3270) — auto-failover över alla providers | bernt-ägd kod, befintliga nycklar, ingen kostnad |
| B2 | Provider health/kredit-monitor + larm | egna nycklar, läs-anrop |
| B3 | quiXzoom payments application_fee (Flow+-modellen #1c) | bernt-ägd payments.mjs, mock tills Stripe live |
| B4 | Graceful degradation i quixzoom-api (DB-fel→read-only, AI-fel→fallback) | bernt-ägd |
| B5 | Provider-failover smoke-tester + dokumentation | egna nycklar |
| B6 | Observability: strukturerad logg + /metrics i gateway & quixzoom-api | bernt-ägd |
VAD SOM KRÄVER ANDRA (ticketat, ej i detta bygge)
- RDS Multi-AZ + uppgradering (Winston kostnad, Johan AWS) → RES-001/003
- Andra EC2-host + ALB (Winston kostnad) → RES-004
- Provider kort/konton/auto-topup (Winston) → PROV-W1..6
- model-router.mjs ändring (root-ägd) → AI-Gateway ersätter behovet; Johan migrerar interna anrop senare
ARKITEKTUR — AI-Gateway (B1, kärnan)
Fristående Node-tjänst, port 3270, PM2. Enhetligt API: POST /v1/chat { task, system, messages, maxTokens } Routing: primär→sekundär→tertiär per task. Vid 429/quota/credit/5xx/timeout → nästa provider. Circuit-breaker per provider (öppnas efter N fel, halvöppen efter cooldown). ALDRIG hårt fel pga en provider. Loggar varje failover som incident. Health: GET /health, GET /metrics (per provider: ok/fel/latens/circuit-state).
Provider-kedjor (kredit-OK only, Grok exkluderad tills påfylld): reasoning: openai(o3) → anthropic(opus) → deepseek fast: groq → gemini → openai(4o-mini) search: perplexity → (ingen fallback, degraderar till "ingen websök") creative: openai(gpt-4o) → anthropic(sonnet) → gemini default: anthropic(sonnet) → openai(4o) → groq
ORDNING
- B1 AI-Gateway (störst riskreduktion) → deploy + verifiera failover
- B2 monitor → PM2
- B6 observability i gateway
- B3 payments Flow+ application_fee
- B4 graceful degradation
- B5 smoke-tester + slutverifiering
STATUS: KÖR
✅ BYGGE KLART (2026-06-04 23:24 UTC) — verifierat live
| # | Bygge | Status | Bevis |
|---|---|---|---|
| B1 | AI-Gateway (PM2 port 3270) | ✅ LIVE | 6 providers, failover bevisat (404→groq, 1 failover) |
| B2 | Provider-monitor (PM2, 5min) | ✅ LIVE | 6/7 OK, larmar Winston/Johan auto vid kredit/nere |
| B3 | Flow+ application_fee (#1c) | ✅ LIVE | /api/qz/payments/fees — 0,12% on / 0,15% off, källangivet |
| B4 | Djup health + degradering | ✅ LIVE | /health/ready 503 vid DB-fel → LB kan dirigera om |
| B6 | Observability (metrics+logg) | ✅ LIVE | /metrics per provider, strukturerad JSON-logg |
Nya PM2-tjänster (sparade i dump)
- ai-gateway (3270) — enhetligt LLM-API med auto-failover + circuit-breaker
- provider-monitor — kredit/health-bevakning + auto-larm
Failover-kedjor aktiva (Grok exkluderad tills påfylld)
- reasoning: openai(o3)→anthropic(opus)→deepseek
- fast: groq→gemini→openai(4o-mini)
- creative: openai(4o)→anthropic(sonnet)→gemini
- search: perplexity
- default: anthropic(sonnet)→openai(4o)→groq
Designförbättring upptäckt under test
404/modell-avvecklad klassas nu som FAILOVER (hände med Gemini 2.0 idag). Tidigare gav det hårt fel. Nu faller det över till nästa provider.
Buggar fixade på vägen
- Gemini-probe använde avvecklad 2.0-flash → 2.5-flash
- Anthropic-probe använde avvecklad haiku-20241022 → claude-haiku-4-5
KVAR (kräver Johan/Winston — ticketat, ej i detta bygge)
- RDS Multi-AZ + uppgradering (RES-001/003) — Winston kostnad, Johan AWS
- Andra host + ALB (RES-004) — Winston kostnad
- Provider kort/auto-topup (PROV-W1..6) — Winston
- Migrera interna amos-core-anrop till AI-Gateway (Johan, root-fil)
- Grok-påfyllning → då läggs Grok tillbaka i kedjorna