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- undpolycrate-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:
- Admin → DataSources → Neu öffnen.
- Kind wählen (
rss,api,polycrate-hub). - URL des Feeds oder Endpoints eintragen.
- Optional: Provider verknüpfen, damit erzeugte Notes automatisch als Provider-Status ausgewiesen werden.
- Optional: Credential auswählen (nur für
api/polycrate-hub). - Interval festlegen (z. B. alle 15 Minuten).
- 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=CRITICALgesetzt 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.