Files
boc/aamos-ledger-rust/README.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

121 lines
2.7 KiB
Markdown

# aamos-ledger-rust
En Rust-prototyp för aamos-ledger med följande funktionalitet:
## Funktioner
- **Konton (Accounts)** - CRUD för konton med kod, namn och kontotyp
- **Verifikat (Journal Entries)** - Bokföringsverifikat med journalrader
- **Dubbel bokföring** - Debet/kredit-validering
- **Rapporter** - Trial balance (saldoöversikt)
- **JWT-autentisering** - Skyddade endpoints
## Teknikstack
- **tokio** - Async runtime
- **axum** - Web framework
- **sqlx** - PostgreSQL-anslutning med compile-time query checking
- **serde** - Serialisering
- **jsonwebtoken** - JWT-hantering
- **tracing** - Logging
## Komma igång
### 1. PostgreSQL
```bash
# Skapa databas
createdb aamos_ledger
```
### 2. Miljövariabler
```bash
cp .env.example .env
# Redigera .env med dina inställningar
```
### 3. Bygg och kör
```bash
cargo run
```
Servern startar på `http://0.0.0.0:3000`
## API Endpoints
### Publika endpoints
| Metod | Endpoint | Beskrivning |
|-------|----------|-------------|
| GET | `/health` | Hälsokontroll |
| POST | `/login` | Logga in (username + password) |
### Skyddade endpoints (kräver JWT)
| Metod | Endpoint | Beskrivning |
|-------|----------|-------------|
| GET | `/accounts` | Lista alla konton |
| POST | `/accounts` | Skapa nytt konto |
| GET | `/accounts/:id` | Hämta konto efter ID |
| GET | `/journal-entries` | Lista verifikat |
| POST | `/journal-entries` | Skapa nytt verifikat |
| GET | `/journal-entries/:id` | Hämta verifikat med rader |
| GET | `/trial-balance` | Saldoöversikt |
## Exempelanrop
### Logga in
```bash
curl -X POST http://localhost:3000/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"password"}'
```
### Skapa konto
```bash
curl -X POST http://localhost:3000/accounts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"code":"7000","name":"Kontorsmaterial","account_type":"Expense"}'
```
### Skapa verifikat
```bash
curl -X POST http://localhost:3000/journal-entries \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"entry_number":"V001",
"description":"Försäljning kontant",
"entry_date":"2025-01-15T00:00:00Z",
"lines":[
{"account_id":"<kassa-id>","debit":"1000.00","credit":null},
{"account_id":"<försäljning-id>","debit":null,"credit":"1000.00"}
]
}'
```
### Hämta trial balance
```bash
curl http://localhost:3000/trial-balance \
-H "Authorization: Bearer <token>"
```
## Standardkonton
Databasen seedas med svenska BAS-konton:
- 1000 Kassa (Tillgång)
- 1500 Bankkonto (Tillgång)
- 2000 Leverantörsskulder (Skuld)
- 2400 Moms skuld (Skuld)
- 3000 Försäljning (Intäkt)
- 4000 Varukostnad (Kostnad)
- 5000 Lönekostnad (Kostnad)
- 6000 Hyra (Kostnad)