Base44 dans le Cloud Sandbox
Rédigez le code d’applications Base44 dans le cloud sandbox de Base44 avec votre propre agent de code. Il n’y a pas de checkout local : vous lisez, écrivez et exécutez des fichiers via les outils du sandbox (via MCP ou le CLIbase44 sandbox), et la plateforme build et déploie à partir de ce que vous écrivez.
Pour la manière de se connecter au sandbox (endpoint MCP ou CLI base44 sandbox, les outils read_file / write_file / edit_file / run_command / grep / list_directory / create_checkpoint — que le CLI expose sous des noms plus courts (sandbox read / sandbox write / sandbox edit / sandbox run / sandbox grep / sandbox ls / sandbox checkpoint), la boucle edit→preview→verify, la persistance et la concurrence), utilisez la compétence base44-remote-dev. Cette compétence couvre ce que vous pouvez écrire et comment une fois connecté.
Consultez ces références d’abord. Cette compétence et ses jumelles (base44-remote-dev,base44-sdk) sont la source de vérité — consultez-les avant de chercher sur le web. Voir Ordre des références et le README complet.
⚡ Le modèle mental : écrire le fichier est le déploiement
Vous travaillez sur une application distante, pas un checkout local. Le workflow CLI au niveau projet ne s’applique pas — n’exécutez jamaisbase44 deploy, base44 functions deploy, base44 ... push, base44 create ou base44 scaffold. Ils supposent un projet local et une étape de déploiement manuelle qui n’existe pas ici.
À la place : dès que vous écrivez un fichier de ressource dans le sandbox — une fonction backend, une entité ou un agent — la plateforme le déploie/synchronise à partir de là. Votre écriture est auto-commitée (~5s de debounce) et devient live. Vous n’exécutez, et ne devez pas attendre, aucune commande deploy / push.
Une exception — les connecteurs. Les connecteurs OAuth ne sont pas écrits comme des fichiers ; ils sont configurés contre l’application distante par son id, soit avec les outils MCP de connecteurs, soit avec les commandes dédiées, sans projet, base44 connectors (qui prennent --app-id et n’ont pas besoin de projet local). Voir Connecteurs ci-dessous.
Vous pouvez toujours utiliser run_command (sandbox run dans le CLI) pour des vérifications ordinaires (par exemple npm run build, npx tsc --noEmit, npm run lint) et l’aperçu — c’est de la vérification, pas du déploiement. Voir la boucle edit→preview→verify dans base44-remote-dev.
Ce que vous pouvez écrire aujourd’hui
| Ressource | Statut dans le sandbox |
|---|---|
Fonctions backend (base44/functions/) | ✅ Pris en charge — écrivez les fichiers ; ils sont déployés depuis le sandbox. |
Entités (base44/entities/) | ✅ Pris en charge — écrivez le fichier de schéma .jsonc ; il se synchronise automatiquement. Pas de entities push. |
Agents (base44/agents/) | ✅ Pris en charge — écrivez le fichier de config .jsonc ; il se synchronise automatiquement. Pas de agents push. |
Code front-end (src/…) | ✅ Pris en charge — éditez normalement ; HMR/aperçu le reflète. Utilisez la compétence base44-sdk pour l’usage des API du SDK. |
| Connecteurs (intégrations OAuth) | ✅ Pris en charge — configurés via le flux de connexion ci-dessous (outils MCP ou base44 connectors), pas en écrivant des fichiers. |
Fonctions backend
Les fonctions backend vivent dansbase44/functions/, un répertoire par fonction (nom en kebab-case). Dans le sandbox, vous n’avez qu’à créer le fichier entry.ts directement sous base44/functions/<name>/ — aucun function.jsonc n’est requis (le sandbox déduit la fonction du répertoire ; le fichier de config est ignoré dans ce mode) :
Deno.serve() et utilisent le préfixe npm: pour les paquets npm :
- Kebab-case pour le répertoire et le nom de la fonction ; entrée typiquement
entry.ts. createClientFromRequest(req)pour un client dans le contexte d’authentification de l’appelant ;base44.asServiceRole.…pour les opérations administrateur.- Lisez les secrets avec
Deno.env.get("KEY")(configurés dans les paramètres de l’application). - Retournez avec
Response.json(body, { status }); gérez les erreurs et définissez les codes de statut appropriés.
base44-cli : functions-create.md — mais ignorez ses sections “Deploying Functions” / CLI et ses instructions sur function.jsonc, qui supposent un projet local et ne s’appliquent pas dans le sandbox (ici, vous n’écrivez que entry.ts).
Appeler la fonction depuis le front-end :base44.functions.invoke(name, data)retourne la réponse axios brute — le JSON de votre fonction est sur.data(const result = res.data), pas sur l’objet de premier niveau, et lève en cas de non-2xx (corps d’erreur àerr.response.data). Consultezfunctions.mdde la compétencebase44-sdkpour les détails.
Entités
Un fichier.jsonc par entité dans base44/entities/. Écrivez simplement le fichier — il se synchronise automatiquement ; n’exécutez pas base44 entities push ni deploy.
- Nom du fichier :
{kebab-case}.jsonc— par exempleteam-member.jsoncpour une entité nomméeTeamMember. namede l’entité : PascalCase, alphanumérique uniquement (/^[a-zA-Z0-9]+$/).- Noms des champs :
snake_case.
string, number, integer, boolean, array, object, binary. Les formats de string incluent date, date-time, email, uri, uuid, file, richtext. Pour les détails complets du schéma et la sécurité au niveau ligne (RLS), consultez les références base44-cli entities-create.md et rls-examples.md — mais ignorez leurs sections entities push / deploy ; le sandbox synchronise le fichier pour vous.
Agents
Un fichier.jsonc par agent dans base44/agents/. Écrivez simplement le fichier — il se synchronise automatiquement ; n’exécutez pas base44 agents push ni deploy.
- Nom du fichier :
{agent_name}.jsonc— par exemplesupport_agent.jsonc. namede l’agent :/^[a-z0-9_]+$/(minuscules, underscores, 1-100 caractères).
name, description, instructions. Facultatifs : tool_configs (par défaut []), whatsapp_greeting. Les configs d’outils sont soit un outil d’entité (entity_name + allowed_operations : parmi read/create/update/delete), soit un outil de fonction backend (function_name + description). Pour le schéma complet de l’agent, consultez la section Agent Schema de SKILL.md de la compétence base44-cli — mais ignorez ses commandes agents push / agents pull / deploy, qui supposent un projet local ; dans le sandbox, le fichier se synchronise automatiquement.
Connecteurs (intégrations OAuth)
Les connecteurs (Google Calendar, Gmail, Slack, …) fournissent à vos fonctions backend des tokens pour appeler des API tierces. En remote-dev, il n’y a aucun fichier de connecteur à écrire — vous opérez sur le connecteur directement contre l’application par son id. Deux surfaces, même backend et même comportement :Scopes déclaratifs — lisez avant de définir. Connecter un connecteur remplace son ensemble de scopes par exactement ceux que vous passez (il ne fusionne pas). Tout scope omis est retiré et l’utilisateur est réinvité à consentir. Listez toujours d’abord les scopes actuels du connecteur et passez l’ensemble complet souhaité (ceux que vous voulez conserver plus tout nouveau).
OAuth nécessite un humain. Se connecter retourne une URL d’autorisation que l’utilisateur doit ouvrir dans un navigateur pour se connecter et consentir — vous ne pouvez pas le faire vous-même. Après qu’il ait terminé, refaites un list pour confirmer que c’est connecté et lire les scopes accordés (un fournisseur peut accorder moins que ce que vous avez demandé).
Via MCP (transport base44-remote-dev)
Deux outils, tous deux prenant appId. Scopes : list_connectors a besoin de apps:read ; initiate_connector_connection a besoin de apps:write (note : pas sandbox:write).
list_connectors—{ appId, integrationTypes? }. SansintegrationTypes, retourne le catalogue complet ; chaque entrée a le nom du connecteur, sa description, s’il est connecté, et (si connecté) son statut et ses scopes accordés. PassezintegrationTypespour tous les détails sur des connecteurs précis.initiate_connector_connection—{ appId, integrationType, scopes, connectionConfig? }.scopesest l’ensemble complet souhaité (voir la note sur les scopes déclaratifs). Retourne soitalready_authorized: true(rien à faire), soit uneredirect_urlque l’utilisateur doit ouvrir. Après qu’il se soit connecté, appelez à nouveaulist_connectorspour vérifier.
Via le CLI (sans projet, --app-id)
Ces sous-commandes base44 connectors fonctionnent sans projet local — elles résolvent l’id d’application depuis --app-id, puis BASE44_APP_ID, puis un .app.jsonc local. Aucun config.jsonc n’est requis.
--scopes accepte une liste séparée par des espaces ou des virgules. Comme avec MCP, l’utilisateur doit ouvrir l’URL d’autorisation affichée pour finaliser le consentement ; ensuite list-available / pull reflète l’état connecté et les scopes accordés.
C’est le seul usage du CLI Base44 qui a sa place dans remote-dev — il cible une application distante par id, sans projet local ni étape de déploiement. Ce n’est pas une contradiction avec la règle « pas de CLI » ci-dessus, qui concerne les commandes projet-local/deploy.
Utiliser un connecteur connecté dans le code
Se connecter n’autorise que le connecteur. Pour appeler réellement l’API tierce, récupérez son token d’accès OAuth dans une fonction backend avec le module connecteurs service-role —base44.asServiceRole.connectors.getConnection(integrationType) — et utilisez le accessToken retourné (et le connectionConfig facultatif) dans votre propre fetch :
getConnection() remplace le getAccessToken() déprécié. Pour la référence complète du module (signatures, connectionConfig, la liste des services disponibles et leurs identifiants de type), consultez connectors.md de la compétence base44-sdk.
Ordre des références et README complet
Consultez les références de cette compétence et de ses compétences jumelles (base44-remote-dev, base44-sdk) avant de chercher sur le web. Elles sont la source de vérité pour le pont sandbox, les conventions de fichiers/ressources et les API du SDK — préférez-les aux résultats internet généraux, souvent obsolètes ou faux pour Base44.
Pour la référence remote-dev complète et propre à votre application (instructions + tous les endpoints, publique, sans authentification pour la récupérer), lisez le README d’onboarding de votre application :
…/api/sandbox/<APP_ID>/claude-web/readme.md.) Consultez la compétence base44-remote-dev pour les mécanismes de connexion que ce README décrit.
Workflow dans le sandbox
- Orienter —
list_directory/read_file/grep(sandbox ls/sandbox read/sandbox grepdans le CLI) pour comprendre l’application avant tout changement. - Rédiger — créez ou modifiez des fichiers de ressources (fonctions backend, entités, agents) et du code front-end en suivant les conventions ci-dessus ; configurez les connecteurs via le flux de connexion.
- Vérifier — utilisez éventuellement
run_command(sandbox run)npm run build/npx tsc --noEmit, et utilisezget_app_preview_urlpour visualiser les changements (voirbase44-remote-dev). - Laisser expédier — ne faites rien pour déployer. Écrire le fichier est le déploiement ; l’auto-commit (~5s) persiste et expédie. Pausez un instant après votre dernière édition avant de vous déconnecter pour que le commit atterrisse.
- (Facultatif) Point de contrôle — marquez un point de restauration connu-bon vers lequel l’utilisateur peut revenir avec
create_checkpoint(base44 sandbox checkpoint --name "..."dans le CLI). Il flushe d’abord les changements en attente, le point de contrôle capture donc votre code le plus récent. Consultezbase44-remote-devpour les détails.
Cette page a été traduite à l’aide de l’IA. Pour les informations les plus précises et à jour, consultez la version anglaise.

