Aller au contenu
English

createDaytonaSandboxProvider

import { createDaytonaSandboxProvider } from "@elie-laloum/outpost/providers/daytona";

Crée un provider distant sur Daytona ; le SDK optionnel @daytona/sdk se charge à l’acquisition. Chaque acquire crée une sandbox et confirme la politique egress éventuelle avant de préparer le workspace. release, ou une préparation en échec, supprime la sandbox.

Exemple complet et règles détaillées.

  • optionsOptionnel
    DaytonaOptions | undefined
    Réglages de connexion du client Daytona, de création de sandbox, d’egress, de racine du workspace, d’environnement et de conservation des sorties.
  • options.egressOptionnel
    EgressPolicy | undefined
    Politique portable appliquée par Daytona : deny-all, jusqu’à 100 domaines ou jusqu’à 10 allowCidrs IPv4, pas les deux, et aucun denyCidrs. Outpost la confirme avant de préparer le workspace ; un refus échoue avec le code provider et supprime la sandbox (il faut un compte Tier 3 ou 4 avec WRITE_SANDBOXES).
  • options.connectionOptionnel
    DaytonaConfig | undefined
    Réglages passés au constructeur du client Daytona, comme la clé et l’URL d’API.
  • options.createOptionnel
    CreateSandboxFromImageParams | CreateSandboxFromSnapshotParams | undefined
    Paramètres de création passés au SDK, depuis une image ou un snapshot. Ses champs réseau sont incompatibles avec egress et gardent sinon la sémantique Daytona, sans confirmation d’Outpost ; le code que l’image lance d’elle-même peut s’exécuter avant la fin de l’acquisition.
  • options.variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables d’environnement définies pour chaque commande de la sandbox, en valeurs littérales. Une clé aussi déclarée par l’agent échoue avec le code configuration.
  • options.rootOptionnel
    string | undefined
    Répertoire du dépôt dans la sandbox, <home>/outpost par défaut.
  • options.retainOptionnel
    number | undefined
    Octets de fin de sortie conservés par flux, 65536 par défaut.
  • connectOptionnel
    ((config?: DaytonaConfig) => Promise<Pick<Daytona, "create" | "delete">>) | undefined
    Renvoie le client dont create() et delete() gèrent les sandboxes, new Daytona(connection) de @daytona/sdk par défaut.

SandboxProvider

import type { Daytona, DaytonaConfig } from "@daytona/sdk";

export declare function createDaytonaSandboxProvider(
  options?: DaytonaOptions,
  connect?: (
    config?: DaytonaConfig,
  ) => Promise<Pick<Daytona, "create" | "delete">>,
): SandboxProvider;