180 lines
6.1 KiB
Markdown
180 lines
6.1 KiB
Markdown
# 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.
|