Zum Inhalt

Profile bearbeiten

/profiles ist die zentrale Seite, um Profile und ihre Profile-Checks zu verwalten.

Seit v0.19.1

16 UX-Verbesserungen mit Capability-Filtern, Inline-Threshold-Edit, Clone, Export/Import, Sort-Pfeile, Keyboard-Shortcuts.

Übersicht

┌──────────────────────────────────────────────────────────────────┐
│ Profile                              [+ Neu] [Import] [Export]   │
│                                                                  │
│ Suche: [/]                                                       │
│ Filter: [Agent] [SNMP] [Custom] [Modifiziert] [Leer]             │
├──────────────────────────────────────────────────────────────────┤
│  Server                                                          │
│   ┌────────────┐ ┌────────────┐ ┌────────────┐                   │
│   │ Generic    │ │ Linux Web  │ │ Windows    │                   │
│   │ Linux      │ │ Server     │ │ Server     │                   │
│   │ • 12 Hosts │ │ • 4 Hosts  │ │ • 8 Hosts  │                   │
│   │ Agent SNMP │ │ Agent      │ │ Agent      │                   │
│   └────────────┘ └────────────┘ └────────────┘                   │
│  Network Devices                                                 │
│   ...                                                            │
└──────────────────────────────────────────────────────────────────┘

Karten-Pattern

