Skip to content

docs: appsettings.json philosophy section#6

Merged
StuartMeeks merged 1 commit intomainfrom
config-file-philosophy-doc
May 3, 2026
Merged

docs: appsettings.json philosophy section#6
StuartMeeks merged 1 commit intomainfrom
config-file-philosophy-doc

Conversation

@StuartMeeks
Copy link
Copy Markdown
Owner

@StuartMeeks StuartMeeks commented May 3, 2026

Summary

Docs-only. New "Working with appsettings.json across updates" README section between "Preserving user files across updates" and the configuration table.

Covers:

  • The recommended path — preserve appsettings.{Environment}.json, let appsettings.json update with each release; IConfiguration overlays them at runtime so no file-on-disk merge is needed.
  • Migration tip for consumers whose users currently put connection strings in the base appsettings.json — one-time move into a layered override file, zero ongoing complexity.
  • Escape hatch showing how the existing onConflict resolver can be used to perform a surgical JSON merge in-place. Acknowledges the caveats: no base version means user-modified vs inherited can't be distinguished, JSON round-trips drop comments, and the package deliberately doesn't ship a built-in merger.

No version bump, no code changes, no behaviour change.

Test plan

  • README renders correctly (markdown well-formed, code samples are valid C#/JSON)
  • CI green (unchanged from main since this is docs-only)

🤖 Generated with Claude Code

Adds a "Working with appsettings.json across updates" section to
the README between the user-files section and the configuration
table. Covers:

- The .NET layering recommendation (preserve appsettings.{Env}.json,
  let appsettings.json update with each release; IConfiguration
  overlays them at runtime — no file-on-disk merge needed).
- Migration tip for consumers whose users currently put connection
  strings in the base appsettings.json.
- The onConflict resolver as an escape hatch for consumers who really
  do need to merge two JSON files at install time, with caveats:
  no diff base means user-modified vs inherited can't be distinguished,
  JSON round-trips drop comments, and the package deliberately doesn't
  ship a built-in merger.

Docs-only — no version bump, no behaviour change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@StuartMeeks StuartMeeks merged commit 81ba10c into main May 3, 2026
4 checks passed
@StuartMeeks StuartMeeks deleted the config-file-philosophy-doc branch May 3, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant