Aller au contenu principal

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.

attention

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.

MyService.cs
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.

MyClientService.cs
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​

SectionUsage
ConnectionStringsChaînes de connexion utilisées par le DbContext applicatif.
AutoUpdateDatabaseIndique si le serveur applique les migrations au démarrage lorsque Main.OnStartAsync le lit.
LoggingNiveaux de journalisation ASP.NET Core.
AppInformations applicatives disponibles côté serveur et côté client.
LagoonParamètres framework côté serveur : URL publique, journalisation, SMTP, CSP, certificat OpenID, etc.

Section App​

CléDescriptionDéfaut
NameNom de l'application.Nom racine de l'application.
EnvironmentNameNom court d'environnement affiché si EnvironmentDisplayName est absent, par exemple PROD ou DEV.Non défini.
EnvironmentDisplayNameNom d'environnement affiché ; si absent, Lagoon utilise EnvironmentName.EnvironmentName.
EnvironmentColorCouleur associée à l'environnement courant.Non défini.
PostLogoutUriURL appelée après la déconnexion.Non défini.
PostLogoutModeMode d'appel de PostLogoutUri : Navigation ou XHR.Navigation.
About:AdditionalInformationInformations supplémentaires affichées dans la page À propos.Aucune entrée.
ClientLogger:SyncErrorDelayDélai de synchronisation des erreurs client, en secondes.1800.
ClientLogger:MaxResendErrorAttemptsNombre maximal de tentatives de renvoi des erreurs client.10.
ClientLogger:MaxLocalErrorsCountNombre maximal d'erreurs client conservées localement.200.

PostLogoutMode accepte deux comportements :

ValeurEffet
NavigationNavigue vers l'URL PostLogoutUri après déconnexion.
XHRAppelle 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
PublicUrlURL publique de l'application. Elle sert notamment à construire la CSP et les URL publiques.
RemotePublicUrlValeur transmise au client pour vérifier la cohérence avec le <base href>.
ConfigPageTokenJeton de protection de la page de configuration serveur.
AutoUpdateDatabaseIndique si le framework applique les migrations au démarrage.
Authentication:OpendIdCertificateNom ou chemin du certificat OpenID utilisé par le serveur.
Authentication:CertificateBase64Certificat OpenID en chaîne : <certificat>.<clé privée> en base64, ou base64 d'un pfx. Prioritaire sur les fichiers.
DefaultLoggersConservation des loggers ASP.NET Core pré-enregistrés.
LightConsoleLoggerJournalisation console simplifiée.
FileLoggerJournalisation fichier Lagoon.
SmtpEnvoi de mails côté serveur.
CSPContent Security Policy générée par Lagoon.
EulaFilesFichiers HTML de CGU/EULA utilisés par le mode partagé.
ChromiumPathChemin de Chromium utilisé par Lagoon.PDF lorsqu'il est installé.

Environnements​

  • appsettings.json contient la configuration de base.
  • appsettings.Development.json surcharge 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.