WebSvc.ConfigVisualizer 1.0.3

dotnet add package WebSvc.ConfigVisualizer --version 1.0.3
                    
NuGet\Install-Package WebSvc.ConfigVisualizer -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WebSvc.ConfigVisualizer" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebSvc.ConfigVisualizer" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="WebSvc.ConfigVisualizer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WebSvc.ConfigVisualizer --version 1.0.3
                    
#r "nuget: WebSvc.ConfigVisualizer, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package WebSvc.ConfigVisualizer@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WebSvc.ConfigVisualizer&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=WebSvc.ConfigVisualizer&version=1.0.3
                    
Install as a Cake Tool

WebSvc.ConfigVisualizer

Standalone editor for the tenant dashboard config JSON that CrudApi's AI pipeline (CrudConfigApplicationService) generates and pushes to git at mydash/tenants-config/{db}.json.

  • Tree/field-list/inspector editor over the config's groups[] → entities[] → fields shape — fixes gaps the generator leaves behind (e.g. a relation field's labelFields always emitted empty).
  • No SQL storage of its own — same "JSON-file session" shape as WebSvc.SqliteAdmin. Draft edits live entirely in the browser; nothing is written until you publish.
  • Publishing creates a new git commit via WebSvc.GitOps's IGitOpsService (PushFileAsync) — the same call the generator itself uses, so there's no second write path.
  • Version history and restore read commit history directly from the GitHub REST API (GitHub:Owner/GitHub:Repo/GitHub:Token, the same IConfiguration keys HostSettingsConfigBridge already populates for WebSvc.GitOps) — IGitOpsService itself has no history capability, so this is a small, independent, read-only client.
  • Independent login at /configvisualizer/login, plus a signed, short-lived, single-use, Global-Admin-only auto-login handoff from CrudAdmin's Databases page, scoped per database.

Setup

builder.Services.AddConfigVisualizer(builder.Configuration);
// ...
app.UseConfigVisualizer();
// ...
app.MapConfigVisualizer();

Requires WebSvc.GitOps's IGitOpsService and GitHub credentials (GitHub:Owner, GitHub:Repo, GitHub:Token) already registered/configured in the host — this package doesn't own that setup, it only consumes it.

Configuration (appsettings.json, section ConfigVisualizer): RootPath (default /configvisualizer), DataDirectory (default ConfigVisualizerData/ under the app's base directory — kept separate from sibling packages' data folders), Username/ PasswordHash (the Global-Admin break-glass manual-login credential), SessionHours, ConfigPathPrefix (default mydash/tenants-config), Branch (default main).

To enable the signed cross-app handoff from CrudAdmin's Databases page, also call AddCrudAdmin(...) in the same host — ConfigVisualizer shares whatever IDataProtectionProvider key ring is already registered (typically CrudAdmin's), so no AddDataProtection() call is needed here.

Explicitly out of scope

Schema introspection, the AI grouping call, and generate-config itself all stay in CrudApi's own CrudConfigApplicationService — this package only ever reads, edits, and republishes the JSON that pipeline already produces.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.3 94 8/30/2026
1.0.2 103 8/29/2026
1.0.1 96 8/29/2026
1.0.0 97 8/29/2026