bae705aa97
- 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.2 KiB
4.2 KiB
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)
// 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 tillcalcAnnualFeeimport +/price-calcGET route/opt/amos/services/amos-core/server.mjs— mountade create-org router PUBLIC (före auth middleware), lade till/api/onboarding/create-orgoch/api/onboarding/price-calci 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-translucentstatus 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-40ce6e234425org_name:TestBolag ABemail:test-onboard-1780658624@testbolag.seredirect:/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)
- Riktiga iOS App Icons — placeholder PNG-ikoner genererades (enfärgade blå). Bör ersättas med riktig AAMOS-logotyp för production.
- Email-verifiering — create-org sätter
email_verified=truedirekt. Om man vill ha verifieringsmail bör det läggas till. - Rate limiting — create-org är publik utan rate limit. Bör läggas till för production.
- Signup.html redirect — gamla
/auth/signup.htmlär kvar. Kan läggas till redirect till/auth/onboarding.html. - DB-konsolidering —
organizations-tabellen skapades iamos-databasen. Bör synkas medouroboros-DB om multiorg-systemet förväntar sig det där.