Files
boc/docs/MASTER_BACKEND_PLAN_v3.md
T

180 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Master Backend Plan v3.0 — LandveX Operations Platform
## Vision
En unified operations platform som hanterar ALLT utöver kärnprodukten:
- Kunder & avtal
- Fakturering & betalning
- Support & ärenden
- Press & kommunikation
- API-nycklar & åtkomst
- Ekonomi & redovisning
## Arkitektur: "One Gateway, Many Services"
```
┌─────────────────┐
│ LandveX UI │
│ (React/Vite) │
└────────┬────────┘
┌──────────────┼──────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ Public │ │Professional│ │ Enterprise │
│ (gratis) │ │ (betalt) │ │ (avtal) │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└──────────────┼──────────────┘
┌────────▼────────┐
│ LandveX Gateway │ ← Auth, routing, rate limits
│ (port 3004) │
└────────┬────────┘
┌────────────────────┼────────────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│Intelligence│ │Operations │ │ Billing │
│ Lab │ │ Platform │ │ Engine │
│(3002) │ │(3004) │ │(Rust) │
└───────────┘ └────┬─────┘ └───────────┘
┌───────────────────┼───────────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ CRM │ │ Support │ │ Press │
│(Apollo) │ │(3303) │ │ │
└─────────┘ └─────────┘ └─────────┘
```
## Services (befintliga + nya)
### ✅ Redan igång
| Tjänst | Port | Tech | Status |
|--------|------|------|--------|
| Intelligence Lab | 3002 | Node.js | ✅ MVP-0 |
| Gateway | 3004 | Node.js | ✅ Just startad |
| Apollo CRM | 3001 | Node.js | 🔄 Behöver startas |
| AAMOS Gateway | 8080 | Go | ✅ Kör |
| AAMOS CRM | 3301 | Go | ✅ Kör |
| AAMOS Incidents | 3303 | Go | ✅ Kör |
| AAMOS Ledger | 3250 | Rust | ✅ Kör |
| AMOS Billing | ? | Rust | ✅ Kör |
### 🆕 Nya tjänster att bygga
| Tjänst | Port | Tech | Beskrivning |
|--------|------|------|-------------|
| Operations API | 3005 | Node.js | Government portal, avtal, inställningar |
| Press Engine | 3006 | Node.js | Pressmeddelanden, nyhetsbrev |
| API Key Manager | 3007 | Node.js | API-nycklar, rate limits, access logs |
| Stripe Adapter | 3008 | Node.js | Stripe integration, webhooks |
| PEPPOL Gateway | 3009 | Node.js | Elektronisk faktura till myndigheter |
## Dataflöde: Government Customer
```
1. Myndighet registrerar sig
→ Skapas i Operations API
→ Skapas i Stripe som customer
→ Skapas i AAMOS Ledger som kund
2. Myndighet konfigurerar betalning
→ Sparas i Operations API
→ Uppdaterar Stripe customer
→ Validerar org-nr mot Skatteverket
3. Myndighet beställer uppdrag
→ Skapas i Intelligence Lab
→ Kostnad beräknas
→ Förbrukning uppdateras i Operations API
4. Uppdrag genomförs
→ Status uppdateras i Intelligence Lab
→ Kostnad bokförs i AAMOS Ledger
→ Faktura genereras (Stripe/PEPPOL)
5. Faktura betalas
→ Stripe webhook → Operations API
→ AAMOS Ledger uppdateras
→ Status ändras till "betald"
```
## Teknisk Stack
### Gateway (port 3004)
- Express.js med proxy middleware
- JWT auth med roller
- Rate limiting per API-nyckel
- Request logging och tracing
### Operations API (port 3005)
- Express.js + TypeScript
- PostgreSQL för data
- Integrationer:
- Stripe (betalning)
- AAMOS Ledger (bokföring)
- Skatteverket (org-nr validering)
- PEPPOL (elektronisk faktura)
### Press Engine (port 3006)
- Express.js + TypeScript
- PostgreSQL
- Mailgun/SendGrid för utskick
- RSS-flöde
- Arkiv med sök
### API Key Manager (port 3007)
- Express.js + TypeScript
- Redis för rate limiting
- PostgreSQL för nycklar
- Audit log för alla anrop
## Implementation Plan
### Sprint 1: Gateway + Operations API (2 veckor)
- [ ] Gateway med auth och routing
- [ ] Operations API grund
- [ ] Government customer model
- [ ] Grundläggande CRUD
### Sprint 2: Betalning + Faktura (2 veckor)
- [ ] Stripe integration
- [ ] Fakturagenerering (PDF)
- [ ] Kostnadsöversikt
- [ ] Budgetvarningar
### Sprint 3: PEPPOL + Avancerat (2 veckor)
- [ ] PEPPOL gateway
- [ ] Org-nr validering
- [ ] Attestflöde
- [ ] Användarroller
### Sprint 4: Press + API Keys (2 veckor)
- [ ] Press engine
- [ ] API key manager
- [ ] Dokumentation
- [ ] Monitoring
## Kostnad
| Komponent | Beräknad kostnad |
|-----------|-----------------|
| Utveckling | 4 sprintar × 2 veckor |
| Stripe | 1.5% + 1.80 kr per transaktion |
| PEPPOL | ~0.50 kr per faktura |
| Drift | ECS/Fargate ~$50/mån |
## Nästa steg
1. **Starta Apollo CRM** (port 3001)
2. **Bygg Operations API** (port 3005)
3. **Konfigurera Stripe**
4. **Testa fakturaflöde**
---
**Status:** Plan klar. Väntar på go-ahead för implementation.