Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 1 addition & 17 deletions .github/workflows/publish-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,23 +79,7 @@ jobs:

- name: Push to NuGet
run: |
dotnet nuget push ./nupkgs/Kododo.ConfigWay.Core.*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
dotnet nuget push ./nupkgs/Kododo.ConfigWay.*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
dotnet nuget push ./nupkgs/Kododo.ConfigWay.UI.*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
dotnet nuget push ./nupkgs/Kododo.ConfigWay.PostgreSQL.*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
dotnet nuget push ./nupkgs/Kododo.ConfigWay.SqlServer.*.nupkg \
dotnet nuget push ./nupkgs/*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ Sensitive fields behave as follows:
- The real value is never returned by the API. When a value is stored, the API returns `"***"`. When nothing is stored, it returns `null`.
- Submitting an empty value is treated as "no change". To remove a stored sensitive value, use the reset button.
- The reset button appears when a sensitive value is stored. Resetting deletes the stored value and lets the underlying configuration layer (appsettings.json, environment variable) take effect again without a restart.
- Sensitive values are masked in the UI and the API only. The store keeps them as plain text, so restrict access to the database accordingly.

## Customizing UI labels and descriptions

Expand Down Expand Up @@ -204,6 +205,11 @@ app.UseConfigWay()

> Use `IOptionsSnapshot<T>` or `IOptionsMonitor<T>` in your code to always get the latest values after a reload.

## Limitations

- Changes are reloaded only in the instance that saved them. When the app runs as several replicas, the other replicas pick up the new values after a restart.
- Saves do not check for concurrent edits. If two people edit the same section at the same time, the last save wins.

## Custom store

You can replace the built-in in-memory store with any backend by implementing `IStore` from `Kododo.ConfigWay.Core`:
Expand Down
Loading