Référence / Agent Sandboxes
Ouvrir un terminal
Passe à un WebSocket pour le terminal interactif d'un bac à sable en cours d'exécution.
/v1/customer/tenants/{tenantId}/sandboxes/{sandboxId}/terminalURL de base : https://api.runzivo.dev
Authentification
Envoyez Authorization: Bearer <token> avec un jeton d’accès client ou une clé d’API de l’espace de travail.
Permission de clé d’API : sandboxes:write. Ce sont des permissions, et non des portées héritées. Une clé dotée de la portée all:all fonctionne aussi, dans les limites des permissions actuelles de son créateur dans l’espace de travail.
Un navigateur peut plutôt utiliser un billet de terminal à usage unique, sans en-tête Authorization.
Paramètres
| Champ | Description |
|---|---|
tenantIdstring · pathObligatoire | L'ID de locataire (tenant) de votre espace de travail. Remplacez l'espace réservé par un ID auquel votre jeton a accès. |
sandboxIdstring · pathObligatoire | L'id renvoyé à la création du bac à sable : sbx_ suivi de 24 caractères hexadécimaux en minuscules. |
ticketstring · queryFacultatif | Billet de terminal de navigateur à usage unique. Fournissez-le sans Authorization ; les clients d’API et de CLI envoient plutôt un jeton bearer. |
Corps de la requête
Aucun corps de requête n’est requis.
Comportement et limites
- Nécessite un client WebSocket. L'exemple cURL montre seulement la requête de mise à niveau HTTP ; ce n'est pas un client de terminal interactif.
- Les octets du terminal circulent en trames binaires dans les deux sens, jamais en base64. La seule trame de texte est un objet resize : {"type":"resize","cols":80,"rows":24} ; chaque dimension doit être comprise entre 1 et 1000.
- Répondez par pong aux pings du serveur (toutes les 30 secondes). Jusqu'à deux terminaux par bac à sable. Une nouvelle connexion crée un nouveau shell ; une session déconnectée ne reprend pas.
- Codes de fermeture : 1000 pour une fermeture normale ou liée au cycle de vie, ou un délai d'inactivité de 30 minutes ; 1003 trame de texte invalide ; 1008 input_rate ; 1009 trame de plus de 64 KiB ; 1011 défaillance du serveur ou output_overflow.
Réponses
| État | Signification |
|---|---|
| 101 Changement de protocole | WebSocket |
| 400 Requête invalide | JSON mal formé, champs inconnus ou valeurs invalides. Les mises à niveau de terminal rejettent aussi les négociations (handshakes) mal formées. |
| 401 Non autorisé | Jeton porteur (bearer) manquant ou invalide. Une requête de terminal avec ticket peut plutôt renvoyer ticket_invalid. |
| 403 Interdit | L'appelant n'a pas l'appartenance à l'espace de travail ni la permission requise, ou la clé d'API n'est pas autorisée. Les codes incluent tenant_membership_required, permission_required et api_key_scope_required. |
| 404 Introuvable | Aucun bac à sable avec cet ID n'existe dans l'espace de travail autorisé. |
| 409 Conflit | L'opération n'est pas permise dans l'état actuel du bac à sable. Consultez les notes de l'opération pour d'autres codes de conflit possibles. |
| 426 Mise à niveau requise | La requête ne contenait pas de demande de mise à niveau vers WebSocket. |
| 500 Erreur interne | Le serveur n'a pas pu traiter la requête. |
| 503 Indisponible | Le service de bacs à sable est indisponible. Les opérations d'exécution de commande et de terminal peuvent aussi renvoyer sandbox_exec_unavailable. |
Les exemples utilisent des identifiants, des dates et des valeurs fictifs. Consultez la réponse et l’état réels dans votre espace de travail.
Limites et facturation des bacs à sable →
Outils de la page
Voir en Markdown (anglais)Poser une question à une IA sur cette page
Ouvrir dans ChatGPTOuvrir dans ClaudeOuvrir dans CursorClaude affiche une bannière de mise en garde sur toute invite préremplie. C’est normal : examinez l’invite, puis envoyez-la.