From 15ea7627e8884e3825049546f09ce15022e2f3bc Mon Sep 17 00:00:00 2001 From: Thomas Reitz Date: Tue, 10 Mar 2026 12:52:01 +0100 Subject: [PATCH 1/3] docs: add developer integration guide for container applications Comprehensive guide (INTEGRATION.md) explaining how external container applications can integrate with the INSIGHT platform, including: - Docker network integration and service discovery - JWT authentication and token validation (RS256) - API endpoints and communication patterns - Traefik routing configuration - Database access via PgBouncer - Redis caching with namespace conventions - Frontend sidebar integration - Security requirements and checklist - Example docker-compose extension Co-Authored-By: Claude Opus 4.6 --- docs/INTEGRATION.md | 746 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 746 insertions(+) create mode 100644 docs/INTEGRATION.md diff --git a/docs/INTEGRATION.md b/docs/INTEGRATION.md new file mode 100644 index 0000000..aa79a09 --- /dev/null +++ b/docs/INTEGRATION.md @@ -0,0 +1,746 @@ +# INSIGHT MVP - Entwickler-Integrationshandbuch + +> **Zielgruppe:** Entwickler von Container-Anwendungen, die nahtlos in die +> INSIGHT-Plattform integriert werden sollen. +> +> **Version:** 1.0.0-alpha | **Stand:** 2026-03-10 + +--- + +## Inhaltsverzeichnis + +1. [Ueberblick](#1-ueberblick) +2. [Architektur](#2-architektur) +3. [Docker-Integration](#3-docker-integration) +4. [Authentifizierung & Autorisierung](#4-authentifizierung--autorisierung) +5. [API-Kommunikation](#5-api-kommunikation) +6. [Traefik-Routing (API Gateway)](#6-traefik-routing-api-gateway) +7. [Datenbank-Anbindung](#7-datenbank-anbindung) +8. [Redis / Cache](#8-redis--cache) +9. [Frontend-Integration (Sidebar)](#9-frontend-integration-sidebar) +10. [Sicherheitsanforderungen](#10-sicherheitsanforderungen) +11. [Health-Checks & Monitoring](#11-health-checks--monitoring) +12. [Checkliste fuer neue Container-Apps](#12-checkliste-fuer-neue-container-apps) +13. [Beispiel: docker-compose Erweiterung](#13-beispiel-docker-compose-erweiterung) + +--- + +## 1. Ueberblick + +INSIGHT ist eine modulare Multi-Tenant-Plattform, die als Docker-Compose-Stack +betrieben wird. Externe Container-Anwendungen koennen ueber folgende Wege +integriert werden: + +| Integrationsart | Beschreibung | +|-------------------------|---------------------------------------------------| +| **API-Integration** | REST-API-Aufrufe gegen den Core-Service | +| **Sidebar-Link** | Anwendung als externer Link im INSIGHT-Menue | +| **Shared Authentication** | JWT-basierte Authentifizierung (SSO) | +| **Shared Database** | Eigenes Schema in der gemeinsamen PostgreSQL-DB | +| **Docker-Netzwerk** | Direkter Zugriff auf interne Services | + +--- + +## 2. Architektur + +``` + Internet / Intranet + | + [Traefik Gateway] + Port 80 (HTTP) + | + +------------+------------+ + | | | + [Frontend] [Core-API] [Deine App] + React/Vite NestJS Container + Port 8080 Port 3000 Port XXXX + | | | + +-----+------+-----+------+ + | | + [PostgreSQL] [Redis] + via PgBouncer Port 6379 + Port 6432 +``` + +### Docker-Netzwerke + +| Netzwerk | Typ | Zweck | +|------------------|----------|------------------------------------------| +| `insight-web` | bridge | Traefik-Routing, oeffentliche APIs | +| `insight-db` | internal | PostgreSQL + PgBouncer (isoliert) | +| `insight-cache` | internal | Redis (isoliert) | + +> **Wichtig:** `insight-db` und `insight-cache` sind als `internal` markiert +> und somit nicht von aussen erreichbar. Deine Anwendung muss explizit in +> diese Netzwerke eingebunden werden. + +--- + +## 3. Docker-Integration + +### 3.1 Netzwerk-Anbindung + +Dein Container muss in die benoetigten Netzwerke eingebunden werden: + +```yaml +# In deiner docker-compose.yml oder als Erweiterung +services: + meine-app: + image: git.xinion.lan/gitadmin/insight-meine-app:latest + networks: + - insight-web # Pflicht: fuer Traefik-Routing + - insight-db # Optional: nur bei direktem DB-Zugriff + - insight-cache # Optional: nur bei Redis-Zugriff + labels: + - "traefik.enable=true" + # Routing-Labels (siehe Abschnitt 6) + +networks: + insight-web: + external: true + insight-db: + external: true + insight-cache: + external: true +``` + +### 3.2 Container Registry + +| Parameter | Wert | +|-------------------|--------------------------------------------| +| Registry-URL | `git.xinion.lan` | +| Image-Prefix | `git.xinion.lan/gitadmin/insight-{name}` | +| Authentifizierung | Forgejo Login-Credentials | + +```bash +# Image bauen und pushen +docker build -t git.xinion.lan/gitadmin/insight-meine-app:latest . +docker push git.xinion.lan/gitadmin/insight-meine-app:latest +``` + +### 3.3 Service Discovery (DNS) + +Innerhalb des Docker-Netzwerks sind Services ueber ihre Servicenamen erreichbar: + +| Service | Hostname | Port | Netzwerk | +|--------------|-------------|-------|----------------| +| Core-API | `core` | 3000 | insight-web | +| PostgreSQL | `postgres` | 5432 | insight-db | +| PgBouncer | `pgbouncer` | 6432 | insight-db | +| Redis | `redis` | 6379 | insight-cache | +| Frontend | `frontend` | 8080 | insight-web | +| Traefik | `traefik` | 80 | insight-web | + +--- + +## 4. Authentifizierung & Autorisierung + +### 4.1 JWT-Token-Architektur + +INSIGHT verwendet RS256 (asymmetrische) JWT-Tokens: + +| Token-Typ | Speicherort | Lebensdauer | Zweck | +|-----------------|-------------------|-------------|--------------------------| +| **Access Token** | Memory (Variable) | 15 Minuten | API-Authentifizierung | +| **Refresh Token** | HttpOnly Cookie | 7 Tage | Token-Erneuerung | + +### 4.2 JWT-Payload-Struktur + +```json +{ + "sub": "550e8400-e29b-41d4-a716-446655440000", + "email": "user@example.com", + "role": "USER", + "tenantId": "...", + "tenantSlug": "tenant_acme", + "jti": "unique-token-id", + "iat": 1710000000, + "exp": 1710000900 +} +``` + +**Rollen:** + +| Rolle | Beschreibung | +|-------------------|-------------------------------------------| +| `PLATFORM_ADMIN` | Plattform-Administrator (voller Zugriff) | +| `TENANT_ADMIN` | Mandanten-Administrator | +| `USER` | Standard-Benutzer | + +### 4.3 Token-Validierung in deiner Anwendung + +Um eingehende Requests zu validieren, brauchst du den **oeffentlichen JWT-Schluessel** +(RS256 Public Key). Dieser liegt im Core-Service unter `/app/keys/jwt-public.pem`. + +**Option A: Public Key mounten (empfohlen)** + +```yaml +# docker-compose.yml +services: + meine-app: + volumes: + - ./keys/jwt-public.pem:/app/keys/jwt-public.pem:ro +``` + +Dann in deiner Anwendung: + +``` +1. Lese den Public Key aus /app/keys/jwt-public.pem +2. Validiere den JWT aus dem Authorization-Header: + - Algorithmus: RS256 + - Issuer: (optional, je nach Konfiguration) + - Pruefe exp (Ablaufzeit) + - Pruefe jti gegen Redis-Blocklist (optional, fuer Revocation) +3. Extrahiere sub (User-ID), role, tenantId aus dem Payload +``` + +**Option B: API-Proxy (einfacher)** + +Leite Requests ueber den Core-Service und nutze dessen eingebaute JWT-Validierung: + +``` +Client -> Traefik -> Core-Service (validiert JWT) -> Deine App +``` + +### 4.4 Token-Revocation (optional) + +Gesperrte Tokens werden in Redis unter dem Key-Pattern `blocked_token:{jti}` +gespeichert. Fuer Echtzeit-Revocation pruefe den `jti`-Claim gegen Redis: + +``` +Redis Key: blocked_token:{jti} +Redis Value: "1" +TTL: Restlaufzeit des Tokens +``` + +### 4.5 Login-Flow fuer externe Anwendungen + +``` +Benutzer oeffnet deine App (via INSIGHT Sidebar-Link) + | + v +Kein gueltiger Token vorhanden? + | + v +Redirect zu INSIGHT Login: http://{HOST}/login?redirect={DEINE_APP_URL} + | + v +Benutzer meldet sich an (E-Mail/Passwort oder Microsoft SSO) + | + v +INSIGHT setzt Tokens und redirectet zurueck zu deiner App + | + v +Deine App liest den Access Token und nutzt ihn fuer API-Calls +``` + +### 4.6 API-Endpunkte fuer Authentifizierung + +| Methode | Endpunkt | Auth | Beschreibung | +|---------|----------------------------|--------|-----------------------------| +| POST | `/api/v1/auth/login` | Nein | Login (E-Mail + Passwort) | +| POST | `/api/v1/auth/refresh` | Cookie | Token erneuern | +| POST | `/api/v1/auth/logout` | Ja | Logout + Token-Revocation | +| GET | `/api/v1/users/me` | Ja | Aktuelle User-Daten | + +--- + +## 5. API-Kommunikation + +### 5.1 Basis-URL + +| Umgebung | Basis-URL | +|-------------|---------------------------------------| +| Entwicklung | `http://172.20.10.59/api/v1` | +| Docker-intern| `http://core:3000/api/v1` | + +### 5.2 Request-Format + +Alle API-Requests muessen folgende Header enthalten: + +```http +Authorization: Bearer +Content-Type: application/json +X-Tenant-ID: # Optional: fuer Mandanten-spezifische Operationen +X-Request-ID: # Optional: fuer Request-Tracing +``` + +### 5.3 Verfuegbare API-Endpunkte + +**Benutzer-Verwaltung:** + +| Methode | Endpunkt | Rolle | Beschreibung | +|---------|------------------------|----------------|---------------------------| +| GET | `/api/v1/users/me` | Alle | Eigene User-Daten | +| PATCH | `/api/v1/users/me` | Alle | Eigene Daten aktualisieren| +| GET | `/api/v1/users` | PLATFORM_ADMIN | Alle User auflisten | +| POST | `/api/v1/users` | PLATFORM_ADMIN | User anlegen | +| PATCH | `/api/v1/users/:id` | PLATFORM_ADMIN | User bearbeiten | + +**Mandanten (Tenants):** + +| Methode | Endpunkt | Rolle | Beschreibung | +|---------|-----------------------------------|----------------|------------------------| +| GET | `/api/v1/tenants` | PLATFORM_ADMIN | Alle Mandanten | +| GET | `/api/v1/tenants/:id` | TENANT_ADMIN+ | Mandant-Details | +| POST | `/api/v1/tenants` | PLATFORM_ADMIN | Mandant erstellen | +| PATCH | `/api/v1/tenants/:id` | PLATFORM_ADMIN | Mandant bearbeiten | + +**Einstellungen:** + +| Methode | Endpunkt | Rolle | Beschreibung | +|---------|-----------------------------------|----------------|------------------------| +| GET | `/api/v1/settings/external-links` | Alle | Sidebar-Links abrufen | +| POST | `/api/v1/settings/external-links` | PLATFORM_ADMIN | Sidebar-Links setzen | +| GET | `/api/v1/settings/branding` | Alle | Branding-Einstellungen | + +**Gesundheit:** + +| Methode | Endpunkt | Auth | Beschreibung | +|---------|-----------|------|-----------------------------| +| GET | `/health` | Nein | Health-Check (DB + Redis) | + +### 5.4 Fehler-Responses + +Alle Fehler folgen einem einheitlichen Format: + +```json +{ + "statusCode": 401, + "message": "Unauthorized", + "error": "Unauthorized" +} +``` + +| HTTP-Code | Bedeutung | +|-----------|----------------------------------------------| +| 400 | Ungueltige Eingabe (Validierungsfehler) | +| 401 | Nicht authentifiziert (Token fehlt/ungueltig) | +| 403 | Keine Berechtigung (Rolle nicht ausreichend) | +| 404 | Ressource nicht gefunden | +| 429 | Rate-Limit ueberschritten | + +--- + +## 6. Traefik-Routing (API Gateway) + +### 6.1 Eigene Route registrieren + +Um deine Anwendung ueber Traefik erreichbar zu machen, verwende Docker-Labels: + +```yaml +services: + meine-app: + labels: + - "traefik.enable=true" + - "traefik.http.routers.meine-app.rule=PathPrefix(`/meine-app`)" + - "traefik.http.routers.meine-app.entrypoints=web" + - "traefik.http.services.meine-app.loadbalancer.server.port=8080" + # Optional: Middleware fuer CORS und Security + - "traefik.http.routers.meine-app.middlewares=cors-headers@file,security-headers@file" +``` + +### 6.2 Bestehende Routen (nicht verwenden!) + +Diese Pfade sind bereits belegt: + +| Pfad-Prefix | Service | Beschreibung | +|---------------|-------------|------------------------| +| `/api/*` | core | Backend-API | +| `/health` | core | Health-Check | +| `/*` | frontend | React-Frontend (Catch-all, niedrige Prioritaet) | + +### 6.3 Verfuegbare Middlewares + +Die folgenden Middlewares sind bereits konfiguriert und koennen referenziert werden: + +| Middleware | Funktion | +|-----------------------|---------------------------------------------------| +| `cors-headers@file` | CORS-Header (Origin, Methoden, Custom-Headers) | +| `security-headers@file` | CSP, XSS-Filter, HSTS, Frame-Deny | +| `api-ratelimit@file` | Rate-Limiting (100 avg, 50 burst) | +| `gzip-compress@file` | Gzip-Komprimierung | + +### 6.4 CORS-Konfiguration + +Standardmaessig erlaubte Methoden und Header: + +``` +Methoden: GET, POST, PUT, PATCH, DELETE, OPTIONS +Header: Authorization, Content-Type, X-Tenant-ID, X-Request-ID +Origin: Konfigurierbar via CORS_ORIGINS Umgebungsvariable +``` + +Falls deine Anwendung zusaetzliche Header benoetigt, muss die +`config/traefik/dynamic/middlewares.yml` erweitert werden. + +--- + +## 7. Datenbank-Anbindung + +### 7.1 Verbindung ueber PgBouncer (empfohlen) + +``` +Host: pgbouncer +Port: 6432 +Datenbank: platform_core (oder eigene DB) +Pool-Mode: transaction +``` + +**Connection-String:** +``` +postgresql://{DB_USER}:{DB_PASSWORD}@pgbouncer:6432/{DB_NAME} +``` + +> **Hinweis:** Die DB-Credentials stehen in der `.env`-Datei auf dem Server. +> Niemals in Git committen! + +### 7.2 Direkte Verbindung (nur fuer Migrationen) + +``` +postgresql://{DB_USER}:{DB_PASSWORD}@postgres:5432/{DB_NAME} +``` + +PgBouncer im `transaction`-Modus unterstuetzt keine `SET`-Befehle, +`LISTEN/NOTIFY` oder `PREPARE`-Statements. Fuer Migrationen immer +die direkte Verbindung verwenden. + +### 7.3 Eigenes Datenbank-Schema + +Fuer neue Anwendungen empfehlen wir ein eigenes Schema in der bestehenden +PostgreSQL-Instanz: + +```sql +-- Schema fuer deine Anwendung erstellen +CREATE SCHEMA IF NOT EXISTS app_meine_app; + +-- Tabellen im Schema anlegen +CREATE TABLE app_meine_app.beispiel ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + name TEXT NOT NULL, + created_at TIMESTAMPTZ DEFAULT NOW() +); +``` + +**Namenskonvention:** `app_{anwendungsname}` fuer das Schema. + +### 7.4 Zugriff auf bestehende INSIGHT-Daten + +Die Core-Datenbank (`platform_core`) enthaelt folgende relevante Tabellen: + +| Tabelle | Beschreibung | +|-----------------|--------------------------------------| +| `User` | Benutzer (ID, Name, E-Mail, Rolle) | +| `Tenant` | Mandanten (ID, Name, Slug) | +| `TenantUser` | Mandant-Benutzer-Zuordnung | +| `AuthProvider` | Authentifizierungsmethoden pro User | + +> **Achtung:** Direkter Schreibzugriff auf Core-Tabellen ist untersagt! +> Verwende die REST-API fuer Aenderungen an Core-Daten. + +--- + +## 8. Redis / Cache + +### 8.1 Verbindung + +``` +Host: redis +Port: 6379 +Netzwerk: insight-cache +``` + +### 8.2 Key-Namenskonventionen + +Um Konflikte zu vermeiden, verwende einen App-spezifischen Prefix: + +``` +app:{anwendungsname}:{key} +``` + +**Bestehende Prefixes (NICHT verwenden):** + +| Prefix | Verwendet von | +|-------------------------|------------------| +| `blocked_token:*` | Auth (Revocation)| +| `platform_*` | Core-Settings | +| `favicon:*` | Favicon-Cache | +| `sso:state:*` | SSO CSRF-Schutz | + +### 8.3 TTL-Empfehlung + +Setze immer einen TTL auf deine Keys, um Speicher-Leaks zu vermeiden: + +``` +Kurzlebige Daten (Sessions): 5 - 30 Minuten +Cache-Daten: 1 - 24 Stunden +Konfiguration: 24 - 48 Stunden +``` + +--- + +## 9. Frontend-Integration (Sidebar) + +### 9.1 Externe Links im INSIGHT-Menue + +Deine Anwendung wird als externer Link in der INSIGHT-Sidebar angezeigt. +Die Konfiguration erfolgt durch einen PLATFORM_ADMIN unter +**Administration > Externe Links**. + +Jeder Link hat folgende Eigenschaften: + +| Feld | Beschreibung | +|-------------|---------------------------------------------| +| `label` | Anzeigename im Menue (z.B. "Meine App") | +| `url` | URL deiner Anwendung | +| `sortOrder` | Reihenfolge in der Sidebar | +| `customIcon`| Optionales Icon (Base64, max 100KB) | + +### 9.2 Favicon-Erkennung + +INSIGHT erkennt automatisch das Favicon deiner Anwendung ueber HTML-Parsing: + +1. Deine Anwendung muss ein `` Tag im HTML-`` haben +2. Alternativ: `/favicon.ico` im Root-Verzeichnis bereitstellen +3. Oder: Eigenes Icon als Base64 in der Admin-Konfiguration hochladen + +### 9.3 Oeffnungs-Verhalten + +Externe Links werden in einem **separaten Browser-Fenster** geoeffnet +(`window.open` mit `popup,noopener`). Deine Anwendung laeuft eigenstaendig +und kommuniziert ueber die REST-API mit INSIGHT. + +--- + +## 10. Sicherheitsanforderungen + +### 10.1 Verbindliche Regeln + +| Regel | Details | +|----------------------------------------|----------------------------------------| +| **Kein localStorage fuer Tokens** | Access Token nur im Memory speichern | +| **HTTPS in Produktion** | Aktuell HTTP (Dev), spaeter Pflicht | +| **Keine Secrets in Git** | `.env`, Keys, Passwoerter nie committen | +| **Input-Validierung** | Whitelist-Validierung, kein raw SQL | +| **Rate-Limiting beachten** | Max 200 Req/Min global, 100/50 pro Route| +| **CORS-Origin registrieren** | Deine Domain in `CORS_ORIGINS` eintragen| + +### 10.2 Validierung (GlobalPipe) + +Der Core-Service nutzt einen globalen `ValidationPipe`: + +``` +- whitelist: true (unbekannte Felder werden entfernt) +- forbidNonWhitelisted: true (unbekannte Felder fuehren zu 400) +- transform: true (Typen werden automatisch konvertiert) +``` + +Stelle sicher, dass deine API-Requests nur die dokumentierten Felder enthalten. + +### 10.3 Body-Size-Limit + +Das maximale Request-Body ist auf **12 MB** begrenzt (fuer Base64-Uploads). +Fuer groessere Dateien implementiere einen separaten Upload-Endpunkt. + +### 10.4 Account-Lockout + +Nach **5 fehlgeschlagenen Login-Versuchen** wird der Account fuer +**15 Minuten** gesperrt. Implementiere entsprechende Fehlerbehandlung. + +--- + +## 11. Health-Checks & Monitoring + +### 11.1 Health-Check Endpunkt + +Deine Anwendung sollte einen Health-Check bereitstellen: + +``` +GET /meine-app/health +Response: { "status": "ok" } +``` + +Konfiguriere den Docker-Healthcheck: + +```yaml +services: + meine-app: + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s +``` + +### 11.2 Logging + +Nutze strukturiertes JSON-Logging fuer die Integration mit dem +Observability-Stack (Loki/Grafana): + +```json +{ + "level": "info", + "timestamp": "2026-03-10T12:00:00Z", + "message": "Request verarbeitet", + "service": "meine-app", + "requestId": "...", + "userId": "...", + "duration": 42 +} +``` + +### 11.3 Observability-Stack (optional) + +| Service | Port | Zugriff | +|-------------|-------|------------------------------| +| Grafana | 3001 | SSH-Tunnel (nur intern) | +| Prometheus | 9090 | Nur intern | +| Loki | 3100 | Nur intern (Log-Aggregation) | +| Tempo | 3200 | Nur intern (Tracing) | + +--- + +## 12. Checkliste fuer neue Container-Apps + +### Vor der Entwicklung + +- [ ] Tech-Stack festlegen (Empfehlung: TypeScript/Node.js, Go, oder Python) +- [ ] Datenbank-Schema planen (`app_{name}` Schema) +- [ ] API-Endpunkte definieren +- [ ] Traefik-Route planen (Pfad-Prefix `/{app-name}`) + +### Implementierung + +- [ ] Dockerfile erstellen (Multi-Stage-Build empfohlen) +- [ ] JWT-Validierung implementieren (RS256, Public Key) +- [ ] Health-Check-Endpunkt implementieren +- [ ] Strukturiertes JSON-Logging einrichten +- [ ] CORS korrekt konfigurieren +- [ ] Input-Validierung implementieren +- [ ] Fehler-Responses im INSIGHT-Format zurueckgeben + +### Docker-Integration + +- [ ] Image in Container Registry pushen (`git.xinion.lan`) +- [ ] `docker-compose.override.yml` oder separates Compose-File erstellen +- [ ] Netzwerke einbinden (`insight-web`, ggf. `insight-db`, `insight-cache`) +- [ ] Traefik-Labels konfigurieren +- [ ] Healthcheck konfigurieren +- [ ] Umgebungsvariablen dokumentieren + +### Deployment + +- [ ] `.env`-Eintraege auf dem Server ergaenzen +- [ ] Traefik-Route testen (`curl http://172.20.10.59/{app-name}/health`) +- [ ] JWT-Validierung testen (mit gueltigem/ungueltigem Token) +- [ ] In INSIGHT-Sidebar als externen Link eintragen +- [ ] Favicon / Custom-Icon konfigurieren + +### Dokumentation + +- [ ] API-Dokumentation erstellen (OpenAPI/Swagger empfohlen) +- [ ] Umgebungsvariablen dokumentieren +- [ ] Datenbank-Schema dokumentieren +- [ ] README.md im Repository anlegen + +--- + +## 13. Beispiel: docker-compose Erweiterung + +Erstelle eine `docker-compose.meine-app.yml` Datei: + +```yaml +# docker-compose.meine-app.yml +# Starten mit: docker compose -f docker-compose.yml -f docker-compose.meine-app.yml up -d + +services: + meine-app: + image: git.xinion.lan/gitadmin/insight-meine-app:latest + container_name: insight-meine-app + restart: unless-stopped + + environment: + - NODE_ENV=production + - PORT=8080 + - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@pgbouncer:6432/platform_core?schema=app_meine_app + - REDIS_HOST=redis + - REDIS_PORT=6379 + - JWT_PUBLIC_KEY_PATH=/app/keys/jwt-public.pem + - INSIGHT_API_URL=http://core:3000/api/v1 + + volumes: + - ./keys/jwt-public.pem:/app/keys/jwt-public.pem:ro + + networks: + - insight-web + - insight-db + - insight-cache + + labels: + - "traefik.enable=true" + - "traefik.http.routers.meine-app.rule=PathPrefix(`/meine-app`)" + - "traefik.http.routers.meine-app.entrypoints=web" + - "traefik.http.services.meine-app.loadbalancer.server.port=8080" + - "traefik.http.routers.meine-app.middlewares=cors-headers@file,security-headers@file" + + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + + depends_on: + pgbouncer: + condition: service_healthy + redis: + condition: service_healthy + +networks: + insight-web: + external: true + insight-db: + external: true + insight-cache: + external: true +``` + +### Starten + +```bash +# Auf dem Server (insight-dev-01) +cd /home/deploy/insight + +# Zusammen mit der Hauptanwendung starten +docker compose \ + -f docker-compose.yml \ + -f docker-compose.meine-app.yml \ + up -d + +# Nur die neue App starten (Hauptanwendung laeuft bereits) +docker compose \ + -f docker-compose.yml \ + -f docker-compose.meine-app.yml \ + up -d meine-app + +# Logs pruefen +docker compose \ + -f docker-compose.yml \ + -f docker-compose.meine-app.yml \ + logs -f meine-app +``` + +--- + +## Kontakt & Support + +Bei Fragen zur Integration wende dich an das INSIGHT-Plattform-Team: + +- **Repository:** `ssh://git@git.xinion.lan/gitadmin/INSIGHT-MVP.git` +- **Admin-E-Mail:** `admin@xinion.de` + +--- + +> **Hinweis:** Dieses Dokument bezieht sich auf die Alpha-Version (v1.0.0-alpha). +> API-Endpunkte und Konfigurationen koennen sich in spaeteren Versionen aendern. From b18fe9376c6d5e34eda7e59884683eb5fcee268c Mon Sep 17 00:00:00 2001 From: Thomas Reitz Date: Tue, 10 Mar 2026 15:18:04 +0100 Subject: [PATCH 2/3] docs: add CRM service handoff document for new dev session Comprehensive briefing for a new Claude Code chat to build the CRM container service, including: protected paths, architecture overview, JWT validation, database schema conventions, Docker integration, multi-tenancy rules, and quick-start guide. Co-Authored-By: Claude Opus 4.6 --- docs/CRM_HANDOFF.md | 505 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 505 insertions(+) create mode 100644 docs/CRM_HANDOFF.md diff --git a/docs/CRM_HANDOFF.md b/docs/CRM_HANDOFF.md new file mode 100644 index 0000000..9808039 --- /dev/null +++ b/docs/CRM_HANDOFF.md @@ -0,0 +1,505 @@ +# CRM-Service Handoff — Briefing fuer neuen Claude Code Chat + +> **Zweck:** Dieses Dokument enthaelt alle technischen Informationen, damit ein +> neuer Claude Code Chat den CRM-Service im Monorepo entwickeln kann, ohne +> bestehende Funktionalitaet zu beschaedigen. +> +> **Stand:** 2026-03-10 | **Basis:** INSIGHT MVP v1.0.0-alpha + +--- + +## 1. Dein Auftrag + +Entwickle den CRM-Service als eigenstaendiges Package unter +`packages/crm-service/` im bestehenden Monorepo. Der Service ist ein +NestJS-Backend, das als eigener Docker-Container laeuft und sich in die +INSIGHT-Plattform integriert. + +**Lese zuerst:** `docs/INTEGRATION.md` — dort steht, wie Container-Apps +sich in die Plattform integrieren. + +--- + +## 2. Was du NICHT anfassen darfst + +> **KRITISCH:** Diese Dateien/Verzeichnisse gehoeren dem Core-Service. +> Aenderungen daran koennen die gesamte Plattform zerstoeren. + +| Pfad | Grund | +|------|-------| +| `packages/core-service/**` | Bestehender Backend-Service (Auth, Users, Tenants) | +| `packages/frontend/**` | Bestehende React-App (wird spaeter separat erweitert) | +| `config/traefik/**` | Traefik-Konfiguration (nur lesen, nicht aendern) | +| `.forgejo/workflows/**` | CI/CD Pipeline (wird spaeter fuer CRM erweitert) | +| `docker-compose.yml` | Haupt-Compose (nur lesen — du erstellst ein Override) | +| `.keys/**` | JWT-Schluessel und SSH-Keys | +| `prisma/core.schema.prisma` | Core-Datenbank-Schema | + +**Ausnahmen:** Du darfst folgende Dateien ergaenzen (nicht ueberschreiben): +- `.env.example` — Neue CRM-spezifische Variablen **anhaengen** +- `docs/` — Eigene Dokumentation hinzufuegen + +--- + +## 3. Verzeichnisstruktur (Ziel) + +``` +INSIGHT-MVP/ +├── packages/ +│ ├── core-service/ ← NICHT ANFASSEN +│ ├── frontend/ ← NICHT ANFASSEN +│ └── crm-service/ ← DEIN BEREICH +│ ├── Dockerfile +│ ├── package.json +│ ├── tsconfig.json +│ ├── nest-cli.json +│ ├── .dockerignore +│ ├── prisma/ +│ │ └── crm.schema.prisma ← Eigenes Schema! +│ └── src/ +│ ├── main.ts +│ ├── app.module.ts +│ ├── config/ +│ ├── contacts/ +│ ├── activities/ +│ ├── pipelines/ +│ └── ... +├── docker-compose.crm.yml ← Docker Override fuer CRM +└── docs/ + └── CRM_HANDOFF.md ← Diese Datei +``` + +--- + +## 4. Bestehende Architektur (Referenz) + +### 4.1 Docker-Netzwerke + +| Netzwerk | Typ | Dein Zugriff | +|----------|-----|-------------| +| `insight-web` | bridge | **JA** — Pflicht fuer Traefik-Routing | +| `insight-db` | internal | **JA** — Fuer Datenbankzugriff | +| `insight-cache` | internal | **JA** — Fuer Redis-Zugriff | + +### 4.2 Verfuegbare Infrastruktur-Services + +| Service | Hostname (Docker) | Port | Zugriff | +|---------|-------------------|------|---------| +| PostgreSQL | `postgres` | 5432 | Direkt (nur Migrationen) | +| PgBouncer | `pgbouncer` | 6432 | Pooled (Runtime) | +| Redis | `redis` | 6379 | Cache + Events | +| Core-API | `core` | 3000 | REST-Aufrufe | +| Traefik | `traefik` | 80 | Gateway | + +### 4.3 Datenbank-Verbindung + +``` +# Runtime (via PgBouncer — Connection Pooling) +DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@pgbouncer:6432/${DB_NAME} + +# Migrationen (direkt — PgBouncer unterstuetzt kein DDL) +DATABASE_URL_DIRECT=postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_NAME} +``` + +- **DB_USER:** `insight` (Standard) +- **DB_NAME:** `platform_core` (gemeinsame DB) +- **Dein Schema:** `app_crm` (eigenes Schema innerhalb der gleichen DB) +- **Pool-Mode:** `transaction` (kein `LISTEN/NOTIFY`, kein `SET`) + +### 4.4 Redis + +``` +Host: redis +Port: 6379 +Passwort: optional (${REDIS_PASSWORD}) +``` + +**Key-Prefix fuer CRM:** `app:crm:*` + +Bereits belegte Prefixes (NICHT verwenden): +- `blocked_token:*` — Token-Revocation +- `platform_*` — Core-Settings +- `favicon:*` — Favicon-Cache +- `sso:state:*` — SSO CSRF +- `refresh_token_family:*` — Token-Rotation + +--- + +## 5. Authentifizierung & Autorisierung + +### 5.1 JWT-Token-Architektur + +Der CRM-Service empfaengt Requests mit einem `Authorization: Bearer ` +Header. Der Token wurde vom Core-Service ausgestellt (RS256). + +**JWT-Payload:** +```json +{ + "sub": "user-uuid", + "email": "user@example.com", + "role": "USER | TENANT_ADMIN | PLATFORM_ADMIN", + "tenantId": "tenant-uuid", + "tenantSlug": "tenant_acme", + "jti": "unique-token-id", + "iat": 1710000000, + "exp": 1710000900 +} +``` + +### 5.2 Token-Validierung implementieren + +Du brauchst den oeffentlichen JWT-Schluessel: + +```yaml +# In docker-compose.crm.yml +volumes: + - ./keys/jwt-public.pem:/app/keys/jwt-public.pem:ro +``` + +**NestJS-Implementierung:** +```typescript +// Passport JWT Strategy (wie im Core-Service) +// Algorithmus: RS256 +// Public Key: aus /app/keys/jwt-public.pem +// Header: Authorization: Bearer +``` + +**Optional — Token-Revocation pruefen:** +```typescript +// Redis-Key: blocked_token:{jti} +// Wenn vorhanden → Token ist gesperrt → 401 +``` + +### 5.3 Rollen + +| Rolle | CRM-Zugriff | +|-------|-------------| +| `PLATFORM_ADMIN` | Voller Zugriff auf alle Mandanten | +| `TENANT_ADMIN` | Voller Zugriff auf eigenen Mandanten | +| `USER` | Lese-/Schreibzugriff auf eigene Daten | + +### 5.4 Multi-Tenancy + +**Jeder CRM-Request muss mandanten-bezogen sein!** + +Der `tenantId` kommt aus dem JWT-Payload. Alle Datenbankabfragen muessen +nach `tenantId` gefiltert werden: + +```sql +-- IMMER so: +SELECT * FROM app_crm.contacts WHERE tenant_id = :tenantId; + +-- NIEMALS so: +SELECT * FROM app_crm.contacts; -- Datenleck! +``` + +--- + +## 6. Datenbank-Schema (Empfehlung) + +Verwende ein eigenes Prisma-Schema unter `packages/crm-service/prisma/crm.schema.prisma`. + +**Schema-Name:** `app_crm` + +```prisma +generator client { + provider = "prisma-client-js" + output = "../node_modules/.prisma/crm-client" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") + directUrl = env("DATABASE_URL_DIRECT") + schemas = ["app_crm"] +} +``` + +**Wichtig:** +- Eigener Prisma-Client-Output (`crm-client`), damit kein Konflikt mit dem Core-Client +- Eigenes Schema `app_crm` — keine Tabellen im `public` Schema anlegen +- `tenantId` als Pflichtfeld in jeder Tabelle (Multi-Tenancy) +- `createdBy` / `updatedBy` als UUID fuer Audit-Trail (User-IDs aus Core) + +### 6.1 Referenz: Bestehende Tenant-Schema-Entwuerfe + +Im Core-Service existiert bereits ein Entwurf unter +`packages/core-service/prisma/tenant.schema.prisma` mit Modellen fuer +`Contact` und `Activity`. Diese dienen als Referenz — du kannst sie +uebernehmen oder anpassen. + +**Contact-Modell (Referenz):** +- Typen: PERSON, ORGANIZATION +- Felder: Name, Firma, Kontaktdaten, Adresse, Tags, Notizen +- Tracking: `createdBy`, `updatedBy` (User-UUIDs) + +**Activity-Modell (Referenz):** +- Typen: NOTE, CALL, EMAIL, MEETING, TASK +- Felder: Subject, Beschreibung, Zeitplanung, Status + +--- + +## 7. Docker-Integration + +### 7.1 docker-compose.crm.yml (Beispiel) + +Erstelle diese Datei im Projekt-Root: + +```yaml +# docker-compose.crm.yml +# Start: docker compose -f docker-compose.yml -f docker-compose.crm.yml up -d + +services: + crm: + build: + context: ./packages/crm-service + dockerfile: Dockerfile + target: development + container_name: insight-crm + restart: unless-stopped + environment: + - NODE_ENV=${NODE_ENV:-development} + - APP_PORT=3100 + - DATABASE_URL=postgresql://${DB_USER:-insight}:${DB_PASSWORD}@pgbouncer:6432/${DB_NAME:-platform_core}?schema=app_crm + - DATABASE_URL_DIRECT=postgresql://${DB_USER:-insight}:${DB_PASSWORD}@postgres:5432/${DB_NAME:-platform_core}?schema=app_crm + - REDIS_HOST=redis + - REDIS_PORT=6379 + - REDIS_PASSWORD=${REDIS_PASSWORD:-} + - JWT_PUBLIC_KEY_PATH=/app/keys/jwt-public.pem + volumes: + - ./packages/crm-service:/app + - /app/node_modules + - ./.keys/jwt-public.pem:/app/keys/jwt-public.pem:ro + networks: + - insight-web + - insight-db + - insight-cache + labels: + - "traefik.enable=true" + - "traefik.http.routers.crm.rule=PathPrefix(`/api/v1/crm`)" + - "traefik.http.routers.crm.entrypoints=web" + - "traefik.http.services.crm.loadbalancer.server.port=3100" + - "traefik.http.routers.crm.middlewares=cors-headers@file,security-headers@file" + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3100/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + depends_on: + pgbouncer: + condition: service_healthy + redis: + condition: service_healthy + +networks: + insight-web: + external: true + insight-db: + external: true + insight-cache: + external: true +``` + +### 7.2 Traefik-Route + +| Route-Prefix | Service | Port | +|-------------|---------|------| +| `/api/v1/crm/*` | crm | 3100 | + +**Bereits belegte Routen:** +- `/api/*` → core-service:3000 +- `/health` → core-service:3000 +- `/*` → frontend:8080 (Catch-all, Priority 1) + +**Wichtig:** Die CRM-Route `/api/v1/crm` hat hoehere Prioritaet als der +Core-Catch-all `/api`, weil sie spezifischer ist. Traefik matched die +laengste Prefix-Uebereinstimmung zuerst. + +### 7.3 Port-Konvention + +| Service | Port | +|---------|------| +| Core-Service | 3000 | +| CRM-Service | **3100** | +| Frontend | 8080 | + +--- + +## 8. NestJS-Konfiguration (Orientierung am Core-Service) + +### 8.1 Tech-Stack (identisch zum Core) + +| Komponente | Version | Zweck | +|-----------|---------|-------| +| NestJS | >= 10 | Framework | +| TypeScript | strict | Sprache | +| Prisma | >= 6 | ORM | +| ioredis | >= 5 | Redis-Client | +| passport-jwt | latest | JWT-Validierung | +| class-validator | latest | DTO-Validierung | +| class-transformer | latest | Typ-Transformation | + +### 8.2 main.ts Konfiguration (kopiere das Pattern) + +```typescript +// Wichtige Einstellungen (gleich wie Core): +// - helmet() fuer Security-Headers +// - cookieParser() fuer Cookies +// - JSON Body Limit: 12MB +// - Global Prefix: api/v1/crm (ACHTUNG: nicht api/v1 — das ist der Core!) +// - Global ValidationPipe (whitelist, forbidNonWhitelisted, transform) +// - CORS mit credentials: true +// - Port: 3100 +``` + +**ACHTUNG beim Global Prefix:** +```typescript +// RICHTIG: +app.setGlobalPrefix('api/v1/crm', { exclude: ['/health'] }); + +// FALSCH (wuerde Core-Routes ueberlagern): +app.setGlobalPrefix('api/v1'); +``` + +### 8.3 Swagger + +Stelle Swagger unter `/api/v1/crm/docs` bereit (nur Development). + +--- + +## 9. CI/CD (spaeter) + +Die CI/CD Pipeline wird **spaeter separat** erweitert. Fokussiere dich +auf die Entwicklung. Die Pipeline-Erweiterung beinhaltet: + +1. Neuer CI-Job `crm-service` (analog zu `core-service`) +2. Docker-Image: `git.xinion.lan/gitadmin/insight-crm:TAG` +3. Deploy-Job erweitert um CRM-Container + +--- + +## 10. Konventionen + +### 10.1 Git + +- **Branch:** `feature/crm-service` (von `develop` abzweigen) +- **Commits:** Conventional Commits mit `feat(crm):`, `fix(crm):`, etc. +- **Kein Push auf `main`** — nur ueber Merge von `develop` + +### 10.2 Code-Style + +- **Strict TypeScript** — kein `any` +- **ESLint + Prettier** (gleiche Config wie Core) +- **DTOs** mit class-validator fuer alle Inputs +- **Guards** fuer Authentifizierung und Autorisierung + +### 10.3 Datenbank + +- Schema: `app_crm` +- Tabellen-Prefix: keiner (Schema ist schon der Namespace) +- Migrations: `npx prisma migrate dev --schema=prisma/crm.schema.prisma` +- Seed: `npx ts-node prisma/seed.ts` + +### 10.4 Redis-Keys + +``` +app:crm:{feature}:{id} +``` + +Beispiele: +``` +app:crm:pipeline:config:tenant_acme +app:crm:cache:contacts:tenant_acme:page1 +``` + +--- + +## 11. API-Design (Empfehlung) + +Alle CRM-Endpunkte unter `/api/v1/crm/`: + +``` +# Kontakte +GET /api/v1/crm/contacts — Liste (paginiert, filterbar) +POST /api/v1/crm/contacts — Erstellen +GET /api/v1/crm/contacts/:id — Detail +PATCH /api/v1/crm/contacts/:id — Aktualisieren +DELETE /api/v1/crm/contacts/:id — Loeschen + +# Aktivitaeten +GET /api/v1/crm/activities — Liste +POST /api/v1/crm/activities — Erstellen +GET /api/v1/crm/activities/:id — Detail +PATCH /api/v1/crm/activities/:id — Aktualisieren +DELETE /api/v1/crm/activities/:id — Loeschen + +# Pipelines (Sales-Pipeline) +GET /api/v1/crm/pipelines — Liste +POST /api/v1/crm/pipelines — Erstellen +... + +# Deals +GET /api/v1/crm/deals — Liste +POST /api/v1/crm/deals — Erstellen +... + +# Health +GET /health — Health-Check (public) +``` + +--- + +## 12. Zusammenfassung der Regeln + +1. **Arbeite NUR in `packages/crm-service/` und `docker-compose.crm.yml`** +2. **Aendere NICHTS am Core-Service, Frontend oder der Infrastruktur** +3. **Eigenes Prisma-Schema** mit eigenem Client-Output +4. **Eigener Docker-Container** auf Port 3100 +5. **JWT-Validierung** mit dem shared Public Key (RS256) +6. **Multi-Tenancy** — jede Query filtert nach `tenantId` aus dem JWT +7. **Redis-Keys** mit Prefix `app:crm:` +8. **Git-Branch:** `feature/crm-service` von `develop` +9. **Conventional Commits:** `feat(crm):`, `fix(crm):` +10. **Strict TypeScript** — kein `any`, volle Validierung + +--- + +## 13. Schnellstart + +```bash +# 1. Branch erstellen +git checkout develop +git checkout -b feature/crm-service + +# 2. Package anlegen +mkdir -p packages/crm-service +cd packages/crm-service +npm init -y + +# 3. NestJS installieren +npm install @nestjs/common @nestjs/core @nestjs/config @nestjs/platform-express +npm install @nestjs/passport @nestjs/jwt passport passport-jwt +npm install @prisma/client ioredis class-validator class-transformer +npm install helmet cookie-parser +npm install -D typescript @types/node @nestjs/cli prisma +npm install -D @types/passport-jwt @types/cookie-parser + +# 4. Prisma initialisieren +npx prisma init --schema=prisma/crm.schema.prisma + +# 5. Schema erstellen (app_crm) +# ... (siehe Abschnitt 6) + +# 6. Migration ausfuehren +npx prisma migrate dev --schema=prisma/crm.schema.prisma --name init + +# 7. Entwickeln +npm run start:dev +``` + +--- + +> **Fuer den neuen Chat:** +> Oeffne dieses Dokument zu Beginn mit: *"Lies bitte `docs/CRM_HANDOFF.md` +> und `docs/INTEGRATION.md` bevor du mit der Entwicklung startest."* From ffd48a38a388538c645d93726e8ff61f3f5b7589 Mon Sep 17 00:00:00 2001 From: Thomas Reitz Date: Tue, 10 Mar 2026 15:30:07 +0100 Subject: [PATCH 3/3] Update Briefing --- docs/CLAUDE_BRIEFING.docx | Bin 0 -> 21982 bytes docs/INSIGHT_Konzept_v1.0.docx | Bin 0 -> 99639 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/CLAUDE_BRIEFING.docx create mode 100644 docs/INSIGHT_Konzept_v1.0.docx diff --git a/docs/CLAUDE_BRIEFING.docx b/docs/CLAUDE_BRIEFING.docx new file mode 100644 index 0000000000000000000000000000000000000000..bd7b3fa7cf488965e9e16185527886da375ec201 GIT binary patch literal 21982 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 literal 0 HcmV?d00001 diff --git a/docs/INSIGHT_Konzept_v1.0.docx b/docs/INSIGHT_Konzept_v1.0.docx new file mode 100644 index 0000000000000000000000000000000000000000..6d2fe606e157e4ef582f3536f7878aced2a5773c GIT binary patch literal 99639 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 Suz;|Df&pg<9st)3^#1`lK0&1b literal 0 HcmV?d00001