From 26a5a53e2a0843b2d90771e6f6e7791b78bcad7f Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 25 Apr 2026 08:52:01 +0800 Subject: [PATCH 1/2] feat: Optimize API Gateway --- ...GYUN.MicroService.Internal.ApiGateway.slnx | 46 + .../.config/dotnet-tools.json | 12 - .../Controllers/ApiGatewayController.cs | 48 - .../Dockerfile | 11 - .../InternalApiGatewayModule.Configure.cs | 242 - .../InternalApiGatewayModule.cs | 87 - .../InternalApiGatewayOptions.cs | 18 - ...UN.MicroService.Internal.ApiGateway.csproj | 41 - .../Localization/ApiGatewayResource.cs | 9 - .../Localization/Resources/en.json | 10 - .../Localization/Resources/zh-Hans.json | 10 - .../Models/DownstreamOpenApi.cs | 8 - .../Multiplexer/AbpResponseMergeAggregator.cs | 132 - .../Program.cs | 73 - .../Properties/launchSettings.json | 20 - .../Utils/ILoadBalancerFinder.cs | 21 - .../Utils/LoadBalancerFinder.cs | 58 - .../appsettings.Development.json | 87 - .../appsettings.json | 80 - .../ocelot.Development.json | 1 - .../ocelot.json | 4349 ----------------- .../OpenApiGatewayModule.cs | 2 +- .../InternalApiGatewayModule.cs | 14 +- 23 files changed, 54 insertions(+), 5325 deletions(-) create mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.slnx delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/.config/dotnet-tools.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Controllers/ApiGatewayController.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Dockerfile delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.Configure.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayOptions.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.csproj delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/ApiGatewayResource.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/en.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/zh-Hans.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Models/DownstreamOpenApi.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Multiplexer/AbpResponseMergeAggregator.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Program.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/ILoadBalancerFinder.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/LoadBalancerFinder.cs delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.Development.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.json diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.slnx b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.slnx new file mode 100644 index 000000000..d7999a6d4 --- /dev/null +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.slnx @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/.config/dotnet-tools.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/.config/dotnet-tools.json deleted file mode 100644 index 2f789b031..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "dotnet-ef": { - "version": "7.0.12", - "commands": [ - "dotnet-ef" - ] - } - } -} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Controllers/ApiGatewayController.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Controllers/ApiGatewayController.cs deleted file mode 100644 index 643147469..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Controllers/ApiGatewayController.cs +++ /dev/null @@ -1,48 +0,0 @@ -using LINGYUN.MicroService.Internal.ApiGateway.Utils; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.DependencyInjection; -using Ocelot.Multiplexer; -using System; -using System.Linq; -using System.Threading.Tasks; -using Volo.Abp.Application.Dtos; - -namespace LINGYUN.MicroService.Internal.ApiGateway.Controllers -{ - [Area("ApiGateway")] - [Route("api/ApiGateway/Basic")] - public class ApiGatewayController : Controller - { - protected IServiceProvider ServiceProvider { get; } - protected ILoadBalancerFinder LoadBalancerFinder { get; } - public ApiGatewayController( - IServiceProvider serviceProvider, - ILoadBalancerFinder loadBalancerFinder) - { - ServiceProvider = serviceProvider; - LoadBalancerFinder = loadBalancerFinder; - } - - [HttpGet] - [Route("Aggregators")] - public Task GetAggregatorsAsync() - { - var aggregators = ServiceProvider.GetServices(); - - var aggregatorDtos = new ListResultDto(aggregators.Select(agg => agg.GetType().Name).ToList()); - - return Task.FromResult(Json(aggregatorDtos)); - } - - [HttpGet] - [Route("LoadBalancers")] - public async Task GetLoadBalancersAsync() - { - var loadBalancers = await LoadBalancerFinder.GetLoadBalancersAsync(); - - var loadBalancerDtos = new ListResultDto(loadBalancers); - - return Json(loadBalancerDtos); - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Dockerfile b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Dockerfile deleted file mode 100644 index 0023fbee1..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 -LABEL maintainer="colin.in@foxmail.com" -WORKDIR /app - -COPY . /app - -EXPOSE 80/tcp -VOLUME [ "./app/Logs" ] -VOLUME [ "./app/Modules" ] - -ENTRYPOINT ["dotnet", "LINGYUN.MicroService.Internal.ApiGateway.dll"] \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.Configure.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.Configure.cs deleted file mode 100644 index 423d24e7e..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.Configure.cs +++ /dev/null @@ -1,242 +0,0 @@ -using LINGYUN.Abp.Serilog.Enrichers.Application; -using LINGYUN.MicroService.Internal.ApiGateway.Localization; -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; -using Microsoft.AspNetCore.DataProtection; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Routing; -using Microsoft.AspNetCore.Server.Kestrel.Core; -using Microsoft.Extensions.Caching.StackExchangeRedis; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.IdentityModel.Logging; -using Microsoft.OpenApi.Models; -using Ocelot.DependencyInjection; -using Ocelot.Multiplexer; -using Ocelot.Provider.Polly; -using StackExchange.Redis; -using System; -using System.Linq; -using System.Text.Encodings.Web; -using System.Text.Unicode; -using Volo.Abp.Caching; -using Volo.Abp.Json; -using Volo.Abp.Json.SystemTextJson; -using Volo.Abp.Localization; -using Volo.Abp.VirtualFileSystem; - -namespace LINGYUN.MicroService.Internal.ApiGateway -{ - public partial class InternalApiGatewayModule - { - protected const string DefaultCorsPolicyName = "Default"; - - private void PreConfigureApp(IConfiguration configuration) - { - AbpSerilogEnrichersConsts.ApplicationName = "Internal-ApiGateWay"; - if (configuration.GetValue("App:ShowPii")) - { - IdentityModelEventSource.ShowPII = true; - } - } - - //private void PreForwardedHeaders() - //{ - // PreConfigure(options => - // { - // options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; - // options.KnownNetworks.Clear(); - // options.KnownProxies.Clear(); - // }); - //} - - private void ConfigureApiGateway(IConfiguration configuration) - { - Configure(configuration.GetSection("ApiGateway")); - } - - - private void ConfigureKestrelServer(IConfiguration configuration, bool isDevelopment = true) - { - // fix: 不限制请求体大小,解决上传文件问题 - Configure(options => - { - options.Limits.MaxRequestBodySize = null; - options.Limits.MaxRequestBufferSize = null; - }); - - if (!isDevelopment) - { - // Ssl证书 - var sslOptions = configuration.GetSection("App:SslOptions"); - if (sslOptions.Exists()) - { - var fileName = sslOptions["FileName"]; - var password = sslOptions["Password"]; - Configure(options => - { - options.ConfigureEndpointDefaults(cfg => - { - cfg.UseHttps(fileName, password); - }); - }); - } - } - } - - private void ConfigureJsonSerializer() - { - // 统一时间日期格式 - Configure(options => - { - // options.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss"; - }); - // 中文序列化的编码问题 - Configure(options => - { - options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); - }); - } - - private void ConfigureVirtualFileSystem() - { - Configure(options => - { - options.FileSets.AddEmbedded("LINGYUN.MicroService.Internal.ApiGateway"); - }); - } - - private void ConfigureLocalization() - { - Configure(options => - { - options.Languages.Add(new LanguageInfo("en", "en", "English")); - options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); - - options.Resources - .Add() - .AddVirtualJson("/Localization/Resources"); - }); - } - - private void ConfigureMvc(IServiceCollection services) - { - var mvcBuilder = services.AddMvc(); - mvcBuilder.AddApplicationPart(typeof(InternalApiGatewayModule).Assembly); - - Configure(options => - { - options.EndpointConfigureActions.Add(endpointContext => - { - endpointContext.Endpoints.MapControllerRoute("defaultWithArea", "{area}/{controller=Home}/{action=Index}/{id?}"); - endpointContext.Endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); - }); - }); - } - - private void ConfigureOcelot(IServiceCollection services, IConfiguration configuration) - { - // 需要合并自定义配置取消注释 - // services.AddSingleton(); - services - .AddOcelot(configuration) - .AddPolly() - .AddSingletonDefinedAggregator(); - } - - private void ConfigureCaching(IConfiguration configuration) - { - Configure(options => - { - // 最好统一命名,不然某个缓存变动其他应用服务有例外发生 - options.KeyPrefix = "LINGYUN.Abp.Application"; - // 滑动过期30天 - options.GlobalCacheEntryOptions.SlidingExpiration = TimeSpan.FromDays(30d); - // 绝对过期60天 - options.GlobalCacheEntryOptions.AbsoluteExpiration = DateTimeOffset.Now.AddDays(60d); - }); - - Configure(options => - { - var redisConfig = ConfigurationOptions.Parse(options.Configuration); - options.ConfigurationOptions = redisConfig; - options.InstanceName = configuration["Redis:InstanceName"]; - }); - } - - private void ConfigureSwagger(IServiceCollection services) - { - services.AddSwaggerGen( - options => - { - options.SwaggerDoc("v1", new OpenApiInfo { Title = "Open API Document", Version = "v1" }); - options.DocInclusionPredicate((docName, description) => true); - options.CustomSchemaIds(type => type.FullName); - options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme - { - Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", - Name = "Authorization", - In = ParameterLocation.Header, - Scheme = "bearer", - Type = SecuritySchemeType.Http, - BearerFormat = "JWT" - }); - options.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } - }, - new string[] { } - } - }); - }); - } - - private void ConfigureCors(IServiceCollection services, IConfiguration configuration) - { - services.AddCors(options => - { - options.AddPolicy(DefaultCorsPolicyName, builder => - { - builder - .WithOrigins( - configuration["App:CorsOrigins"] - .Split(",", StringSplitOptions.RemoveEmptyEntries) - .Select(o => o.RemovePostFix("/")) - .ToArray() - ) - .WithAbpExposedHeaders() - // 引用 LINGYUN.Abp.AspNetCore.Mvc.Wrapper 包时可替换为 WithAbpWrapExposedHeaders - .WithExposedHeaders("_AbpWrapResult", "_AbpDontWrapResult") - .SetIsOriginAllowedToAllowWildcardSubdomains() - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); - } - - private void ConfigureSecurity(IServiceCollection services, IConfiguration configuration, bool isDevelopment = false) - { - services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) - .AddJwtBearer(options => - { - options.Authority = configuration["AuthServer:Authority"]; - options.RequireHttpsMetadata = false; - options.Audience = configuration["AuthServer:ApiName"]; - }); - - if (!isDevelopment) - { - var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - services - .AddDataProtection() - .SetApplicationName("LINGYUN.Abp.Application") - .PersistKeysToStackExchangeRedis(redis, "LINGYUN.Abp.Application:DataProtection:Protection-Keys"); - } - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.cs deleted file mode 100644 index 3cfc89770..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayModule.cs +++ /dev/null @@ -1,87 +0,0 @@ -using LINGYUN.Abp.Serilog.Enrichers.Application; -using LINGYUN.Abp.Serilog.Enrichers.UniqueId; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; -using Ocelot.Middleware; -using Volo.Abp; -using Volo.Abp.AspNetCore.Serilog; -using Volo.Abp.Autofac; -using Volo.Abp.Caching.StackExchangeRedis; -using Volo.Abp.Modularity; - -namespace LINGYUN.MicroService.Internal.ApiGateway -{ - - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpSerilogEnrichersApplicationModule), - typeof(AbpSerilogEnrichersUniqueIdModule), - typeof(AbpCachingStackExchangeRedisModule), - typeof(AbpAspNetCoreSerilogModule) - )] - public partial class InternalApiGatewayModule : AbpModule - { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - - PreConfigureApp(configuration); - } - - public override void ConfigureServices(ServiceConfigurationContext context) - { - var hostingEnvironment = context.Services.GetHostingEnvironment(); - var configuration = context.Services.GetConfiguration(); - - ConfigureLocalization(); - ConfigureJsonSerializer(); - ConfigureVirtualFileSystem(); - - ConfigureCaching(configuration); - ConfigureApiGateway(configuration); - - ConfigureKestrelServer(configuration, hostingEnvironment.IsDevelopment()); - ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); - - ConfigureMvc(context.Services); - ConfigureSwagger(context.Services); - ConfigureCors(context.Services, configuration); - ConfigureOcelot(context.Services, configuration); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - app.UseAuditing(); - app.UseStaticFiles(); - app.UseRouting(); - app.UseCors(DefaultCorsPolicyName); - app.UseAuthentication(); - app.UseAbpClaimsMap(); - app.MapWhen( - ctx => ctx.Request.Path.ToString().StartsWith("/api/ApiGateway/Basic/"), - appNext => - { - // 仅针对属于网关自己的控制器进入MVC管道 - appNext.UseRouting(); - appNext.UseConfiguredEndpoints(); - }); - app.UseSwagger(); - app.UseSwaggerUI(c => - { - c.SwaggerEndpoint("/swagger/v1/swagger.json", "Open API Document"); - var options = app.ApplicationServices.GetRequiredService>().Value; - foreach (var api in options.DownstreamOpenApis) - { - c.SwaggerEndpoint(api.EndPoint, api.Name); - } - }); - // 启用ws协议 - app.UseWebSockets(); - app.UseAbpSerilogEnrichers(); - app.UseOcelot().Wait(); - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayOptions.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayOptions.cs deleted file mode 100644 index 812b2f3e4..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/InternalApiGatewayOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using LINGYUN.MicroService.Internal.ApiGateway.Models; - -namespace LINGYUN.MicroService.Internal.ApiGateway -{ - public class InternalApiGatewayOptions - { - /// - /// 聚合异常时是否忽略 - /// - public bool AggregationIgnoreError { get; set; } - public DownstreamOpenApi[] DownstreamOpenApis { get; set; } - public InternalApiGatewayOptions() - { - AggregationIgnoreError = true; - DownstreamOpenApis = new DownstreamOpenApi[0]; - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.csproj b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.csproj deleted file mode 100644 index 7d18cee0b..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.csproj +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - Exe - net10.0 - LINGYUN.MicroService.Internal.ApiGateway - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/ApiGatewayResource.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/ApiGatewayResource.cs deleted file mode 100644 index ce60093f8..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/ApiGatewayResource.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Volo.Abp.Localization; - -namespace LINGYUN.MicroService.Internal.ApiGateway.Localization -{ - [LocalizationResourceName("InternalApiGateway")] - public class ApiGatewayResource - { - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/en.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/en.json deleted file mode 100644 index bc32138d7..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/en.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "culture": "en", - "texts": { - "NoLoadBalancer": "No Load balancer", - "RoundRobin": "Round robin", - "LeastConnection": "Least connection", - "CookieStickySessions": "Cookie sticky sessions", - "CustomLoadBalancer": "Custom load balancer - {0}" - } -} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/zh-Hans.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/zh-Hans.json deleted file mode 100644 index b99d0e511..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Localization/Resources/zh-Hans.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "culture": "zh-Hans", - "texts": { - "NoLoadBalancer": "无负载均衡", - "RoundRobin": "服务器轮询", - "LeastConnection": "总是空闲服务器", - "CookieStickySessions": "粘性会话类型", - "CustomLoadBalancer": "自定义负载均衡器 - {0}" - } -} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Models/DownstreamOpenApi.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Models/DownstreamOpenApi.cs deleted file mode 100644 index 0d12da8c0..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Models/DownstreamOpenApi.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace LINGYUN.MicroService.Internal.ApiGateway.Models -{ - public class DownstreamOpenApi - { - public string Name { get; set; } - public string EndPoint { get; set; } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Multiplexer/AbpResponseMergeAggregator.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Multiplexer/AbpResponseMergeAggregator.cs deleted file mode 100644 index 336e56fde..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Multiplexer/AbpResponseMergeAggregator.cs +++ /dev/null @@ -1,132 +0,0 @@ -using LINGYUN.MicroService.Internal.ApiGateway; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Ocelot.Middleware; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Threading.Tasks; -using Volo.Abp.Http; - -namespace Ocelot.Multiplexer -{ - public class AbpResponseMergeAggregator : IDefinedAggregator - { - public ILogger Logger { protected get; set; } - protected InternalApiGatewayOptions Options { get; } - - public AbpResponseMergeAggregator( - IOptions options) - { - Options = options.Value; - - Logger = NullLogger.Instance; - } - - public async Task Aggregate(List responses) - { - return await MapAbpApiDefinitionAggregateContentAsync(responses); - } - - protected virtual async Task MapAbpApiDefinitionAggregateContentAsync(List responses) - { - JObject responseObject = null; - JsonMergeSettings mergeSetting = new JsonMergeSettings - { - MergeArrayHandling = MergeArrayHandling.Union, - PropertyNameComparison = System.StringComparison.CurrentCultureIgnoreCase - }; - foreach (var httpResponse in responses) - { - var errorItems = httpResponse.Items.Errors(); - var response = httpResponse.Items.DownstreamResponse(); - - if (errorItems.Any()) - { - if (!Options.AggregationIgnoreError) - { - var errorItem = errorItems.First(); - string error = errorItems.Select(x => x.Message).JoinAsString(";"); - if (httpResponse.Response.Headers.ContainsKey(AbpHttpConsts.AbpErrorFormat)) - { - // header 存在abp错误标头, 可以序列化错误信息 - error = await response.Content.ReadAsStringAsync(); - } - var errorContent = new StringContent(error) - { - Headers = { ContentType = new MediaTypeHeaderValue("application/json") } - }; - if (httpResponse.Response.Headers.ContainsKey(AbpHttpConsts.AbpErrorFormat)) - { - errorContent.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); - } - - return new DownstreamResponse( - errorContent, - (HttpStatusCode)errorItem.HttpStatusCode, - httpResponse.Response.Headers.Select(x => new Header(x.Key, x.Value)).ToList(), - errorItem.Message); - } - var route = httpResponse.Items.DownstreamRoute(); - var service = route.ServiceName ?? route.LoadBalancerKey ?? route.DownstreamPathTemplate.Value; - Logger.LogWarning($"The downstream service {service} returned an error, which is configured to be ignored"); - continue; - } - var content = await response.Content.ReadAsStringAsync(); - try - { - var contentObject = JsonConvert.DeserializeObject(content); - if (responseObject == null) - { - responseObject = JObject.FromObject(contentObject); - } - else - { - responseObject.Merge(contentObject, mergeSetting); - } - } - catch (System.Exception ex) - { - Logger.LogError(ex, "An error occurred in the aggregate route request result."); - return new DownstreamResponse( - null, - HttpStatusCode.InternalServerError, - new List>>(), - content); - } - } - - if (responseObject == null) - { - return new DownstreamResponse( - null, - HttpStatusCode.NotFound, - new List>>(), - "Not Found"); - } - - var stringContent = new StringContent(responseObject.ToString()) - { - Headers = { ContentType = new MediaTypeHeaderValue("application/json") } - }; - - //if (responses.Any(response => response.Response.Headers.ContainsKey(AbpHttpConsts.AbpErrorFormat))) - //{ - // stringContent.Headers.Add("_AbpErrorFormat", "true"); - //} - - return new DownstreamResponse( - stringContent, - HttpStatusCode.OK, - new List>>(), - "OK"); - } - - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Program.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Program.cs deleted file mode 100644 index 46b26b59d..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Program.cs +++ /dev/null @@ -1,73 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Serilog; -using System; -using System.IO; -using System.Threading.Tasks; -using Volo.Abp.IO; -using Volo.Abp.Modularity.PlugIns; - -namespace LINGYUN.MicroService.Internal.ApiGateway; - -public class Program -{ - public async static Task Main(string[] args) - { - try - { - Log.Information("Starting Internal ApiGateway."); - - var builder = WebApplication.CreateBuilder(args); - - builder.Host.AddAppSettingsSecretsJson() - .UseAutofac() - .ConfigureAppConfiguration((context, config) => - { - var configuration = config.Build(); - var agileConfigEnabled = configuration["AgileConfig:IsEnabled"]; - if (agileConfigEnabled.IsNullOrEmpty() || bool.Parse(agileConfigEnabled)) - { - config.AddAgileConfig(new AgileConfig.Client.ConfigClient(configuration)); - } - config.AddJsonFile("ocelot.json", optional: true, reloadOnChange: true); - if (!context.HostingEnvironment.EnvironmentName.IsNullOrWhiteSpace()) - { - config.AddJsonFile($"ocelot.{context.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true); - } - }) - .UseSerilog((context, provider, config) => - { - config.ReadFrom.Configuration(context.Configuration); - }); - await builder.AddApplicationAsync(options => - { - // 搜索 Modules 目录下所有文件作为插件 - // 取消显示引用所有其他项目的模块,改为通过插件的形式引用 - var pluginFolder = Path.Combine( - Directory.GetCurrentDirectory(), "Modules"); - DirectoryHelper.CreateIfNotExists(pluginFolder); - options.PlugInSources.AddFolder( - pluginFolder, - SearchOption.AllDirectories); - }); - var app = builder.Build(); - await app.InitializeApplicationAsync(); - await app.RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - Console.WriteLine("Host terminated unexpectedly!"); - Console.WriteLine(ex.ToString()); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json deleted file mode 100644 index 6037e2ac6..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Properties/launchSettings.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:51466/", - "sslPort": 44332 - } - }, - "profiles": { - "LINGYUN.MicroService.Internal.ApiGateway": { - "commandName": "Project", - "launchBrowser": false, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://127.0.0.1:30443;http://127.0.0.1:30000" - } - } -} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/ILoadBalancerFinder.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/ILoadBalancerFinder.cs deleted file mode 100644 index 10b5ef332..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/ILoadBalancerFinder.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace LINGYUN.MicroService.Internal.ApiGateway.Utils -{ - public interface ILoadBalancerFinder - { - Task> GetLoadBalancersAsync(); - } - - public class LoadBalancerDescriptor - { - public string Type { get; } - public string DisplayName { get; } - public LoadBalancerDescriptor(string type, string displayName) - { - Type = type; - DisplayName = displayName; - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/LoadBalancerFinder.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/LoadBalancerFinder.cs deleted file mode 100644 index 014ddd6db..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Utils/LoadBalancerFinder.cs +++ /dev/null @@ -1,58 +0,0 @@ -using LINGYUN.MicroService.Internal.ApiGateway.Localization; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Localization; -using Ocelot.LoadBalancer.LoadBalancers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace LINGYUN.MicroService.Internal.ApiGateway.Utils -{ - public class LoadBalancerFinder : ILoadBalancerFinder, ISingletonDependency - { - private Lazy> lazyLoadBalancers; - protected List LoadBalancers => lazyLoadBalancers.Value; - protected IServiceProvider ServiceProvider { get; } - protected IStringLocalizer Localizer { get; } - public LoadBalancerFinder( - IServiceProvider serviceProvider, - IStringLocalizer localizer) - { - Localizer = localizer; - ServiceProvider = serviceProvider; - - lazyLoadBalancers = new Lazy>(() => FindLocalLoadBalancers()); - } - - public Task> GetLoadBalancersAsync() - { - return Task.FromResult(LoadBalancers); - } - - protected List FindLocalLoadBalancers() - { - List loadBalancers = new List - { - new LoadBalancerDescriptor(typeof(NoLoadBalancer).Name, Localizer["NoLoadBalancer"]), - new LoadBalancerDescriptor(typeof(RoundRobin).Name, Localizer["RoundRobin"]), - new LoadBalancerDescriptor(typeof(LeastConnection).Name, Localizer["LeastConnection"]), - new LoadBalancerDescriptor(typeof(CookieStickySessions).Name, Localizer["CookieStickySessions"]) - }; - - - var loadBalancerCreators = ServiceProvider.GetServices(); - loadBalancerCreators = loadBalancerCreators - .Where(lbc => !loadBalancers.Any(l => l.Type.Equals(lbc.Type))) - .ToArray(); - - foreach(var defintedLoadBalancerCreator in loadBalancerCreators) - { - loadBalancers.Add(new LoadBalancerDescriptor(defintedLoadBalancerCreator.Type, Localizer["CustomLoadBalancer", defintedLoadBalancerCreator.Type])); - } - - return loadBalancers; - } - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.Development.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.Development.json deleted file mode 100644 index 0baadf8d5..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.Development.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "AgileConfig": { - "IsEnabled": false, - "env": "DEV", - "appId": "LINGYUN.Internal.ApiGateway", - "secret": "1q2w3E*", - "nodes": "http://127.0.0.1:5000", - "name": "ApiGateway", - "tag": "ApiGateway" - }, - "App": { - "CorsOrigins": "http://127.0.0.1:3100", - "ShowPii": true - }, - "ApiGateway": { - "AppId": "TEST-APP", - "DownstreamOpenApis": [ - { - "Name": "ApiGateway Admin API", - "EndPoint": "/apigateway-admin/v1/swagger.json" - }, - { - "Name": "Backend Admin API", - "EndPoint": "/admin/v1/swagger.json" - }, - { - "Name": "Platform API", - "EndPoint": "/platform/v1/swagger.json" - }, - { - "Name": "Localization API", - "EndPoint": "/localization/v1/swagger.json" - }, - { - "Name": "Messages API", - "EndPoint": "/messages/v1/swagger.json" - }, - { - "Name": "IdentityServer Admin API", - "EndPoint": "/ids-admin/v1/swagger.json" - }, - { - "Name": "Webhooks API", - "EndPoint": "/webhooks/v1/swagger.json" - } - ] - }, - "Redis": { - "Configuration": "127.0.0.1,defaultDatabase=10", - "InstanceName": "LINGYUN.Abp.Application" - }, - "AuthServer": { - "Authority": "http://host.docker.internal:44385/", - "ApiName": "lingyun-abp-application", - "SwaggerClientId": "ApigatewayHostClient", - "SwaggerClientSecret": "1q2w3e*", - "ApiSocpes": "lingyun-abp-application" - }, - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "System": "Warning", - "Microsoft": "Warning", - "DotNetCore": "Debug" - } - }, - "WriteTo": [ - { - "Name": "Console", - "Args": { - "restrictedToMinimumLevel": "Debug", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "Elasticsearch", - "Args": { - "nodeUris": "http://127.0.0.1:9200", - "indexFormat": "abp.dev.logging-{0:yyyy.MM.dd}", - "autoRegisterTemplate": true, - "autoRegisterTemplateVersion": "ESv7" - } - } - ] - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.json deleted file mode 100644 index a7f5f8376..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/appsettings.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "AuthServer": { - "Authority": "http://127.0.0.1:44385/", - "ApiName": "lingyun-abp-application", - "SwaggerClientId": "ApigatewayHostClient", - "SwaggerClientSecret": "1q2w3e*", - "ApiSocpes": "lingyun-abp-application" - }, - "StringEncryption": { - "DefaultPassPhrase": "s46c5q55nxpeS8Ra", - "InitVectorBytes": "s83ng0abvd02js84", - "DefaultSalt": "sf&5)s3#" - }, - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "System": "Warning", - "Microsoft": "Warning" - } - }, - "Enrich": [ "FromLogContext", "WithProcessId", "WithThreadId", "WithEnvironmentName", "WithMachineName", "WithApplicationName", "WithUniqueId" ], - "WriteTo": [ - { - "Name": "Console", - "Args": { - "initialMinimumLevel": "Information", - "standardErrorFromLevel": "Information", - "restrictedToMinimumLevel": "Information", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Debug-.log", - "restrictedToMinimumLevel": "Debug", - "rollingInterval": "Day", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Info-.log", - "restrictedToMinimumLevel": "Information", - "rollingInterval": "Day", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Warn-.log", - "restrictedToMinimumLevel": "Warning", - "rollingInterval": "Day", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Error-.log", - "restrictedToMinimumLevel": "Error", - "rollingInterval": "Day", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - }, - { - "Name": "File", - "Args": { - "path": "Logs/Fatal-.log", - "restrictedToMinimumLevel": "Fatal", - "rollingInterval": "Day", - "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] [{SourceContext}] [{ProcessId}] [{ThreadId}] - {Message:lj}{NewLine}{Exception}" - } - } - ] - } -} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.json deleted file mode 100644 index cea37c82d..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.json +++ /dev/null @@ -1,4349 +0,0 @@ -{ - "Routes": [ - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/backend-admin/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "backend-admin-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/backend-admin/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "backend-admin-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "UpstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/tenant-management/{everything}", - "UpstreamPathTemplate": "/api/tenant-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/permission-management/{everything}", - "UpstreamPathTemplate": "/api/permission-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant/app", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "setting-current-tenant", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-current-user", - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user/app", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "setting-current-user", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-global", - "UpstreamPathTemplate": "/api/setting-management/settings/by-global/app", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "setting-global", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "wechat-setting-current-tenant", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-global", - "UpstreamPathTemplate": "/api/setting-management/wechat/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "wechat-setting-global", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "tencent-cloud-setting-current-tenant", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", - "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "tencent-cloud-setting-global", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "aliyun-setting-current-tenant", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": "aliyun-setting-global", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-global", - "UpstreamPathTemplate": "/api/setting-management/settings/change-global", - "UpstreamHttpMethod": [ - "PUT" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", - "UpstreamHttpMethod": [ - "PUT" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-current-user", - "UpstreamPathTemplate": "/api/setting-management/settings/change-current-user", - "UpstreamHttpMethod": [ - "PUT" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/{everything}", - "UpstreamPathTemplate": "/api/setting-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 5 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/feature-management/{everything}", - "UpstreamPathTemplate": "/api/feature-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/saas/{everything}", - "UpstreamPathTemplate": "/api/saas/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/auditing/{everything}", - "UpstreamPathTemplate": "/api/auditing/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/text-templating/{everything}", - "UpstreamPathTemplate": "/api/text-templating/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/caching-management/{everything}", - "UpstreamPathTemplate": "/api/caching-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/localization/{everything}", - "UpstreamPathTemplate": "/api/abp/localization/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "UpstreamPathTemplate": "/admin/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/ids-admin/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": "ids-admin-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/ids-admin/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": "ids-admin-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/identity/{everything}", - "UpstreamPathTemplate": "/api/identity/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/identity-server/{everything}", - "UpstreamPathTemplate": "/api/identity-server/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/account/{everything}", - "UpstreamPathTemplate": "/api/account/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/.well-known/openid-configuration", - "UpstreamPathTemplate": "/.well-known/openid-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 44385 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/connect/{everything}", - "UpstreamPathTemplate": "/connect/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 44385 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "UpstreamPathTemplate": "/ids-admin/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/localization/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamHost": null, - "Key": "localization-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/localization/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamHost": null, - "Key": "localization-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/localization/{everything}", - "UpstreamPathTemplate": "/api/localization/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "UpstreamPathTemplate": "/localization/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/messages/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": "messages-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/messages/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": "messages-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/im/{everything}", - "UpstreamPathTemplate": "/api/im/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/hangfire/{everything}", - "UpstreamPathTemplate": "/hangfire/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/notifications/{everything}", - "UpstreamPathTemplate": "/api/notifications/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "UpstreamPathTemplate": "/messages/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/signalr-hubs/messages", - "UpstreamPathTemplate": "/signalr-hubs/messages", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE", - "OPTIONS" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "ws", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": false, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 99, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": true, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/signalr-hubs/notifications", - "UpstreamPathTemplate": "/signalr-hubs/notifications", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE", - "OPTIONS" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "ws", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": false, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 99, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": true, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/signalr-hubs/{everything}", - "UpstreamPathTemplate": "/signalr-hubs/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE", - "OPTIONS" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "ws", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": false, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": true, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/platform/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": "platform-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/platform/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": "platform-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/oss-management/{everything}", - "UpstreamPathTemplate": "/api/oss-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/platform/{everything}", - "UpstreamPathTemplate": "/api/platform/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/files/{everything}", - "UpstreamPathTemplate": "/api/files/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/files/{everything}", - "UpstreamPathTemplate": "/api/files/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": "oss-management-setting-current-tenant", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": "oss-management-setting-global", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "UpstreamPathTemplate": "/platform/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamPathTemplate": "/api/abp/task/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamHost": null, - "Key": "task-configuration", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/task/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamHost": null, - "Key": "task-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/task-management/{everything}", - "UpstreamPathTemplate": "/api/task-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1.0, - "Limit": 100 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "UpstreamPathTemplate": "/api/abp/webhook/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamHost": null, - "Key": "webhook-api-definition", - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - }, - { - "DownstreamPathTemplate": "/api/webhooks/{everything}", - "UpstreamPathTemplate": "/api/webhooks/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "DownstreamHttpMethod": null, - "AddHeadersToRequest": {}, - "UpstreamHeaderTransform": {}, - "DownstreamHeaderTransform": {}, - "AddClaimsToRequest": {}, - "RouteClaimsRequirement": {}, - "AddQueriesToRequest": {}, - "ChangeDownstreamPathTemplate": {}, - "RequestIdKey": null, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": null - }, - "RouteIsCaseSensitive": false, - "ServiceName": null, - "ServiceNamespace": null, - "DownstreamScheme": "http", - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": false, - "Period": null, - "PeriodTimespan": 0.0, - "Limit": 0 - }, - "AuthenticationOptions": { - "AuthenticationProviderKey": null, - "AllowedScopes": [] - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamHost": null, - "Key": null, - "DelegatingHandlers": [], - "Priority": 1, - "Timeout": 0, - "DangerousAcceptAnyServerCertificateValidator": false, - "SecurityOptions": { - "IPAllowedList": [], - "IPBlockedList": [] - }, - "DownstreamHttpVersion": null - } - ], - "DynamicRoutes": [], - "Aggregates": [ - { - "RouteKeys": [ - "platform-api-definition", - "backend-admin-api-definition", - "messages-api-definition", - "ids-admin-api-definition", - "localization-api-definition", - "task-api-definition", - "webhook-api-definition" - ], - "RouteKeysConfig": null, - "UpstreamPathTemplate": "/api/abp/api-definition", - "UpstreamHost": null, - "RouteIsCaseSensitive": false, - "Aggregator": "AbpResponseMergeAggregator", - "UpstreamHttpMethod": [ - "Get" - ], - "Priority": 1 - }, - { - "RouteKeys": [ - "platform-configuration", - "backend-admin-configuration", - "messages-configuration", - "ids-admin-configuration", - "localization-configuration", - "task-configuration" - ], - "RouteKeysConfig": null, - "UpstreamPathTemplate": "/api/abp/application-configuration", - "UpstreamHost": null, - "RouteIsCaseSensitive": false, - "Aggregator": "AbpResponseMergeAggregator", - "UpstreamHttpMethod": [ - "Get" - ], - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-global", - "wechat-setting-global", - "tencent-cloud-setting-global", - "aliyun-setting-global", - "oss-management-setting-global" - ], - "RouteKeysConfig": null, - "UpstreamPathTemplate": "/api/setting-management/settings/by-global", - "UpstreamHost": null, - "RouteIsCaseSensitive": false, - "Aggregator": "AbpResponseMergeAggregator", - "UpstreamHttpMethod": [ - "Get" - ], - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-current-tenant", - "wechat-setting-current-tenant", - "tencent-cloud-setting-current-tenant", - "aliyun-setting-current-tenant", - "oss-management-setting-current-tenant" - ], - "RouteKeysConfig": null, - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "UpstreamHost": null, - "RouteIsCaseSensitive": false, - "Aggregator": "AbpResponseMergeAggregator", - "UpstreamHttpMethod": [ - "Get" - ], - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-current-user" - ], - "RouteKeysConfig": null, - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user", - "UpstreamHost": null, - "RouteIsCaseSensitive": false, - "Aggregator": "AbpResponseMergeAggregator", - "UpstreamHttpMethod": [ - "Get" - ], - "Priority": 99 - } - ], - "GlobalConfiguration": { - "RequestIdKey": null, - "ServiceDiscoveryProvider": { - "Scheme": null, - "Host": null, - "Port": 0, - "Type": null, - "Token": null, - "ConfigurationKey": null, - "PollingInterval": 0, - "Namespace": null - }, - "RateLimitOptions": { - "ClientIdHeader": "ClientId", - "QuotaExceededMessage": "您的操作过快,请稍后再试!", - "RateLimitCounterPrefix": "ocelot", - "DisableRateLimitHeaders": false, - "HttpStatusCode": 429 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 30, - "DurationOfBreak": 60000, - "TimeoutValue": 30000 - }, - "BaseUrl": "http://localhost:30000", - "LoadBalancerOptions": { - "Type": "RoundRobin", - "Key": null, - "Expiry": 0 - }, - "DownstreamScheme": "HTTP", - "HttpHandlerOptions": { - "AllowAutoRedirect": false, - "UseCookieContainer": false, - "UseTracing": true, - "UseProxy": true, - "MaxConnectionsPerServer": 2147483647 - }, - "DownstreamHttpVersion": null - } -} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.OpenApi.Gateway/OpenApiGatewayModule.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.OpenApi.Gateway/OpenApiGatewayModule.cs index ba484b0b7..0c88f173f 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.OpenApi.Gateway/OpenApiGatewayModule.cs +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.OpenApi.Gateway/OpenApiGatewayModule.cs @@ -9,7 +9,7 @@ using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.WebSockets; using Microsoft.Extensions.Caching.StackExchangeRedis; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using StackExchange.Redis; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; diff --git a/gateways/web/LY.MicroService.ApiGateway/InternalApiGatewayModule.cs b/gateways/web/LY.MicroService.ApiGateway/InternalApiGatewayModule.cs index 269552936..f7266df39 100644 --- a/gateways/web/LY.MicroService.ApiGateway/InternalApiGatewayModule.cs +++ b/gateways/web/LY.MicroService.ApiGateway/InternalApiGatewayModule.cs @@ -56,13 +56,13 @@ public class InternalApiGatewayModule : AbpModule Configure(options => { options.Aggregator.ConfigurationUrl.ClientName = "_Abp_Application_Configuration"; - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30010")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30015")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30020")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30025")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30030")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30035")); - options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://10.21.15.28:30040")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30010")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30015")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30020")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30025")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30030")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30035")); + options.Aggregator.ConfigurationUrl.GetUrls.AddIfNotContains(new RequestUrl("http://localhost:30040")); }); context.Services.AddAbpSwaggerGenWithOAuth( From c8460a0c65b929a9cbccd105efee43b65926a86d Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 25 Apr 2026 09:14:06 +0800 Subject: [PATCH 2/2] feat: update workflow --- .github/workflows/build.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- .../LINGYUN.MicroService.SingleProject.slnx | 1 - ...rviceApplicationsSingleModule.Configure.cs | 27 ++- build/build-aspnetcore-common.ps1 | 14 +- ...NGYUN.MicroService.Internal.ApiGateway.sln | 202 ------------------ 7 files changed, 23 insertions(+), 227 deletions(-) delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.sln diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d6e579dc..c058cfb1b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: - "**.csproj" env: - DOTNET_VERSION: "10.0.102" + DOTNET_VERSION: "10.0.201" jobs: build: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a575da375..f38fcb2d5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [ main ] env: - DOTNET_VERSION: "10.0.102" + DOTNET_VERSION: "10.0.201" jobs: publish: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fef52cd57..2af9bb3f9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,4 +14,4 @@ jobs: with: repo_token: "${{ secrets.GITHUB_TOKEN }}" prerelease: false - automatic_release_tag: "10.0.2" + automatic_release_tag: "10.2.0" diff --git a/aspnet-core/LINGYUN.MicroService.SingleProject.slnx b/aspnet-core/LINGYUN.MicroService.SingleProject.slnx index a05fcda87..269419841 100644 --- a/aspnet-core/LINGYUN.MicroService.SingleProject.slnx +++ b/aspnet-core/LINGYUN.MicroService.SingleProject.slnx @@ -150,7 +150,6 @@ - diff --git a/aspnet-core/services/LY.AIO.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs b/aspnet-core/services/LY.AIO.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs index a1c86c618..0e15f1592 100644 --- a/aspnet-core/services/LY.AIO.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs +++ b/aspnet-core/services/LY.AIO.Applications.Single/MicroServiceApplicationsSingleModule.Configure.cs @@ -42,12 +42,14 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.Caching.StackExchangeRedis; using Microsoft.IdentityModel.Logging; +using Microsoft.OpenApi; using Microsoft.OpenApi.Models; using MiniExcelLibs.Attributes; using OpenIddict.Server; using OpenIddict.Server.AspNetCore; using Quartz; using StackExchange.Redis; +using Swashbuckle.AspNetCore.SwaggerGen; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text.Encodings.Web; @@ -690,7 +692,20 @@ public partial class MicroServiceApplicationsSingleModule options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "App API", Version = "v1" }); - options.DocInclusionPredicate((docName, description) => true); + options.DocInclusionPredicate((docName, description) => + { + if (description.TryGetMethodInfo(out var methodInfo)) + { + var controllerNamespace = methodInfo.DeclaringType?.Namespace; + if (controllerNamespace?.StartsWith("Elsa") == true) + { + // TODO: Elsa 2.x 使用 Swashbuckle 6.x版本不兼容, 忽略Swagger文档 + return false; + } + } + + return true; + }); options.CustomSchemaIds(type => type.FullName); options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { @@ -701,16 +716,6 @@ public partial class MicroServiceApplicationsSingleModule Type = SecuritySchemeType.Http, BearerFormat = "JWT" }); - options.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } - }, - new string[] { } - } - }); options.OperationFilter(); }); } diff --git a/build/build-aspnetcore-common.ps1 b/build/build-aspnetcore-common.ps1 index dde7e0232..1019e0dfa 100644 --- a/build/build-aspnetcore-common.ps1 +++ b/build/build-aspnetcore-common.ps1 @@ -8,8 +8,6 @@ $rootFolder = (Get-Item -Path "./" -Verbose).FullName $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/"; Service = "admin-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.AuthServer/"; Service = "auth-server" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/"; Service = "auth-service" } -$serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.identityServer/"; Service = "identity-server" } -$serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/"; Service = "identity-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/"; Service = "localization-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/"; Service = "platform-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/"; Service = "message-service" } @@ -18,16 +16,12 @@ $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY. $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/"; Service = "workflow-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.WechatManagement.HttpApi.Host/"; Service = "wechat-service" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.Gateway/"; Service = "internal-apigateway" } +$serviceArray += [PsObject]@{ Path = $rootFolder + "/../gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.OpenApi.Gateway/"; Service = "openapi-apigateway" } [PsObject[]]$solutionArray = @() -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.All.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.Common.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.TaskManagement.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.WebhooksManagement.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.Workflow.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.SingleProject.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.WechatManagement.sln" } -$solutionArray += [PsObject]@{ File = $rootFolder + "/../gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.sln" } +$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.All.slnx" } +$solutionArray += [PsObject]@{ File = $rootFolder + "/../aspnet-core/LINGYUN.MicroService.SingleProject.slnx" } +$solutionArray += [PsObject]@{ File = $rootFolder + "/../gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.slnx" } [PsObject[]]$migrationArray = @() $migrationArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/migrations/LY.MicroService.Platform.DbMigrator" } diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.sln b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.sln deleted file mode 100644 index df6917a3b..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/LINGYUN.MicroService.Internal.ApiGateway.sln +++ /dev/null @@ -1,202 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31919.166 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.MicroService.Internal.ApiGateway", "src\LINGYUN.MicroService.Internal.ApiGateway\LINGYUN.MicroService.Internal.ApiGateway.csproj", "{00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E8067AED-2B6E-4134-AAF8-9101457D709A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F33DFD2B-F97E-4169-A68C-7B3DD681A5F7}" - ProjectSection(SolutionItems) = preProject - ..\..\..\common.props = ..\..\..\common.props - ..\..\..\common.secrets.props = ..\..\..\common.secrets.props - ..\..\..\configureawait.props = ..\..\..\configureawait.props - ..\..\..\Directory.Build.props = ..\..\..\Directory.Build.props - ..\..\..\Directory.Packages.props = ..\..\..\Directory.Packages.props - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "framework", "framework", "{80E45092-1181-456D-B88C-7DDCB7F16368}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "auditing", "auditing", "{F05E560E-0126-4949-9092-B1490A4E1199}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "logging", "logging", "{3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "localization", "localization", "{7D797267-1682-4D9D-971B-C5079AD4AEDE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "elasticsearch", "elasticsearch", "{66DE14AB-D2B5-438E-AB6B-0B0674BEEBA1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Elasticsearch", "..\..\..\aspnet-core\framework\elasticsearch\LINGYUN.Abp.Elasticsearch\LINGYUN.Abp.Elasticsearch.csproj", "{15A60DC9-B5F5-4F72-A97D-BECE5722907F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging", "..\..\..\aspnet-core\framework\auditing\LINGYUN.Abp.AuditLogging\LINGYUN.Abp.AuditLogging.csproj", "{84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AuditLogging.Elasticsearch", "..\..\..\aspnet-core\framework\auditing\LINGYUN.Abp.AuditLogging.Elasticsearch\LINGYUN.Abp.AuditLogging.Elasticsearch.csproj", "{90F6E585-768C-42F1-B5B7-78716A2C515D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.CultureMap", "..\..\..\aspnet-core\framework\localization\LINGYUN.Abp.Localization.CultureMap\LINGYUN.Abp.Localization.CultureMap.csproj", "{782A9F27-BE5D-422F-B475-DAC6E9A0C160}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.Application", "..\..\..\aspnet-core\framework\logging\LINGYUN.Abp.Serilog.Enrichers.Application\LINGYUN.Abp.Serilog.Enrichers.Application.csproj", "{177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Serilog.Enrichers.UniqueId", "..\..\..\aspnet-core\framework\logging\LINGYUN.Abp.Serilog.Enrichers.UniqueId\LINGYUN.Abp.Serilog.Enrichers.UniqueId.csproj", "{13EDA39A-A859-447A-A6A6-056181B66EDC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{EE01F3C2-14D1-4089-8C02-00C8083D9795}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IdGenerator", "..\..\..\aspnet-core\framework\common\LINGYUN.Abp.IdGenerator\LINGYUN.Abp.IdGenerator.csproj", "{30A639F6-08C2-4250-A79E-9D766600F7F0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.MicroService.Internal.Gateway", "src\LINGYUN.MicroService.Internal.Gateway\LINGYUN.MicroService.Internal.Gateway.csproj", "{09D71EFB-D64F-4F30-BEDB-4802B6166447}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Mvc.Wrapper", "..\..\..\aspnet-core\framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj", "{442966AC-97E8-4E08-9E6F-E75F0FD2BB69}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Wrapper", "..\..\..\aspnet-core\framework\common\LINGYUN.Abp.Wrapper\LINGYUN.Abp.Wrapper.csproj", "{007A5DE4-4F4C-4018-A304-8BD794D91A69}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.AspNetCore.Wrapper", "..\..\..\aspnet-core\framework\common\LINGYUN.Abp.AspNetCore.Wrapper\LINGYUN.Abp.AspNetCore.Wrapper.csproj", "{3F3CA517-8A22-4B85-A2E8-3BB90B99A158}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging.Serilog.Elasticsearch", "..\..\..\aspnet-core\framework\logging\LINGYUN.Abp.Logging.Serilog.Elasticsearch\LINGYUN.Abp.Logging.Serilog.Elasticsearch.csproj", "{4AF54F2B-D650-4B4D-AD05-2AA882DD2A49}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Logging", "..\..\..\aspnet-core\framework\logging\LINGYUN.Abp.Logging\LINGYUN.Abp.Logging.csproj", "{745E278B-AEDC-49CE-872E-FAEB6BF195B1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "open-api", "open-api", "{BA1D1A21-61AD-4674-A5FB-AE4FF61E9CC1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi", "..\..\..\aspnet-core\framework\open-api\LINGYUN.Abp.OpenApi\LINGYUN.Abp.OpenApi.csproj", "{F4B22A53-9483-4906-86F9-2A23E6D46CE9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.OpenApi.Authorization", "..\..\..\aspnet-core\framework\open-api\LINGYUN.Abp.OpenApi.Authorization\LINGYUN.Abp.OpenApi.Authorization.csproj", "{7F3CC521-FE9B-4E52-BF52-93C41E2F34ED}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.MicroService.OpenApi.Gateway", "src\LINGYUN.MicroService.OpenApi.Gateway\LINGYUN.MicroService.OpenApi.Gateway.csproj", "{433D2E8C-E15A-47BC-AB49-25307C05E849}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{667EE009-DA55-4F87-9A07-F9DE76AF6EBF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session", "..\..\..\aspnet-core\modules\identity\LINGYUN.Abp.Identity.Session\LINGYUN.Abp.Identity.Session.csproj", "{F6CA275D-5843-4349-851C-B56A3A74F545}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.Session.AspNetCore", "..\..\..\aspnet-core\modules\identity\LINGYUN.Abp.Identity.Session.AspNetCore\LINGYUN.Abp.Identity.Session.AspNetCore.csproj", "{80965673-2598-44E6-98C7-CCF8F0D4A4A0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.IP2Region", "..\..\..\aspnet-core\framework\common\LINGYUN.Abp.IP2Region\LINGYUN.Abp.IP2Region.csproj", "{85CAA0EF-883D-469B-BBEC-735758A3FC9B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenApi.Sdk", "..\..\..\aspnet-core\framework\open-api\OpenApi.Sdk\OpenApi.Sdk.csproj", "{551D8B82-B619-4846-BC3B-E883BA312D9A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Release|Any CPU.Build.0 = Release|Any CPU - {15A60DC9-B5F5-4F72-A97D-BECE5722907F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {15A60DC9-B5F5-4F72-A97D-BECE5722907F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {15A60DC9-B5F5-4F72-A97D-BECE5722907F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {15A60DC9-B5F5-4F72-A97D-BECE5722907F}.Release|Any CPU.Build.0 = Release|Any CPU - {84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8}.Release|Any CPU.Build.0 = Release|Any CPU - {90F6E585-768C-42F1-B5B7-78716A2C515D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90F6E585-768C-42F1-B5B7-78716A2C515D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90F6E585-768C-42F1-B5B7-78716A2C515D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90F6E585-768C-42F1-B5B7-78716A2C515D}.Release|Any CPU.Build.0 = Release|Any CPU - {782A9F27-BE5D-422F-B475-DAC6E9A0C160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {782A9F27-BE5D-422F-B475-DAC6E9A0C160}.Debug|Any CPU.Build.0 = Debug|Any CPU - {782A9F27-BE5D-422F-B475-DAC6E9A0C160}.Release|Any CPU.ActiveCfg = Release|Any CPU - {782A9F27-BE5D-422F-B475-DAC6E9A0C160}.Release|Any CPU.Build.0 = Release|Any CPU - {177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC}.Release|Any CPU.Build.0 = Release|Any CPU - {13EDA39A-A859-447A-A6A6-056181B66EDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {13EDA39A-A859-447A-A6A6-056181B66EDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {13EDA39A-A859-447A-A6A6-056181B66EDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {13EDA39A-A859-447A-A6A6-056181B66EDC}.Release|Any CPU.Build.0 = Release|Any CPU - {30A639F6-08C2-4250-A79E-9D766600F7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {30A639F6-08C2-4250-A79E-9D766600F7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {30A639F6-08C2-4250-A79E-9D766600F7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {30A639F6-08C2-4250-A79E-9D766600F7F0}.Release|Any CPU.Build.0 = Release|Any CPU - {09D71EFB-D64F-4F30-BEDB-4802B6166447}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {09D71EFB-D64F-4F30-BEDB-4802B6166447}.Debug|Any CPU.Build.0 = Debug|Any CPU - {09D71EFB-D64F-4F30-BEDB-4802B6166447}.Release|Any CPU.ActiveCfg = Release|Any CPU - {09D71EFB-D64F-4F30-BEDB-4802B6166447}.Release|Any CPU.Build.0 = Release|Any CPU - {442966AC-97E8-4E08-9E6F-E75F0FD2BB69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {442966AC-97E8-4E08-9E6F-E75F0FD2BB69}.Debug|Any CPU.Build.0 = Debug|Any CPU - {442966AC-97E8-4E08-9E6F-E75F0FD2BB69}.Release|Any CPU.ActiveCfg = Release|Any CPU - {442966AC-97E8-4E08-9E6F-E75F0FD2BB69}.Release|Any CPU.Build.0 = Release|Any CPU - {007A5DE4-4F4C-4018-A304-8BD794D91A69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {007A5DE4-4F4C-4018-A304-8BD794D91A69}.Debug|Any CPU.Build.0 = Debug|Any CPU - {007A5DE4-4F4C-4018-A304-8BD794D91A69}.Release|Any CPU.ActiveCfg = Release|Any CPU - {007A5DE4-4F4C-4018-A304-8BD794D91A69}.Release|Any CPU.Build.0 = Release|Any CPU - {3F3CA517-8A22-4B85-A2E8-3BB90B99A158}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3F3CA517-8A22-4B85-A2E8-3BB90B99A158}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3F3CA517-8A22-4B85-A2E8-3BB90B99A158}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3F3CA517-8A22-4B85-A2E8-3BB90B99A158}.Release|Any CPU.Build.0 = Release|Any CPU - {4AF54F2B-D650-4B4D-AD05-2AA882DD2A49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4AF54F2B-D650-4B4D-AD05-2AA882DD2A49}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4AF54F2B-D650-4B4D-AD05-2AA882DD2A49}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4AF54F2B-D650-4B4D-AD05-2AA882DD2A49}.Release|Any CPU.Build.0 = Release|Any CPU - {745E278B-AEDC-49CE-872E-FAEB6BF195B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {745E278B-AEDC-49CE-872E-FAEB6BF195B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {745E278B-AEDC-49CE-872E-FAEB6BF195B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {745E278B-AEDC-49CE-872E-FAEB6BF195B1}.Release|Any CPU.Build.0 = Release|Any CPU - {F4B22A53-9483-4906-86F9-2A23E6D46CE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4B22A53-9483-4906-86F9-2A23E6D46CE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4B22A53-9483-4906-86F9-2A23E6D46CE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4B22A53-9483-4906-86F9-2A23E6D46CE9}.Release|Any CPU.Build.0 = Release|Any CPU - {7F3CC521-FE9B-4E52-BF52-93C41E2F34ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F3CC521-FE9B-4E52-BF52-93C41E2F34ED}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F3CC521-FE9B-4E52-BF52-93C41E2F34ED}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F3CC521-FE9B-4E52-BF52-93C41E2F34ED}.Release|Any CPU.Build.0 = Release|Any CPU - {433D2E8C-E15A-47BC-AB49-25307C05E849}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {433D2E8C-E15A-47BC-AB49-25307C05E849}.Debug|Any CPU.Build.0 = Debug|Any CPU - {433D2E8C-E15A-47BC-AB49-25307C05E849}.Release|Any CPU.ActiveCfg = Release|Any CPU - {433D2E8C-E15A-47BC-AB49-25307C05E849}.Release|Any CPU.Build.0 = Release|Any CPU - {F6CA275D-5843-4349-851C-B56A3A74F545}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F6CA275D-5843-4349-851C-B56A3A74F545}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F6CA275D-5843-4349-851C-B56A3A74F545}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F6CA275D-5843-4349-851C-B56A3A74F545}.Release|Any CPU.Build.0 = Release|Any CPU - {80965673-2598-44E6-98C7-CCF8F0D4A4A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80965673-2598-44E6-98C7-CCF8F0D4A4A0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80965673-2598-44E6-98C7-CCF8F0D4A4A0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80965673-2598-44E6-98C7-CCF8F0D4A4A0}.Release|Any CPU.Build.0 = Release|Any CPU - {85CAA0EF-883D-469B-BBEC-735758A3FC9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85CAA0EF-883D-469B-BBEC-735758A3FC9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85CAA0EF-883D-469B-BBEC-735758A3FC9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85CAA0EF-883D-469B-BBEC-735758A3FC9B}.Release|Any CPU.Build.0 = Release|Any CPU - {551D8B82-B619-4846-BC3B-E883BA312D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {551D8B82-B619-4846-BC3B-E883BA312D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {551D8B82-B619-4846-BC3B-E883BA312D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {551D8B82-B619-4846-BC3B-E883BA312D9A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2} = {E8067AED-2B6E-4134-AAF8-9101457D709A} - {F05E560E-0126-4949-9092-B1490A4E1199} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {7D797267-1682-4D9D-971B-C5079AD4AEDE} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {66DE14AB-D2B5-438E-AB6B-0B0674BEEBA1} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {15A60DC9-B5F5-4F72-A97D-BECE5722907F} = {66DE14AB-D2B5-438E-AB6B-0B0674BEEBA1} - {84F2D49C-4994-4E8E-B3BC-6C8DD34CEEE8} = {F05E560E-0126-4949-9092-B1490A4E1199} - {90F6E585-768C-42F1-B5B7-78716A2C515D} = {F05E560E-0126-4949-9092-B1490A4E1199} - {782A9F27-BE5D-422F-B475-DAC6E9A0C160} = {7D797267-1682-4D9D-971B-C5079AD4AEDE} - {177BB8EB-7BBB-46D0-B7EC-01E176F7CEAC} = {3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63} - {13EDA39A-A859-447A-A6A6-056181B66EDC} = {3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63} - {EE01F3C2-14D1-4089-8C02-00C8083D9795} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {30A639F6-08C2-4250-A79E-9D766600F7F0} = {EE01F3C2-14D1-4089-8C02-00C8083D9795} - {09D71EFB-D64F-4F30-BEDB-4802B6166447} = {E8067AED-2B6E-4134-AAF8-9101457D709A} - {442966AC-97E8-4E08-9E6F-E75F0FD2BB69} = {EE01F3C2-14D1-4089-8C02-00C8083D9795} - {007A5DE4-4F4C-4018-A304-8BD794D91A69} = {EE01F3C2-14D1-4089-8C02-00C8083D9795} - {3F3CA517-8A22-4B85-A2E8-3BB90B99A158} = {EE01F3C2-14D1-4089-8C02-00C8083D9795} - {4AF54F2B-D650-4B4D-AD05-2AA882DD2A49} = {3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63} - {745E278B-AEDC-49CE-872E-FAEB6BF195B1} = {3B460BD3-26EE-4BAC-A8B8-CFDF5F108A63} - {BA1D1A21-61AD-4674-A5FB-AE4FF61E9CC1} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {F4B22A53-9483-4906-86F9-2A23E6D46CE9} = {BA1D1A21-61AD-4674-A5FB-AE4FF61E9CC1} - {7F3CC521-FE9B-4E52-BF52-93C41E2F34ED} = {BA1D1A21-61AD-4674-A5FB-AE4FF61E9CC1} - {433D2E8C-E15A-47BC-AB49-25307C05E849} = {E8067AED-2B6E-4134-AAF8-9101457D709A} - {667EE009-DA55-4F87-9A07-F9DE76AF6EBF} = {80E45092-1181-456D-B88C-7DDCB7F16368} - {F6CA275D-5843-4349-851C-B56A3A74F545} = {667EE009-DA55-4F87-9A07-F9DE76AF6EBF} - {80965673-2598-44E6-98C7-CCF8F0D4A4A0} = {667EE009-DA55-4F87-9A07-F9DE76AF6EBF} - {85CAA0EF-883D-469B-BBEC-735758A3FC9B} = {EE01F3C2-14D1-4089-8C02-00C8083D9795} - {551D8B82-B619-4846-BC3B-E883BA312D9A} = {BA1D1A21-61AD-4674-A5FB-AE4FF61E9CC1} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {972464AB-1B23-4D87-89A2-13271E1873B9} - EndGlobalSection -EndGlobal