Configuration déclarative

Export et import dans la console

Sur cette page

La console d’administration (/tosiam/console) a un écran Export / import, dans la section Configuration globale du menu. Il produit et lit les mêmes fichiers que la commande tosiam-config, dans une archive zip. Il est réservé aux administrateurs globaux.

Exporter#

  1. Cochez les royaumes à exporter (le royaume racine par défaut) et les types d’objets (tous par défaut).
  2. Cliquez sur Télécharger l’archive.

L’archive tosiam-config.zip contient tosiam.yaml et un répertoire par royaume sous realms/. Comme avec la commande, les secrets ne sont jamais exportés : ils sont écrits sous forme de références ${secret:…}.

Importer#

  1. Choisissez une archive zip. Elle contient le répertoire de configuration lui-même, ou un dossier unique qui le contient : un dossier compressé par le gestionnaire de fichiers convient.
  2. Cochez au besoin Supprimer les objets du périmètre géré, l’équivalent de --prune=managed.
  3. Cliquez sur Prévisualiser les changements.

Le serveur compare l’archive à sa configuration et n’écrit rien. Les changements s’affichent en arbre, royaume par royaume puis type par type, avec pour chaque objet sa nature (création, modification, suppression) et, pour une modification, les différences. Les objets présents sur le serveur seulement sont montrés sans pouvoir être cochés.

Un royaume de l’archive que le serveur n’a pas apparaît en tête de son arbre, comme une création de type Realm : laissez-la cochée, les objets du royaume en dépendent.

Tous les changements applicables sont cochés par défaut. Décochez ceux que vous ne voulez pas appliquer, objet par objet ou par branche entière, puis cliquez sur Appliquer la sélection et confirmez.

La console applique alors les changements cochés un objet après l’autre, dans l’ordre des dépendances, avec votre session. Chaque objet appliqué est marqué comme tel. Sur une erreur, l’application s’arrête : ce qui a été appliqué le reste, et l’objet en erreur est signalé avec le message du serveur.

Secrets et références#

Le serveur ne résout pas les références ${env:…} et ${file:…} d’une archive envoyée par la console : il n’a pas d’environnement à fournir, et ne lit pas ses propres fichiers pour un document reçu. En conséquence :

  • un secret référencé est conservé par le serveur, comme un ${secret:…} : la modification d’un objet existant fonctionne sans fournir ses secrets ;
  • une autre valeur référencée est un problème : le royaume ne peut pas être appliqué tant qu’elle n’est pas écrite dans les fichiers ;
  • un objet à créer dont un secret est obligatoire, un client OAuth2 confidentiel par exemple, demande d’écrire ce secret en clair dans l’archive.

Un royaume qui a des problèmes les affiche, et aucun de ses changements ne peut être coché. Pour promouvoir une configuration avec des secrets fournis par l’environnement, utilisez plutôt la commande ou l’import au démarrage.

Mis à jour le