Configuration

Secrets et variables d'environnement

Gardez clés, jetons et réglages hors de votre code, chiffrés et propres à chaque environnement.

web-frontend

shared-config

Synchronisé

production

  • DATABASE_URLChiffré
  • CACHE_URLChiffré
  • SESSION_SECRETChiffré
  • API_TOKENChiffré

Comment la configuration atteint votre code

Chaque service lit ses réglages dans des variables d’environnement au démarrage. La plateforme construit cette liste à partir de trois sources, dans l’ordre : les groupes partagés, les valeurs définies sur le service et les valeurs liées à d’autres ressources comme les bases de données. Une valeur plus tardive remplace une valeur antérieure de même clé : un service peut donc surcharger un groupe sans le modifier pour tous.

Variables et secrets

Les deux sont stockés de la même façon, chiffrés au repos, et injectés de la même façon dans le service. La différence tient à qui peut les relire.

Variables simples

Utilisez des variables simples pour les réglages que toute l’équipe peut voir : niveaux de log, drapeaux de fonctionnalité, URL publiques. Leurs valeurs apparaissent dans le tableau de bord et dans la sortie de la CLI.

Secrets

Utilisez des secrets pour tout ce qui donne un accès : jetons d’API, clés de signature, mots de passe. Une fois enregistrée, la valeur d’un secret n’est plus jamais affichée. Vous pouvez la remplacer ou la supprimer, et chaque changement est inscrit dans le journal d’audit.

Groupes partagés

Un groupe est un ensemble nommé de variables utilisé par plusieurs services. Modifiez une valeur du groupe et chaque service lié la récupère à son prochain déploiement.

  • Un groupe par sujet, comme shared-config ou payments
  • Les groupes peuvent être limités à certains environnements
  • Un service peut lier plusieurs groupes

Environnements et aperçus

Chaque environnement a ses propres valeurs. La production, la préproduction et les environnements d’aperçu ne partagent jamais de secrets, sauf si vous leur liez le même groupe. Les environnements d’aperçu copient par défaut les valeurs de préproduction : une pull request ne voit donc jamais les identifiants de production.

Faire tourner un secret

La rotation se fait en deux étapes, pour que rien ne casse entre les deux :

  1. Ajoutez la nouvelle valeur sous une seconde clé et déployez le code qui la lit.
  2. Supprimez l’ancienne clé quand plus rien ne l’utilise.
stack.yaml
envVars:
  - key: API_TOKEN_NEXT
    sync: false

Limites

Un service peut contenir jusqu’à 500 variables, et une valeur peut atteindre 32 Ko. Pour les fichiers plus volumineux, comme les certificats, stockez-les en fichiers secrets et lisez-les depuis le disque.

Référence

Des variables dans votre fichier de configuration

Déclarez ce dont un service a besoin à côté du service lui-même. Les valeurs des secrets restent dans le tableau de bord.

  • Référencez les groupes partagés par leur nom
  • Marquez les valeurs à remplir dans le tableau de bord
  • Lisez les chaînes de connexion des bases de données
          
            
                1
                envGroups:
              
                2
                  - name: shared-config
              
                3
                    vars:
              
                4
                      - key: LOG_LEVEL
              
                5
                        value: info
              
                6
                      - key: SESSION_SECRET
              
                7
                        generateValue: true
              
                8
                 
              
                9
                services:
              
                10
                  - type: web
              
                11
                    name: web-frontend
              
                12
                    envVars:
              
                13
                      - fromGroup: shared-config
              
                14
                      - key: DATABASE_URL
              
                15
                        fromDatabase:
              
                16
                          name: app-db
              
                17
                          property: connectionString
              
                18
                      - key: API_TOKEN
              
                19
                        sync: false
              
          
        

Offre gratuite · Sans carte bancaire

Poussez votre code aujourd'hui. En ligne avant que votre café refroidisse.

Connectez un dépôt, choisissez une région et obtenez une URL de production avec HTTPS, logs et autoscaling déjà activés.

$ git push origin main

  1. Build34 s
  2. Déploiement12 s
  3. Contrôles de santé3 s

your-app.example.com

Buy NowTheme Details