Aller au contenu principal

Configuration

Le bundle expose une configuration volontairement courte. Les composants Community n'ont besoin d'aucune option. Les composants Pro utilisent la clé de licence si elle est présente.

La configuration est volontairement minimale pour rester compatible avec les architectures Symfony classiques : monolithe, back-office, portail public, application intranet ou service exposé derrière un reverse proxy.

Configuration volontairement réduite

La plupart des comportements passent par les props des composants. La configuration globale reste centrée sur la licence pour éviter de créer un second design system côté application.

Fichier config/packages/dsfr.yaml

dsfr:
license_key: '%env(default::DSFR_BUNDLE_LICENSE)%'

Vous pouvez aussi pointer vers un fichier .lic :

dsfr:
license_key: '%kernel.project_dir%/config/dsfr_bundle.lic'

Référence

OptionTypeDéfautDescription
license_keystring''Clé de licence Pro brute ou chemin vers un fichier .lic.

Une licence perpétuelle peut couvrir plusieurs URL de production selon le palier acheté. La liste des hôtes autorisés est signée dans le fichier .lic au moment de la génération.

Configuration par environnement

EnvironnementRecommandation
devlicence optionnelle ; les domaines locaux sont déverrouillés
testlicence optionnelle ; utilisez les fixtures et tests de rendu
staginglicence réelle recommandée avec domaine de recette
prodlicence obligatoire si un composant Pro est rendu

Exemple :

###> dsfr-bundle ###
DSFR_BUNDLE_LICENSE="%kernel.project_dir%/config/dsfr_bundle.lic"
###< dsfr-bundle ###

Dans une plateforme conteneurisée, montez le fichier .lic comme secret applicatif et référencez son chemin dans la variable d'environnement.

Variable d'environnement

DSFR_BUNDLE_LICENSE="votre-cle-de-licence"

Si la valeur finit par .lic, elle est lue comme un chemin de fichier. Sinon, elle est utilisée comme clé brute.

Découverte automatique

Quand aucune clé n'est fournie dans dsfr.yaml, le bundle tente aussi les emplacements suivants :

  1. config/dsfr_bundle.lic
  2. dsfr_bundle.lic à la racine du projet

Bandeau Pro sans licence

Si une page rend au moins un composant Pro sans clé configurée, un bandeau DSFR avertit l'utilisateur. Le bouton de fermeture masque le bandeau pendant 1 heure dans le navigateur.

Ce comportement fait partie du bundle et n'est pas configurable par l'application.

Sécurité et exploitation

Secret de production

Ne publiez jamais une clé ou un fichier de licence privé dans un dépôt public, un artefact de documentation ou une image Docker partagée.

  • Ne commitez pas une licence privée dans un dépôt public.
  • Préférez un secret d'environnement ou un fichier monté en production.
  • Vérifiez la licence pendant le déploiement avec php bin/console dsfr:license:validate.
  • Déclarez les URL de production à couvrir, puis les domaines de recette ou préproduction nécessaires à la validation.
  • Gardez les logs de déploiement sans exposer la clé brute.

Vérifier la configuration

php bin/console debug:config dsfr
php bin/console dsfr:license:validate
php bin/console debug:dsfr-components

debug:dsfr-components liste les composants Community et Pro disponibles dans l'application.

Diagnostic rapide

SymptômeVérification
Les composants Pro sont floutésdomaine non couvert ou licence absente
Le bandeau Pro apparaît en local non attenduvérifiez le host utilisé, par exemple une URL Docker personnalisée
La commande de licence échouevérifiez le chemin du fichier, les droits de lecture et le contenu signé
La configuration semble ignoréelancez debug:config dsfr dans le bon environnement Symfony