@hgdc/docs 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/package.json +1 -1
  2. package/src/integration.ts +8 -1
  3. package/src/styles/theme.css +36 -5
  4. package/template/.astro/content-modules.mjs +15 -35
  5. package/template/.build/.well-known/llms.txt +34 -51
  6. package/template/.build/404.html +4 -4
  7. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js +1 -0
  8. package/template/.build/_astro/common.BoKrWC_6.css +3 -0
  9. package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
  10. package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
  11. package/template/.build/_hgdc/corpus.json +1 -1
  12. package/template/.build/demarrer/premiere-doc/index.html +25 -0
  13. package/template/.build/demarrer/premiere-doc.md +65 -0
  14. package/template/.build/explications/donnees/index.html +55 -0
  15. package/template/.build/explications/donnees.md +28 -0
  16. package/template/.build/explications/fonctionnement/index.html +33 -0
  17. package/template/.build/explications/fonctionnement.md +32 -0
  18. package/template/.build/guides/agents/index.html +59 -0
  19. package/template/.build/guides/agents.md +54 -0
  20. package/template/.build/guides/assistant/index.html +60 -0
  21. package/template/.build/guides/assistant.md +46 -0
  22. package/template/.build/guides/composants/index.html +38 -0
  23. package/template/.build/guides/composants.md +103 -0
  24. package/template/.build/guides/ecrire/index.html +56 -0
  25. package/template/.build/guides/ecrire.md +63 -0
  26. package/template/.build/guides/elements/index.html +1 -0
  27. package/template/.build/guides/navigation/index.html +30 -0
  28. package/template/.build/guides/navigation.md +63 -0
  29. package/template/.build/guides/publier/index.html +27 -0
  30. package/template/.build/guides/publier.md +65 -0
  31. package/template/.build/guides/theme/index.html +27 -0
  32. package/template/.build/guides/theme.md +33 -0
  33. package/template/.build/images/favicon.svg +1 -0
  34. package/template/.build/images/logo-clair.svg +1 -0
  35. package/template/.build/images/logo-sombre.svg +1 -0
  36. package/template/.build/index.html +14 -18
  37. package/template/.build/index.md +21 -59
  38. package/template/.build/llms-full.txt +515 -2331
  39. package/template/.build/llms.txt +34 -51
  40. package/template/.build/pagefind/fragment/fr-ch_1aa5706.pf_fragment +0 -0
  41. package/template/.build/pagefind/fragment/fr-ch_21308c9.pf_fragment +0 -0
  42. package/template/.build/pagefind/fragment/fr-ch_256be83.pf_fragment +0 -0
  43. package/template/.build/pagefind/fragment/fr-ch_3786e05.pf_fragment +0 -0
  44. package/template/.build/pagefind/fragment/fr-ch_3e2d7bf.pf_fragment +0 -0
  45. package/template/.build/pagefind/fragment/fr-ch_53e6d95.pf_fragment +0 -0
  46. package/template/.build/pagefind/fragment/fr-ch_7011e1a.pf_fragment +0 -0
  47. package/template/.build/pagefind/fragment/fr-ch_7252d5b.pf_fragment +0 -0
  48. package/template/.build/pagefind/fragment/fr-ch_8a5f581.pf_fragment +0 -0
  49. package/template/.build/pagefind/fragment/fr-ch_9221692.pf_fragment +0 -0
  50. package/template/.build/pagefind/fragment/fr-ch_a4b68e2.pf_fragment +0 -0
  51. package/template/.build/pagefind/fragment/fr-ch_d4ef5e9.pf_fragment +0 -0
  52. package/template/.build/pagefind/fragment/fr-ch_edaf413.pf_fragment +0 -0
  53. package/template/.build/pagefind/fragment/fr-ch_f017e56.pf_fragment +0 -0
  54. package/template/.build/pagefind/fragment/fr-ch_fe71cc1.pf_fragment +0 -0
  55. package/template/.build/pagefind/index/fr-ch_481c81a.pf_index +0 -0
  56. package/template/.build/pagefind/pagefind-entry.json +1 -1
  57. package/template/.build/pagefind/pagefind.fr-ch_46a632d8eba7e.pf_meta +0 -0
  58. package/template/.build/reference/api-assistant/index.html +102 -0
  59. package/template/.build/reference/api-assistant.md +60 -0
  60. package/template/.build/reference/cli/index.html +11 -153
  61. package/template/.build/reference/cli.md +23 -159
  62. package/template/.build/reference/docs-json/index.html +157 -0
  63. package/template/.build/reference/docs-json.md +47 -0
  64. package/template/.build/reference/mcp/index.html +92 -0
  65. package/template/.build/reference/mcp.md +49 -0
  66. package/template/node_modules/.vite/deps/_metadata.json +8 -8
  67. package/template/.astro/data-store.json +0 -1
  68. package/template/.astro/settings.json +0 -5
  69. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js +0 -1
  70. package/template/.build/_astro/common.Dx3aBIS0.css +0 -3
  71. package/template/.build/_astro/logo.BPu921Tp.svg +0 -1
  72. package/template/.build/concepts/confidentialite/index.html +0 -50
  73. package/template/.build/concepts/confidentialite.md +0 -38
  74. package/template/.build/concepts/deploiements/index.html +0 -106
  75. package/template/.build/concepts/deploiements.md +0 -70
  76. package/template/.build/concepts/organisations-et-roles/index.html +0 -83
  77. package/template/.build/concepts/organisations-et-roles.md +0 -39
  78. package/template/.build/concepts/preversion/index.html +0 -49
  79. package/template/.build/concepts/preversion.md +0 -52
  80. package/template/.build/concepts/secrets-et-coffre/index.html +0 -70
  81. package/template/.build/concepts/secrets-et-coffre.md +0 -54
  82. package/template/.build/demarrer/depuis-github/index.html +0 -34
  83. package/template/.build/demarrer/depuis-github.md +0 -68
  84. package/template/.build/demarrer/premier-site/index.html +0 -28
  85. package/template/.build/demarrer/premier-site.md +0 -94
  86. package/template/.build/guides/brancher-un-domaine/index.html +0 -91
  87. package/template/.build/guides/brancher-un-domaine.md +0 -81
  88. package/template/.build/guides/cle-d-api/index.html +0 -62
  89. package/template/.build/guides/cle-d-api.md +0 -78
  90. package/template/.build/guides/depannage/index.html +0 -64
  91. package/template/.build/guides/depannage.md +0 -69
  92. package/template/.build/guides/deployer-depuis-github/index.html +0 -45
  93. package/template/.build/guides/deployer-depuis-github.md +0 -70
  94. package/template/.build/guides/deployer-un-framework/index.html +0 -81
  95. package/template/.build/guides/deployer-un-framework.md +0 -74
  96. package/template/.build/guides/github-actions-sans-application/index.html +0 -53
  97. package/template/.build/guides/github-actions-sans-application.md +0 -95
  98. package/template/.build/guides/inviter-une-personne/index.html +0 -28
  99. package/template/.build/guides/inviter-une-personne.md +0 -38
  100. package/template/.build/guides/lire-les-logs/index.html +0 -37
  101. package/template/.build/guides/lire-les-logs.md +0 -48
  102. package/template/.build/guides/migrer-depuis-vercel/index.html +0 -25
  103. package/template/.build/guides/migrer-depuis-vercel.md +0 -51
  104. package/template/.build/guides/monorepo/index.html +0 -40
  105. package/template/.build/guides/monorepo.md +0 -42
  106. package/template/.build/guides/revenir-en-arriere/index.html +0 -39
  107. package/template/.build/guides/revenir-en-arriere.md +0 -50
  108. package/template/.build/guides/site-statique/index.html +0 -41
  109. package/template/.build/guides/site-statique.md +0 -59
  110. package/template/.build/guides/synchroniser-doppler/index.html +0 -46
  111. package/template/.build/guides/synchroniser-doppler.md +0 -63
  112. package/template/.build/guides/variables-d-environnement/index.html +0 -73
  113. package/template/.build/guides/variables-d-environnement.md +0 -92
  114. package/template/.build/images/famille/account.svg +0 -1
  115. package/template/.build/images/famille/analytics.svg +0 -1
  116. package/template/.build/images/famille/docs.svg +0 -1
  117. package/template/.build/images/famille/host.svg +0 -1
  118. package/template/.build/images/famille/mail.svg +0 -1
  119. package/template/.build/images/famille/portal.svg +0 -1
  120. package/template/.build/images/famille/status.svg +0 -1
  121. package/template/.build/images/logo.svg +0 -1
  122. package/template/.build/pagefind/fragment/fr-ch_16987e2.pf_fragment +0 -0
  123. package/template/.build/pagefind/fragment/fr-ch_2b4c97b.pf_fragment +0 -0
  124. package/template/.build/pagefind/fragment/fr-ch_3294a5c.pf_fragment +0 -0
  125. package/template/.build/pagefind/fragment/fr-ch_34858c9.pf_fragment +0 -0
  126. package/template/.build/pagefind/fragment/fr-ch_39ddba1.pf_fragment +0 -0
  127. package/template/.build/pagefind/fragment/fr-ch_4ab1899.pf_fragment +0 -0
  128. package/template/.build/pagefind/fragment/fr-ch_4d3a52a.pf_fragment +0 -0
  129. package/template/.build/pagefind/fragment/fr-ch_506c187.pf_fragment +0 -0
  130. package/template/.build/pagefind/fragment/fr-ch_5aa255a.pf_fragment +0 -0
  131. package/template/.build/pagefind/fragment/fr-ch_6841c7d.pf_fragment +0 -0
  132. package/template/.build/pagefind/fragment/fr-ch_6dc7a2d.pf_fragment +0 -0
  133. package/template/.build/pagefind/fragment/fr-ch_847edff.pf_fragment +0 -0
  134. package/template/.build/pagefind/fragment/fr-ch_8745af7.pf_fragment +0 -0
  135. package/template/.build/pagefind/fragment/fr-ch_8aac5e6.pf_fragment +0 -0
  136. package/template/.build/pagefind/fragment/fr-ch_916b233.pf_fragment +0 -0
  137. package/template/.build/pagefind/fragment/fr-ch_9fd014a.pf_fragment +0 -0
  138. package/template/.build/pagefind/fragment/fr-ch_a0808f8.pf_fragment +0 -0
  139. package/template/.build/pagefind/fragment/fr-ch_a4e1f69.pf_fragment +0 -0
  140. package/template/.build/pagefind/fragment/fr-ch_a80a53d.pf_fragment +0 -0
  141. package/template/.build/pagefind/fragment/fr-ch_a9e725b.pf_fragment +0 -0
  142. package/template/.build/pagefind/fragment/fr-ch_ac3f64c.pf_fragment +0 -0
  143. package/template/.build/pagefind/fragment/fr-ch_af292f1.pf_fragment +0 -0
  144. package/template/.build/pagefind/fragment/fr-ch_af3e716.pf_fragment +0 -0
  145. package/template/.build/pagefind/fragment/fr-ch_b0689a4.pf_fragment +0 -0
  146. package/template/.build/pagefind/fragment/fr-ch_baed996.pf_fragment +0 -0
  147. package/template/.build/pagefind/fragment/fr-ch_c89e27a.pf_fragment +0 -0
  148. package/template/.build/pagefind/fragment/fr-ch_cd6ca13.pf_fragment +0 -0
  149. package/template/.build/pagefind/fragment/fr-ch_d09af09.pf_fragment +0 -0
  150. package/template/.build/pagefind/fragment/fr-ch_d4bcea8.pf_fragment +0 -0
  151. package/template/.build/pagefind/fragment/fr-ch_dc2a134.pf_fragment +0 -0
  152. package/template/.build/pagefind/fragment/fr-ch_ded7ddc.pf_fragment +0 -0
  153. package/template/.build/pagefind/fragment/fr-ch_e2528cb.pf_fragment +0 -0
  154. package/template/.build/pagefind/fragment/fr-ch_e3cbb4e.pf_fragment +0 -0
  155. package/template/.build/pagefind/fragment/fr-ch_e7902d9.pf_fragment +0 -0
  156. package/template/.build/pagefind/fragment/fr-ch_f48ca47.pf_fragment +0 -0
  157. package/template/.build/pagefind/index/fr-ch_8a5f905.pf_index +0 -0
  158. package/template/.build/pagefind/index/fr-ch_fbd9c96.pf_index +0 -0
  159. package/template/.build/pagefind/pagefind.fr-ch_211aacbfa7f0e.pf_meta +0 -0
  160. package/template/.build/reference/api/deploiements/index.html +0 -326
  161. package/template/.build/reference/api/deploiements.md +0 -170
  162. package/template/.build/reference/api/erreurs/index.html +0 -102
  163. package/template/.build/reference/api/erreurs.md +0 -50
  164. package/template/.build/reference/api/fichiers/index.html +0 -82
  165. package/template/.build/reference/api/fichiers.md +0 -62
  166. package/template/.build/reference/api/introduction/index.html +0 -126
  167. package/template/.build/reference/api/introduction.md +0 -84
  168. package/template/.build/reference/api/projets/index.html +0 -184
  169. package/template/.build/reference/api/projets.md +0 -102
  170. package/template/.build/reference/api/utilisateur/index.html +0 -96
  171. package/template/.build/reference/api/utilisateur.md +0 -89
  172. package/template/.build/reference/api/variables/index.html +0 -75
  173. package/template/.build/reference/api/variables.md +0 -58
  174. package/template/.build/reference/compatibilite/index.html +0 -196
  175. package/template/.build/reference/compatibilite.md +0 -64
  176. package/template/.build/reference/domaines/index.html +0 -171
  177. package/template/.build/reference/domaines.md +0 -76
  178. package/template/.build/reference/limites/index.html +0 -159
  179. package/template/.build/reference/limites.md +0 -56
  180. package/template/.build/reference/variables/index.html +0 -164
  181. package/template/.build/reference/variables.md +0 -63
  182. package/template/.build/reference/vercel-json/index.html +0 -65
  183. package/template/.build/reference/vercel-json.md +0 -51
