Zum Inhalt

Wiki

Das Wiki ist die zentrale Ablage für „wie wir Dinge tun", Runbooks, Service-Dokumentation, Notiz-Sammlungen.

Konzept

  • Ordner (Kategorien) gruppieren Artikel — jeder Mandant hat seine eigenen. Wer Zugriff auf mehrere Mandanten hat, schaltet im Wiki zwischen ihnen um; ein Artikel lässt sich nur in einen Ordner des eigenen Mandanten legen.
  • Artikel in Markdown, pro Artikel eine Sprache (Default Deutsch) — mit Volltext-Index + Vector-Embeddings
  • Service-Linking — ein Artikel kann an konkrete Profile-Checks, einen Check-Typ oder einzelne Hosts hängen
  • AI-RAG-Quelle — der AI-Chat zieht als erste Quelle aus dem Wiki

Artikel anlegen

/wikiNeuer Artikel.

Feld Bedeutung
Titel Pflicht
Kategorie aus Liste oder neu anlegen
Tags optional
Inhalt Markdown, mit Toolbar und Live-Preview
Service-Verknüpfungen n:m mit Profile-Checks / Check-Typen / Hosts

Editor-Toolbar: H1/H2/H3, Bold, Italic, Code, Link, Listen, Tabelle, Code-Block.

Service-Linking

Ein Artikel lässt sich verknüpfen mit:

  • einem konkreten Profile-Check (z. B. genau dieser SNMP-Check auf diesem Profil)
  • einem Check-Typ generell (z. B. alle agent_disk-Checks, egal auf welchem Profil)
  • einem einzelnen Host (für Eigenheiten, die nur für eine bestimmte Maschine gelten)

Wirkung: Auf der Host-Detail-Seite bekommt der betroffene Check über den Quick-Lookup Zugriff auf die verknüpften Artikel; die AI-Service-Analyse priorisiert verknüpfte Artikel im RAG-Kontext.

Beispiel: Ein Artikel „Disk-Voll-Lauf-Run-Book" wird an den Check-Typ agent_disk gebunden — sobald ein Disk-Voll-Alert kommt, ist das Run-Book direkt erreichbar, unabhängig vom konkreten Host.

Suche

/wiki durchsucht Titel + Inhalt über drei kombinierte Methoden:

  1. Volltext-Suche (deutscher FTS-Index)
  2. ILIKE-Fallback für partielle Strings (z. B. „backup" findet auch „backup-script")
  3. Vector-Suche (pgvector + Embeddings) für semantisch ähnliche Inhalte

Embeddings

Beim Speichern eines Artikels wird im Hintergrund ein Embedding berechnet (asynchron, blockiert das Speichern nicht):

  • Modell: das unter AI-Provider konfigurierte Embedding-Modell (z. B. nomic-embed-text über Ollama)
  • Speicherung: wiki_articles.embedding, als unbeschränkter vector-Spaltentyp — passt sich der Dimension des jeweils konfigurierten Embedding-Modells an (verschiedene Modelle liefern unterschiedliche Vektorlängen, z. B. 768 bei nomic-embed-text)

Fehlende Embeddings (z. B. nach einem Bulk-Import oder wenn beim Speichern kein Provider konfiguriert war) werden von einem Hintergrund-Job periodisch nachgeholt.

asyncpg-Cast für Vector

Bei eigenen SQL-Queries mit pgvector: CAST(:emb AS vector) statt ::vector benutzen — asyncpg interpretiert :: als Bind-Parameter und macht den Cast unmöglich.

Quick-Lookup auf Service-Detail

Auf der Service-Zeile eines Hosts steht ein schneller Wiki-Vorschlag zur Verfügung — ohne LLM-Aufruf, rein deterministisch und in der Regel unter 100 ms:

  1. Direkter Treffer über verknüpfte Artikel (Check-Typ, Profile-Check oder Host)
  2. Fallback: Volltext-Suche über den Service-Namen

Die Vorschläge lassen sich pro User über die Einstellungen ausblenden, falls sie im Weg sind.

Soft-Delete

Artikel werden soft-deleted (siehe Papierkorb) — gelöscht heißt erstmal versteckt, nach 30 Tagen physisch weg. Service-Verknüpfungen bleiben beim Soft-Delete erhalten und sind nach einem Restore wieder vollständig da.

URL Wirkung
/wiki Übersicht
/wiki?article=<id> Artikel direkt öffnen
/wiki?new=1 Neuer Artikel mit leerem Modal

Permissions

Permission Wirkung
wiki.view Artikel sehen
wiki.edit Bearbeiten
wiki.create Neue anlegen
wiki.delete Soft-Delete

Endgültiges Löschen aus dem Papierkorb läuft über die allgemeinen Papierkorb-Permissions, nicht über eine eigene Wiki-Permission.

Anschluss