feat(knowledge): add service library

This commit is contained in:
DS | Schubert 2026-07-03 10:25:52 +02:00
parent ecab0fe6b6
commit 228da8f814
32 changed files with 2878 additions and 6 deletions

View file

@ -220,10 +220,35 @@ Importmodi:
Die Excel-freundliche Vorlage liegt unter `GET /api/customers/import/template`.
### Wissensdatenbank
Das Knowledge-Modul folgt dem bestehenden Modulstandard:
- SQLAlchemy-Modell in `backend/hermes/app/models/knowledge.py`
- Pydantic-Schemas in `backend/hermes/app/schemas/knowledge.py`
- Repository in `backend/hermes/app/repositories/knowledge_repository.py`
- Service-Logik in `backend/hermes/app/services/knowledge_service.py`
- FastAPI-Router in `backend/hermes/app/api/knowledge.py`
- Athena-BFF unter `/api/knowledge/...`
- Frontend-Seiten unter `/knowledge`
Upload-Regeln:
- Browser sendet Dateien nur an Athena.
- Athena leitet FormData serverseitig an Hermes weiter.
- Hermes validiert Dateityp, MIME-Type, Dateigroesse und Speicherpfad.
- Lokale Dateien liegen unter `KNOWLEDGE_STORAGE_PATH`.
- Audit Logs duerfen keine Datei-Inhalte enthalten.
- Keine Pfade aus unvalidierten Benutzereingaben zusammensetzen.
Paperless-ngx ist nur vorbereitet. `paperless_document_id` und `external_url` duerfen gepflegt werden, aber es werden keine Paperless-Secrets oder API-Keys eingefuehrt.
### Deployment
Neue Installationen koennen optional ueber `INITIAL_ADMIN_*` einen initialen Administrator anlegen. Diese Variablen werden nur von Hermes gelesen und duerfen nicht im Frontend oder in Logs erscheinen.
Knowledge-Dateien benoetigen ein persistentes Docker-Volume. Vor produktiven Deployments muessen `KNOWLEDGE_STORAGE_PATH` und `KNOWLEDGE_MAX_UPLOAD_MB` bewusst gesetzt oder die Defaults akzeptiert werden.
### Neue Permissions
Neue Module muessen eigene stabile Permission-Strings erhalten.