Files
boc/memory/fix4-finance-analysis.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

94 lines
4.2 KiB
Markdown

# Fix #4 — Finance Services Konsolidering — Analys & Åtgärder
**Datum:** 2026-06-05
**Utfört av:** Loke (subagent)
## Analys: Routes & Roller
### ouroboros-finance (Node.js, port 3202)
- **Roll:** Affärsdatalager + persistering (PostgreSQL)
- **DB-tabeller:** `prexo_accounts`, `prexo_transactions`, `prexo_invoices`, `prexo_budget`, `prexo_journal_entries`, `prexo_journal_lines`
- **Unika routes (ej i financial-engine):**
- `POST /api/accounts` — skapa konto (DB)
- `GET/POST /api/transactions` — läs/skriv transaktioner (DB)
- `DELETE /api/transactions/:id` — void transaktion (DB)
- `GET /api/reports/pl` — resultaträkning (DB-beräknad)
- `GET /api/reports/balance` — balansräkning (DB-beräknad)
- `GET/POST/PUT /api/budget` — budget (DB)
- `GET/POST /api/invoices` + status/approve/reject — fakturor (DB)
- `GET /api/stats` — stats (DB)
- `GET /api/dashboard` — dashboard (DB)
- `GET/POST /api/contracts` — kontrakt (DB)
- `POST /api/finance/journal-entries` — dubbel bokföring med validering (DB, transaktionell)
- `GET /api/finance/trial-balance` — råbalans (DB)
- `GET /api/finance/sie-export` — SIE4-export (DB)
### aamos-financial-engine (Rust, port 3203)
- **Roll:** Beräkningsmotor — stateless, ingen DB
- **Typ:** In-memory / beräknad data (mock-baserad)
- **Unika routes (ej i ouroboros-finance):**
- `GET /kpis` — KPI-beräkning (MRR, ARR, EBITDA, LTV/CAC, etc.)
- `GET /cashflow` — cashflöde med kategorier
- `GET /ledger` + `POST /ledger` — ledger (in-memory)
- `GET /tax-periods` — skatteperioder (mock)
- `GET /banking/live` — banklive-data (forward till AMOS banking + mock fallback)
- `GET /summary` — exec-summary
- `POST /payroll/calculate` — lönekalkyl (stateless, exakt aritmetik i öre)
- `POST /moms/calculate` — momskalkyl (stateless, exakt aritmetik i öre)
### Överlappande routes (ej duplicerade — OLIKA roller)
| Route | ouroboros-finance | financial-engine |
|-------|-------------------|------------------|
| `/accounts` | DB, CRUD | Hardkodad mock (bankonton) |
| `/balance` | DB rapport (konton+transaktioner) | Statisk mock (balansräkning) |
| `/transactions` | DB, filtrerbar | POST only, in-memory |
| `/invoices` | DB, full CRUD | GET only, hardkodad mock |
**Slutsats: INTE duplicering — komplementära roller.**
## Namnbyten gjorda
### ouroboros-finance/index.mjs
| Var | Gammalt | Nytt |
|-----|---------|------|
| Header | `PREXO Finance Microservice` | `AAMOS Finance Microservice` |
| PORT env | `PREXO_FINANCE_PORT` | `AAMOS_FINANCE_PORT` |
| JWT fallback | `'prexo-secret'` | `'aamos-secret'` |
| Rate limiter key | `'prexo-finance'` | `'aamos-finance'` |
| Health response | `service: 'prexo-finance'` | `service: 'aamos-finance'` |
| Webhook router | `webhookRouter('prexo-finance')` | `webhookRouter('aamos-finance')` |
| Webhook triggers | `triggerWebhooks('prexo-finance', ...)` | `triggerWebhooks('aamos-finance', ...)` |
| Start log | `[PREXO Finance]` | `[AAMOS Finance]` |
| DB table names | `prexo_accounts`, `prexo_transactions`, etc. | **Oförändrade** (faktiska DB-tabellnamn) |
### systemd ouroboros-finance.service
- `Description=Ouroboros Finance Service``Description=AAMOS Finance Service`
### financial-engine/src/main.rs
- Lade till arkitekturkommentar i toppen (ASCII-box) som klargör:
- Stateless beräkningsmotor
- Ingen DB-koppling
- Datapersistering → ouroboros-finance (:3202)
- Beräkningar/KPIer → denna service (:3203)
## Status
**Kräver root-åtgärd** — filer ägda av root:
```
sudo bash /home/bernt/.openclaw/workspace/nginx-pending/apply-finance-rename.sh
```
Skriptet kopierar:
- `/tmp/ouroboros-finance-index.mjs``/opt/amos/services/ouroboros-finance/index.mjs`
- `/tmp/financial-engine-main.rs``/opt/amos/rust/financial-engine/src/main.rs`
- Uppdaterar systemd unit description + kör `daemon-reload`
## Ingen konsolidering genomfördes
Services är komplementära med tydligt separerade roller:
- **ouroboros-finance** = datapersistering, bokföring, SIE, fakturor, budget
- **aamos-financial-engine** = beräkningsmotor, KPIer, moms, lönekalkyl (stateless)
Att slå ihop dem skulle inte ge vinst — de tjänar olika klienter och har olika egenskaper (DB vs stateless).