Jede Karte zeigt:

  • Profil-Name + Icon
  • Anzahl Hosts (oder gelber Border + „kein Host" wenn ungenutzt)
  • Capability-Pills (Agent, SNMP, Custom, Modifiziert)
  • Bei Klick: Profil-Modal mit allen Profile-Checks

Filter & Suche

Pill Zeigt
Agent Profile mit agent_capable = true
SNMP Profile mit snmp_enabled = true
Custom Profile mit is_builtin = false
Modifiziert Builtins mit is_modified = true
Leer Profile ohne Hosts (Aufräum-Kandidaten)

Tastatur-Shortcuts:

  • ++slash++ — Fokus auf Suchfeld
  • ++n++ — Neues Profil
  • ++esc++ — Modal schließen

Profil-Modal

┌─ Profil 'Generic Linux Server' ────────────── [Klonen] [Export] ─┐
│                                                                  │
│ Basis                                                            │
│   Name:        Generic Linux Server                              │
│   Kategorie:   Server                                            │
│   Vendor:      Generic                                           │
│   Icon:        [server-icon]                                     │
│                                                                  │
│ Erweitert ▼                                                      │
│   sysOID-Patterns:  [.1.3.6.1.4.1.8072.3.2.10] [+]               │
│   sysDescr-Patterns: [Linux] [+]                                 │
│   Capabilities: [✓] Agent  [✓] SNMP  [_] IP Pflicht              │
│   OS-Familie:   linux                                            │
│   Visual-Type:  (keiner)                                         │
│                                                                  │
│ Profile-Checks (8)                                  [+ Check]    │
│   ↑↓  CPU Load          agent_cpu     60s  W>80  C>95  [Edit]    │
│   ↑↓  RAM Usage         agent_memory  60s  W>85  C>95  [Edit]    │
│   ↑↓  Disk Usage /      agent_disk   300s  W>80  C>95  [Edit]    │
│   ...                                                            │
└──────────────────────────────────────────────────────────────────┘

Sektionen

  • Basis — Name, Kategorie, Vendor, Icon (Lucide-Picker)
  • Erweitert (collapsible) — Patterns, Capabilities, Visual-Type, OS

Profile-Check-Liste

Pro Check zeigt die Tabelle:

  • Sort-Pfeile (↑↓) zum Umordnen
  • Name + Check-Type
  • Intervall in Sekunden
  • Threshold-Warn / Threshold-Crit in Notation W>80 · C>95
  • Edit-Button

Inline-Threshold-Edit

Statt das Edit-Modal zu öffnen, kannst du Schwellwerte direkt in der Tabelle anpassen:

  1. Klick auf den Threshold-Wert
  2. Mini-Inputs erscheinen
  3. Enter speichert, Escape verwirft

Sinnvoll wenn du nur Schwellen tunen willst, nicht die ganze Config.

Profile-Check editieren (Modal)

Im Edit-Modal:

Feld Hinweis
Name Anzeigename
Check-Type Nur bei neuen Checks änderbar — bei bestehenden gesperrt mit Warning
Check-Mode Active / Passive / Agent
Check-Config JSONB-Editor mit Schema-Validation pro Check-Type
Threshold-Warn / -Crit Floats
Interval / Retry / Max-Attempts Zahlen
Script-ID Dropdown mit Builtin- und Custom-Scripts
auto_add Wird beim Profil-Apply automatisch erzeugt?

Check-Type-Wechsel

Wenn du den Check-Type änderst, werden die Config-Felder anders interpretiert. Eine Datenverlust-Warning erscheint vor dem Speichern.

Clone

Klont ein Profil + alle Profile-Checks als neues Custom-Profile mit Auto-Rename:

"Generic Linux Server"     → "Generic Linux Server (Kopie)"
"Generic Linux Server"     → "Generic Linux Server (Kopie 2)"  (zweites Mal)

Die Klone sind is_builtin = false, is_modified = false. Frei editierbar.

Export

JSON-Bundle mit Schema-Version:

{
  "schema_version": 1,
  "profile": { /* alle Felder */ },
  "checks": [ /* alle Profile-Checks */ ]
}

Datei wird browser-seitig heruntergeladen, kein Server-State.

Import

Akzeptiert JSON-Bundle oder ZIP mit mehreren Bundles.

  • Magic-Bytes-Detection (PK für ZIP)
  • Pro Bundle ein SAVEPOINT — ein kaputtes Bundle kippt nicht den Rest
  • Auto-Rename bei Namens-Kollision: (Import), (Import 2), …
  • Schema-Version-Check via PROFILE_BUNDLE_SCHEMA_VERSION
# CLI-Variante (multipart):
curl -X POST -H "Authorization: Bearer <JWT>" \
  -F "file=@my-profiles.zip" \
  https://deine-domain.tld/api/v1/profiles/import

Reset (Builtin)

Ein modifizierter Builtin (is_modified = true) hat einen Reset-Button. Der setzt das Profil und alle Profile-Checks auf den Original-Zustand des Seed-Scripts zurück.

Confirmation-Dialog vor Reset.

Usage-Vorschau

Bei Profil löschen zeigt ein Vorab-Modal:

Profil 'Generic Linux Server' wird verwendet von:
  - 12 Hosts
  - 86 Services

Beispielhosts:
  - web01.acme.local
  - db01.acme.local
  - jump01.acme.local
  - mail01.acme.local
  - backup01.acme.local

Wenn du fortfährst, werden diese Hosts ohne Profil zurückgelassen.
Möchtest du wirklich löschen?

  [Abbrechen]   [Löschen]

Hinter den Kulissen: GET /profiles/{id}/usage{host_count, service_count, examples[5]}.

Sort & Reihenfolge

Profile-Checks haben einen display_order-Index. Sort-Pfeile pro Check ändern die Reihenfolge — wichtig für die Anzeige in der Service-Liste auf der Host-Detail-Seite.

API

Endpoint Zweck
GET /api/v1/profiles/ Liste mit host_count
GET /api/v1/profiles/{id} Detail
POST /api/v1/profiles/ Neu
PATCH /api/v1/profiles/{id} Update
DELETE /api/v1/profiles/{id} Löschen
GET /api/v1/profiles/{id}/usage Impact-Vorschau
POST /api/v1/profiles/{id}/clone Klonen
GET /api/v1/profiles/{id}/export JSON-Bundle
POST /api/v1/profiles/import Bundle/ZIP einspielen
POST /api/v1/profiles/{id}/apply Auf Host anwenden
GET /api/v1/profiles/{id}/checks Profile-Checks
POST /api/v1/profiles/{id}/checks/{check_id}/reset Builtin-Check zurücksetzen

Anschluss