# Changer la configuration sans redémarrer

> Objectif : ajouter une route, ajuster un quota, servir une seconde API - sans redémarrer et sans perdre une requête.

Guide - Depuis la version 0.1.0 - Flexway v1.6.3 - https://flexway.io/docs/operations-live-config/

> Guide d'exploitation : configurer, déployer et observer la passerelle. Ce que fait la capacité côté produit : [guide produit](https://flexway.io/docs/product-overview/) ; l'appeler : [guide développeur](https://flexway.io/docs/developer-overview/).

**Objectif** : ajouter une route, ajuster un quota, servir une seconde API - sans redémarrer et sans
perdre une requête.

**Commande** - modifier le fichier ; la passerelle relit `flexway.yaml` et ses contrats toutes les
5 s (`server.reload.interval`) :

```bash
$EDITOR openapi.yaml
docker kill -s HUP flexway        # facultatif : prendre la modification tout de suite
```

Une seconde API, sur son propre hôte, depuis son propre contrat :

```yaml
hosts:
  admin.example.com:
    default_upstream: backoffice
    contracts: [./admin.yaml]       # cet hôte sert exactement ce contrat, rien de openapi.yaml
```

**Vérif** : `/config` (port d'administration) montre une nouvelle `config_version`, un nouveau
`config_digest` (l'empreinte sémantique, celle que `flexway validate` imprime) et
`last_reload.result: applied`. Une erreur volontaire - un amont qui n'existe pas - **ne remplace
rien** : la configuration en cours continue de servir, `last_reload.result: rejected`, la cause
dans `last_reload.cause` et dans le journal, une seule fois.

> Huit réglages exigent un redémarrage : `server.shutdown`, `server.reload`, `server.counters`,
> `server.shedding`, `server.in_flight`, `server.cache`, `server.tls` et `observability`. Les modifier refuse le rechargement en bloc, en nommant la clé. Les requêtes en cours finissent
> sur l'ancienne configuration, flux compris.
