feat(auth): configure OpenIddict with JWT and OAuth2 support

This commit is contained in:
Sam 2026-02-01 23:40:37 +08:00
parent 3deca408f1
commit da56bdb493
30 changed files with 895 additions and 53 deletions

View File

@ -0,0 +1,202 @@
# Task 3: Configure OpenIddict
## Task Description
**Files:**
- Create: `src/Fengling.AuthService/Configuration/OpenIddictSetup.cs`
- Modify: `src/Fengling.AuthService/Program.cs`
## Implementation Steps
### Step 1: Create OpenIddict configuration
Create: `src/Fengling.AuthService/Configuration/OpenIddictSetup.cs`
```csharp
using Microsoft.Extensions.DependencyInjection;
using OpenIddict.Validation.AspNetCore;
namespace Fengling.AuthService.Configuration;
public static class OpenIddictSetup
{
public static IServiceCollection AddOpenIddictConfiguration(this IServiceCollection services, IConfiguration configuration)
{
services.AddOpenIddict()
.AddCore(options =>
{
options.UseEntityFrameworkCore()
.UseDbContext<Data.ApplicationDbContext>();
})
.AddServer(options =>
{
options.SetIssuer(configuration["OpenIddict:Issuer"] ?? "https://auth.fengling.local");
options.AddSigningKey(new SymmetricSecurityKey(
System.Text.Encoding.UTF8.GetBytes("fengling-super-secret-key-for-dev-only-change-in-prod-please!!!")));
options.AllowAuthorizationCodeFlow()
.AllowPasswordFlow()
.AllowRefreshTokenFlow()
.RequireProofKeyForCodeExchange();
options.RegisterScopes("api", "offline_access");
options.AddDevelopmentEncryptionCertificate()
.AddDevelopmentSigningCertificate();
options.UseAspNetCore()
.EnableAuthorizationEndpointPassThrough()
.EnableTokenEndpointPassThrough()
.EnableLogoutEndpointPassThrough();
})
.AddValidation(options =>
{
options.UseLocalServer();
options.UseAspNetCore();
});
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme;
});
return services;
}
}
```
### Step 2: Update Program.cs with OpenIddict and EF Core
Edit: `src/Fengling.AuthService/Program.cs`
```csharp
using Fengling.AuthService.Configuration;
using Fengling.AuthService.Data;
using Fengling.AuthService.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using OpenTelemetry;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using Serilog;
var builder = WebApplication.CreateBuilder(args);
// Serilog
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
.CreateLogger();
builder.Host.UseSerilog();
// Database
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
// Identity
builder.Services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
// OpenIddict
builder.Services.AddOpenIddictConfiguration(builder.Configuration);
// OpenTelemetry
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource =>
resource.AddService("Fengling.AuthService"))
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSource("OpenIddict.Server.AspNetCore")
.AddOtlpExporter();
// Controllers
builder.Services.AddControllers();
// Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Fengling Auth Service",
Version = "v1",
Description = "Authentication and authorization service using OpenIddict"
});
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OAuth2,
Flows = new OpenApiOAuthFlows
{
Password = new OpenApiOAuthFlow
{
TokenUrl = "/connect/token"
}
}
});
});
var app = builder.Build();
// Configure pipeline
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Fengling Auth Service v1");
options.OAuthClientId("swagger-ui");
options.OAuthUsePkce();
});
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
```
### Step 3: Run to verify startup
Run:
```bash
dotnet run
```
Expected: Service starts without errors, Swagger UI available at http://localhost:5000/swagger
### Step 4: Commit
```bash
git add src/Fengling.AuthService/Configuration/ src/Fengling.AuthService/Program.cs
git commit -m "feat(auth): configure OpenIddict with JWT and OAuth2 support"
```
## Context
This task configures OpenIddict for OAuth2/OIDC authentication, including:
- Server configuration with token endpoints
- Password flow for user authentication
- Development certificates for signing
- Integration with ASP.NET Core Identity
- Swagger UI with OAuth2 support
**Tech Stack**: OpenIddict 7.2.0, ASP.NET Core Identity, Swagger
## Verification
- [ ] OpenIddictSetup class created
- [ ] Program.cs updated with OpenIddict configuration
- [ ] Service starts without errors
- [ ] Swagger UI accessible
- [ ] Committed to git
## Notes
- Using symmetric key for token signing (dev only)
- Password flow enabled for direct authentication
- Development certificates used (replace in production)

View File

@ -0,0 +1,47 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;
using OpenIddict.Validation.AspNetCore;
namespace Fengling.AuthService.Configuration;
public static class OpenIddictSetup
{
public static IServiceCollection AddOpenIddictConfiguration(this IServiceCollection services, IConfiguration configuration)
{
services.AddOpenIddict()
.AddCore(options =>
{
options.UseEntityFrameworkCore()
.UseDbContext<Data.ApplicationDbContext>();
})
.AddServer(options =>
{
options.SetIssuer(configuration["OpenIddict:Issuer"] ?? "https://auth.fengling.local");
options.AddDevelopmentEncryptionCertificate()
.AddDevelopmentSigningCertificate();
options.AllowAuthorizationCodeFlow()
.AllowPasswordFlow()
.AllowRefreshTokenFlow()
.RequireProofKeyForCodeExchange();
options.RegisterScopes("api", "offline_access");
options.UseAspNetCore();
})
.AddValidation(options =>
{
options.UseLocalServer();
options.UseAspNetCore();
});
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme;
});
return services;
}
}

View File

@ -7,6 +7,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@ -20,6 +21,7 @@
<PackageReference Include="OpenTelemetry" Version="1.11.0" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.11.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.11.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.11.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.11.0" />
</ItemGroup>
</Project>

