
# Validation et génération de schéma

Deux choses ont leur place ici : vérifier une configuration sans rien démarrer, et émettre le JSON Schema qui décrit toutes les configurations. Les deux sont des commandes, et les deux fonctionnent sur toutes les distributions — le binaire, Docker, Homebrew.

## `sovrium validate <fichier>`

La barrière avant déploiement.

```bash
sovrium validate app.yaml
```

Affiche `Valid configuration: <nom>` et sort en `0`, ou les erreurs et sort en `1`. Tout échec vaut `1` : contrôler un pipeline tient donc en une ligne.

```bash
sovrium validate app.yaml || exit 1
```

:::callout
**Une validation, trois commandes.** `validate`, `start` et `build` lisent votre configuration via le même processus : les mêmes raccourcis d'écriture sont acceptés, et les mêmes règles inter-champs sont appliquées. Une configuration que `sovrium validate` accepte est une configuration que `sovrium start` démarre. Comportement complet — codes de sortie, format des erreurs, attribution des `$ref` — sur [Valider une configuration](/fr/docs/config-validation).
:::

## Valider depuis une configuration

Pour vérifier une configuration **depuis une application en cours d'exécution** — un webhook qui reçoit une configuration soumise, un audit planifié d'une configuration stockée — utilisez l'action d'automatisation `data:validate-config`. Elle exécute le décodeur qu'exécute `sovrium validate`, sans effet de bord et sans démarrage.

```yaml
automations:
  - name: check-submitted-config
    trigger:
      type: webhook
      method: POST
    actions:
      - name: check
        type: data
        operator: validate-config
        props:
          config: '{{trigger.body.config}}'
          format: json
```

L'étape expose `{{steps.check.valid}}` et `{{steps.check.errors}}`. Voir [Actions de données](/fr/docs/automation-data-actions) pour la liste complète des opérateurs.

## `sovrium schema`

Affiche le JSON Schema (Draft-07) de la configuration d'application — le même document que servent les URLs du schéma hébergé.

```bash
sovrium schema
sovrium schema --output app.schema.json
```

La commande ne prend aucun argument au-delà du chemin de sortie et ne lit rien de l'environnement : le schéma est dérivé d'`AppSchema` lui-même, sa sortie ne dépend donc que de la version de Sovrium. On peut ainsi le régénérer en CI et comparer les différences — un changement dans le fichier est un changement du schéma, jamais de la machine.

Un usage courant consiste à figer le schéma à côté de la configuration, pour que les éditeurs valident face à la version exacte que vous déployez :

```bash
# À exécuter après chaque montée de version
sovrium schema --output app.schema.json
```

```yaml
# app.yaml
# yaml-language-server: $schema=./app.schema.json
name: my-app
```

## Pages associées

- [Aperçu du CLI](/fr/docs/cli) — l'ensemble des commandes.
- [Valider une configuration](/fr/docs/config-validation) — le vérificateur du CLI en détail.
- [Schéma JSON](/fr/docs/json-schema) — les URLs du schéma hébergé.
- [Configuration de l'éditeur](/fr/docs/json-schema-editors) — y brancher VS Code ou JetBrains.
