PlanetScale
Verbinden
Verbinde PlanetScale aus dem Terminal. Mit --help siehst du die Flags, die PlanetScale akzeptiert, dazu --no-browser für Umgebungen ohne Browser.
polylane cloud connect --provider planetscaleOAuth-Autorisierung oder ein Service-Token aus den Einstellungen deiner PlanetScale-Organisation.
PlanetScale wird über OAuth verbunden: Klicke auf Connect with PlanetScale, autorisiere den Lesezugriff bei PlanetScale, und du wirst zurückgeleitet, während der Sync bereits läuft. Wenn dein PlanetScale-Konto auf mehr als eine Organisation zugreifen kann, wähle auf Nachfrage die, die verbunden werden soll. Tokens werden vor dem Speichern verschlüsselt, und der Agent sieht sie nie.
Alternative: Service-Token
Wenn du lieber langlebige Zugangsdaten verwendest, verbinde stattdessen mit einem Service-Token:
- Öffne PlanetScale und gehe in deiner Organisation zu Settings → Service tokens.
- Klicke auf Create service token und kopiere sowohl die Token-ID als auch den Token.
- Gib dem Token Lesezugriff auf die Organisation und ihre Datenbanken (z. B.
read_databases,read_branches). - Füge Token-ID und Token in Polylane ein. Wenn der Token mehr als eine Organisation erreichen kann, gib zusätzlich den Namen der Organisation an, die verbunden werden soll.
- Polylane prüft den Token und startet den Sync.
Jede Verbindung deckt eine einzelne PlanetScale-Organisation ab. Polylane entdeckt ihre Datenbanken und deren Branches, inklusive Zustand, Plan, Region und Schema-Aktivität.
Fehlerbehebung
Fehler "Invalid service token"
- Token-ID und Token sind beide erforderlich; der Token allein kann sich nicht authentifizieren.
- Prüfe, ob der Token in den PlanetScale-Einstellungen gelöscht wurde.
- Stelle sicher, dass der Token Lesezugriff auf die Organisation hat.
Fehler "Multiple PlanetScale organizations are reachable"
- Die Zugangsdaten erreichen mehr als eine Organisation, nenne also die, die verbunden werden soll.
- Beim Verbinden über OAuth in der Konsole wählst du die Organisation, wenn du nach der Autorisierung danach gefragt wirst.
- Beim Verbinden über die API setzt du das Feld
organizationauf den Namen der Organisation.
Fehlende Ressourcen
- PlanetScale kann einige Minuten brauchen, bis alles synchronisiert ist.
- Starte über den Kontokopf einen manuellen Sync, um zu aktualisieren.
Verbindung trennen
Trenne das Konto in Polylane, dann lösche den Service-Token in den Einstellungen deiner PlanetScale-Organisation.
Verbinde PlanetScale aus einem CI-Job oder einer anderen Umgebung ohne Browser.
Für die Verbindung mit PlanetScale braucht es keinen Browser: Derselbe Endpunkt, den die Konsole aufruft, passt in einen CI-Job. Ein authentifizierter POST erstellt die Verbindung und startet den ersten Sync.
Voraussetzungen
- Ein Polylane-API-Schlüssel mit den Scopes
cloud_accounts:writeundcloud_accounts:read. Siehe API-Schlüssel und OAuth. - Deine Workspace-ID, die mit
ws_beginnt. Lies sie mit demselben Schlüssel ausGET /v1/workspaces. - Ein PlanetScale-Service-Token-Paar aus den Settings → Service tokens deiner Organisation, mit Lesezugriff auf die Organisation (z. B.
read_databases,read_branches). Der OAuth-Ablauf der Konsole braucht einen Browser; Service-Tokens nicht.
Verbindung erstellen
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "planetscale",
"workspaceId": "ws_0abc123",
"tokenId": "<service-token-id>",
"token": "<service-token>",
"organization": "my-org"
}'
Ein Aufruf verbindet eine PlanetScale-Organisation.
organizationdarf nur weggelassen werden, wenn der Token genau eine Organisation erreicht; sonst schlägt der Aufruf mit einem400fehl, das die erreichbaren Organisationsnamen auflistet.
Die Antwort listet auf, was verbunden wurde, der erste Sync läuft bereits. Gekürzt auf die zwei Felder, die der Rest des Ablaufs liest:
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Ein bereits verbundenes Konto landet in failures statt in accounts, ein wiederholter Aufruf dupliziert also nie eine Verbindung.
Auf den ersten Sync warten
Frage jedes zurückgegebene Konto über seine id ab, bis status ready erreicht (new bei der Registrierung, syncing, während Ressourcen einlaufen):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
Gib der Schleife eine Frist, damit ein fehlgeschlagenes Verbinden den Job fehlschlagen lässt, statt ihn hängen zu lassen. Sobald das Konto ready ist, sind seine Ressourcen in der Topologie, und Polylane hat seinen ersten Check gestartet.
Über die API trennen
Das Löschen der Verbindung stoppt jeden Sync und Check und löscht die Zugangsdaten, die Polylane gespeichert hatte. Der Aufruf braucht den Scope cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Widerrufe dann die PlanetScale-Zugangsdaten auf Anbieterseite, wie unten unter Trennen beschrieben.
Trennen
Beim Trennen stoppen alle Syncs und Checks, und die Zugangsdaten, die Polylane gespeichert hatte, werden gelöscht. Polylane entfernt, was sich über die API von PlanetScale entfernen lässt. Folgendes bleibt bestehen, bis du es selbst entfernst:
- OAuth grant
polylane cloud disconnect <id>Tools
2Operationen, die Agents in Threads ausführen können.
Unterstützte Ressourcen
2Ressourcentypen, die in deinem Infrastrukturgraphen erscheinen.