From 78c2cad474672d32677166c4a6c8b13108d2ed2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Mon, 14 Aug 2023 14:52:43 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=95=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=BF=90=E8=A1=8Cbat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/vue/run.bat | 1 + aspnet-core/start-internal-gateway.bat | 2 ++ starter/01.start-ids.bat | 4 ++++ starter/02.start-ids-admin.bat | 4 ++++ starter/03.start-localization.bat | 4 ++++ starter/04.start-platform.bat | 4 ++++ starter/05.start-messages.bat | 4 ++++ starter/06.start-task-management.bat | 4 ++++ starter/07.start-webhooks-management.bat | 4 ++++ starter/08.start-realtime-message.bat | 4 ++++ starter/09.start-workflow-management.bat | 4 ++++ starter/10.start-admin.bat | 4 ++++ starter/80.start-internal-gateway.bat | 4 ++++ starter/90.start-ui.bat | 5 +++++ starter/99.start-all.cmd | 9 +++++++++ 15 files changed, 61 insertions(+) create mode 100644 starter/01.start-ids.bat create mode 100644 starter/02.start-ids-admin.bat create mode 100644 starter/03.start-localization.bat create mode 100644 starter/04.start-platform.bat create mode 100644 starter/05.start-messages.bat create mode 100644 starter/06.start-task-management.bat create mode 100644 starter/07.start-webhooks-management.bat create mode 100644 starter/08.start-realtime-message.bat create mode 100644 starter/09.start-workflow-management.bat create mode 100644 starter/10.start-admin.bat create mode 100644 starter/80.start-internal-gateway.bat create mode 100644 starter/90.start-ui.bat create mode 100644 starter/99.start-all.cmd 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/aspnet-core/start-internal-gateway.bat b/aspnet-core/start-internal-gateway.bat index ceb09fc87..d38602273 100644 --- a/aspnet-core/start-internal-gateway.bat +++ b/aspnet-core/start-internal-gateway.bat @@ -2,6 +2,8 @@ cls chcp 65001 +title internal-apigateway + echo. 启动内部网关 cd ..\gateways\internal\LINGYUN.MicroService.Internal.ApiGateway\src\LINGYUN.MicroService.Internal.ApiGateway\ diff --git a/starter/01.start-ids.bat b/starter/01.start-ids.bat new file mode 100644 index 000000000..274356071 --- /dev/null +++ b/starter/01.start-ids.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.IdentityServer identityserver --run \ No newline at end of file diff --git a/starter/02.start-ids-admin.bat b/starter/02.start-ids-admin.bat new file mode 100644 index 000000000..6357b397a --- /dev/null +++ b/starter/02.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 --run \ No newline at end of file diff --git a/starter/03.start-localization.bat b/starter/03.start-localization.bat new file mode 100644 index 000000000..3b564d396 --- /dev/null +++ b/starter/03.start-localization.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.LocalizationManagement.HttpApi.Host localization --run \ No newline at end of file diff --git a/starter/04.start-platform.bat b/starter/04.start-platform.bat new file mode 100644 index 000000000..066ec1191 --- /dev/null +++ b/starter/04.start-platform.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.PlatformManagement.HttpApi.Host platform --run \ No newline at end of file diff --git a/starter/05.start-messages.bat b/starter/05.start-messages.bat new file mode 100644 index 000000000..efda80408 --- /dev/null +++ b/starter/05.start-messages.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host messages --run \ No newline at end of file diff --git a/starter/06.start-task-management.bat b/starter/06.start-task-management.bat new file mode 100644 index 000000000..ba18a7b32 --- /dev/null +++ b/starter/06.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 --run \ No newline at end of file diff --git a/starter/07.start-webhooks-management.bat b/starter/07.start-webhooks-management.bat new file mode 100644 index 000000000..0ed1619d5 --- /dev/null +++ b/starter/07.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--run \ No newline at end of file diff --git a/starter/08.start-realtime-message.bat b/starter/08.start-realtime-message.bat new file mode 100644 index 000000000..98ed971e3 --- /dev/null +++ b/starter/08.start-realtime-message.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host realtime-message --run \ No newline at end of file diff --git a/starter/09.start-workflow-management.bat b/starter/09.start-workflow-management.bat new file mode 100644 index 000000000..d9c663a43 --- /dev/null +++ b/starter/09.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 --run \ No newline at end of file diff --git a/starter/10.start-admin.bat b/starter/10.start-admin.bat new file mode 100644 index 000000000..51631cfdd --- /dev/null +++ b/starter/10.start-admin.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-http-api-host.bat LY.MicroService.BackendAdmin.HttpApi.Host admin --run \ No newline at end of file diff --git a/starter/80.start-internal-gateway.bat b/starter/80.start-internal-gateway.bat new file mode 100644 index 000000000..8499c238c --- /dev/null +++ b/starter/80.start-internal-gateway.bat @@ -0,0 +1,4 @@ +@echo off +cls +cd ..\aspnet-core\ +.\start-internal-gateway.bat --run \ No newline at end of file diff --git a/starter/90.start-ui.bat b/starter/90.start-ui.bat new file mode 100644 index 000000000..ad9797f4f --- /dev/null +++ b/starter/90.start-ui.bat @@ -0,0 +1,5 @@ +@echo off +cls +cd ../apps/vue/ +title abp-next-admin-ui +npm run dev \ No newline at end of file diff --git a/starter/99.start-all.cmd b/starter/99.start-all.cmd new file mode 100644 index 000000000..a03b5997a --- /dev/null +++ b/starter/99.start-all.cmd @@ -0,0 +1,9 @@ +@echo off +cls +title start-all +set stime=8 +for /f "delims=" %%i in ('dir *.bat *.cmd /b /s^|findstr /v /i "99.start-all.cmd"') do ( + echo %%i + start %%i + ping -n %stime% 127.1 >nul +) \ No newline at end of file From d70436f24dab94f3a905abf20d28a0093f7ceeba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Tue, 15 Aug 2023 01:17:41 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=8C=96=E5=8F=8A=E9=83=A8=E5=88=86=E5=8A=9F=E8=83=BD=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=8C=96=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=20?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86=E5=A4=84=E7=90=86=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=B5=B7=E4=BD=9C=E7=94=A8=E7=9A=84=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/localization/model/resourcesModel.ts | 4 +++ apps/vue/src/api/localization/resources.ts | 9 ++++--- apps/vue/src/utils/http/axios/index.ts | 3 +++ .../resources/components/ResourceTable.vue | 7 ++++- .../messages/notifications/datas/ModalData.ts | 2 +- .../messages/notifications/datas/TableData.ts | 2 +- .../saas/tenant/components/TenantTable.vue | 2 +- aspnet-core/migrate-database.bat | 25 +++++++----------- aspnet-core/migrate-db-cmd.bat | 17 +++++++----- .../Mvc/Localization/GetWithFilter.cs | 7 +++++ .../Mvc/Localization/IResourceAppService.cs | 2 +- .../Mvc/Localization/ResourceAppService.cs | 14 +++++++--- .../Mvc/Localization/ResourceController.cs | 4 +-- ...ksManagementHttpApiHostModule.Configure.cs | 14 ++++++++++ aspnet-core/start-all-service.bat | 2 -- starter/00.auto-config-docker.cmd | 26 +++++++++++++++++++ starter/01.migrate-db.cmd | 4 +++ starter/08.start-realtime-message.bat | 4 --- .../{01.start-ids.bat => 10.start-ids.bat} | 0 ...t-ids-admin.bat => 11.start-ids-admin.bat} | 0 ...lization.bat => 12.start-localization.bat} | 0 ...art-platform.bat => 13.start-platform.bat} | 0 ...art-messages.bat => 14.start-messages.bat} | 0 ...ement.bat => 15.start-task-management.bat} | 0 ...t.bat => 16.start-webhooks-management.bat} | 0 ...t.bat => 17.start-workflow-management.bat} | 0 ...{10.start-admin.bat => 18.start-admin.bat} | 0 ...eway.bat => 70.start-internal-gateway.bat} | 0 starter/80.start-host.cmd | 9 +++++++ starter/91.install-node-module.cmd | 6 +++++ starter/99.start-all.cmd | 9 ------- starter/{90.start-ui.bat => 99.start-ui.cmd} | 2 +- starter/readme.md | 8 ++++++ 33 files changed, 129 insertions(+), 53 deletions(-) create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs create mode 100644 starter/00.auto-config-docker.cmd create mode 100644 starter/01.migrate-db.cmd delete mode 100644 starter/08.start-realtime-message.bat rename starter/{01.start-ids.bat => 10.start-ids.bat} (100%) rename starter/{02.start-ids-admin.bat => 11.start-ids-admin.bat} (100%) rename starter/{03.start-localization.bat => 12.start-localization.bat} (100%) rename starter/{04.start-platform.bat => 13.start-platform.bat} (100%) rename starter/{05.start-messages.bat => 14.start-messages.bat} (100%) rename starter/{06.start-task-management.bat => 15.start-task-management.bat} (100%) rename starter/{07.start-webhooks-management.bat => 16.start-webhooks-management.bat} (100%) rename starter/{09.start-workflow-management.bat => 17.start-workflow-management.bat} (100%) rename starter/{10.start-admin.bat => 18.start-admin.bat} (100%) rename starter/{80.start-internal-gateway.bat => 70.start-internal-gateway.bat} (100%) create mode 100644 starter/80.start-host.cmd create mode 100644 starter/91.install-node-module.cmd delete mode 100644 starter/99.start-all.cmd rename starter/{90.start-ui.bat => 99.start-ui.cmd} (81%) create mode 100644 starter/readme.md diff --git a/apps/vue/src/api/localization/model/resourcesModel.ts b/apps/vue/src/api/localization/model/resourcesModel.ts index c05f6ece2..5bb59d973 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 GetWithFilter { + 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..b4651aa58 100644 --- a/apps/vue/src/api/localization/resources.ts +++ b/apps/vue/src/api/localization/resources.ts @@ -1,16 +1,17 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate } from './model/resourcesModel'; +import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetWithFilter } from './model/resourcesModel'; +import { format } from '/@/utils/strings'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Resource'; enum Api { - GetList = '/api/abp/localization/resources', + GetList = '/api/abp/localization/resources?filter={filter}', } -export const getList = () => { +export const getList = (input: GetWithFilter) => { return defAbpHttp.get({ - url: Api.GetList, + url: format(Api.GetList, 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/resources/components/ResourceTable.vue b/apps/vue/src/views/localization/resources/components/ResourceTable.vue index 8e634dbe0..4dafe1e6a 100644 --- a/apps/vue/src/views/localization/resources/components/ResourceTable.vue +++ b/apps/vue/src/views/localization/resources/components/ResourceTable.vue @@ -47,8 +47,13 @@ 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 state = reactive({ + filter: 'noti' + }); + const { createConfirm, createMessage } = useMessage(); const { L } = useLocalization(['LocalizationManagement', 'AbpLocalization', 'AbpUi']); const [registerModal, { openModal }] = useModal(); @@ -88,7 +93,7 @@ function fetchResources() { const form = getForm(); return form.validate().then(() => { - return getList().then((res) => { + return getList({filter: state.filter}).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/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs new file mode 100644 index 000000000..e7c3dd4ef --- /dev/null +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.AspNetCore.Mvc.Localization +{ + public class GetWithFilter + { + public string Filter { get; set; } + } +} 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..906d3922a 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(GetWithFilter filter); } } 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..30bdc333d 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(GetWithFilter input) { - var externalResources = await _externalLocalizationStore.GetResourcesAsync(); + var externalResources = (await _externalLocalizationStore.GetResourcesAsync()) + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.ResourceName.Contains(input.Filter)); var resources = _localizationOptions .Resources + .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.Value.ResourceName.Contains(input.Filter)) .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..58dcc54f1 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(GetWithFilter filter) { - return _service.GetListAsync(); + return _service.GetListAsync(filter); } } } 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/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/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/08.start-realtime-message.bat b/starter/08.start-realtime-message.bat deleted file mode 100644 index 98ed971e3..000000000 --- a/starter/08.start-realtime-message.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -cls -cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host realtime-message --run \ No newline at end of file diff --git a/starter/01.start-ids.bat b/starter/10.start-ids.bat similarity index 100% rename from starter/01.start-ids.bat rename to starter/10.start-ids.bat diff --git a/starter/02.start-ids-admin.bat b/starter/11.start-ids-admin.bat similarity index 100% rename from starter/02.start-ids-admin.bat rename to starter/11.start-ids-admin.bat diff --git a/starter/03.start-localization.bat b/starter/12.start-localization.bat similarity index 100% rename from starter/03.start-localization.bat rename to starter/12.start-localization.bat diff --git a/starter/04.start-platform.bat b/starter/13.start-platform.bat similarity index 100% rename from starter/04.start-platform.bat rename to starter/13.start-platform.bat diff --git a/starter/05.start-messages.bat b/starter/14.start-messages.bat similarity index 100% rename from starter/05.start-messages.bat rename to starter/14.start-messages.bat diff --git a/starter/06.start-task-management.bat b/starter/15.start-task-management.bat similarity index 100% rename from starter/06.start-task-management.bat rename to starter/15.start-task-management.bat diff --git a/starter/07.start-webhooks-management.bat b/starter/16.start-webhooks-management.bat similarity index 100% rename from starter/07.start-webhooks-management.bat rename to starter/16.start-webhooks-management.bat diff --git a/starter/09.start-workflow-management.bat b/starter/17.start-workflow-management.bat similarity index 100% rename from starter/09.start-workflow-management.bat rename to starter/17.start-workflow-management.bat diff --git a/starter/10.start-admin.bat b/starter/18.start-admin.bat similarity index 100% rename from starter/10.start-admin.bat rename to starter/18.start-admin.bat diff --git a/starter/80.start-internal-gateway.bat b/starter/70.start-internal-gateway.bat similarity index 100% rename from starter/80.start-internal-gateway.bat rename to starter/70.start-internal-gateway.bat 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-all.cmd b/starter/99.start-all.cmd deleted file mode 100644 index a03b5997a..000000000 --- a/starter/99.start-all.cmd +++ /dev/null @@ -1,9 +0,0 @@ -@echo off -cls -title start-all -set stime=8 -for /f "delims=" %%i in ('dir *.bat *.cmd /b /s^|findstr /v /i "99.start-all.cmd"') do ( - echo %%i - start %%i - ping -n %stime% 127.1 >nul -) \ No newline at end of file diff --git a/starter/90.start-ui.bat b/starter/99.start-ui.cmd similarity index 81% rename from starter/90.start-ui.bat rename to starter/99.start-ui.cmd index ad9797f4f..6338080b2 100644 --- a/starter/90.start-ui.bat +++ b/starter/99.start-ui.cmd @@ -2,4 +2,4 @@ cls cd ../apps/vue/ title abp-next-admin-ui -npm run dev \ No newline at end of file +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 From 4d71843ff0cce1b5b27cfe170f04e0284018eccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Tue, 15 Aug 2023 01:47:41 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=B1=BB=E5=90=8D?= =?UTF-8?q?=EF=BC=8C=E8=AF=AD=E8=A8=80=E5=8F=8A=E8=B5=84=E6=BA=90=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/vue/src/api/localization/languages.ts | 5 +++-- .../api/localization/model/languagesModel.ts | 4 ++++ .../api/localization/model/resourcesModel.ts | 2 +- apps/vue/src/api/localization/resources.ts | 10 +++++----- .../languages/components/LanguageTable.vue | 4 ++-- .../resources/components/ResourceTable.vue | 11 ++++------- ...ithFilter.cs => GetLanguageWithFilterDto.cs} | 2 +- .../Localization/GetResourceWithFilterDto.cs | 7 +++++++ .../Mvc/Localization/ILanguageAppService.cs | 2 +- .../Mvc/Localization/IResourceAppService.cs | 2 +- .../Mvc/Localization/LanguageAppService.cs | 17 ++++++++++++++--- .../Mvc/Localization/LanguageController.cs | 4 ++-- .../Mvc/Localization/ResourceAppService.cs | 6 +++--- .../Mvc/Localization/ResourceController.cs | 4 ++-- 14 files changed, 50 insertions(+), 30 deletions(-) rename aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/{GetWithFilter.cs => GetLanguageWithFilterDto.cs} (73%) create mode 100644 aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetResourceWithFilterDto.cs 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 5bb59d973..b2ae0c283 100644 --- a/apps/vue/src/api/localization/model/resourcesModel.ts +++ b/apps/vue/src/api/localization/model/resourcesModel.ts @@ -27,6 +27,6 @@ export interface GetResourcePagedRequest extends PagedAndSortedResultRequestDto filter?: string; } -export interface GetWithFilter { +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 b4651aa58..9c87ef2fd 100644 --- a/apps/vue/src/api/localization/resources.ts +++ b/apps/vue/src/api/localization/resources.ts @@ -1,17 +1,17 @@ import { defAbpHttp } from '/@/utils/http/abp'; -import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetWithFilter } from './model/resourcesModel'; -import { format } from '/@/utils/strings'; +import { ResourceListResult, Resource, ResourceCreate, ResourceUpdate, GetResourceWithFilter } from './model/resourcesModel'; const remoteServiceName = 'LocalizationManagement'; const controllerName = 'Resource'; enum Api { - GetList = '/api/abp/localization/resources?filter={filter}', + GetList = '/api/abp/localization/resources', } -export const getList = (input: GetWithFilter) => { +export const getList = (input: GetResourceWithFilter) => { return defAbpHttp.get({ - url: format(Api.GetList, input), + url: Api.GetList, + params: input, }); }; 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 4dafe1e6a..b4ef0dc49 100644 --- a/apps/vue/src/views/localization/resources/components/ResourceTable.vue +++ b/apps/vue/src/views/localization/resources/components/ResourceTable.vue @@ -49,10 +49,7 @@ import { getDataColumns } from './TableData'; import { reactive } from 'vue'; import ResourceModal from './ResourceModal.vue'; - - const state = reactive({ - filter: 'noti' - }); + const { createConfirm, createMessage } = useMessage(); const { L } = useLocalization(['LocalizationManagement', 'AbpLocalization', 'AbpUi']); @@ -77,7 +74,7 @@ component: 'Input', label: L('Search'), colProps: { span: 24 }, - defaultValue: '', + defaultValue: '' }, ], submitFunc: fetchResources, @@ -92,8 +89,8 @@ function fetchResources() { const form = getForm(); - return form.validate().then(() => { - return getList({filter: state.filter}).then((res) => { + return form.validate().then((input) => { + return getList(input).then((res) => { setTableData(res.items); }); }); diff --git a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs similarity index 73% rename from aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs rename to aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs index e7c3dd4ef..8f9ba08c5 100644 --- a/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetWithFilter.cs +++ b/aspnet-core/modules/localization/LINGYUN.Abp.AspNetCore.Mvc.Localization/LINGYUN/Abp/AspNetCore/Mvc/Localization/GetLanguageWithFilterDto.cs @@ -1,6 +1,6 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization { - public class GetWithFilter + 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 906d3922a..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(GetWithFilter filter); + 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 30bdc333d..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 @@ -29,14 +29,14 @@ namespace LINGYUN.Abp.AspNetCore.Mvc.Localization _externalLocalizationStore = externalLocalizationStore; } - public virtual async Task> GetListAsync(GetWithFilter input) + public virtual async Task> GetListAsync(GetResourceWithFilterDto input) { var externalResources = (await _externalLocalizationStore.GetResourcesAsync()) - .WhereIf(!input.Filter.IsNullOrWhiteSpace(), x => x.ResourceName.Contains(input.Filter)); + .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.Contains(input.Filter)) + .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 58dcc54f1..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(GetWithFilter filter) + public virtual Task> GetListAsync(GetResourceWithFilterDto input) { - return _service.GetListAsync(filter); + return _service.GetListAsync(input); } } } From 2b0600db4f934c047eb86de7e71b8bd8a3abe95e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Tue, 15 Aug 2023 14:57:49 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LINGYUN/Abp/IM/SignalR/Hubs/MessagesHub.cs | 11 +++++++---- .../SignalR/Messages/SignalRMessageSenderProvider.cs | 9 ++++++--- .../Authorization/OpenApiAuthorizationService.cs | 9 ++++++--- .../PlatformManagementHttpApiHostModule.Configure.cs | 10 ++++++---- 4 files changed, 25 insertions(+), 14 deletions(-) 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/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/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) From b2d5a99efc58c0499dec9ccd005c44bdb2e476b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Wed, 16 Aug 2023 00:56:12 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=81=9A=E5=90=88?= =?UTF-8?q?=E4=BA=91=E6=8E=A8NewtownJson=E4=B8=BASystemTextJson=EF=BC=8C?= =?UTF-8?q?=E4=B8=8E=E5=85=B6=E5=AE=83=E9=A1=B9=E7=9B=AE=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9Host=E9=A1=B9=E7=9B=AE=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0Console.Title=E8=AF=B4=E6=98=8E=EF=BC=8C=E6=96=B9?= =?UTF-8?q?=E4=BE=BF=E5=90=AF=E5=8A=A8=E5=8F=8A=E8=B0=83=E8=AF=95=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=20=E5=A2=9E=E5=8A=A0watch=20run=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=96=B9=E4=BE=BF=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=8E=E7=9B=B4=E6=8E=A5=E9=87=8D=E5=90=AF=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LINGYUN.Abp.TuiJuhe.csproj | 2 +- .../LINGYUN/Abp/TuiJuhe/AbpTuiJuheModule.cs | 4 ++-- .../LINGYUN/Abp/TuiJuhe/TuiJuheResult.cs | 12 ++++++------ .../Program.cs | 1 + .../LY.MicroService.AuthServer/Program.cs | 3 ++- .../Program.cs | 1 + .../Program.cs | 1 + .../Program.cs | 1 + .../Program.cs | 2 +- .../Program.cs | 1 + .../Program.cs | 1 + .../Program.cs | 1 + .../Program.cs | 1 + .../LY.MicroService.identityServer/Program.cs | 1 + aspnet-core/start-http-api-host.bat | 5 +++++ .../Program.cs | 1 + build/modules.dependencies.json | 17 ++++++++++------- starter/10.start-ids.bat | 2 +- starter/11.start-ids-admin.bat | 2 +- starter/12.start-localization.bat | 2 +- starter/13.start-platform.bat | 2 +- starter/14.start-messages.bat | 2 +- starter/15.start-task-management.bat | 2 +- starter/16.start-webhooks-management.bat | 2 +- starter/17.start-workflow-management.bat | 2 +- starter/18.start-admin.bat | 2 +- starter/70.start-internal-gateway.bat | 2 +- 27 files changed, 47 insertions(+), 28 deletions(-) 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/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.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.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-http-api-host.bat b/aspnet-core/start-http-api-host.bat index 7c64a265d..a35e017b8 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 +exit + :restore dotnet restore exit 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/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/starter/10.start-ids.bat b/starter/10.start-ids.bat index 274356071..df8193c0d 100644 --- a/starter/10.start-ids.bat +++ b/starter/10.start-ids.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.IdentityServer identityserver --run \ No newline at end of file +.\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 index 6357b397a..333b8c6e7 100644 --- a/starter/11.start-ids-admin.bat +++ b/starter/11.start-ids-admin.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.IdentityServer.HttpApi.Host identityserver4-admin --run \ No newline at end of file +.\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 index 3b564d396..df40be992 100644 --- a/starter/12.start-localization.bat +++ b/starter/12.start-localization.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.LocalizationManagement.HttpApi.Host localization --run \ No newline at end of file +.\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 index 066ec1191..d65c1d21d 100644 --- a/starter/13.start-platform.bat +++ b/starter/13.start-platform.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.PlatformManagement.HttpApi.Host platform --run \ No newline at end of file +.\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 index efda80408..ab6c96c5c 100644 --- a/starter/14.start-messages.bat +++ b/starter/14.start-messages.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.RealtimeMessage.HttpApi.Host messages --run \ No newline at end of file +.\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 index ba18a7b32..402d0d8ed 100644 --- a/starter/15.start-task-management.bat +++ b/starter/15.start-task-management.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.TaskManagement.HttpApi.Host task-management --run \ No newline at end of file +.\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 index 0ed1619d5..4c9e405f2 100644 --- a/starter/16.start-webhooks-management.bat +++ b/starter/16.start-webhooks-management.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.WebhooksManagement.HttpApi.Host webhooks-management--run \ No newline at end of file +.\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 index d9c663a43..9f97f1b66 100644 --- a/starter/17.start-workflow-management.bat +++ b/starter/17.start-workflow-management.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.WorkflowManagement.HttpApi.Host workflow-management --run \ No newline at end of file +.\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 index 51631cfdd..3304a4411 100644 --- a/starter/18.start-admin.bat +++ b/starter/18.start-admin.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-http-api-host.bat LY.MicroService.BackendAdmin.HttpApi.Host admin --run \ No newline at end of file +.\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 index 8499c238c..dfb60d73c 100644 --- a/starter/70.start-internal-gateway.bat +++ b/starter/70.start-internal-gateway.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-internal-gateway.bat --run \ No newline at end of file +.\start-internal-gateway.bat \ No newline at end of file From 54a431e6a1b7be0754051334025d7c7b3c18e11a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Fri, 18 Aug 2023 19:07:14 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=B0=86=E6=96=87=E4=BB=B6=E5=88=86?= =?UTF-8?q?=E7=A6=BB=E4=BB=A5=E4=BE=BF=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=85=81=E8=AE=B8=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E7=9B=91=E8=A7=86=E6=96=87=E4=BB=B6=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90ocelot.json=EF=BC=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8A=A0=E8=BD=BD=E6=96=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=20=E7=BD=91=E5=85=B3=E5=A2=9E=E5=8A=A0settingmanagement?= =?UTF-8?q?=E7=9A=84{everything}=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...skManagementHttpApiHostModule.Configure.cs | 2 +- aspnet-core/start-http-api-host.bat | 2 +- aspnet-core/start-internal-gateway.bat | 5 + .../Ocelot/Configuration/AutoConfigOcelot.cs | 83 + .../{ => OcelotConfig}/ocelot.aggregate.json | 129 +- .../ocelot.backendadmin.json | 1268 +++-- .../{ => OcelotConfig}/ocelot.global.json | 48 +- .../{ => OcelotConfig}/ocelot.idsadmin.json | 435 +- .../ocelot.localization.json | 247 +- .../{ => OcelotConfig}/ocelot.messages.json | 714 ++- .../{ => OcelotConfig}/ocelot.platform.json | 617 ++- .../{ => OcelotConfig}/ocelot.task.json | 183 +- .../{ => OcelotConfig}/ocelot.webhook.json | 121 +- .../Program.cs | 13 +- .../ocelot.Development.json | 1895 ------- .../ocelot.json | 4349 ++++++++++++++++- starter/70.start-internal-gateway.bat | 2 +- 17 files changed, 6478 insertions(+), 3635 deletions(-) create mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/Ocelot/Configuration/AutoConfigOcelot.cs rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.aggregate.json (78%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.backendadmin.json (53%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.global.json (84%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.idsadmin.json (67%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.localization.json (86%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.messages.json (54%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.platform.json (78%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.task.json (86%) rename gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/{ => OcelotConfig}/ocelot.webhook.json (76%) delete mode 100644 gateways/internal/LINGYUN.MicroService.Internal.ApiGateway/src/LINGYUN.MicroService.Internal.ApiGateway/ocelot.Development.json 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/start-http-api-host.bat b/aspnet-core/start-http-api-host.bat index a35e017b8..08112f469 100644 --- a/aspnet-core/start-http-api-host.bat +++ b/aspnet-core/start-http-api-host.bat @@ -25,7 +25,7 @@ dotnet run exit :watchrun -dotnet watch run +dotnet watch run --no-restore exit :restore diff --git a/aspnet-core/start-internal-gateway.bat b/aspnet-core/start-internal-gateway.bat index d38602273..f6071eb8d 100644 --- a/aspnet-core/start-internal-gateway.bat +++ b/aspnet-core/start-internal-gateway.bat @@ -10,6 +10,7 @@ cd ..\gateways\internal\LINGYUN.MicroService.Internal.ApiGateway\src\LINGYUN.Mic 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 @@ -23,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/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/70.start-internal-gateway.bat b/starter/70.start-internal-gateway.bat index dfb60d73c..d4d7883bd 100644 --- a/starter/70.start-internal-gateway.bat +++ b/starter/70.start-internal-gateway.bat @@ -1,4 +1,4 @@ @echo off cls cd ..\aspnet-core\ -.\start-internal-gateway.bat \ No newline at end of file +.\start-internal-gateway.bat --watchrun \ No newline at end of file From 913d1eae2277f23e9b8a357e637402922b5e024a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=8F?= Date: Tue, 22 Aug 2023 15:22:15 +0800 Subject: [PATCH 7/7] powershell common build file add projects remoe redundent item in csproj file --- .../LINGYUN.Abp.Notifications.Domain.csproj | 4 ---- .../LINGYUN.Abp.Rules.RulesEngine.csproj | 4 ---- .../LINGYUN.Abp.TextTemplating.Application.csproj | 4 ---- build/build-aspnetcore-common.ps1 | 2 ++ 4 files changed, 2 insertions(+), 12 deletions(-) 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/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/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 = @()