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.
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
| Option | Type | Défaut | Description |
|---|---|---|---|
license_key | string | '' | 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
| Environnement | Recommandation |
|---|---|
dev | licence optionnelle ; les domaines locaux sont déverrouillés |
test | licence optionnelle ; utilisez les fixtures et tests de rendu |
staging | licence réelle recommandée avec domaine de recette |
prod | licence 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 :
config/dsfr_bundle.licdsfr_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
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ôme | Vérification |
|---|---|
| Les composants Pro sont floutés | domaine non couvert ou licence absente |
| Le bandeau Pro apparaît en local non attendu | vérifiez le host utilisé, par exemple une URL Docker personnalisée |
| La commande de licence échoue | vérifiez le chemin du fichier, les droits de lecture et le contenu signé |
| La configuration semble ignorée | lancez debug:config dsfr dans le bon environnement Symfony |