Français
Santé
Les routes sont relatives à <PUBLIC_BASE_URL> ; les corps de requête et de réponse sont en JSON sauf mention contraire. L’authentification, les portées, la pagination et le format des erreurs sont décrits dans les guides de l’API REST.
GET /healthz
Vivacité
Répond sans toucher la base. Porte la marque, la version et le temps de fonctionnement.
Accès — Aucune authentification.
Réponses
200 — Vivant.
| Champ | Type | Requis |
|---|---|---|
status | "ok" | oui |
brand | string | oui |
version | string | oui |
uptimeSeconds | number | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"status": { "type": "string", "const": "ok" },
"brand": { "type": "string", "minLength": 1 },
"version": { "type": "string" },
"uptimeSeconds": { "type": "number", "minimum": 0 }
},
"required": [ "status", "brand", "version", "uptimeSeconds" ],
"additionalProperties": false
}GET /readyz
Disponibilité
Vérifie la base et que chaque migration est appliquée. 503 avec les contrôles en échec sinon.
Accès — Aucune authentification.
Réponses
200 — Prête.
| Champ | Type | Requis |
|---|---|---|
status | "ready" | "not_ready" | oui |
checks | object[] | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"status": { "type": "string", "enum": [ "ready", "not_ready" ] },
"checks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string", "enum": [ "database", "migrations" ] },
"ok": { "type": "boolean" },
"detail": { "type": "string" }
},
"required": [ "name", "ok" ],
"additionalProperties": false
}
}
},
"required": [ "status", "checks" ],
"additionalProperties": false
}503 — Pas prête.
GET /api/v1/branding
La marque effective de l’instance
Publique : nom, logos, favicon, couleurs, texte de connexion — ce qu’un visiteur voit déjà à l’écran. Lue par la page de connexion avant toute session.
Accès — Aucune authentification.
Réponses
200 — La marque.
| Champ | Type | Requis |
|---|---|---|
name | string | oui |
source | "control_plane" | "environment" | oui |
logo | object | oui |
favicon | string (uri) | null | oui |
colors | object | oui |
supportUrl | string (uri) | null | oui |
poweredBy | string | null | oui |
login | object | oui |
instance | object | oui |
Schéma JSON
json
{
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1 },
"source": { "type": "string", "enum": [ "control_plane", "environment" ] },
"logo": {
"type": "object",
"properties": {
"light": {
"anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ]
},
"dark": {
"anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ]
}
},
"required": [ "light", "dark" ],
"additionalProperties": false
},
"favicon": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ] },
"colors": {
"type": "object",
"properties": {
"primary": {
"anyOf": [
{ "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" },
{ "type": "null" }
]
},
"onPrimary": {
"anyOf": [
{ "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" },
{ "type": "null" }
]
},
"accent": {
"anyOf": [
{ "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" },
{ "type": "null" }
]
},
"onAccent": {
"anyOf": [
{ "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" },
{ "type": "null" }
]
}
},
"required": [ "primary", "onPrimary", "accent", "onAccent" ],
"additionalProperties": false
},
"supportUrl": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ] },
"poweredBy": { "anyOf": [ { "type": "string" }, { "type": "null" } ] },
"login": {
"type": "object",
"properties": {
"welcome": {
"anyOf": [
{
"type": "object",
"properties": { "en": { "type": "string" }, "fr": { "type": "string" } },
"additionalProperties": false
},
{ "type": "null" }
]
},
"image": {
"anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ]
}
},
"required": [ "welcome", "image" ],
"additionalProperties": false
},
"instance": {
"type": "object",
"properties": { "suspended": { "type": "boolean" } },
"required": [ "suspended" ],
"additionalProperties": false
}
},
"required": [
"name",
"source",
"logo",
"favicon",
"colors",
"supportUrl",
"poweredBy",
"login",
"instance"
],
"additionalProperties": false
}GET /api/v1/openapi.json
Ce document OpenAPI
La description OpenAPI 3.1 de l’instance, générée depuis les schémas réels des routes. ?lang=fr pour les textes en français.
Accès — Aucune authentification.
Paramètres
| Nom | Où | Type | Requis |
|---|---|---|---|
lang | requête | "en" | "fr" | non |
Réponses
200 — Le document.
Type : object
json
{
"type": "object",
"propertyNames": { "type": "string" },
"additionalProperties": {}
}400 — La requête ne respecte pas son schéma.