{"id":23170969,"url":"https://github.com/ignatandrei/appsettingseditor","last_synced_at":"2025-08-18T07:31:57.378Z","repository":{"id":53589790,"uuid":"349804037","full_name":"ignatandrei/appSettingsEditor","owner":"ignatandrei","description":"app settings editor - powered by Roslyn","archived":false,"fork":false,"pushed_at":"2024-07-09T21:22:26.000Z","size":554,"stargazers_count":8,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-01T04:50:48.922Z","etag":null,"topics":["appsettings","appsettings-json","appsettingsjson","asp-net-core","aspnet-core","aspnetcore","code-generation","code-generator","code-generators","csharp","csharp-sourcegenerator","dotnet","dotnet-core","dotnetcore","generator","roslyn"],"latest_commit_sha":null,"homepage":"https://ignatandrei.github.io/appSettingsEditor/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ignatandrei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-20T18:22:45.000Z","updated_at":"2024-10-12T02:53:30.000Z","dependencies_parsed_at":"2022-09-11T09:10:26.367Z","dependency_job_id":null,"html_url":"https://github.com/ignatandrei/appSettingsEditor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ignatandrei/appSettingsEditor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignatandrei%2FappSettingsEditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignatandrei%2FappSettingsEditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignatandrei%2FappSettingsEditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignatandrei%2FappSettingsEditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ignatandrei","download_url":"https://codeload.github.com/ignatandrei/appSettingsEditor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignatandrei%2FappSettingsEditor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270961621,"owners_count":24675914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appsettings","appsettings-json","appsettingsjson","asp-net-core","aspnet-core","aspnetcore","code-generation","code-generator","code-generators","csharp","csharp-sourcegenerator","dotnet","dotnet-core","dotnetcore","generator","roslyn"],"created_at":"2024-12-18T04:15:44.717Z","updated_at":"2025-08-18T07:31:57.026Z","avatar_url":"https://github.com/ignatandrei.png","language":"JavaScript","readme":"# appSettingsEditor\napp settings editor - powered by Roslyn\n\n## What it does\n\nAutogenerates controller API for appsettings.json\n\nOptional, it has also an endpoint for a HTML GUI editor\n\nThis is how swagger looks :\n\n\u003cimg src='https://github.com/ignatandrei/appSettingsEditor/blob/main/docs/images/swagger.png?raw=true' /\u003e\n\nAnd you can browse to /settingsUI to have this editor ( powered by https://github.com/json-editor/json-editor )\n\t\n\u003cimg src='https://github.com/ignatandrei/appSettingsEditor/blob/main/docs/images/settingsui.png?raw=true' /\u003e\n\t\n\n\n## How to use \n\n  Add 2 NUGET  references:\n\n  appSettingEditorAPI\n  appSettingsEditor\n\nFor your convenience, please add to the csproj :\n\t\n\t\n```xml\n\t\n\u003cItemGroup\u003e\n    \u003cPackageReference Include=\"appSettingsEditor\" Version=\"2021.3.21.2300\" /\u003e\n    \u003cPackageReference Include=\"appSettingsEditorAPI\" Version=\"2021.3.21.2300\" /\u003e\n  \t\u003cCompilerVisibleItemMetadata Include=\"AdditionalFiles\" MetadataName=\"generateAPI\" /\u003e\n    \u003cAdditionalFiles Include=\"appsettings.json\" generateAPI=\"true\" \u003e\n    \t\t\u003cCopyToOutputDirectory\u003ePreserveNewest\u003c/CopyToOutputDirectory\u003e\n\t\u003c/AdditionalFiles\u003e\n\u003c/ItemGroup\u003e\n\u003cPropertyGroup\u003e\n\t\u003cEmitCompilerGeneratedFiles\u003etrue\u003c/EmitCompilerGeneratedFiles\u003e\n\t\u003cCompilerGeneratedFilesOutputPath\u003e$(BaseIntermediateOutputPath)Generated\u003c/CompilerGeneratedFilesOutputPath\u003e\n\u003c/PropertyGroup\u003e\n\n```\n\nIf you want to see a GUI for settings ( /settingsUI) , please do\n\t\n```csharp\napp.UseEndpoints(endpoints =\u003e\n{\nendpoints.MapControllers(); // add next line\nendpoints.MapSettingsView \u003cSettingsJson.appsettings\u003e(Configuration);\n});\n```\n\nIf you want to handle security, add\n\n```csharp\npublic partial class appsettingsController : ControllerBase\n{\n//partial void BeforeGet(appsettings data)\n//{\n\n//}\n//partial void BeforeSave(appsettings data, appsettings original)\n//{\n\n//}\n\n}\n```\n\t  \n## Known problems and solving\n\n### I have a versioning API .      \n\nAdd this to Startup.cs , \n```csharp\npublic void ConfigureServices(IServiceCollection services)\nservices.AddApiVersioning(\nit =\u003e\n{\n    it.AssumeDefaultVersionWhenUnspecified = true;\n    it.DefaultApiVersion = new ApiVersion(1,0);\n}\n);\n```\n\n\n### I have another file name app_custom_settings.json, not appsettings.json\n\nMake the modifications below:\nIn the csproj\n```xml\n\u003cItemGroup\u003e\n    \u003cPackageReference Include=\"appSettingsEditor\" Version=\"2021.3.21.2300\" /\u003e\n    \u003cPackageReference Include=\"appSettingsEditorAPI\" Version=\"2021.3.21.2300\" /\u003e\n    \u003cCompilerVisibleItemMetadata Include=\"AdditionalFiles\" MetadataName=\"generateAPI\" /\u003e\n    \u003cAdditionalFiles Include=\"app_custom_setting.json\" generateAPI=\"true\"\u003e\n      \u003cCopyToOutputDirectory\u003ePreserveNewest\u003c/CopyToOutputDirectory\u003e\n    \u003c/AdditionalFiles\u003e\n  \u003c/ItemGroup\u003e\n  \u003cPropertyGroup\u003e\n    \u003cEmitCompilerGeneratedFiles\u003etrue\u003c/EmitCompilerGeneratedFiles\u003e\n    \u003cCompilerGeneratedFilesOutputPath\u003e$(BaseIntermediateOutputPath)Generated\u003c/CompilerGeneratedFilesOutputPath\u003e\n  \u003c/PropertyGroup\u003e\n```\n\nIn the startup.cs\n```csharp\nappSettingsEditor.Extensions.MapSettingsView\u003capp_custom_setting\u003e(endpoints, Configuration,\"app_custom_setting.json\",\"/api/app_custom_setting\");\n```\n\n\n\n### I have multiple appsettings.json\n\nThis is not supported yet for the GUI. Please make an issue and describe your problem\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignatandrei%2Fappsettingseditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignatandrei%2Fappsettingseditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignatandrei%2Fappsettingseditor/lists"}