diff --git a/apps/vue/run.bat b/apps/vue/run.bat index b896a088e..b7538db13 100644 --- a/apps/vue/run.bat +++ b/apps/vue/run.bat @@ -1 +1,2 @@ +title abp-next-admin-vben npm run dev \ No newline at end of file diff --git a/apps/vue/src/api/localization/languages.ts b/apps/vue/src/api/localization/languages.ts index e5ada0d1f..87ac273ae 100644 --- a/apps/vue/src/api/localization/languages.ts +++ b/apps/vue/src/api/localization/languages.ts @@ -1,5 +1,5 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { LanguageListResult, LanguageCreate, LanguageUpdate, Language } from './model/languagesModel'; +import { LanguageListResult, LanguageCreate, LanguageUpdate, Language, GetLanguageWithFilter } from './model/languagesModel'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Language'; @@ -8,9 +8,10 @@ enum Api { GetList = '/api/abp/localization/languages', } -export const getList = () => { +export const getList = (input: GetLanguageWithFilter) => { return defAbpHttp.get({ url: Api.GetList, + params: input, }); }; diff --git a/apps/vue/src/api/localization/model/languagesModel.ts b/apps/vue/src/api/localization/model/languagesModel.ts index 546054993..d31cbafe0 100644 --- a/apps/vue/src/api/localization/model/languagesModel.ts +++ b/apps/vue/src/api/localization/model/languagesModel.ts @@ -26,3 +26,7 @@ export interface LanguagePagedResult extends PagedResultDto {} export interface GetLanguagePagedRequest extends PagedAndSortedResultRequestDto { filter?: string; } + +export interface GetLanguageWithFilter { + filter?: string; +} diff --git a/apps/vue/src/api/localization/model/resourcesModel.ts b/apps/vue/src/api/localization/model/resourcesModel.ts index c05f6ece2..b2ae0c283 100644 --- a/apps/vue/src/api/localization/model/resourcesModel.ts +++ b/apps/vue/src/api/localization/model/resourcesModel.ts @@ -26,3 +26,7 @@ export interface ResourcePagedResult extends PagedResultDto {} export interface GetResourcePagedRequest extends PagedAndSortedResultRequestDto { filter?: string; } + +export interface GetResourceWithFilter { + filter?: string; +} \ No newline at end of file diff --git a/apps/vue/src/api/localization/resources.ts b/apps/vue/src/api/localization/resources.ts index 32b4d497a..9c87ef2fd 100644 --- a/apps/vue/src/api/localization/resources.ts +++ b/apps/vue/src/api/localization/resources.ts @@ -1,5 +1,5 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate } from './model/resourcesModel'; +import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetResourceWithFilter } from './model/resourcesModel'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Resource'; @@ -8,9 +8,10 @@ enum Api { GetList = '/api/abp/localization/resources', } -export const getList = () => { +export const getList = (input: GetResourceWithFilter) => { return defAbpHttp.get({ url: Api.GetList, + params: input, }); }; diff --git a/apps/vue/src/utils/http/axios/index.ts b/apps/vue/src/utils/http/axios/index.ts index 19227be17..8dba6964d 100644 --- a/apps/vue/src/utils/http/axios/index.ts +++ b/apps/vue/src/utils/http/axios/index.ts @@ -136,6 +136,9 @@ const transform: AxiosTransform = { if ((config as Recordable)?.requestOptions?.withAcceptLanguage !== false) { const localeStore = useLocaleStoreWithOut(); config.headers['Accept-Language'] = localeStore.getLocale; + if (config.headers['Accept-Language'] == 'zh_CN') { + config.headers['Accept-Language'] = 'zh-Hans'; + } } return config; }, diff --git a/apps/vue/src/views/localization/languages/components/LanguageTable.vue b/apps/vue/src/views/localization/languages/components/LanguageTable.vue index 272cec89a..7a2682155 100644 --- a/apps/vue/src/views/localization/languages/components/LanguageTable.vue +++ b/apps/vue/src/views/localization/languages/components/LanguageTable.vue @@ -89,8 +89,8 @@ function fetchLanguages() { const form = getForm(); - return form.validate().then(() => { - return getList().then((res) => { + return form.validate().then((input) => { + return getList(input).then((res) => { setTableData(res.items); }); }); diff --git a/apps/vue/src/views/localization/resources/components/ResourceTable.vue b/apps/vue/src/views/localization/resources/components/ResourceTable.vue index 8e634dbe0..b4ef0dc49 100644 --- a/apps/vue/src/views/localization/resources/components/ResourceTable.vue +++ b/apps/vue/src/views/localization/resources/components/ResourceTable.vue @@ -47,7 +47,9 @@ import { getList, GetAsyncByName, DeleteAsyncByName } from '/@/api/localization/resources'; import { Resource } from '/@/api/localization/model/resourcesModel'; import { getDataColumns } from './TableData'; + import { reactive } from 'vue'; import ResourceModal from './ResourceModal.vue'; + const { createConfirm, createMessage } = useMessage(); const { L } = useLocalization(['LocalizationManagement', 'AbpLocalization', 'AbpUi']); @@ -72,7 +74,7 @@ component: 'Input', label: L('Search'), colProps: { span: 24 }, - defaultValue: '', + defaultValue: '' }, ], submitFunc: fetchResources, @@ -87,8 +89,8 @@ function fetchResources() { const form = getForm(); - return form.validate().then(() => { - return getList().then((res) => { + return form.validate().then((input) => { + return getList(input).then((res) => { setTableData(res.items); }); }); diff --git a/apps/vue/src/views/messages/notifications/datas/ModalData.ts b/apps/vue/src/views/messages/notifications/datas/ModalData.ts index 3856bd76e..607031da1 100644 --- a/apps/vue/src/views/messages/notifications/datas/ModalData.ts +++ b/apps/vue/src/views/messages/notifications/datas/ModalData.ts @@ -2,7 +2,7 @@ import { useLocalization } from '/@/hooks/abp/useLocalization'; import { FormProps } from '/@/components/Form'; import { NotificationReadState } from '/@/api/messages/model/notificationsModel'; -const { L } = useLocalization(['AbpMessageService', 'AbpUi']); +const { L } = useLocalization(['AbpMessageService', 'Notifications', 'AbpUi']); export function getSearchFormSchemas(): Partial { return { diff --git a/apps/vue/src/views/messages/notifications/datas/TableData.ts b/apps/vue/src/views/messages/notifications/datas/TableData.ts index ade23fcd3..b01219011 100644 --- a/apps/vue/src/views/messages/notifications/datas/TableData.ts +++ b/apps/vue/src/views/messages/notifications/datas/TableData.ts @@ -2,7 +2,7 @@ import { useLocalization } from '/@/hooks/abp/useLocalization'; import { BasicColumn } from '/@/components/Table'; import { formatToDateTime } from '/@/utils/dateUtil'; -const { L } = useLocalization('AbpMessageService'); +const { L } = useLocalization('Notifications'); export function getDataColumns(): BasicColumn[] { return [ diff --git a/apps/vue/src/views/saas/tenant/components/TenantTable.vue b/apps/vue/src/views/saas/tenant/components/TenantTable.vue index c0b86bf40..256dd9ed4 100644 --- a/apps/vue/src/views/saas/tenant/components/TenantTable.vue +++ b/apps/vue/src/views/saas/tenant/components/TenantTable.vue @@ -73,7 +73,7 @@ import TenantModal from './TenantModal.vue'; import ConnectionTableModal from './ConnectionTableModal.vue'; - const { L } = useLocalization(['AbpSaas', 'AbpFeatureManagement']); + const { L } = useLocalization(['AbpSaas', 'AbpFeatureManagement','WeChat']); const { hasPermission } = usePermission(); const tableElRef = ref>(null); const [registerConnectModal, { openModal: openConnectModal }] = useModal(); diff --git a/aspnet-core/migrate-database.bat b/aspnet-core/migrate-database.bat index 4ce04c22f..03645f8e9 100644 --- a/aspnet-core/migrate-database.bat +++ b/aspnet-core/migrate-database.bat @@ -1,19 +1,12 @@ @echo off cls -set stime=8 -start .\migrate-db-cmd.bat LY.MicroService.BackendAdmin.DbMigrator admin --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.AuthServer.DbMigrator auth-server --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.IdentityServer.DbMigrator identityserver4-admin --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.LocalizationManagement.DbMigrator localization --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.Platform.DbMigrator platform --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.RealtimeMessage.DbMigrator messages --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.TaskManagement.DbMigrator task-management --run -ping -n %stime% 127.1 >nul -start .\migrate-db-cmd.bat LY.MicroService.WebhooksManagement.DbMigrator webhooks-management --run +call .\migrate-db-cmd.bat LY.MicroService.BackendAdmin.DbMigrator admin --run +call .\migrate-db-cmd.bat LY.MicroService.AuthServer.DbMigrator auth-server --run +call .\migrate-db-cmd.bat LY.MicroService.IdentityServer.DbMigrator identityserver4-admin --run +call .\migrate-db-cmd.bat LY.MicroService.LocalizationManagement.DbMigrator localization --run +call .\migrate-db-cmd.bat LY.MicroService.Platform.DbMigrator platform --run +call .\migrate-db-cmd.bat LY.MicroService.RealtimeMessage.DbMigrator messages --run +call .\migrate-db-cmd.bat LY.MicroService.TaskManagement.DbMigrator task-management --run +call .\migrate-db-cmd.bat LY.MicroService.WebhooksManagement.DbMigrator webhooks-management --run +pause \ No newline at end of file diff --git a/aspnet-core/migrate-db-cmd.bat b/aspnet-core/migrate-db-cmd.bat index 87b9014f6..c0200d390 100644 --- a/aspnet-core/migrate-db-cmd.bat +++ b/aspnet-core/migrate-db-cmd.bat @@ -1,10 +1,9 @@ @echo off -cls chcp 65001 title %2 -@echo %2 migration running +@echo %2 migrating cd .\migrations\%1 @@ -15,14 +14,18 @@ if '%3' equ '' goto run exit :run -dotnet run -pause -exit +dotnet run +goto end :restore dotnet restore -exit +goto end :efu dotnet ef databse update -exit \ No newline at end of file +goto end + +:end +cd ..\..\ +@echo %2 migrated +@echo -------- diff --git a/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Hubs/MessagesHub.cs b/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Hubs/MessagesHub.cs index b6efd868e..ecfffbfa1 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Hubs/MessagesHub.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Hubs/MessagesHub.cs @@ -41,6 +41,9 @@ namespace LINGYUN.Abp.IM.SignalR.Hubs protected IUserGroupStore UserGroupStore => LazyServiceProvider.LazyGetRequiredService(); + protected AbpExceptionHandlingOptions ExceptionHandlingOptions => LazyServiceProvider.LazyGetRequiredService>().Value; + + public override async Task OnConnectedAsync() { await base.OnConnectedAsync(); @@ -167,8 +170,8 @@ namespace LINGYUN.Abp.IM.SignalR.Hubs { var errorInfo = ErrorInfoConverter.Convert(ex, options => { - options.SendExceptionsDetailsToClients = false; - options.SendStackTraceToClients = false; + options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients; + options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients; }); await SendMessageAsync( @@ -230,8 +233,8 @@ namespace LINGYUN.Abp.IM.SignalR.Hubs { var errorInfo = ErrorInfoConverter.Convert(ex, options => { - options.SendExceptionsDetailsToClients = false; - options.SendStackTraceToClients = false; + options.SendExceptionsDetailsToClients = ExceptionHandlingOptions.SendExceptionsDetailsToClients; + options.SendStackTraceToClients = ExceptionHandlingOptions.SendStackTraceToClients; }); if (!chatMessage.GroupId.IsNullOrWhiteSpace()) { diff --git a/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Messages/SignalRMessageSenderProvider.cs b/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Messages/SignalRMessageSenderProvider.cs index 7959a17e9..e6d315f88 100644 --- a/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Messages/SignalRMessageSenderProvider.cs +++ b/aspnet-core/modules/common/LINGYUN.Abp.IM.SignalR/LINGYUN/Abp/IM/SignalR/Messages/SignalRMessageSenderProvider.cs @@ -19,14 +19,17 @@ namespace LINGYUN.Abp.IM.SignalR.Messages private readonly AbpIMSignalROptions _options; private readonly IHubContext _hubContext; + private readonly AbpExceptionHandlingOptions _exceptionHandlingOptions; public SignalRMessageSenderProvider( IHubContext hubContext, IAbpLazyServiceProvider serviceProvider, - IOptions options) + IOptions options, + IOptions exceptionHandlingOptions) : base(serviceProvider) { _options = options.Value; + _exceptionHandlingOptions = exceptionHandlingOptions.Value; _hubContext = hubContext; } @@ -99,8 +102,8 @@ namespace LINGYUN.Abp.IM.SignalR.Messages { var errorInfo = errorInfoConverter.Convert(ex, options => { - options.SendExceptionsDetailsToClients = false; - options.SendStackTraceToClients = false; + options.SendExceptionsDetailsToClients = _exceptionHandlingOptions.SendExceptionsDetailsToClients; + options.SendStackTraceToClients = _exceptionHandlingOptions.SendStackTraceToClients; }); if (!chatMessage.GroupId.IsNullOrWhiteSpace()) { diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs new file mode 100644 index 000000000..8f9ba08c5 --- /dev/null +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.AspNetCore.Mvc.Localization +{ + public class GetLanguageWithFilterDto + { + public string Filter { get; set; } + } +} diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs new file mode 100644 index 000000000..5bf1fdf17 --- /dev/null +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.AspNetCore.Mvc.Localization +{ + public class GetResourceWithFilterDto + { + public string Filter { get; set; } + } +} diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs index e120cc3ac..de63709fb 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ILanguageAppService.cs @@ -6,6 +6,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { public interface ILanguageAppService : IApplicationService { - Task> GetListAsync(); + Task> GetListAsync(GetLanguageWithFilterDto input); } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs index bcfc40d46..307a1bcd4 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/IResourceAppService.cs @@ -6,6 +6,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { public interface IResourceAppService : IApplicationService { - Task> GetListAsync(); + Task> GetListAsync(GetResourceWithFilterDto input); } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs index fe8a277ef..e55e923fe 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageAppService.cs @@ -1,9 +1,17 @@ using Microsoft.AspNetCore.Authorization; -using System.Linq; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.Localization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; +using System.Threading.Tasks; +using Volo.Abp; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Localization; +using Volo.Abp.Localization.External; namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { @@ -16,9 +24,12 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization _languageProvider = languageProvider; } - public async virtual Task> GetListAsync() + public async virtual Task> GetListAsync(GetLanguageWithFilterDto input) { - var languages = await _languageProvider.GetLanguagesAsync(); + var languages = (await _languageProvider.GetLanguagesAsync()) + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.CultureName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0 + || x.UiCultureName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0 + || x.DisplayName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0); return new ListResultDto( languages.Select(l => new LanguageDto diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs index 6d02e8577..b6acc0d0f 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/LanguageController.cs @@ -19,9 +19,9 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization } [HttpGet] - public virtual Task> GetListAsync() + public virtual Task> GetListAsync(GetLanguageWithFilterDto input) { - return _service.GetListAsync(); + return _service.GetListAsync(input); } } } diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs index 9e939d2fd..79e11da13 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceAppService.cs @@ -1,6 +1,12 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; -using System.Linq; +using Microsoft.Extensions.Localization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; +using System.Threading.Tasks; +using Volo.Abp; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -23,12 +29,14 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization _externalLocalizationStore = externalLocalizationStore; } - public virtual async Task> GetListAsync() + public virtual async Task> GetListAsync(GetResourceWithFilterDto input) { - var externalResources = await _externalLocalizationStore.GetResourcesAsync(); + var externalResources = (await _externalLocalizationStore.GetResourcesAsync()) + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.ResourceName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0); var resources = _localizationOptions .Resources + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.IndexOf(input.Filter, StringComparison.OrdinalIgnoreCase) >= 0) .Select(x => new ResourceDto { Name = x.Value.ResourceName, diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs index d2cada1c3..1c2d951b5 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/ResourceController.cs @@ -19,9 +19,9 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization } [HttpGet] - public virtual Task> GetListAsync() + public virtual Task> GetListAsync(GetResourceWithFilterDto input) { - return _service.GetListAsync(); + return _service.GetListAsync(input); } } } diff --git a/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Domain/LINGYUN.Abp.Notifications.Domain.csproj b/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Domain/LINGYUN.Abp.Notifications.Domain.csproj index 33f71325d..d957d22ac 100644 --- a/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Domain/LINGYUN.Abp.Notifications.Domain.csproj +++ b/aspnet-core/modules/notifications/LINGYUN.Abp.Notifications.Domain/LINGYUN.Abp.Notifications.Domain.csproj @@ -8,10 +8,6 @@ - - - - diff --git a/aspnet-core/modules/open-api/LINGYUN.Abp.OpenApi.Authorization/LINGYUN/Abp/OpenApi/Authorization/OpenApiAuthorizationService.cs b/aspnet-core/modules/open-api/LINGYUN.Abp.OpenApi.Authorization/LINGYUN/Abp/OpenApi/Authorization/OpenApiAuthorizationService.cs index 1f4040831..6c905f03d 100644 --- a/aspnet-core/modules/open-api/LINGYUN.Abp.OpenApi.Authorization/LINGYUN/Abp/OpenApi/Authorization/OpenApiAuthorizationService.cs +++ b/aspnet-core/modules/open-api/LINGYUN.Abp.OpenApi.Authorization/LINGYUN/Abp/OpenApi/Authorization/OpenApiAuthorizationService.cs @@ -26,17 +26,20 @@ namespace LINGYUN.Abp.OpenApi.Authorization private readonly AbpOpenApiOptions _openApiOptions; private readonly ICurrentClient _currentClient; private readonly IWebClientInfoProvider _clientInfoProvider; + private readonly AbpExceptionHandlingOptions _exceptionHandlingOptions; public OpenApiAuthorizationService( IAppKeyStore appKeyStore, ICurrentClient currentClient, IWebClientInfoProvider clientInfoProvider, - IOptionsMonitor options) + IOptionsMonitor options, + IOptions exceptionHandlingOptions) { _appKeyStore = appKeyStore; _currentClient = currentClient; _clientInfoProvider = clientInfoProvider; _openApiOptions = options.CurrentValue; + _exceptionHandlingOptions = exceptionHandlingOptions.Value; } public async virtual Task AuthorizeAsync(HttpContext httpContext) @@ -177,8 +180,8 @@ namespace LINGYUN.Abp.OpenApi.Authorization var errorInfoConverter = context.RequestServices.GetRequiredService(); var errorInfo = errorInfoConverter.Convert(exception, options => { - options.SendExceptionsDetailsToClients = false; - options.SendStackTraceToClients = false; + options.SendExceptionsDetailsToClients = _exceptionHandlingOptions.SendExceptionsDetailsToClients; + options.SendStackTraceToClients = _exceptionHandlingOptions.SendStackTraceToClients; }); if (context.Request.CanAccept(MimeTypes.Application.Json) || diff --git a/aspnet-core/modules/rules/LINGYUN.Abp.Rules.RulesEngine/LINGYUN.Abp.Rules.RulesEngine.csproj b/aspnet-core/modules/rules/LINGYUN.Abp.Rules.RulesEngine/LINGYUN.Abp.Rules.RulesEngine.csproj index 7ac10a458..5d8afc7f4 100644 --- a/aspnet-core/modules/rules/LINGYUN.Abp.Rules.RulesEngine/LINGYUN.Abp.Rules.RulesEngine.csproj +++ b/aspnet-core/modules/rules/LINGYUN.Abp.Rules.RulesEngine/LINGYUN.Abp.Rules.RulesEngine.csproj @@ -8,10 +8,6 @@ - - - - diff --git a/aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN.Abp.TextTemplating.Application.csproj b/aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN.Abp.TextTemplating.Application.csproj index 026c358d2..7a8d8a78f 100644 --- a/aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN.Abp.TextTemplating.Application.csproj +++ b/aspnet-core/modules/text-templating/LINGYUN.Abp.TextTemplating.Application/LINGYUN.Abp.TextTemplating.Application.csproj @@ -8,10 +8,6 @@ - - - - diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj index 341e4212e..b612526ec 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN.Abp.TuiJuhe.csproj @@ -18,7 +18,7 @@ - + diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs index 2097e55f0..12bebe00e 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs @@ -2,7 +2,7 @@ using LINGYUN.Abp.TuiJuhe.Localization; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Caching; -using Volo.Abp.Json.Newtonsoft; +using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Settings; @@ -11,7 +11,7 @@ using Volo.Abp.VirtualFileSystem; namespace LINGYUN.Abp.TuiJuhe; [DependsOn( - typeof(AbpJsonNewtonsoftModule), + typeof(AbpJsonSystemTextJsonModule), typeof(AbpSettingsModule), typeof(AbpCachingModule), typeof(AbpFeaturesLimitValidationModule))] diff --git a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/TuiJuheResult.cs b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/TuiJuheResult.cs index 7bdd8cacb..41bec129f 100644 --- a/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/TuiJuheResult.cs +++ b/aspnet-core/modules/tui-juhe/LINGYUN.Abp.TuiJuhe/LINGYUN/Abp/TuiJuhe/TuiJuheResult.cs @@ -1,5 +1,5 @@ -using Newtonsoft.Json; -using System; +using System; +using System.Text.Json.Serialization; namespace LINGYUN.Abp.TuiJuhe; @@ -9,22 +9,22 @@ public class TuiJuheResult /// /// 状态码 /// - [JsonProperty("code")] + [JsonPropertyName("code")] public int Code { get; set; } /// /// 错误消息 /// - [JsonProperty("reason")] + [JsonPropertyName("reason")] public string Reason { get; set; } /// /// 响应数据 /// - [JsonProperty("result")] + [JsonPropertyName("result")] public TResult Result { get; set; } /// /// 响应参数 /// - [JsonProperty("params")] + [JsonPropertyName("params")] public TParam Params { get; set; } [JsonIgnore] diff --git a/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/Program.cs index 08d7ce10a..2fe0bca06 100644 --- a/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.AuthServer.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "IdentityServer.HttpApi.Host"; Log.Information("Starting IdentityServer.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.AuthServer/Program.cs b/aspnet-core/services/LY.MicroService.AuthServer/Program.cs index 4fb8e18ed..e3de2e687 100644 --- a/aspnet-core/services/LY.MicroService.AuthServer/Program.cs +++ b/aspnet-core/services/LY.MicroService.AuthServer/Program.cs @@ -18,8 +18,9 @@ public class Program { try { + Console.Title = "IdentityServer"; Log.Information("Starting IdentityServer."); - + var builder = WebApplication.CreateBuilder(args); builder.Host.AddAppSettingsSecretsJson() .UseAutofac() diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Program.cs index a00fed23c..43d5fd564 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "BackendAdmin.Host"; Log.Information("Starting BackendAdmin.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/Program.cs index ac8e4e347..7353577ec 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "LocalizationManagement.HttpApi.Host"; Log.Information("Starting LocalizationManagement.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs index 971eebe0e..bc2c3e591 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs @@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.Caching.StackExchangeRedis; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using StackExchange.Redis; using System; @@ -164,10 +165,11 @@ public partial class PlatformManagementHttpApiHostModule }); Configure(options => - { - // 是否发送错误详情 - options.SendExceptionsDetailsToClients = false; - }); + { + // 是否发送错误详情 + options.SendExceptionsDetailsToClients = true; + options.SendStackTraceToClients = true; + }); } private void ConfigureAuditing(IConfiguration configuration) diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/Program.cs index 023d63470..9db30c68d 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "PlatformManagement.HttpApi.Host"; Log.Information("Starting PlatformManagement.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/Program.cs index 819f9fba7..18b35fdf4 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/Program.cs @@ -18,8 +18,8 @@ public class Program { try { + Console.Title = "RealtimeMessage.HttpApi.Host"; Log.Information("Starting RealtimeMessage.HttpApi.Host."); - var builder = WebApplication.CreateBuilder(args); builder.Host.AddAppSettingsSecretsJson() .UseAutofac() diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Program.cs index c128e7393..f4035c672 100644 --- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "TaskManagement.HttpApi.Host"; Log.Information("Starting TaskManagement.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs index dc7648a30..c0565f942 100644 --- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs @@ -251,7 +251,7 @@ public partial class TaskManagementHttpApiHostModule services.AddSwaggerGen( options => { - options.SwaggerDoc("v1", new OpenApiInfo { Title = "WorkflowManagement API", Version = "v1" }); + options.SwaggerDoc("v1", new OpenApiInfo { Title = "TaskManagement API", Version = "v1" }); options.DocInclusionPredicate((docName, description) => true); options.CustomSchemaIds(type => type.FullName); options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme diff --git a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/Program.cs index 0b48c72e9..b895ee5d0 100644 --- a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "Web.Host"; Log.Information("Starting web host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.Configure.cs index c1511c529..56f607319 100644 --- a/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/WebhooksManagementHttpApiHostModule.Configure.cs @@ -2,6 +2,7 @@ using LINGYUN.Abp.BackgroundTasks; using LINGYUN.Abp.ExceptionHandling; using LINGYUN.Abp.ExceptionHandling.Emailing; +using LINGYUN.Abp.Localization.CultureMap; using LINGYUN.Abp.Serilog.Enrichers.Application; using LINGYUN.Abp.Serilog.Enrichers.UniqueId; using LINGYUN.Abp.Webhooks; @@ -358,6 +359,19 @@ public partial class WebhooksManagementHttpApiHostModule options.UsePersistence(); }); + + + Configure(options => + { + var zhHansCultureMapInfo = new CultureMapInfo + { + TargetCulture = "zh-Hans", + SourceCultures = new string[] { "zh", "zh_CN", "zh-CN" } + }; + + options.CulturesMaps.Add(zhHansCultureMapInfo); + options.UiCulturesMaps.Add(zhHansCultureMapInfo); + }); } private void ConfigureSecurity(IServiceCollection services, IConfiguration configuration, bool isDevelopment = false) diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Program.cs index 41aef61b2..566634709 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "WorkflowManagement.HttpApi.Host"; Log.Information("Starting WorkflowManagement.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/Program.cs b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/Program.cs index 572f802aa..d0625474d 100644 --- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/Program.cs +++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "IdentityServer.HttpApi.Host"; Log.Information("Starting IdentityServer.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/services/LY.MicroService.identityServer/Program.cs b/aspnet-core/services/LY.MicroService.identityServer/Program.cs index b7f1f9f0d..445b3475a 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/Program.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/Program.cs @@ -18,6 +18,7 @@ public class Program { try { + Console.Title = "IdentityServer"; Log.Information("Starting IdentityServer."); var builder = WebApplication.CreateBuilder(args); diff --git a/aspnet-core/start-all-service.bat b/aspnet-core/start-all-service.bat index 77bace5bd..78bc55b29 100644 --- a/aspnet-core/start-all-service.bat +++ b/aspnet-core/start-all-service.bat @@ -16,8 +16,6 @@ start .\start-http-api-host.bat LY.MicroService.TaskManagement.HttpApi.Host task ping -n %stime% 127.1 >nul start .\start-http-api-host.bat LY.MicroService.WebhooksManagement.HttpApi.Host webhooks-management--run ping -n %stime% 127.1 >nul -start .\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host realtime-message --run -ping -n %stime% 127.1 >nul start .\start-http-api-host.bat LY.MicroService.WorkflowManagement.HttpApi.Host workflow-management --run ping -n %stime% 127.1 >nul start .\start-http-api-host.bat LY.MicroService.BackendAdmin.HttpApi.Host admin --run diff --git a/aspnet-core/start-http-api-host.bat b/aspnet-core/start-http-api-host.bat index 7c64a265d..08112f469 100644 --- a/aspnet-core/start-http-api-host.bat +++ b/aspnet-core/start-http-api-host.bat @@ -8,6 +8,7 @@ title %2-host cd .\services\%1 if '%3' equ '--publish' goto publish +if '%3' equ '--watchrun' goto watchrun if '%3' equ '--run' goto run if '%3' equ '--restore' goto restore if '%3' equ '--ef-u' goto efu @@ -23,6 +24,10 @@ exit dotnet run exit +:watchrun +dotnet watch run --no-restore +exit + :restore dotnet restore exit diff --git a/aspnet-core/start-internal-gateway.bat b/aspnet-core/start-internal-gateway.bat index ceb09fc87..f6071eb8d 100644 --- a/aspnet-core/start-internal-gateway.bat +++ b/aspnet-core/start-internal-gateway.bat @@ -2,12 +2,15 @@ cls chcp 65001 +title internal-apigateway + echo. 启动内部网关 cd ..\gateways\internal\LINGYUN.MicroService.Internal.ApiGateway\src\LINGYUN.MicroService.Internal.ApiGateway\ if '%1' equ '--publish' goto publish if '%1' equ '--run' goto run +if '%1' equ '--watchrun' goto watchrun if '%1' equ '--restore' goto restore if '%1' equ '' goto run exit @@ -21,6 +24,10 @@ exit dotnet run exit +:watchrun +dotnet watch run --no-restore +exit + :restore dotnet restore exit \ No newline at end of file diff --git a/aspnet-core/templates/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs b/aspnet-core/templates/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs index 0fbaf6dfa..459b72261 100644 --- a/aspnet-core/templates/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs +++ b/aspnet-core/templates/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/Program.cs @@ -19,6 +19,7 @@ public class Program { try { + Console.Title = "Web.Host"; Log.Information("Starting web host."); var builder = WebApplication.CreateBuilder(args); diff --git a/build/build-aspnetcore-common.ps1 b/build/build-aspnetcore-common.ps1 index 8eae20a1c..185aeea65 100644 --- a/build/build-aspnetcore-common.ps1 +++ b/build/build-aspnetcore-common.ps1 @@ -14,6 +14,8 @@ $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY. $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/"; Service = "platform" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/"; Service = "messages" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/"; Service = "task-management" } +$serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.WebhooksManagement.HttpApi.Host/"; Service = "webhooks" } +$serviceArray += [PsObject]@{ Path = $rootFolder + "/../aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/"; Service = "workflow" } $serviceArray += [PsObject]@{ Path = $rootFolder + "/../gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/"; Service = "internal-apigateway" } [PsObject[]]$solutionArray = @() diff --git a/build/modules.dependencies.json b/build/modules.dependencies.json index 3a50cfa50..60a762b19 100644 --- a/build/modules.dependencies.json +++ b/build/modules.dependencies.json @@ -1,6 +1,6 @@ [ { - "tag": "net6.0", + "tag": "net7.0", "dependencies": [ { "service": "Backend-Admin", @@ -26,7 +26,10 @@ "LINGYUN.Platform.Domain.Shared.dll", "LINGYUN.Abp.Tencent.dll", "LINGYUN.Abp.Tencent.QQ.dll", - "LINGYUN.Abp.Tencent.SettingManagement.dll" + "LINGYUN.Abp.Tencent.SettingManagement.dll", + "LINGYUN.Abp.WxPusher.SettingManagement.dll", + "LINGYUN.Abp.PushPlus.SettingManagement.dll", + "LINGYUN.Abp.TuiJuhe.SettingManagement.dll" ] }, { @@ -43,8 +46,7 @@ "Volo.Abp.Users.Domain.Shared.dll", "Volo.Abp.Users.Abstractions.dll", "LINGYUN.Abp.IdentityServer.Application.Contracts.dll", - "Volo.Abp.IdentityServer.Domain.Shared.dll", - "Volo.Abp.Json.Newtonsoft.dll" + "Volo.Abp.IdentityServer.Domain.Shared.dll" ] } ] @@ -60,8 +62,6 @@ "LINGYUN.Abp.Account.Templates.dll", "LINGYUN.Abp.Features.LimitValidation.dll", "LINGYUN.Abp.Features.LimitValidation.Redis.dll", - "LINGYUN.Abp.WorkflowManagement.Application.Contracts.dll", - "LINGYUN.Abp.WorkflowManagement.Domain.Shared.dll", "LINGYUN.Abp.BackgroundTasks.Abstractions.dll", "LINGYUN.Linq.Dynamic.Queryable.dll", "LINGYUN.Abp.Dynamic.Queryable.Application.Contracts.dll", @@ -69,7 +69,10 @@ "LINGYUN.Abp.TaskManagement.Domain.Shared.dll", "LINGYUN.Abp.Notifications.Core.dll", "LINGYUN.Abp.Notifications.Common.dll", - "LINGYUN.Abp.Notifications.dll" + "LINGYUN.Abp.Notifications.dll", + "LINGYUN.Abp.PushPlus.dll", + "LINGYUN.Abp.WxPusher.dll", + "LINGYUN.Abp.TuiJuhe.dll" ] } ] diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Configuration/AutoConfigOcelot.cs b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Configuration/AutoConfigOcelot.cs new file mode 100644 index 000000000..f8517ca01 --- /dev/null +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Configuration/AutoConfigOcelot.cs @@ -0,0 +1,83 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading; +using Castle.Core.Logging; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration.Memory; +using Newtonsoft.Json; +using Ocelot.Configuration.File; +using Serilog; +using Serilog.Core; + +namespace Ocelot.DependencyInjection +{ + public static class ConfigurationBuilderExtensions + { + public static IConfigurationBuilder AddAutoOcelotConfig(this IConfigurationBuilder builder, IWebHostEnvironment env) + { + return builder.AddAutoOcelotConfig(".", env); + } + + static object locker = new object(); + + public static IConfigurationBuilder AddAutoOcelotConfig(this IConfigurationBuilder builder, string folder, IWebHostEnvironment env) + { + WriteFile(folder, env); + Action fileChanged = (sender, e) => + { + lock (locker) + { + Log.Debug("Ocelot config regenerate..."); + Thread.Sleep(100); //解决vs文件保存时多次触发change事件时引起异常 + WriteFile(folder, env); + } + }; + + FileSystemWatcher watcher = new FileSystemWatcher("OcelotConfig", "*.json"); + watcher.Changed += new FileSystemEventHandler(fileChanged); + watcher.Deleted += new FileSystemEventHandler(fileChanged); + watcher.Created += new FileSystemEventHandler(fileChanged); + watcher.Renamed += new RenamedEventHandler(fileChanged); + watcher.EnableRaisingEvents = true; + + builder.AddJsonFile("ocelot.json", optional: true, reloadOnChange: true); + return builder; + } + + private static void WriteFile(string folder, IWebHostEnvironment env) + { + string excludeConfigName = ((env != null && env.EnvironmentName != null) ? ("ocelot." + env.EnvironmentName + ".json") : string.Empty); + Regex reg = new Regex("^ocelot\\.(.*?)\\.json$", RegexOptions.IgnoreCase | RegexOptions.Singleline); + List list = (from fi in new DirectoryInfo(folder).EnumerateFiles() + where reg.IsMatch(fi.Name) && fi.Name != excludeConfigName + select fi).ToList(); + FileConfiguration fileConfiguration = new FileConfiguration(); + foreach (FileInfo item in list) + { + if (list.Count <= 1 || !item.Name.Equals("ocelot.json", StringComparison.OrdinalIgnoreCase)) + { + FileConfiguration fileConfiguration2 = JsonConvert.DeserializeObject(File.ReadAllText(item.FullName)); + if (fileConfiguration2 == null) + { + Log.Fatal($"Ocelot config file \"{item.FullName}\" is empty"); + } + if (item.Name.Equals("ocelot.global.json", StringComparison.OrdinalIgnoreCase)) + { + fileConfiguration.GlobalConfiguration = fileConfiguration2.GlobalConfiguration; + } + + fileConfiguration.Aggregates.AddRange(fileConfiguration2.Aggregates); + fileConfiguration.Routes.AddRange(fileConfiguration2.Routes); + } + } + + string contents = JsonConvert.SerializeObject(fileConfiguration, Formatting.Indented); + File.WriteAllText("ocelot.json", contents); + } + } +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.aggregate.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.aggregate.json similarity index 78% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.aggregate.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.aggregate.json index efcc2f8eb..de5c3484d 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.aggregate.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.aggregate.json @@ -1,67 +1,62 @@ -{ - "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" - ], - "UpstreamPathTemplate": "/api/abp/api-definition", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - // ������þۺ� - { - "RouteKeys": [ - "platform-configuration", - "backend-admin-configuration", - "messages-configuration", - "ids-admin-configuration", - "localization-configuration", - "task-configuration" - ], - "UpstreamPathTemplate": "/api/abp/application-configuration", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - // ȫ������ - { - "RouteKeys": [ - "setting-global", - "wechat-setting-global", - "aliyun-setting-global", - "oss-management-setting-global" - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-global", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - // �⻧���� - { - "RouteKeys": [ - "setting-current-tenant", - "wechat-setting-current-tenant", - "aliyun-setting-current-tenant", - "oss-management-setting-current-tenant" - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - // �û����� - { - "RouteKeys": [ - "assignables-notifilers", - "my-subscribes" - ], - "UpstreamPathTemplate": "/api/my-subscribes/assignables-notifilers", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - } - ] -} +{ + "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" + ], + "UpstreamPathTemplate": "/api/abp/api-definition", + "Aggregator": "AbpResponseMergeAggregator" + }, + { + "RouteKeys": [ + "platform-configuration", + "backend-admin-configuration", + "messages-configuration", + "ids-admin-configuration", + "localization-configuration", + "task-configuration" + ], + "UpstreamPathTemplate": "/api/abp/application-configuration", + "Aggregator": "AbpResponseMergeAggregator", + "Priority": 99 + }, + { + "RouteKeys": [ + "setting-global", + "wechat-setting-global", + "tencent-cloud-setting-global", + "aliyun-setting-global", + "oss-management-setting-global" + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-global", + "Aggregator": "AbpResponseMergeAggregator", + "Priority": 99 + }, + { + "RouteKeys": [ + "setting-current-tenant", + "wechat-setting-current-tenant", + "tencent-cloud-setting-current-tenant", + "aliyun-setting-current-tenant", + "oss-management-setting-current-tenant" + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", + "Aggregator": "AbpResponseMergeAggregator", + "Priority": 99 + }, + { + "RouteKeys": [ + "setting-current-user" + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user", + "Aggregator": "AbpResponseMergeAggregator", + "Priority": 99 + } + ] +} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.backendadmin.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.backendadmin.json similarity index 53% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.backendadmin.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.backendadmin.json index dda16d395..d82cfdfdf 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.backendadmin.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.backendadmin.json @@ -1,459 +1,809 @@ -{ - "Routes": [ - // ��ܶ˵� - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/backend-admin/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "backend-admin-configuration" - }, - // ��ܶ�̬API�˵� - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/backend-admin/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "backend-admin-api-definition" - }, - // �⻧ - { - "DownstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // �⻧���� - { - "DownstreamPathTemplate": "/api/saas/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/saas/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // Ȩ�޹��� - { - "DownstreamPathTemplate": "/api/permission-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/permission-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // �⻧���� - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant/app", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "setting-current-tenant" - }, - // ȫ������ - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-global/app", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "setting-global" - }, - // ΢���⻧���� - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "wechat-setting-current-tenant" - }, - // ΢��ȫ������ - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/wechat/by-global", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "wechat-setting-global" - }, - // �������⻧���� - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "aliyun-setting-current-tenant" - }, - // ������ȫ������ - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "aliyun-setting-global" - }, - // ���ù��� - { - "DownstreamPathTemplate": "/api/setting-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // ���Թ��� - { - "DownstreamPathTemplate": "/api/feature-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/feature-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // �����־ - { - "DownstreamPathTemplate": "/api/auditing/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/auditing/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // API �ĵ� - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/admin/v1/swagger.json", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/abp/backend-admin/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "backend-admin-configuration" + }, + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/abp/backend-admin/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "backend-admin-api-definition" + }, + { + "DownstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/tenant-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/tenant-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/permission-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/permission-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant/app", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "setting-current-tenant" + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/by-current-user", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user/app", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "setting-current-user" + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/by-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/by-global/app", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "setting-global" + }, + { + "DownstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "wechat-setting-current-tenant" + }, + { + "DownstreamPathTemplate": "/api/setting-management/wechat/by-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/wechat/by-global", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "wechat-setting-global" + }, + { + "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "tencent-cloud-setting-current-tenant" + }, + { + "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "tencent-cloud-setting-global" + }, + { + "DownstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "aliyun-setting-current-tenant" + }, + { + "DownstreamPathTemplate": "/api/setting-management/aliyun/by-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/aliyun/by-global", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "aliyun-setting-global" + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/change-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/change-global", + "UpstreamHttpMethod": [ + "PUT" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", + "UpstreamHttpMethod": [ + "PUT" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/setting-management/settings/change-current-user", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/settings/change-current-user", + "UpstreamHttpMethod": [ + "PUT" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/setting-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/setting-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 5 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/feature-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/feature-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/saas/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/saas/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/auditing/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/auditing/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/text-templating/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/text-templating/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 30000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/caching-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/caching-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 30000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/abp/localization/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/api/abp/localization/{everything}", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/swagger/v1/swagger.json", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30010 + } + ], + "UpstreamPathTemplate": "/admin/v1/swagger.json", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.global.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.global.json similarity index 84% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.global.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.global.json index 566ebbfbd..a6439b946 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.global.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.global.json @@ -1,24 +1,24 @@ -{ - "GlobalConfiguration": { - "BaseUrl": "http://localhost:30000", - "DownstreamScheme": "HTTP", - "HttpHandlerOptions": { - "UseTracing": true - }, - "RateLimitOptions": { - "DisableRateLimitHeaders": false, - "ClientIdHeader": "ClientId", - "RateLimitCounterPrefix": "ocelot", - "QuotaExceededMessage": "您的操作过快,请稍后再试!", - "HttpStatusCode": 429 - }, - "QoSOptions": { - "TimeoutValue": 30000, - "DurationOfBreak": 60000, - "ExceptionsAllowedBeforeBreaking": 30 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin" - } - } -} +{ + "GlobalConfiguration": { + "BaseUrl": "http://localhost:30000", + "DownstreamScheme": "HTTP", + "HttpHandlerOptions": { + "UseTracing": true + }, + "RateLimitOptions": { + "DisableRateLimitHeaders": false, + "ClientIdHeader": "ClientId", + "RateLimitCounterPrefix": "ocelot", + "QuotaExceededMessage": "您的操作过快,请稍后再试!", + "HttpStatusCode": 429 + }, + "QoSOptions": { + "TimeoutValue": 30000, + "DurationOfBreak": 60000, + "ExceptionsAllowedBeforeBreaking": 30 + }, + "LoadBalancerOptions": { + "Type": "RoundRobin" + } + } +} diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.idsadmin.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.idsadmin.json similarity index 67% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.idsadmin.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.idsadmin.json index 2c5a2852c..573860869 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.idsadmin.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.idsadmin.json @@ -1,180 +1,255 @@ -{ - "Routes": [ - // ܶ˵ - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/abp/ids-admin/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "ids-admin-configuration" - }, - // ̬ܶAPI˵ - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/abp/ids-admin/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "ids-admin-api-definition" - }, - // ݱʶ - { - "DownstreamPathTemplate": "/api/identity/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/identity/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // ֤ - { - "DownstreamPathTemplate": "/api/identity-server/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/identity-server/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // û˻ - { - "DownstreamPathTemplate": "/api/account/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/account/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // API ĵ - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/ids-admin/v1/swagger.json", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + // 框架端点 + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/api/abp/ids-admin/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "ids-admin-configuration" + }, + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/api/abp/ids-admin/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "ids-admin-api-definition" + }, + // 身份标识管理 + { + "DownstreamPathTemplate": "/api/identity/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/api/identity/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 身份认证服务器管理 + { + "DownstreamPathTemplate": "/api/identity-server/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/api/identity-server/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 用户账户管理 + { + "DownstreamPathTemplate": "/api/account/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/api/account/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 外部认证 + { + "DownstreamPathTemplate": "/.well-known/openid-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 44385 + } + ], + "UpstreamPathTemplate": "/.well-known/openid-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/connect/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 44385 + } + ], + "UpstreamPathTemplate": "/connect/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // API 文档 + { + "DownstreamPathTemplate": "/swagger/v1/swagger.json", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30015 + } + ], + "UpstreamPathTemplate": "/ids-admin/v1/swagger.json", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.localization.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.localization.json similarity index 86% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.localization.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.localization.json index 1f5d53967..c6cbe9bfb 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.localization.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.localization.json @@ -1,118 +1,129 @@ -{ - "Routes": [ - // ܶ˵ - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/abp/localization/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "localization-configuration" - }, - // ̬ܶAPI˵ - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/abp/localization/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "localization-api-definition" - }, - // ػ - { - "DownstreamPathTemplate": "/api/localization/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/localization/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // API ĵ - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/localization/v1/swagger.json", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + // 框架端点 + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30030 + } + ], + "UpstreamPathTemplate": "/api/abp/localization/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "localization-configuration" + }, + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30030 + } + ], + "UpstreamPathTemplate": "/api/abp/localization/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "localization-api-definition" + }, + // 本地化管理 + { + "DownstreamPathTemplate": "/api/localization/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30030 + } + ], + "UpstreamPathTemplate": "/api/localization/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // API 文档 + { + "DownstreamPathTemplate": "/swagger/v1/swagger.json", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30030 + } + ], + "UpstreamPathTemplate": "/localization/v1/swagger.json", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.messages.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.messages.json similarity index 54% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.messages.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.messages.json index 2042784b6..8fab8d957 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.messages.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.messages.json @@ -1,423 +1,291 @@ -{ - "Routes": [ - // ��ܶ˵� - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/abp/messages/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "messages-configuration" - }, - // ��ܶ�̬API�˵� - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/abp/messages/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "messages-api-definition" - }, - // ��ʱͨѶ - { - "DownstreamPathTemplate": "/api/im/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/im/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // Hangfire �DZ��� - { - "DownstreamPathTemplate": "/hangfire/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/hangfire/{everything}", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/my-subscribes", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/my-subscribes", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Priority": 99 - }, - // �û����� - { - "DownstreamPathTemplate": "/api/my-subscribes/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/my-subscribes/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // �û������б� - { - "DownstreamPathTemplate": "/api/my-subscribes/all", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/my-subscribes/all", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Priority": 99, - "Key": "my-subscribes" - }, - // �û�����֪ͨ - { - "DownstreamPathTemplate": "/api/notifications/my-notifilers/assignables", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/notifications/my-notifilers/assignables", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Priority": 99, - "Key": "assignables-notifilers" - }, - // �û�֪ͨ - { - "DownstreamPathTemplate": "/api/notifications/my-notifilers", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/notifications/my-notifilers", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/notifications/my-notifilers/{id}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/notifications/my-notifilers/{id}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // API �ĵ� - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/messages/v1/swagger.json", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // ������ - { - "DownstreamPathTemplate": "/signalr-hubs/messages", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/messages", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false, - "Priority": 99 - }, - { - "DownstreamPathTemplate": "/signalr-hubs/notifications", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/notifications", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false, - "Priority": 99 - }, - { - "DownstreamPathTemplate": "/signalr-hubs/{everything}", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false - } - ] -} +{ + "Routes": [ + // 框架端点 + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/api/abp/messages/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "messages-configuration" + }, + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/api/abp/messages/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "messages-api-definition" + }, + // 即时通讯 + { + "DownstreamPathTemplate": "/api/im/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/api/im/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // Hangfire定时任务 + { + "DownstreamPathTemplate": "/hangfire/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/hangfire/{everything}", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 消息通知 + { + "DownstreamPathTemplate": "/api/notifications/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/api/notifications/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // Api文档 + { + "DownstreamPathTemplate": "/swagger/v1/swagger.json", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/messages/v1/swagger.json", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // signalr实时通知 + { + "DownstreamPathTemplate": "/signalr-hubs/messages", + "DownstreamScheme": "ws", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/signalr-hubs/messages", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE", + "OPTIONS" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": {}, + "DangerousAcceptAnyServerCertificateValidator": true, + "RouteIsCaseSensitive": false, + "Priority": 99 + }, + { + "DownstreamPathTemplate": "/signalr-hubs/notifications", + "DownstreamScheme": "ws", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/signalr-hubs/notifications", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE", + "OPTIONS" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": {}, + "DangerousAcceptAnyServerCertificateValidator": true, + "RouteIsCaseSensitive": false, + "Priority": 99 + }, + { + "DownstreamPathTemplate": "/signalr-hubs/{everything}", + "DownstreamScheme": "ws", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30020 + } + ], + "UpstreamPathTemplate": "/signalr-hubs/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE", + "OPTIONS" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": {}, + "DangerousAcceptAnyServerCertificateValidator": true, + "RouteIsCaseSensitive": false + } + ] +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.platform.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.platform.json similarity index 78% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.platform.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.platform.json index 495ceb672..bf040d8c9 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.platform.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.platform.json @@ -1,314 +1,303 @@ -{ - "Routes": [ - // ��ܶ˵� - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/abp/platform/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "platform-configuration" - }, - // ��ܶ�̬API�˵� - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/abp/platform/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "platform-api-definition" - }, - // ����洢 - { - "DownstreamPathTemplate": "/api/oss-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/oss-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // ƽ̨���� - { - "DownstreamPathTemplate": "/api/platform/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/platform/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // �ļ����� - { - "DownstreamPathTemplate": "/api/files/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/files/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/files/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/api/files/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/task-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/task-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - // ����洢�⻧���� - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "oss-management-setting-current-tenant" - }, - // ����洢ȫ������ - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "oss-management-setting-global" - }, - // API �ĵ� - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/platform/v1/swagger.json", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + // 框架端点 + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/abp/platform/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "platform-configuration" + }, + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/abp/platform/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "platform-api-definition" + }, + // oss存储 + { + "DownstreamPathTemplate": "/api/oss-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/oss-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 平台管理 + { + "DownstreamPathTemplate": "/api/platform/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/platform/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // 文件管理 + { + "DownstreamPathTemplate": "/api/files/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/files/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + { + "DownstreamPathTemplate": "/api/files/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/api/files/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + }, + // oss管理 + { + "DownstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "oss-management-setting-current-tenant" + }, + { + "DownstreamPathTemplate": "/api/setting-management/oss-management/by-global", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/api/setting-management/oss-management/by-global", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "oss-management-setting-global" + }, + // Api文档 + { + "DownstreamPathTemplate": "/swagger/v1/swagger.json", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30025 + } + ], + "UpstreamPathTemplate": "/platform/v1/swagger.json", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.task.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.task.json similarity index 86% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.task.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.task.json index defae3d65..7fa47381c 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.task.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.task.json @@ -1,87 +1,96 @@ -{ - "Routes": [ - // ܶ˵ - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/abp/task/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "task-configuration" - }, - // ̬ܶAPI˵ - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/abp/task/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "task-api-definition" - }, - // - { - "DownstreamPathTemplate": "/api/task-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/task-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + // 框架端点 + { + "DownstreamPathTemplate": "/api/abp/application-configuration", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30040 + } + ], + "UpstreamPathTemplate": "/api/abp/task/application-configuration", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "task-configuration" + }, + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30040 + } + ], + "UpstreamPathTemplate": "/api/abp/task/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "task-api-definition" + }, + // 任务管理 + { + "DownstreamPathTemplate": "/api/task-management/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30040 + } + ], + "UpstreamPathTemplate": "/api/task-management/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": { + "ClientWhitelist": [], + "EnableRateLimiting": true, + "Period": "1s", + "PeriodTimespan": 1, + "Limit": 100 + }, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} \ No newline at end of file diff --git a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.webhook.json b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.webhook.json similarity index 76% rename from gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.webhook.json rename to gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.webhook.json index d370c8b3c..b1394a7e7 100644 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.webhook.json +++ b/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/OcelotConfig/ocelot.webhook.json @@ -1,59 +1,62 @@ -{ - "Routes": [ - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamPathTemplate": "/api/abp/webhook/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "webhook-api-definition" - }, - { - "DownstreamPathTemplate": "/api/webhooks/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamPathTemplate": "/api/webhooks/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 5 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ] -} +{ + "Routes": [ + // 框架动态API端点 + { + "DownstreamPathTemplate": "/api/abp/api-definition", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30045 + } + ], + "UpstreamPathTemplate": "/api/abp/webhook/api-definition", + "UpstreamHttpMethod": [ + "GET" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 10000 + }, + "HttpHandlerOptions": { + "UseTracing": true + }, + "Key": "webhook-api-definition" + }, + // webhooks + { + "DownstreamPathTemplate": "/api/webhooks/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "127.0.0.1", + "Port": 30045 + } + ], + "UpstreamPathTemplate": "/api/webhooks/{everything}", + "UpstreamHttpMethod": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "LoadBalancerOptions": { + "Type": "RoundRobin" + }, + "RateLimitOptions": {}, + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 10, + "DurationOfBreak": 1000, + "TimeoutValue": 30000 + }, + "HttpHandlerOptions": { + "UseTracing": true + } + } + ] +} \ No newline at end of file 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 index 612d86db5..2efd8bda1 100644 --- 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 @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Ocelot.DependencyInjection; using Serilog; using System; using System.IO; @@ -25,11 +26,13 @@ public class Program .UseAutofac() .ConfigureAppConfiguration((context, config) => { - // 加入 ocelot配置文件 - config.AddJsonFile( - $"ocelot.{context.HostingEnvironment.EnvironmentName ?? "Development"}.json", - optional: true, - reloadOnChange: true); + //// 加入 ocelot配置文件 + //config.AddJsonFile( + //$"ocelot.{context.HostingEnvironment.EnvironmentName ?? "Development"}.json", + //optional: true, + //reloadOnChange: true); + + config.AddAutoOcelotConfig("OcelotConfig", builder.Environment); var configuration = config.Build(); if (configuration.GetSection("AgileConfig").Exists()) 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 6e0628daf..000000000 --- a/gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json +++ /dev/null @@ -1,1895 +0,0 @@ -{ - "GlobalConfiguration": { - "BaseUrl": "http://localhost:30000", - "DownstreamScheme": "HTTP", - "HttpHandlerOptions": { - "UseTracing": true - }, - "RateLimitOptions": { - "DisableRateLimitHeaders": false, - "ClientIdHeader": "ClientId", - "RateLimitCounterPrefix": "ocelot", - "QuotaExceededMessage": "您的操作过快,请稍后再试!", - "HttpStatusCode": 429 - }, - "QoSOptions": { - "TimeoutValue": 30000, - "DurationOfBreak": 60000, - "ExceptionsAllowedBeforeBreaking": 30 - }, - "LoadBalancerOptions": { - "Type": "RoundRobin" - } - }, - "Routes": [ - { - "DownstreamPathTemplate": "/.well-known/openid-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 44385 - } - ], - "UpstreamPathTemplate": "/.well-known/openid-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/connect/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 44385 - } - ], - "UpstreamPathTemplate": "/connect/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/backend-admin/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "backend-admin-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/backend-admin/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "backend-admin-api-definition" - }, - { - "DownstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/multi-tenancy/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/tenant-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/tenant-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/permission-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/permission-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant/app", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "setting-current-tenant" - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-current-user", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user/app", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "setting-current-user" - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-global/app", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "setting-global" - }, - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/wechat/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "wechat-setting-current-tenant" - }, - { - "DownstreamPathTemplate": "/api/setting-management/wechat/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/wechat/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "wechat-setting-global" - }, - { - "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "tencent-cloud-setting-current-tenant" - }, - { - "DownstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/tencent-cloud/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "tencent-cloud-setting-global" - }, - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "aliyun-setting-current-tenant" - }, - { - "DownstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/aliyun/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "aliyun-setting-global" - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/change-global", - "UpstreamHttpMethod": [ "PUT" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/change-current-tenant", - "UpstreamHttpMethod": [ "PUT" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/setting-management/settings/change-current-user", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/setting-management/settings/change-current-user", - "UpstreamHttpMethod": [ "PUT" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/feature-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/feature-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/saas/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/saas/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/auditing/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/auditing/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/admin/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/abp/ids-admin/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "ids-admin-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/abp/ids-admin/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "ids-admin-api-definition" - }, - { - "DownstreamPathTemplate": "/api/identity/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/identity/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/identity-server/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/identity-server/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/account/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/api/account/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30015 - } - ], - "UpstreamPathTemplate": "/ids-admin/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/abp/localization/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "localization-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/abp/localization/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "localization-api-definition" - }, - { - "DownstreamPathTemplate": "/api/abp/localization/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/abp/localization/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/localization/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/api/localization/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30030 - } - ], - "UpstreamPathTemplate": "/localization/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/abp/messages/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "messages-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/abp/messages/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "messages-api-definition" - }, - { - "DownstreamPathTemplate": "/api/im/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/im/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/hangfire/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/hangfire/{everything}", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/notifications/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/api/notifications/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/messages/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/abp/platform/application-configuration", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "platform-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/abp/platform/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "platform-api-definition" - }, - { - "DownstreamPathTemplate": "/api/oss-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/oss-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/platform/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/platform/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/files/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/files/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/files/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/api/files/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-current-tenant", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "oss-management-setting-current-tenant" - }, - { - "DownstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/api/setting-management/oss-management/by-global", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "oss-management-setting-global" - }, - { - "DownstreamPathTemplate": "/swagger/v1/swagger.json", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30025 - } - ], - "UpstreamPathTemplate": "/platform/v1/swagger.json", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/signalr-hubs/messages", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/messages", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false, - "Priority": 99 - }, - { - "DownstreamPathTemplate": "/signalr-hubs/notifications", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/notifications", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false, - "Priority": 99 - }, - { - "DownstreamPathTemplate": "/signalr-hubs/{everything}", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30020 - } - ], - "UpstreamPathTemplate": "/signalr-hubs/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": {}, - "DangerousAcceptAnyServerCertificateValidator": true, - "RouteIsCaseSensitive": false - }, - { - "DownstreamPathTemplate": "/api/abp/application-configuration", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/abp/task/application-configuration", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "task-configuration" - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/abp/task/api-definition", - "UpstreamHttpMethod": [ "GET" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "task-api-definition" - }, - { - "DownstreamPathTemplate": "/api/task-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30040 - } - ], - "UpstreamPathTemplate": "/api/task-management/{everything}", - "UpstreamHttpMethod": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/abp/api-definition", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamPathTemplate": "/api/abp/webhook/api-definition", - "UpstreamHttpMethod": [ - "GET" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 10000 - }, - "HttpHandlerOptions": { - "UseTracing": true - }, - "Key": "webhook-api-definition" - }, - { - "DownstreamPathTemplate": "/api/webhooks/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30045 - } - ], - "UpstreamPathTemplate": "/api/webhooks/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/text-templating/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/text-templating/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - }, - { - "DownstreamPathTemplate": "/api/caching-management/{everything}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "127.0.0.1", - "Port": 30010 - } - ], - "UpstreamPathTemplate": "/api/caching-management/{everything}", - "UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE" ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "RateLimitOptions": {}, - "QoSOptions": { - "ExceptionsAllowedBeforeBreaking": 10, - "DurationOfBreak": 1000, - "TimeoutValue": 30000 - }, - "HttpHandlerOptions": { - "UseTracing": true - } - } - ], - "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" - ], - "UpstreamPathTemplate": "/api/abp/api-definition", - "Aggregator": "AbpResponseMergeAggregator" - }, - { - "RouteKeys": [ - "platform-configuration", - "backend-admin-configuration", - "messages-configuration", - "ids-admin-configuration", - "localization-configuration", - "task-configuration" - ], - "UpstreamPathTemplate": "/api/abp/application-configuration", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-global", - "wechat-setting-global", - "tencent-cloud-setting-global", - "aliyun-setting-global", - "oss-management-setting-global" - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-global", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-current-tenant", - "wechat-setting-current-tenant", - "tencent-cloud-setting-current-tenant", - "aliyun-setting-current-tenant", - "oss-management-setting-current-tenant" - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-tenant", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - }, - { - "RouteKeys": [ - "setting-current-user" - ], - "UpstreamPathTemplate": "/api/setting-management/settings/by-current-user", - "Aggregator": "AbpResponseMergeAggregator", - "Priority": 99 - } - ] -} \ 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 index f3ee419db..fdbe779f5 100644 --- 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 @@ -1,2 +1,4349 @@ { -} + "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/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/starter/00.auto-config-docker.cmd b/starter/00.auto-config-docker.cmd new file mode 100644 index 000000000..ab7531779 --- /dev/null +++ b/starter/00.auto-config-docker.cmd @@ -0,0 +1,26 @@ +docker network create --subnet=172.18.0.0/16 nt + +docker pull mysql +docker volume rm mysql-data +docker volume rm mysql-log +docker volume create mysql-data +docker volume create mysql-log +docker run --ip 172.18.0.10 -d --name mysql --net nt -v mysql-log:/var/log/mysql -v mysql-data:/var/lib/mysql -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --init-connect="SET collation_connection=utf8mb4_0900_ai_ci" --init-connect="SET NAMES utf8mb4" --skip-character-set-client-handshake + +docker pull rabbitmq:management +docker volume rm rabbitmq-home +docker volume create rabbitmq-home +docker run --ip 172.18.0.40 -d -id --name=rabbitmq --net nt -v rabbitmq-home:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management + +docker pull redis +docker volume rm redis-home +docker volume create redis-home +docker run --ip 172.18.0.50 -d --net nt -p 6379:6379 --name redis -v redis-home:/data redis + +docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.0 +docker volume rm elasticsearch-home +docker volume create elasticsearch-home +docker run --ip 172.18.0.60 -d --name es --net nt -v elasticsearch-home:/usr/share/elasticsearch/data -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1G -Xmx1G" -e xpack.security.enabled=false -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.9.0 + +docker pull docker.elastic.co/kibana/kibana:8.9.0 +docker run --ip 172.18.0.70 -d --name kib --net nt -p 5601:5601 docker.elastic.co/kibana/kibana:8.9.0 diff --git a/starter/01.migrate-db.cmd b/starter/01.migrate-db.cmd new file mode 100644 index 000000000..ed36af3e6 --- /dev/null +++ b/starter/01.migrate-db.cmd @@ -0,0 +1,4 @@ +@echo off +cd ..\aspnet-core +migrate-database.bat + diff --git a/starter/10.start-ids.bat b/starter/10.start-ids.bat new file mode 100644 index 000000000..df8193c0d --- /dev/null +++ b/starter/10.start-ids.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.IdentityServer identityserver --watchrun \ No newline at end of file diff --git a/starter/11.start-ids-admin.bat b/starter/11.start-ids-admin.bat new file mode 100644 index 000000000..333b8c6e7 --- /dev/null +++ b/starter/11.start-ids-admin.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.IdentityServer.HttpApi.Host identityserver4-admin --watchrun \ No newline at end of file diff --git a/starter/12.start-localization.bat b/starter/12.start-localization.bat new file mode 100644 index 000000000..df40be992 --- /dev/null +++ b/starter/12.start-localization.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.LocalizationManagement.HttpApi.Host localization --watchrun \ No newline at end of file diff --git a/starter/13.start-platform.bat b/starter/13.start-platform.bat new file mode 100644 index 000000000..d65c1d21d --- /dev/null +++ b/starter/13.start-platform.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.PlatformManagement.HttpApi.Host platform --watchrun \ No newline at end of file diff --git a/starter/14.start-messages.bat b/starter/14.start-messages.bat new file mode 100644 index 000000000..ab6c96c5c --- /dev/null +++ b/starter/14.start-messages.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host messages --watchrun \ No newline at end of file diff --git a/starter/15.start-task-management.bat b/starter/15.start-task-management.bat new file mode 100644 index 000000000..402d0d8ed --- /dev/null +++ b/starter/15.start-task-management.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.TaskManagement.HttpApi.Host task-management --watchrun \ No newline at end of file diff --git a/starter/16.start-webhooks-management.bat b/starter/16.start-webhooks-management.bat new file mode 100644 index 000000000..4c9e405f2 --- /dev/null +++ b/starter/16.start-webhooks-management.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.WebhooksManagement.HttpApi.Host webhooks-management--watchrun \ No newline at end of file diff --git a/starter/17.start-workflow-management.bat b/starter/17.start-workflow-management.bat new file mode 100644 index 000000000..9f97f1b66 --- /dev/null +++ b/starter/17.start-workflow-management.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.WorkflowManagement.HttpApi.Host workflow-management --watchrun \ No newline at end of file diff --git a/starter/18.start-admin.bat b/starter/18.start-admin.bat new file mode 100644 index 000000000..3304a4411 --- /dev/null +++ b/starter/18.start-admin.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.BackendAdmin.HttpApi.Host admin --watchrun \ No newline at end of file diff --git a/starter/70.start-internal-gateway.bat b/starter/70.start-internal-gateway.bat new file mode 100644 index 000000000..d4d7883bd --- /dev/null +++ b/starter/70.start-internal-gateway.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-internal-gateway.bat --watchrun \ No newline at end of file diff --git a/starter/80.start-host.cmd b/starter/80.start-host.cmd new file mode 100644 index 000000000..38f8eafd6 --- /dev/null +++ b/starter/80.start-host.cmd @@ -0,0 +1,9 @@ +@echo off +cls +title start-all +set stime=12 +for /f "delims=" %%i in ('dir *.bat /b') do ( + echo %%i + start %%i + ping -n %stime% 127.1 >nul +) \ No newline at end of file diff --git a/starter/91.install-node-module.cmd b/starter/91.install-node-module.cmd new file mode 100644 index 000000000..f8a87743a --- /dev/null +++ b/starter/91.install-node-module.cmd @@ -0,0 +1,6 @@ +@echo off +cls +cd ../apps/vue/ +title install-module +pnpm install +pause diff --git a/starter/99.start-ui.cmd b/starter/99.start-ui.cmd new file mode 100644 index 000000000..6338080b2 --- /dev/null +++ b/starter/99.start-ui.cmd @@ -0,0 +1,5 @@ +@echo off +cls +cd ../apps/vue/ +title abp-next-admin-ui +pnpm run dev \ No newline at end of file diff --git a/starter/readme.md b/starter/readme.md new file mode 100644 index 000000000..1ef2f6f55 --- /dev/null +++ b/starter/readme.md @@ -0,0 +1,8 @@ +快速启动后端项目: +1.使用 00.auto-config-docker.cmd 自动配置docker环境 +2.使用 01.migrate-db.cmd 迁移数据库 +3.使用 80.start-host.cmd 启动后端项目 +注:请按自己电脑运行速度调整 80.start-host.cmd 文件中的 stime 参数。 +快速启动前端项目: +1.使用 91.install-node-module.cmd 安装npm依赖 +2.使用 99.start-all.cmd 启动项目 \ No newline at end of file