From 7ac5ef58158dd0ac24bd0649d6bf7f3fc04f563d Mon Sep 17 00:00:00 2001 From: Roland Guijt Date: Tue, 28 Apr 2026 15:58:21 +0200 Subject: [PATCH] Aspire for SimpleDcr sample --- .../IdentityServerHost/appsettings.json | 15 ++--- .../Configuration/SimpleDcr/Configuration.sln | 56 ++++++++++++++++++- .../Configuration/Configuration.csproj | 4 ++ .../SimpleDcr/Configuration/Program.cs | 4 ++ .../ConsoleDcrClient/ConsoleDcrClient.csproj | 4 ++ .../SimpleDcr/SimpleDcr.AppHost/AppHost.cs | 54 ++++++++++++++++++ .../Properties/launchSettings.json | 31 ++++++++++ .../SimpleDcr.AppHost.csproj | 21 +++++++ .../appsettings.Development.json | 8 +++ .../SimpleDcr.AppHost/appsettings.json | 9 +++ .../IdentityServerHost/appsettings.json | 15 ++--- .../Configuration/SimpleDcr/Configuration.sln | 56 ++++++++++++++++++- .../Configuration/Configuration.csproj | 4 ++ .../SimpleDcr/Configuration/Program.cs | 4 ++ .../ConsoleDcrClient/ConsoleDcrClient.csproj | 4 ++ .../SimpleDcr/SimpleDcr.AppHost/AppHost.cs | 54 ++++++++++++++++++ .../Properties/launchSettings.json | 31 ++++++++++ .../SimpleDcr.AppHost.csproj | 21 +++++++ .../appsettings.Development.json | 8 +++ .../SimpleDcr.AppHost/appsettings.json | 9 +++ samples.slnx | 2 + 21 files changed, 388 insertions(+), 26 deletions(-) create mode 100644 IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs create mode 100644 IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json create mode 100644 IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj create mode 100644 IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json create mode 100644 IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json create mode 100644 IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs create mode 100644 IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json create mode 100644 IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj create mode 100644 IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json create mode 100644 IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json diff --git a/IdentityServer/v7/Configuration/IdentityServerHost/appsettings.json b/IdentityServer/v7/Configuration/IdentityServerHost/appsettings.json index b4328d30..3863cc4a 100644 --- a/IdentityServer/v7/Configuration/IdentityServerHost/appsettings.json +++ b/IdentityServer/v7/Configuration/IdentityServerHost/appsettings.json @@ -1,16 +1,11 @@ { - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information", - "Microsoft.AspNetCore.Authentication": "Debug", - "System": "Warning" - } + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" } }, "ConnectionStrings": { "DefaultConnection": "Data Source=../IdentityServer.db;" } -} \ No newline at end of file +} diff --git a/IdentityServer/v7/Configuration/SimpleDcr/Configuration.sln b/IdentityServer/v7/Configuration/SimpleDcr/Configuration.sln index efa479ba..bdfc3477 100644 --- a/IdentityServer/v7/Configuration/SimpleDcr/Configuration.sln +++ b/IdentityServer/v7/Configuration/SimpleDcr/Configuration.sln @@ -11,30 +11,80 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IdentityServer", "..\Identi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleApi", "..\..\Apis\SimpleApi\SimpleApi.csproj", "{BCE427BA-E794-4956-AA68-FA0CAE184DFA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleDcr.AppHost", "SimpleDcr.AppHost\SimpleDcr.AppHost.csproj", "{729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x64.Build.0 = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x86.Build.0 = Debug|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|Any CPU.Build.0 = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x64.ActiveCfg = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x64.Build.0 = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x86.ActiveCfg = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x86.Build.0 = Release|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x64.ActiveCfg = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x64.Build.0 = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x86.ActiveCfg = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x86.Build.0 = Debug|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|Any CPU.ActiveCfg = Release|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|Any CPU.Build.0 = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x64.ActiveCfg = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x64.Build.0 = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x86.ActiveCfg = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x86.Build.0 = Release|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x64.Build.0 = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x86.Build.0 = Debug|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|Any CPU.Build.0 = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x64.ActiveCfg = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x64.Build.0 = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x86.ActiveCfg = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x86.Build.0 = Release|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x64.ActiveCfg = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x64.Build.0 = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x86.ActiveCfg = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x86.Build.0 = Debug|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|Any CPU.Build.0 = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x64.ActiveCfg = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x64.Build.0 = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x86.ActiveCfg = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x86.Build.0 = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|x64.ActiveCfg = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|x64.Build.0 = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|x86.ActiveCfg = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Debug|x86.Build.0 = Debug|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|Any CPU.Build.0 = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|x64.ActiveCfg = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|x64.Build.0 = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|x86.ActiveCfg = Release|Any CPU + {729A28E9-EF1F-4EBA-B09A-FFBCB9AD1C32}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection EndGlobal diff --git a/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Configuration.csproj b/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Configuration.csproj index 5db2b431..833bbade 100644 --- a/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Configuration.csproj +++ b/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Configuration.csproj @@ -13,4 +13,8 @@ + + + + diff --git a/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Program.cs b/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Program.cs index 1e15eeb3..048e240e 100644 --- a/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Program.cs +++ b/IdentityServer/v7/Configuration/SimpleDcr/Configuration/Program.cs @@ -10,6 +10,7 @@ Console.Title = "Configuration API"; var builder = WebApplication.CreateBuilder(args); +builder.AddServiceDefaults(); builder.Services.AddIdentityServerConfiguration(opt => { }) .AddClientConfigurationStore(); @@ -39,6 +40,9 @@ }); var app = builder.Build(); + +app.MapDefaultEndpoints(); + app.UseAuthentication(); app.UseAuthorization(); app.MapDynamicClientRegistration().RequireAuthorization("DCR"); diff --git a/IdentityServer/v7/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj b/IdentityServer/v7/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj index 98d847bb..0809995c 100644 --- a/IdentityServer/v7/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj +++ b/IdentityServer/v7/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj @@ -10,4 +10,8 @@ + + + + diff --git a/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs new file mode 100644 index 00000000..a1c73dcb --- /dev/null +++ b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs @@ -0,0 +1,54 @@ +var builder = DistributedApplication.CreateBuilder(args); + +var idp = builder.AddProject("identityserverhost"); + +var configuration = builder.AddProject("configuration-api") + .WaitFor(idp); + +builder.AddProject("simple-api") + .WaitFor(idp); + +builder.AddProject("console-dcr-client") + .WaitFor(idp) + .WaitFor(configuration); + +idp.WithCommand( + name: "seed", + displayName: "Seed Database", + executeCommand: async (context) => + { + var projectMetadata = idp.Resource.GetProjectMetadata(); + var projectPath = projectMetadata.ProjectPath; + var process = new System.Diagnostics.Process + { + StartInfo = new System.Diagnostics.ProcessStartInfo + { + FileName = "dotnet", + Arguments = $"run --project \"{projectPath}\" --no-build -- /seed", + UseShellExecute = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + CreateNoWindow = true + } + }; + + process.Start(); + await process.WaitForExitAsync(context.CancellationToken); + + if (process.ExitCode == 0) + { + return CommandResults.Success(); + } + else + { + var error = await process.StandardError.ReadToEndAsync(); + return CommandResults.Failure(error); + } + }, + commandOptions: new CommandOptions + { + IconName = "DatabaseArrowUp", + IsHighlighted = true + }); + +builder.Build().Run(); diff --git a/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json new file mode 100644 index 00000000..2fd7abcd --- /dev/null +++ b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:17050;http://localhost:15293", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21177", + "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "https://localhost:23178", + "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22126" + } + }, + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:15293", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19222", + "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18151", + "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20036" + } + } + } +} diff --git a/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj new file mode 100644 index 00000000..34970118 --- /dev/null +++ b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj @@ -0,0 +1,21 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + + + + + + + + diff --git a/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json new file mode 100644 index 00000000..31c092aa --- /dev/null +++ b/IdentityServer/v7/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.Dcp": "Warning" + } + } +} diff --git a/IdentityServer/v8/Configuration/IdentityServerHost/appsettings.json b/IdentityServer/v8/Configuration/IdentityServerHost/appsettings.json index b4328d30..3863cc4a 100644 --- a/IdentityServer/v8/Configuration/IdentityServerHost/appsettings.json +++ b/IdentityServer/v8/Configuration/IdentityServerHost/appsettings.json @@ -1,16 +1,11 @@ { - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information", - "Microsoft.AspNetCore.Authentication": "Debug", - "System": "Warning" - } + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" } }, "ConnectionStrings": { "DefaultConnection": "Data Source=../IdentityServer.db;" } -} \ No newline at end of file +} diff --git a/IdentityServer/v8/Configuration/SimpleDcr/Configuration.sln b/IdentityServer/v8/Configuration/SimpleDcr/Configuration.sln index efa479ba..76e08532 100644 --- a/IdentityServer/v8/Configuration/SimpleDcr/Configuration.sln +++ b/IdentityServer/v8/Configuration/SimpleDcr/Configuration.sln @@ -11,30 +11,80 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IdentityServer", "..\Identi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleApi", "..\..\Apis\SimpleApi\SimpleApi.csproj", "{BCE427BA-E794-4956-AA68-FA0CAE184DFA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleDcr.AppHost", "SimpleDcr.AppHost\SimpleDcr.AppHost.csproj", "{F7806158-551F-488B-95FC-41BED904AF2C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x64.Build.0 = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Debug|x86.Build.0 = Debug|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|Any CPU.Build.0 = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x64.ActiveCfg = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x64.Build.0 = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x86.ActiveCfg = Release|Any CPU + {CD4E158A-9173-49A5-BF10-F5CAE6E5D3B1}.Release|x86.Build.0 = Release|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x64.ActiveCfg = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x64.Build.0 = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x86.ActiveCfg = Debug|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Debug|x86.Build.0 = Debug|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|Any CPU.ActiveCfg = Release|Any CPU {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|Any CPU.Build.0 = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x64.ActiveCfg = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x64.Build.0 = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x86.ActiveCfg = Release|Any CPU + {D134466E-58AE-4787-984B-FB6F95EEA969}.Release|x86.Build.0 = Release|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x64.Build.0 = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Debug|x86.Build.0 = Debug|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|Any CPU.Build.0 = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x64.ActiveCfg = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x64.Build.0 = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x86.ActiveCfg = Release|Any CPU + {84D25756-275F-4BB1-AFAC-E9FD568102EE}.Release|x86.Build.0 = Release|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x64.ActiveCfg = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x64.Build.0 = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x86.ActiveCfg = Debug|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Debug|x86.Build.0 = Debug|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|Any CPU.Build.0 = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x64.ActiveCfg = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x64.Build.0 = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x86.ActiveCfg = Release|Any CPU + {BCE427BA-E794-4956-AA68-FA0CAE184DFA}.Release|x86.Build.0 = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|x64.Build.0 = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Debug|x86.Build.0 = Debug|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|Any CPU.Build.0 = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|x64.ActiveCfg = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|x64.Build.0 = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|x86.ActiveCfg = Release|Any CPU + {F7806158-551F-488B-95FC-41BED904AF2C}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection EndGlobal diff --git a/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Configuration.csproj b/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Configuration.csproj index 5db2b431..833bbade 100644 --- a/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Configuration.csproj +++ b/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Configuration.csproj @@ -13,4 +13,8 @@ + + + + diff --git a/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Program.cs b/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Program.cs index 1e15eeb3..048e240e 100644 --- a/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Program.cs +++ b/IdentityServer/v8/Configuration/SimpleDcr/Configuration/Program.cs @@ -10,6 +10,7 @@ Console.Title = "Configuration API"; var builder = WebApplication.CreateBuilder(args); +builder.AddServiceDefaults(); builder.Services.AddIdentityServerConfiguration(opt => { }) .AddClientConfigurationStore(); @@ -39,6 +40,9 @@ }); var app = builder.Build(); + +app.MapDefaultEndpoints(); + app.UseAuthentication(); app.UseAuthorization(); app.MapDynamicClientRegistration().RequireAuthorization("DCR"); diff --git a/IdentityServer/v8/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj b/IdentityServer/v8/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj index 98d847bb..0809995c 100644 --- a/IdentityServer/v8/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj +++ b/IdentityServer/v8/Configuration/SimpleDcr/ConsoleDcrClient/ConsoleDcrClient.csproj @@ -10,4 +10,8 @@ + + + + diff --git a/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs new file mode 100644 index 00000000..a1c73dcb --- /dev/null +++ b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/AppHost.cs @@ -0,0 +1,54 @@ +var builder = DistributedApplication.CreateBuilder(args); + +var idp = builder.AddProject("identityserverhost"); + +var configuration = builder.AddProject("configuration-api") + .WaitFor(idp); + +builder.AddProject("simple-api") + .WaitFor(idp); + +builder.AddProject("console-dcr-client") + .WaitFor(idp) + .WaitFor(configuration); + +idp.WithCommand( + name: "seed", + displayName: "Seed Database", + executeCommand: async (context) => + { + var projectMetadata = idp.Resource.GetProjectMetadata(); + var projectPath = projectMetadata.ProjectPath; + var process = new System.Diagnostics.Process + { + StartInfo = new System.Diagnostics.ProcessStartInfo + { + FileName = "dotnet", + Arguments = $"run --project \"{projectPath}\" --no-build -- /seed", + UseShellExecute = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + CreateNoWindow = true + } + }; + + process.Start(); + await process.WaitForExitAsync(context.CancellationToken); + + if (process.ExitCode == 0) + { + return CommandResults.Success(); + } + else + { + var error = await process.StandardError.ReadToEndAsync(); + return CommandResults.Failure(error); + } + }, + commandOptions: new CommandOptions + { + IconName = "DatabaseArrowUp", + IsHighlighted = true + }); + +builder.Build().Run(); diff --git a/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json new file mode 100644 index 00000000..34f9ea0f --- /dev/null +++ b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:17051;http://localhost:15294", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21178", + "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "https://localhost:23179", + "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22127" + } + }, + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:15294", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19223", + "ASPIRE_DASHBOARD_MCP_ENDPOINT_URL": "http://localhost:18152", + "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20037" + } + } + } +} diff --git a/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj new file mode 100644 index 00000000..34970118 --- /dev/null +++ b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/SimpleDcr.AppHost.csproj @@ -0,0 +1,21 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + + + + + + + + diff --git a/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json new file mode 100644 index 00000000..31c092aa --- /dev/null +++ b/IdentityServer/v8/Configuration/SimpleDcr/SimpleDcr.AppHost/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.Dcp": "Warning" + } + } +} diff --git a/samples.slnx b/samples.slnx index 27336a58..d370de57 100644 --- a/samples.slnx +++ b/samples.slnx @@ -241,6 +241,7 @@ + @@ -460,6 +461,7 @@ +