Beryl::Config::EnvFile
Parse de ~/.config/beryl/.env.yml. Format à trois niveaux :
société → fournisseur → variables.
aloli: ovh: OVH_APPLICATION_KEY: xxx OVH_APPLICATION_SECRET: yyy OVH_CONSUMER_KEY: zzz scaleway: SCW_SECRET_KEY: abc
quimeo: ovh: OVH_APPLICATION_KEY: aaa ...
Justification (ADR-014) : une société a généralement plusieurs
domaines payés chez le même compte fournisseur. Indexer par
domaine forçait la duplication des credentials. Indexer par
société + fournisseur élimine cette duplication : aloli.net et
aloli.fr partagent .env.yml[aloli][ovh].
Chaque commande qui cible un host charge uniquement la section
[account][provider] concernée dans ENV, le temps de
l'exécution. Pas de contamination entre sociétés.
Constants
Constructors
Charge le fichier. Retourne une instance vide si le fichier
n'existe pas (certains flux — ex: beryl init — le créent à
la volée).
Class methods
Chemin par défaut de .env.yml (dynamique : honore
$XDG_CONFIG_HOME si défini, sinon
~/.config/beryl/.env.yml). Voir Beryl::Xdg.config_dir.
Charge un coffre chiffré et retourne un hash
provider → var → value. Lève si le coffre est absent,
illisible, ou si le master key n'est pas accessible (le module
Secrets::MasterKey lève NotInitializedError).
Variante qui retourne un hash vide si le coffre n'existe pas (utile au loader : tous les comptes n'ont pas forcément migré). Lève toujours si déchiffrement / parsing échoue.
Parse le plaintext TOML d'un coffre société. Public pour les tests (qui peuvent injecter du plaintext sans chiffrement).
Sérialise une section société (providers → vars) en TOML
ASCII, prêt à être chiffré et écrit dans .env.toml.age.
Trié par provider puis par variable pour rester déterministe.
Instance methods
Injecte TOUTES les variables d'une société (tous fournisseurs
confondus) dans ENV. Utile en début de CLI quand on ne sait
pas encore précisément quel(s) provider(s) seront appelés.
Retourne le nombre de variables posées.
Injecte les variables d'un (société, fournisseur) dans ENV.
Par défaut, n'écrase pas les variables déjà définies dans le
shell (convention LoadEnv : ce que l'utilisateur a explicitement
exporté l'emporte). Retourne le nombre de variables réellement
posées.
Vide une section société (utilisé par beryl env migrate
après avoir transféré les credentials d'une société vers son
coffre chiffré).
Toutes les variables d'une société, à plat (tous fournisseurs confondus). Utile pour diagnostics.
Variables pour un couple (société, fournisseur). Hash vide si pas de credentials posées.
Liste des fournisseurs configurés pour une société (hash vide si la société est inconnue).
Sauvegarde sur disque au format YAML, chmod 0600 (fichier secret). Crée le dossier parent au besoin.
Remplace toute la section société (tous fournisseurs) par
providers. Utilisé par le loader après avoir lu le coffre
chiffré d'une société : le coffre fait autorité, écrase
l'éventuelle section homonyme du .env.yml racine.