Files
boc/aamos-ledger/CLAUDE.md
T

148 lines
4.2 KiB
Markdown
Raw Normal View History

# CLAUDE.md — aamos-ledger
> AI-kontext för alla som jobbar i detta repo.
## Vad är detta?
**aamos-ledger** är LandveX AB:s bokföringsmotor — en komplett, egenutvecklad redovisningsmotor med:
- Dubbel bokföring (debet = kredit, alltid)
- BAS 2024 kontoplan (svensk standard)
- SIE4-import och export
- Multi-tenant isolering (tenant_id på varje rad)
- Full audit trail (varje operation sparas i `ledger_audit_log`)
- Hermes event-publicering (alla ekonomiska händelser)
**Port:** 3250
**Tenant för LandveX AB:** `landvex`
**Tjänstnamn (systemd):** `aamos-ledger`
---
## Arkitektur
```
index.mjs — Express-app, alla API-routes
schema.sql — PostgreSQL-schema (kör vid start via initSchema())
hermes.mjs — Event-publishing till Hermes fabric
sie4-export.mjs — SIE4-exportlogik
Dockerfile.migrate — DB-migration container
package.json — Node ESM-modul
```
### Databasschema (nyckelltabeller)
| Tabell | Beskrivning |
|--------|------------|
| `ledger_accounts` | Kontoplan (BAS 2024, IFRS, custom) |
| `ledger_journal_entries` | Verifikationer (IMMUTABLE efter `posted`) |
| `ledger_entry_lines` | Kontolinjer per verifikat (debet/kredit) |
| `ledger_periods` | Perioder (`open`/`closed`/`locked`) |
| `ledger_audit_log` | Audit trail för varje operation |
| `ledger_reconciliation_items` | Kontoavstämning |
| `ledger_period_close_tasks` | Periodeclose workflow |
| `ledger_vat_returns` | Momsdeklarationer |
| `ledger_fiscal_years` | Räkenskapsår |
---
## API-design
Alla endpoints kräver auth (JWT eller API-key). Tenant sätts via:
- Header: `X-Tenant-ID: landvex`
- Body: `{ "tenant_id": "landvex" }`
Exempel:
```bash
GET /api/accounts?tenant=landvex
POST /api/journal-entries
GET /api/periods?tenant=landvex
POST /api/sie4/export
```
Trace-propagering via headers:
- `X-Trace-ID` — propageras genom hela systemet
- `X-Correlation-ID` — korrelation per request-träd
- `X-User-ID` — vem som triggar
---
## Designprinciper (OBRYTBARA)
1. **Determinism före AI** — alla bokföringsbeslut reproducerbara
2. **Audit First** — VARJE operation genererar auditpost
3. **Tenant Isolation** — kunddata korsas aldrig, `tenant_id` filtreras alltid
4. **Hermes** — ekonomiska händelser publiceras via event fabric
5. **Inga direktberoenden** — till andra moduler (utom Hermes via events)
6. **IMMUTABLE journal** — poster ändras ALDRIG efter `status=posted`; annullering = ny `voided`-post
---
## Etapp 1 — Vertikal stängning (pågår juni 2026)
Checklista:
- [x] Chart of Accounts (BAS 2024)
- [x] Journal Entries med audit trail
- [x] SIE4-import
- [ ] **E1-004** Reconciliation Engine
- [ ] **E1-005** Period Close Workflow
- [ ] **E1-006** SIE4 Export (komplett)
- [ ] Auth mot Identity Service
- [ ] aamos-audit-engine restart-fix
- [ ] **E1-008** Vertikal stängning acceptanstest
---
## LandveX AB — Nuläge (per 2026-06-17)
| Mått | Värde |
|------|-------|
| Journalposter totalt | ~710 |
| Alla poster | `posted` (inga drafts) |
| Obalanserade poster | **0** |
| Aktiva konton | 38 |
| Revolut-poster på 1689 (oklassificerade) | ~545 / 966 685 kr |
| Q1-moms förfallen | **202 787 kr** — OBETALD |
| Leon-fordran | **212 922 kr** (konto 1610) |
| Trygg Bil-avtal | 222 916 kr/mån t.o.m. mars 2027 |
---
## Ekonomisystem — Fortnox-klonen i Ouroboros
Live-URLer:
- **Fortnox-klonen:** https://landvex.com/ouroboros/finance/
- **Verifikatsvy:** https://landvex.com/ouroboros/finance/ledger.html
- **CFO-dashboard:** https://landvex.com/public/cfo-dashboard.html
Filer på disk:
- `/opt/amos/public/ouroboros/finance/index.html`
- `/opt/amos/public/ouroboros/finance/ledger.html`
- `/opt/amos/public/public/cfo-dashboard.html`
---
## Kör lokalt
```bash
cd /home/bernt/.openclaw/workspace/aamos-ledger
# eller källkoden live på servern:
sudo -n systemctl status aamos-ledger
sudo -n journalctl -u aamos-ledger -n 50
# Health check
curl -sk http://localhost:3250/health
```
---
## Bolagsinfo
- **Bolag:** LandveX AB (org.nr 559141-7042, f.d. Sommarliden Holding AB)
- **Räkenskapsår:** 1 maj 30 april
- **FY 2025/2026:** avslutat, bokslut senast 31 okt 2026
- **Revisor:** Andreas Vretblad, KPMG, +46 70 865 67 27
---
*Senast uppdaterad: 2026-06-17*