Fichiers appSettings.json
La configuration de l'application installée se fait dans le fichier appsettings.json du projet Server. Cette configuration est utilisée par le serveur et une partie est transmise au client Blazor WebAssembly.
Les seules clés utilisables côté client sont celles de la section App et de ses sous-sections. Ne placez pas de secret dans App, car ces valeurs sont exposées au navigateur.
Format du fichier
{
"ConnectionStrings": {
"DefaultConnection": "DataSource=app.db"
},
"MySampleSection": {
"MySampleKey": "Value of my key"
},
"App": {
"Name": "LagoonDev",
"EnvironmentName": "DEV",
"EnvironmentColor": "#0045BC",
"MyAppClientCustomKey": "My value",
"About": {
"AdditionalInformation": [
{
"Label": "My label:",
"Description": "Lorem ipsum",
"Uri": "https://example.com"
}
]
},
"ClientLogger": {
"SyncErrorDelay": 1800,
"MaxResendErrorAttempts": 10,
"MaxLocalErrorsCount": 200
}
}
}
Utiliser la configuration côté serveur
Injectez IConfiguration dans les services, contrôleurs ou classes serveur qui ont besoin de lire la configuration.
public class MyService
{
private readonly IConfiguration _configuration;
public MyService(IConfiguration configuration)
{
_configuration = configuration;
}
public string GetConfiguredValue()
{
// Lit une valeur applicative avec une valeur par défaut si la clé est absente.
return _configuration.GetValue("MySampleSection:MySampleKey", "MyDefaultValue");
}
}
La syntaxe par indexeur est également disponible : configuration["MySampleSection:MySampleKey"].
Utiliser la configuration côté client
Côté client, seules les clés sous App sont disponibles.
public class MyClientService
{
private readonly IConfiguration _configuration;
public MyClientService(IConfiguration configuration)
{
_configuration = configuration;
}
public string GetClientValue()
{
// La clé doit appartenir à la section App pour être transmise au client.
return _configuration.GetValue("App:MyAppClientCustomKey", "MyDefaultValue");
}
}
Sections Lagoon courantes
| Section | Usage |
|---|---|
ConnectionStrings | Chaînes de connexion utilisées par le DbContext applicatif. |
AutoUpdateDatabase | Indique si le serveur applique les migrations au démarrage lorsque Main.OnStartAsync le lit. |
Logging | Niveaux de journalisation ASP.NET Core. |
App | Informations applicatives disponibles côté serveur et côté client. |
Lagoon | Paramètres framework côté serveur : URL publique, journalisation, SMTP, CSP, certificat OpenID, etc. |
Section App
| Clé | Description | Défaut |
|---|---|---|
Name | Nom de l'application. | Nom racine de l'application. |
EnvironmentName | Nom court d'environnement affiché si EnvironmentDisplayName est absent, par exemple PROD ou DEV. | Non défini. |
EnvironmentDisplayName | Nom d'environnement affiché ; si absent, Lagoon utilise EnvironmentName. | EnvironmentName. |
EnvironmentColor | Couleur associée à l'environnement courant. | Non défini. |
PostLogoutUri | URL appelée après la déconnexion. | Non défini. |
PostLogoutMode | Mode d'appel de PostLogoutUri : Navigation ou XHR. | Navigation. |
About:AdditionalInformation | Informations supplémentaires affichées dans la page À propos. | Aucune entrée. |
ClientLogger:SyncErrorDelay | Délai de synchronisation des erreurs client, en secondes. | 1800. |
ClientLogger:MaxResendErrorAttempts | Nombre maximal de tentatives de renvoi des erreurs client. | 10. |
ClientLogger:MaxLocalErrorsCount | Nombre maximal d'erreurs client conservées localement. | 200. |
PostLogoutMode accepte deux comportements :
| Valeur | Effet |
|---|---|
Navigation | Navigue vers l'URL PostLogoutUri après déconnexion. |
XHR | Appelle PostLogoutUri de façon asynchrone sans se préoccuper du résultat. |
Section Lagoon
Les clés suivantes sont utilisées par les modules Lagoon lorsque les fonctionnalités correspondantes sont activées.
| Clé | Usage |
|---|---|
PublicUrl | URL publique de l'application. Elle sert notamment à construire la CSP et les URL publiques. |
RemotePublicUrl | Valeur transmise au client pour vérifier la cohérence avec le <base href>. |
ConfigPageToken | Jeton de protection de la page de configuration serveur. |
AutoUpdateDatabase | Indique si le framework applique les migrations au démarrage. |
Authentication:OpendIdCertificate | Nom ou chemin du certificat OpenID utilisé par le serveur. |
Authentication:CertificateBase64 | Certificat OpenID en chaîne : <certificat>.<clé privée> en base64, ou base64 d'un pfx. Prioritaire sur les fichiers. |
DefaultLoggers | Conservation des loggers ASP.NET Core pré-enregistrés. |
LightConsoleLogger | Journalisation console simplifiée. |
FileLogger | Journalisation fichier Lagoon. |
Smtp | Envoi de mails côté serveur. |
CSP | Content Security Policy générée par Lagoon. |
EulaFiles | Fichiers HTML de CGU/EULA utilisés par le mode partagé. |
ChromiumPath | Chemin de Chromium utilisé par Lagoon.PDF lorsqu'il est installé. |
Environnements
appsettings.jsoncontient la configuration de base.appsettings.Development.jsonsurcharge cette configuration en développement.- Les secrets de production doivent être fournis par l'environnement d'exécution ou par la configuration sécurisée de l'hébergeur, pas versionnés en clair.