REFERENCE ARCHITECTURE
Architektur
VELQORYN ist eine herstellerneutrale Kontrollschicht zwischen KI-Anwendungen und Modellen. Zentrale Invariante: Governance findet vor Inference statt. Ein LLM entscheidet nicht darüber, ob es selbst verwendet werden darf.
Data Plane: Request-Pipeline
- Identity verificationSupabase-JWT über JWKS bzw. Auth-Server prüfen
- Tenant resolutionMitgliedschaft und Rolle in der Organisation laden
- Security guardHeuristische Erkennung von Prompt Injection und Secrets (Demonstrator)
- Policy enforcementDeterministische ALLOW/DENY-Entscheidung mit Reason Codes
- Model eligibilityNur Modelle, deren Klassifikationsgrenze die Anfrage abdeckt
- Budget & model choiceStrategie, manuelle Modellwahl und Monatsbudget anwenden
- Model routingPriorisierte Routen mit kontrolliertem Fallback
- Provider adapterNormalisierte Antwort; Ollama nur über privaten Adapter
- AuditRequest-Metadaten, Kosten und SHA-256-Fingerprint, kein Roh-Prompt
Bei DENY endet die Pipeline vor dem Routing. Provider werden nicht erreicht; der Audit-Eintrag wird trotzdem geschrieben.
Control Plane
AI Applications, Model Endpoints, Preise und Budgets, Policies, Rollen, Tool-Freigaben, Evaluations, Security Events und Audit-Informationen werden mandantenfähig in PostgreSQL verwaltet.
Security-Ebenen
- Supabase Authentication
- JWT verification
- Organization membership
- Role authorization
- PostgreSQL RLS
- Application policy
- Data classification
- Prompt/security guard
- Model allowlist
- Adapter network isolation
- Sanitized audit logging
- CI/CD security gates
Architecture Decision Records
| ADR | Entscheidung | Konsequenz |
|---|---|---|
| 001 | Governance vor Inference | Ein blockierter Request erzeugt niemals einen Modellaufruf. |
| 002 | Provider-Abstraktion | Die Businesslogik kennt keine Ollama-spezifische API. |
| 003 | Keine Roh-Prompts in Audit-Logs | Gespeichert werden Hash, Entscheidung und Metadaten. |
| 004 | RLS als Defense in Depth | Mandantentrennung im Backend und in PostgreSQL. |
| 005 | Ollama nie direkt im Internet | Nur der authentifizierte Adapter erreicht 127.0.0.1:11434. |
| 006 | Budgetabhängiges Routing | Modellwahl und Budget werden vor der Inferenz deterministisch geprüft. |
Referenzimplementierung, nicht produktionsreif. Der Regex-Guard ist bewusst nur ein austauschbarer Demonstrator.