# BOC Funktionalitetsaudit ## Business Operations Center — Verksamhetsgranskning > **Datum:** 2026-07-29 > **Auditor:** Bernt > **System:** boc.aamos.systems (port 9094) > **Status:** Aktiv drift, Torvalds-sprint klar, Uber-härdning pågår --- ## Sammanfattning BOC är ett ambitiöst verksamhetssystem med **106 API-endpoints** fördelade över **12 domäner**. Systemet är tekniskt körbart men har **kritiska arkitektoniska brister** som blockerar verksamhetsdrift på riktigt. Frontend och backend är **delvis kopplade** men databasen är **tom** — inga riktiga affärsprocesser kan drivas. **Verdict:** BOC är en **funktionell prototyp**, inte ett produktionsklart verksamhetssystem. --- ## 1. Nuvarande Funktionalitet (Per Modul) ### 1.1 CRM (Kundrelationer) | Feature | Status | Kommentar | |---------|--------|-----------| | Kundregister | ✅ API finns | CRUD komplett, men 0 kunder i DB | | Kontaktpersoner | ✅ API finns | Kopplade till kund | | Interaktionslogg | ✅ API finns | Samtal, mail, möten, anteckningar | | Pipeline / Leads | ✅ API finns | Status: lead → prospect → customer | | Tilldelning | ✅ API finns | Användare kan tilldelas kund | | **Gap:** Automatisk lead-import | ❌ Saknas | Ingen koppling till quiXzoom/AMOS | | **Gap:** Lead-scoring | ❌ Saknas | Ingen AI-baserad prioritering | ### 1.2 Sales (Försäljning) | Feature | Status | Kommentar | |---------|--------|-----------| | Deals / Affärer | ✅ API finns | Värde, sannolikhet, förväntat avslut | | Offert → Order | ✅ API finns | 002-migration har quotes + orders | | Produkter | ✅ API finns | Pris, beskrivning | | MRR/ARR | ✅ API finns | Beräknat från deals | | **Gap:** Fakturering | ⚠️ Delvis | Invoices finns men ej kopplade till ledger | | **Gap:** Betalningspåminnelser | ❌ Saknas | | | **Gap:** Återkommande intäkter | ❌ Saknas | Subscription-plans finns i schema men ej aktivt | ### 1.3 Finance (Ekonomi) | Feature | Status | Kommentar | |---------|--------|-----------| | Balansräkning | ✅ API finns | Proxy till ledger (mock-fallback) | | Resultaträkning | ✅ API finns | Proxy till ledger | | Momsrapport | ✅ API finns | Proxy till ledger | | Kontoplan | ✅ API finns | BAS-konton från ledger | | Utgifter | ✅ API finns | Create + List | | Budget | ✅ API finns | Enkel budget vs utfall | | Kassaflöde | ✅ API finns | | | **Gap:** Riktig ledger-koppling | ❌ **KRITISKT** | All finance är mock eller proxy | | **Gap:** Bankintegration (PSD2) | ❌ Saknas | Ingen automatisk transaktionsimport | | **Gap:** SIE4 export | ❌ Saknas | Migration har import_sie4.sql men ej export | | **Gap:** Periodisering | ❌ Saknas | | ### 1.4 HR (Personal) | Feature | Status | Kommentar | |---------|--------|-----------| | Anställdaregister | ✅ API finns | CRUD komplett | | Frånvaro / Ledighet | ✅ API finns | Ansökan, godkännande | | Tidrapport | ✅ API finns | Timmar per projekt | | **Gap:** Löneutbetalning | ❌ Saknas | Ingen koppling till payroll-system | | **Gap:** Kompetensmatris | ⚠️ Delvis | API finns men ej komplett | | **Gap:** Prestandagranskning | ⚠️ Delvis | API finns men ej komplett | ### 1.5 Legal (Avtal) | Feature | Status | Kommentar | |---------|--------|-----------| | Avtalsregister | ✅ API finns | CRUD + mallar | | Påminnelser | ✅ API finns | Förnyelse-datum | | Produkt-koppling | ✅ API finns | Avtal kopplade till produkter | | **Gap:** E-signering | ❌ Saknas | Ingen integration med BankID/Adobe Sign | | **Gap:** GDPR-radering | ❌ Saknas | Ingen automatisk datarensning | ### 1.6 Marketing (Marknadsföring) | Feature | Status | Kommentar | |---------|--------|-----------| | Kampanjer | ✅ API finns | Enkel kampanjhantering | | Innehåll | ✅ API finns | Content-kalender | | **Gap:** Email-automation | ❌ Saknas | Ingen koppling till Resend/Mailchimp | | **Gap:** Social media | ❌ Saknas | | | **Gap:** ROI-tracking | ❌ Saknas | | ### 1.7 Support (Kundtjänst) | Feature | Status | Kommentar | |---------|--------|-----------| | Ärenden (Tickets) | ✅ API finns | CRUD + kommentarer | | CSAT | ✅ API finns | Kundnöjdhet | | **Gap:** SLA-tracking | ❌ Saknas | Ingen övervakning av responstider | | **Gap:** Kunskapsbas | ❌ Saknas | | | **Gap:** Chat-integration | ❌ Saknas | | ### 1.8 Automation (Automatisering) | Feature | Status | Kommentar | |---------|--------|-----------| | Workflows | ✅ API finns | Definierade men ej aktiva | | Schemalagda jobb | ✅ API finns | Cron-liknande | | **Gap:** Verklig automation | ❌ Saknas | Workflows triggar inga actions | ### 1.9 Analytics (Analys) | Feature | Status | Kommentar | |---------|--------|-----------| | Dashboard | ✅ API finns | KPI:er | | Aktiva användare | ✅ API finns | | | Intäktsanalys | ✅ API finns | | | **Gap:** Prediktion | ❌ Saknas | Ingen AMOS AI-koppling | | **Gap:** Custom rapporter | ❌ Saknas | | ### 1.10 Briefing (Daglig översikt) | Feature | Status | Kommentar | |---------|--------|-----------| | Daglig briefing | ✅ API finns | Prioriteringar, rekommendationer | | "Real briefing" | ✅ API finns | Live-data från systemet | | Larm | ✅ API finns | | | Arbetsplan | ✅ API finns | | ### 1.11 Journal (Bokföring) | Feature | Status | Kommentar | |---------|--------|-----------| | Verifikationslista | ✅ API finns | Journal entries | | Kontodrill-down | ✅ API finns | Transaktioner per konto | | **Gap:** Riktig bokföring | ❌ **KRITISKT** | Allt är mock-data | ### 1.12 Tenant / Multi-tenancy | Feature | Status | Kommentar | |---------|--------|-----------| | Tenant-hantering | ✅ API finns | CRUD + hierarki | | Tenant-switch | ✅ API finns | | | **Gap:** RLS (Row Level Security) | ⚠️ Delvis | Schema har tenant_id men RLS ej aktiverat | --- ## 2. Teknisk Skuld (Blockerare) ### 🔴 KRITISKT — Måste åtgärdas innan produktion | # | Problem | Impact | Åtgärd | |---|---------|--------|--------| | 1 | **Ingen riktig data** — DB är tom | Systemet kan inte driva verksamhet | Seed-data + migrera från befintliga system | | 2 | **Ledger = mock/proxy** | All ekonomi är fejk | Bygg riktig ledger-klient med circuit breaker | | 3 | **Monolit-arkitektur** — 15K rader i main.go | Ounderhållbart, ingen testbarhet | Clean Architecture (plan finns) | | 4 | **Ingen service layer** — Affärslogik i handlers | Duplicerad kod, ingen transaktionssäkerhet | Domain-driven services | | 5 | **Repository pattern — bara Customer** | Alla andra moduler använder raw SQL i handlers | Implementera för alla domäner | | 6 | **Frontend/backend osynk** — web-v2 ej kopplad till API | Statisk data, ingen verklig drift | API-repository pattern i React | | 7 | **0% test coverage** (förutom CRM) | Regressioner garanterade | Enhet + integrationstester | ### 🟡 HÖG — Bör åtgärdas inom 30 dagar | # | Problem | Impact | Åtgärd | |---|---------|--------|--------| | 8 | **Auth — fallback till HS256** | Säkerhetsrisk | Strikt RS256, neka HS256 | | 9 | **Ingen CI/CD** | Manuella fel | GitHub Actions (plan finns) | | 10 | **Ingen backup-strategi** | Dataförlust-risk | Automatisk pg_dump + S3 | | 11 | **Rust-service + C-runtime — inaktiva** | Död kod | Aktivera eller ta bort | | 12 | **web-v1 (Next.js) + web-v2 (Vite)** — två frontends | Förvirring, dubbel arbete | Välj en, arkivera andra | ### 🟢 MEDEL — Bör åtgärdas inom 90 dagar | # | Problem | Impact | Åtgärd | |---|---------|--------|--------| | 13 | **Ingen Kafka/event sourcing** | Audit trail saknas | Aktivera EVENT_CATALOG | | 14 | **Grafana dashboard ej importerad** | Blind drift | Importera dashboard | | 15 | **Ingen rate limiting per tenant** | Resursöverbrukning | Tenant-baserade quotas | | 16 | **Ingen dataretention-policy** | GDPR-risk | Automatisk radering | --- ## 3. Verksamhetsgaps — Vad Behövs för att Driva Landvex ### 3.1 Landvex AB (Svenskt bolag) | Process | BOC-stöd | Gap | |---------|----------|-----| | Bokföring (BAS-konton, SIE4) | ⚠️ Mock | **KRITISKT:** Koppla till aamos-ledger | | Momsredovisning | ⚠️ Mock | **KRITISKT:** Riktig momsberäkning | | Löner | ❌ Saknas | Integration med lönesystem | | Fakturering | ⚠️ Delvis | Koppla till ledger + påminnelser | | Leverantörsfakturor | ✅ API finns | Men ej kopplad till betalning | | Årsredovisning | ❌ Saknas | Export till SIE4 + PDF | ### 3.2 quiXzoom (Plattform) | Process | BOC-stöd | Gap | |---------|----------|-----| | Zoomer-hantering | ❌ Saknas | quiXzoom-integration | | Uppdragsflöde | ❌ Saknas | Mission-API koppling | | Utbetalningar | ❌ Saknas | Payout Engine integration | | KYZ-verifiering | ❌ Saknas | Identity-koppling | ### 3.3 AMOS (AI-plattform) | Process | BOC-stöd | Gap | |---------|----------|-----| | Lead-scoring | ❌ Saknas | AMOS Vision/Fraud | | Riskanalys | ❌ Saknas | AMOS Risk Engine | | Dokumentanalys | ❌ Saknas | AMOS Evidence Engine | --- ## 4. Frontend-granskning ### web-v2 (Aktiv — React 19 + Vite) | Sida | Status | Koppling till API | |------|--------|-------------------| | Login | ✅ | Mock-auth (ej RS256) | | Briefing | ✅ | `/api/v1/briefing/real` — fungerar | | Dashboard | ⚠️ | Statisk data | | CRM | ⚠️ | Mock-data (ej kopplad till `/api/v1/crm/customers`) | | Sales | ⚠️ | Mock-data | | Finance | ⚠️ | Mock-data | | HR | ⚠️ | Mock-data | | Legal | ⚠️ | Mock-data | | Marketing | ⚠️ | Mock-data | | Support | ⚠️ | Mock-data | | Automation | ⚠️ | Mock-data | | Profile | ⚠️ | Mock-data | **Problem:** Frontend använder `useMockStore` — byt till `useApiStore` för live-data. ### web-v1 (Next.js — Arkiverad?) - Deployad till `/var/www/boc/` (nginx root) - Innehåller dashboard, login, osv. - **Troligen föråldrad** — bör tas bort --- ## 5. Rekommendationer — Prioritering ### Fas 0: Stoppa Blödningen (Denna vecka) 1. **Bestäm master-repo:** Lokalt vs GitHub (`wolfoftyreso-debug/-landvex-boc`) 2. **Välj frontend:** `web-v2` (React 19) eller `boc-portal` (React 18, mer komplett) 3. **Rensa död kod:** Ta bort web-v1, Rust-service (om inaktiv), C-runtime 4. **Seed-data:** Ladda in Landvex AB som tenant + demo-data ### Fas 1: Foundation (Vecka 1-2) 1. **Clean Architecture** — Refactor enligt BOC_IMPLEMENTATION_PLAN.md 2. **Repository pattern** — Alla domäner 3. **Service layer** — Transaktionssäkerhet 4. **Tester >80%** — Enhet + integration ### Fas 2: Koppla Ekonomin (Vecka 3-4) 1. **Riktig ledger-klient** — Circuit breaker, cache, retry 2. **BAS-konton** — Från aamos-ledger (port 3250) 3. **SIE4 import/export** — För årsredovisning 4. **Bankintegration** — PSD2/Open Banking ### Fas 3: Koppla Frontend (Vecka 5) 1. **API-repository pattern** — React → Backend 2. **Auth-flöde** — RS256 via Ouroboros 3. **Real-time** — WebSocket för updates ### Fas 4: Integrationer (Vecka 6-8) 1. **quiXzoom** — Zoomer-hantering, uppdrag 2. **AMOS AI** — Lead-scoring, riskanalys 3. **Email/SMS** — Resend/Twilio 4. **Fortnox/Visma** — För kunder som kräver det ### Fas 5: Produktion (Vecka 9-10) 1. **CI/CD** — GitHub Actions 2. **Monitoring** — Grafana dashboard 3. **Backup/DR** — Automatisk + testad restore 4. **Security audit** — gosec, trivy --- ## 6. Risker | Risk | Sannolikhet | Impact | Mitigering | |------|------------|--------|------------| | Ledger-API ändras | Medium | High | Circuit breaker, versionering | | Team tappar fokus | High | Medium | Fasindelning, veckoleveranser | | Dataförlust vid migration | Low | Critical | Backup innan varje steg | | Frontend/backend osynk | Medium | Medium | OpenAPI-kontrakt | | Performance vid skalning | Medium | High | CQRS, read replicas | --- ## 7. Mätetal (KPI:er för BOC) | Mått | Nuvarande | Mål | |------|-----------|-----| | API-endpoints | 106 | 150+ (färdiga integrationer) | | Test coverage | ~5% | >80% | | Frontend-API koppling | ~10% | 100% | | Riktig data i DB | 0% | 100% | | Ledger-integration | Mock | Riktig | | CI/CD | Manuell | Automatisk | | Uptime | 99% | 99.9% | --- ## Bilaga: Filstruktur ``` boc/ ├── backend/ # Go-monolit (15K rader) │ ├── handlers/ # 34 handlers (6664 rader) │ ├── models/ # 1 fil (2891 rader) — för tunn │ ├── repository/ # 1 fil (customer.go) — för få │ ├── service/ # 1 fil (customer.go) — för få │ └── main.go # 14K rader — för tjock ├── web-v2/ # React 19 + Vite (aktiv utveckling) │ ├── src/pages/ # 12 sidor │ └── src/components/# UI-komponenter ├── web-v1-backup/ # Next.js (föråldrad) ├── web/ # Deployad till /var/www/boc (föråldrad) ├── rust-service/ # Inaktiv ├── c-runtime/ # Inaktiv ├── db/ # 5 migrationer (69 tabeller) └── docs/ # Planer och specar ``` --- *Audit genomförd: 2026-07-29 10:15 UTC* *Nästa steg: Beslut om Fas 0 (master-repo, frontend-val, rensning)*