Aller au contenu principal

Référence de l'API d'import de sites

La référence complète de l'API REST d'import de sites. Voir le guide de l'API d'import de sites pour des exemples d'usage.

L'authentification​

Tous les points d'accès exigent une authentification, par l'un de ces moyens :

MéthodeEn-têteCas d'usage
Clé d'APIAuthorization: Bearer <clé>Les scripts et l'automatisation
Clé d'API (variante)x-api-key: <clé>La prise en charge de l'existant
SessionPar cookieL'interface du tableau de bord

POST /api/site-import​

Crée un site, avec toutes ses ressources.

La requête​

{
"organizationId": "string (obligatoire)",
"name": "string (obligatoire)",
"domain": "string (facultatif)",
"database": {
"type": "mariadb | mysql | postgres | mongodb",
"name": "string",
"user": "string",
"password": "string"
},
"source": {
"type": "github | gitlab | docker | git",
"repo": "string (propriétaire/nom, pour github et gitlab)",
"branch": "string (par défaut : main)",
"buildPath": "string (par défaut : /)",
"buildType": "dockerfile | nixpacks (par défaut : dockerfile)",
"dockerImage": "string (pour le type docker)",
"githubId": "string (pour le type github)",
"gitlabId": "string (pour le type gitlab)",
"customGitUrl": "string (pour le type git)",
"customGitSSHKeyId": "string (pour le type git, facultatif)"
},
"envVars": { "CLÉ": "VALEUR" },
"port": 80
}

La réponse 200​

{
"importId": "string",
"status": "success",
"projectId": "string",
"applicationId": "string",
"databaseId": "string | undefined",
"databaseType": "string | undefined",
"databaseServiceHost": "string | undefined",
"domainId": "string | undefined"
}

La réponse 422 (échec partiel)​

La même forme que le 200, avec status: "partial" ou status: "failed", et des champs supplémentaires :

{
"importId": "string",
"status": "partial",
"errorMessage": "string",
"errorStep": "project_creation | database_creation | application_creation | domain_creation | deployment"
}

La réponse 401​

{ "error": "Unauthorized" }

La réponse 400​

{ "error": "Invalid input", "details": { "fieldErrors": {}, "formErrors": [] } }

POST /api/site-import/preview​

Valide les données sans créer de ressource.

La requête​

Le même corps que POST /api/site-import.

La réponse 200​

{
"valid": true,
"resources": {
"project": { "name": "string" },
"database": { "type": "string", "name": "string" },
"application": { "name": "string", "sourceType": "string", "buildType": "string" },
"domain": { "host": "string" }
},
"warnings": ["string"],
"errors": ["string"]
}

GET /api/site-import​

Liste l'historique des imports de l'organisation de l'utilisateur authentifié.

Les paramètres de requête​

ParamètreTypePar défautDescription
limitnombre50Le nombre maximal de résultats (1 à 100)
offsetnombre0Le décalage de pagination

La réponse 200​

Un tableau d'enregistrements d'import.

GET /api/site-import/:id​

Récupère un enregistrement d'import unique, par son identifiant.

La réponse 200​

L'enregistrement d'import complet, y compris inputConfig, status, les identifiants de ressources et le détail des erreurs.

La réponse 404​

L'import est introuvable, ou appartient à une autre organisation.

Les points d'accès tRPC​

Les mêmes fonctionnalités sont disponibles par tRPC, pour un usage depuis le tableau de bord ou depuis un client TypeScript :

ProcédureTypeEntrée
siteImport.importmutationLa même que le corps du POST
siteImport.previewrequêteLa même que le corps du POST
siteImport.listrequête{ limit?, offset? }
siteImport.getrequête{ siteImportId }
siteImport.retrymutation{ siteImportId } — idempotente, met à jour l'enregistrement sur place
siteImport.deletemutation{ siteImportId, rollbackResources? } — supprime l'enregistrement, et éventuellement défait les ressources

Les états d'un import​

ÉtatDescriptionActions possibles
pendingL'import est en coursAttendre
successToutes les ressources ont été créées, le déploiement est déclenchéSupprimer l'enregistrement
partialCertaines ressources ont été créées avant l'échecRéessayer, défaire, supprimer
failedAucune ressource n'a été crééeRéessayer, supprimer
remarque

success signifie que les ressources ont été mises en service et le déploiement déclenché. La construction et le déploiement sont asynchrones : consultez les journaux de déploiement de l'application pour connaître l'état de la construction.