PlanetScale
Połącz
Połącz PlanetScale z terminala. Podaj --help, aby zobaczyć flagi, które PlanetScale przyjmuje, plus --no-browser dla środowisk headless.
polylane cloud connect --provider planetscaleAutoryzacja OAuth albo token usługi z ustawień organizacji PlanetScale.
PlanetScale łączy się przez OAuth: kliknij Connect with PlanetScale, autoryzuj dostęp do odczytu w PlanetScale, a wrócisz z już rozpoczętą synchronizacją. Jeśli twoje konto PlanetScale ma dostęp do więcej niż jednej organizacji, wybierz tę do połączenia, gdy zostaniesz o to poproszony. Tokeny są szyfrowane przed zapisaniem, a agent nigdy ich nie widzi.
Alternatywa: token usługi
Jeśli wolisz długowieczne poświadczenie, połącz się zamiast tego tokenem usługi:
- Otwórz PlanetScale, przejdź do Settings → Service tokens swojej organizacji.
- Kliknij Create service token i skopiuj zarówno identyfikator tokenu, jak i token.
- Nadaj tokenowi dostęp do odczytu organizacji i jej baz danych (np.
read_databases,read_branches). - Wklej identyfikator tokenu i token do Polylane. Jeśli token ma dostęp do więcej niż jednej organizacji, podaj też nazwę organizacji do połączenia.
- Polylane weryfikuje token i zaczyna synchronizację.
Każde połączenie obejmuje jedną organizację PlanetScale. Polylane odkrywa jej bazy danych i ich gałęzie, łącznie ze stanem, planem, regionem i aktywnością schematu.
Rozwiązywanie problemów
Błąd "Invalid service token"
- Wymagane są zarówno identyfikator tokenu, jak i token; sam token nie uwierzytelnia.
- Sprawdź, czy token nie został usunięty w ustawieniach PlanetScale.
- Upewnij się, że token ma dostęp do odczytu organizacji.
Błąd "Multiple PlanetScale organizations are reachable"
- Poświadczenia mają dostęp do więcej niż jednej organizacji, więc podaj nazwę tej do połączenia.
- Łącząc przez OAuth w konsoli, wybierz organizację, gdy zostaniesz o to poproszony po autoryzacji.
- Łącząc przez API, ustaw pole
organizationna nazwę organizacji.
Brakujące zasoby
- PlanetScale może potrzebować kilku minut, aby zsynchronizować wszystko.
- Wywołaj ręczną Sync z nagłówka konta, aby odświeżyć.
Odłączanie
Odłącz konto w Polylane, a potem usuń token usługi w ustawieniach organizacji PlanetScale.
Połącz PlanetScale z zadania CI lub dowolnego innego środowiska bez przeglądarki.
Połączenie PlanetScale nie potrzebuje przeglądarki: ten sam punkt końcowy, który wywołuje konsola, mieści się w zadaniu CI. Jeden uwierzytelniony POST tworzy połączenie i uruchamia pierwszą synchronizację.
Wymagania wstępne
- Klucz API Polylane z zakresami
cloud_accounts:writeicloud_accounts:read. Zobacz Klucze API i OAuth. - Identyfikator twojego obszaru roboczego, zaczynający się od
ws_. Odczytaj go zGET /v1/workspacestym samym kluczem. - Para tokenu usługi PlanetScale z Settings → Service tokens twojej organizacji, z dostępem do odczytu organizacji (np.
read_databases,read_branches). Przepływ OAuth w konsoli wymaga przeglądarki; tokeny usługi nie.
Utwórz połączenie
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"
}'
Jedno wywołanie łączy jedną organizację PlanetScale.
organizationmożna pominąć tylko wtedy, gdy token ma dostęp do dokładnie jednej organizacji; w przeciwnym razie wywołanie kończy się błędem400wymieniającym nazwy dostępnych organizacji.
Odpowiedź wymienia, co zostało połączone, z już działającą pierwszą synchronizacją. Przycięta do dwóch pól, które czyta reszta przepływu:
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Konto, które jest już połączone, trafia do failures zamiast do accounts, więc powtórzenie wywołania nigdy nie duplikuje połączenia.
Poczekaj na pierwszą synchronizację
Odpytuj każde zwrócone konto po jego id, aż status osiągnie ready (new po rejestracji, syncing w trakcie napływu zasobów):
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
Daj pętli termin, aby nieudane połączenie kończyło zadanie błędem zamiast je zawieszać. Gdy konto jest ready, jego zasoby są w topologii, a Polylane uruchomiło pierwszą kontrolę.
Odłącz przez API
Usunięcie połączenia zatrzymuje każdą synchronizację i kontrolę oraz usuwa poświadczenia, które Polylane przechowywało. Wywołanie wymaga zakresu cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Potem odwołaj poświadczenie PlanetScale po stronie dostawcy, jak opisano poniżej w sekcji Disconnect.
Odłącz
Odłączenie zatrzymuje każdą synchronizację i kontrolę oraz usuwa poświadczenia, które Polylane przechowywało. Polylane usuwa to, na co pozwala API PlanetScale. Poniższe elementy zostają, dopóki sam ich nie usuniesz:
- OAuth grant
polylane cloud disconnect <id>Narzędzia
2Operacje, które agenci mogą wykonywać w wątkach.
Obsługiwane zasoby
2Typy zasobów, które pojawiają się w grafie twojej infrastruktury.