Portal Community

The Problem This Solves

Every developer has a different local SQL Server instance name. Every tenant has a different database, Redis cluster, and Kafka broker. Without a system, all of these end up in appsettings.json — which gets committed, overwriting everyone else's settings on next pull.

The Platform Settings system gives each concern its own file and its own rule about whether it is committed to git. Developers never need to touch the base config files again.

The Five Layers at a Glance

1

appsettings.json committed

Machine-neutral base defaults. No specific server names or passwords.

2

appsettings.{env}.json committed

Environment-specific defaults (Development, Staging, Production). Loaded by ASP.NET automatically.

3

appsettings.{env}.Local.json gitignored

Your machine overrides. SQL Server name, local Redis, local Kafka. Never committed.

4

appsettings.Tenant.{code}.json committed

Tenant base config — feature flags, topic names, LLM model selection. All envs.

5

appsettings.Tenant.{code}.{env}.json deployed

Tenant + environment specific. Real DB, Redis, Kafka, secrets. Last layer wins.

What Drives the Layer Tokens

TokenSourceSet in
{env}ASPNETCORE_ENVIRONMENTlaunchSettings.json, system env var, or container config
{code}TENANT_CODElaunchSettings.json, system env var, or container config
New to this? Start with How It Works to understand the loading pipeline, then go to Local Setup to configure your machine in five minutes.

Pages in This Guide