Polycrate API – Integrationen¶
Übersicht¶
Die Polycrate API integriert sich mit verschiedenen externen Diensten. Diese Integrationen ermöglichen zentrales Identitätsmanagement, Team-Kommunikation, Container-Registry-Verwaltung, Versionskontrolle und DNS-Management – alles aus der Polycrate API heraus steuerbar.
graph TB
subgraph API[Polycrate API]
ORG[Organisationen]
WS[Workspaces]
end
ORG --> Keycloak[Keycloak SSO]
ORG --> RocketChat[RocketChat]
ORG --> Harbor[Harbor Registry]
WS --> GitLab[GitLab]
API --> Mattermost[Mattermost]
API --> PowerDNS[PowerDNS]
API --> CentralNic[CentralNic]
Keycloak -->|OIDC| Harbor
Keycloak -->|OIDC| RocketChat | Dienst | Zweck | Konfiguration |
|---|---|---|
| Keycloak | SSO für Harbor, RocketChat (nicht für Polycrate API oder GitLab) | System Config → Integration: Keycloak |
| GitLab | Workspace-Repositories, Auto-Create | System Config → Integration: GitLab |
| RocketChat | Team-Channels pro Organisation | System Config → Integration: RocketChat |
| Mattermost | Benachrichtigungen mit Action-Buttons | Notification Sink → Mattermost |
| Harbor | Container-Registry pro Organisation | System Config → Integration: Harbor |
| PowerDNS | DNS-Zonen und Records | System Config → Integration |
| CentralNic | Domain-Registrierung | Domain Registrar |
Keycloak (SSO)¶
Keycloak dient als OIDC-IdP für Harbor und RocketChat – nicht für die Polycrate API oder GitLab.
Was passiert für den Nutzer?¶
- Benutzer loggen sich bei Harbor und RocketChat über Keycloak ein (OIDC)
- Bei Harbor: Der Token braucht einen
orgs-Claim mit den Organisation-Slugs; Harbor ordnet den User der passenden Gruppe zu
Konfiguration¶
- System Config → Integration: Keycloak: Endpoint, Client ID, Client Secret, OIDC Discovery
- Harbor-seitig: OIDC mit Keycloak konfigurieren; Group Claim Name =
orgs(muss mit Keycloak übereinstimmen) - RocketChat-seitig: OIDC-Provider für Keycloak konfigurieren
→ Authentifizierung (API-Keys, Agent-Tokens für Polycrate API)
GitLab¶
Was passiert für den Nutzer?¶
- Workspace-Repositories: Jedem Workspace ist ein GitLab-Projekt zugeordnet – hier liegt die
workspace.polyund die Block-Konfiguration - Auto-Create: Wenn ein Workspace erstmals mit der API synchronisiert wird und noch kein GitLab-Projekt existiert, wird automatisch ein neues Projekt in der Organisations-Gruppe angelegt (leeres Repository)
- Suche vor Erstellung: Bestehende Projekte werden zuerst per Name/Path gesucht; nur bei Nichtfund wird ein neues erstellt
- CLI-Sync:
polycrate workspace syncundpolycrate git syncsynchronisieren mit diesem Projekt
Konfiguration¶
- System Config → Integration: GitLab: API-Endpoint, API-Token (mit Gruppen-/Projekt-Rechten)
- Workspace: Muss einer Organisation zugeordnet sein, die eine GitLab-Gruppe besitzt
Nutzen¶
- Einheitliche Quelle für Infrastructure-as-Code
- Team-Kollaboration über Git
- Versionierung und Audit über Git-Historie
RocketChat¶
Was passiert für den Nutzer?¶
- Privater Channel pro Organisation: Organisationen mit einem Support-Produkt, das RocketChat-Channels ermöglicht, erhalten automatisch einen privaten RocketChat-Channel
- OIDC-Integration: Nur Benutzer, die über Keycloak der Organisation zugeordnet sind, haben Zugriff auf den Channel
- System-Organisation: Die als „System Owner“ konfigurierte Organisation (z. B. ayedo) hat Zugriff auf alle Kunden-Channels – für zentralen Support
- Channel-Archivierung: Bei Archivierung einer Organisation wird der zugehörige Channel archiviert (nicht gelöscht)
Konfiguration¶
- System Config → Integration: RocketChat: API-Endpoint, Admin-User-ID, Admin Auth Token, optionaler Channel-Prefix
- Produkt-Feature: Das Support-Produkt muss
features.rocketchat_channel: truehaben (z. B. Premium Support, Priority Support) → Pricing & Business Layer - RocketChat OAuth: OIDC-Provider für Keycloak konfigurieren; Group Claim Name muss mit Keycloak-Gruppen übereinstimmen
Nutzen¶
- Direkte Kundenkommunikation im richtigen Channel
- Keine manuelle Channel-Erstellung
- Einheitliche Zugriffssteuerung über OIDC
Mattermost¶
Was passiert für den Nutzer?¶
- Benachrichtigungen: Alerts, Downtimes, Todo-Updates können an Mattermost gesendet werden
- Zwei Modi:
- Webhook: Einfaches Markdown, klassischer Incoming-Webhook
- API: Rich Formatting, Action-Buttons (z. B. „Downtime bestätigen“, „Snooze“), Message-Updates nach Aktion
- Rück-Aktionen: Klickt ein Benutzer in Mattermost auf einen Button, wird das zugehörige Objekt in der Polycrate API aktualisiert (z. B. Downtime bestätigt)
- User-Matching: Über E-Mail wird der Mattermost-Benutzer dem Polycrate-Benutzer zugeordnet – Aktionen werden dem richtigen Konto zugeschrieben
Konfiguration¶
- Notification Sink: Neuen Sink mit Typ „Mattermost“ anlegen
- Webhook-Modus: Webhook-URL von Mattermost eintragen
- API-Modus: Bot-Token, Server-URL, Channel-ID, Integration-Token (für Callback-Verifikation)
Nutzen¶
- Schnelle Reaktion auf Alerts direkt aus dem Chat
- Kein Wechsel in die Web-UI nötig für Bestätigungen
- Team-weite Sichtbarkeit von Incidents
Harbor (Container Registry)¶
Was passiert für den Nutzer?¶
- Projekt pro Organisation: Jede Organisation erhält automatisch ein Harbor-Projekt – als Container-Registry-Namespace
- OIDC-Gruppe: Eine Harbor-Gruppe wird mit dem Organisation-Slug angelegt; Keycloak-Benutzer mit dem passenden
orgs-Claim werden bei Harbor-Login automatisch der Gruppe zugeordnet - Maintainer-Berechtigung: Die Org-Gruppe erhält Maintainer-Rechte im Projekt – Push, Pull, Repository-Verwaltung
- Quota-Tracking: Die genutzte Speichermenge und das Limit des Harbor-Projekts werden in der Organisation angezeigt (Registry Quota)
- Keine manuelle Anlage: Bei aktivierter Integration erfolgt die Bereitstellung automatisch während der Organisation-Reconciliation
Konfiguration¶
- System Config → Integration: Harbor: Endpoint, Admin-Username, Admin-Passwort, Aktivierung (
HARBOR_INTEGRATION_ENABLED) - Harbor-seitig: OIDC mit Keycloak konfigurieren; Group Claim Name =
orgs(muss mit Keycloak übereinstimmen)
Nutzen¶
- Einheitlicher Registry-Namespace pro Organisation
- Keine manuelle Projekt- und Gruppenerstellung
- Quota-Übersicht in der Polycrate API
PowerDNS (DNS)¶
Was passiert für den Nutzer?¶
- Zentrale DNS-Verwaltung: DNS-Zonen und Records werden in der Polycrate API angelegt und bearbeitet
- Sofortige Übertragung: Änderungen werden synchron an PowerDNS übermittelt – keine Wartezeit
- Unterstützte Record-Typen: A, AAAA, CNAME, TXT, NS, SOA und weitere
PowerDNS muss separat bereitgestellt werden
PowerDNS wird nicht von der Polycrate API mitgeliefert. Der DNS-Service muss über einen Polycrate Block oder eine andere Infrastruktur-Komponente bereitgestellt werden. Die Polycrate API verbindet sich mit dem konfigurierten PowerDNS-Endpoint.
Konfiguration¶
- System Config → Integration: PowerDNS-API-Endpoint, API-Schlüssel, Nameserver-Liste, SOA-RName
Nutzen¶
- DNS-Verwaltung aus einer Hand mit Infrastruktur
- Konsistente Namensauflösung über alle Workspaces
CentralNic (Domain-Registrar)¶
Was passiert für den Nutzer?¶
- Domain-Registrierung: Neue Domains können direkt über die Polycrate API bei CentralNic (RRPProxy) registriert werden
- Portfolio-Import: Bestehende Domains aus dem Registrar-Konto können importiert werden
- Verwaltung: Status, Ablaufdatum, Nameserver und Kontakte einsehen und bearbeiten
- Verknüpfung mit DNS: Eine Domain kann optional mit einer DNSZone verknüpft werden – dann ist die technische Auflösung in PowerDNS abgebildet
Weitere Registrar-Anbindungen
CentralNic ist der erste unterstützte Domain-Registrar. Weitere Registrar-Anbindungen sind in Arbeit.
Konfiguration¶
- Administration → Domain Registrar: Neuen Registrar mit Typ „CentralNic“ anlegen; API-Zugangsdaten eintragen
- System Config: Optional ein „System Domain Registrar“ festlegen, der im Create-Formular vorausgewählt wird
Übersicht: Wo wird was konfiguriert?¶
| Integration | Konfigurationsort | Pflicht/Optional |
|---|---|---|
| Keycloak | System Config → Integration: Keycloak | Optional (für Harbor/RocketChat OIDC) |
| GitLab | System Config → Integration: GitLab | Optional (für Workspace-Repos) |
| RocketChat | System Config → Integration: RocketChat | Optional |
| Mattermost | Notification Sink (pro Sink) | Optional |
| Harbor | System Config → Integration: Harbor | Optional |
| PowerDNS | System Config → Integration | Optional (für DNS) |
| CentralNic | Domain Registrar (pro Registrar) | Optional (für Domains) |
Siehe auch¶
- Authentifizierung – SSO, API-Keys
- Domains & DNS – Domain- und DNS-Verwaltung
- Wartungsfenster – Benachrichtigungen bei Wartungen