Skip to content

Configuration

Generated apps use appsettings.json with environment overlays (Development, Production, Testing, PagePack). Template symbols set defaults such as:

  • MarketingSiteTemplate:DefaultCulture (from DefaultLanguage)
  • Analytics:GA4:Enabled (from EnableAnalytics)
  • CookieConsent:Enabled (from EnableCookieConsent)

Use IOptions<T> with FluentValidation validators registered in OptionsExtensions.AddMarketingSiteTemplateOptions().

Key sections

Section Purpose
Serilog Structured logging (async file JSON/text, console, App Insights)
MarketingSiteTemplate App name, version, cultures, company, theme, warmup
RateLimiting Token bucket; excludes health/static paths
Observability Metrics/tracing endpoints and sampling
HealthChecks / MarketingSiteTemplateHealthCheckProbes Ready/live/startup paths
OpenTelemetry Service identity, exporters (console dev, Azure Monitor prod)
FeatureManagement Page pack and experiment flags
Experiments A/B variant weights
Cors Origins and methods
ApplicationInsights Connection string and module toggles
Analytics GA4:MeasurementId, Enabled
CookieConsent Banner and consent storage
Swagger API docs toggle (dev by default)
MicroFrontends Sample MFE1/MFE2 entries (demo pages, not main nav)

Options classes

MarketingSiteTemplateOptions, MicroFrontendOptions, RateLimitingOptions, LoggingOptions, ObservabilityOptions, HealthChecksOptions, MarketingSiteTemplateHealthCheckProbeOptions, CorsOptions, HeaderPropagationOptions, SwaggerOptions, ExperimentsOptions — each with a validator in Options/Validators/.

Environment variables

Standard ASP.NET Core overrides apply (Section__Key pattern), for example:

  • ApplicationInsights__ConnectionString
  • Analytics__GA4__MeasurementId
  • ASPNETCORE_ENVIRONMENT

Deep dive in-repo: getting-started.md, troubleshooting.md.

Tip

After dotnet new, review generated appsettings*.json before first deploy; GA4 measurement IDs, App Insights connection strings, and BaseUrl are environment-specific.