Files
IT-Nexus/frontend/public/DOKUMENTATION.md

1602 lines
60 KiB
Markdown
Raw Permalink Normal View History

2026-06-01 20:49:07 +02:00
# IT Nexus Systemdokumentation
**Version:** 2.0 | **Stand:** Mai 2026 | **Entwickelt von:** Simon Grüßing, Cereda Systems GmbH
---
## Inhaltsverzeichnis
1. [Systemübersicht](#1-systemübersicht)
2. [Zugang & Benutzerrollen](#2-zugang--benutzerrollen)
3. [Ticketsystem Übersicht](#3-ticketsystem--übersicht)
4. [Ticket erstellen](#4-ticket-erstellen)
5. [Ticket-Ansichten](#5-ticket-ansichten)
6. [Ticket-Detail & Bearbeitung](#6-ticket-detail--bearbeitung)
7. [Kommentare & Kommunikation](#7-kommentare--kommunikation)
8. [KI-Integration](#8-ki-integration)
9. [User-Portal (Benutzer)](#9-user-portal-benutzer)
10. [E-Mail-Integration](#10-e-mail-integration)
11. [Benachrichtigungen](#11-benachrichtigungen)
12. [Admin-Einstellungen](#12-admin-einstellungen)
13. [Weitere Module](#13-weitere-module)
14. [IT Nexus Scanner App (Android)](#14-it-nexus-scanner-app-android)
15. [Rollen-Berechtigungsmatrix](#15-rollen-berechtigungsmatrix)
16. [ISO 27001 Zertifizierungsplanung](#16-iso-27001-zertifizierungsplanung)
17. [Risikoanalyse](#17-risikoanalyse)
18. [Entra ID Rechteverwaltung](#18-entra-id-rechteverwaltung)
19. [Agent Monitoring](#19-agent-monitoring)
20. [Externe Monitoring-Alerts](#20-externe-monitoring-alerts)
21. [Patch Management](#21-patch-management)
22. [Ankündigungen](#22-ankündigungen)
---
## 1. Systemübersicht
IT Nexus ist ein internes IT-Ticketsystem und Verwaltungsportal der Cereda Systems GmbH. Es ermöglicht Mitarbeitern, IT-Probleme zu melden, und dem IT-Support-Team, diese effizient zu bearbeiten.
**Erreichbar unter:** `https://it-nexus.cereda-systems.de`
### Kernfunktionen
| Modul | Beschreibung |
|---|---|
| **Ticketsystem** | Erstellen, Bearbeiten und Verwalten von IT-Supportanfragen |
| **User-Portal** | Vereinfachte Oberfläche für Endnutzer zur Anfragenstellung |
| **KI-Assistent** | Claude-basierte Analysen, Lösungsvorschläge und Chat-Hilfe |
| **E-Mail-Integration** | Eingehende Mails werden automatisch zu Tickets |
| **Asset-Verwaltung** | Hardware und Software-Inventar |
| **FIDO-Keys** | Verwaltung von Sicherheitsschlüsseln |
| **Lifecycle** | On- und Offboarding-Prozesse |
| **IT Übersicht** | Strategische IT-Themen für monatliche GF-Meetings (JF IT) |
| **Wissensdatenbank** | Dokumentierte Lösungen für häufige Probleme |
| **ISO 27001 Planung** | Fortschrittsverfolgung der ISO-Zertifizierungsaufgaben |
| **Risikoanalyse** | Manuelle und automatische IT-Risikoerfassung mit M365-Sync |
| **Entra ID Rechte** | Übersicht und Verwaltung von Benutzerrechten in Microsoft Entra ID |
| **Agent Monitoring** | Echtzeit-Überwachung aller Windows-Geräte via C# .NET Agent (v2.0.0) |
| **Patch Management** | Staged Rollout von Windows Updates mit Gruppen, Policies und Befehlen |
| **Ankündigungen** | Desktop-Benachrichtigungen auf verwalteten Geräten via Agent |
---
## 2. Zugang & Benutzerrollen
### Login
1. `https://it-nexus.cereda-systems.de/login` aufrufen
2. Benutzername und Passwort eingeben
3. Bei erstem Login: Passwort-Änderung erforderlich
### Benutzerrollen
Das System kennt 8 Rollen mit unterschiedlichen Berechtigungen:
| Rolle | Bezeichnung | Zugang |
|---|---|---|
| **super_admin** | 👑 Super Administrator | Vollzugriff auf alle Funktionen inkl. Systemeinstellungen |
| **admin** | 🛡️ Administrator | Vollzugriff, außer einige Super-Admin-Funktionen |
| **support** | 🎧 IT-Support | Tickets bearbeiten, kommentieren, zuweisen; sieht IT-Aufgaben im Onboarding |
| **bearbeiter** | 🔧 Bearbeiter | Assets und FIDO-Keys verwalten, Tickets einsehen |
| **techniker** | 🏭 Techniker / Produktion | Assets (Maschinen, Werkzeuge) anlegen und Prüfprotokoll führen; vereinfachter Wizard |
| **benutzer** | 👤 Endnutzer | Nur User-Portal eigene Anfragen stellen und einsehen |
| **hr_personal** | 🧑‍💼 HR / Personal | Sieht und bearbeitet HR-Aufgaben im Onboarding-Protokoll |
| **buchhaltung** | 💶 Buchhaltung / Lohn | Sieht und bearbeitet Buchhaltungs-Aufgaben im Onboarding-Protokoll |
> **Hinweis:** Endnutzer sehen nach dem Login automatisch das User-Portal (`/portal`) statt das Dashboard.
### Passwort-Anforderungen
- Mindestens 8 Zeichen
- Mindestens 1 Großbuchstabe, 1 Kleinbuchstabe, 1 Zahl, 1 Sonderzeichen
---
## 3. Ticketsystem Übersicht
### Ticket-Status
Jedes Ticket durchläuft folgende Status-Stufen:
```
Offen → In Bearbeitung → Warten auf Mitarbeiter ⟺ Warten auf Support → Geschlossen
```
| Status | Beschreibung | Farbe |
|---|---|---|
| **Offen** | Neu eingegangen, noch nicht bearbeitet | Grau |
| **In Bearbeitung** | Support hat das Ticket übernommen | Blau |
| **Warten auf Mitarbeiter** | Support hat geantwortet, wartet auf Rückmeldung | Orange |
| **Warten auf Support** | Nutzer hat geantwortet, Support ist dran | Gelb |
| **Geschlossen** | Problem gelöst | Grün |
#### Automatische Status-Änderungen beim Kommentieren
- **Support schreibt** öffentlichen Kommentar → Status wechselt zu „Warten auf Mitarbeiter"
- **Nutzer/Bearbeiter schreibt** → Status wechselt zu „Warten auf Support"
- **Nutzer schreibt** auf geschlossenes Ticket → Ticket wird automatisch **wieder geöffnet**
### Prioritäten
| Priorität | Symbol | Einsatz |
|---|---|---|
| 🟢 Niedrig | Grün | Keine Dringlichkeit, kein Produktionsausfall |
| 🔵 Mittel | Blau | Standard-Anfragen |
| 🟠 Hoch | Orange | Wichtige Systeme betroffen |
| 🔴 Kritisch | Rot | Produktionsausfall, sofortiger Handlungsbedarf |
### SLA-Überwachung
Das System überwacht automatisch die Bearbeitungszeit:
- **> 24 Stunden** ohne Reaktion → orangefarbene SLA-Warnung auf der Ticket-Karte
- **> 48 Stunden** → rote SLA-Warnung
---
## 4. Ticket erstellen
### Über die Tickets-Seite (Staff)
1. **Tickets** in der Sidebar anklicken
2. **+ Neues Ticket** Button klicken
3. Formular ausfüllen:
| Feld | Pflicht | Beschreibung |
|---|---|---|
| **Vorlage** | Nein | Vorausgefüllte Vorlage wählen (z.B. Passwort-Reset) |
| **Titel** | Ja | Kurze Beschreibung des Problems |
| **Beschreibung** | Nein | Detaillierte Schilderung |
| **Kategorie** | Ja | Themenbereich (konfigurierbar in Einstellungen) |
| **Priorität** | Ja | Dringlichkeit (Standard: Mittel) |
| **Betroffenes Asset** | Nein | Verknüpfung mit einem Gerät/Asset |
| **Anfragender Name** | Nein | Wird automatisch aus dem Login befüllt |
| **Anfragender E-Mail** | Nein | Für externe Benachrichtigungen |
4. **Ticket erstellen** klicken
### Über das User-Portal (Endnutzer)
Endnutzer können Anfragen über das vereinfachte Portal stellen:
1. **Neue Anfrage stellen** klicken
2. Thema wählen (Assistent führt durch häufige Probleme)
3. Geführte Fragen beantworten → Ticket wird automatisch ausgefüllt
4. Alternativ: Freies Formular für individuelle Anfragen
### Ticket-Vorlagen
Standard-Vorlagen erleichtern das Erstellen wiederkehrender Anfragen:
- Passwort-Reset
- VPN-Probleme
- Drucker defekt
- Neues Gerät einrichten
- Software-Installation
- SelectLine Fehler
- E-Mail Problem
- Netzwerk-Ausfall
> Vorlagen können unter **⚙️ → System → Einstellungen** angepasst werden.
### Ticket-Nummer
Jedes Ticket erhält automatisch eine eindeutige Nummer im Format **TK-XXXX** (z.B. `TK-0042`).
---
## 5. Ticket-Ansichten
### Tabellen-Ansicht
Standardansicht mit allen Tickets als Liste:
- Spalten: Ticket-Nr., Titel, Status, Priorität, Kategorie, Zugewiesen an, Erstellt
- Klick auf eine Zeile öffnet die Detail-Ansicht
### Kanban-Board
Visuelles Board mit 4 Spalten (eine pro Status, ohne „Geschlossen"):
```
[ Offen ] [ In Bearbeitung ] [ Warten auf Mitarbeiter ] [ Warten auf Support ]
```
- Tickets können per **Drag & Drop** zwischen Spalten verschoben werden
- Schnell-Status-Buttons direkt auf der Karte
- Ticket schließen über „✓ Schließen" mit optionalem Abschluss-Kommentar
### Metriken-Ansicht
Dashboard mit Kennzahlen:
- Gesamt / Offen / In Bearbeitung / Kritisch
- Klick auf Kacheln filtert die Ticket-Liste
### Suche & Filter
- **Freitextsuche**: Sucht in Titel, Beschreibung, Ticket-Nr., Anfragender
- **Status-Filter**: Schnellfilter per Klick auf Status-Badge
- **Priorität**: Dropdown-Filter
- **Kategorie**: Dropdown-Filter
### Bulk-Aktionen
Mehrere Tickets gleichzeitig bearbeiten:
1. Checkboxen aktivieren
2. Aktion wählen: Status setzen, Priorität setzen, Zuweisen, Schließen, Löschen
3. Ausführen klicken
---
## 6. Ticket-Detail & Bearbeitung
Die Detail-Seite eines Tickets (`/tickets/:id`) zeigt:
### Kopfbereich
- Ticket-Nummer, Titel, Status-Badge, Priorität
- Erstellt von / Erstellt am / Zugewiesen an
- Anfragender (Name + E-Mail)
- Betroffenes Asset (falls verknüpft)
### Bearbeitungsbereich (Staff)
**Status ändern:** Dropdown direkt im Header
**Priorität ändern:** Dropdown direkt im Header
**Zuweisen:** Mitarbeiter aus der Dropdown-Liste auswählen → Benachrichtigung geht automatisch raus
**Kategorie:** Änderbar im Bearbeitungsmodus
### KI-Analyse
Neue Tickets werden automatisch von Claude analysiert. Im Detail werden angezeigt:
- **Erkannte Kategorie** (automatisch)
- **Empfohlene Priorität**
- **Lösungsvorschlag** basierend auf dem Problem und der Wissensdatenbank
### Ticket-Verknüpfungen
Tickets können miteinander verknüpft werden (z.B. „Verwandt mit TK-0023").
### PDF-Export
Ticket als PDF exportieren über den **PDF**-Button (inkl. Kommentarverlauf).
### Ticket schließen
- Über **Schließen**-Button oder Status-Änderung
- Optionaler Abschluss-Kommentar
- Geschlossene Tickets erscheinen nur noch in der Wissensdatenbank
---
## 7. Kommentare & Kommunikation
### Öffentliche Kommentare
Sichtbar für alle (inkl. Anfragenden via E-Mail-Benachrichtigung):
- Werden als E-Mail an den Anfragenden gesendet
- Lösen Auto-Status-Änderungen aus
### Interne Notizen
Nur für Staff-Rollen sichtbar, erkennbar an grauem Hintergrund:
- Kein E-Mail-Versand
- Für interne Abstimmung
### Markdown-Unterstützung
Kommentare unterstützen einfaches Markdown:
- `**fett**`, `*kursiv*`
- `` `code` ``
- Zeilenumbrüche
### Live-Updates (SSE)
Die Kommentar-Sektion aktualisiert sich in Echtzeit ohne Browser-Reload (Server-Sent Events). Neue Kommentare erscheinen sofort.
### KI-Antwort
**KI-Antwort vorschlagen** Button generiert eine vorformulierte Antwort an den Nutzer basierend auf dem Ticket-Inhalt und der Wissensdatenbank. Text kann vor dem Absenden bearbeitet werden.
---
## 8. KI-Integration
IT Nexus integriert Claude (claude-sonnet-4-6) von Anthropic für intelligente Ticket-Unterstützung.
### Automatische Ticket-Analyse
Bei jedem neuen Ticket analysiert die KI automatisch (im Hintergrund):
- Passendes Themengebiet / Kategorie
- Empfohlene Priorität
- Ersten Lösungsvorschlag
Das Ergebnis erscheint als **„KI-Vorschlag"** im Ticket-Detail.
### KI-Assistent Chat (`/ai`)
Interaktive Chat-Seite für Staff-Rollen:
- Freie Fragen zum IT-Support stellen
- KI hat Zugriff auf die Wissensdatenbank
- Konversationsverlauf im Browser-Tab
### Wissensdatenbank
Unter **Wissensdatenbank** können Admins Artikel verwalten und per KI-Import befüllen. Die KI nutzt alle Einträge als Kontext bei Ticket-Analysen und Chat-Antworten.
#### Import-Funktionen
| Methode | Beschreibung |
|---|---|
| **Text einfügen** | Direkt Text/Dokumentation einfügen → KI erstellt Artikel |
| **Datei hochladen** | PDF, DOCX, EML, TXT → KI extrahiert Artikel |
| **URL importieren** | Einzelne Webseite abrufen und importieren |
| **Website crawlen** | BFS-Crawler folgt Links auf gleicher Domain (bis 100 Seiten) |
Bereits importiert: **SelectLine Online-Hilfe** (Wawi, Rewe, Produktion, CRM, Kasse, Artikelmanager, Mobile) → 335 Artikel.
### Floating Chat-Widget
Kleines Chat-Icon unten rechts (nur für Staff):
- Schneller KI-Zugriff ohne Seitenwechsel
- Nicht sichtbar auf öffentlichen Seiten (/health, /login)
---
## 9. User-Portal (Benutzer)
Endnutzer gelangen nach dem Login direkt zum Portal unter `/portal`.
### Übersicht (Header-Kacheln)
| Kachel | Inhalt |
|---|---|
| **Anfragen** | Anzahl aller eigenen Tickets |
| **Aktiv** | Offene / in Bearbeitung befindliche Tickets |
| **Geräte** | Zugewiesene Unternehmensgeräte |
| **FIDO-Keys** | Eigene Sicherheitsschlüssel |
### Schnellzugriff
- **Neue Anfrage stellen** Öffnet Ticket-Erstellungsassistent
- **KI-Hilfe** Öffnet KI-Chat-Tab direkt im Portal
### Tab-Navigation
**Anfragen-Tab:**
- Alle eigenen Tickets mit Status und Datum
- Filter: Aktiv / Alle
- Klick auf Anfrage öffnet die Detail-Seite
**Geräte-Tab:**
- Zugewiesene Assets/Geräte
**FIDO-Keys-Tab:**
- Eigene Sicherheitsschlüssel einsehen
**KI-Hilfe-Tab:**
- Direkter KI-Chat integriert im Portal
**Einstellungen-Tab:**
- E-Mail-Benachrichtigungen aktivieren/deaktivieren (globaler Toggle)
- Bei aktivierten Benachrichtigungen erhält der Nutzer E-Mails bei: Ticket-Bestätigung, neuen Kommentaren, Statusänderungen und Zufriedenheits-Umfragen
> **Hinweis:** Staff-Benutzer (admin, support, bearbeiter) verwalten ihre Benachrichtigungen unter **Mein Konto** (Hover auf Benutzername → Mein Konto).
### Ticket-Assistent (Wizard)
Der Assistent führt Nutzer durch häufige Probleme:
1. **Thema wählen**: Passwort, E-Mail, VPN, Drucker, Software, Hardware, Netzwerk, Sonstiges
2. **Geführte Fragen**: Konkrete Fragen zum gewählten Thema (z.B. „Welche Fehlermeldung erscheint?")
3. **Ticket wird automatisch ausgefüllt** und kann vor dem Absenden noch bearbeitet werden
Bei Auswahl „Defektes Gerät" wird direkt ein Foto-Upload-Formular angeboten.
---
## 10. E-Mail-Integration
### Eingehende E-Mails → Tickets
Das System überwacht ein E-Mail-Postfach alle 30 Sekunden und erstellt aus eingehenden Mails automatisch Tickets:
- **Betreff** → Ticket-Titel
- **Absender** → Anfragender
- **Nachrichtentext** → Beschreibung
- **Anhänge** → werden gespeichert und verknüpft
Antwortet ein Nutzer später per E-Mail auf eine Ticket-Benachrichtigung, wird die Antwort automatisch als Kommentar hinzugefügt.
**Bounce-Schutz:** Automatische Antworten und Bounce-Mails werden erkannt und ignoriert.
### Ausgehende Benachrichtigungen
Das System sendet automatisch E-Mails bei:
| Ereignis | Empfänger |
|---|---|
| Ticket erstellt | Anfragender (Bestätigung mit TK-Nummer) |
| Ticket erstellt | Staff mit aktiviertem „Neues Ticket"-Toggle |
| Ticket zugewiesen | Zugewiesener Mitarbeiter (wenn Toggle aktiv) |
| Öffentlicher Kommentar von Support | Anfragender |
| Antwort des Anfragenden | Zugewiesener Staff (wenn Toggle aktiv) |
| Ticket geschlossen | Anfragender |
| Ticket eskaliert (SLA überschritten) | Admin-Team |
### Wöchentlicher Bericht
Jeden Montag um 08:00 Uhr wird ein Wochen-Zusammenfassungsbericht an Staff-Mitglieder mit aktiviertem Wochenbericht-Toggle versendet.
---
## 11. Benachrichtigungen
### Browser-Benachrichtigungen (Staff)
Das System überprüft alle 15 Sekunden auf neue Tickets und Aktivitäten:
- **Glocken-Icon** in der Topbar zeigt Anzahl neuer Ereignisse (roter Badge)
- Klick öffnet Benachrichtigungs-Dropdown
- Browser-Benachrichtigungen (falls Berechtigung erteilt)
Benachrichtigungen erscheinen bei:
- Neuen Tickets
- Status-Änderungen
- Neuen Kommentaren
### E-Mail-Benachrichtigungen (Staff Mein Konto)
Staff-Benutzer können ihre E-Mail-Benachrichtigungen granular steuern unter **Mein Konto** (Hover auf Benutzername oben rechts → 👤 Mein Konto):
| Benachrichtigung | Standard | Beschreibung |
|---|---|---|
| Neues Ticket eingegangen | Aus | Wenn ein neues Ticket erstellt wird |
| Ticket zugewiesen | Ein | Wenn dir ein Ticket zugewiesen wird |
| Neue Antwort auf Ticket | Ein | Wenn ein Mitarbeiter auf ein zugewiesenes Ticket antwortet |
| Wöchentlicher Report | Ein | Montags: Zusammenfassung offener/geschlossener Tickets |
---
## 12. Admin-Einstellungen
Erreichbar über: **⚙️ (Zahnrad) → System → Einstellungen**
Zugang: nur `super_admin` und `admin`
### Tab: Kategorien
Ticket-Kategorien verwalten:
| Aktion | Beschreibung |
|---|---|
| **+ Kategorie hinzufügen** | Name + Emoji-Icon festlegen |
| **Bearbeiten** | Name oder Icon ändern |
| **Löschen** | Kategorie entfernen (bestehende Tickets behalten die Kategorie als Text) |
**Standard-Kategorien:** Allgemein, Software, Hardware, Netzwerk, SelectLine
### Tab: Vorlagen
Ticket-Vorlagen für häufige Anfragen verwalten:
| Feld | Beschreibung |
|---|---|
| **Anzeige-Name** | Text im Dropdown „Vorlage wählen" |
| **Ticket-Titel** | Wird als Titel vorausgefüllt |
| **Beschreibung** | Vorlagentext mit Lücken für den Nutzer |
| **Kategorie** | Automatisch zugewiesene Kategorie |
| **Priorität** | Standard-Priorität für diesen Typ |
---
## 13. Weitere Module
### System-Übersicht (`/system`)
Hub für Admin-Funktionen:
- **Server Health**: Echtzeit-Status aller Services (API, Datenbank, Antwortzeit)
- **Wartungskalender**: Überfällige Asset-Prüfungen
- **Einstellungen**: Kategorien & Vorlagen
- **API Dokumentation**: Alle 78 API-Endpunkte mit Beschreibung und Beispielen
### Asset-Verwaltung (`/assets`)
Die Asset-Verwaltung deckt Hardware-Inventar für IT und Produktion ab. Admins und Bearbeiter sehen alle Assets; die Rolle `techniker` sieht und verwaltet nur Produktions-/Techniker-Assets über einen vereinfachten Wizard.
#### Asset-Typen
| Bereich | Typen |
|---|---|
| **IT** | Notebook, Monitor, Headset, Other |
| **Produktion / Techniker** | Maschine ⚙️, Werkzeug 🔧, Sonstiges 📦 |
#### Abteilungen (Bereich)
Assets werden einem Bereich zugeordnet: **IT**, **Produktion** oder **Techniker**.
#### Asset anlegen IT-Rolle
Standardformular mit: Typ, Name, Bereich, Seriennummer (Pflicht), Modell, Status, Kaufdatum, Beschreibung, TeamViewer-ID sowie Wartungsdaten.
#### Asset anlegen Techniker/Produktion-Rolle (Wizard)
Für die Rolle `techniker` öffnet sich ein 3-stufiger Wizard statt des Standardformulars:
| Schritt | Inhalt |
|---|---|
| **1. Vorlage** | Vorlage wählen: Maschine ⚙️, Werkzeug 🔧, Sonstiges 📦 |
| **2. Details** | Typ, Name*, Bereich (Produktion/Techniker), Modell, Seriennummer (optional wird automatisch vergeben wenn leer), Status, Kaufdatum, Beschreibung |
| **3. Wartung** | Letzte Wartung, Nächste Prüfung (auto-berechnet), Intervall (Monate), Wartungsnotizen |
> **Seriennummer:** Wenn leer, wird automatisch eine eindeutige Seriennummer im Format `AUTO-{Timestamp}-{Zufallszahl}` vergeben.
> **Bearbeitung:** Beim Bearbeiten eines bestehenden Assets startet der Wizard direkt bei Schritt 2 (Vorlage-Schritt wird übersprungen).
#### Automatische Berechnung der nächsten Prüfung
Sobald **Letzte Wartung** und **Intervall (Monate)** gesetzt sind, berechnet das System automatisch das nächste Fälligkeitsdatum:
```
Nächste Prüfung = Letzte Wartung + Intervall (Monate)
```
Die Berechnung erfolgt sowohl im Wizard (clientseitig) als auch im Backend (serverseitig) als Fallback.
#### Wartungs-E-Mail-Benachrichtigung
Das System sendet täglich um **08:00 Uhr** eine E-Mail-Benachrichtigung an alle aktiven Benutzer mit der Rolle `techniker`, wenn für Assets (Bereich: Produktion oder Techniker) die nächste Prüfung **heute fällig** ist.
Die E-Mail enthält eine Liste aller fälligen Assets mit Name, Typ und Seriennummer.
#### Prüfprotokoll
Jedes Asset verfügt über ein Prüfprotokoll (erreichbar über das **⋮ Menü → 🔍 Prüfprotokoll**):
- **Prüfungshistorie**: Alle vergangenen Prüfungen chronologisch sortiert (neueste zuerst)
- **Farbcodierung**: Grüner Rand = bestanden, roter Rand = nicht bestanden
- **Neue Prüfung erfassen** (Toggle-Formular):
| Feld | Beschreibung |
|---|---|
| **Prüfdatum** | Datum der Prüfung (Standard: heute) |
| **Ergebnis** | Bestanden / Nicht bestanden |
| **Nächste Fälligkeit** | Optionales Datum der nächsten Prüfung (überschreibt Asset-Feld) |
| **Notizen** | Prüfer, Befunde, VDE-/UVV-Prüfung etc. |
Nach dem Speichern einer Prüfung wird das Feld `next_maintenance_date` des Assets automatisch aktualisiert, sofern eine nächste Fälligkeit angegeben wurde.
#### Aktionen-Menü (⋮)
Alle Aktionen pro Asset sind in einem **⋮ Dropdown-Menü** zusammengefasst:
| Aktion | Symbol | Beschreibung |
|---|---|---|
| Asset bearbeiten | ✏️ | Bearbeitungsformular/-Wizard öffnen |
| Übergabeprotokoll | 📋 | Übergabe-PDF generieren und herunterladen |
| Asset-Label | 🏷️ | Label/Aufkleber-PDF generieren |
| Prüfprotokoll | 🔍 | Prüfhistorie und neue Prüfung erfassen |
| Asset zuweisen | 👤 | Asset einem Mitarbeiter zuweisen |
| Asset freigeben | ↩️ | Zuweisung aufheben |
| Asset löschen | 🗑️ | Asset unwiderruflich löschen |
#### Typ-Filter (rollenbasiert)
Der Typ-Filter in der Asset-Tabelle zeigt nur die für die jeweilige Rolle relevanten Typen:
- **Techniker-Rolle**: nur Maschine, Werkzeug, Sonstiges
- **Alle anderen Rollen**: alle Typen (Notebook, Monitor, Headset, Other, Maschine, Werkzeug, Sonstiges)
#### Anlagevermögen-Felder (optional, pro Asset)
Jedes Asset kann mit buchhalterischen Feldern ergänzt werden:
| Feld | Beschreibung |
|---|---|
| **Inventarnummer** | Eindeutige Kennnummer im Format `ANL-0001`; wird beim Anlegen automatisch vergeben (überschreibbar) |
| **Anschaffungswert (€)** | Kaufpreis des Assets |
| **Nutzungsdauer (Jahre)** | Planmäßige Nutzungsdauer für die AfA-Berechnung |
| **Restwert (€)** | Erwarteter Restwert nach Ablauf der Nutzungsdauer (Standard: 0) |
Diese Felder erscheinen im AssetModal unter dem ausklappbaren Abschnitt **„Anlagevermögen (optional)"** sowie in Schritt 3 des Produktion-Wizards. Nur Rollen mit Schreibrecht auf Assets (super_admin, admin, bearbeiter) können diese Felder bearbeiten.
#### Weitere Funktionen
- Zuweisung an Mitarbeiter mit Übergabeprotokoll-PDF
- Asset-Label/Aufkleber-PDF (QR-Code + Details)
- CSV-Export aller Assets
- Intune-Import (Azure/Microsoft Endpoint Manager)
- Verlaufshistorie der Zuweisungen pro Asset
---
### Anlagevermögen (`/anlagevermoegen`)
Buchhalterische Übersicht aller Assets mit eingetragenem Kaufpreis. Zugänglich für `super_admin`, `admin` und `buchhaltung`.
#### AfA-Berechnung (lineare Abschreibung)
```
AfA/Jahr = (Anschaffungswert Restwert) ÷ Nutzungsdauer
Buchwert heute = MAX(Restwert, Anschaffungswert AfA/Jahr × vergangene Jahre)
Abgeschrieben am = Kaufdatum + Nutzungsdauer Jahre
```
Die Berechnung erfolgt ausschließlich im Frontend (keine neuen Backend-Endpunkte).
#### Übersichts-Kacheln
| Kachel | Inhalt |
|---|---|
| **Gesamtanschaffungswert** | Summe aller Kaufpreise |
| **Buchwert heute** | Summe der aktuellen Buchwerte |
| **Kumulierte AfA** | Summe der bereits abgeschriebenen Beträge |
#### Tabellenspalten
Inv.-Nr. · Name · Typ · Bereich · Kaufdatum · Anschaffungswert · Nutzungsdauer · AfA/Jahr · Buchwert heute · Abgeschrieben am · Status (Aktiv / Abgeschrieben)
#### CSV-Export
- Dateiname: `anlagevermoegen_YYYY-MM-DD.csv`
- Encoding: UTF-8 mit BOM (für korrekte Excel-Öffnung)
- Separator: `;`
- Dezimaltrennzeichen: `,` (deutsche Notation)
- Enthält alle sichtbaren Tabellenfelder inkl. Inventarnummer
#### Inventarnummer-Automatik
Beim Erstellen eines neuen Assets wird automatisch die nächste freie Nummer vergeben:
```
ANL-0001, ANL-0002, ANL-0003, …
```
Die Nummer kann im Modal manuell überschrieben werden. Beim Aktualisieren eines bestehenden Assets bleibt die vorhandene Nummer erhalten.
### FIDO-Keys (`/fido-keys`)
- Sicherheitsschlüssel verwalten (Yubikey, etc.)
- Zuweisung an Benutzer
- Status: aktiv / inaktiv
### Lifecycle (`/lifecycle`)
Onboarding, Offboarding und Prozess-Konfiguration in einer Seite mit drei Tabs:
| Tab | Inhalt |
|---|---|
| 🟢 Onboarding | Liste aller Onboarding-Protokolle |
| 🔴 Offboarding | Liste aller Offboarding-Protokolle |
| ⚙️ Prozesse | Konfigurierbares Checklisten-System |
#### Onboarding-Wizard
Neues Onboarding wird per 2-stufigem Wizard angelegt:
**Schritt 1 Persönliche Daten:**
- Vor- und Nachname, private E-Mail, Telefon, Adresse
- **Abteilung**: Dropdown aus konfigurierbaren Firmenabteilungen (Wartung, TBO/Service, Vertrieb AD, Vertrieb ID, KAW, IT, Verwaltung, Produktion verwaltbar im Tab ⚙️ Prozesse)
- Position, Startdatum, Arbeitsort (Büro / Homeoffice / Hybrid)
- Stundenmodell (Vollzeit 40h/38h, Teilzeit 30h/20h, Minijob)
- Urlaubsmodell (2530 Tage oder gesetzlich)
- Interne Notizen
**Schritt 2 Abteilungen & Vorgesetzter:**
- Vorgesetzter (VG): Namenssuche in Microsoft Entra (Azure AD) Name eingeben, „Suchen", aus Trefferliste wählen; alternativ aus IT-Nexus-Systembenutzern wählbar
#### Konfigurierbares Checklisten-System (Tab ⚙️ Prozesse)
Jede Firmenabteilung hat eine eigene Checkliste, die von den zuständigen Rollen gepflegt wird:
**Struktur:**
- **Links (Sidebar)**: Firmenabteilungen (wo der MA eingesetzt wird)
- **Rechts**: Aufgaben der gewählten Abteilung, gruppiert nach zuständigem Team
**Zuständige Teams:**
| Team | Icon | Bearbeitet von Rolle |
|---|---|---|
| IT | 💻 | `support` |
| HR / Personal | 🧑‍💼 | `hr_personal` |
| Buchhaltung | 💶 | `buchhaltung` |
- Jede Rolle sieht und bearbeitet **nur die Aufgaben ihres Teams**
- `admin` / `super_admin` sehen alle Teams mit Team-Filter
- Abteilungen können nur von Admins hinzugefügt/bearbeitet/gelöscht werden
- Aufgaben per Drag & Drop umsortierbar
- Jede Aufgabe hat Priorität (Standard / Wichtig / Kritisch) und gilt für Onboarding, Offboarding oder beides
**Standard-Aufgaben (je Abteilung, werden beim ersten Start automatisch angelegt):**
*IT (Onboarding):* AD-Account, E-Mail, Hardware beschaffen & aufsetzen, Software, Telefon, Hardware-Übergabe, Ersten Login begleiten
*IT (Offboarding):* Konten deaktivieren, Zugriffsrechte entziehen, Hardware zurücknehmen, E-Mail-Weiterleitung
*HR (Onboarding):* Personalakte, Abteilungen informieren, Willkommens-E-Mail, Formulare, Pflichtunterweisungen, Empfang, Formulare unterzeichnen
*HR (Offboarding):* Abschlussgespräch, Arbeitszeugnis, Personalakte abschließen, SV abmelden
*Buchhaltung (Onboarding):* DATEV anlegen, Bankdaten & Steuerklasse, Lohnkonto, SV anmelden, Gehaltsabrechnung vorbereiten
*Buchhaltung (Offboarding):* Letzte Gehaltsabrechnung, DATEV-Austritt, Offene Spesen
#### Rollensichtbarkeit in der Checkliste
| Rolle | Kann abhaken |
|---|---|
| `hr_personal` | HR / Personal-Aufgaben |
| `support` | IT-Aufgaben |
| `buchhaltung` | Buchhaltungs-Aufgaben |
| `admin` / `super_admin` | Alle Aufgaben |
Aufgaben anderer Teams werden ausgegraut angezeigt (nicht editierbar).
#### Bestätigungs-E-Mail (Onboarding)
Nach Abschluss des Onboardings kann dem Mitarbeiter eine Bestätigungs-E-Mail mit einem personalisierten Link gesendet werden:
1. Onboarding-Protokoll öffnen → **📧 Protokoll zusenden**
2. Mitarbeiter erhält E-Mail mit „✅ Übergabe bestätigen"-Button
3. Klick auf den Link setzt das Protokoll auf **Abgeschlossen** und speichert den Bestätigungszeitpunkt
4. Status wird in der Tabelle und im Protokoll angezeigt (✅ Bestätigt [Datum] oder ⏳ Ausstehend)
5. E-Mail kann beliebig oft neu gesendet werden (jeder neue Link ersetzt den vorherigen)
> **Voraussetzung:** Private E-Mail-Adresse des Mitarbeiters muss im Protokoll hinterlegt sein.
#### Prozess-Kopierfunktion
Im Tab **⚙️ Prozesse** können alle Aufgaben eines Teams aus einer Abteilung in eine andere kopiert werden:
1. Quell-Abteilung in der Sidebar wählen
2. **📋 Kopieren** im Header der gewünschten Team-Gruppe klicken (IT / HR / BK getrennt)
3. Ziel-Abteilung in der Sidebar wählen
4. **📋 X Einfügen** in der Toolbar klicken → alle Aufgaben werden übertragen
#### Weitere Funktionen
- Fortschrittsbalken pro Team und Gesamtfortschritt
- Protokoll-Erstellung und Archivierung
- PDF-Export der Protokolle
- Offboarding mit Hardware-Rückgabe-Protokoll
### IT Übersicht (`/it-overview`)
Strategische Übersicht der wichtigsten IT-Themen für die monatliche JF IT (Jour Fixe mit der Geschäftsführung).
**Zugang:** `admin`, `super_admin` (Bearbeitungsrechte), `support`, `bearbeiter` (Leserechte)
#### Kanban-Board
Die Seite zeigt alle IT-Themen als Kanban-Board, gruppiert nach **Kategorien** (Spalten):
| Kategorie | Icon |
|---|---|
| Infrastruktur | 🖥️ |
| Software | 💾 |
| IT-Governance & Compliance | 🛡️ |
| Mitarbeiterschulung | 📚 |
| Sonstiges | 📋 |
#### Themen-Karten
Jede Karte zeigt:
- **Titel** mit Prioritäts-Icon
- **Status-Badge** (farbig)
- **Verantwortlicher** und **Zieldatum**
- **Quick-Status-Button**: mit einem Klick zum nächsten Status weiterschalten
- Karte anklicken → expandiert Beschreibung und Notizen
#### Status & Priorität
| Status | Farbe |
|---|---|
| Offen | Grau |
| In Planung | Blau |
| In Umsetzung | Gelb |
| Abgeschlossen | Grün |
| Priorität | Icon |
|---|---|
| Niedrig | ↓ |
| Normal | → |
| Hoch | ↑ |
| Kritisch | ⚡ |
#### Thema erstellen / bearbeiten
Das Modal bietet:
- Titel, Kategorie, Status (Chip-Auswahl), Priorität (Chip-Auswahl)
- Zieldatum, Verantwortlicher (Name oder Team)
- Beschreibung (Kontext, Hintergrund)
- Notizen / Stand (aktueller Bearbeitungsstand)
#### Statistik-Leiste
Oben auf der Seite: Gesamt-Anzahl, In Umsetzung, Abgeschlossen, Kritisch — auf einen Blick.
---
### Mein Konto (`/mein-konto`)
Zugänglich für alle eingeloggten Benutzer über **Hover auf den Benutzernamen** oben rechts in der Navbar → **👤 Mein Konto**.
**Inhalt:**
- **Profil**: Initialen-Avatar, vollständiger Name, Benutzername, E-Mail-Adresse, Rolle
- **E-Mail-Benachrichtigungen**: Granulare Einstellungen (Staff) oder globaler Toggle (normale Benutzer)
---
### Benutzerverwaltung (`/users`)
Nur für `admin` und `super_admin` zugänglich.
#### Benutzer anlegen / bearbeiten
- Benutzername, E-Mail, Vor-/Nachname
- Passwort (bei Neuanlage)
- **Rollen-Auswahl**: visueller Karten-Picker mit Icon und Farbe pro Rolle — keine Dropdown-Liste
- Aktiv/Inaktiv-Schalter
#### Azure AD Import
Benutzer können direkt aus einer Azure AD Gruppe importiert werden:
1. „Aus Azure importieren" klicken
2. Gruppe suchen und auswählen
3. Ziel-Rolle per Karten-Picker wählen
4. Bereits vorhandene Benutzer (gleiche E-Mail oder Azure ID) werden übersprungen
### Wissensdatenbank (`/knowledge-base`)
Die Wissensdatenbank speichert dokumentierte Lösungen für häufige IT-Probleme und dient gleichzeitig als Kontext für die KI-Integration.
**Zugriff:** Lesen für alle eingeloggten User · Erstellen/Bearbeiten/Löschen nur für `admin` und `super_admin`
#### Artikelstruktur
| Feld | Beschreibung |
|---|---|
| **Problem** | Kurze Beschreibung des Problems (Titel) |
| **Lösung** | Detaillierte Lösung mit Markdown-Unterstützung (Tabellen, Listen, Bold etc.) |
| **Kategorie** | Software · Hardware · Netzwerk · SelectLine · Allgemein · Sonstiges |
| **Tags** | Kommagetrennte Schlagwörter zur besseren Auffindbarkeit |
| **Bilder** | Bis zu mehrere Bilder pro Artikel (PNG, JPG, GIF, WebP, max. 5 MB) |
| **Quelle** | Manuell erstellt oder automatisch aus Ticket generiert (`auto_generated`) |
#### Import-Funktionen
Artikel können manuell erstellt oder per KI-Import automatisch generiert werden:
| Import-Modus | Beschreibung |
|---|---|
| **Text einfügen** | Beliebigen Text einfügen → KI generiert daraus einen oder mehrere Artikel |
| **Datei hochladen** | PDF, DOCX, EML, TXT (max. 5 MB) → Inhalt wird extrahiert und analysiert |
| **URL importieren** | Einzelne Webseite → HTML wird bereinigt, KI erstellt Artikel |
| **Website crawlen** | BFS-Crawler folgt Links auf gleicher Domain (2100 Seiten konfigurierbar) |
Der Crawler verarbeitet Texte in 40.000-Zeichen-Chunks und kann so auch große Dokumentationen vollständig importieren. Die KI erstellt pro Chunk mehrere thematisch getrennte Artikel.
#### Aus Tickets generieren
Geschlossene Tickets können direkt als Wissensdatenbank-Artikel gespeichert werden. Die KI analysiert Ticketinhalt und alle öffentlichen Kommentare und entscheidet selbst, ob der Fall dokumentationswürdig ist (`worth_adding`). Generierte Artikel sind als `auto_generated` markiert und enthalten einen Link zum Ursprungsticket.
#### Tab: Geschlossene Tickets
Der Tab **Geschlossene Tickets** zeigt alle per E-Mail oder aus externen Systemen importierten, abgeschlossenen IT-Tickets. Diese sind in der Tickets-Ansicht mit Status `geschlossen` und Quelle `email` gespeichert.
**Venabo-Import:** Geschlossene IT-Tickets aus dem Venabo-Helpdesk-System (Abteilung IT, Abt.-ID 28) wurden per Einmal-Import übertragen. Jedes Ticket enthält:
- Venabo-Ticket-ID als Referenz
- Bearbeiter, Erstelldatum, Abschlussdatum
- Direktlink zum Original-Ticket in Venabo
- Automatische Kategorie-Zuordnung (Software / Hardware / Allgemein) basierend auf dem Ticket-Typ
Monitoring-Alerts (Netgo/Synology/Probe Health Check) werden beim Import automatisch herausgefiltert.
#### KI-Integration
Die Wissensdatenbank ist tief in die KI eingebunden:
- **Ticket-Analyse:** Neue Tickets werden automatisch klassifiziert (Kategorie, Priorität, Lösungsvorschlag) auf Basis der KB-Einträge
- **Chat-Kontext:** Der KI-Chat lädt die letzten 30 KB-Artikel als Hintergrundwissen
- **Lösungsvorschläge:** Im Ticket-Detail schlägt die KI Antworten basierend auf ähnlichen KB-Einträgen vor
#### API-Endpunkte
| Methode | Endpoint | Beschreibung |
|---|---|---|
| `GET` | `/api/ai/knowledge-base` | Alle Artikel abrufen |
| `POST` | `/api/ai/knowledge-base` | Artikel manuell erstellen |
| `PUT` | `/api/ai/knowledge-base/:id` | Artikel bearbeiten |
| `DELETE` | `/api/ai/knowledge-base/:id` | Artikel löschen |
| `POST` | `/api/ai/knowledge-base/import-text` | Text oder Datei importieren |
| `POST` | `/api/ai/knowledge-base/import-url` | URL importieren |
| `POST` | `/api/ai/knowledge-base/import-crawl` | Website crawlen (Timeout: 5 Min) |
| `POST` | `/api/ai/knowledge-base/:id/images` | Bild zu Artikel hochladen |
| `DELETE` | `/api/ai/knowledge-base/:id/images/:filename` | Bild löschen |
### Defect-Report (`/defect`)
Öffentlich zugängliche Seite (kein Login erforderlich):
- Für externe Meldungen (z.B. von Kunden)
- Generiert intern ein Ticket
### Health-Seite (`/health`)
Öffentlich zugängliche Status-Seite ohne Login:
- API-Status
- Datenbank-Status
- Authentifizierungs-Status
- Antwortzeit
---
## 14. IT Nexus Scanner App (Android)
Die **IT Nexus Scanner App** ist eine native Android-App (Flutter) als Ergänzung zur Web-Oberfläche. Sie ermöglicht das mobile Verwalten und Erfassen von Assets direkt vor Ort — ohne PC.
---
### 14.1 Installation
**Voraussetzungen:**
- Android-Gerät (Android 8.0+)
- USB-Debugging aktiviert (bei erstmaliger Installation via ADB)
- WLAN-Verbindung zum IT-Nexus-Server
**APK-Datei:**
Die aktuelle APK wird vom IT-Administrator bereitgestellt und per ADB oder direkt installiert:
```
adb install -r app-debug.apk
```
> Tipp: „USB-Installieren" muss in den Entwickleroptionen aktiviert sein.
---
### 14.2 Erster Start & Login
Nach dem Start erscheint der **Login-Screen**:
1. **Benutzername** und **Passwort** eingeben (gleiche Zugangsdaten wie im Web)
2. Alternativ: **„Mit Microsoft anmelden"** (Azure AD / Single Sign-On)
3. Beim ersten Start muss die **Server-URL** einmalig eingestellt werden:
- Oben rechts auf das **⚙️ Einstellungen-Symbol** tippen
- Server-URL eintragen: `https://it-nexus.cereda-systems.de/api`
- Speichern → zurück zum Login
> Die Server-URL wird lokal gespeichert und muss nur einmal eingetragen werden.
---
### 14.3 Navigation
Die App hat eine **Bottom-Navigation** mit 4 Bereichen:
| Tab | Symbol | Beschreibung |
|---|---|---|
| **Dashboard** | 🏠 | Übersicht: Asset- und Ticket-Statistiken |
| **Scanner** | 📷 | Barcode/QR-Code scannen → Asset direkt aufrufen |
| **Tickets** | 🎫 | Offene Tickets anzeigen und erstellen |
| **Einstellungen** | ⚙️ | Server-URL, Abmelden |
Zentral in der Navigation befindet sich der **+ FAB-Button** (Teal) → öffnet den Screen zum **neuen Asset erfassen**.
---
### 14.4 Asset scannen
1. Tab **Scanner** öffnen
2. Kamera auf den **Barcode oder QR-Code** des Assets richten
3. Bei Erkennung: App öffnet automatisch die **Asset-Detail-Ansicht**
**Was im Asset-Detail möglich ist:**
| Aktion | Beschreibung |
|---|---|
| **Einbuchen** | Status auf „Verfügbar" setzen |
| **Zuweisen** | Asset einem Benutzer zuweisen |
| **Archivieren** | Status auf „Inaktiv" setzen |
| **Bearbeiten** | Name, Modell, TeamViewer-ID etc. ändern |
| **Verlauf** | Scan- und Aktionshistorie anzeigen |
| **Label drucken** | QR-Label für das Asset generieren |
---
### 14.5 Neues Asset erfassen
Über den **+ Button** in der Navigation:
1. **Name** eingeben (Pflichtfeld, z.B. `TBO-NB-10`)
2. **Seriennummer** — entweder manuell eingeben oder über den **📷 Scan-Button** per Kamera einscannen
3. **Modell** optional eintragen
4. **Typ** wählen:
- IT-Rollen: Notebook, Monitor, Headset, Other, Maschine, Werkzeug, Sonstiges
- Produktion: Maschine, Werkzeug, Sonstiges
5. **Bereich** wählen (IT, Produktion, Techniker, ...)
6. **Status** setzen (Verfügbar, Zugewiesen, Inaktiv, Beschädigt)
7. Optional: TeamViewer-ID, Beschreibung
8. **„Asset anlegen"** tippen → Asset wird direkt in IT Nexus gespeichert
> Die Inventarnummer (`ANL-XXXX`) wird automatisch vergeben.
---
### 14.6 Tickets
Im Tab **Tickets**:
- Liste aller offenen Tickets anzeigen
- Ticket-Details aufrufen
- Neues Ticket erstellen (z.B. direkt nach Asset-Scan ein Problem melden)
---
### 14.7 Rollenbasierte Ansicht
Die App passt sich automatisch der **Benutzerrolle** an:
| Rolle | Sichtbare Typen | Sichtbare Bereiche |
|---|---|---|
| `super_admin`, `admin`, `bearbeiter` | Alle Typen | Alle Bereiche |
| `produktion` | Maschine, Werkzeug, Sonstiges | Produktion, Techniker |
| `support` | Alle Typen (nur lesen) | Alle Bereiche |
---
### 14.8 Technische Details
| Eigenschaft | Wert |
|---|---|
| **Framework** | Flutter 3.x (Dart) |
| **Plattform** | Android 8.0+ (API 26+) |
| **Scanner-Bibliothek** | `mobile_scanner` v6 |
| **Authentifizierung** | JWT + Microsoft OAuth (Azure AD) |
| **API-Verbindung** | REST API zu IT Nexus Backend (`/api/...`) |
| **Datenspeicherung** | Keine lokale DB — alle Daten live vom Server |
| **Offline-Modus** | Nicht verfügbar (WLAN erforderlich) |
---
## 15. Rollen-Berechtigungsmatrix
| Funktion | benutzer | techniker | bearbeiter | support | hr_personal | buchhaltung | admin | super_admin |
|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| User-Portal sehen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Eigene Tickets erstellen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Alle Tickets sehen | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Tickets bearbeiten/schließen | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Tickets löschen | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Interne Notizen sehen | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| KI-Assistent Chat | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Dashboard sehen | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Assets (IT) verwalten | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Assets (Produktion/Techniker) anlegen | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Prüfprotokoll erfassen | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| FIDO-Keys verwalten | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Benutzer verwalten | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Onboarding anlegen/löschen | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Onboarding-Checkliste (HR) | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Onboarding-Checkliste (IT) | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Onboarding-Checkliste (BK) | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| Einstellungen (Kategorien) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| System-Seite | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Anlagevermögen ansehen | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| Lizenzen verwalten | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Wartung verwalten | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| ISO-Zertifizierung | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Risikoanalyse | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Entra ID Rechte | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Agent Monitoring sehen | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Patch Management | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Ankündigungen verwalten | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
---
## 16. ISO 27001 Zertifizierungsplanung
Die ISO-Seite (`/iso`) dient zur strukturierten Verfolgung aller Aufgaben auf dem Weg zur ISO 27001 Zertifizierung.
**Nur für `admin` und `super_admin` zugänglich.**
### Kategorien
| Kategorie | Beschreibung |
|---|---|
| **Risikomanagement** | Asset-Inventarisierung, Risikoanalyse, Maßnahmenplan |
| **TOM (Technische & Organisatorische Maßnahmen)** | Zugriffskonzept, Patchmanagement, Backup, Monitoring |
| **Incident Management** | Incident-Response-Plan, Meldeprozesse, Übungen |
| **Business Continuity** | Kritische Prozesse, Wiederanlaufplan |
| **Dokumentation** | Sicherheitsrichtlinie, Nachweisführung |
| **Awareness & Schulung** | Mitarbeiterschulungen, Onboarding-Integration |
### Status-System
Jede Aufgabe hat einen von drei Status:
| Status | Beschreibung |
|---|---|
| **Offen** | Noch nicht begonnen |
| **In Bearbeitung** | Teilweise umgesetzt oder laufend |
| **Abgeschlossen** | Vollständig umgesetzt und nachgewiesen |
### Funktionen
- **Fortschrittsbalken** pro Kategorie (Anteil Abgeschlossen)
- **Gesamtfortschritt** oben auf der Seite
- **Status direkt ändern** per Klick auf den Status-Button
- **Notizen und Verantwortliche** pro Aufgabe hinterlegen
- **Neue Aufgaben** hinzufügen (admin)
- **Aufgaben bearbeiten/löschen** (admin)
### Aktueller Stand (März 2026)
| Aufgabe | Status |
|---|---|
| IT-Assets erfassen | ✅ Abgeschlossen |
| Zugriffskonzept erstellen | ✅ Abgeschlossen |
| Risikoanalyse durchführen | 🔄 In Bearbeitung |
| Maßnahmenplan ableiten | 🔄 In Bearbeitung |
| Monitoring einführen | ✅ Abgeschlossen |
| Incident-Response-Plan erstellen | 🔄 In Bearbeitung |
| Nachweisführung etablieren | 🔄 In Bearbeitung |
| Onboarding-Prozess erweitern | 🔄 In Bearbeitung |
| Alle übrigen Aufgaben | ⬜ Offen |
---
## 17. Risikoanalyse
Die Risikoanalyse-Seite (`/risk`) ermöglicht die strukturierte Erfassung, Bewertung und Verfolgung von IT-Risiken.
**Nur für `admin` und `super_admin` zugänglich.**
### Risikobewertung
Jedes Risiko wird anhand einer **5×5 Risikomatrix** bewertet:
- **Wahrscheinlichkeit** (15): Wie wahrscheinlich ist das Eintreten?
- **Auswirkung** (15): Wie schwerwiegend wäre der Schaden?
- **Score** = Wahrscheinlichkeit × Auswirkung (125)
| Score | Stufe | Farbe |
|---|---|---|
| 2025 | Kritisch | 🔴 Rot |
| 1219 | Hoch | 🟠 Orange |
| 611 | Mittel | 🟡 Gelb |
| 15 | Niedrig | 🟢 Grün |
### Status
| Status | Bedeutung |
|---|---|
| **Offen** | Risiko erkannt, keine Maßnahme |
| **In Bearbeitung** | Maßnahmen werden umgesetzt |
| **Akzeptiert** | Risiko bewusst akzeptiert |
| **Behoben** | Risiko erfolgreich mitigiert |
### M365 Auto-Sync
Über den Button **„M365 Sync"** werden automatisch Risiken aus Microsoft 365 erfasst:
| Quelle | Beschreibung | Benötigte Azure-Berechtigung |
|---|---|---|
| **Secure Score** | Microsoft Secure Score als Sicherheitsrisiko | `SecurityEvents.Read.All` |
| **Defender Alerts** | Aktive Sicherheitswarnungen aus Microsoft Defender | `SecurityAlert.Read.All` |
| **Intune Non-Compliant** | Geräte die Compliance-Richtlinien verletzen | `DeviceManagementManagedDevices.Read.All` |
| **MFA-Status** | Benutzer ohne Multi-Faktor-Authentifizierung | `AuditLog.Read.All` |
| **Risky Users** | Risikobenutzer aus Identity Protection (P2) | `IdentityRiskEvent.Read.All` |
### Detail-Ansichten
Automatisch erfasste Risiken haben erweiterte Detail-Ansichten:
- **MFA-Risiko**: Tabelle aller Benutzer ohne MFA mit E-Mail
- **Intune-Risiko**: Gerätekarten mit Name, Benutzer, OS, Seriennummer
- **Defender-Alert**: Schweregrad, Status, betroffene Entitäten, Link ins Defender-Portal
### Manuelle Risiken
Admins können jederzeit manuelle Risiken hinzufügen und pflegen (Kategorie, Wahrscheinlichkeit, Auswirkung, Verantwortlicher, Maßnahmen, Fälligkeit).
---
## 18. Entra ID Rechteverwaltung
Die Entra-Seite (`/entra`) bietet eine Übersicht und Verwaltung von Benutzerrechten direkt aus Microsoft Entra ID (Azure Active Directory).
**Nur für `admin` und `super_admin` zugänglich.**
### Voraussetzungen (Azure App Registration)
Folgende API-Permissions müssen in der Azure App Registration konfiguriert sein (Application-Permissions, mit Admin Consent):
| Permission | Zweck |
|---|---|
| `User.Read.All` | Benutzer-Liste laden |
| `AuditLog.Read.All` | MFA-Status aller Benutzer |
| `Group.Read.All` | Gruppen-Liste laden |
| `GroupMember.Read.All` | Gruppen-Mitgliedschaften pro Benutzer |
| `RoleManagement.Read.Directory` | Admin-Rollen anzeigen |
| `GroupMember.ReadWrite.All` | *(Optional)* Gruppen-Mitglieder hinzufügen/entfernen |
### Tab: Benutzer
- Alle Entra-Benutzer mit Name, E-Mail, Stelle, Abteilung
- Status-Badge: **Aktiv** / **Deaktiviert**
- MFA-Badge: **Kein MFA** (gelb) wenn nicht registriert
- Suchfilter nach Name, E-Mail, Abteilung
- Filter nach MFA-Status
- **Detail-Panel** (rechts aufklappbar):
- Alle Gruppen des Benutzers
- Gruppe hinzufügen / entfernen (benötigt `GroupMember.ReadWrite.All`)
- MFA-Methoden anzeigen
- Link zum Entra-Portal
### Tab: Gruppen
- Alle Sicherheitsgruppen und M365-Gruppen
- Mitglieder per Klick lazy-laden
- Gruppentyp (Security / M365)
### Tab: Admin-Rollen
- Alle aktivierten Directory-Rollen
- Belegte Rollen mit Mitgliederliste oben
- Risikostufe pro Rolle (Kritisch: Global Admin / Privileged Role Admin, Hoch: Security Admin / Intune Admin, etc.)
### Statistik-Kacheln
- Benutzer gesamt
- Anzahl Gruppen
- Anzahl Admin-Rollenzuweisungen
- Benutzer ohne MFA
- MFA-Abdeckung in Prozent
---
## 19. Agent Monitoring
Das Agent Monitoring (`/monitoring`) ermöglicht die Echtzeit-Überwachung aller verwalteten Windows-Geräte über den IT Nexus Windows Agent.
**Nur für `super_admin` und `admin` zugänglich.**
### Architektur
| Komponente | Beschreibung |
|---|---|
| **Agent** | C# .NET 8 Windows Service (`IT-Nexus-Agent.exe`) Version 2.0.0 |
| **Service** | Läuft unsichtbar als Windows Service „IT Nexus Agent" (SYSTEM-Konto) |
| **Check-in** | Alle 1 Minute via `POST /api/monitoring/checkin` |
| **Backend** | Kein JWT nur `X-Agent-Key` Header |
| **Datenbank** | Tabelle `monitoring_agents` in SQLite |
| **Frontend** | `/monitoring` Live-Übersicht mit Card- und Tabellenansicht |
### Gesammelte Metriken
| Metrik | Beschreibung |
|---|---|
| Hostname, IP, MAC | Geräteidentifikation |
| OS Name + Version | Windows-Version (inkl. Windows 11-Erkennung via Build-Nummer) |
| CPU-Modell, Kerne, Auslastung % | Prozessor-Info |
| RAM gesamt / belegt (GB) | Arbeitsspeicher |
| Disk C: gesamt / frei (GB) | Festplattenplatz |
| Letzter Benutzer | Zuletzt angemeldeter Nutzer |
| Uptime (Stunden) | Zeit seit letztem Neustart |
| Domain | Active Directory / WORKGROUP |
| Installierte Software | Apps aus Registry |
| Windows Updates ausstehend | Anzahl fehlender Updates (inkl. Treiber) |
| **BitLocker Status** | Verschlüsselungsstatus des Laufwerks C: (encrypted / off / unknown) |
| **Defender Status** | Aktiv/Inaktiv + Signaturalter in Tagen |
| **Hardware-Seriennummer** | BIOS-Seriennummer für Asset-Management |
| TPM, Secure Boot | Sicherheits-Hardware-Status |
| Agent Version | Installierte Agent-Version |
### Warnungen
| Schwellwert | Typ |
|---|---|
| CPU > 90% oder Disk < 5 GB frei | 🔴 Kritisch |
| CPU > 80%, Disk < 15 GB, RAM > 90%, Updates > 10 | 🟡 Warnung |
| BitLocker deaktiviert | 🟡 Warnung |
| Defender inaktiv oder Signaturen > 7 Tage alt | 🟡 Warnung |
| Kein Checkin seit 10 Minuten | Offline |
### Tab: Probleme
Der Tab **Probleme** listet alle Agents mit aktivem Warn- oder Kritisch-Status. Agents, die seit mehr als **7 Tagen** keinen Checkin gemeldet haben, werden in einem ausklappbaren Bereich **„Langfristig offline"** separat angezeigt und zählen nicht zum Badge des Tabs. So bleiben kurzfristige Ausfälle sofort sichtbar, ohne dass dauerhaft abgemeldete Geräte stören.
### API
| Methode | Endpoint | Auth | Beschreibung |
|---|---|---|---|
| `POST` | `/api/monitoring/checkin` | `X-Agent-Key` Header | Agent meldet sich an |
| `GET` | `/api/monitoring` | JWT + Admin | Alle Agents abrufen |
| `GET` | `/api/monitoring/statistics` | JWT + Admin | Statistiken |
| `GET` | `/api/monitoring/:id` | JWT + Admin | Einzelner Agent |
| `DELETE` | `/api/monitoring/:id` | JWT + Admin | Agent löschen |
**Agent API Key:** In `docker-compose.yml` unter `AGENT_API_KEY`
### Installation & Verteilung
Der Agent wird als Inno Setup Installer (`.exe`) und Intune-Paket (`.intunewin`) bereitgestellt und über Microsoft Intune auf alle Geräte ausgerollt.
**Intune-Konfiguration (v2.0.0):**
- Installationsbefehl: `IT-Nexus-Agent-Setup-2.0.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART`
- Deinstallationsbefehl: `"C:\Program Files\IT Nexus Agent\IT-Nexus-Agent.exe" --uninstall`
- Installationsverhalten: **System**
- Erkennungsregel: **PowerShell-Skript** (`agent-cs/detect-it-nexus-agent.ps1`) prüft ob `C:\Program Files\IT Nexus Agent\IT-Nexus-Agent.exe` existiert, Exit 0 = erkannt, Exit 1 = nicht installiert
- 32-Bit PowerShell: **Nein** | Skriptsignatur: **Nein**
- ⚠️ Registry-basierte Erkennung schlägt mit Fehler **0x87D30006** fehl immer PowerShell-Skript verwenden!
**Rollout-Strategie (Staged Rollout):**
| Gruppe | Zielversion | Status |
|---|---|---|
| Test | v2.0.0 | ✅ Abgeschlossen |
| Pilot | v2.0.0 | ✅ Abgeschlossen |
| Produktion | v2.0.0 | 🔄 Automatischer Rollout via Intune (alle Gruppen freigegeben, Stand Mai 2026) |
### Installer-Dateien
| Datei | Zweck |
|---|---|
| `installer/IT-Nexus-Agent-Setup-2.0.0.exe` | Manuelle Installation |
| `installer/IT-Nexus-Agent-Setup-2.0.0.intunewin` | Microsoft Intune Deployment |
Der Agent installiert sich als Windows Service und läuft vollständig unsichtbar im Hintergrund kein Tray-Icon, kein Dashboard.
### Geräte-Detailseite
Über `/monitoring/device/:id` (Klick auf ein Gerät in der Monitoring-Übersicht) gelangt man zur Detailseite eines einzelnen Agents. Dieselbe Seite ist auch über `/assets/device/:hostname` aus der Asset-Verwaltung erreichbar.
**Angezeigte Informationen:**
| Bereich | Inhalt |
|---|---|
| **Live-Metriken** | CPU %, RAM %, Disk frei, Uptime |
| **System** | OS, IP, MAC, Domain, Letzter Nutzer |
| **Sicherheit** | BitLocker-Status, Defender aktiv, Signaturalter, TPM, Secure Boot |
| **Hardware** | Seriennummer, CPU-Modell, Kerne |
| **Software** | Installierte Software (durchsuchbar) |
| **Windows Updates** | Anzahl ausstehender Updates |
| **Agent-Info** | Version, letzter Check-in |
**Verfügbare Aktionen (Admin):**
| Aktion | Beschreibung |
|---|---|
| **Check Updates** | Agent prüft sofort ausstehende Updates |
| **Install Updates** | Agent installiert alle verfügbaren Updates (inkl. Treiber) |
| **Reboot** | Gerät wird neu gestartet |
| **Upgrade Win11** | Windows 11 In-Place Upgrade anstoßen |
| **Update Agent** | Agent aktualisiert sich selbst auf neueste Version |
Alle Aktionen werden als Patch-Command gespeichert und beim nächsten Check-in (max. 1 Minute) vom Agent abgerufen und ausgeführt.
---
## 20. Externe Monitoring-Alerts
IT Nexus empfängt automatisch strukturierte Monitoring-E-Mails von **Netgo** und **Arctic Wolf** und stellt diese im Monitoring-Bereich als externe Alerts dar. Beide Quellen werden über Graph API (primär) und IMAP (Fallback) überwacht.
### Überwachte Postfächer
| Postfach | Zweck |
|---|---|
| `it-tool@cereda-systems.de` | Haupt-Postfach Tickets + Monitoring-Alerts |
| `helpdesk@cereda-systems.de` | Zweites Postfach **nur** Monitoring-Alerts (keine Tickets) |
Das zweite Postfach wird über die Umgebungsvariable `MONITORING_MAILBOX` konfiguriert und alle 30 Sekunden gepollt. Nicht erkannte E-Mails (kein Netgo, kein Arctic Wolf) werden dort ignoriert und nicht als Ticket erstellt.
### Quellen & Erkennung
| Quelle | Erkennungs-Domain | Parser-Datei |
|---|---|---|
| **Netgo** | `@netgo.de`, `@mg.netgo.de` | `netgoParser.js` |
| **Arctic Wolf** | `@arcticwolf.com`, `@notifications.arcticwolf.com` | `arcticWolfParser.js` |
### Funktionsweise
| Schritt | Beschreibung |
|---|---|
| **E-Mail-Eingang** | Monitoring-Email trifft im konfigurierten Postfach ein |
| **Erkennung** | Backend prüft Absender-Domain automatisch |
| **Parsing** | Alle relevanten Felder werden strukturiert extrahiert |
| **Speicherung** | Alert wird in Tabelle `external_alerts` gespeichert (kein Ticket erstellt) |
| **Anzeige** | Alerts erscheinen im Tab „Ext. Alerts" auf der Monitoring-Seite |
### Frontend (Monitoring-Seite → Tab „Ext. Alerts")
- Alerts werden nach Schweregrad (CRIT/WARN/OK) mit farbiger Markierung angezeigt
- **Quittierte ausblenden**: Standardmäßig aktiv gequittierte Alerts werden versteckt; Button zeigt Anzahl und lässt sich umschalten
- **Ticket erstellen**: Erstellt ein IT Nexus-Ticket aus dem Alert
- **Quittieren**: Markiert den Alert als quittiert
- **Löschen**: Entfernt den Alert aus der Datenbank
- Badge im Tab zeigt Anzahl nicht-quittierter Alerts (rot bei > 0)
- Automatische Aktualisierung alle 60 Sekunden
### Arctic Wolf Detailkarte
Arctic Wolf Alerts werden in einer erweiterten Karte dargestellt:
| Bereich | Inhalt |
|---|---|
| **Kopfzeile** | Severity-Badge (`LOW`/`MEDIUM`/`HIGH`/`CRITICAL`), Incident-Name, Gerät + IP, Zeitstempel |
| **Details-Grid** | Event-Typ, Application, User, Process (immer sichtbar) |
| **„Mehr Details"** | Aufklappbar: Was ist passiert? · Warum relevant? · Wie erkannt? · Nächste Schritte · Empfehlungen |
### Severity-Mapping
| Quelle | Severity | Ticket-Priorität | Farbe |
|---|---|---|---|
| Netgo | CRIT | kritisch | Rot |
| Netgo | WARN | hoch | Gelb |
| Netgo | OK | niedrig | Grün |
| Arctic Wolf | HIGH / CRITICAL | kritisch | Rot |
| Arctic Wolf | LOW / MEDIUM | hoch | Gelb |
### API-Endpunkte
| Methode | Pfad | Beschreibung |
|---|---|---|
| `GET` | `/api/external-alerts` | Alle Alerts abrufen (optional `?acknowledged=true/false`) |
| `POST` | `/api/external-alerts/:id/acknowledge` | Alert quittieren |
| `POST` | `/api/external-alerts/:id/create-ticket` | Ticket aus Alert erstellen |
| `DELETE` | `/api/external-alerts/:id` | Alert löschen |
Alle Endpunkte erfordern JWT + Admin-Rolle.
### Datenbankschema
Tabelle `external_alerts`:
| Spalte | Typ | Beschreibung |
|---|---|---|
| `id` | INTEGER PK | Auto-Increment |
| `source` | TEXT | Quelle: `netgo` oder `arcticwolf` |
| `device` | TEXT | Gerätename |
| `service` | TEXT | Überwachter Service / Event-Typ |
| `state_transition` | TEXT | Statusübergang (z. B. `OK -> CRIT`) |
| `severity` | TEXT | CRIT / WARN / OK / UNKNOWN |
| `message` | TEXT | Kurzbeschreibung |
| `customer` | TEXT | Kundenname |
| `monitored_by` | TEXT | Überwachungsinstanz |
| `state_time` | TEXT | Zeitpunkt des Ereignisses |
| `raw_body` | TEXT | Bei Arctic Wolf: JSON mit allen strukturierten Feldern |
| `acknowledged` | INTEGER | 0 = offen, 1 = quittiert |
| `ticket_id` | INTEGER | Verknüpfte Ticket-ID (falls erstellt) |
| `email_message_id` | TEXT UNIQUE | Message-ID der E-Mail (Duplikat-Schutz) |
---
## 21. Patch Management
Das Patch-Management-Modul (`/patch`) ermöglicht die zentrale Verwaltung von Windows Updates auf allen verwalteten Geräten mit Staged Rollout, Gruppen, Policies und direkten Commands.
**Nur für `super_admin` und `admin` zugänglich.**
### Staged Rollout Gruppen
Updates werden stufenweise ausgerollt, um Risiken zu minimieren:
| Gruppe | Zweck | Typische Mitglieder |
|---|---|---|
| **Test** | Erste Testgeräte sofortiger Rollout | IT-eigene Geräte |
| **Pilot** | Frühe Anwender nach erfolgreichem Test | ausgewählte Mitarbeiter |
| **Produktion** | Alle übrigen Geräte | gesamter Betrieb |
Jede Gruppe kann eine eigene Zielversion erhalten. Agents, die keiner Gruppe zugeordnet sind, erhalten die globale Fallback-Version aus der Umgebungsvariable `AGENT_VERSION`.
### Tab: Gruppen
- Übersicht aller Rollout-Gruppen mit Zielversion und Geräteanzahl
- Geräte per Drag & Drop oder Dropdown einer Gruppe zuweisen
- Zielversion pro Gruppe setzen
### Tab: Policies
Update-Richtlinien definieren, wann und wie Updates installiert werden:
| Feld | Beschreibung |
|---|---|
| **Installationsfenster** | Uhrzeit und Wochentage für automatische Updates |
| **Erzwingen nach X Tagen** | Updates werden nach Ablauf der Frist zwangsweise installiert |
| **Reboot erlaubt** | Ob nach Updates automatisch neu gestartet werden darf |
| **Zielgeräte** | Gruppe oder einzelne Geräte |
### Tab: Befehle (Commands)
Direkte Einzel-Befehle an einen Agent senden werden beim nächsten Check-in ausgeführt:
| Befehl | Beschreibung |
|---|---|
| `check_updates` | Ausstehende Updates prüfen und im Backend speichern |
| `install_updates` | Alle verfügbaren Updates sofort installieren (inkl. Treiber) |
| `reboot` | Gerät neu starten |
| `upgrade_win11` | Windows 11 In-Place Upgrade anstoßen |
| `update_agent` | Agent auf neueste Version aktualisieren |
Der Status jedes Commands (`pending``running``success`/`failed`) wird live angezeigt. Long-running Commands (z.B. Windows 11 Upgrade) bleiben im Status `running` bis der Agent das Ergebnis meldet.
### API-Endpunkte
| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| `GET` | `/api/patch/commands` | JWT + Admin | Alle Commands abrufen |
| `POST` | `/api/patch/commands/trigger` | JWT + Admin | Einzelnen Command senden |
| `POST` | `/api/patch/commands/trigger-group` | JWT + Admin | Command an ganze Gruppe senden |
| `POST` | `/api/patch/commands/result` | `X-Agent-Key` | Agent meldet Ergebnis |
| `GET` | `/api/patch/groups` | JWT + Admin | Rollout-Gruppen abrufen |
| `POST` | `/api/patch/groups` | JWT + Admin | Gruppe erstellen |
| `GET` | `/api/patch/policies` | JWT + Admin | Policies abrufen |
---
## 22. Ankündigungen
Das Ankündigungs-Modul (`/announcements`) ermöglicht das Senden von Desktop-Benachrichtigungen direkt auf verwaltete Windows-Geräte.
**Nur für `super_admin` und `admin` zugänglich.**
### Funktionsweise
1. Admin erstellt eine Ankündigung im Web-Interface (Titel, Nachricht, Typ, Zielgeräte)
2. Agent pollt alle **15 Sekunden** `POST /api/monitoring/announcements-poll`
3. Neue Ankündigung wird erkannt → Agent zeigt WPF-Dialog auf dem Desktop des eingeloggten Nutzers
4. Nutzer klickt „Gelesen und bestätigt" → Agent sendet ACK an Backend
5. Ankündigung gilt als zugestellt
### Typen & Darstellung
| Typ | Farbe | Einsatz |
|---|---|---|
| **Info** | Blau | Allgemeine Hinweise |
| **Warnung** | Orange | Wichtige Hinweise, bevorstehende Wartungen |
| **Kritisch** | Rot | Notfälle, sofortiger Handlungsbedarf |
Der WPF-Dialog erscheint im Vordergrund mit farbigem Header, Titel, Nachricht und einem Bestätigungs-Button. Kein Konsolenfenster vollständig native Windows-Darstellung.
### Zielgruppen
| Option | Beschreibung |
|---|---|
| **Alle Geräte** | Ankündigung wird an alle registrierten Agents gesendet |
| **Bestimmte Geräte** | Auswahl einzelner Hostnames |
| **Rollout-Gruppe** | Alle Geräte einer Patch-Gruppe (Test / Pilot / Produktion) |
### Status
| Status | Bedeutung |
|---|---|
| **Ausstehend** | Noch nicht vom Gerät abgerufen |
| **Zugestellt** | Agent hat die Ankündigung angezeigt |
| **Bestätigt (ACK)** | Nutzer hat den Dialog bestätigt |
### Web-ACK (ohne Agent)
Für Geräte ohne Agent oder für Administratoren kann eine Ankündigung auch direkt im Browser über den Button **„Als gelesen markieren"** bestätigt werden.
### API-Endpunkte
| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| `GET` | `/api/announcements` | JWT + Admin | Alle Ankündigungen |
| `POST` | `/api/announcements` | JWT + Admin | Neue Ankündigung erstellen |
| `DELETE` | `/api/announcements/:id` | JWT + Admin | Ankündigung löschen |
| `POST` | `/api/monitoring/announcements-poll` | `X-Agent-Key` | Agent pollt neue Ankündigungen |
| `POST` | `/api/announcements/:id/ack-agent` | `X-Agent-Key` | Agent sendet Bestätigung |
| `POST` | `/api/announcements/:id/ack` | JWT | Web-Bestätigung durch Admin |
---
## Anhang: Technische Informationen
### Infrastruktur
- **Server:** LXC Container (Proxmox), IP 192.168.0.194
- **Domain:** `https://it-nexus.cereda-systems.de`
- **Stack:** React (Frontend) · Node.js/Express (Backend) · SQLite (Datenbank) · nginx (Webserver)
- **Container:** Docker Compose (`fido-backend` Port 5000, `fido-frontend` Port 8443)
### Datensicherung
Die SQLite-Datenbank liegt unter:
`/var/lib/docker/volumes/it-nexus_fido-data/_data/database.sqlite`
### Support & Kontakt
Bei Problemen mit dem System: Ticket über das System selbst erstellen oder
direkt an den Systemadministrator wenden.
---
*Dokumentation erstellt für Cereda Systems GmbH vertraulich*