ForgeTrust.AppSurface.Config.LocalSecrets
0.1.0-rc.4
dotnet add package ForgeTrust.AppSurface.Config.LocalSecrets --version 0.1.0-rc.4
NuGet\Install-Package ForgeTrust.AppSurface.Config.LocalSecrets -Version 0.1.0-rc.4
<PackageReference Include="ForgeTrust.AppSurface.Config.LocalSecrets" Version="0.1.0-rc.4" />
<PackageVersion Include="ForgeTrust.AppSurface.Config.LocalSecrets" Version="0.1.0-rc.4" />
<PackageReference Include="ForgeTrust.AppSurface.Config.LocalSecrets" />
paket add ForgeTrust.AppSurface.Config.LocalSecrets --version 0.1.0-rc.4
#r "nuget: ForgeTrust.AppSurface.Config.LocalSecrets, 0.1.0-rc.4"
#:package ForgeTrust.AppSurface.Config.LocalSecrets@0.1.0-rc.4
#addin nuget:?package=ForgeTrust.AppSurface.Config.LocalSecrets&version=0.1.0-rc.4&prerelease
#tool nuget:?package=ForgeTrust.AppSurface.Config.LocalSecrets&version=0.1.0-rc.4&prerelease
ForgeTrust.AppSurface.Config.LocalSecrets
OS-backed local secret posture for AppSurface configuration.
Use this package when a solo or hobbyist AppSurface app needs local development secrets before it has a remote vault. LocalSecrets is not a team vault, CI secret system, container secret provider, or production rotation/audit solution.
Install
dotnet package add ForgeTrust.AppSurface.Config.LocalSecrets
Register AppSurfaceLocalSecretsModule beside your Config module. Environment variables still win, LocalSecrets sits
above file configuration, and only a true missing local secret falls through to files.
First Secret
appsurface secrets init --app MyApp --environment Development
printf '%s' "<secret>" | appsurface secrets set Stripe:ApiKey --app MyApp --environment Development --stdin
appsurface secrets doctor --app MyApp --environment Development
dotnet run
appsurface config diagnostics
The diagnostics path reports where a value came from without printing the raw secret value.
Posture Modes
DevelopmentOnlyis the default. It permitsDevelopment,Local, andDev.SingleMachineSelfHostedis explicit self-hosting. It does not provide team vault guarantees.Disabledstops LocalSecrets from resolving values.
Use environment variables, key-per-file, or a remote vault in CI, containers, team environments, and production.
Release Guidance
Use the v0.1.0 RC 4 release note for the current package-facing prerelease story, risk notes, and migration guidance.
Structured Statuses
AppSurfaceLocalSecretProvider.GetValue<T> adapts LocalSecrets into the normal AppSurface config provider contract.
When callers need the LocalSecrets status directly, use ResolveValue<T>(environment, key). It returns
Found, Missing, Unavailable, Locked, UnsupportedPlatform, DisabledByPosture, InvalidIdentity,
ConversionFailed, or ProviderFailed with a paste-safe diagnostic and source name. Only Missing means the
provider should fall through to lower-priority configuration.
Platform Matrix
| Platform | Adapter | Notes |
|---|---|---|
| macOS | Keychain generic passwords through Security.framework | Requires an interactive user session when Keychain prompts. |
| Linux | Secret Service through secret-tool |
Requires DBus/session secret service availability. |
| Windows | Credential Manager generic credentials for the current user | Requires an interactive user profile; use environment variables/key-per-file for services, CI, and containers. |
Migration Ladder
appsettings defaults < LocalSecrets < environment variables < future remote vault provider
Keep the same AppSurface config key when moving from .env, dotnet user-secrets, or accidental
appsettings.Development.json secrets into LocalSecrets. Later vault providers should preserve the same logical key.
Guides:
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CliWrap (>= 3.10.1)
- ForgeTrust.AppSurface.Config (>= 0.1.0-rc.4)
- ForgeTrust.AppSurface.Core (>= 0.1.0-rc.4)
- Microsoft.Extensions.Hosting (>= 10.0.8)
- Microsoft.Extensions.Logging.Console (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.4 | 70 | 6/16/2026 |