INSIGHT-MVP/repos/INSIGHT-Platform/BRIEFING.md
Thomas Reitz 36196457ea feat(infra): vollständige Ansible-Struktur Phase 1
- Alle Ansible-Rollen erstellt: common, disk_setup, docker, postgresql,
  pgbouncer, redis, nginx, zabbix_agent
- ansible.cfg mit Pipeline-Optimierung
- hosts.yml mit echten IPs (DBS01=.20, APS01=.21, WEB01=.22)
- group_vars für alle Server (dbs, aps, web)
- Zabbix-Server auf sentinel.xinion.de gesetzt
- vault.yml.example als Vorlage für Secrets
- site.yml nutzt import_playbook (DBS01→APS01→WEB01)
- BRIEFING.md für alle 4 Repos angelegt (Platform, Apps, Infra, Shared)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 15:23:29 +01:00

2.5 KiB

INSIGHT-Platform — Developer Briefing

Dieses Dokument ist der Einstiegspunkt für jede neue Claude Code Session in diesem Repo. Lies es vollständig bevor du Code schreibst.

Was ist dieses Repo?

Die INSIGHT-Plattform ist das Fundament aller INSIGHT-Dienste. Sie stellt Authentifizierung, User-Verwaltung, Berechtigungssystem und die React-Shell bereit, in die sich fachliche Apps (aus INSIGHT-Apps) einbinden.

Struktur

packages/
├── core-service/     # NestJS: Auth, JWT, User, Settings, Expertenprofil, RBAC
└── frontend/         # React 18 + Vite: Shell, Login, Navigation, Admin-Bereich

Abhängigkeiten zu anderen Repos

Repo Beziehung
INSIGHT-Shared Lesen: module-interface.md, api-platform.md — Schreiben: api-platform.md nach Änderungen
INSIGHT-Apps Apps registrieren sich via InsightModule-Contract in der Shell
INSIGHT-Infra Stellt DBS01 (PostgreSQL + Redis) und APS01 (Docker) bereit

Confluence Dokumentation

Tech Stack

  • Backend: NestJS 10, TypeScript strict, Prisma ORM
  • Frontend: React 18, Vite, TanStack Query, React Router
  • Datenbank: PostgreSQL 16 (auf DBS01, via PgBouncer)
  • Cache: Redis 7 (auf DBS01)
  • Auth: JWT RS256, Refresh Token (HttpOnly Cookie), TOTP 2FA

Sicherheitsregeln (nicht verhandelbar)

  • Kein any in TypeScript — strict mode immer
  • Kein localStorage für Tokens (Access: Memory, Refresh: HttpOnly Cookie)
  • Globaler ValidationPipe (whitelist + forbidNonWhitelisted)
  • @Public() explizit für öffentliche Routen
  • Rollen immer via @Roles() + RolesGuard auf jedem Endpoint
  • Kein raw SQL — ausschließlich Prisma

RBAC-Modell

User
├── platformRole: PLATFORM_ADMIN | USER
└── moduleRoles: { crm: ADMIN | MANAGER | VIEWER, ... }

Platform Admin: User-Verwaltung, System-Einstellungen, Modul-Zuweisung Module Admin: Berechtigungen innerhalb seines Moduls

Deploy Key (dieses Repo)

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK2deXkhf9Ut9728mvxwl+MyFtbjoPRXNbTR2XjmDJVs deploy@INSIGHT-Platform

Privater Key: .keys/deploy_platform_ed25519

Aktueller Status

  • Phase: 2 — Plattform
  • Stand: Konzeption (Berechtigungskonzept in Klärung)
  • Nächster Schritt: Berechtigungskonzept finalisieren → Prisma Schema → Auth-Service