ITSM-Plattform (Service-Katalog, Tickets, Wissensdatenbank, Assets) -- AES ist ein buchbarer Service darin.
Go to file
Moe 9b8d603e74 feat(ui): Dashboard-Redesign nach Nutzer-Mockup + Kanban, Suche, Pagination, Bulk-Aktionen
Angleichung an das vorgegebene UI-Mockup (Nutzer-Vorgabe 2026-07-15):
- Sidebar-Gruppen Favoriten (Dashboard, Meine/Offene/Ueberfaellige Tickets),
  Service Management (inkl. Kanban Board), Wissen (Artikel/FAQs), Assets
  (Asset-Liste/Konfigurationselemente/Software/Vertraege via CMDB-Typfilter),
  Administration; rundes Logo, Nutzer-Chip mit Avatar-Initialen + Rolle
- Topbar mit zentraler Suche (fuehrt zur Ticket-Suche)
- KPI-Karten mit Trend-Angabe und Sparkline (echte Tagesserien der letzten
  8 Tage aus created/first_response/resolved/due-Zeitstempeln), zusaetzliche
  Karte 'Durchschn. Antwortzeit' (Ø erste Reaktion, 30 Tage)
- Ticket-Tabelle: Checkbox-Spalte mit Alles-Auswahl, Aktionen-Dropdown
  (Bulk-Statuswechsel, ITIL-Uebergaenge werden serverseitig erzwungen und
  Verstoesse je Ticket gemeldet), Ticket-Nr.-Hervorhebung, Avatar-Initialen,
  Pagination (12/Seite, '1-12 von N Tickets')
- Filter-Tabs inkl. Geschlossen; Suchfeld (Titel/Nr./Beschreibung),
  Filter bleiben ueber Tabs/Pagination erhalten
- 'Neues Ticket' als Modal (Button oben rechts) statt Inline-Formular
- Detail-Panel wie Mockup: Kopf mit Ticket-Nr., Service-Block, Feldraster,
  Tabs Details/Aktivitaeten/Anhaenge/Aufgaben (letzte zwei als Platzhalter
  gekennzeichnet), SLA-Chips mit Restzeit/Ueberschreitung ('1h 32m
  verbleibend' / 'um 2h ueberschritten'), Footer 'Status aendern'-Dropdown
  (nur erlaubte ITIL-Uebergaenge) + 'Kommentar hinzufuegen'
- Kanban Board (/tickets/board): Spalten Offen/In Bearbeitung/Warten/Geloest
- CSP: style-src um 'unsafe-inline' ergaenzt (Inline-style-Attribute der
  Templates, z. B. Fortschrittsbalken); Inline-Skripte bleiben verboten

Tests: cargo test 7/7, E2E-Smoke 39/39 (inkl. neuer UI-/Such-/Board-Checks).
2026-07-15 05:23:26 +02:00
deploy feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
src feat(ui): Dashboard-Redesign nach Nutzer-Mockup + Kanban, Suche, Pagination, Bulk-Aktionen 2026-07-15 05:23:26 +02:00
static feat(ui): Dashboard-Redesign nach Nutzer-Mockup + Kanban, Suche, Pagination, Bulk-Aktionen 2026-07-15 05:23:26 +02:00
templates feat(ui): Dashboard-Redesign nach Nutzer-Mockup + Kanban, Suche, Pagination, Bulk-Aktionen 2026-07-15 05:23:26 +02:00
.gitignore feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
Cargo.lock feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
Cargo.toml feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
Dockerfile feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
README.md feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00
schema.sql feat!: Rust-Rewrite (axum/PostgreSQL) mit ITIL-v3/v4-Prozessen und Sicherheits-Haertung 2026-07-15 05:02:02 +02:00

README.md

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.

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