Documentation

Hôte, ticket et relais SSH

Bientôt disponible. Contrat d’API prévu, sujet à changement. Ces fonctions ne sont pas encore offertes en production.

Authentification et chemin

Préfixe : /v1/customer/tenants/{tenantId}/sandboxes/{sandboxId}. Les requêtes utiliseront un jeton d’accès bearer ou une clé API de l’espace de travail. Les droits de bac à sable et de dépôt indiqués sont des permissions, pas des scopes hérités. Une clé all:all fonctionnera aussi, dans les limites des permissions actuelles de son créateur. Le relais SSH utilise son ticket plutôt qu’un jeton bearer.

Confiance /ssh-host

GET /ssh-host exigera sandboxes:read ou sandboxes:write. Une réponse 200 retournera host_ca_public_key (l’AC d’hôte Ed25519) et host_key_alias (sbx_… .sandbox.runzivo.dev). La route fonctionnera pour un bac à sable arrêté et ne créera aucun identifiant. Conservez StrictHostKeyChecking yes et utilisez l’AC et le HostKeyAlias retournés.

Ticket /ssh-ticket

POST /ssh-ticket exigera sandboxes:write et un bac à sable en cours d’exécution. Le champ JSON public_key sera obligatoire. Il devra contenir une seule clé publique OpenSSH Ed25519 ou ECDSA P-256 sans options, d’au plus 4096 octets UTF-8. Le corps de la requête sera limité à 8 Kio. Une réponse 201 retournera url, ticket, expires_at, certificate, certificate_expires_at, principal=user, host_ca_public_key et host_key_alias. Limites prévues : le ticket sera à usage unique et durera 30 secondes. Le certificat utilisateur sera valide quinze minutes. Ne journalisez jamais ni l’un ni l’autre.

Relais /ssh

GET /ssh?ticket=… utilisera le ticket émis plutôt qu’un en-tête bearer. Une réponse 101 ouvrira un WebSocket. Les trames binaires transporteront les octets SSH bruts. Une trame texte {"type":"eof"} fermera une direction. OpenSSH exigera le ProxyCommand du CLI. Il n’y aura aucun port SSH public. Limites prévues : deux sessions par bac à sable, trente minutes d’inactivité au maximum et 8 Mio de sortie non lue.

Erreurs

La route de l’hôte retournera 401, 403, 404, 500 et 503. La route du ticket retournera aussi 400, 409 et 429 ticket_limit_reached. Le relais retournera aussi 400, 409, 426 websocket_required et 429 rate_limited. Un code 503 avec sandbox_ssh_unavailable indiquera que SSH, ses AC ou le certificat d’hôte de l’exécution sont indisponibles. Les champs message et message_fr_CA proposeront parfois un redémarrage. D’autres prérequis manquants retourneront sandboxes_unavailable ou sandbox_exec_unavailable.

Pages liées et langue

English

Aperçu API

On this page and page tools

Ask Docs

Ask a question and open it in your AI assistant. The prompt tells it to answer from the Runzivo docs and link the pages it used.

Try asking

Your question opens in the assistant you pick, under its own terms. Runzivo does not see or store it.