# ITSM ITSM-Plattform (Service-Katalog, Tickets, Wissensdatenbank, CMDB) -- AES ist ein buchbarer Service darin. Eigenstaendiges Produkt, mandantenfaehig. **Stack:** Rust (axum + tokio-postgres + askama), PostgreSQL 16. Rust-Rewrite 2026-07-15; zuvor Python/Flask -- Bestandsdaten (inkl. Passwort- Hashes) werden ohne Migration weiterverwendet, alte Werkzeug-PBKDF2-Hashes werden beim ersten Login transparent auf Argon2id umgestellt. ## ITIL-Ausrichtung (v3-Prozesse / v4-Practices) - **Rollen:** admin (Service Owner/IT-Leitung), change_manager (Change Enablement/CAB), agent (Service Desk), user (Requester/Self-Service: eigene Tickets, nur freigegebene Wissensartikel). - **Incident/Service Request:** getrennte Kategorien; Statusmodell mit erzwungenen Uebergaengen (Offen -> In Bearbeitung -> Warten/Geloest -> Geschlossen; Reopen von Geloest). - **Prioritaet:** automatisch aus der Impact-x-Urgency-Matrix (v3 SO 4.2.5.4). - **Change Enablement:** Standard (vorautorisiert) / Normal (CAB-Freigabe durch change_manager/admin) / Emergency (sofort, nachtraegliche ECAB-Freigabe). Umsetzung + Repo-Aenderungen erst nach Freigabe. - **Problem Management:** Incident-Problem-Verknuepfung, Known-Error-Status. - **SLA (Service Level Management):** Antwort-/Loesungsfristen mit Zeitstempeln (erste Reaktion, Loesung, Schliessung), Ueberfaelligkeit. - **Knowledge Management:** Freigabe-Workflow (Entwurf -> Freigegeben). - **SACM/CMDB:** CIs, Beziehungen, Ticket-CI-Verknuepfung. - **Continual Improvement:** Dashboard mit SLA-Erfuellung, MTTR, Verteilungen. ## Sicherheit - Serverseitige Sessions in PostgreSQL (Cookie enthaelt nur ein Zufallstoken, DB speichert dessen SHA-256; Logout/Sperrung widerruft sofort). - CSRF-Schutz fuer alle zustandsaendernden Requests (Formular-Feld/Header). - Login-Rate-Limit (pro E-Mail und IP, DB-gestuetzt), Audit-Log aller sicherheitsrelevanten Aktionen (ISO 27001 A.12.4 / DSGVO Art. 30). - Argon2id-Passwoerter, Policy: min. 12 Zeichen. - Security-Header (CSP ohne Inline-JS, X-Frame-Options, nosniff, HSTS bei ITSM_HTTPS=1); X-Forwarded-For nur bei ITSM_TRUSTED_PROXY_COUNT > 0. - SSRF-Guard fuer Service-Endpoint-URLs (Link-Local/Metadaten blockiert, Anlegen admin-only); Erreichbarkeitspruefung parallel + gecacht. - Repo-Bearbeitung aus Tickets (Forge-Contents-API, phase-008): nur admin/change_manager, nur aus freigegebenen Change-Tickets, jede Aenderung zwingend im Worklog dokumentiert. - DSGVO-Retention: automatische Bereinigung von Tickets/Audit-Log gemaess Mandanten-Fristen; Login-Versuche nach 7 Tagen, abgelaufene Sessions sofort. ## Dokumentation - `docs/ARCHITEKTUR.md` — technische Architektur (Module, Datenmodell, Request-Fluss, RBAC-Matrix, ITIL-Abbildung) - `docs/BETRIEB.md` — Betriebshandbuch (ENV, Deployment/Update, Backup, Troubleshooting) - `docs/adr/` — Architecture Decision Records (ADR-001 bis ADR-008) - Prozess-Doku nach AES-Regelwerk (Projektbeschreibung, Phasen-/Forensik-Reports, Tasks): `mscadm/AES`, Branch `dev`, Verzeichnis `projects/itsm/` ## Betrieb # Entwicklung DATABASE_URL=postgresql://itsm:pw@localhost:5432/itsm cargo run # Produktion: siehe deploy/docker-compose.yml (Multi-Stage-Build, # kein Code-Pull beim Container-Start mehr) ENV-Variablen: siehe src/config.rs. Schema-Migrationen laufen idempotent beim Start (schema.sql). Backup: deploy/backup.sh (taeglicher pg_dump, 14 Tage). ## Tests cargo test # ITIL-Statusmodell, Prioritaetsmatrix, Change-Gate, # Argon2/Werkzeug-Hash-Verifikation, SSRF-Guard, Policy