Zum Inhalt springen
thconsulting
Menü öffnen
Tech-Deep-Dive · Webanwendung

Multi-Tenant. 2FA. RBAC.
Type-safe End-to-End.

Default-Architektur für Mandanten-Webanwendungen. Magic-Link plus optionales TOTP-2FA, RBAC über tenant_users.role, ScopeDataLoader für harten Tenant-Filter auf dem Service-Layer. Append-only Audit-Log pro Mandant. Self-hostable, container-deployed, Zero-Downtime-Deploy. Live-Reference: akademie.unitedsynergy.com und analytics.thconsulting.dev.

Capability-Stack

Acht Schichten, was sie können.

Konkrete Tool-Wahl behalte ich für mich, was zählt sind die Eigenschaften: harte Auth, typsichere DB, schlanker HTTP-Layer, Audit-Log per Default.

Runtime
Edge-fähig, native TS
Cold-Start < 50 ms · Hot-Reload < 200 ms
HTTP-Layer
Schlank, Web-Standards-API
Bundle < 200 kB · ~10k req/s pro Core
DB-Layer
Type-safe End-to-End
Schema → Query → Response, ein Typecheck
Auth
Magic-Link + TOTP-2FA + RBAC
Kein Passwort-Hell, optional 2FA pro User
Multi-Tenancy
tenant_id + ScopeDataLoader
N:N User↔Mandant, Path- oder Custom-Domain-Routing
Audit
Append-only Event-Log pro Mandant
Optional Hash-Chain für GoBD
Validation
Schema-validiert vor jedem Write
Type-safe Routes + Forms aus einer Schema-Quelle
Deploy
Container-Cluster, Auto-TLS, Rolling-Update
CI < 2 min · Zero-Downtime via Health-Checks
FAQ

Tech-Fragen.

Warum eigener Stack statt Standard-Framework von der Stange?
Cold-Start im einstelligen Millisekunden-Bereich, native TypeScript-Ausführung ohne separaten Build-Step im Server, schlanker HTTP-Layer ohne Decorator-Magic. Konsequenz: Server-Bundle unter 200 kB, ~10k req/s pro Core, Hot-Reload unter 200 ms im Dev. Keine Reflection, keine Class-Decorators, Request-Handler sind reine Funktionen.
Multi-Tenant-Pattern?
tenant_id Foreign-Key auf jeder Business-Tabelle. ScopeDataLoader filtert auf Service-Layer (kein PG Row-Level-Security, zu fragil bei Schema-Migrations). tenant_users-Junction-Tabelle für N:N (User kann mehrere Mandanten administrieren). Path-basiertes Routing als Default (/m/<slug>), Custom-Domain als Premium-Feature mit Auto-TLS.
Auth-Stack mit 2FA?
Magic-Link via Transactional-Mail-Provider (kein Passwort-Reset-Hell), Session-Cookies HttpOnly + SameSite=Lax + Secure in Production. Optional TOTP-2FA per User aktivierbar (Authenticator-App via RFC 6238), Backup-Codes hashed, Recovery via Magic-Link + Identitätsnachweis. RBAC über tenant_users.role (owner|admin|viewer|guest). Für Konnektoren separate verschlüsselte Credential-Store via AES-256-GCM mit per-Tenant-Salt.
Migrations + Schema-Evolution?
Migrations werden aus dem TypeScript-Schema generiert, laufen als one-shot-Service im Container-Cluster vor dem App-Update. Rollback via DOWN-Migrations oder Snapshot-Restore. Schema-Drift wird zum Compile-Error, nicht zum 3-Uhr-Anruf. DB-Schema, Server-Routen und Client-Code teilen eine Typkette. Pattern bewährt in EDUSyn-Akademie über ~15 Migrations ohne Production-Incident.
Audit-Log + Compliance?
audit_events-Tabelle pro Mandant, jede schreibende Aktion mit (actor_user_id, tenant_id, action, target_type, target_id, payload_diff, ip, ua, ts). Append-only durch DB-Trigger, optional Hash-Chain für GoBD-konforme Unveränderlichkeit. Filter und Export im Admin-UI. Pattern erfüllt typische Wirtschaftsprüfer-Anforderungen ohne separates Compliance-Tool.
Deploy-Pipeline + Zero-Downtime?
CI scheitert früh: Lint, Typecheck, Tests, Build und Container-Push laufen in unter zwei Minuten. Deploy via signiertem Container-Image, Rolling-Update im Cluster, Auto-TLS via Reverse-Proxy. Zero-Downtime durch Health-Checks und Connection-Draining. Push-to-Production über Tag, nicht über SSH-Bastel. Live-Reference: akademie.unitedsynergy.com.

Stack-Sparring oder Code-Walkthrough?

30 Min Erstgespräch, kostenlos. Walkthrough an einer Reference-Implementierung. Multi-Tenant-Pattern, 2FA-Flow, Audit-Log-Design.

Erstgespräch buchen