@@ -1,170 +0,0 @@
1
- # Déploiements
2
-
3
- Un déploiement est une version figée de ton site, avec sa propre adresse. Créer un déploiement est l’appel central de `vercel deploy`.
4
-
5
- ## Déroulement d’une création
6
-
7
- 1. Envoie la liste des fichiers avec leur empreinte SHA1.
8
- 2. Si des fichiers manquent, l’API répond `400 missing_files`, avec leurs empreintes dans `missing`. Envoie-les par [`/v2/files`](/docs/reference/api/fichiers/).
9
- 3. Renvoie exactement la même requête. Elle crée le déploiement.
10
-
11
- Les petits fichiers peuvent aussi être inclus directement dans le corps, dans le champ `data`, sans passer par `/v2/files`. La limite de 20 Mo vaut alors pour l’ensemble des fichiers inclus.
12
-
13
- ## POST `/v13/deployments`
14
-
15
- ```bash
16
- curl -X POST https://api.host.hgdc.ch/v13/deployments \
17
- -H "Authorization: Bearer $VERCEL_TOKEN" \
18
- -H "Content-Type: application/json" \
19
- -d '{
20
- "name": "site-atelier",
21
- "target": "production",
22
- "files": [
23
- { "file": "index.html", "data": "<h1>Bonjour</h1>" }
24
- ]
25
- }'
26
- ```
27
-
28
- ### Corps
29
-
30
- | Champ | Type | Requis | Description |
31
- | --------------------------- | ------------------------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- |
32
- | `name` | `string` | Si `project` est absent | Nom du projet. Le projet est créé s’il n’existe pas |
33
- | `project` | `string` | Non | Identifiant ou nom du projet. Prioritaire sur `name` |
34
- | `target` | `"production"` ou `null` | Non | `production` pour la production. Toute autre valeur crée une preview |
35
- | `files` | `object[]` | Oui | Fichiers du déploiement, 15 000 au plus. Voir ci-dessous |
36
- | `projectSettings.framework` | `string` ou `null` | Non | Framework, enregistré si le déploiement crée le projet |
37
- | `gitMetadata` | `object` | Non | `commitRef` (branche), `commitSha` et `commitMessage`, affichés dans la console |
38
- | `meta` | `Record<string, string>` | Non | Métadonnées libres. `githubCommitRef`, `githubCommitSha` et `githubCommitMessage` remplacent `gitMetadata` quand il manque |
39
-
40
- Chaque élément de `files` prend l’une de ces formes :
41
-
42
- - `{ "file", "sha", "size" }` : chemin relatif, empreinte SHA1 et taille en octets, pour un fichier déjà envoyé par `/v2/files` ;
43
- - `{ "file", "data", "encoding" }` : contenu inclus. `encoding` vaut `utf-8` (par défaut) ou `base64`.
44
-
45
- `mode` (permissions Unix) est accepté et conservé. Un dossier vide, `{ "file", "mode" }`, est ignoré.
46
-
47
- ### Réponse
48
-
49
- Réponse `200` : l’objet déploiement. Le déploiement naît le plus souvent à l’état `QUEUED`. Suis-le avec `GET /v13/deployments/:id`, plus bas sur cette page, ou avec le flux de logs `GET /v3/deployments/:id/events`.
50
-
51
- ### Erreurs
52
-
53
- | Statut | Code | Cause |
54
- | ------ | ------------------- | ------------------------------------------------------------------ |
55
- | `400` | `bad_request` | Corps invalide, ou nom de projet absent. Le message nomme le champ |
56
- | `400` | `missing_files` | Des fichiers sont à envoyer avant de créer le déploiement |
57
- | `403` | `forbidden` | La clé est limitée à un autre projet |
58
- | `409` | `deployment_closed` | Le déploiement a été annulé ou a échoué : rien n’est publié |
59
- | `413` | `payload_too_large` | Les fichiers inclus dépassent 20 Mo au total |
60
-
61
- ## GET `/v13/deployments/:id`
62
-
63
- Lit un déploiement.
64
-
65
- ```bash
66
- curl https://api.host.hgdc.ch/v13/deployments/jd7f2k9m3x8q1p5s6t4v0w7y2z \
67
- -H "Authorization: Bearer $VERCEL_TOKEN"
68
- ```
69
-
70
- Réponse `200` :
71
-
72
- ```json
73
- {
74
- "id": "jd7f2k9m3x8q1p5s6t4v0w7y2z",
75
- "uid": "jd7f2k9m3x8q1p5s6t4v0w7y2z",
76
- "url": "site-atelier-h3k9x2.hgdc.cloud",
77
- "name": "site-atelier",
78
- "projectId": "j97d3k2m8x1q4p6s7t9v0w2y5z",
79
- "ownerId": "k57a1b2c3d4e5f6g7h8j9k0m1n",
80
- "readyState": "READY",
81
- "status": "READY",
82
- "target": "production",
83
- "type": "LAMBDAS",
84
- "createdAt": 1760259600000,
85
- "buildingAt": 1760259601000,
86
- "ready": 1760259604000,
87
- "alias": ["site-atelier.hgdc.cloud"],
88
- "aliasAssigned": true,
89
- "aliasAssignedAt": 1760259604000,
90
- "aliasError": null,
91
- "errorMessage": null,
92
- "inspectorUrl": "https://host.hgdc.ch/atelier/site-atelier/deployments/jd7f2k9m3x8q1p5s6t4v0w7y2z",
93
- "meta": {
94
- "branch": "main",
95
- "commitSha": "4c3e2f1a9b8d7c6e5f4a3b2c1d0e9f8a7b6c5d4e",
96
- "commitMessage": "Nouvelle page Tarifs"
97
- },
98
- "creator": { "uid": "u1a2b3c4d5" }
99
- }
100
- ```
101
-
102
- | Champ | Type | Description |
103
- | ----------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
104
- | `id` | `string` | Identifiant du déploiement. `uid` porte la même valeur |
105
- | `url` | `string` | Adresse du déploiement, sans `https://`. Elle reste valable tant que le déploiement existe |
106
- | `name` | `string` | Nom du projet |
107
- | `projectId` | `string` | Identifiant du projet |
108
- | `ownerId` | `string` | Identifiant de l’organisation |
109
- | `readyState` | `string` | État : `QUEUED`, `BUILDING`, `READY`, `ERROR` ou `CANCELED`. `status` porte la même valeur |
110
- | `target` | `"production"` ou `null` | `production`, ou `null` pour une preview |
111
- | `createdAt` | `number` | Date de création, en millisecondes |
112
- | `buildingAt` | `number` | Début du traitement, en millisecondes |
113
- | `ready` | `number` ou `null` | Fin du traitement. `null` tant que le déploiement n’est pas prêt |
114
- | `alias` | `string[]` | Adresse de production du projet (`<projet>.hgdc.cloud`), une fois un déploiement de production prêt. Vide pour une preview. La CLI l’affiche sur la ligne « Aliased » |
115
- | `aliasAssigned` | `boolean` | `true` quand le déploiement est prêt |
116
- | `aliasAssignedAt` | `number` ou `null` | Moment où l’adresse de production lui a été attribuée. `null` pour une preview |
117
- | `aliasError` | `null` | Toujours `null` |
118
- | `errorMessage` | `string` ou `null` | Cause de l’échec, quand `readyState` vaut `ERROR` |
119
- | `inspectorUrl` | `string` | Page du déploiement dans la console |
120
- | `type` | `"LAMBDAS"` | Valeur fixe, pour la CLI |
121
- | `meta` | `object` | Informations Git connues : `branch`, `commitSha`, `commitMessage` |
122
- | `creator.uid` | `string` | Personne qui a créé la clé utilisée |
123
-
124
- ### Attendre la fin
125
-
126
- Pour attendre qu’un déploiement soit prêt, interroge cet endpoint toutes les secondes jusqu’à `READY`, `ERROR` ou `CANCELED`. Tu peux aussi ouvrir le flux `GET /v3/deployments/:id/events` décrit plus bas, qui se ferme tout seul à la fin.
127
-
128
- | Erreur | Code | Cause |
129
- | ------ | ----------- | ----------------------------------------------------------------------------- |
130
- | `404` | `not_found` | Déploiement inconnu, d’une autre organisation, ou hors de la portée de la clé |
131
-
132
- ## GET `/v3/deployments/:id/events`
133
-
134
- Renvoie les logs de build d’un déploiement, un événement JSON par ligne (NDJSON). Avec `follow=1`, la connexion reste ouverte et reçoit les nouvelles lignes au fil de l’eau.
135
-
136
- ```bash
137
- curl -N "https://api.host.hgdc.ch/v3/deployments/jd7f2k9m3x8q1p5s6t4v0w7y2z/events?follow=1" \
138
- -H "Authorization: Bearer $VERCEL_TOKEN"
139
- ```
140
-
141
- | Paramètre | Valeur | Rôle |
142
- | --------- | ------ | --------------------------------------------------------------------------- |
143
- | `follow` | `1` | Garde la connexion ouverte jusqu’à la fin du déploiement, 9 minutes au plus |
144
-
145
- Le type de réponse est `application/x-ndjson`. Chaque ligne de log ressemble à ceci :
146
-
147
- ```json
148
- {"type":"stdout","created":1760259601000,"date":1760259601000,"deploymentId":"jd7f2k9m3x8q1p5s6t4v0w7y2z","id":"l3k…","text":"Publication de 42 fichiers","payload":{"id":"l3k…","text":"Publication de 42 fichiers","date":1760259601000,"deploymentId":"jd7f2k9m3x8q1p5s6t4v0w7y2z"}}
149
- ```
150
-
151
- | Champ | Type | Description |
152
- | --------- | ------------------------ | ------------------------------------------------------------------ |
153
- | `type` | `"stdout"` ou `"stderr"` | `stderr` pour une ligne d’erreur |
154
- | `text` | `string` | Texte de la ligne |
155
- | `date` | `number` | Date de la ligne, en millisecondes. `created` porte la même valeur |
156
- | `payload` | `object` | Les mêmes champs, au format historique de la CLI |
157
-
158
- Une fois le déploiement terminé, une dernière ligne donne son état, puis le flux se ferme :
159
-
160
- ```json
161
- {"type":"state","event":"state","date":1760259604000,"payload":{"value":"READY"}}
162
- ```
163
-
164
- Les lignes du build GitHub Actions ne sont pas renvoyées ici : elles sont dans le run GitHub, et la console les affiche sur la page du déploiement.
165
-
166
- Le même endpoint répond aussi sous `/v3/now/deployments/:id/events`.
167
-
168
- | Erreur | Code | Cause |
169
- | ------ | ----------- | --------------------------------------------------- |
170
- | `404` | `not_found` | Déploiement inconnu, ou hors de la portée de la clé |
@@ -1,102 +0,0 @@
1
- <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mxbotnn6"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Erreurs de l'API | Host</title><style>:root{--sl-color-accent-low:#172544;--sl-color-accent:#4b8eff;--sl-color-accent-high:#87d3ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#dcf1ff;--sl-color-accent:#194ff7;--sl-color-accent-high:#0400bf;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/docs/images/logo.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Erreurs de l'API"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Format des erreurs de l'API Host, liste des codes, leur cause et la conduite à tenir."/><meta property="og:site_name" content="Host"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Format des erreurs de l'API Host, liste des codes, leur cause et la conduite à tenir."/><link rel="alternate" type="text/markdown" href="/docs/reference/api/erreurs.md"><link rel="describedby" type="text/markdown" href="/docs/llms.txt"><script>
2
- ;(() => {
3
- let stored = null
4
- try {
5
- stored = localStorage.getItem("starlight-theme")
6
- } catch {}
7
- const dark =
8
- stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
- const theme = dark ? "dark" : "light"
10
- document.documentElement.dataset.theme = theme
11
- document.documentElement.dataset.hdTheme = theme
12
- window.StarlightThemeProvider = { updatePickers() {} }
13
- })()
14
- </script><link rel="stylesheet" href="/docs/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/docs/_astro/common.Dx3aBIS0.css"><style>@layer starlight.components{svg:where(.astro-lgqmsw3b){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
- @layer starlight.components{starlight-tabs:where(.astro-a5blunwz){display:block}.tablist-wrapper:where(.astro-a5blunwz){overflow-x:auto}:where(.astro-a5blunwz)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-a5blunwz){display:flex}.tab:where(.astro-a5blunwz)>:where(.astro-a5blunwz)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-a5blunwz) :where(.astro-a5blunwz)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-a5blunwz)~[role=tabpanel]{margin-top:1rem}}
16
- </style><script type="module" src="/docs/_astro/page.cNngjUgL.js"></script></head><body class="astro-mxbotnn6"><a class="sl-skip-link astro-k4td3kwj" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-header__end"><hd-search data-base="/docs" data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="search" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/docs/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme]`)){let n=t.dataset.hdTheme===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdTheme));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdTheme),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/docs/"><span class="hd-brand__name">Host</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Démarrer</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/" class="hd-nav__link"><span>Accueil</span></a></li><li><a href="/docs/demarrer/premier-site/" class="hd-nav__link"><span>Premier site</span></a></li><li><a href="/docs/demarrer/depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Guides</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/guides/cle-d-api/" class="hd-nav__link"><span>Clés d&#39;API</span></a></li><li><a href="/docs/guides/deployer-depuis-github/" class="hd-nav__link"><span>Depuis GitHub</span></a></li><li><a href="/docs/guides/github-actions-sans-application/" class="hd-nav__link"><span>GitHub Actions sans l&#39;app</span></a></li><li><a href="/docs/guides/deployer-un-framework/" class="hd-nav__link"><span>Un framework</span></a></li><li><a href="/docs/guides/site-statique/" class="hd-nav__link"><span>Site statique</span></a></li><li><a href="/docs/guides/monorepo/" class="hd-nav__link"><span>Monorepo</span></a></li><li><a href="/docs/guides/brancher-un-domaine/" class="hd-nav__link"><span>Brancher un domaine</span></a></li><li><a href="/docs/guides/variables-d-environnement/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/guides/synchroniser-doppler/" class="hd-nav__link"><span>Doppler</span></a></li><li><a href="/docs/guides/revenir-en-arriere/" class="hd-nav__link"><span>Revenir en arrière</span></a></li><li><a href="/docs/guides/inviter-une-personne/" class="hd-nav__link"><span>Inviter une personne</span></a></li><li><a href="/docs/guides/lire-les-logs/" class="hd-nav__link"><span>Lire les logs</span></a></li><li><a href="/docs/guides/migrer-depuis-vercel/" class="hd-nav__link"><span>Migrer depuis Vercel</span></a></li><li><a href="/docs/guides/depannage/" class="hd-nav__link"><span>Dépannage</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Référence</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/reference/cli/" class="hd-nav__link"><span>CLI</span></a></li><li><a href="/docs/reference/variables/" class="hd-nav__link"><span>Variables</span></a></li><li><a href="/docs/reference/domaines/" class="hd-nav__link"><span>Domaines</span></a></li><li><a href="/docs/reference/vercel-json/" class="hd-nav__link"><span>vercel.json</span></a></li><li><a href="/docs/reference/compatibilite/" class="hd-nav__link"><span>Compatibilité</span></a></li><li><a href="/docs/reference/limites/" class="hd-nav__link"><span>Limites</span></a></li><li><details class="hd-nav__fold" open><summary class="hd-nav__link"><span>API</span><svg class="hd-icon hd-nav__chevron" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></summary><ul class="hd-nav hd-nav--depth-2"><li><a href="/docs/reference/api/introduction/" class="hd-nav__link"><span>Introduction</span></a></li><li><a href="/docs/reference/api/erreurs/" class="hd-nav__link" aria-current="page"><span>Erreurs</span></a></li><li><a href="/docs/reference/api/utilisateur/" class="hd-nav__link"><span>Utilisateur et organisation</span></a></li><li><a href="/docs/reference/api/projets/" class="hd-nav__link"><span>Projets</span></a></li><li><a href="/docs/reference/api/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/reference/api/fichiers/" class="hd-nav__link"><span>Envoyer un fichier</span></a></li><li><a href="/docs/reference/api/variables/" class="hd-nav__link"><span>Variables</span></a></li></ul></details></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Concepts</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/docs/concepts/deploiements/" class="hd-nav__link"><span>Déploiements</span></a></li><li><a href="/docs/concepts/organisations-et-roles/" class="hd-nav__link"><span>Organisations et rôles</span></a></li><li><a href="/docs/concepts/secrets-et-coffre/" class="hd-nav__link"><span>Secrets et coffre</span></a></li><li><a href="/docs/concepts/preversion/" class="hd-nav__link"><span>Préversion</span></a></li><li><a href="/docs/concepts/confidentialite/" class="hd-nav__link"><span>Sécurité et confidentialité</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mxbotnn6" lang="fr-CH" dir="ltr"><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Référence</p><div class="hd-title__row"><h1 id="_top">Erreurs de l&#39;API</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/docs/reference/api/erreurs.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/docs/reference/api/erreurs.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/docs/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Format des erreurs de l&#39;API Host, liste des codes, leur cause et la conduite à tenir.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-64cflj2q"><div class="sl-container astro-64cflj2q"><div class="sl-markdown-content"><p>Une erreur répond avec un statut HTTP <code>4xx</code> ou <code>5xx</code>, et un objet <code>error</code>. Le champ <code>code</code> est stable : teste-le dans ton code. Le champ <code>message</code> est en français et s’affiche à une personne.</p>
17
- <div class="expressive-code"><link rel="stylesheet" href="/docs/_astro/ec.t9qpe.css"><script type="module" src="/docs/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"error"</span><span style="--0:#1F2328;--1:#E6EDF3">: {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"code"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"not_found"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"message"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Projet introuvable."</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;error&#x22;: { &#x22;code&#x22;: &#x22;not_found&#x22;, &#x22;message&#x22;: &#x22;Projet introuvable.&#x22; }}"><div></div></button></div></figure></div>
18
- <h2 id="codes">Codes</h2>
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- <div class="hd-table"><table><thead><tr><th>Statut</th><th>Code</th><th>Cause</th><th>Que faire</th></tr></thead><tbody><tr><td><code>400</code></td><td><code>bad_request</code></td><td>Corps ou paramètre invalide. Le message nomme le champ en cause</td><td>Corrige la requête</td></tr><tr><td><code>400</code></td><td><code>missing_files</code></td><td>Des fichiers du déploiement ne sont pas encore envoyés. La réponse liste leurs empreintes dans <code>missing</code></td><td>Envoie-les par <a href="/docs/reference/api/fichiers/"><code>/v2/files</code></a>, puis recrée le déploiement</td></tr><tr><td><code>400</code></td><td><code>invalid_digest</code></td><td>Le contenu envoyé ne correspond pas à l’empreinte annoncée</td><td>Recalcule le SHA1 du fichier</td></tr><tr><td><code>403</code></td><td><code>forbidden</code></td><td>Clé absente, inconnue ou révoquée. Ou clé de projet utilisée pour un autre projet</td><td>Vérifie la clé et sa portée</td></tr><tr><td><code>404</code></td><td><code>not_found</code></td><td>Ressource introuvable, ou hors de la portée de la clé</td><td>Vérifie l’identifiant ou le nom</td></tr><tr><td><code>409</code></td><td><code>conflict</code></td><td>Un projet porte déjà ce nom</td><td>Choisis un autre nom, ou utilise le projet existant</td></tr><tr><td><code>409</code></td><td><code>deployment_closed</code></td><td>Le déploiement a été annulé ou a échoué : rien n’est publié</td><td>Crée un nouveau déploiement</td></tr><tr><td><code>413</code></td><td><code>file_too_large</code></td><td>Un fichier dépasse 20 Mo</td><td>Allège le fichier, ou sers-le autrement</td></tr><tr><td><code>413</code></td><td><code>payload_too_large</code></td><td>Les fichiers inclus dans le corps dépassent 20 Mo au total</td><td>Envoie-les par <a href="/docs/reference/api/fichiers/"><code>/v2/files</code></a></td></tr><tr><td><code>429</code></td><td><code>rate_limited</code></td><td>Trop de requêtes pour cette clé</td><td>Attends un instant, puis réessaie</td></tr><tr><td><code>500</code></td><td><code>internal_server_error</code></td><td>Erreur de la plateforme. Elle est signalée automatiquement</td><td>Réessaie. Si elle persiste, écris à <a href="mailto:support@hgdc.ch">support@hgdc.ch</a></td></tr></tbody></table></div>
97
- <p>Toutes les routes peuvent répondre <code>403 forbidden</code>, <code>429 rate_limited</code> et <code>500 internal_server_error</code>.</p>
98
- <p>Le message d’une erreur <code>500</code> ne donne jamais de détail technique. Ne compte pas sur son texte, seulement sur son code.</p>
99
- <h2 id="le-cas-de-missing_files">Le cas de missing_files</h2>
100
- <p><code>missing_files</code> n’est pas une panne : c’est l’étape normale d’un déploiement. La CLI la traite toute seule. Si tu écris ton propre client, voici la réponse :</p>
101
- <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"error"</span><span style="--0:#1F2328;--1:#E6EDF3">: {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"code"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"missing_files"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"message"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Fichiers à envoyer avant de créer le déploiement."</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"missing"</span><span style="--0:#1F2328;--1:#E6EDF3">: [</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#0A3069;--1:#A5D6FF">"2ef7bde608ce5404e97d5f042f95f89f1c232871"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">]</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;error&#x22;: { &#x22;code&#x22;: &#x22;missing_files&#x22;, &#x22;message&#x22;: &#x22;Fichiers à envoyer avant de créer le déploiement.&#x22;, &#x22;missing&#x22;: [ &#x22;2ef7bde608ce5404e97d5f042f95f89f1c232871&#x22; ] }}"><div></div></button></div></figure></div>
102
- <p>Envoie chaque fichier listé, puis renvoie exactement la même requête de <a href="/docs/reference/api/deploiements/">création de déploiement</a>.</p></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/docs/reference/api/introduction/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Introduction</span></a><a class="hd-pagination__link hd-pagination__link--next" href="/docs/reference/api/utilisateur/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">Utilisateur et organisation</span></a></nav><script type="module" src="/docs/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-jxyovztp" style="--depth: 0;"><li style="--depth: 0;" class="astro-jxyovztp"><a href="#_top" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#codes" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Codes</span></a></li><li style="--depth: 0;" class="astro-jxyovztp"><a href="#le-cas-de-missing_files" style="--depth: 0;" class="astro-jxyovztp"><span style="--depth: 0;" class="astro-jxyovztp">Le cas de missing_files</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/docs/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/docs/images/logo.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Host</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Ton site en ligne, déployé à chaque modification.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="js743wp3001k1jvrdad0fwcjx18gc789" data-name="Host"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Host.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/docs/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -1,50 +0,0 @@
1
- # Erreurs de l'API
2
-
3
- Une erreur répond avec un statut HTTP `4xx` ou `5xx`, et un objet `error`. Le champ `code` est stable : teste-le dans ton code. Le champ `message` est en français et s’affiche à une personne.
4
-
5
- ```json
6
- {
7
- "error": {
8
- "code": "not_found",
9
- "message": "Projet introuvable."
10
- }
11
- }
12
- ```
13
-
14
- ## Codes
15
-
16
- | Statut | Code | Cause | Que faire |
17
- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
18
- | `400` | `bad_request` | Corps ou paramètre invalide. Le message nomme le champ en cause | Corrige la requête |
19
- | `400` | `missing_files` | Des fichiers du déploiement ne sont pas encore envoyés. La réponse liste leurs empreintes dans `missing` | Envoie-les par [`/v2/files`](/docs/reference/api/fichiers/), puis recrée le déploiement |
20
- | `400` | `invalid_digest` | Le contenu envoyé ne correspond pas à l’empreinte annoncée | Recalcule le SHA1 du fichier |
21
- | `403` | `forbidden` | Clé absente, inconnue ou révoquée. Ou clé de projet utilisée pour un autre projet | Vérifie la clé et sa portée |
22
- | `404` | `not_found` | Ressource introuvable, ou hors de la portée de la clé | Vérifie l’identifiant ou le nom |
23
- | `409` | `conflict` | Un projet porte déjà ce nom | Choisis un autre nom, ou utilise le projet existant |
24
- | `409` | `deployment_closed` | Le déploiement a été annulé ou a échoué : rien n’est publié | Crée un nouveau déploiement |
25
- | `413` | `file_too_large` | Un fichier dépasse 20 Mo | Allège le fichier, ou sers-le autrement |
26
- | `413` | `payload_too_large` | Les fichiers inclus dans le corps dépassent 20 Mo au total | Envoie-les par [`/v2/files`](/docs/reference/api/fichiers/) |
27
- | `429` | `rate_limited` | Trop de requêtes pour cette clé | Attends un instant, puis réessaie |
28
- | `500` | `internal_server_error` | Erreur de la plateforme. Elle est signalée automatiquement | Réessaie. Si elle persiste, écris à <support@hgdc.ch> |
29
-
30
- Toutes les routes peuvent répondre `403 forbidden`, `429 rate_limited` et `500 internal_server_error`.
31
-
32
- Le message d’une erreur `500` ne donne jamais de détail technique. Ne compte pas sur son texte, seulement sur son code.
33
-
34
- ## Le cas de missing_files
35
-
36
- `missing_files` n’est pas une panne : c’est l’étape normale d’un déploiement. La CLI la traite toute seule. Si tu écris ton propre client, voici la réponse :
37
-
38
- ```json
39
- {
40
- "error": {
41
- "code": "missing_files",
42
- "message": "Fichiers à envoyer avant de créer le déploiement.",
43
- "missing": [
44
- "2ef7bde608ce5404e97d5f042f95f89f1c232871"
45
- ]
46
- }
47
- }
48
- ```
49
-
50
- Envoie chaque fichier listé, puis renvoie exactement la même requête de [création de déploiement](/docs/reference/api/deploiements/).