PlanetScale
Connecter
Connecte PlanetScale depuis le terminal. Passe --help pour les options que PlanetScale accepte, plus --no-browser pour les environnements sans interface graphique.
polylane cloud connect --provider planetscaleAutorisation OAuth, ou un token de service depuis les réglages de ton organisation PlanetScale.
PlanetScale se connecte via OAuth : clique sur Connect with PlanetScale, autorise l'accès en lecture sur PlanetScale, et tu es redirigé avec la synchronisation déjà lancée. Si ton compte PlanetScale peut accéder à plus d'une organisation, choisis celle à connecter quand on te le demande. Les tokens sont chiffrés avant d'être stockés, et l'agent ne les voit jamais.
Alternative par token de service
Si tu préfères un identifiant de longue durée, connecte-toi plutôt avec un token de service :
- Ouvre PlanetScale, va dans Settings → Service tokens de ton organisation.
- Clique sur Create service token et copie à la fois le token ID et le token.
- Accorde au token l'accès en lecture à l'organisation et à ses bases de données (par exemple
read_databases,read_branches). - Colle le token ID et le token dans Polylane. Si le token peut atteindre plus d'une organisation, fournis aussi le nom de l'organisation à connecter.
- Polylane valide le token et commence la synchronisation.
Chaque connexion couvre une seule organisation PlanetScale. Polylane découvre ses bases de données et leurs branches, y compris l'état, le forfait, la région et l'activité de schéma.
Dépannage
Erreur "Invalid service token"
- Le token ID et le token sont tous deux requis ; le token seul ne peut pas s'authentifier.
- Vérifie que le token n'a pas été supprimé dans les réglages de PlanetScale.
- Assure-toi que le token a l'accès en lecture à l'organisation.
Erreur "Multiple PlanetScale organizations are reachable"
- Les identifiants peuvent atteindre plus d'une organisation, donc nomme celle à connecter.
- En connexion via OAuth dans la console, choisis l'organisation quand on te le demande après l'autorisation.
- En connexion via l'API, renseigne le champ
organizationavec le nom de l'organisation.
Ressources manquantes
- PlanetScale peut mettre quelques minutes à tout synchroniser.
- Déclenche un Sync manuel depuis l'en-tête du compte pour rafraîchir.
Déconnexion
Déconnecte le compte dans Polylane, puis supprime le token de service depuis les réglages de ton organisation PlanetScale.
Connecte PlanetScale depuis un job de CI ou tout autre environnement sans navigateur.
Connecter PlanetScale ne nécessite aucun navigateur : le même point d'accès que la console appelle tient dans un job de CI. Un seul POST authentifié crée la connexion et démarre la première synchronisation.
Prérequis
- Une clé API Polylane avec les scopes
cloud_accounts:writeetcloud_accounts:read. Voir Clés API et OAuth. - L'identifiant de ton espace de travail, qui commence par
ws_. Lis-le depuisGET /v1/workspacesavec la même clé. - Une paire de tokens de service PlanetScale depuis Settings → Service tokens de ton organisation, avec l'accès en lecture à l'organisation (par exemple
read_databases,read_branches). Le flux OAuth de la console a besoin d'un navigateur ; les tokens de service, non.
Créer la connexion
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"
}'
Un seul appel connecte une organisation PlanetScale.
organizationne peut être omis que lorsque le token n'atteint qu'une seule organisation ; sinon l'appel échoue avec un400qui liste les noms des organisations atteignables.
La réponse liste ce qui a été connecté, avec la première synchronisation déjà en cours. Réduite aux deux champs que le reste du flux lit :
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Un compte déjà connecté atterrit dans failures au lieu de accounts, donc répéter l'appel ne duplique jamais une connexion.
Attendre la première synchronisation
Interroge chaque compte renvoyé par son id jusqu'à ce que status atteigne ready (new à l'enregistrement, syncing pendant que les ressources arrivent) :
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
Donne une échéance à la boucle pour qu'une connexion échouée fasse échouer le job au lieu de le bloquer. Une fois que le compte est ready, ses ressources sont dans la topologie et Polylane a démarré sa première vérification.
Déconnecter depuis l'API
Supprimer la connexion arrête chaque synchronisation et chaque vérification et supprime les identifiants que Polylane détenait. L'appel nécessite le 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"
Révoque ensuite l'identifiant PlanetScale côté fournisseur, comme décrit sous Disconnect ci-dessous.
Déconnecter
La déconnexion arrête chaque synchronisation et chaque vérification et supprime les identifiants que Polylane détenait. Polylane retire ce que l'API de PlanetScale lui permet de retirer. Ce qui suit reste jusqu'à ce que tu le retires toi-même :
- OAuth grant
polylane cloud disconnect <id>Outils
2Les opérations que les agents peuvent effectuer dans les threads.
Ressources prises en charge
2Les types de ressources qui apparaissent dans ton graphe d'infrastructure.