View File

@ -1,41 +1,81 @@
using Fengling.AuthService.Configuration;
using Fengling.AuthService.Data;
using Fengling.AuthService.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using OpenTelemetry;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
using Serilog;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
.CreateLogger();
builder.Host.UseSerilog();
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
builder.Services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
builder.Services.AddOpenIddictConfiguration(builder.Configuration);
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource =>
resource.AddService("Fengling.AuthService"))
.WithTracing(tracing =>
tracing.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSource("OpenIddict.Server.AspNetCore")
.AddOtlpExporter());
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Fengling Auth Service",
Version = "v1",
Description = "Authentication and authorization service using OpenIddict"
});
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OAuth2,
Flows = new OpenApiOAuthFlows
{
Password = new OpenApiOAuthFlow
{
TokenUrl = new Uri("/connect/token", UriKind.Relative)
}
}
});
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
app.UseSwagger();
app.UseSwaggerUI(options =>
{
app.MapOpenApi();
}
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Fengling Auth Service v1");
options.OAuthClientId("swagger-ui");
options.OAuthUsePkce();
});
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
return forecast;
})
.WithName("GetWeatherForecast");
app.MapControllers();
app.Run();
record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}

View File

@ -18,8 +18,10 @@
"OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.11.0",
"OpenTelemetry.Extensions.Hosting": "1.11.0",
"OpenTelemetry.Instrumentation.AspNetCore": "1.11.0",
"OpenTelemetry.Instrumentation.Http": "1.11.0",
"Serilog.AspNetCore": "9.0.0",
"Serilog.Sinks.Console": "6.0.0"
"Serilog.Sinks.Console": "6.0.0",
"Swashbuckle.AspNetCore": "7.2.0"
},
"runtime": {
"Fengling.AuthService.dll": {}
@ -66,7 +68,7 @@
},
"Microsoft.AspNetCore.OpenApi/9.0.1": {
"dependencies": {
"Microsoft.OpenApi": "1.6.17"
"Microsoft.OpenApi": "1.6.22"
},
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": {
@ -874,11 +876,11 @@
}
}
},
"Microsoft.OpenApi/1.6.17": {
"Microsoft.OpenApi/1.6.22": {
"runtime": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
"assemblyVersion": "1.6.17.0",
"fileVersion": "1.6.17.0"
"assemblyVersion": "1.6.22.0",
"fileVersion": "1.6.22.0"
}
}
},
@ -1227,6 +1229,19 @@
}
}
},
"OpenTelemetry.Instrumentation.Http/1.11.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "9.0.10",
"Microsoft.Extensions.Options": "9.0.10",
"OpenTelemetry.Api.ProviderBuilderExtensions": "1.11.1"
},
"runtime": {
"lib/net8.0/OpenTelemetry.Instrumentation.Http.dll": {
"assemblyVersion": "1.11.0.337",
"fileVersion": "1.11.0.337"
}
}
},
"Polly/7.2.4": {
"runtime": {
"lib/netstandard2.0/Polly.dll": {
@ -1387,6 +1402,43 @@
}
}
},
"Swashbuckle.AspNetCore/7.2.0": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "7.2.0",
"Swashbuckle.AspNetCore.SwaggerGen": "7.2.0",
"Swashbuckle.AspNetCore.SwaggerUI": "7.2.0"
}
},
"Swashbuckle.AspNetCore.Swagger/7.2.0": {
"dependencies": {
"Microsoft.OpenApi": "1.6.22"
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll": {
"assemblyVersion": "7.2.0.0",
"fileVersion": "7.2.0.956"
}
}
},
"Swashbuckle.AspNetCore.SwaggerGen/7.2.0": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "7.2.0"
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"assemblyVersion": "7.2.0.0",
"fileVersion": "7.2.0.956"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/7.2.0": {
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"assemblyVersion": "7.2.0.0",
"fileVersion": "7.2.0.956"
}
}
},
"System.CodeDom/6.0.0": {
"runtime": {
"lib/net6.0/System.CodeDom.dll": {
@ -1841,12 +1893,12 @@
"path": "microsoft.net.http.headers/9.0.10",
"hashPath": "microsoft.net.http.headers.9.0.10.nupkg.sha512"
},
"Microsoft.OpenApi/1.6.17": {
"Microsoft.OpenApi/1.6.22": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==",
"path": "microsoft.openapi/1.6.17",
"hashPath": "microsoft.openapi.1.6.17.nupkg.sha512"
"sha512": "sha512-aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ==",
"path": "microsoft.openapi/1.6.22",
"hashPath": "microsoft.openapi.1.6.22.nupkg.sha512"
},
"Mono.TextTemplating/3.0.0": {
"type": "package",
@ -2051,6 +2103,13 @@
"path": "opentelemetry.instrumentation.aspnetcore/1.11.0",
"hashPath": "opentelemetry.instrumentation.aspnetcore.1.11.0.nupkg.sha512"
},
"OpenTelemetry.Instrumentation.Http/1.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1ncYPNmMaYNPX664uo3FlmSVGETBKQbBvarbGgB5ZynERTFmCsZ7UqefvVe3vnPYOIAGOjbMAbprYF2BfMielg==",
"path": "opentelemetry.instrumentation.http/1.11.0",
"hashPath": "opentelemetry.instrumentation.http.1.11.0.nupkg.sha512"
},
"Polly/7.2.4": {
"type": "package",
"serviceable": true,
@ -2149,6 +2208,34 @@
"path": "serilog.sinks.file/6.0.0",
"hashPath": "serilog.sinks.file.6.0.0.nupkg.sha512"
},
"Swashbuckle.AspNetCore/7.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vJv19UpWm6OOgnS9QLDnWARNVasXUfj8SFvlG7UVALm4nBnfwRnEky7C0veSDqMUmBeMPC6Ec3d6G1ts/J04Uw==",
"path": "swashbuckle.aspnetcore/7.2.0",
"hashPath": "swashbuckle.aspnetcore.7.2.0.nupkg.sha512"
},
"Swashbuckle.AspNetCore.Swagger/7.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-y27fNDfIh1vGhJjXYynLcZjl7DLOW1bSO2MDsY9wB4Zm1fdxpPsuBSiR4U+0acWlAqLmnuOPKr/OeOgwRUkBlw==",
"path": "swashbuckle.aspnetcore.swagger/7.2.0",
"hashPath": "swashbuckle.aspnetcore.swagger.7.2.0.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerGen/7.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pMrTxGVuXM7t4wqft5CNNU8A0++Yw5kTLmYhB6tbEcyBfO8xEF/Y8pkJhO6BZ/2MYONrRYoQTfPFJqu8fOf5WQ==",
"path": "swashbuckle.aspnetcore.swaggergen/7.2.0",
"hashPath": "swashbuckle.aspnetcore.swaggergen.7.2.0.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerUI/7.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hgrXeKzyp5OGN8qVvL7A+vhmU7mDJTfGpiMBRL66IcfLOyna8UTLtn3cC3CghamXpRDufcc9ciklTszUGEQK0w==",
"path": "swashbuckle.aspnetcore.swaggerui/7.2.0",
"hashPath": "swashbuckle.aspnetcore.swaggerui.7.2.0.nupkg.sha512"
},
"System.CodeDom/6.0.0": {
"type": "package",
"serviceable": true,

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Fengling.AuthService")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d52b7c9a46ded51a443127feb64c42410418f05e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3deca408f1ed8079b4cde5cf165b56b46834b516")]
[assembly: System.Reflection.AssemblyProductAttribute("Fengling.AuthService")]
[assembly: System.Reflection.AssemblyTitleAttribute("Fengling.AuthService")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
b1ff18495fadc0824cf505584e274b7c8db232ffb3d0e074fde2e6db7887210a
1eaba22fd8465b8919c1974b8c0f155a6fbe657542b3b5a45f1e8a80051af341

View File

@ -11,6 +11,7 @@ using System;
using System.Reflection;
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.OpenApi")]
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -1 +1 @@
59b31c9e3a549ff3d769e1284909cfed589b77d67830817f26c3bb82d969d727
e996c1aab4871c6049cd0bddb827bc47b25a15c82375345bf0a4a2222dcd4579

View File

@ -197,3 +197,7 @@
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/obj/Debug/net9.0/Fengling.AuthService.pdb
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/obj/Debug/net9.0/Fengling.AuthService.genruntimeconfig.cache
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/obj/Debug/net9.0/ref/Fengling.AuthService.dll
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/bin/Debug/net9.0/OpenTelemetry.Instrumentation.Http.dll
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/bin/Debug/net9.0/Swashbuckle.AspNetCore.Swagger.dll
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/bin/Debug/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll
/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/bin/Debug/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll

View File

@ -1 +1 @@
{"GlobalPropertiesHash":"kj0YdTIP9epXJ4ydBR9yaRr5OemJ36+FlRmnBdiGrUE=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["nGadCmuBEG\u002BKUP6Powa57G4ZzOO6ibT7XQKZuYm3g44=","elQhyiEcBZcCHMIxyXyx47S4otwc/MEXjAYU/dca/hQ=","QUvWOS2l6Gf\u002Bb29f7UDXsp99Km48zx\u002BXUkHxYrdP5O4=","587UMkRW9Duvi09dG2y/rsS2zVrz865mHwElGvidCDE=","QqAPznb43DBO6jzy8\u002B7Z33yoN6xWI1JSmSVZ/bi6CKo="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"kj0YdTIP9epXJ4ydBR9yaRr5OemJ36+FlRmnBdiGrUE=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["nGadCmuBEG\u002BKUP6Powa57G4ZzOO6ibT7XQKZuYm3g44=","elQhyiEcBZcCHMIxyXyx47S4otwc/MEXjAYU/dca/hQ=","QUvWOS2l6Gf\u002Bb29f7UDXsp99Km48zx\u002BXUkHxYrdP5O4=","587UMkRW9Duvi09dG2y/rsS2zVrz865mHwElGvidCDE=","BDJLn2XnsDdeDzb/\u002B28pT5PUs\u002BI3LFuQ9WGSKahX1Mo="],"CachedAssets":{},"CachedCopyCandidates":{}}

View File

@ -1 +1 @@
{"GlobalPropertiesHash":"cWEb6+iVjovCYrac7gX+Ogl5Z4cMpIEURSADGbv9ou0=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["nGadCmuBEG\u002BKUP6Powa57G4ZzOO6ibT7XQKZuYm3g44=","elQhyiEcBZcCHMIxyXyx47S4otwc/MEXjAYU/dca/hQ=","QUvWOS2l6Gf\u002Bb29f7UDXsp99Km48zx\u002BXUkHxYrdP5O4=","587UMkRW9Duvi09dG2y/rsS2zVrz865mHwElGvidCDE=","QqAPznb43DBO6jzy8\u002B7Z33yoN6xWI1JSmSVZ/bi6CKo="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"cWEb6+iVjovCYrac7gX+Ogl5Z4cMpIEURSADGbv9ou0=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["nGadCmuBEG\u002BKUP6Powa57G4ZzOO6ibT7XQKZuYm3g44=","elQhyiEcBZcCHMIxyXyx47S4otwc/MEXjAYU/dca/hQ=","QUvWOS2l6Gf\u002Bb29f7UDXsp99Km48zx\u002BXUkHxYrdP5O4=","587UMkRW9Duvi09dG2y/rsS2zVrz865mHwElGvidCDE=","BDJLn2XnsDdeDzb/\u002B28pT5PUs\u002BI3LFuQ9WGSKahX1Mo="],"CachedAssets":{},"CachedCopyCandidates":{}}

View File

@ -87,6 +87,10 @@
"target": "Package",
"version": "[1.11.0, )"
},
"OpenTelemetry.Instrumentation.Http": {
"target": "Package",
"version": "[1.11.0, )"
},
"Serilog.AspNetCore": {
"target": "Package",
"version": "[9.0.0, )"
@ -94,6 +98,10 @@
"Serilog.Sinks.Console": {
"target": "Package",
"version": "[6.0.0, )"
},
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[7.2.0, )"
}
},
"imports": [

View File

@ -13,12 +13,15 @@
<SourceRoot Include="/Users/movingsam/.nuget/packages/" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props')" />
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore/7.2.0/build/Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore/7.2.0/build/Swashbuckle.AspNetCore.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.telemetry.abstractions/9.10.0/buildTransitive/net8.0/Microsoft.Extensions.Telemetry.Abstractions.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.telemetry.abstractions/9.10.0/buildTransitive/net8.0/Microsoft.Extensions.Telemetry.Abstractions.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore/9.0.10/buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore/9.0.10/buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design/9.0.3/build/net8.0/Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design/9.0.3/build/net8.0/Microsoft.EntityFrameworkCore.Design.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">/Users/movingsam/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">/Users/movingsam/.nuget/packages/microsoft.codeanalysis.analyzers/3.3.4</PkgMicrosoft_CodeAnalysis_Analyzers>
</PropertyGroup>
</Project>

View File

@ -2,6 +2,7 @@
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json/9.0.3/buildTransitive/net8.0/System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json/9.0.3/buildTransitive/net8.0/System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder/9.0.10/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder/9.0.10/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/9.0.10/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/9.0.10/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/9.0.10/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/9.0.10/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />

View File

@ -536,6 +536,17 @@
"buildTransitive/net8.0/_._": {}
}
},
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"type": "package",
"build": {
"build/Microsoft.Extensions.ApiDescription.Server.props": {},
"build/Microsoft.Extensions.ApiDescription.Server.targets": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props": {},
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets": {}
}
},
"Microsoft.Extensions.Caching.Abstractions/9.0.10": {
"type": "package",
"dependencies": {
@ -1246,7 +1257,7 @@
}
}
},
"Microsoft.OpenApi/1.6.17": {
"Microsoft.OpenApi/1.6.22": {
"type": "package",
"compile": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
@ -1776,6 +1787,24 @@
"Microsoft.AspNetCore.App"
]
},
"OpenTelemetry.Instrumentation.Http/1.11.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Configuration": "9.0.0",
"Microsoft.Extensions.Options": "9.0.0",
"OpenTelemetry.Api.ProviderBuilderExtensions": "[1.11.1, 2.0.0)"
},
"compile": {
"lib/net8.0/OpenTelemetry.Instrumentation.Http.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/OpenTelemetry.Instrumentation.Http.dll": {
"related": ".xml"
}
}
},
"Polly/7.2.4": {
"type": "package",
"compile": {
@ -2010,6 +2039,72 @@
}
}
},
"Swashbuckle.AspNetCore/7.2.0": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
"Swashbuckle.AspNetCore.Swagger": "7.2.0",
"Swashbuckle.AspNetCore.SwaggerGen": "7.2.0",
"Swashbuckle.AspNetCore.SwaggerUI": "7.2.0"
},
"build": {
"build/Swashbuckle.AspNetCore.props": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/Swashbuckle.AspNetCore.props": {}
}
},
"Swashbuckle.AspNetCore.Swagger/7.2.0": {
"type": "package",
"dependencies": {
"Microsoft.OpenApi": "1.6.22"
},
"compile": {
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll": {
"related": ".pdb;.xml"
}
},
"frameworkReferences": [
"Microsoft.AspNetCore.App"
]
},
"Swashbuckle.AspNetCore.SwaggerGen/7.2.0": {
"type": "package",
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "7.2.0"
},
"compile": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"related": ".pdb;.xml"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/7.2.0": {
"type": "package",
"compile": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"related": ".pdb;.xml"
}
},
"frameworkReferences": [
"Microsoft.AspNetCore.App"
]
},
"System.CodeDom/6.0.0": {
"type": "package",
"compile": {
@ -3445,6 +3540,237 @@
"microsoft.extensions.ambientmetadata.application.nuspec"
]
},
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
"type": "package",
"path": "microsoft.extensions.apidescription.server/6.0.5",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"build/Microsoft.Extensions.ApiDescription.Server.props",
"build/Microsoft.Extensions.ApiDescription.Server.targets",
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props",
"buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets",
"microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"microsoft.extensions.apidescription.server.nuspec",
"tools/Newtonsoft.Json.dll",
"tools/dotnet-getdocument.deps.json",
"tools/dotnet-getdocument.dll",
"tools/dotnet-getdocument.runtimeconfig.json",
"tools/net461-x86/GetDocument.Insider.exe",
"tools/net461-x86/GetDocument.Insider.exe.config",
"tools/net461-x86/Microsoft.Win32.Primitives.dll",
"tools/net461-x86/System.AppContext.dll",
"tools/net461-x86/System.Buffers.dll",
"tools/net461-x86/System.Collections.Concurrent.dll",
"tools/net461-x86/System.Collections.NonGeneric.dll",
"tools/net461-x86/System.Collections.Specialized.dll",
"tools/net461-x86/System.Collections.dll",
"tools/net461-x86/System.ComponentModel.EventBasedAsync.dll",
"tools/net461-x86/System.ComponentModel.Primitives.dll",
"tools/net461-x86/System.ComponentModel.TypeConverter.dll",
"tools/net461-x86/System.ComponentModel.dll",
"tools/net461-x86/System.Console.dll",
"tools/net461-x86/System.Data.Common.dll",
"tools/net461-x86/System.Diagnostics.Contracts.dll",
"tools/net461-x86/System.Diagnostics.Debug.dll",
"tools/net461-x86/System.Diagnostics.DiagnosticSource.dll",
"tools/net461-x86/System.Diagnostics.FileVersionInfo.dll",
"tools/net461-x86/System.Diagnostics.Process.dll",
"tools/net461-x86/System.Diagnostics.StackTrace.dll",
"tools/net461-x86/System.Diagnostics.TextWriterTraceListener.dll",
"tools/net461-x86/System.Diagnostics.Tools.dll",
"tools/net461-x86/System.Diagnostics.TraceSource.dll",
"tools/net461-x86/System.Diagnostics.Tracing.dll",
"tools/net461-x86/System.Drawing.Primitives.dll",
"tools/net461-x86/System.Dynamic.Runtime.dll",
"tools/net461-x86/System.Globalization.Calendars.dll",
"tools/net461-x86/System.Globalization.Extensions.dll",
"tools/net461-x86/System.Globalization.dll",
"tools/net461-x86/System.IO.Compression.ZipFile.dll",
"tools/net461-x86/System.IO.Compression.dll",
"tools/net461-x86/System.IO.FileSystem.DriveInfo.dll",
"tools/net461-x86/System.IO.FileSystem.Primitives.dll",
"tools/net461-x86/System.IO.FileSystem.Watcher.dll",
"tools/net461-x86/System.IO.FileSystem.dll",
"tools/net461-x86/System.IO.IsolatedStorage.dll",
"tools/net461-x86/System.IO.MemoryMappedFiles.dll",
"tools/net461-x86/System.IO.Pipes.dll",
"tools/net461-x86/System.IO.UnmanagedMemoryStream.dll",
"tools/net461-x86/System.IO.dll",
"tools/net461-x86/System.Linq.Expressions.dll",
"tools/net461-x86/System.Linq.Parallel.dll",
"tools/net461-x86/System.Linq.Queryable.dll",
"tools/net461-x86/System.Linq.dll",
"tools/net461-x86/System.Memory.dll",
"tools/net461-x86/System.Net.Http.dll",
"tools/net461-x86/System.Net.NameResolution.dll",
"tools/net461-x86/System.Net.NetworkInformation.dll",
"tools/net461-x86/System.Net.Ping.dll",
"tools/net461-x86/System.Net.Primitives.dll",
"tools/net461-x86/System.Net.Requests.dll",
"tools/net461-x86/System.Net.Security.dll",
"tools/net461-x86/System.Net.Sockets.dll",
"tools/net461-x86/System.Net.WebHeaderCollection.dll",
"tools/net461-x86/System.Net.WebSockets.Client.dll",
"tools/net461-x86/System.Net.WebSockets.dll",
"tools/net461-x86/System.Numerics.Vectors.dll",
"tools/net461-x86/System.ObjectModel.dll",
"tools/net461-x86/System.Reflection.Extensions.dll",
"tools/net461-x86/System.Reflection.Primitives.dll",
"tools/net461-x86/System.Reflection.dll",
"tools/net461-x86/System.Resources.Reader.dll",
"tools/net461-x86/System.Resources.ResourceManager.dll",
"tools/net461-x86/System.Resources.Writer.dll",
"tools/net461-x86/System.Runtime.CompilerServices.Unsafe.dll",
"tools/net461-x86/System.Runtime.CompilerServices.VisualC.dll",
"tools/net461-x86/System.Runtime.Extensions.dll",
"tools/net461-x86/System.Runtime.Handles.dll",
"tools/net461-x86/System.Runtime.InteropServices.RuntimeInformation.dll",
"tools/net461-x86/System.Runtime.InteropServices.dll",
"tools/net461-x86/System.Runtime.Numerics.dll",
"tools/net461-x86/System.Runtime.Serialization.Formatters.dll",
"tools/net461-x86/System.Runtime.Serialization.Json.dll",
"tools/net461-x86/System.Runtime.Serialization.Primitives.dll",
"tools/net461-x86/System.Runtime.Serialization.Xml.dll",
"tools/net461-x86/System.Runtime.dll",
"tools/net461-x86/System.Security.Claims.dll",
"tools/net461-x86/System.Security.Cryptography.Algorithms.dll",
"tools/net461-x86/System.Security.Cryptography.Csp.dll",
"tools/net461-x86/System.Security.Cryptography.Encoding.dll",
"tools/net461-x86/System.Security.Cryptography.Primitives.dll",
"tools/net461-x86/System.Security.Cryptography.X509Certificates.dll",
"tools/net461-x86/System.Security.Principal.dll",
"tools/net461-x86/System.Security.SecureString.dll",
"tools/net461-x86/System.Text.Encoding.Extensions.dll",
"tools/net461-x86/System.Text.Encoding.dll",
"tools/net461-x86/System.Text.RegularExpressions.dll",
"tools/net461-x86/System.Threading.Overlapped.dll",
"tools/net461-x86/System.Threading.Tasks.Parallel.dll",
"tools/net461-x86/System.Threading.Tasks.dll",
"tools/net461-x86/System.Threading.Thread.dll",
"tools/net461-x86/System.Threading.ThreadPool.dll",
"tools/net461-x86/System.Threading.Timer.dll",
"tools/net461-x86/System.Threading.dll",
"tools/net461-x86/System.ValueTuple.dll",
"tools/net461-x86/System.Xml.ReaderWriter.dll",
"tools/net461-x86/System.Xml.XDocument.dll",
"tools/net461-x86/System.Xml.XPath.XDocument.dll",
"tools/net461-x86/System.Xml.XPath.dll",
"tools/net461-x86/System.Xml.XmlDocument.dll",
"tools/net461-x86/System.Xml.XmlSerializer.dll",
"tools/net461-x86/netstandard.dll",
"tools/net461/GetDocument.Insider.exe",
"tools/net461/GetDocument.Insider.exe.config",
"tools/net461/Microsoft.Win32.Primitives.dll",
"tools/net461/System.AppContext.dll",
"tools/net461/System.Buffers.dll",
"tools/net461/System.Collections.Concurrent.dll",
"tools/net461/System.Collections.NonGeneric.dll",
"tools/net461/System.Collections.Specialized.dll",
"tools/net461/System.Collections.dll",
"tools/net461/System.ComponentModel.EventBasedAsync.dll",
"tools/net461/System.ComponentModel.Primitives.dll",
"tools/net461/System.ComponentModel.TypeConverter.dll",
"tools/net461/System.ComponentModel.dll",
"tools/net461/System.Console.dll",
"tools/net461/System.Data.Common.dll",
"tools/net461/System.Diagnostics.Contracts.dll",
"tools/net461/System.Diagnostics.Debug.dll",
"tools/net461/System.Diagnostics.DiagnosticSource.dll",
"tools/net461/System.Diagnostics.FileVersionInfo.dll",
"tools/net461/System.Diagnostics.Process.dll",
"tools/net461/System.Diagnostics.StackTrace.dll",
"tools/net461/System.Diagnostics.TextWriterTraceListener.dll",
"tools/net461/System.Diagnostics.Tools.dll",
"tools/net461/System.Diagnostics.TraceSource.dll",
"tools/net461/System.Diagnostics.Tracing.dll",
"tools/net461/System.Drawing.Primitives.dll",
"tools/net461/System.Dynamic.Runtime.dll",
"tools/net461/System.Globalization.Calendars.dll",
"tools/net461/System.Globalization.Extensions.dll",
"tools/net461/System.Globalization.dll",
"tools/net461/System.IO.Compression.ZipFile.dll",
"tools/net461/System.IO.Compression.dll",
"tools/net461/System.IO.FileSystem.DriveInfo.dll",
"tools/net461/System.IO.FileSystem.Primitives.dll",
"tools/net461/System.IO.FileSystem.Watcher.dll",
"tools/net461/System.IO.FileSystem.dll",
"tools/net461/System.IO.IsolatedStorage.dll",
"tools/net461/System.IO.MemoryMappedFiles.dll",
"tools/net461/System.IO.Pipes.dll",
"tools/net461/System.IO.UnmanagedMemoryStream.dll",
"tools/net461/System.IO.dll",
"tools/net461/System.Linq.Expressions.dll",
"tools/net461/System.Linq.Parallel.dll",
"tools/net461/System.Linq.Queryable.dll",
"tools/net461/System.Linq.dll",
"tools/net461/System.Memory.dll",
"tools/net461/System.Net.Http.dll",
"tools/net461/System.Net.NameResolution.dll",
"tools/net461/System.Net.NetworkInformation.dll",
"tools/net461/System.Net.Ping.dll",
"tools/net461/System.Net.Primitives.dll",
"tools/net461/System.Net.Requests.dll",
"tools/net461/System.Net.Security.dll",
"tools/net461/System.Net.Sockets.dll",
"tools/net461/System.Net.WebHeaderCollection.dll",
"tools/net461/System.Net.WebSockets.Client.dll",
"tools/net461/System.Net.WebSockets.dll",
"tools/net461/System.Numerics.Vectors.dll",
"tools/net461/System.ObjectModel.dll",
"tools/net461/System.Reflection.Extensions.dll",
"tools/net461/System.Reflection.Primitives.dll",
"tools/net461/System.Reflection.dll",
"tools/net461/System.Resources.Reader.dll",
"tools/net461/System.Resources.ResourceManager.dll",
"tools/net461/System.Resources.Writer.dll",
"tools/net461/System.Runtime.CompilerServices.Unsafe.dll",
"tools/net461/System.Runtime.CompilerServices.VisualC.dll",
"tools/net461/System.Runtime.Extensions.dll",
"tools/net461/System.Runtime.Handles.dll",
"tools/net461/System.Runtime.InteropServices.RuntimeInformation.dll",
"tools/net461/System.Runtime.InteropServices.dll",
"tools/net461/System.Runtime.Numerics.dll",
"tools/net461/System.Runtime.Serialization.Formatters.dll",
"tools/net461/System.Runtime.Serialization.Json.dll",
"tools/net461/System.Runtime.Serialization.Primitives.dll",
"tools/net461/System.Runtime.Serialization.Xml.dll",
"tools/net461/System.Runtime.dll",
"tools/net461/System.Security.Claims.dll",
"tools/net461/System.Security.Cryptography.Algorithms.dll",
"tools/net461/System.Security.Cryptography.Csp.dll",
"tools/net461/System.Security.Cryptography.Encoding.dll",
"tools/net461/System.Security.Cryptography.Primitives.dll",
"tools/net461/System.Security.Cryptography.X509Certificates.dll",
"tools/net461/System.Security.Principal.dll",
"tools/net461/System.Security.SecureString.dll",
"tools/net461/System.Text.Encoding.Extensions.dll",
"tools/net461/System.Text.Encoding.dll",
"tools/net461/System.Text.RegularExpressions.dll",
"tools/net461/System.Threading.Overlapped.dll",
"tools/net461/System.Threading.Tasks.Parallel.dll",
"tools/net461/System.Threading.Tasks.dll",
"tools/net461/System.Threading.Thread.dll",
"tools/net461/System.Threading.ThreadPool.dll",
"tools/net461/System.Threading.Timer.dll",
"tools/net461/System.Threading.dll",
"tools/net461/System.ValueTuple.dll",
"tools/net461/System.Xml.ReaderWriter.dll",
"tools/net461/System.Xml.XDocument.dll",
"tools/net461/System.Xml.XPath.XDocument.dll",
"tools/net461/System.Xml.XPath.dll",
"tools/net461/System.Xml.XmlDocument.dll",
"tools/net461/System.Xml.XmlSerializer.dll",
"tools/net461/netstandard.dll",
"tools/netcoreapp2.1/GetDocument.Insider.deps.json",
"tools/netcoreapp2.1/GetDocument.Insider.dll",
"tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json",
"tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll"
]
},
"Microsoft.Extensions.Caching.Abstractions/9.0.10": {
"sha512": "cL6iTxgJ4u5zP3eFOdBiDAtmE/B2WKTRhyJfEne7n6qvHpsMwwIDxljs210mWSO1ucBy7lR1Lo7/7kjeZeLcqQ==",
"type": "package",
@ -4446,10 +4772,10 @@
"microsoft.net.http.headers.nuspec"
]
},
"Microsoft.OpenApi/1.6.17": {
"sha512": "Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==",
"Microsoft.OpenApi/1.6.22": {
"sha512": "aBvunmrdu/x+4CaA/UP1Jx4xWGwk4kymhoIRnn2Vp+zi5/KOPQJ9EkSXHRUr01WcGKtYl3Au7XfkPJbU1G2sjQ==",
"type": "package",
"path": "microsoft.openapi/1.6.17",
"path": "microsoft.openapi/1.6.22",
"files": [
".nupkg.metadata",
".signature.p7s",
@ -4457,7 +4783,7 @@
"lib/netstandard2.0/Microsoft.OpenApi.dll",
"lib/netstandard2.0/Microsoft.OpenApi.pdb",
"lib/netstandard2.0/Microsoft.OpenApi.xml",
"microsoft.openapi.1.6.17.nupkg.sha512",
"microsoft.openapi.1.6.22.nupkg.sha512",
"microsoft.openapi.nuspec"
]
},
@ -5265,6 +5591,25 @@
"opentelemetry.instrumentation.aspnetcore.nuspec"
]
},
"OpenTelemetry.Instrumentation.Http/1.11.0": {
"sha512": "1ncYPNmMaYNPX664uo3FlmSVGETBKQbBvarbGgB5ZynERTFmCsZ7UqefvVe3vnPYOIAGOjbMAbprYF2BfMielg==",
"type": "package",
"path": "opentelemetry.instrumentation.http/1.11.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"lib/net462/OpenTelemetry.Instrumentation.Http.dll",
"lib/net462/OpenTelemetry.Instrumentation.Http.xml",
"lib/net8.0/OpenTelemetry.Instrumentation.Http.dll",
"lib/net8.0/OpenTelemetry.Instrumentation.Http.xml",
"lib/netstandard2.0/OpenTelemetry.Instrumentation.Http.dll",
"lib/netstandard2.0/OpenTelemetry.Instrumentation.Http.xml",
"opentelemetry-icon-color.png",
"opentelemetry.instrumentation.http.1.11.0.nupkg.sha512",
"opentelemetry.instrumentation.http.nuspec"
]
},
"Polly/7.2.4": {
"sha512": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==",
"type": "package",
@ -5596,6 +5941,92 @@
"serilog.sinks.file.nuspec"
]
},
"Swashbuckle.AspNetCore/7.2.0": {
"sha512": "vJv19UpWm6OOgnS9QLDnWARNVasXUfj8SFvlG7UVALm4nBnfwRnEky7C0veSDqMUmBeMPC6Ec3d6G1ts/J04Uw==",
"type": "package",
"path": "swashbuckle.aspnetcore/7.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"build/Swashbuckle.AspNetCore.props",
"buildMultiTargeting/Swashbuckle.AspNetCore.props",
"docs/package-readme.md",
"swashbuckle.aspnetcore.7.2.0.nupkg.sha512",
"swashbuckle.aspnetcore.nuspec"
]
},
"Swashbuckle.AspNetCore.Swagger/7.2.0": {
"sha512": "y27fNDfIh1vGhJjXYynLcZjl7DLOW1bSO2MDsY9wB4Zm1fdxpPsuBSiR4U+0acWlAqLmnuOPKr/OeOgwRUkBlw==",
"type": "package",
"path": "swashbuckle.aspnetcore.swagger/7.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/net9.0/Swashbuckle.AspNetCore.Swagger.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swagger.7.2.0.nupkg.sha512",
"swashbuckle.aspnetcore.swagger.nuspec"
]
},
"Swashbuckle.AspNetCore.SwaggerGen/7.2.0": {
"sha512": "pMrTxGVuXM7t4wqft5CNNU8A0++Yw5kTLmYhB6tbEcyBfO8xEF/Y8pkJhO6BZ/2MYONrRYoQTfPFJqu8fOf5WQ==",
"type": "package",
"path": "swashbuckle.aspnetcore.swaggergen/7.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swaggergen.7.2.0.nupkg.sha512",
"swashbuckle.aspnetcore.swaggergen.nuspec"
]
},
"Swashbuckle.AspNetCore.SwaggerUI/7.2.0": {
"sha512": "hgrXeKzyp5OGN8qVvL7A+vhmU7mDJTfGpiMBRL66IcfLOyna8UTLtn3cC3CghamXpRDufcc9ciklTszUGEQK0w==",
"type": "package",
"path": "swashbuckle.aspnetcore.swaggerui/7.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/net9.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb",
"lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml",
"package-readme.md",
"swashbuckle.aspnetcore.swaggerui.7.2.0.nupkg.sha512",
"swashbuckle.aspnetcore.swaggerui.nuspec"
]
},
"System.CodeDom/6.0.0": {
"sha512": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"type": "package",
@ -6058,8 +6489,10 @@
"OpenTelemetry.Exporter.OpenTelemetryProtocol >= 1.11.0",
"OpenTelemetry.Extensions.Hosting >= 1.11.0",
"OpenTelemetry.Instrumentation.AspNetCore >= 1.11.0",
"OpenTelemetry.Instrumentation.Http >= 1.11.0",
"Serilog.AspNetCore >= 9.0.0",
"Serilog.Sinks.Console >= 6.0.0"
"Serilog.Sinks.Console >= 6.0.0",
"Swashbuckle.AspNetCore >= 7.2.0"
]
},
"packageFolders": {
@ -6148,6 +6581,10 @@
"target": "Package",
"version": "[1.11.0, )"
},
"OpenTelemetry.Instrumentation.Http": {
"target": "Package",
"version": "[1.11.0, )"
},
"Serilog.AspNetCore": {
"target": "Package",
"version": "[9.0.0, )"
@ -6155,6 +6592,10 @@
"Serilog.Sinks.Console": {
"target": "Package",
"version": "[6.0.0, )"
},
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[7.2.0, )"
}
},
"imports": [

View File

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "c8e0guGxU04=",
"dgSpecHash": "MNgx8yt4HCE=",
"success": true,
"projectFilePath": "/Users/movingsam/Fengling.Refactory.Buiding/src/Fengling.AuthService/Fengling.AuthService.csproj",
"expectedPackageFiles": [
@ -24,6 +24,7 @@
"/Users/movingsam/.nuget/packages/microsoft.entityframeworkcore.design/9.0.3/microsoft.entityframeworkcore.design.9.0.3.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.entityframeworkcore.relational/9.0.10/microsoft.entityframeworkcore.relational.9.0.10.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.extensions.ambientmetadata.application/9.10.0/microsoft.extensions.ambientmetadata.application.9.10.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5/microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.extensions.caching.abstractions/9.0.10/microsoft.extensions.caching.abstractions.9.0.10.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.extensions.caching.memory/9.0.10/microsoft.extensions.caching.memory.9.0.10.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.extensions.compliance.abstractions/9.10.0/microsoft.extensions.compliance.abstractions.9.10.0.nupkg.sha512",
@ -61,7 +62,7 @@
"/Users/movingsam/.nuget/packages/microsoft.identitymodel.protocols/8.14.0/microsoft.identitymodel.protocols.8.14.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.identitymodel.tokens/8.14.0/microsoft.identitymodel.tokens.8.14.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.net.http.headers/9.0.10/microsoft.net.http.headers.9.0.10.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.openapi/1.6.17/microsoft.openapi.1.6.17.nupkg.sha512",
"/Users/movingsam/.nuget/packages/microsoft.openapi/1.6.22/microsoft.openapi.1.6.22.nupkg.sha512",
"/Users/movingsam/.nuget/packages/mono.texttemplating/3.0.0/mono.texttemplating.3.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/npgsql/9.0.2/npgsql.9.0.2.nupkg.sha512",
"/Users/movingsam/.nuget/packages/npgsql.entityframeworkcore.postgresql/9.0.3/npgsql.entityframeworkcore.postgresql.9.0.3.nupkg.sha512",
@ -91,6 +92,7 @@
"/Users/movingsam/.nuget/packages/opentelemetry.exporter.opentelemetryprotocol/1.11.0/opentelemetry.exporter.opentelemetryprotocol.1.11.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/opentelemetry.extensions.hosting/1.11.0/opentelemetry.extensions.hosting.1.11.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/opentelemetry.instrumentation.aspnetcore/1.11.0/opentelemetry.instrumentation.aspnetcore.1.11.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/opentelemetry.instrumentation.http/1.11.0/opentelemetry.instrumentation.http.1.11.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/polly/7.2.4/polly.7.2.4.nupkg.sha512",
"/Users/movingsam/.nuget/packages/polly.core/8.4.2/polly.core.8.4.2.nupkg.sha512",
"/Users/movingsam/.nuget/packages/polly.extensions/8.4.2/polly.extensions.8.4.2.nupkg.sha512",
@ -105,6 +107,10 @@
"/Users/movingsam/.nuget/packages/serilog.sinks.console/6.0.0/serilog.sinks.console.6.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/serilog.sinks.debug/3.0.0/serilog.sinks.debug.3.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/serilog.sinks.file/6.0.0/serilog.sinks.file.6.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/swashbuckle.aspnetcore/7.2.0/swashbuckle.aspnetcore.7.2.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/swashbuckle.aspnetcore.swagger/7.2.0/swashbuckle.aspnetcore.swagger.7.2.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/swashbuckle.aspnetcore.swaggergen/7.2.0/swashbuckle.aspnetcore.swaggergen.7.2.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/swashbuckle.aspnetcore.swaggerui/7.2.0/swashbuckle.aspnetcore.swaggerui.7.2.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/system.codedom/6.0.0/system.codedom.6.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/system.collections.immutable/7.0.0/system.collections.immutable.7.0.0.nupkg.sha512",
"/Users/movingsam/.nuget/packages/system.composition/7.0.0/system.composition.7.0.0.nupkg.sha512",