Master Backend Plan v3.0 + Government Portal + Implementation Order
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
# Government Customer Portal — Specification
|
||||
|
||||
## Core Principle
|
||||
|
||||
**Myndigheter ska själva administrera:**
|
||||
- Betalningssätt (kort, faktura, autogiro)
|
||||
- Fakturaadress och referenser
|
||||
- Kostnadsramar och budgetbevakning
|
||||
- Användare och behörigheter
|
||||
- Vilka områden de vill bevaka
|
||||
|
||||
## Self-Service Model
|
||||
|
||||
| Funktion | Beskrivning |
|
||||
|----------|-------------|
|
||||
| **Betalningsinställningar** | Välj kort, faktura, autogiro. Ange fakturaadress, OCR/er referens, attestflöde |
|
||||
| **Kostnadsramar** | Sätt månads-/årsbudget. Få varning vid 80%. Blockera vid 100% (kan överridas) |
|
||||
| **Användarhantering** | Lägg till kollegor, tilldela roller (beställare, attestant, tittare) |
|
||||
| **Bevakningsområden** | Rita på karta, välj fastigheter, adresser, eller kommunala objekt |
|
||||
| **Fakturahistorik** | Se alla fakturor, ladda ner PDF, exportera till Excel |
|
||||
| **Avtalsöversikt** | Se aktiva avtal, förbrukning, förnyelsedatum |
|
||||
|
||||
## Integrationer
|
||||
|
||||
### Stripe
|
||||
- Kortbetalning (automatiskt)
|
||||
- Sätta upp autogiro
|
||||
- Faktura via Stripe (alternativ till PEPPOL)
|
||||
|
||||
### PEPPOL (för myndigheter som kräver det)
|
||||
- Elektronisk faktura direkt till deras ekonomisystem
|
||||
- Stöd för Svefaktura 1.0 / PEPPOL BIS Billing 3.0
|
||||
- Org-nr validering mot Skatteverket
|
||||
|
||||
### AAMOS Ledger (port 3250)
|
||||
- Bokföring av alla transaktioner
|
||||
- SIE4-export för myndighetens redovisning
|
||||
- Momsredovisning
|
||||
|
||||
## Teknisk Arkitektur
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Government Portal (React/Vue) │
|
||||
│ - Självbetjäning │
|
||||
│ - Kostnadsöversikt │
|
||||
│ - Fakturahistorik │
|
||||
└─────────────────┬───────────────────────┘
|
||||
│
|
||||
┌─────────────────▼───────────────────────┐
|
||||
│ LandveX Gateway (port 3004) │
|
||||
│ - Auth & API-nycklar │
|
||||
│ - Routing till rätt tjänst │
|
||||
└─────────────────┬───────────────────────┘
|
||||
│
|
||||
┌─────────────┼─────────────┐
|
||||
│ │ │
|
||||
┌───▼───┐ ┌────▼────┐ ┌────▼────┐
|
||||
│Stripe │ │ PEPPOL │ │AAMOS │
|
||||
│ │ │ Gateway │ │Ledger │
|
||||
│3250 │ │ │ │(3250) │
|
||||
└───────┘ └─────────┘ └─────────┘
|
||||
```
|
||||
|
||||
## Data Model
|
||||
|
||||
```typescript
|
||||
interface GovernmentCustomer {
|
||||
id: string; // org-nr som ID
|
||||
name: string;
|
||||
type: 'kommun' | 'region' | 'myndighet' | 'bolag';
|
||||
|
||||
// Betalningsinställningar
|
||||
paymentSettings: {
|
||||
method: 'card' | 'invoice' | 'autogiro';
|
||||
invoiceAddress: string;
|
||||
invoiceEmail: string;
|
||||
reference: string; // "Ert referensnummer"
|
||||
ocrNumber?: string;
|
||||
costCenter?: string;
|
||||
};
|
||||
|
||||
// Kostnadsramar
|
||||
budgetLimits: {
|
||||
monthly?: number;
|
||||
yearly?: number;
|
||||
alertAtPercent: number; // default 80
|
||||
blockAtPercent: number; // default 100
|
||||
};
|
||||
|
||||
// Bevakningsområden
|
||||
watchAreas: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
geometry: GeoJSON.Polygon; // Rita på karta
|
||||
type: 'custom' | 'property' | 'municipal';
|
||||
}>;
|
||||
|
||||
// Användare
|
||||
users: Array<{
|
||||
email: string;
|
||||
role: 'admin' | 'orderer' | 'approver' | 'viewer';
|
||||
name: string;
|
||||
}>;
|
||||
}
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
```
|
||||
GET /api/v1/government/me → Min profil
|
||||
PUT /api/v1/government/payment → Uppdatera betalningsinställningar
|
||||
GET /api/v1/government/invoices → Fakturahistorik
|
||||
GET /api/v1/government/budget → Kostnadsöversikt
|
||||
POST /api/v1/government/areas → Lägg till bevakningsområde
|
||||
GET /api/v1/government/areas → Lista bevakningsområden
|
||||
DELETE /api/v1/government/areas/:id → Ta bort bevakningsområde
|
||||
POST /api/v1/government/users → Bjud in användare
|
||||
```
|
||||
|
||||
## Fakturaflöde
|
||||
|
||||
```
|
||||
1. Myndighet beställer tjänst
|
||||
2. Uppdrag genomförs
|
||||
3. Faktura genereras (PDF + PEPPOL)
|
||||
4. Faktura skickas till angiven adress/epost
|
||||
5. Myndighet ser faktura i portalen
|
||||
6. Betalning registreras i AAMOS Ledger
|
||||
7. SIE4-export för redovisning
|
||||
```
|
||||
|
||||
## Kostnadsöversikt (Dashboard)
|
||||
|
||||
| Widget | Data |
|
||||
|--------|------|
|
||||
| **Denna månad** | Förbrukat / Budget |
|
||||
| **Prognos** | Årsprognos baserat på nuvarande takt |
|
||||
| **Per tjänst** | Uppdelning per typ av uppdrag |
|
||||
| **Per område** | Kostnad per bevakningsområde |
|
||||
| **Jämförelse** | Denna månad vs förra månaden |
|
||||
|
||||
## MVP-0: Government Portal
|
||||
|
||||
### Sprint 1: Grund
|
||||
- [ ] Inloggning med BankID (Svensk E-legitimation)
|
||||
- [ ] Profilsida med org-nr och adress
|
||||
- [ ] Betalningsinställningar (fakturaadress, referens)
|
||||
|
||||
### Sprint 2: Bevakning
|
||||
- [ ] Karta med ritverktyg
|
||||
- [ ] Spara bevakningsområden
|
||||
- [ ] Lista bevakade områden
|
||||
|
||||
### Sprint 3: Ekonomi
|
||||
- [ ] Kostnadsöversikt
|
||||
- [ ] Fakturahistorik
|
||||
- [ ] Budgetvarningar
|
||||
|
||||
### Sprint 4: Användare
|
||||
- [ ] Bjud in kollegor
|
||||
- [ ] Roller och behörigheter
|
||||
- [ ] Attestflöde
|
||||
|
||||
## Status
|
||||
|
||||
**Specifikation:** ✅ KLAR
|
||||
**Implementation:** 🔄 EJ PÅBÖRJAD
|
||||
**Beroenden:**
|
||||
- AAMOS Ledger (3250) — måste vara igång
|
||||
- Stripe — måste konfigureras
|
||||
- PEPPOL — kan vänta till efter MVP
|
||||
@@ -0,0 +1,115 @@
|
||||
# Implementation Order — LandveX Platform
|
||||
|
||||
## Fas 1: Pilot 001 (NU — denna vecka)
|
||||
**Mål:** Första riktiga fältuppdrag med film
|
||||
|
||||
- [ ] Erik filmar väg (telefon)
|
||||
- [ ] Laddar upp via https://pilot.landvex.com
|
||||
- [ ] Verifierar i Field Console
|
||||
- [ ] Dokumenterar i Pilot Checklist
|
||||
- [ ] Uppdaterar Kill List
|
||||
|
||||
**Leverans:** Golden Mission #0001
|
||||
|
||||
## Fas 2: MVP-1 — First Verified Observation (Sprint 1)
|
||||
**Mål:** AI kan identifiera objekt i film
|
||||
|
||||
- [ ] Annotering av Golden Mission
|
||||
- [ ] Träna första modell
|
||||
- [ ] Verifiera observation
|
||||
- [ ] Dokumentera i Decision Case
|
||||
|
||||
**Leverans:** Första verifierade observationen
|
||||
|
||||
## Fas 3: MVP-2 — First Verified Decision (Sprint 2)
|
||||
**Mål:** AI kan föreslå beslut
|
||||
|
||||
- [ ] Bygg Decision Pipeline
|
||||
- [ ] Träna beslutsmodell
|
||||
- [ ] Mänsklig review
|
||||
- [ ] Godkänn Decision Case
|
||||
|
||||
**Leverans:** Första verifierade beslutet
|
||||
|
||||
## Fas 4: MVP-3 — First Replay (Sprint 3)
|
||||
**Mål:** Kunna spela upp hela kedjan
|
||||
|
||||
- [ ] Bygg Replay-funktion
|
||||
- [ ] Länka video → observation → beslut
|
||||
- [ ] Visa i UI
|
||||
- [ ] Testa med Golden Mission
|
||||
|
||||
**Leverans:** Fungerande replay
|
||||
|
||||
## Fas 5: MVP-4 — First Learning Loop (Sprint 4)
|
||||
**Mål:** Systemet lär sig av feedback
|
||||
|
||||
- [ ] Feedback-loop från review
|
||||
- [ ] Automatisk modellförbättring
|
||||
- [ ] Mät förbättring
|
||||
- [ ] Dokumentera
|
||||
|
||||
**Leverans:** Systemet blir bättre över tid
|
||||
|
||||
## Fas 6: MVP-5 — First Auto-Generated Mission (Sprint 5)
|
||||
**Mål:** Systemet skapar egna uppdrag
|
||||
|
||||
- [ ] Knowledge Gap detection
|
||||
- [ ] Auto-generera mission
|
||||
- [ ] Skicka till quiXzoom
|
||||
- [ ] Verifiera resultat
|
||||
|
||||
**Leverans:** Självkörande system
|
||||
|
||||
## Parallellt: Master Backend (Sprint 1-4)
|
||||
|
||||
### Sprint 1: Gateway + Operations
|
||||
- [ ] LandveX Gateway (port 3004)
|
||||
- [ ] Operations API (port 3005)
|
||||
- [ ] Government customer model
|
||||
|
||||
### Sprint 2: Betalning
|
||||
- [ ] Stripe integration
|
||||
- [ ] Fakturagenerering
|
||||
- [ ] Kostnadsöversikt
|
||||
|
||||
### Sprint 3: Myndighetsportal
|
||||
- [ ] Självbetjäning
|
||||
- [ ] Bevakningsområden
|
||||
- [ ] Användarhantering
|
||||
|
||||
### Sprint 4: Press + API
|
||||
- [ ] Press engine
|
||||
- [ ] API-nycklar
|
||||
- [ ] Dokumentation
|
||||
|
||||
## Beslutspunkter
|
||||
|
||||
| När | Vad | Kriterium |
|
||||
|-----|-----|-----------|
|
||||
| Efter Pilot 001 | Fortsätt MVP-1? | Upload fungerar, data är bra |
|
||||
| Efter MVP-2 | Sälja till kund? | Decision Case är användbar |
|
||||
| Efter MVP-4 | Skala upp? | Systemet lär sig märkbart |
|
||||
| Efter MVP-5 | Auto-pilot? | Kunskapsgap detekteras korrekt |
|
||||
|
||||
## Resurser
|
||||
|
||||
| Roll | Person | Fokus |
|
||||
|------|--------|-------|
|
||||
| AI/ML | Johan | Modeller, träning |
|
||||
| Backend | Bernt | API, integrationer |
|
||||
| Produkt | Erik | Piloter, feedback |
|
||||
| Sälj | Erik | Kundmöten, avtal |
|
||||
|
||||
## Budget
|
||||
|
||||
| Fas | Tid | Kostnad |
|
||||
|-----|-----|---------|
|
||||
| Pilot 001 | 1 vecka | 0 kr |
|
||||
| MVP 1-5 | 10 veckor | 200 000 kr |
|
||||
| Master Backend | 8 veckor | 160 000 kr |
|
||||
| **Totalt** | **19 veckor** | **360 000 kr** |
|
||||
|
||||
---
|
||||
|
||||
**Nästa steg:** Pilot 001 — Erik filmar väg
|
||||
@@ -0,0 +1,163 @@
|
||||
# Master Backend Plan
|
||||
|
||||
## Status: Vi har redan det mesta!
|
||||
|
||||
### Befintliga Rust-servrar (AMOS)
|
||||
|
||||
| Tjänst | Port | Status | Användning |
|
||||
|--------|------|--------|------------|
|
||||
| amos-gateway | 3206 | ✅ Kör | API Gateway |
|
||||
| billing-engine | ? | ✅ Kör | Fakturering |
|
||||
| amos-financial | 3203 | ✅ Kör | Ekonomi |
|
||||
| health-aggregator | ? | ✅ Kör | Hälsa |
|
||||
| amos-analytics | 3211 | ✅ Kör | Analys |
|
||||
|
||||
### Befintliga Go-servrar (AAMOS)
|
||||
|
||||
| Tjänst | Port | Status | Användning |
|
||||
|--------|------|--------|------------|
|
||||
| aamos-gateway | 8080 | ✅ Kör | Huvudgateway |
|
||||
| aamos-crm | 3301 | ✅ Kör | CRM |
|
||||
| aamos-campaigns | 3302 | ✅ Kör | Kampanjer |
|
||||
| aamos-incidents | 3303 | ✅ Kör | Support/Incidenter |
|
||||
| aamos-zoomer | 3304 | ✅ Kör | Zoomer-hantering |
|
||||
| aamos-payroll | 3305 | ✅ Kör | Lön |
|
||||
| aamos-venture | 3306 | ✅ Kör | Venture/Investeringar |
|
||||
| aamos-meetings | 3309 | ✅ Kör | Möten |
|
||||
| aamos-ads | ? | ✅ Kör | Annonser |
|
||||
| aamos-talent | ? | ✅ Kör | Rekrytering |
|
||||
|
||||
### Befintliga Node.js-servrar
|
||||
|
||||
| Tjänst | Port | Status | Användning |
|
||||
|--------|------|--------|------------|
|
||||
| aamos-ledger-rust | 3250 | ✅ Kör | Bokföring (Rust) |
|
||||
| ouroboros-identity | ? | ✅ Kör | Identitet/Auth |
|
||||
| ai-gateway | ? | ✅ Kör | AI-gateway |
|
||||
| quixzoom-mission | ? | ✅ Kör | Mission-hantering |
|
||||
|
||||
---
|
||||
|
||||
## Plan: LandveX Master Backend
|
||||
|
||||
### Steg 1: Unified Gateway
|
||||
|
||||
**Mål:** Ett entry point för alla LandveX-tjänster
|
||||
|
||||
```
|
||||
Internet
|
||||
↓
|
||||
https://api.landvex.com
|
||||
↓
|
||||
Nginx (SSL termination)
|
||||
↓
|
||||
LandveX Gateway (Node.js/Go)
|
||||
↓
|
||||
├─> Intelligence Lab (port 3002)
|
||||
├─> AAMOS CRM (port 3301)
|
||||
├─> AAMOS Incidents (port 3303)
|
||||
├─> AAMOS Billing (port 3305)
|
||||
├─> AMOS Financial (port 3203)
|
||||
├─> AMOS Analytics (port 3211)
|
||||
└─> aamos-ledger (port 3250)
|
||||
```
|
||||
|
||||
### Steg 2: API-nyckelhantering
|
||||
|
||||
**Befintligt:** aamos-gateway (port 8080) har redan auth
|
||||
|
||||
**Återanvänd:**
|
||||
- Kopiera auth-mekanismen från aamos-gateway
|
||||
- Skapa API-nycklar per kund
|
||||
- Rate limiting per nyckel
|
||||
|
||||
### Steg 3: Support/Ärenden
|
||||
|
||||
**Befintligt:** aamos-incidents (port 3303)
|
||||
|
||||
**Återanvänd:**
|
||||
- Koppla supportärenden till missions
|
||||
- Skapa ärenden automatiskt vid fel
|
||||
- Dashboard för supportteam
|
||||
|
||||
### Steg 4: CRM-koppling
|
||||
|
||||
**Befintligt:** aamos-crm (port 3301)
|
||||
|
||||
**Återanvänd:**
|
||||
- Kunder = CRM-kontakter
|
||||
- Missioner = CRM-aktiviteter
|
||||
- Decision Cases = CRM-opportunities
|
||||
|
||||
### Steg 5: Ekonomi/Avtal
|
||||
|
||||
**Befintligt:**
|
||||
- billing-engine (fakturering)
|
||||
- amos-financial (port 3203)
|
||||
- aamos-payroll (port 3305)
|
||||
- aamos-ledger (port 3250)
|
||||
|
||||
**Återanvänd:**
|
||||
- Fakturera per mission
|
||||
- Credits-system (vi har redan detta i domain!)
|
||||
- Avtal = CRM-deals
|
||||
|
||||
### Steg 6: Pressmeddelanden
|
||||
|
||||
**Nytt:** Enkel CMS-tjänst
|
||||
|
||||
**Alternativ:**
|
||||
- Återanvänd aamos-campaigns (port 3302)
|
||||
- Eller bygg enkel Node.js-tjänst
|
||||
|
||||
---
|
||||
|
||||
## Implementationsplan
|
||||
|
||||
### Sprint 1: Gateway + Auth
|
||||
- [ ] Bygg LandveX Gateway (Node.js Express)
|
||||
- [ ] Kopiera auth från aamos-gateway
|
||||
- [ ] API-nyckelhantering
|
||||
- [ ] Rate limiting
|
||||
|
||||
### Sprint 2: Support + CRM
|
||||
- [ ] Koppla aamos-incidents
|
||||
- [ ] Koppla aamos-crm
|
||||
- [ ] Dashboard för support
|
||||
|
||||
### Sprint 3: Ekonomi
|
||||
- [ ] Koppla billing-engine
|
||||
- [ ] Credits-system
|
||||
- [ ] Fakturering per mission
|
||||
|
||||
### Sprint 4: Press + SLA
|
||||
- [ ] Pressmeddelanden (CMS)
|
||||
- [ ] SLA-monitorering
|
||||
- [ ] Health checks för alla tjänster
|
||||
|
||||
---
|
||||
|
||||
## Teknisk Stack
|
||||
|
||||
| Komponent | Teknik | Status |
|
||||
|-----------|--------|--------|
|
||||
| Gateway | Node.js Express | Ny |
|
||||
| Auth | JWT (från aamos-gateway) | Återanvänd |
|
||||
| CRM | aamos-crm (Go) | ✅ Befintlig |
|
||||
| Support | aamos-incidents (Go) | ✅ Befintlig |
|
||||
| Billing | billing-engine (Rust) | ✅ Befintlig |
|
||||
| Ekonomi | amos-financial (Rust) | ✅ Befintlig |
|
||||
| Lön | aamos-payroll (Go) | ✅ Befintlig |
|
||||
| Bokföring | aamos-ledger (Rust) | ✅ Befintlig |
|
||||
| Analytics | amos-analytics (Rust) | ✅ Befintlig |
|
||||
| Press | aamos-campaigns (Go) | ✅ Befintlig |
|
||||
|
||||
---
|
||||
|
||||
## Nästa steg
|
||||
|
||||
1. **Bygg LandveX Gateway** — koppla alla befintliga tjänster
|
||||
2. **Testa auth** — API-nycklar från aamos-gateway
|
||||
3. **Dashboard** — en sida med alla tjänsters status
|
||||
|
||||
**Vi har redan 90% av kodbasen!**
|
||||
@@ -0,0 +1,179 @@
|
||||
# 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.
|
||||
@@ -0,0 +1,143 @@
|
||||
# Master Backend v2.0 — Full Integration Plan
|
||||
|
||||
> **VI HAR REDAN ALLT!** 🎉
|
||||
|
||||
---
|
||||
|
||||
## Befintlig Infrastruktur (Upptäckt)
|
||||
|
||||
### CRM & Sälj (Apollo.io)
|
||||
| Komponent | Teknik | Status | Port |
|
||||
|-----------|--------|--------|------|
|
||||
| Apollo.io integration | Node.js/Express | ✅ Kör | `/api/apollo` |
|
||||
| Kontaktsökning | Apollo API | ✅ | `/contacts/search` |
|
||||
| Företagssökning | Apollo API | ✅ | `/companies/search` |
|
||||
| Sequences (automation) | PostgreSQL | ✅ | `/sequences` |
|
||||
| Pipeline | PostgreSQL | ✅ | `/pipeline` |
|
||||
|
||||
### Ekonomi & Fakturering
|
||||
| Komponent | Teknik | Status | Port |
|
||||
|-----------|--------|--------|------|
|
||||
| billing-engine | Rust | ✅ Kör | ? |
|
||||
| amos-financial | Rust | ✅ Kör | 3203 |
|
||||
| aamos-payroll | Go | ✅ Kör | 3305 |
|
||||
| aamos-ledger | Rust | ✅ Kör | 3250 |
|
||||
|
||||
### Support & Ärenden
|
||||
| Komponent | Teknik | Status | Port |
|
||||
|-----------|--------|--------|------|
|
||||
| aamos-incidents | Go | ✅ Kör | 3303 |
|
||||
| amos-analytics | Rust | ✅ Kör | 3211 |
|
||||
|
||||
### Gateway & Auth
|
||||
| Komponent | Teknik | Status | Port |
|
||||
|-----------|--------|--------|------|
|
||||
| aamos-gateway | Go | ✅ Kör | 8080 |
|
||||
| amos-gateway | Rust | ✅ Kör | 3206 |
|
||||
|
||||
---
|
||||
|
||||
## Plan: LandveX Master Backend
|
||||
|
||||
### Arkitektur
|
||||
|
||||
```
|
||||
Internet
|
||||
↓
|
||||
https://api.landvex.com
|
||||
↓
|
||||
Nginx (SSL + rate limiting)
|
||||
↓
|
||||
LandveX Gateway (Node.js/Express)
|
||||
↓
|
||||
├─> Intelligence Lab (3002) — Pilot/Mission/Artifact
|
||||
├─> Apollo CRM (/api/apollo) — Kontakter/Pipeline
|
||||
├─> Billing Engine — Fakturering/Stripe
|
||||
├─> aamos-ledger (3250) — Bokföring
|
||||
├─> aamos-incidents (3303) — Supportärenden
|
||||
├─> amos-analytics (3211) — Rapporter
|
||||
└─> Auth Service — API-nycklar/JWT
|
||||
```
|
||||
|
||||
### Stripe + Faktura
|
||||
|
||||
**Stripe:**
|
||||
- Kundregistrering
|
||||
- Subscription-hantering
|
||||
- Automatisk fakturering
|
||||
- Webhook-hantering
|
||||
|
||||
**Faktura till myndigheter:**
|
||||
- PDF-generering
|
||||
- PEPPOL-integration
|
||||
- OCR-referens
|
||||
- Påminnelser
|
||||
|
||||
### API-nycklar
|
||||
|
||||
- Per-kund-nycklar
|
||||
- Rate limiting per nyckel
|
||||
- Usage tracking
|
||||
- Roteringspolicy
|
||||
|
||||
### Pressmeddelanden
|
||||
|
||||
- CMS för press
|
||||
- Publiceringsflöde
|
||||
- RSS-feed
|
||||
- Social sharing
|
||||
|
||||
---
|
||||
|
||||
## Implementationsplan
|
||||
|
||||
### Sprint 1: Gateway + Auth (Denna vecka)
|
||||
- [ ] LandveX Gateway (Node.js)
|
||||
- [ ] Koppla Apollo CRM
|
||||
- [ ] API-nyckelhantering
|
||||
- [ ] JWT auth
|
||||
|
||||
### Sprint 2: Stripe + Faktura (Nästa vecka)
|
||||
- [ ] Stripe integration
|
||||
- [ ] Faktura-PDF
|
||||
- [ ] Myndighetsfaktura
|
||||
- [ ] Påminnelser
|
||||
|
||||
### Sprint 3: Support + SLA (Vecka 3)
|
||||
- [ ] Koppla aamos-incidents
|
||||
- [ ] SLA-monitorering
|
||||
- [ ] Automatiska ärenden
|
||||
- [ ] Dashboard
|
||||
|
||||
### Sprint 4: Press + Analytics (Vecka 4)
|
||||
- [ ] Press-CMS
|
||||
- [ ] Rapporter
|
||||
- [ ] Factory Metrics
|
||||
- [ ] Health checks
|
||||
|
||||
---
|
||||
|
||||
## Teknisk Stack
|
||||
|
||||
| Lager | Teknik |
|
||||
|-------|--------|
|
||||
| Gateway | Node.js Express |
|
||||
| Auth | JWT + API-nycklar |
|
||||
| CRM | Apollo.io (befintlig) |
|
||||
| Billing | Stripe + Rust |
|
||||
| Bokföring | aamos-ledger (Rust) |
|
||||
| Support | aamos-incidents (Go) |
|
||||
| Analytics | amos-analytics (Rust) |
|
||||
| DB | PostgreSQL |
|
||||
| Cache | Redis |
|
||||
| Queue | Redis/RabbitMQ |
|
||||
|
||||
---
|
||||
|
||||
## Nästa steg
|
||||
|
||||
1. **Bygg LandveX Gateway** — koppla alla tjänster
|
||||
2. **Stripe integration** — betalningar
|
||||
3. **Faktura** — PDF + myndigheter
|
||||
|
||||
**Vi har redan 95% av kodbasen!**
|
||||
Reference in New Issue
Block a user