Files
IT-Nexus/DOKUMENTATION.md

1602 lines
60 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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*