API-Integration¶
Polycrate unterstützt die Integration mit dem PolyHub über eine HTTP-API. Diese Integration ermöglicht es, Action-Ergebnisse zu übermitteln, Workspace-Daten zu synchronisieren und weitere Cloud-Features zu nutzen.
API-Konfiguration¶
Die API-Integration kann über Flags oder die Workspace-Konfiguration aktiviert werden.
Globale API-Flags¶
# API aktivieren
polycrate run my-block install --api-enabled
# API-URL festlegen
polycrate run my-block install --api-url https://hub.polycrate.io
# API-Key für Authentifizierung
polycrate run my-block install --api-api-key <your-api-key>
# Action-Ergebnisse übermitteln (Standard: true)
polycrate run my-block install --api-submit-action-runs
Workspace-Konfiguration¶
Sie können die API-Integration auch in Ihrer workspace.poly konfigurieren:
name: my-workspace
api:
enabled: true
url: https://hub.polycrate.io
api_key: ${API_KEY} # Aus Umgebungsvariable
submit_action_runs: true
validate_workspace_on_load: false
API-Features¶
Action-Ergebnisse übermitteln¶
Wenn --api-submit-action-runs aktiviert ist (Standard), werden die Ergebnisse jeder Action-Ausführung an die API übermittelt. Dies ermöglicht:
- Zentrale Überwachung von Action-Ausführungen
- Historie und Audit-Trail
- Fehleranalyse und Reporting
Workspace Encryption Key Management¶
Die API verwaltet zentral die Encryption Keys für verschlüsselte Workspaces. Dies ist die empfohlene Lösung für Teams.
Funktionsweise:
- Automatischer Key-Abruf: Die CLI fragt den Workspace Encryption Key automatisch von der API ab
- Höchste Priorität: API-Keys überschreiben lokale Umgebungsvariablen
- Workspace-spezifisch: Jeder Workspace erhält seinen eigenen Encryption Key
- Team-Sharing: Alle Teammitglieder mit API-Zugang können den Workspace entschlüsseln
Credential-Typen:
Die API speichert Encryption Keys als Workspace Credentials mit folgenden Eigenschaften:
- Kind:
workspace-encryption - Private Key (
ssh_private_key): age Secret Key für Ver-/Entschlüsselung - Public Key (
ssh_public_key): age Public Key (automatisch abgeleitet) - State:
READY,PENDINGoderERROR
Beispiel-Workflow:
# 1. API konfigurieren
cat > ~/.polycrate/polycrate.yml << EOF
api:
enabled: true
url: https://hub.polycrate.io
api_key: your-api-key
EOF
# 2. Workspace verschlüsseln (Key wird von API geholt)
polycrate workspace encrypt
# 3. Teammitglied klont Repository
git clone <repo>
cd workspace
# 4. Workspace entschlüsseln (Key wird automatisch von API geholt)
polycrate workspace decrypt
Vorteile:
- ✅ Kein manuelles Key-Sharing erforderlich
- ✅ Zentrale Key-Rotation möglich
- ✅ Audit-Logging aller Key-Zugriffe
- ✅ Automatisches State-Tracking
Für Details siehe Workspace-Verschlüsselung.
Workspace-Validierung¶
Mit --api-validate-workspace-on-load wird der Workspace beim Laden gegen die API validiert:
Dies prüft:
- Ob alle Blocks in der API registriert sind
- Ob die verwendeten Versionen kompatibel sind
- Ob Sicherheitsupdates verfügbar sind
API-Informationen anzeigen¶
Zeigt aktuelle API-Konfiguration und Verbindungsstatus an.
PolyHub-Integration¶
Der PolyHub unter hub.polycrate.io ist die offizielle API-Implementierung von Polycrate.
Authentifizierung¶
Sie können sich mit Benutzername/Passwort oder API-Key authentifizieren:
# Mit API-Key
polycrate hub inspect ayedo/k8s/cluster --hub-api-key <your-key>
# Mit Benutzername/Passwort
polycrate hub inspect ayedo/k8s/cluster --hub-username user --hub-password pass
Hub-Befehle¶
Beispiel:
polycrate hub inspect ayedo/k8s/cluster
# Zeigt: Beschreibung, verfügbare Versionen, Actions, Dependencies, etc.
Umgebungsvariablen¶
Für sensible Daten wie API-Keys empfiehlt sich die Verwendung von Umgebungsvariablen:
export POLYCRATE_API_KEY="your-api-key"
export POLYCRATE_API_URL="https://hub.polycrate.io"
polycrate run my-block install --api-enabled
Sicherheit¶
- API-Keys sollten niemals in der Workspace-Konfiguration gespeichert werden
- Verwenden Sie Umgebungsvariablen oder sichere Secret-Management-Lösungen
- Bei verschlüsselten Workspaces können API-Keys in der verschlüsselten Konfiguration gespeichert werden
CLI-Referenz¶
Für eine vollständige Übersicht aller CLI-Befehle siehe:
- CLI-Referenz - Vollständige Dokumentation aller Befehle
- PolyHub - Mehr über den PolyHub
- Konfiguration - Workspace-Konfiguration