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

4.2 KiB

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 ServiceDescription=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).