Connecter
Connecte Modal depuis le terminal. Passe --help pour les options que Modal accepte, plus --no-browser pour les environnements sans interface graphique.
polylane cloud connect --provider modalUn identifiant de token et un secret de token depuis tes réglages Modal.
Modal se connecte avec un token créé dans tes réglages Modal. Un token Modal correspond à exactement un espace de travail, donc un token connecte un espace de travail. Les tokens sont chiffrés avant d'être stockés, et l'agent ne les voit jamais.
- Ouvre Modal, va dans Settings → Tokens.
- Clique sur New token et copie à la fois le token ID (qui commence par
ak-) et le token secret (qui commence paras-). - Colle les deux valeurs dans Polylane.
- Polylane valide la paire et commence la synchronisation.
Polylane découvre tes environnements et, dans chacun, tes apps, tes fonctions y compris les points d'accès web, les sandboxes en cours d'exécution, les volumes, les secrets, les files d'attente et les dicts. Les secrets sont cartographiés par nom uniquement : Modal n'expose jamais la valeur des secrets.
Modal n'a pas d'option de token en lecture seule, donc un token porte les permissions du compte qui l'a créé. Polylane ne fait que lire depuis Modal pendant la synchronisation.
Dépannage
Erreur "Invalid token"
- Le token ID et le token secret sont tous deux requis ; l'un sans l'autre ne peut pas s'authentifier.
- Vérifie que le token n'a pas été révoqué dans les réglages de Modal.
- Confirme que tu as copié la valeur entière, préfixes
ak-etas-compris.
Ressources manquantes
- Les fonctions sont découvertes via leur app, donc une app qui n'a jamais été déployée n'a aucune fonction à montrer.
- Les sandboxes terminées sont ignorées : seules celles en cours d'exécution apparaissent.
- Déclenche une synchronisation manuelle pour rafraîchir plus tôt que la prochaine passe planifiée.
Métriques et coût
- Les apps portent deux graphiques : les lignes de log stderr par intervalle, et la dépense mesurée par heure. Modal ne rapporte que des jauges instantanées pour tout le reste, donc les fonctions, sandboxes et volumes n'ont pas de graphiques propres.
- Les compteurs stderr sont des lignes de log plutôt que des échecs : une traceback Python fait plusieurs lignes.
- Modal conserve les logs 24 heures, donc un graphique ne remonte jamais plus loin.
- La dépense est attribuée par app, et Modal ne matérialise une heure qu'une fois qu'elle est terminée, donc l'heure la plus récente paraît basse jusqu'à ce qu'elle se stabilise.
Connecte Modal depuis un job de CI ou tout autre environnement sans navigateur.
Connecter Modal 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 Modal depuis Settings → Tokens : le token ID (qui commence par
ak-) et le token secret (qui commence paras-).
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": "modal",
"workspaceId": "ws_0abc123",
"tokenId": "ak-...",
"tokenSecret": "as-..."
}'
Le token correspond à exactement un espace de travail Modal, donc un appel connecte un espace de travail.
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": "modal",
"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 Modal 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. Tout ce que Polylane avait mis en place dans Modal est retiré aussi ; rien n'est laissé derrière.
polylane cloud disconnect <id>Outils
5Les opérations que les agents peuvent effectuer dans les threads.
Ressources prises en charge
10Les types de ressources qui apparaissent dans ton graphe d'infrastructure.