Files
boc/memory/self-onboarding-result.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- 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
2026-06-29 16:24:48 +00:00

117 lines
4.2 KiB
Markdown

# Self-Onboarding — Full Stack Build Result
**Datum:** 2026-06-05
**Uppdragsgivare:** Erik
**Utförare:** OpenClaw subagent
---
## ✅ Vad som levererades
### 1. Backend — `/api/onboarding/price-calc` (NY endpoint)
**Endpoint:** `GET /api/onboarding/price-calc?revenue=<SEK>`
**Status:** ✅ LIVE och testad
**Publik:** Ja (ingen auth krävs)
```json
// curl -s 'http://localhost:3100/api/onboarding/price-calc?revenue=20000000'
{
"ok": true,
"revenue_sek": 20000000,
"annual_sek": 78000,
"monthly_sek": 6500,
"floor_applied": true,
"capped": false,
"band": "growth",
"raw_rate_sek": 30000,
"floor_sek": 78000,
"rate": 0.0015
}
```
**Ändrade filer:**
- `/opt/amos/api/onboarding/create-org.mjs` — lade till `calcAnnualFee` import + `/price-calc` GET route
- `/opt/amos/services/amos-core/server.mjs` — mountade create-org router PUBLIC (före auth middleware), lade till `/api/onboarding/create-org` och `/api/onboarding/price-calc` i public whitelist
### 2. Backend — `POST /api/onboarding/create-org` (nu MOUNTAD)
**Status:** ✅ Mountad och testad E2E
**Endpoint:** `/api/onboarding/create-org` — publik, ingen auth
**DB-fix:** Skapade `organizations`-tabell i `amos`-databasen (create-org.mjs använde DATABASE_URL från .env → `amos` DB, inte `ouroboros`). `prexo_users` fanns redan.
### 3. Frontend — Desktop + Mobil onboarding
**URL:** `https://amos.wavult.com/auth/onboarding.html`
**HTTP 200:** ✅ Bekräftad
**Fil:** `/opt/amos/public/auth/onboarding.html` (23 KB)
**Features:**
- 3-stegs flöde med progress bar + smooth animation
- Steg 1: Org-namn, bransch, storlek, omsättningsslider med **live prisberäkning**
- Steg 2: Admin-namn, email, lösenord (styrkeindikator), roll
- Steg 3: Modulval (6 st, checkbox-tiles)
- Submit → POST /api/onboarding/create-org → redirect till dashboard
- Apple native design language (SF Pro, #007AFF, #34C759, #FF3B30, border-radius 13px)
- Dark mode (`prefers-color-scheme: dark`)
- Mobiloptimerad (min 320px, max 600px centrerat på desktop)
- Inline felhantering, loading state på knapp
### 4. iOS PWA — Native onboarding
**URL:** `https://amos.wavult.com/ios-onboarding/`
**HTTP 200:** ✅ Bekräftad
**Filer:**
- `/opt/amos/public/ios-onboarding/index.html` — iOS-native PWA
- `/opt/amos/public/ios-onboarding/manifest.json` — PWA install manifest
- `/opt/amos/public/ios-onboarding/icon-{180,192,512}.png` — App icons
**Features:**
- `apple-mobile-web-app-capable` + `black-translucent` status bar
- Safe area insets (`env(safe-area-inset-*)`)
- iOS-stil nav bar med Tillbaka/Hoppa över
- Progress dots (iOS-stil)
- Lista-UI för formulär (iOS settings-utseende)
- Revenue slider med live prisberäkning
- Bottom-anchored CTA (thumb-reach)
- Samma 3-stegs flöde som desktop
---
## E2E-testresultat
| Test | Resultat |
|------|----------|
| `price-calc?revenue=20000000` | ✅ `{ band: "growth", monthly_sek: 6500 }` |
| `POST /api/onboarding/create-org` | ✅ Org skapad i DB |
| JWT returnerat | ✅ RS256-signerat token |
| Redirect | ✅ `/ceo` dashboard |
| Org i DB | ✅ |
**E2E test org:**
- `org_id`: `ed0d331d-3094-4367-a7cf-40ce6e234425`
- `org_name`: `TestBolag AB`
- `email`: `test-onboard-1780658624@testbolag.se`
- `redirect`: `/ceo`
---
## Live URLs
| Resurs | URL |
|--------|-----|
| Desktop onboarding | https://amos.wavult.com/auth/onboarding.html |
| iOS PWA onboarding | https://amos.wavult.com/ios-onboarding/ |
| Price-calc API | https://amos.wavult.com/api/onboarding/price-calc?revenue=10000000 |
| Create-org API | POST https://amos.wavult.com/api/onboarding/create-org |
---
## Vad som kvarstår (om något)
1. **Riktiga iOS App Icons** — placeholder PNG-ikoner genererades (enfärgade blå). Bör ersättas med riktig AAMOS-logotyp för production.
2. **Email-verifiering** — create-org sätter `email_verified=true` direkt. Om man vill ha verifieringsmail bör det läggas till.
3. **Rate limiting** — create-org är publik utan rate limit. Bör läggas till för production.
4. **Signup.html redirect** — gamla `/auth/signup.html` är kvar. Kan läggas till redirect till `/auth/onboarding.html`.
5. **DB-konsolidering**`organizations`-tabellen skapades i `amos`-databasen. Bör synkas med `ouroboros`-DB om multiorg-systemet förväntar sig det där.