Vault
Chiffrement au niveau champ pour les données sensibles d'Aurabase. AES-256-GCM avec clé dérivée par enregistrement (HKDF-SHA256), ou backend HashiCorp Vault transit en production — la même primitive protège les secrets de vos Edge Functions et les secrets internes de la plateforme.
Un service de chiffrement, pas un produit séparé
« Vault » n'est pas un service HTTP à part sur le gateway : c'est EncryptionService, une bibliothèque de chiffrement au niveau champ partagée (libs/aura-crypto) que plusieurs services appellent pour protéger des données sensibles avant écriture en base — secrets MFA, jetons fournisseurs OAuth, chaînes de connexion projet, et les secrets de vos Edge Functions.
Ce que vous manipulez concrètement, en tant que développeur, ce sont les secrets par fonction : des paires clé/valeur définies via la CLI ou l'API REST, injectées comme variables d'environnement dans le worker qui exécute votre fonction.
Deux backends, un seul format de lecture
À l'écriture, le service choisit un backend : Vault transit si configuré (préféré — la clé de chiffrement racine ne quitte jamais Vault), sinon un repli AES-256-GCM local avec une clé dérivée par enregistrement via HKDF-SHA256. À la lecture, le format du texte chiffré indique quel backend l'a produit — aucune migration forcée n'est nécessaire pour basculer de l'un à l'autre.
project_id:function_name — le même secret chiffré deux fois pour deux fonctions produit deux textes chiffrés différents, et supprimer/renommer la fonction rend l'ancien texte chiffré illisible par construction.Ce que le service fournit
Trois façons d’écrire, une façon de lire
aura secrets) et l'endpoint REST dédié (/env) manipulent les mêmes données — les secrets d'une fonction — mais pas nécessairement par le même chemin d'écriture. Voir le point d'attention ci-dessous.Le chiffrement dépend du chemin d’écriture emprunté
aura-functions expose deux façons de modifier les variables d'environnement d'une fonction : l'endpoint dédié PUT /v1/functions/:projectId/:nom/env (qui chiffre systématiquement via EncryptionService avant écriture), et l'endpoint générique PATCH /v1/functions/:projectId/:nom utilisé pour mettre à jour l'ensemble d'une fonction — code, runtime, env_vars inclus — sans passer par ce chiffrement.
aura-cli/src/commands/secrets.rs : aura secrets set/list/unset lisent et écrivent via PATCH /v1/functions/:projectId/:nom, pas via /env. Les valeurs y sont donc stockées telles quelles, sans passer par le chiffrement AES-256-GCM décrit plus haut. Pour un secret réellement chiffré au repos, appelez directement l'endpoint /env./env, le chiffrement dépend de la variable serveur FN_ENV_ENCRYPTION_KEY. Absente ou invalide, aura-functions le signale au démarrage et stocke les valeurs en clair — un comportement dégradé assumé pour le développement local, à proscrire en production.