Zum Inhalt

DataSources

DataSources sind externe Feeds, die Inhalte in die Polycrate API ziehen. Sie verbinden externe Systeme (RSS-Feeds, REST-APIs, Polycrate Hub) mit der Plattform und erzeugen daraus Objekte im System — typischerweise Notes oder Block-Templates.

Jeder Eintrag wird periodisch von einem Celery-Task ausgewertet und erzeugt beim ersten Auftreten neue Objekte. Bereits importierte Items werden idempotent erkannt und nicht erneut angelegt.

Wofür DataSources

Anwendungsfall DataSource-Kind Erzeugt
Status-Feeds von Cloud-Providern (z. B. Hetzner Status, AWS Health) in die Plattform ziehen rss Notes mit kind=provider-status
Sicherheits- oder Produkt-News automatisch als Hinweis im System anzeigen rss Notes mit kind=news
Externe Ticket- oder Monitoring-Systeme regelmäßig abfragen und als Kommentar ablegen api Notes (generisch)
Block-Templates aus Polycrate Hub regelmäßig synchronisieren polycrate-hub Installierte Block-Templates

Kinds im Überblick

rss — RSS-/Atom-Feeds

Polycrate ruft den Feed in einem konfigurierbaren Intervall ab und legt pro neuem Item eine Note an. Die Note verlinkt auf das Originalitem (source_url) und speichert Titel, Zusammenfassung und Zeitstempel.

Typisch verlinkt auf einen Provider: wenn der Feed z. B. die Statusseite eines Infrastruktur-Providers ist, wird datasource.provider gesetzt und die erzeugten Notes erhalten automatisch kind=provider-status plus Verknüpfung zu diesem Provider. So landen Provider-Störungen direkt im Timeline-/Dashboard-Kontext.

api — REST-APIs

Wie rss, aber für beliebige REST-Endpunkte mit JSON-Response. Eine Credential kann hinterlegt werden (API-Token, Basic Auth), damit geschützte Endpunkte abgefragt werden. Das Ergebnis wird in Notes übersetzt.

polycrate-hub — Block-Templates aus Poly Hub

Zieht Block-Definitionen aus dem zentralen Polycrate Hub und legt sie als installierbare Template-Blöcke in der lokalen Polycrate-Instanz an. Damit ersetzt dieser Kind die früheren "Artifacts" (siehe Migration in artefakte.md):

  • Die Polycrate API ist nicht länger darauf angewiesen, dass der Operator neue CRDs selbstständig entdeckt.
  • Stattdessen wird der Hub als autoritative Quelle genutzt und Template-Blöcke werden explizit synchronisiert.
  • Jeder synchronisierte Block bekommt automatisch das Flag template=true.

Beziehungen

Provider ─────────────┐
                      │ optional FK
┌──────────────┐   ┌──────────────┐   erzeugt     ┌─────────┐
│ Credential   │──▶│  DataSource  │──────────────▶│  Notes  │
│ (für api)    │   │  kind=rss    │               └─────────┘
└──────────────┘   │  kind=api    │
                   │  kind=…-hub  │   erzeugt     ┌───────────────┐
                   └──────────────┘──────────────▶│ Block-Template│
                                                  └───────────────┘
  • Provider ist ein globaler Katalog-Eintrag (Hersteller/Anbieter). Eine DataSource kann auf einen Provider zeigen, muss aber nicht — dann werden aus einem RSS-Feed z. B. "News" statt "Provider-Status" erzeugt.
  • Credential liefert die Authentifizierung für api- und polycrate-hub-Kinds.
  • Notes sind das primäre Output-Objekt. Jede durch eine DataSource erzeugte Note bekommt eine Rückreferenz auf die DataSource und kann im Notes-Tab aller betroffenen Objekte angezeigt werden.

DataSource einrichten

Nur für Superuser

DataSources verwalten systemweite Feeds und können Pflichtinformationen wie Provider-Störungen importieren. Das Anlegen und Bearbeiten ist auf Superuser beschränkt. Normale Benutzer sehen die erzeugten Notes, aber nicht die Quelle.

Schritte in der UI:

  1. Admin → DataSources → Neu öffnen.
  2. Kind wählen (rss, api, polycrate-hub).
  3. URL des Feeds oder Endpoints eintragen.
  4. Optional: Provider verknüpfen, damit erzeugte Notes automatisch als Provider-Status ausgewiesen werden.
  5. Optional: Credential auswählen (nur für api / polycrate-hub).
  6. Interval festlegen (z. B. alle 15 Minuten).
  7. Speichern → der erste Sync läuft im Hintergrund. Ergebnisse erscheinen nach wenigen Sekunden im Notes-Feed.

Ein manueller Sync ist über die "Reconcile"-Action der DataSource jederzeit möglich.

Kontrolle & Observability

  • Last run / last success: Jede DataSource zeigt, wann zuletzt gesynct wurde und ob dabei Fehler auftraten.
  • Aktivitäten: Jeder Sync erzeugt einen Activity-Eintrag (Kind datasource_sync) mit Zähler "neu erzeugte Notes/Blocks". Die Aktivitäten sind über das Metriken-Dashboard und im Detail-View der DataSource sichtbar.
  • Fehler-Notifications: Schlägt ein Sync wiederholt fehl, wird die DataSource auf state=CRITICAL gesetzt und ein Downtime-Eintrag angelegt — genauso wie für jedes andere ManagedObject.

Verwandte Themen

  • Notes — das primäre Output der RSS/API-DataSources.
  • PoPs & Provider — wie Provider-Einträge aufgebaut sind und welche Rolle sie in DataSources spielen.
  • PolyHub — Quelle für den polycrate-hub-Kind.
  • Artefakte — Migration von alter "Artifact Discovery" zu Template-Blöcken via Hub-DataSource.