From 952c24cb1ffce2550aee91842dfa1c49a1c5b2ce Mon Sep 17 00:00:00 2001 From: herodotus Date: Sat, 25 Sep 2021 10:56:12 +0800 Subject: [PATCH 1/3] perf: v2.5.4.140 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。 2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。 3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。 4. 修改默认验证码字体配置 5. 去除无用依赖包 6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。 7. 新增Camunda 官方脚本 8. 优化数据导入脚本 --- .jpb/jpb-settings.xml | 6 + README.md | 2 +- .../docker/docker-compose/herodotus/.env | 2 +- .../herodotus/env.skywalking.yml | 2 +- dependencies/pom.xml | 2 +- documents/guides/assets/js/app.11046e0a.js | 2 +- .../guides/assets/js/v-5b482e3b.84072c08.js | 2 +- .../guides/assets/js/v-c0f957a0.2d350416.js | 2 +- documents/guides/documents/index.html | 2 +- ...\346\226\260\346\227\245\345\277\227.html" | 2 +- packages/eurynome-cloud-assistant/pom.xml | 2 +- .../exception/HerodotusExceptionHandler.java | 8 +- .../TransactionRollbackException.java | 54 +++ .../platform/PersistenceException.java | 52 +++ packages/eurynome-cloud-common/pom.xml | 4 +- .../common/constant}/enums/Gender.java | 8 +- .../common/constant}/enums/Identity.java | 8 +- ...h2Expression.java => OauthExpression.java} | 20 +- .../constant/enums/OrganizationCategory.java | 101 ++++++ .../common/constant/enums/ResultStatus.java | 5 +- .../common/constant/enums/StatusEnum.java | 8 +- packages/eurynome-cloud-data/pom.xml | 4 +- .../data/properties/StampProperties.java | 8 +- packages/eurynome-cloud-kernel/pom.xml | 4 +- packages/eurynome-cloud-oauth-starter/pom.xml | 4 +- .../WebSecurityAutoConfiguration.java | 9 +- .../HerodotusOauthClientDetailsService.java | 2 +- packages/eurynome-cloud-oauth/pom.xml | 4 +- .../AuthorizationServerConfiguration.java | 2 +- packages/eurynome-cloud-rest/pom.xml | 4 +- .../rest/annotation/EnableHerodotusRest.java | 2 +- .../eurynome/rest/base/business/Pager.java | 2 +- .../rest/base/controller/BaseController.java | 6 +- .../BaseReadableRestController.java | 11 +- .../BaseWriteableRestController.java | 12 +- .../rest/base/controller/Controller.java | 15 +- .../base/controller/ReadableController.java | 11 +- .../base/controller/WriteableController.java | 15 +- .../base/service/AbstractCacheService.java | 2 +- .../rest/base/service/BaseLayeredService.java | 9 +- .../base/service/BaseReadableService.java | 18 +- .../base/service/BaseWriteableService.java | 2 +- .../rest/base/service/ReadableService.java | 155 +++++++-- .../rest/base/service/WriteableService.java | 33 +- .../configuration/JacksonConfiguration.java | 2 +- .../configuration/OpenAPIConfiguration.java | 4 +- .../rest/configuration/RestConfiguration.java | 2 +- .../RestTemplateConfiguration.java | 2 +- .../configuration/ServiceConfiguration.java | 2 +- .../UndertowWebServerFactoryCustomizer.java | 4 +- .../rest/properties/PlatformProperties.java | 6 +- .../rest/properties/RestProperties.java | 2 +- .../rest/properties/ServiceProperties.java | 2 +- .../security/AccessLimitedInterceptor.java | 2 +- .../rest/security/IdempotentInterceptor.java | 2 +- .../rest/security/XssHttpServletFilter.java | 4 +- .../XssHttpServletRequestWrapper.java | 2 +- packages/eurynome-cloud-security/pom.xml | 4 +- .../definition/core/SocialUserDetails.java | 52 +++ packages/eurynome-cloud-starter/pom.xml | 4 +- packages/pom.xml | 2 +- platform/eurynome-cloud-gateway/pom.xml | 4 +- platform/eurynome-cloud-management/pom.xml | 4 +- platform/eurynome-cloud-uaa/pom.xml | 4 +- platform/pom.xml | 2 +- pom.xml | 4 +- services/eurynome-cloud-bpmn-ability/pom.xml | 4 +- services/eurynome-cloud-bpmn-rest/pom.xml | 4 +- services/eurynome-cloud-upms-ability/pom.xml | 4 +- .../upms/ability/UpmsApplication.java | 6 - .../main/resources/META-INF/spring.factories | 4 + .../{sql => sqls}/upms-data-mysql.sql | 8 +- .../{sql => sqls}/upms-data-postgresql.sql | 10 +- services/eurynome-cloud-upms-api/pom.xml | 4 +- .../api/annotation/EnableUpmsInterface.java | 4 +- .../annotation/EnableUpmsRemoteService.java | 4 +- .../configuration/UpmsApiConfiguration.java | 17 +- .../upms/api/constants/UpmsConstants.java | 17 +- .../api/constants/enums/SupplierType.java | 8 +- .../api/constants/enums/TechnologyType.java | 8 +- .../upms/api/entity/development/Supplier.java | 4 +- .../upms/api/entity/hr/SysDepartment.java | 242 +++++++++++++ .../upms/api/entity/hr/SysEmployee.java | 324 ++++++++++++++++++ .../upms/api/entity/hr/SysOrganization.java | 223 ++++++++++++ .../upms/api/entity/hr/SysOwnership.java | 121 +++++++ .../upms/api/entity/hr/SysOwnershipView.java | 233 +++++++++++++ .../api/entity/oauth/OauthAccessToken.java | 131 +++++++ .../api/entity/oauth/OauthApplications.java | 10 +- .../upms/api/entity/oauth/OauthApproval.java | 129 +++++++ .../api/entity/oauth/OauthClientDetails.java | 4 +- .../api/entity/oauth/OauthClientToken.java | 108 ++++++ .../upms/api/entity/oauth/OauthCode.java | 79 +++++ .../api/entity/oauth/OauthRefreshToken.java | 90 +++++ .../{OAuth2Scopes.java => OauthScopes.java} | 8 +- .../upms/api/entity/system/SysAuthority.java | 37 +- .../api/entity/system/SysDefaultRole.java | 6 +- .../upms/api/entity/system/SysRole.java | 15 +- .../upms/api/entity/system/SysUser.java | 106 ++++-- .../OauthClientDetailsUUIDGenerator.java | 4 +- .../generator/SysAuthorityUUIDGenerator.java | 4 +- .../eurynome/upms/api/helper/UpmsHelper.java | 8 +- .../fegin/VerificationCodeFeignService.java | 8 +- .../remote/RemoteVerificationCodeService.java | 4 +- services/eurynome-cloud-upms-logic/pom.xml | 4 +- .../logic/annotation/EnableUpmsLogic.java | 8 +- .../configuration/UpmsLogicConfiguration.java | 16 +- .../upms/logic/dto/OwnershipConfig.java | 121 +++++++ .../upms/logic/dto/OwnershipRemove.java | 84 +++++ .../LocalRequestMappingGatherListener.java | 2 +- .../RemoteRequestMappingGatherListener.java | 4 +- .../RequestMappingStoreProcessor.java | 4 +- .../development/SupplierRepository.java | 22 ++ .../hr/SysDepartmentRepository.java | 42 +++ .../repository/hr/SysEmployeeRepository.java | 36 ++ .../hr/SysOrganizationRepository.java | 46 +++ .../repository/hr/SysOwnershipRepository.java | 62 ++++ .../hr/SysOwnershipViewRepository.java | 45 +++ .../oauth/OauthApplicationsRepository.java | 8 +- .../oauth/OauthClientDetailsRepository.java | 8 +- .../oauth/OauthScopesRepository.java | 12 +- .../system/SysAuthorityRepository.java | 8 +- .../system/SysDefaultRoleRepository.java | 2 +- .../repository/system/SysRoleRepository.java | 22 ++ .../repository/system/SysUserRepository.java | 8 +- .../service/development/SupplierService.java | 22 ++ .../service/hr/SysDepartmentService.java | 102 ++++++ .../logic/service/hr/SysEmployeeService.java | 283 +++++++++++++++ .../service/hr/SysOrganizationService.java | 133 +++++++ .../logic/service/hr/SysOwnershipService.java | 128 +++++++ .../service/hr/SysOwnershipViewService.java | 86 +++++ .../oauth/OauthApplicationsService.java | 16 +- .../oauth/OauthClientDetailsService.java | 8 +- .../service/oauth/OauthScopesService.java | 18 +- .../service/system/SysAuthorityService.java | 20 +- .../service/system/SysDefaultRoleService.java | 2 +- .../logic/service/system/SysRoleService.java | 12 +- .../logic/service/system/SysUserService.java | 108 +++++- services/eurynome-cloud-upms-rest/pom.xml | 4 +- .../upms/rest/annotation/EnableUpmsRest.java | 8 +- .../configuration/UpmsRestConfiguration.java | 10 +- .../controller/UpmsConstantsController.java | 22 ++ .../development/SupplierController.java | 22 ++ .../hr/SysDepartmentController.java | 127 +++++++ .../controller/hr/SysEmployeeController.java | 186 ++++++++++ .../hr/SysOrganizationController.java | 151 ++++++++ .../controller/hr/SysOwnershipController.java | 56 +++ .../hr/SysOwnershipViewController.java | 77 +++++ .../oauth/OauthApplicationsController.java | 24 +- .../oauth/OauthClientDetailsController.java | 24 +- .../oauth/OauthScopesController.java | 34 +- .../system/SysAuthorityController.java | 14 +- .../controller/system/SysRoleController.java | 12 +- .../controller/system/SysUserController.java | 12 +- services/pom.xml | 2 +- 154 files changed, 4601 insertions(+), 430 deletions(-) create mode 100644 .jpb/jpb-settings.xml create mode 100644 packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/persistence/TransactionRollbackException.java create mode 100644 packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/platform/PersistenceException.java rename {services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants => packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant}/enums/Gender.java (93%) rename {services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants => packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant}/enums/Identity.java (93%) rename packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/{OAuth2Expression.java => OauthExpression.java} (82%) create mode 100644 packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OrganizationCategory.java create mode 100644 packages/eurynome-cloud-security/src/main/java/cn/herodotus/eurynome/security/definition/core/SocialUserDetails.java create mode 100644 services/eurynome-cloud-upms-ability/src/main/resources/META-INF/spring.factories rename services/eurynome-cloud-upms-ability/src/main/resources/{sql => sqls}/upms-data-mysql.sql (97%) rename services/eurynome-cloud-upms-ability/src/main/resources/{sql => sqls}/upms-data-postgresql.sql (97%) create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysDepartment.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysEmployee.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOrganization.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnership.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnershipView.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthAccessToken.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApproval.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientToken.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthCode.java create mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthRefreshToken.java rename services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/{OAuth2Scopes.java => OauthScopes.java} (96%) create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysDepartmentRepository.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysEmployeeRepository.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOrganizationRepository.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipViewRepository.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java create mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java create mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java create mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java create mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java create mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java create mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java diff --git a/.jpb/jpb-settings.xml b/.jpb/jpb-settings.xml new file mode 100644 index 000000000..935cf0d5a --- /dev/null +++ b/.jpb/jpb-settings.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/README.md b/README.md index ae9648515..8458458f0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Nacos 2.0.3 License Apache 2.0 码匠君 - Version 2.5.4.140 + Version 2.5.5.0 Gitee star Gitee fork

diff --git a/configurations/docker/docker-compose/herodotus/.env b/configurations/docker/docker-compose/herodotus/.env index dd7141b0f..3d390e89c 100644 --- a/configurations/docker/docker-compose/herodotus/.env +++ b/configurations/docker/docker-compose/herodotus/.env @@ -1,4 +1,4 @@ -VERSION=2.5.4.140 +VERSION=2.5.5.0 GATEWAY_SERVICE_NAME=eurynome-cloud-gateway GATEWAY_SERVICE_PORT=8847 UAA_SERVICE_NAME=eurynome-cloud-uaa diff --git a/configurations/docker/docker-compose/herodotus/env.skywalking.yml b/configurations/docker/docker-compose/herodotus/env.skywalking.yml index 9b894d67c..0cb4c1488 100644 --- a/configurations/docker/docker-compose/herodotus/env.skywalking.yml +++ b/configurations/docker/docker-compose/herodotus/env.skywalking.yml @@ -21,4 +21,4 @@ services: ports: - "8878:8080" environment: - SW_OAP_ADDRESS: oap:12800 \ No newline at end of file + SW_OAP_ADDRESS: http://oap:12800 \ No newline at end of file diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 6adee3f94..829ad71b4 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -35,7 +35,7 @@ cn.herodotus.eurynome dependencies - 2.5.4.140 + 2.5.5.0 pom eurynome-cloud-dependencies diff --git a/documents/guides/assets/js/app.11046e0a.js b/documents/guides/assets/js/app.11046e0a.js index da3dbde0f..74d591987 100644 --- a/documents/guides/assets/js/app.11046e0a.js +++ b/documents/guides/assets/js/app.11046e0a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[143],{3131:(e,l,t)=>{t.d(l,{g:()=>r});var i=t(2009),d=t(6971),n=t(1598),s=t(1843);const r=[i.Z,d.Z,n.Z,s.Z]},9947:(e,l,t)=>{t.d(l,{p:()=>i});const i=[t(3051).Z]},4611:(e,l,t)=>{t.d(l,{l:()=>s});var i=t(8866),d=t(1263),n=t(6243);const s=[i.Z,d.Z,n.Z]},4150:(e,l,t)=>{t.d(l,{Z:()=>d});var i=t(6252);const d={404:(0,i.RC)((()=>t.e(491).then(t.bind(t,8491)))),Layout:(0,i.RC)((()=>t.e(293).then(t.bind(t,3293))))}},6056:(e,l,t)=>{t.d(l,{b:()=>d});var i=t(6252);const d={"v-8daa1a0e":(0,i.RC)((()=>t.e(509).then(t.bind(t,6797)))),"v-344b5769":(0,i.RC)((()=>t.e(861).then(t.bind(t,8497)))),"v-9a0d6c6c":(0,i.RC)((()=>t.e(247).then(t.bind(t,5190)))),"v-c0f957a0":(0,i.RC)((()=>t.e(781).then(t.bind(t,3988)))),"v-4cbee12b":(0,i.RC)((()=>t.e(967).then(t.bind(t,2324)))),"v-cff5f184":(0,i.RC)((()=>t.e(243).then(t.bind(t,2197)))),"v-6430ce6c":(0,i.RC)((()=>t.e(4).then(t.bind(t,683)))),"v-f283941e":(0,i.RC)((()=>t.e(658).then(t.bind(t,2038)))),"v-4331d874":(0,i.RC)((()=>t.e(979).then(t.bind(t,7276)))),"v-eef3d90a":(0,i.RC)((()=>t.e(701).then(t.bind(t,9229)))),"v-23340e69":(0,i.RC)((()=>t.e(152).then(t.bind(t,4954)))),"v-5fe0d252":(0,i.RC)((()=>t.e(188).then(t.bind(t,9735)))),"v-49381304":(0,i.RC)((()=>t.e(925).then(t.bind(t,2604)))),"v-150eedcd":(0,i.RC)((()=>t.e(779).then(t.bind(t,6372)))),"v-5f81e486":(0,i.RC)((()=>t.e(951).then(t.bind(t,9138)))),"v-040481e0":(0,i.RC)((()=>t.e(365).then(t.bind(t,4749)))),"v-661abe0c":(0,i.RC)((()=>t.e(129).then(t.bind(t,6621)))),"v-3413cbec":(0,i.RC)((()=>t.e(90).then(t.bind(t,2875)))),"v-31203a50":(0,i.RC)((()=>t.e(398).then(t.bind(t,7403)))),"v-25b47c13":(0,i.RC)((()=>t.e(446).then(t.bind(t,6207)))),"v-34232cb1":(0,i.RC)((()=>t.e(201).then(t.bind(t,9932)))),"v-5b482e3b":(0,i.RC)((()=>t.e(961).then(t.bind(t,1138)))),"v-3706649a":(0,i.RC)((()=>t.e(88).then(t.bind(t,3881))))}},9706:(e,l,t)=>{t.d(l,{T:()=>i});const i={"v-8daa1a0e":()=>t.e(509).then(t.bind(t,6464)).then((({data:e})=>e)),"v-344b5769":()=>t.e(861).then(t.bind(t,484)).then((({data:e})=>e)),"v-9a0d6c6c":()=>t.e(247).then(t.bind(t,6281)).then((({data:e})=>e)),"v-c0f957a0":()=>t.e(781).then(t.bind(t,3597)).then((({data:e})=>e)),"v-4cbee12b":()=>t.e(967).then(t.bind(t,4363)).then((({data:e})=>e)),"v-cff5f184":()=>t.e(243).then(t.bind(t,7738)).then((({data:e})=>e)),"v-6430ce6c":()=>t.e(4).then(t.bind(t,890)).then((({data:e})=>e)),"v-f283941e":()=>t.e(658).then(t.bind(t,5517)).then((({data:e})=>e)),"v-4331d874":()=>t.e(979).then(t.bind(t,8002)).then((({data:e})=>e)),"v-eef3d90a":()=>t.e(701).then(t.bind(t,7502)).then((({data:e})=>e)),"v-23340e69":()=>t.e(152).then(t.bind(t,7341)).then((({data:e})=>e)),"v-5fe0d252":()=>t.e(188).then(t.bind(t,3133)).then((({data:e})=>e)),"v-49381304":()=>t.e(925).then(t.bind(t,6445)).then((({data:e})=>e)),"v-150eedcd":()=>t.e(779).then(t.bind(t,2236)).then((({data:e})=>e)),"v-5f81e486":()=>t.e(951).then(t.bind(t,9865)).then((({data:e})=>e)),"v-040481e0":()=>t.e(365).then(t.bind(t,6424)).then((({data:e})=>e)),"v-661abe0c":()=>t.e(129).then(t.bind(t,5251)).then((({data:e})=>e)),"v-3413cbec":()=>t.e(90).then(t.bind(t,7635)).then((({data:e})=>e)),"v-31203a50":()=>t.e(398).then(t.bind(t,3657)).then((({data:e})=>e)),"v-25b47c13":()=>t.e(446).then(t.bind(t,3166)).then((({data:e})=>e)),"v-34232cb1":()=>t.e(201).then(t.bind(t,6803)).then((({data:e})=>e)),"v-5b482e3b":()=>t.e(961).then(t.bind(t,7149)).then((({data:e})=>e)),"v-3706649a":()=>t.e(88).then(t.bind(t,1801)).then((({data:e})=>e))}},4634:(e,l,t)=>{t.d(l,{g:()=>d});var i=t(4802);const d=[["v-8daa1a0e","/","",["/index.html","/README.md"]],["v-344b5769","/basic-knowledge/","介绍",["/basic-knowledge/index.html","/basic-knowledge/README.md"]],["v-9a0d6c6c","/basic-knowledge/spring-data-jpa.html","Spring Data JPA",["/basic-knowledge/spring-data-jpa","/basic-knowledge/spring-data-jpa.md"]],["v-c0f957a0","/documents/","介绍",["/documents/index.html","/documents/README.md"]],["v-4cbee12b","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html","前端手册",["/documents/前端手册.html","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C","/documents/前端手册.md","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.md"]],["v-cff5f184","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html","多环境配置",["/documents/多环境配置.html","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE","/documents/多环境配置.md","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.md"]],["v-6430ce6c","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html","快速了解",["/documents/快速了解.html","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3","/documents/快速了解.md","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.md"]],["v-f283941e","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html","数据初始化",["/documents/数据初始化.html","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96","/documents/数据初始化.md","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.md"]],["v-4331d874","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html","新建子模块",["/documents/新建子模块.html","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97","/documents/新建子模块.md","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.md"]],["v-eef3d90a","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html","更换数据库",["/documents/更换数据库.html","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93","/documents/更换数据库.md","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.md"]],["v-23340e69","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html","环境部署",["/documents/环境部署.html","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2","/documents/环境部署.md","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.md"]],["v-5fe0d252","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html","项目介绍",["/documents/项目介绍.html","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D","/documents/项目介绍.md","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.md"]],["v-49381304","/documents-athena/","介绍",["/documents-athena/index.html","/documents-athena/README.md"]],["v-150eedcd","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html","OAuth2",["/microservices/OAuth2授权标准.html","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86","/microservices/OAuth2授权标准.md","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.md"]],["v-5f81e486","/microservices/","介绍",["/microservices/index.html","/microservices/README.md"]],["v-040481e0","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html","容器化技术",["/microservices/容器化技术.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF","/microservices/容器化技术.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.md"]],["v-661abe0c","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html","容器化部署",["/microservices/容器化部署.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2","/microservices/容器化部署.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.md"]],["v-3413cbec","/others/MySQL.html","MySQL 常见问题",["/others/MySQL","/others/MySQL.md"]],["v-31203a50","/others/Nacos.html","Nacos 常见问题",["/others/Nacos","/others/Nacos.md"]],["v-25b47c13","/others/","说明",["/others/index.html","/others/README.md"]],["v-34232cb1","/others/Redis.html","Redis 常见问题",["/others/Redis","/others/Redis.md"]],["v-5b482e3b","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html","更新日志",["/others/更新日志.html","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97","/others/更新日志.md","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.md"]],["v-3706649a","/404.html","",["/404"]]].reduce(((e,[l,t,d,n])=>(e.push({name:l,path:t,component:i.Y,meta:{title:d}},...n.map((e=>({path:e,redirect:t})))),e)),[{name:"404",path:"/:catchAll(.*)",component:i.Y}])},5472:(e,l,t)=>{t.d(l,{D:()=>i});const i=[{title:"",headers:[],path:"/",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/basic-knowledge/",pathLocale:"/",extraFields:[]},{title:"Spring Data JPA",headers:[{level:2,title:"JPA",slug:"jpa",children:[{level:3,title:"Spring Data Jpa",slug:"spring-data-jpa-1",children:[]},{level:3,title:"Jpa、Hibernate、Spring Data Jpa三者之间的关系",slug:"jpa、hibernate、spring-data-jpa三者之间的关系",children:[]},{level:3,title:"Spring Data Jpa的java配置方案",slug:"spring-data-jpa的java配置方案",children:[]},{level:3,title:"Spring Boot整合Spring Data Jpa",slug:"spring-boot整合spring-data-jpa",children:[]}]},{level:2,title:"Spring Data Jpa的使用",slug:"spring-data-jpa的使用",children:[{level:3,title:"Spring Data Jpa UML类图",slug:"spring-data-jpa-uml类图",children:[]},{level:3,title:"简单的REST CRUD示例",slug:"简单的rest-crud示例",children:[]}]},{level:2,title:"Spring Data Jpa使用详解",slug:"spring-data-jpa使用详解",children:[{level:3,title:"Spring Data查询方法",slug:"spring-data查询方法",children:[]},{level:3,title:"查询方法",slug:"查询方法",children:[]},{level:3,title:"多表查询",slug:"多表查询",children:[]}]},{level:2,title:"审计Auditing",slug:"审计auditing",children:[{level:3,title:"实现AuditorAware接口",slug:"实现auditoraware接口",children:[]},{level:3,title:"启用Jpa审计功能",slug:"启用jpa审计功能",children:[]}]}],path:"/basic-knowledge/spring-data-jpa.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],path:"/documents/",pathLocale:"/",extraFields:[]},{title:"前端手册",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],path:"/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html",pathLocale:"/",extraFields:[]},{title:"多环境配置",headers:[{level:2,title:"什么是多环境配置?",slug:"什么是多环境配置",children:[]},{level:2,title:"Maven 多环境配置",slug:"maven-多环境配置",children:[]},{level:2,title:"Spring Boot 多环境配置",slug:"spring-boot-多环境配置",children:[{level:3,title:"Spring Boot 环境设置机制",slug:"spring-boot-环境设置机制",children:[]},{level:3,title:"配置多环境",slug:"配置多环境",children:[]},{level:3,title:"指定环境",slug:"指定环境",children:[]},{level:3,title:"单一文件写法",slug:"单一文件写法",children:[]}]},{level:2,title:"Nacos 多环境配置",slug:"nacos-多环境配置",children:[{level:3,title:"Data Id",slug:"data-id",children:[]},{level:3,title:"Group",slug:"group",children:[]},{level:3,title:"Namespace",slug:"namespace",children:[]}]},{level:2,title:"Docker和K8S 多环境配置",slug:"docker和k8s-多环境配置",children:[]},{level:2,title:"Eurynome Cloud 的多环境配置",slug:"eurynome-cloud-的多环境配置",children:[{level:3,title:"Eurynome Cloud 中的Maven多环境配置",slug:"eurynome-cloud-中的maven多环境配置",children:[]},{level:3,title:"Eurynome Cloud 中的Spring Boot和Nacos多环境配置",slug:"eurynome-cloud-中的spring-boot和nacos多环境配置",children:[]}]}],path:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"快速了解",headers:[{level:2,title:"项目简介",slug:"项目简介",children:[]},{level:2,title:"主要特性",slug:"主要特性",children:[]},{level:2,title:"技术选型",slug:"技术选型",children:[]},{level:2,title:"内置功能",slug:"内置功能",children:[]}],path:"/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html",pathLocale:"/",extraFields:[]},{title:"数据初始化",headers:[{level:2,title:"系统初次部署数据库初始化内容",slug:"系统初次部署数据库初始化内容",children:[]},{level:2,title:"数据表及数据初始化说明",slug:"数据表及数据初始化说明",children:[{level:3,title:"[1]、OAuth2 标准表结构的创建",slug:"_1-、oauth2-标准表结构的创建",children:[]},{level:3,title:"[2]、服务中涉及业务表的创建",slug:"_2-、服务中涉及业务表的创建",children:[]},{level:3,title:"[3]、个别View或函数的创建(可选)",slug:"_3-、个别view或函数的创建-可选",children:[]},{level:3,title:"[4]、默认用户、角色等数据的初始化",slug:"_4-、默认用户、角色等数据的初始化",children:[]},{level:3,title:"[5]、服务Rest API接口数据初始化",slug:"_5-、服务rest-api接口数据初始化",children:[]}]},{level:2,title:"数据表和数据自动初始化",slug:"数据表和数据自动初始化",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]},{level:3,title:"具体步骤",slug:"具体步骤",children:[]}]},{level:2,title:"系统默认账号",slug:"系统默认账号",children:[]}],path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",pathLocale:"/",extraFields:[]},{title:"新建子模块",headers:[{level:2,title:"在现有工程内,新建常规模块",slug:"在现有工程内-新建常规模块",children:[{level:3,title:"手工新建子模块(非微服务模块)",slug:"手工新建子模块-非微服务模块",children:[]},{level:3,title:"IDEA新建子模块(非微服务模块)",slug:"idea新建子模块-非微服务模块",children:[]}]},{level:2,title:"在现有工程内,新建微服务模块",slug:"在现有工程内-新建微服务模块",children:[{level:3,title:"手工新建子模块(非常规模块)",slug:"手工新建子模块-非常规模块",children:[]},{level:3,title:"IDEA新建子模块(非常规模块)",slug:"idea新建子模块-非常规模块",children:[]}]},{level:2,title:"在现有工程外,新建微服务独立模块工程",slug:"在现有工程外-新建微服务独立模块工程",children:[]}],path:"/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html",pathLocale:"/",extraFields:[]},{title:"更换数据库",headers:[{level:2,title:"为什么默认使用PostgreSQL数据库?",slug:"为什么默认使用postgresql数据库",children:[{level:3,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[]},{level:3,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[]},{level:3,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[]},{level:3,title:"总结",slug:"总结",children:[]}]},{level:2,title:"Spring Boot Starter Data JPA 更换数据库方式",slug:"spring-boot-starter-data-jpa-更换数据库方式",children:[]},{level:2,title:"Eurynome Cloud 更换数据库方式",slug:"eurynome-cloud-更换数据库方式",children:[{level:3,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:3,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:3,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:3,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:3,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]}]}],path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",pathLocale:"/",extraFields:[]},{title:"环境部署",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"运行系统",slug:"运行系统",children:[{level:3,title:"后端运行",slug:"后端运行",children:[]},{level:3,title:"前端运行",slug:"前端运行",children:[]}]}],path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"项目介绍",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"Athena 是什么?",slug:"athena-是什么",children:[]},{level:2,title:"Athena 不是什么?",slug:"athena-不是什么",children:[]},{level:2,title:"为什么 Athena 和 Eurynome Cloud 共享代码?",slug:"为什么-athena-和-eurynome-cloud-共享代码",children:[]},{level:2,title:"为什么构建 Athena?",slug:"为什么构建-athena",children:[]}],path:"/documents-athena/",pathLocale:"/",extraFields:[]},{title:"OAuth2",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/microservices/",pathLocale:"/",extraFields:[]},{title:"容器化技术",headers:[{level:2,title:"Docker能解决什么问题?",slug:"docker能解决什么问题",children:[{level:3,title:"麻烦的环境配置",slug:"麻烦的环境配置",children:[]},{level:3,title:"现在的应用程序",slug:"现在的应用程序",children:[]},{level:3,title:"新架构的挑战",slug:"新架构的挑战",children:[]},{level:3,title:"统一的管理",slug:"统一的管理",children:[]}]},{level:2,title:"“容器”",slug:"容器",children:[{level:3,title:"虚拟化技术",slug:"虚拟化技术",children:[]},{level:3,title:"容器技术",slug:"容器技术",children:[]}]},{level:2,title:"Docker",slug:"docker",children:[{level:3,title:"Docker架构",slug:"docker架构",children:[]},{level:3,title:"Docker底层实现",slug:"docker底层实现",children:[]},{level:3,title:"Docker核心技术",slug:"docker核心技术",children:[]},{level:3,title:"Docker VS VM",slug:"docker-vs-vm",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html",pathLocale:"/",extraFields:[]},{title:"容器化部署",headers:[{level:2,title:"本地容器部署",slug:"本地容器部署",children:[{level:3,title:"[1]、本地Docker安装(Windows版)",slug:"_1-、本地docker安装-windows版",children:[]},{level:3,title:"[2]、安装配置MySQL",slug:"_2-、安装配置mysql",children:[]},{level:3,title:"[2]、安装配置PostgreSQL",slug:"_2-、安装配置postgresql",children:[]},{level:3,title:"[3]、安装配置Redis",slug:"_3-、安装配置redis",children:[]},{level:3,title:"[4]、部署Kafka、Zookeeper、Nacos、ELK、Sentinel Dashboard",slug:"_4-、部署kafka、zookeeper、nacos、elk、sentinel-dashboard",children:[]},{level:3,title:"[5]、部署Skywalking",slug:"_5-、部署skywalking",children:[]},{level:3,title:"[6]、服务打包部署",slug:"_6-、服务打包部署",children:[]}]},{level:2,title:"服务器容器部署",slug:"服务器容器部署",children:[]},{level:2,title:"Docker打包设计",slug:"docker打包设计",children:[{level:3,title:"Eurynome Cloud Docker 打包设计初衷",slug:"eurynome-cloud-docker-打包设计初衷",children:[]},{level:3,title:"Eurynome Cloud Docker 打包的设计",slug:"eurynome-cloud-docker-打包的设计",children:[]},{level:3,title:"Eurynome Cloud Docker 打包使用方法",slug:"eurynome-cloud-docker-打包使用方法",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"MySQL 常见问题",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],path:"/others/MySQL.html",pathLocale:"/",extraFields:[]},{title:"Nacos 常见问题",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],path:"/others/Nacos.html",pathLocale:"/",extraFields:[]},{title:"说明",headers:[],path:"/others/",pathLocale:"/",extraFields:[]},{title:"Redis 常见问题",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],path:"/others/Redis.html",pathLocale:"/",extraFields:[]},{title:"更新日志",headers:[{level:2,title:"v2.5.4.140",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}]},5220:(e,l,t)=>{t.d(l,{H:()=>i});const i={base:"/eurynome-cloud/",lang:"zh-CN",title:"Eurynome Cloud",description:"Eurynome Cloud, 在线文档, 微服务, 微服务架构, Spring Boot,Spring Cloud,Spring Cloud Alibaba, Spring Security, OAuth 2, Skywalking, Nacos",head:[["link",{rel:"icon",href:"/eurynome-cloud/images/logo.png"}],["meta",{name:"keywords",content:"Eurynome Cloud,微服务,Spring Boot,Spirng Cloud,Spring Cloud Alibaba,Spring Security,OAuth2,Nacos,Skywalking"}],["script",{},'var _hmt = _hmt || [];\n (function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?376190fed0f613f413a39d7aa19f387d";\n var s = document.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(hm, s);\n })();']],locales:{}}},2232:(e,l,t)=>{t.d(l,{f:()=>i});const i={logo:"/images/logo.png",darkMode:!0,lastUpdatedText:"更新时间",contributorsText:"贡献者",navbar:[{text:"指南",link:"/documents/"},{text:"单体版",link:"/documents-athena/"},{text:"微服务技术栈",link:"/microservices/"},{text:"了解更多",children:[{text:"延伸",children:[{text:"了解基础知识",link:"/basic-knowledge/"}]},{text:"帮助",children:[{text:"我要提问",link:"https://gitee.com/herodotus/eurynome-cloud/issues"},{text:"常见问题",link:"/others/README.md"},{text:"更新日志",link:"/others/更新日志.md"},{text:"加入QQ群",link:"https://jq.qq.com/?_wv=1027&k=bIerJVy8"}]}]},{text:"Gitee",children:[{text:"后端源码",link:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://gitee.com/herodotus/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://gitee.com/herodotus/herodotus-cloud-athena",target:"_blank"}]},{text:"Github",children:[{text:"后端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://github.com/herodotus-cloud/herodotus-cloud-athena",target:"_blank"}]}],sidebar:{"/documents/":[{text:"指南",children:["/documents/README.md","/documents/快速了解.md","/documents/项目介绍.md","/documents/环境部署.md"]},{text:"后端手册",children:["/documents/数据初始化.md","/documents/更换数据库.md","/documents/多环境配置.md","/documents/新建子模块.md"]},{text:"前端手册",children:["/documents/前端手册.md"]}],"/documents-athena/":[{text:"单体版",children:["/documents-athena/README.md"]}],"/microservices/":[{text:"微服务技术栈",children:["/microservices/README.md","/microservices/OAuth2授权标准.md","/microservices/容器化技术.md","/microservices/容器化部署.md"]}],"/basic-knowledge/":[{text:"基础知识",children:["/basic-knowledge/README.md","/basic-knowledge/spring-data-jpa.md"]}],"/others/":[{text:"其它内容",children:["/others/README.md","/others/Nacos.md","/others/Redis.md","/others/更新日志.md"]}]},locales:{"/":{selectLanguageName:"English"}},repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,contributors:!0,notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"}}},e=>{e.O(0,[512,567],(()=>(5698,e(e.s=5698)))),e.O()}]); \ No newline at end of file +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[143],{3131:(e,l,t)=>{t.d(l,{g:()=>r});var i=t(2009),d=t(6971),n=t(1598),s=t(1843);const r=[i.Z,d.Z,n.Z,s.Z]},9947:(e,l,t)=>{t.d(l,{p:()=>i});const i=[t(3051).Z]},4611:(e,l,t)=>{t.d(l,{l:()=>s});var i=t(8866),d=t(1263),n=t(6243);const s=[i.Z,d.Z,n.Z]},4150:(e,l,t)=>{t.d(l,{Z:()=>d});var i=t(6252);const d={404:(0,i.RC)((()=>t.e(491).then(t.bind(t,8491)))),Layout:(0,i.RC)((()=>t.e(293).then(t.bind(t,3293))))}},6056:(e,l,t)=>{t.d(l,{b:()=>d});var i=t(6252);const d={"v-8daa1a0e":(0,i.RC)((()=>t.e(509).then(t.bind(t,6797)))),"v-344b5769":(0,i.RC)((()=>t.e(861).then(t.bind(t,8497)))),"v-9a0d6c6c":(0,i.RC)((()=>t.e(247).then(t.bind(t,5190)))),"v-c0f957a0":(0,i.RC)((()=>t.e(781).then(t.bind(t,3988)))),"v-4cbee12b":(0,i.RC)((()=>t.e(967).then(t.bind(t,2324)))),"v-cff5f184":(0,i.RC)((()=>t.e(243).then(t.bind(t,2197)))),"v-6430ce6c":(0,i.RC)((()=>t.e(4).then(t.bind(t,683)))),"v-f283941e":(0,i.RC)((()=>t.e(658).then(t.bind(t,2038)))),"v-4331d874":(0,i.RC)((()=>t.e(979).then(t.bind(t,7276)))),"v-eef3d90a":(0,i.RC)((()=>t.e(701).then(t.bind(t,9229)))),"v-23340e69":(0,i.RC)((()=>t.e(152).then(t.bind(t,4954)))),"v-5fe0d252":(0,i.RC)((()=>t.e(188).then(t.bind(t,9735)))),"v-49381304":(0,i.RC)((()=>t.e(925).then(t.bind(t,2604)))),"v-150eedcd":(0,i.RC)((()=>t.e(779).then(t.bind(t,6372)))),"v-5f81e486":(0,i.RC)((()=>t.e(951).then(t.bind(t,9138)))),"v-040481e0":(0,i.RC)((()=>t.e(365).then(t.bind(t,4749)))),"v-661abe0c":(0,i.RC)((()=>t.e(129).then(t.bind(t,6621)))),"v-3413cbec":(0,i.RC)((()=>t.e(90).then(t.bind(t,2875)))),"v-31203a50":(0,i.RC)((()=>t.e(398).then(t.bind(t,7403)))),"v-25b47c13":(0,i.RC)((()=>t.e(446).then(t.bind(t,6207)))),"v-34232cb1":(0,i.RC)((()=>t.e(201).then(t.bind(t,9932)))),"v-5b482e3b":(0,i.RC)((()=>t.e(961).then(t.bind(t,1138)))),"v-3706649a":(0,i.RC)((()=>t.e(88).then(t.bind(t,3881))))}},9706:(e,l,t)=>{t.d(l,{T:()=>i});const i={"v-8daa1a0e":()=>t.e(509).then(t.bind(t,6464)).then((({data:e})=>e)),"v-344b5769":()=>t.e(861).then(t.bind(t,484)).then((({data:e})=>e)),"v-9a0d6c6c":()=>t.e(247).then(t.bind(t,6281)).then((({data:e})=>e)),"v-c0f957a0":()=>t.e(781).then(t.bind(t,3597)).then((({data:e})=>e)),"v-4cbee12b":()=>t.e(967).then(t.bind(t,4363)).then((({data:e})=>e)),"v-cff5f184":()=>t.e(243).then(t.bind(t,7738)).then((({data:e})=>e)),"v-6430ce6c":()=>t.e(4).then(t.bind(t,890)).then((({data:e})=>e)),"v-f283941e":()=>t.e(658).then(t.bind(t,5517)).then((({data:e})=>e)),"v-4331d874":()=>t.e(979).then(t.bind(t,8002)).then((({data:e})=>e)),"v-eef3d90a":()=>t.e(701).then(t.bind(t,7502)).then((({data:e})=>e)),"v-23340e69":()=>t.e(152).then(t.bind(t,7341)).then((({data:e})=>e)),"v-5fe0d252":()=>t.e(188).then(t.bind(t,3133)).then((({data:e})=>e)),"v-49381304":()=>t.e(925).then(t.bind(t,6445)).then((({data:e})=>e)),"v-150eedcd":()=>t.e(779).then(t.bind(t,2236)).then((({data:e})=>e)),"v-5f81e486":()=>t.e(951).then(t.bind(t,9865)).then((({data:e})=>e)),"v-040481e0":()=>t.e(365).then(t.bind(t,6424)).then((({data:e})=>e)),"v-661abe0c":()=>t.e(129).then(t.bind(t,5251)).then((({data:e})=>e)),"v-3413cbec":()=>t.e(90).then(t.bind(t,7635)).then((({data:e})=>e)),"v-31203a50":()=>t.e(398).then(t.bind(t,3657)).then((({data:e})=>e)),"v-25b47c13":()=>t.e(446).then(t.bind(t,3166)).then((({data:e})=>e)),"v-34232cb1":()=>t.e(201).then(t.bind(t,6803)).then((({data:e})=>e)),"v-5b482e3b":()=>t.e(961).then(t.bind(t,7149)).then((({data:e})=>e)),"v-3706649a":()=>t.e(88).then(t.bind(t,1801)).then((({data:e})=>e))}},4634:(e,l,t)=>{t.d(l,{g:()=>d});var i=t(4802);const d=[["v-8daa1a0e","/","",["/index.html","/README.md"]],["v-344b5769","/basic-knowledge/","介绍",["/basic-knowledge/index.html","/basic-knowledge/README.md"]],["v-9a0d6c6c","/basic-knowledge/spring-data-jpa.html","Spring Data JPA",["/basic-knowledge/spring-data-jpa","/basic-knowledge/spring-data-jpa.md"]],["v-c0f957a0","/documents/","介绍",["/documents/index.html","/documents/README.md"]],["v-4cbee12b","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html","前端手册",["/documents/前端手册.html","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C","/documents/前端手册.md","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.md"]],["v-cff5f184","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html","多环境配置",["/documents/多环境配置.html","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE","/documents/多环境配置.md","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.md"]],["v-6430ce6c","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html","快速了解",["/documents/快速了解.html","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3","/documents/快速了解.md","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.md"]],["v-f283941e","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html","数据初始化",["/documents/数据初始化.html","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96","/documents/数据初始化.md","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.md"]],["v-4331d874","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html","新建子模块",["/documents/新建子模块.html","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97","/documents/新建子模块.md","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.md"]],["v-eef3d90a","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html","更换数据库",["/documents/更换数据库.html","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93","/documents/更换数据库.md","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.md"]],["v-23340e69","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html","环境部署",["/documents/环境部署.html","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2","/documents/环境部署.md","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.md"]],["v-5fe0d252","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html","项目介绍",["/documents/项目介绍.html","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D","/documents/项目介绍.md","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.md"]],["v-49381304","/documents-athena/","介绍",["/documents-athena/index.html","/documents-athena/README.md"]],["v-150eedcd","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html","OAuth2",["/microservices/OAuth2授权标准.html","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86","/microservices/OAuth2授权标准.md","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.md"]],["v-5f81e486","/microservices/","介绍",["/microservices/index.html","/microservices/README.md"]],["v-040481e0","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html","容器化技术",["/microservices/容器化技术.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF","/microservices/容器化技术.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.md"]],["v-661abe0c","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html","容器化部署",["/microservices/容器化部署.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2","/microservices/容器化部署.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.md"]],["v-3413cbec","/others/MySQL.html","MySQL 常见问题",["/others/MySQL","/others/MySQL.md"]],["v-31203a50","/others/Nacos.html","Nacos 常见问题",["/others/Nacos","/others/Nacos.md"]],["v-25b47c13","/others/","说明",["/others/index.html","/others/README.md"]],["v-34232cb1","/others/Redis.html","Redis 常见问题",["/others/Redis","/others/Redis.md"]],["v-5b482e3b","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html","更新日志",["/others/更新日志.html","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97","/others/更新日志.md","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.md"]],["v-3706649a","/404.html","",["/404"]]].reduce(((e,[l,t,d,n])=>(e.push({name:l,path:t,component:i.Y,meta:{title:d}},...n.map((e=>({path:e,redirect:t})))),e)),[{name:"404",path:"/:catchAll(.*)",component:i.Y}])},5472:(e,l,t)=>{t.d(l,{D:()=>i});const i=[{title:"",headers:[],path:"/",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/basic-knowledge/",pathLocale:"/",extraFields:[]},{title:"Spring Data JPA",headers:[{level:2,title:"JPA",slug:"jpa",children:[{level:3,title:"Spring Data Jpa",slug:"spring-data-jpa-1",children:[]},{level:3,title:"Jpa、Hibernate、Spring Data Jpa三者之间的关系",slug:"jpa、hibernate、spring-data-jpa三者之间的关系",children:[]},{level:3,title:"Spring Data Jpa的java配置方案",slug:"spring-data-jpa的java配置方案",children:[]},{level:3,title:"Spring Boot整合Spring Data Jpa",slug:"spring-boot整合spring-data-jpa",children:[]}]},{level:2,title:"Spring Data Jpa的使用",slug:"spring-data-jpa的使用",children:[{level:3,title:"Spring Data Jpa UML类图",slug:"spring-data-jpa-uml类图",children:[]},{level:3,title:"简单的REST CRUD示例",slug:"简单的rest-crud示例",children:[]}]},{level:2,title:"Spring Data Jpa使用详解",slug:"spring-data-jpa使用详解",children:[{level:3,title:"Spring Data查询方法",slug:"spring-data查询方法",children:[]},{level:3,title:"查询方法",slug:"查询方法",children:[]},{level:3,title:"多表查询",slug:"多表查询",children:[]}]},{level:2,title:"审计Auditing",slug:"审计auditing",children:[{level:3,title:"实现AuditorAware接口",slug:"实现auditoraware接口",children:[]},{level:3,title:"启用Jpa审计功能",slug:"启用jpa审计功能",children:[]}]}],path:"/basic-knowledge/spring-data-jpa.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],path:"/documents/",pathLocale:"/",extraFields:[]},{title:"前端手册",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],path:"/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html",pathLocale:"/",extraFields:[]},{title:"多环境配置",headers:[{level:2,title:"什么是多环境配置?",slug:"什么是多环境配置",children:[]},{level:2,title:"Maven 多环境配置",slug:"maven-多环境配置",children:[]},{level:2,title:"Spring Boot 多环境配置",slug:"spring-boot-多环境配置",children:[{level:3,title:"Spring Boot 环境设置机制",slug:"spring-boot-环境设置机制",children:[]},{level:3,title:"配置多环境",slug:"配置多环境",children:[]},{level:3,title:"指定环境",slug:"指定环境",children:[]},{level:3,title:"单一文件写法",slug:"单一文件写法",children:[]}]},{level:2,title:"Nacos 多环境配置",slug:"nacos-多环境配置",children:[{level:3,title:"Data Id",slug:"data-id",children:[]},{level:3,title:"Group",slug:"group",children:[]},{level:3,title:"Namespace",slug:"namespace",children:[]}]},{level:2,title:"Docker和K8S 多环境配置",slug:"docker和k8s-多环境配置",children:[]},{level:2,title:"Eurynome Cloud 的多环境配置",slug:"eurynome-cloud-的多环境配置",children:[{level:3,title:"Eurynome Cloud 中的Maven多环境配置",slug:"eurynome-cloud-中的maven多环境配置",children:[]},{level:3,title:"Eurynome Cloud 中的Spring Boot和Nacos多环境配置",slug:"eurynome-cloud-中的spring-boot和nacos多环境配置",children:[]}]}],path:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"快速了解",headers:[{level:2,title:"项目简介",slug:"项目简介",children:[]},{level:2,title:"主要特性",slug:"主要特性",children:[]},{level:2,title:"技术选型",slug:"技术选型",children:[]},{level:2,title:"内置功能",slug:"内置功能",children:[]}],path:"/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html",pathLocale:"/",extraFields:[]},{title:"数据初始化",headers:[{level:2,title:"系统初次部署数据库初始化内容",slug:"系统初次部署数据库初始化内容",children:[]},{level:2,title:"数据表及数据初始化说明",slug:"数据表及数据初始化说明",children:[{level:3,title:"[1]、OAuth2 标准表结构的创建",slug:"_1-、oauth2-标准表结构的创建",children:[]},{level:3,title:"[2]、服务中涉及业务表的创建",slug:"_2-、服务中涉及业务表的创建",children:[]},{level:3,title:"[3]、个别View或函数的创建(可选)",slug:"_3-、个别view或函数的创建-可选",children:[]},{level:3,title:"[4]、默认用户、角色等数据的初始化",slug:"_4-、默认用户、角色等数据的初始化",children:[]},{level:3,title:"[5]、服务Rest API接口数据初始化",slug:"_5-、服务rest-api接口数据初始化",children:[]}]},{level:2,title:"数据表和数据自动初始化",slug:"数据表和数据自动初始化",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]},{level:3,title:"具体步骤",slug:"具体步骤",children:[]}]},{level:2,title:"系统默认账号",slug:"系统默认账号",children:[]}],path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",pathLocale:"/",extraFields:[]},{title:"新建子模块",headers:[{level:2,title:"在现有工程内,新建常规模块",slug:"在现有工程内-新建常规模块",children:[{level:3,title:"手工新建子模块(非微服务模块)",slug:"手工新建子模块-非微服务模块",children:[]},{level:3,title:"IDEA新建子模块(非微服务模块)",slug:"idea新建子模块-非微服务模块",children:[]}]},{level:2,title:"在现有工程内,新建微服务模块",slug:"在现有工程内-新建微服务模块",children:[{level:3,title:"手工新建子模块(非常规模块)",slug:"手工新建子模块-非常规模块",children:[]},{level:3,title:"IDEA新建子模块(非常规模块)",slug:"idea新建子模块-非常规模块",children:[]}]},{level:2,title:"在现有工程外,新建微服务独立模块工程",slug:"在现有工程外-新建微服务独立模块工程",children:[]}],path:"/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html",pathLocale:"/",extraFields:[]},{title:"更换数据库",headers:[{level:2,title:"为什么默认使用PostgreSQL数据库?",slug:"为什么默认使用postgresql数据库",children:[{level:3,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[]},{level:3,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[]},{level:3,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[]},{level:3,title:"总结",slug:"总结",children:[]}]},{level:2,title:"Spring Boot Starter Data JPA 更换数据库方式",slug:"spring-boot-starter-data-jpa-更换数据库方式",children:[]},{level:2,title:"Eurynome Cloud 更换数据库方式",slug:"eurynome-cloud-更换数据库方式",children:[{level:3,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:3,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:3,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:3,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:3,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]}]}],path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",pathLocale:"/",extraFields:[]},{title:"环境部署",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"运行系统",slug:"运行系统",children:[{level:3,title:"后端运行",slug:"后端运行",children:[]},{level:3,title:"前端运行",slug:"前端运行",children:[]}]}],path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"项目介绍",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"Athena 是什么?",slug:"athena-是什么",children:[]},{level:2,title:"Athena 不是什么?",slug:"athena-不是什么",children:[]},{level:2,title:"为什么 Athena 和 Eurynome Cloud 共享代码?",slug:"为什么-athena-和-eurynome-cloud-共享代码",children:[]},{level:2,title:"为什么构建 Athena?",slug:"为什么构建-athena",children:[]}],path:"/documents-athena/",pathLocale:"/",extraFields:[]},{title:"OAuth2",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/microservices/",pathLocale:"/",extraFields:[]},{title:"容器化技术",headers:[{level:2,title:"Docker能解决什么问题?",slug:"docker能解决什么问题",children:[{level:3,title:"麻烦的环境配置",slug:"麻烦的环境配置",children:[]},{level:3,title:"现在的应用程序",slug:"现在的应用程序",children:[]},{level:3,title:"新架构的挑战",slug:"新架构的挑战",children:[]},{level:3,title:"统一的管理",slug:"统一的管理",children:[]}]},{level:2,title:"“容器”",slug:"容器",children:[{level:3,title:"虚拟化技术",slug:"虚拟化技术",children:[]},{level:3,title:"容器技术",slug:"容器技术",children:[]}]},{level:2,title:"Docker",slug:"docker",children:[{level:3,title:"Docker架构",slug:"docker架构",children:[]},{level:3,title:"Docker底层实现",slug:"docker底层实现",children:[]},{level:3,title:"Docker核心技术",slug:"docker核心技术",children:[]},{level:3,title:"Docker VS VM",slug:"docker-vs-vm",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html",pathLocale:"/",extraFields:[]},{title:"容器化部署",headers:[{level:2,title:"本地容器部署",slug:"本地容器部署",children:[{level:3,title:"[1]、本地Docker安装(Windows版)",slug:"_1-、本地docker安装-windows版",children:[]},{level:3,title:"[2]、安装配置MySQL",slug:"_2-、安装配置mysql",children:[]},{level:3,title:"[2]、安装配置PostgreSQL",slug:"_2-、安装配置postgresql",children:[]},{level:3,title:"[3]、安装配置Redis",slug:"_3-、安装配置redis",children:[]},{level:3,title:"[4]、部署Kafka、Zookeeper、Nacos、ELK、Sentinel Dashboard",slug:"_4-、部署kafka、zookeeper、nacos、elk、sentinel-dashboard",children:[]},{level:3,title:"[5]、部署Skywalking",slug:"_5-、部署skywalking",children:[]},{level:3,title:"[6]、服务打包部署",slug:"_6-、服务打包部署",children:[]}]},{level:2,title:"服务器容器部署",slug:"服务器容器部署",children:[]},{level:2,title:"Docker打包设计",slug:"docker打包设计",children:[{level:3,title:"Eurynome Cloud Docker 打包设计初衷",slug:"eurynome-cloud-docker-打包设计初衷",children:[]},{level:3,title:"Eurynome Cloud Docker 打包的设计",slug:"eurynome-cloud-docker-打包的设计",children:[]},{level:3,title:"Eurynome Cloud Docker 打包使用方法",slug:"eurynome-cloud-docker-打包使用方法",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"MySQL 常见问题",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],path:"/others/MySQL.html",pathLocale:"/",extraFields:[]},{title:"Nacos 常见问题",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],path:"/others/Nacos.html",pathLocale:"/",extraFields:[]},{title:"说明",headers:[],path:"/others/",pathLocale:"/",extraFields:[]},{title:"Redis 常见问题",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],path:"/others/Redis.html",pathLocale:"/",extraFields:[]},{title:"更新日志",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}]},5220:(e,l,t)=>{t.d(l,{H:()=>i});const i={base:"/eurynome-cloud/",lang:"zh-CN",title:"Eurynome Cloud",description:"Eurynome Cloud, 在线文档, 微服务, 微服务架构, Spring Boot,Spring Cloud,Spring Cloud Alibaba, Spring Security, OAuth 2, Skywalking, Nacos",head:[["link",{rel:"icon",href:"/eurynome-cloud/images/logo.png"}],["meta",{name:"keywords",content:"Eurynome Cloud,微服务,Spring Boot,Spirng Cloud,Spring Cloud Alibaba,Spring Security,OAuth2,Nacos,Skywalking"}],["script",{},'var _hmt = _hmt || [];\n (function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?376190fed0f613f413a39d7aa19f387d";\n var s = document.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(hm, s);\n })();']],locales:{}}},2232:(e,l,t)=>{t.d(l,{f:()=>i});const i={logo:"/images/logo.png",darkMode:!0,lastUpdatedText:"更新时间",contributorsText:"贡献者",navbar:[{text:"指南",link:"/documents/"},{text:"单体版",link:"/documents-athena/"},{text:"微服务技术栈",link:"/microservices/"},{text:"了解更多",children:[{text:"延伸",children:[{text:"了解基础知识",link:"/basic-knowledge/"}]},{text:"帮助",children:[{text:"我要提问",link:"https://gitee.com/herodotus/eurynome-cloud/issues"},{text:"常见问题",link:"/others/README.md"},{text:"更新日志",link:"/others/更新日志.md"},{text:"加入QQ群",link:"https://jq.qq.com/?_wv=1027&k=bIerJVy8"}]}]},{text:"Gitee",children:[{text:"后端源码",link:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://gitee.com/herodotus/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://gitee.com/herodotus/herodotus-cloud-athena",target:"_blank"}]},{text:"Github",children:[{text:"后端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://github.com/herodotus-cloud/herodotus-cloud-athena",target:"_blank"}]}],sidebar:{"/documents/":[{text:"指南",children:["/documents/README.md","/documents/快速了解.md","/documents/项目介绍.md","/documents/环境部署.md"]},{text:"后端手册",children:["/documents/数据初始化.md","/documents/更换数据库.md","/documents/多环境配置.md","/documents/新建子模块.md"]},{text:"前端手册",children:["/documents/前端手册.md"]}],"/documents-athena/":[{text:"单体版",children:["/documents-athena/README.md"]}],"/microservices/":[{text:"微服务技术栈",children:["/microservices/README.md","/microservices/OAuth2授权标准.md","/microservices/容器化技术.md","/microservices/容器化部署.md"]}],"/basic-knowledge/":[{text:"基础知识",children:["/basic-knowledge/README.md","/basic-knowledge/spring-data-jpa.md"]}],"/others/":[{text:"其它内容",children:["/others/README.md","/others/Nacos.md","/others/Redis.md","/others/更新日志.md"]}]},locales:{"/":{selectLanguageName:"English"}},repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,contributors:!0,notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"}}},e=>{e.O(0,[512,567],(()=>(5698,e(e.s=5698)))),e.O()}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-5b482e3b.84072c08.js b/documents/guides/assets/js/v-5b482e3b.84072c08.js index 1379c3c50..8bad440d1 100644 --- a/documents/guides/assets/js/v-5b482e3b.84072c08.js +++ b/documents/guides/assets/js/v-5b482e3b.84072c08.js @@ -1 +1 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[961],{7149:(i,l,e)=>{e.r(l),e.d(l,{data:()=>a});const a={key:"v-5b482e3b",path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",title:"更新日志",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"v2.5.4.140",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],filePathRelative:"others/更新日志.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},1138:(i,l,e)=>{e.r(l),e.d(l,{default:()=>t});const a=(0,e(6252).uE)('

更新日志

v2.5.4.140

  1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
  2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
  3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
  4. 修改默认验证码字体配置
  5. 去除无用依赖包
  6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
  7. 新增Camunda 官方脚本
  8. 优化数据导入脚本

v2.5.4.130

  1. 修复单体版Knife4j依赖错误问题
  2. 修复单体版配置错误问题
  3. 增加Gitee流程模版
  4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
  5. 优化自定义页面显示内容,增加Exception StackTrace输出
  6. 修复XssUtils校验出错问题。
  7. 优化ResourceServer安全配置
  8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
  9. 解决前端控制台出错问题
  10. 更新在线文档,增加OAuth2 四种模式验证说明

v2.5.4.120

  1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
  2. Swagger文档注解全面升级为支持OpenAPI
  3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
  4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
  5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
  6. 修复Bpmn服务默认启动Tomcat问题。
  7. 升级前端依赖包版本
  8. 更新Nacos配置文件及导入包
  9. 更新在线文档

v2.5.4.110

  1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
  2. 更换Nacos导入包,解决上一版本导入包导入重复问题
  3. Update Readme

v2.5.4.100

  1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
  2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
  3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
  4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
  5. 增加MySQL数据库默认数据初始化脚本
  6. 增加最新版Nacos配置导入包
  7. 修复前端UI申请APPKEY页面错误
  8. 修复前端UI切换至单体版后,连接错误问题。
  9. 升级前端UI依赖包版本。
  10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

v2.5.4.90

  1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
  2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
  3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
  4. 新增SQL 注入攻击防控机制。
  5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
  6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
  7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
  8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
  9. 解决修改Redis密码配置生效问题
  10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
  11. 升级依赖包版本
    • spring-boot-admin 升级至 2.5.1
    • git-commit-id-plugin 升级至 4.9.10
    • docker-maven-plugin 升级至 0.37.0
    • hutool 升级至 5.7.10
    • okhttps 升级至 3.1.4
    • JustAuth 升级至1.16.3
    • aliyun-java-sdk-core 升级至 4.5.25
    • baiducloud-java-sdk 升级至 0.10.175
    • aliyun-java-sdk-oss 升级至 3.13.1
    • cn.jpush.api 升级至 3.5.2
  12. 规范项目文档,增加系统部署、数据库切换等多部分内容
  13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
  14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
  15. 解决授权码模式(authorization code)验证码被拦截问题

v2.5.4.80

v2.5.4.65

v2.5.4.60

v2.5.4.55

v2.5.4.50

v2.5.4.40

v2.5.4.30

v2.5.4.20

v2.5.4.10

v2.5.3.60

v2.5.3.50

v2.5.3.40

v2.5.3.30

v2.5.3.10

2.5.2.40

v2.5.2.30

v2.5.2.25

v2.5.2.20

v2.5.1.0

v2.4.5.60

v2.4.5.48

',55),t={render:function(i,l){return a}}}}]); \ No newline at end of file +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[961],{7149:(i,l,e)=>{e.r(l),e.d(l,{data:()=>a});const a={key:"v-5b482e3b",path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",title:"更新日志",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],filePathRelative:"others/更新日志.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},1138:(i,l,e)=>{e.r(l),e.d(l,{default:()=>t});const a=(0,e(6252).uE)('

更新日志

v2.5.5.0

  1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
  2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
  3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
  4. 修改默认验证码字体配置
  5. 去除无用依赖包
  6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
  7. 新增Camunda 官方脚本
  8. 优化数据导入脚本

v2.5.4.130

  1. 修复单体版Knife4j依赖错误问题
  2. 修复单体版配置错误问题
  3. 增加Gitee流程模版
  4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
  5. 优化自定义页面显示内容,增加Exception StackTrace输出
  6. 修复XssUtils校验出错问题。
  7. 优化ResourceServer安全配置
  8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
  9. 解决前端控制台出错问题
  10. 更新在线文档,增加OAuth2 四种模式验证说明

v2.5.4.120

  1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
  2. Swagger文档注解全面升级为支持OpenAPI
  3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
  4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
  5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
  6. 修复Bpmn服务默认启动Tomcat问题。
  7. 升级前端依赖包版本
  8. 更新Nacos配置文件及导入包
  9. 更新在线文档

v2.5.4.110

  1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
  2. 更换Nacos导入包,解决上一版本导入包导入重复问题
  3. Update Readme

v2.5.4.100

  1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
  2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
  3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
  4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
  5. 增加MySQL数据库默认数据初始化脚本
  6. 增加最新版Nacos配置导入包
  7. 修复前端UI申请APPKEY页面错误
  8. 修复前端UI切换至单体版后,连接错误问题。
  9. 升级前端UI依赖包版本。
  10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

v2.5.4.90

  1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
  2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
  3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
  4. 新增SQL 注入攻击防控机制。
  5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
  6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
  7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
  8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
  9. 解决修改Redis密码配置生效问题
  10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
  11. 升级依赖包版本
    • spring-boot-admin 升级至 2.5.1
    • git-commit-id-plugin 升级至 4.9.10
    • docker-maven-plugin 升级至 0.37.0
    • hutool 升级至 5.7.10
    • okhttps 升级至 3.1.4
    • JustAuth 升级至1.16.3
    • aliyun-java-sdk-core 升级至 4.5.25
    • baiducloud-java-sdk 升级至 0.10.175
    • aliyun-java-sdk-oss 升级至 3.13.1
    • cn.jpush.api 升级至 3.5.2
  12. 规范项目文档,增加系统部署、数据库切换等多部分内容
  13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
  14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
  15. 解决授权码模式(authorization code)验证码被拦截问题

v2.5.4.80

v2.5.4.65

v2.5.4.60

v2.5.4.55

v2.5.4.50

v2.5.4.40

v2.5.4.30

v2.5.4.20

v2.5.4.10

v2.5.3.60

v2.5.3.50

v2.5.3.40

v2.5.3.30

v2.5.3.10

2.5.2.40

v2.5.2.30

v2.5.2.25

v2.5.2.20

v2.5.1.0

v2.4.5.60

v2.4.5.48

',55),t={render:function(i,l){return a}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-c0f957a0.2d350416.js b/documents/guides/assets/js/v-c0f957a0.2d350416.js index 52cc2b98c..0d8cd2b94 100644 --- a/documents/guides/assets/js/v-c0f957a0.2d350416.js +++ b/documents/guides/assets/js/v-c0f957a0.2d350416.js @@ -1 +1 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[781],{3597:(e,a,t)=>{t.r(a),t.d(a,{data:()=>r});const r={key:"v-c0f957a0",path:"/documents/",title:"介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],filePathRelative:"documents/README.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:3}]}}},3988:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var r=t(6252);const i=(0,r.uE)('

介绍

Eurynome Cloud 微服务架构


JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.4.140  Gitee star  Gitee fork

提示

有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

总体架构

架构图

功能演示

提示

有特点的功能,正在逐步添加。

[1]、基于URL的方法级动态权限配置

架构图

[2]、服务调用链监控

架构图

版本号说明

本系统版本号,分为四段。

交流反馈

',18),o=(0,r.Uk)("有问题欢迎提交"),l={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},s=(0,r.Uk)("ISSUS"),n=(0,r.Uk)(" ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。"),d=(0,r._)("li",null,"邮箱:herodotus@aliyun.com",-1),h=(0,r.Uk)("QQ群:"),c={href:"https://jq.qq.com/?_wv=1027&k=bIerJVy8",target:"_blank",rel:"noopener noreferrer"},u=(0,r.Uk)("922565573"),g={render:function(e,a){const t=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[i,(0,r._)("ul",null,[(0,r._)("li",null,[o,(0,r._)("a",l,[s,(0,r.Wm)(t)]),n]),d,(0,r._)("li",null,[h,(0,r._)("a",c,[u,(0,r.Wm)(t)])])])],64)}}}}]); \ No newline at end of file +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[781],{3597:(e,a,t)=>{t.r(a),t.d(a,{data:()=>r});const r={key:"v-c0f957a0",path:"/documents/",title:"介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],filePathRelative:"documents/README.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:3}]}}},3988:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var r=t(6252);const i=(0,r.uE)('

介绍

Eurynome Cloud 微服务架构


JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

提示

有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

总体架构

架构图

功能演示

提示

有特点的功能,正在逐步添加。

[1]、基于URL的方法级动态权限配置

架构图

[2]、服务调用链监控

架构图

版本号说明

本系统版本号,分为四段。

交流反馈

',18),o=(0,r.Uk)("有问题欢迎提交"),l={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},s=(0,r.Uk)("ISSUS"),n=(0,r.Uk)(" ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。"),d=(0,r._)("li",null,"邮箱:herodotus@aliyun.com",-1),h=(0,r.Uk)("QQ群:"),c={href:"https://jq.qq.com/?_wv=1027&k=bIerJVy8",target:"_blank",rel:"noopener noreferrer"},u=(0,r.Uk)("922565573"),g={render:function(e,a){const t=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[i,(0,r._)("ul",null,[(0,r._)("li",null,[o,(0,r._)("a",l,[s,(0,r.Wm)(t)]),n]),d,(0,r._)("li",null,[h,(0,r._)("a",c,[u,(0,r.Wm)(t)])])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/documents/index.html b/documents/guides/documents/index.html index 2e7946c8f..eeb9c7b6b 100644 --- a/documents/guides/documents/index.html +++ b/documents/guides/documents/index.html @@ -15,7 +15,7 @@ -

介绍

Eurynome Cloud 微服务架构


JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.4.140  Gitee star  Gitee fork

提示

有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

总体架构

架构图

功能演示

提示

有特点的功能,正在逐步添加。

[1]、基于URL的方法级动态权限配置

架构图

[2]、服务调用链监控

架构图

版本号说明

本系统版本号,分为四段。

  • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
  • 第三段,表示系统功能的变化
  • 第四段,表示系统功能维护及优化情况

交流反馈

  • 有问题欢迎提交ISSUSopen in new window ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。
  • 邮箱:herodotus@aliyun.com
  • QQ群:922565573open in new window
更新时间: 2021/9/12 上午3:37:41
贡献者: herodotus
+

介绍

Eurynome Cloud 微服务架构


JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

提示

有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

总体架构

架构图

功能演示

提示

有特点的功能,正在逐步添加。

[1]、基于URL的方法级动态权限配置

架构图

[2]、服务调用链监控

架构图

版本号说明

本系统版本号,分为四段。

  • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
  • 第三段,表示系统功能的变化
  • 第四段,表示系统功能维护及优化情况

交流反馈

  • 有问题欢迎提交ISSUSopen in new window ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。
  • 邮箱:herodotus@aliyun.com
  • QQ群:922565573open in new window
更新时间: 2021/9/12 上午3:37:41
贡献者: herodotus
diff --git "a/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" "b/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" index 5d665f9ee..0b4e38479 100644 --- "a/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" +++ "b/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" @@ -15,7 +15,7 @@ -

更新日志

v2.5.4.140

  1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
  2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
  3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
  4. 修改默认验证码字体配置
  5. 去除无用依赖包
  6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
  7. 新增Camunda 官方脚本
  8. 优化数据导入脚本

v2.5.4.130

  1. 修复单体版Knife4j依赖错误问题
  2. 修复单体版配置错误问题
  3. 增加Gitee流程模版
  4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
  5. 优化自定义页面显示内容,增加Exception StackTrace输出
  6. 修复XssUtils校验出错问题。
  7. 优化ResourceServer安全配置
  8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
  9. 解决前端控制台出错问题
  10. 更新在线文档,增加OAuth2 四种模式验证说明

v2.5.4.120

  1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
  2. Swagger文档注解全面升级为支持OpenAPI
  3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
  4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
  5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
  6. 修复Bpmn服务默认启动Tomcat问题。
  7. 升级前端依赖包版本
  8. 更新Nacos配置文件及导入包
  9. 更新在线文档

v2.5.4.110

  1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
  2. 更换Nacos导入包,解决上一版本导入包导入重复问题
  3. Update Readme

v2.5.4.100

  1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
  2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
  3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
  4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
  5. 增加MySQL数据库默认数据初始化脚本
  6. 增加最新版Nacos配置导入包
  7. 修复前端UI申请APPKEY页面错误
  8. 修复前端UI切换至单体版后,连接错误问题。
  9. 升级前端UI依赖包版本。
  10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

v2.5.4.90

  1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
  2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
  3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
  4. 新增SQL 注入攻击防控机制。
  5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
  6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
  7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
  8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
  9. 解决修改Redis密码配置生效问题
  10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
  11. 升级依赖包版本
    • spring-boot-admin 升级至 2.5.1
    • git-commit-id-plugin 升级至 4.9.10
    • docker-maven-plugin 升级至 0.37.0
    • hutool 升级至 5.7.10
    • okhttps 升级至 3.1.4
    • JustAuth 升级至1.16.3
    • aliyun-java-sdk-core 升级至 4.5.25
    • baiducloud-java-sdk 升级至 0.10.175
    • aliyun-java-sdk-oss 升级至 3.13.1
    • cn.jpush.api 升级至 3.5.2
  12. 规范项目文档,增加系统部署、数据库切换等多部分内容
  13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
  14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
  15. 解决授权码模式(authorization code)验证码被拦截问题

v2.5.4.80

  • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
  • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
  • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
  • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
  • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
  • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

v2.5.4.65

  • 优化Skywalking打包内容,直接使用Skywalking官方容器
  • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
  • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
  • 在Gitee Wiki中,增加数据库初始化说明文档
  • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
  • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

v2.5.4.60

  • Spring Boot 版本升级至 2.5.4
  • Skywalking 版本升级至 8.7.0
  • 微服务日志输出至日志中心格式。
  • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
  • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
  • 修复Kafka配置不生效问题。
  • 解决单体版自动启动Kafka问题。
  • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

v2.5.4.55

  • 整合代码,将constant包代码整合至common包中。删除constant包。
  • 完善Rest接口校验机制,以及相关自定义错误码
  • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

v2.5.4.50

  • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
  • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
  • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
  • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
  • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
  • 清理系统无用代码。
  • 增加方法级动态权限演示动图,更新Readme

v2.5.4.40

  • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
  • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
  • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
  • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
  • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

v2.5.4.30

  • 重新调整Property配置,规范Property定义。修改相关配置
  • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
  • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
  • 调整部分常理代码位置,常量代码基本调整完成
  • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
  • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

v2.5.4.20

  • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
  • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
  • 调整包依赖关系,新建assistant、constant包,删除message包。
  • 逐步将平台中各类非独有常量移入constant包方便管理和修改
  • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
  • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
  • 删除无用代码

v2.5.4.10

  • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
  • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
  • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
  • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
  • 实现动态权限配置的多服务同步。
  • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
  • 修改配置文件配置
  • 删除无用代码

v2.5.3.60

  • Nacos版本升级至2.0.3
  • Hutool版本升级至5.7.6
  • 修改部分代码名称
  • 修改配置文件配置参数

v2.5.3.50

  • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
  • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
  • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
  • 删除无用代码
  • 为动态Scope权限做铺垫。
  • 全面支持方法级权限控制。

v2.5.3.40

  • Spring Boot 版本升级至 2.5.3
  • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
  • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
  • git commit 插件升级至 5.0.0 版本

v2.5.3.30

  • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
  • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
  • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
  • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
  • 删除不再使用的通用类代码。
  • 修改说明文档

v2.5.3.10

  • 自研基于Caffeine和Redis分布式两级缓存
  • 完美支持JPA Hibernate二级缓存
  • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
  • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
  • 极大的简化了原有自研的基于JetCache的缓存使用方式。
  • 保留JetCache,可根据实际使用需要使用。
  • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

2.5.2.40

  • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
  • jetcache valueEncoder 和 valueDecoder 修改为kryo
  • 部分代码的日志改为传统方式,不再使用@Slf4j注解
  • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
  • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
  • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
  • 将Hibernate Validator替换为spring-boot-starter-validation
  • 删除JPA过期方法封装

v2.5.2.30

  • Spring Boot 版本升级至2.5.2
  • Spring Boot Admin 版本升级至2.4.2
  • 升级其它相关依赖版本

v2.5.2.25

  • Skywalking升级至8.6.0

v2.5.2.20

  • Spring Boot 升级至2.5.1
  • Camunda 升级至7.15.0
  • 其它依赖包版本升级
  • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
  • 结构性调整平台相关配置属性

v2.5.1.0

  • Spring Boot 大版本升级至2.5.0

v2.4.5.60

  • 修改负载均衡不生效问题
  • 调整包依赖关系
  • 升级版本

v2.4.5.48

  • 正式发布开源版本
更新时间: 2021/9/12 上午3:37:41
贡献者: herodotus
+

更新日志

v2.5.5.0

  1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
  2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
  3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
  4. 修改默认验证码字体配置
  5. 去除无用依赖包
  6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
  7. 新增Camunda 官方脚本
  8. 优化数据导入脚本

v2.5.4.130

  1. 修复单体版Knife4j依赖错误问题
  2. 修复单体版配置错误问题
  3. 增加Gitee流程模版
  4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
  5. 优化自定义页面显示内容,增加Exception StackTrace输出
  6. 修复XssUtils校验出错问题。
  7. 优化ResourceServer安全配置
  8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
  9. 解决前端控制台出错问题
  10. 更新在线文档,增加OAuth2 四种模式验证说明

v2.5.4.120

  1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
  2. Swagger文档注解全面升级为支持OpenAPI
  3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
  4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
  5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
  6. 修复Bpmn服务默认启动Tomcat问题。
  7. 升级前端依赖包版本
  8. 更新Nacos配置文件及导入包
  9. 更新在线文档

v2.5.4.110

  1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
  2. 更换Nacos导入包,解决上一版本导入包导入重复问题
  3. Update Readme

v2.5.4.100

  1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
  2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
  3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
  4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
  5. 增加MySQL数据库默认数据初始化脚本
  6. 增加最新版Nacos配置导入包
  7. 修复前端UI申请APPKEY页面错误
  8. 修复前端UI切换至单体版后,连接错误问题。
  9. 升级前端UI依赖包版本。
  10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

v2.5.4.90

  1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
  2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
  3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
  4. 新增SQL 注入攻击防控机制。
  5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
  6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
  7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
  8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
  9. 解决修改Redis密码配置生效问题
  10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
  11. 升级依赖包版本
    • spring-boot-admin 升级至 2.5.1
    • git-commit-id-plugin 升级至 4.9.10
    • docker-maven-plugin 升级至 0.37.0
    • hutool 升级至 5.7.10
    • okhttps 升级至 3.1.4
    • JustAuth 升级至1.16.3
    • aliyun-java-sdk-core 升级至 4.5.25
    • baiducloud-java-sdk 升级至 0.10.175
    • aliyun-java-sdk-oss 升级至 3.13.1
    • cn.jpush.api 升级至 3.5.2
  12. 规范项目文档,增加系统部署、数据库切换等多部分内容
  13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
  14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
  15. 解决授权码模式(authorization code)验证码被拦截问题

v2.5.4.80

  • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
  • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
  • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
  • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
  • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
  • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

v2.5.4.65

  • 优化Skywalking打包内容,直接使用Skywalking官方容器
  • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
  • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
  • 在Gitee Wiki中,增加数据库初始化说明文档
  • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
  • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

v2.5.4.60

  • Spring Boot 版本升级至 2.5.4
  • Skywalking 版本升级至 8.7.0
  • 微服务日志输出至日志中心格式。
  • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
  • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
  • 修复Kafka配置不生效问题。
  • 解决单体版自动启动Kafka问题。
  • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

v2.5.4.55

  • 整合代码,将constant包代码整合至common包中。删除constant包。
  • 完善Rest接口校验机制,以及相关自定义错误码
  • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

v2.5.4.50

  • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
  • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
  • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
  • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
  • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
  • 清理系统无用代码。
  • 增加方法级动态权限演示动图,更新Readme

v2.5.4.40

  • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
  • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
  • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
  • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
  • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

v2.5.4.30

  • 重新调整Property配置,规范Property定义。修改相关配置
  • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
  • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
  • 调整部分常理代码位置,常量代码基本调整完成
  • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
  • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

v2.5.4.20

  • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
  • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
  • 调整包依赖关系,新建assistant、constant包,删除message包。
  • 逐步将平台中各类非独有常量移入constant包方便管理和修改
  • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
  • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
  • 删除无用代码

v2.5.4.10

  • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
  • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
  • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
  • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
  • 实现动态权限配置的多服务同步。
  • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
  • 修改配置文件配置
  • 删除无用代码

v2.5.3.60

  • Nacos版本升级至2.0.3
  • Hutool版本升级至5.7.6
  • 修改部分代码名称
  • 修改配置文件配置参数

v2.5.3.50

  • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
  • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
  • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
  • 删除无用代码
  • 为动态Scope权限做铺垫。
  • 全面支持方法级权限控制。

v2.5.3.40

  • Spring Boot 版本升级至 2.5.3
  • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
  • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
  • git commit 插件升级至 5.0.0 版本

v2.5.3.30

  • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
  • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
  • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
  • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
  • 删除不再使用的通用类代码。
  • 修改说明文档

v2.5.3.10

  • 自研基于Caffeine和Redis分布式两级缓存
  • 完美支持JPA Hibernate二级缓存
  • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
  • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
  • 极大的简化了原有自研的基于JetCache的缓存使用方式。
  • 保留JetCache,可根据实际使用需要使用。
  • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

2.5.2.40

  • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
  • jetcache valueEncoder 和 valueDecoder 修改为kryo
  • 部分代码的日志改为传统方式,不再使用@Slf4j注解
  • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
  • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
  • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
  • 将Hibernate Validator替换为spring-boot-starter-validation
  • 删除JPA过期方法封装

v2.5.2.30

  • Spring Boot 版本升级至2.5.2
  • Spring Boot Admin 版本升级至2.4.2
  • 升级其它相关依赖版本

v2.5.2.25

  • Skywalking升级至8.6.0

v2.5.2.20

  • Spring Boot 升级至2.5.1
  • Camunda 升级至7.15.0
  • 其它依赖包版本升级
  • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
  • 结构性调整平台相关配置属性

v2.5.1.0

  • Spring Boot 大版本升级至2.5.0

v2.4.5.60

  • 修改负载均衡不生效问题
  • 调整包依赖关系
  • 升级版本

v2.4.5.48

  • 正式发布开源版本
更新时间: 2021/9/12 上午3:37:41
贡献者: herodotus
diff --git a/packages/eurynome-cloud-assistant/pom.xml b/packages/eurynome-cloud-assistant/pom.xml index 69870345e..c45bb696d 100644 --- a/packages/eurynome-cloud-assistant/pom.xml +++ b/packages/eurynome-cloud-assistant/pom.xml @@ -27,7 +27,7 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 4.0.0 diff --git a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java index 41794000a..b9157d666 100644 --- a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java +++ b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java @@ -88,6 +88,7 @@ public class HerodotusExceptionHandler { // 6*.** 对应错误 EXCEPTION_DICTIONARY.put("BadSqlGrammarException", getInternalServerErrorResult(ResultStatus.BAD_SQL_GRAMMAR)); EXCEPTION_DICTIONARY.put("DataIntegrityViolationException", getInternalServerErrorResult(ResultStatus.DATA_INTEGRITY_VIOLATION)); + EXCEPTION_DICTIONARY.put("TransactionRollbackException", getInternalServerErrorResult(ResultStatus.TRANSACTION_ROLLBACK)); EXCEPTION_DICTIONARY.put("BindException", getValidationResult(ResultStatus.METHOD_ARGUMENT_NOT_VALID)); EXCEPTION_DICTIONARY.put("MethodArgumentNotValidException", getValidationResult(ResultStatus.METHOD_ARGUMENT_NOT_VALID)); @@ -162,13 +163,14 @@ private static Result getServiceUnavailableResult(ResultStatus resultCod return getResult(resultCode, HttpStatus.SC_SERVICE_UNAVAILABLE); } + protected static Result getResult(ResultStatus resultStatus, int httpStatus) { return new Result().failed().code(resultStatus.getCode()).message(resultStatus.getMessage()).status(httpStatus); } public static Result resolveException(Exception ex, String path) { - log.trace("[Eurynome] |- Global Exception Handler, Path : [{}], Exception : [{}]", path, ex); + log.trace("[Herodotus] |- Global Exception Handler, Path : [{}], Exception : [{}]", path, ex); Result result = new Result().failed(); @@ -177,7 +179,7 @@ public static Result resolveException(Exception ex, String path) { if (EXCEPTION_DICTIONARY.containsKey(exceptionName)) { result = EXCEPTION_DICTIONARY.get(exceptionName); } else { - log.warn("[Eurynome] |- Global Exception Handler, Can not find the exception name [{}] in dictionary, please do optimize ", exceptionName); + log.warn("[Herodotus] |- Global Exception Handler, Can not find the exception name [{}] in dictionary, please do optimize ", exceptionName); } } @@ -185,7 +187,7 @@ public static Result resolveException(Exception ex, String path) { result.stackTrace(ex.getStackTrace()); result.detail(ex.getMessage()); - log.debug("[Eurynome] |- Global Exception Handler, Error is : {}", result); + log.debug("[Herodotus] |- Global Exception Handler, Error is : {}", result); return result; } diff --git a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/persistence/TransactionRollbackException.java b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/persistence/TransactionRollbackException.java new file mode 100644 index 000000000..abf69642b --- /dev/null +++ b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/persistence/TransactionRollbackException.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-assistant + * File Name: TransactionRollbackException.java + * Author: gengwei.zheng + * Date: 2021/09/23 15:12:23 + */ + +package cn.herodotus.eurynome.assistant.exception.persistence; + +import cn.herodotus.eurynome.assistant.exception.platform.PersistenceException; + +/** + *

Description: 事务回滚Exception

+ * + * @author : gengwei.zheng + * @date : 2021/9/23 15:12 + */ +public class TransactionRollbackException extends PersistenceException { + + public TransactionRollbackException() { + super(); + } + + public TransactionRollbackException(String message) { + super(message); + } + + public TransactionRollbackException(String message, Throwable cause) { + super(message, cause); + } + + public TransactionRollbackException(Throwable cause) { + super(cause); + } + + public TransactionRollbackException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/platform/PersistenceException.java b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/platform/PersistenceException.java new file mode 100644 index 000000000..df5ad8841 --- /dev/null +++ b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/platform/PersistenceException.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-assistant + * File Name: PersistenceException.java + * Author: gengwei.zheng + * Date: 2021/09/23 15:12:23 + */ + +package cn.herodotus.eurynome.assistant.exception.platform; + +/** + *

Description: 持久化错误

+ * + * @author : gengwei.zheng + * @date : 2021/9/23 15:12 + */ +public class PersistenceException extends PlatformException { + + public PersistenceException() { + super(); + } + + public PersistenceException(String message) { + super(message); + } + + public PersistenceException(String message, Throwable cause) { + super(message, cause); + } + + public PersistenceException(Throwable cause) { + super(cause); + } + + public PersistenceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/packages/eurynome-cloud-common/pom.xml b/packages/eurynome-cloud-common/pom.xml index f382854c0..94260dec4 100644 --- a/packages/eurynome-cloud-common/pom.xml +++ b/packages/eurynome-cloud-common/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-common - 2.5.4.140 + 2.5.5.0 jar 结对基础通用的工具类包,此包的定位是放在任何工程中都可以使用,而且尽可能依赖少的存在上下文组件 diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Gender.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Gender.java similarity index 93% rename from services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Gender.java rename to packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Gender.java index 1e9d8ad25..a4edffbec 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Gender.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Gender.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,13 @@ * limitations under the License. * * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-api + * Module Name: eurynome-cloud-common * File Name: Gender.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/12 01:56:12 */ -package cn.herodotus.eurynome.upms.api.constants.enums; +package cn.herodotus.eurynome.common.constant.enums; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Identity.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Identity.java similarity index 93% rename from services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Identity.java rename to packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Identity.java index 7fd1ee0c2..cf32c0524 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/Identity.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/Identity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,13 @@ * limitations under the License. * * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-api + * Module Name: eurynome-cloud-common * File Name: Identity.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/12 01:56:12 */ -package cn.herodotus.eurynome.upms.api.constants.enums; +package cn.herodotus.eurynome.common.constant.enums; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OAuth2Expression.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OauthExpression.java similarity index 82% rename from packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OAuth2Expression.java rename to packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OauthExpression.java index 603bd98d3..8823990e5 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OAuth2Expression.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OauthExpression.java @@ -36,7 +36,7 @@ * @author : gengwei.zheng * @date : 2021/8/14 6:50 */ -public enum OAuth2Expression { +public enum OauthExpression { /** * 允许全部 */ @@ -68,7 +68,7 @@ public enum OAuth2Expression { IS_USER(25, "#oauth2.isUser()"), IS_CLIENT(26, "#oauth2.isClient()"); - private static final Map INDEX_MAP = new HashMap<>(); + private static final Map INDEX_MAP = new HashMap<>(); private static final List> TO_JSON_STRUCT = new ArrayList<>(); @Schema(title = "索引") @@ -77,18 +77,18 @@ public enum OAuth2Expression { private final String content; static { - for (OAuth2Expression OAuth2Expression : OAuth2Expression.values()) { - INDEX_MAP.put(OAuth2Expression.name(), OAuth2Expression); - TO_JSON_STRUCT.add(OAuth2Expression.ordinal(), + for (OauthExpression OauthExpression : OauthExpression.values()) { + INDEX_MAP.put(OauthExpression.name(), OauthExpression); + TO_JSON_STRUCT.add(OauthExpression.ordinal(), ImmutableMap.builder() - .put("value", OAuth2Expression.name()) - .put("key", OAuth2Expression.name()) - .put("text", OAuth2Expression.getContent()) + .put("value", OauthExpression.name()) + .put("key", OauthExpression.name()) + .put("text", OauthExpression.getContent()) .build()); } } - OAuth2Expression(int index, String content) { + OauthExpression(int index, String content) { this.index = index; this.content = content; } @@ -101,7 +101,7 @@ public String getContent() { return content; } - public static OAuth2Expression getSecurityExpressions(int index) { + public static OauthExpression getSecurityExpressions(int index) { return INDEX_MAP.get(index); } diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OrganizationCategory.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OrganizationCategory.java new file mode 100644 index 000000000..ed785fe80 --- /dev/null +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/OrganizationCategory.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-common + * File Name: OrganizationCategory.java + * Author: gengwei.zheng + * Date: 2021/09/22 17:12:22 + */ + +package cn.herodotus.eurynome.common.constant.enums; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import com.google.common.collect.ImmutableMap; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

Description: 机构类别

+ * + * @author : gengwei.zheng + * @date : 2021/9/22 17:12 + */ +@Schema(title = "机构类别") +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum OrganizationCategory { + + /** + * enum + */ + ENTERPRISE(0, "企业机构"), + PARTY(1, "党组机构"), + LEAGUE(2, "团青机构"); + + @Schema(title = "索引") + private final Integer index; + @Schema(title = "文字") + private final String text; + + private static final Map INDEX_MAP = new HashMap<>(); + private static final List> TO_JSON_STRUCT = new ArrayList<>(); + + static { + for (OrganizationCategory organizationCategory : OrganizationCategory.values()) { + INDEX_MAP.put(organizationCategory.getIndex(), organizationCategory); + TO_JSON_STRUCT.add(organizationCategory.getIndex(), + ImmutableMap.builder() + .put("value", organizationCategory.getIndex()) + .put("key", organizationCategory.name()) + .put("text", organizationCategory.getText()) + .build()); + } + } + + OrganizationCategory(Integer index, String text) { + this.index = index; + this.text = text; + } + + /** + * 不加@JsonValue,转换的时候转换出完整的对象。 + * 加了@JsonValue,只会显示相应的属性的值 + *

+ * 不使用@JsonValue @JsonDeserializer类里面要做相应的处理 + * + * @return Enum索引 + */ + @JsonValue + public Integer getIndex() { + return index; + } + + public String getText() { + return this.text; + } + + public static OrganizationCategory getOrganizationCategory(Integer index) { + return INDEX_MAP.get(index); + } + + public static List> getToJsonStruct() { + return TO_JSON_STRUCT; + } +} diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java index 1c0fe32f4..284a515c6 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java @@ -73,7 +73,7 @@ public enum ResultStatus { /** * 403.** 禁止的请求,与403对应 */ - REPEAT_SUBMISSION(40301, "不要重复提交"), + REPEAT_SUBMISSION(40301, "请不要重复提交"), FREQUENT_REQUESTS(40302, "请求过于频繁请稍后再试"), SQL_INJECTION_REQUEST(40603, "疑似SQL注入请求"), /** @@ -95,7 +95,7 @@ public enum ResultStatus { * 412.* 未经授权 Precondition Failed 客户端请求信息的先决条件错误 */ INVALID_TOKEN(41201, "无法解析的Token,也许Token已经失效"), - INVALID_GRANT(41202, "账号或者密码错误!"), + INVALID_GRANT(41202, "认证信息错误!"), INVALID_SCOPE(41203, "授权范围错误"), INVALID_CLIENT(41204, "非法的客户端"), INVALID_REQUEST(41205, "无效的请求,参数使用错误或配置无效."), @@ -127,6 +127,7 @@ public enum ResultStatus { * 62.* 数据库操作相关错误 */ DATA_INTEGRITY_VIOLATION(62000, "该数据正在被其它数据引用,请先删除引用关系,再进行数据删除操作"), + TRANSACTION_ROLLBACK(62001, "数据事务处理失败,数据回滚"), /** * 63.* Spring Boot Validation校验相关操作 */ diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/StatusEnum.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/StatusEnum.java index 2fc224299..7b1224eaf 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/StatusEnum.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/StatusEnum.java @@ -40,13 +40,13 @@ public enum StatusEnum { /** - * 禁用 + * 启用 */ - FORBIDDEN(0, "禁用"), + ENABLE(0, "启用"), /** - * 启用 + * 禁用 */ - ENABLE(1, "启用"), + FORBIDDEN(1, "禁用"), /** * 锁定 */ diff --git a/packages/eurynome-cloud-data/pom.xml b/packages/eurynome-cloud-data/pom.xml index 52ab7f018..5f1888918 100644 --- a/packages/eurynome-cloud-data/pom.xml +++ b/packages/eurynome-cloud-data/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-data - 2.5.4.140 + 2.5.5.0 jar 数据相关通用代码组件包,包括JPA,Redis,数据实体等相关内容 diff --git a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/properties/StampProperties.java b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/properties/StampProperties.java index 4793723a3..fc65bd8fe 100644 --- a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/properties/StampProperties.java +++ b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/properties/StampProperties.java @@ -83,14 +83,14 @@ public String toString() { public static class AccessLimited implements Serializable { /** - * 单位时间内同一个接口可以访问的次数 + * 单位时间内同一个接口可以访问的次数,默认10次 */ - private int maxTimes = 5; + private int maxTimes = 10; /** - * 持续时间,即在多长时间内,限制访问多少次。默认为 1 分钟。 + * 持续时间,即在多长时间内,限制访问多少次。默认为 30秒。 */ - private Duration expire = Duration.ofMinutes(1); + private Duration expire = Duration.ofSeconds(30); public int getMaxTimes() { return maxTimes; diff --git a/packages/eurynome-cloud-kernel/pom.xml b/packages/eurynome-cloud-kernel/pom.xml index e3a456153..1aa382044 100644 --- a/packages/eurynome-cloud-kernel/pom.xml +++ b/packages/eurynome-cloud-kernel/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-kernel - 2.5.4.140 + 2.5.5.0 jar 平台通用的基础依赖,以及接入及管理等通用代码,上中台必需的基础代码。增加这层包,主要目的是抽取webflux和web依赖的通用性,降低其它包之间的耦合性,比如之前data要依赖logstash,logstash要依赖managementproperties diff --git a/packages/eurynome-cloud-oauth-starter/pom.xml b/packages/eurynome-cloud-oauth-starter/pom.xml index 9acd30557..58be13b0e 100644 --- a/packages/eurynome-cloud-oauth-starter/pom.xml +++ b/packages/eurynome-cloud-oauth-starter/pom.xml @@ -30,11 +30,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-oauth-starter - 2.5.4.140 + 2.5.5.0 jar diff --git a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java index 698378db1..a6f57c729 100644 --- a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java +++ b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java @@ -40,6 +40,7 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -76,6 +77,7 @@ */ @Configuration @EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) @Order(2) public class WebSecurityAutoConfiguration extends WebSecurityConfigurerAdapter { @@ -174,6 +176,9 @@ public void configure(HttpSecurity http) throws Exception { http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED); + // 禁用CSRF 开启跨域 + http.csrf().disable().cors(); + // @formatter:off http.requestMatchers().antMatchers("/oauth/**", "/login**") .and() @@ -193,9 +198,7 @@ public void configure(HttpSecurity http) throws Exception { // .tokenValiditySeconds(securityProperties.getRememberMe().getValiditySeconds()) // .key(securityProperties.getRememberMe().getCookieName()) // .userDetailsService(oauth2UserDetailsService) - .and().logout().permitAll() - .and().cors() - .and().csrf().disable(); + .and().logout().permitAll(); // @formatter:on } } diff --git a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/service/HerodotusOauthClientDetailsService.java b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/service/HerodotusOauthClientDetailsService.java index a60f60aa5..f1281a46b 100644 --- a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/service/HerodotusOauthClientDetailsService.java +++ b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/service/HerodotusOauthClientDetailsService.java @@ -73,7 +73,7 @@ public ClientDetails loadClientByClientId(String clientId) throws ClientRegistra HerodotusClientDetails herodotusClientDetails = getOauthClientDetails(clientId); if (herodotusClientDetails != null && herodotusClientDetails.getAdditionalInformation() != null) { - String status = herodotusClientDetails.getAdditionalInformation().getOrDefault("status", "1").toString(); + String status = herodotusClientDetails.getAdditionalInformation().getOrDefault("status", "0").toString(); if (String.valueOf(StatusEnum.FORBIDDEN.getIndex()).equals(status)) { log.warn("[Eurynome] |- Client [{}] has been Forbidden! ", herodotusClientDetails.getClientId()); throw new ClientRegistrationException("客户端已被禁用"); diff --git a/packages/eurynome-cloud-oauth/pom.xml b/packages/eurynome-cloud-oauth/pom.xml index 9c15ec56a..8ad6e053f 100644 --- a/packages/eurynome-cloud-oauth/pom.xml +++ b/packages/eurynome-cloud-oauth/pom.xml @@ -29,12 +29,12 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-oauth - 2.5.4.140 + 2.5.5.0 jar diff --git a/packages/eurynome-cloud-oauth/src/main/java/cn/herodotus/eurynome/oauth/configuration/AuthorizationServerConfiguration.java b/packages/eurynome-cloud-oauth/src/main/java/cn/herodotus/eurynome/oauth/configuration/AuthorizationServerConfiguration.java index 91b39b5bf..bd3271ed5 100644 --- a/packages/eurynome-cloud-oauth/src/main/java/cn/herodotus/eurynome/oauth/configuration/AuthorizationServerConfiguration.java +++ b/packages/eurynome-cloud-oauth/src/main/java/cn/herodotus/eurynome/oauth/configuration/AuthorizationServerConfiguration.java @@ -193,7 +193,7 @@ public void configure(AuthorizationServerSecurityConfigurer security) throws Exc @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) { endpoints - .allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST) + .allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.OPTIONS) .authenticationManager(authenticationManager) // 授权允许存储方式 .approvalStore(createApprovalStore()) diff --git a/packages/eurynome-cloud-rest/pom.xml b/packages/eurynome-cloud-rest/pom.xml index a49acadd0..1ad21497d 100644 --- a/packages/eurynome-cloud-rest/pom.xml +++ b/packages/eurynome-cloud-rest/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-rest - 2.5.4.140 + 2.5.5.0 jar diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/annotation/EnableHerodotusRest.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/annotation/EnableHerodotusRest.java index 2fe6048bb..3c47b56b3 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/annotation/EnableHerodotusRest.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/annotation/EnableHerodotusRest.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: EnableHerodotusRest.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.annotation; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/business/Pager.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/business/Pager.java index a26091f15..1fe57cc22 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/business/Pager.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/business/Pager.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: Pager.java * Author: gengwei.zheng - * Date: 2021/08/18 17:58:18 + * Date: 2021/09/12 01:56:12 */ package cn.herodotus.eurynome.rest.base.business; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseController.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseController.java index 8c99c9c5a..2d74558bc 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseController.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: BaseController.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:31:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -30,7 +30,7 @@ /** *

Description : 通用Controller

- * + *

* 单独提取出一些公共方法,是为了解决某些支持feign的controller,requestMapping 不方便统一编写的问题。 * * @author : gengwei.zheng @@ -48,11 +48,13 @@ public ReadableService getReadableService() { return this.getWriteableService(); } + @Override public Result saveOrUpdate(E domain) { E savedDomain = getWriteableService().saveOrUpdate(domain); return result(savedDomain); } + @Override public Result delete(ID id) { Result result = result(String.valueOf(id)); getWriteableService().deleteById(id); diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseReadableRestController.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseReadableRestController.java index e671f474c..00a100545 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseReadableRestController.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseReadableRestController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: BaseReadableRestController.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:31:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -31,7 +31,11 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import java.io.Serializable; @@ -47,12 +51,13 @@ public abstract class BaseReadableRestController implements ReadableController { @AccessLimited - @Operation(summary = "分页查询数据", description = "通过pageNumber和pageSize获取分页数据") + @Operation(summary = "分页查询数据", description = "通过pageNumber和pageSize获取分页数据", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Map.class)))}) @Parameters({ @Parameter(name = "pager", required = true, in = ParameterIn.PATH, description = "分页Bo对象") }) @GetMapping - public Result> findByPage(Pager pager) { + public Result> findByPage(@Validated Pager pager) { return ReadableController.super.findByPage(pager.getPageNumber(), pager.getPageSize()); } } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseWriteableRestController.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseWriteableRestController.java index 409be526d..fb36b2dea 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseWriteableRestController.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/BaseWriteableRestController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: BaseWriteableRestController.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:31:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -29,6 +29,8 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -49,7 +51,9 @@ public ReadableService getReadableService() { } @Idempotent - @Operation(summary = "保存或更新数据", description = "接收JSON数据,转换为实体,进行保存或更新") + @Operation(summary = "保存或更新数据", description = "接收JSON数据,转换为实体,进行保存或更新", + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), + responses = {@ApiResponse(description = "已保存数据", content = @Content(mediaType = "application/json"))}) @Parameters({ @Parameter(name = "domain", required = true, description = "可转换为实体的json数据") }) @@ -60,7 +64,9 @@ public Result saveOrUpdate(@RequestBody E domain) { } @Idempotent - @Operation(summary = "删除数据", description = "根据实体ID删除数据,以及相关联的关联数据") + @Operation(summary = "删除数据", description = "根据实体ID删除数据,以及相关联的关联数据", + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), + responses = {@ApiResponse(description = "操作消息", content = @Content(mediaType = "application/json"))}) @Parameters({ @Parameter(name = "id", required = true, description = "实体ID,@Id注解对应的实体属性") }) diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/Controller.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/Controller.java index 56cb80209..1a953fab0 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/Controller.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/Controller.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: Controller.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:31:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -55,7 +55,7 @@ default Result result(E domain) { default Result> result(List domains) { Result> result = new Result<>(); - if (CollectionUtils.isNotEmpty(domains)) { + if (ObjectUtils.isNotEmpty(domains)) { return result.ok().message("查询数据成功!").data(domains); } else { return result.failed().message("查询数据失败!"); @@ -73,7 +73,7 @@ default Result> result(Page pa default Result> result(Map map) { Result> result = new Result<>(); - if (MapUtils.isNotEmpty(map)) { + if (ObjectUtils.isNotEmpty(map)) { return result.ok().message("查询数据成功!").data(map); } else { return result.failed().message("查询失败!"); @@ -89,6 +89,15 @@ default Result result(ID parameter) { } } + default Result result(boolean status) { + Result result = new Result<>(); + if (status) { + return result.ok().message("操作成功!"); + } else { + return result.failed().message("操作失败!"); + } + } + default Map getPageInfoMap(Page pages) { return getPageInfoMap(pages.getContent(), pages.getTotalPages(), pages.getTotalElements()); } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/ReadableController.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/ReadableController.java index f2aa910ef..da165ca08 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/ReadableController.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/ReadableController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: ReadableController.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -46,13 +46,20 @@ public interface ReadableController getReadableService(); + /** + * 查询分页数据 + * + * @param pageNumber 当前页码,起始页码 0 + * @param pageSize 每页显示数据条数 + * @return {@link Result} + */ default Result> findByPage(Integer pageNumber, Integer pageSize) { Page pages = getReadableService().findByPage(pageNumber, pageSize); return result(pages); } default Result> findAll() { - List domains = getReadableService().findAll(); + List domains = getReadableService().findByPage(); return result(domains); } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/WriteableController.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/WriteableController.java index 1ef50c1c2..b33441b88 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/WriteableController.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/controller/WriteableController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: WriteableController.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.base.controller; @@ -43,11 +43,24 @@ public interface WriteableController getWriteableService(); + /** + * 保存或更新实体 + * + * @param domain 实体参数 + * @return 用Result包装的实体 + */ + default Result saveOrUpdate(E domain) { E savedDomain = getWriteableService().saveOrUpdate(domain); return result(savedDomain); } + /** + * 删除数据 + * + * @param id 实体ID + * @return 用Result包装的信息 + */ default Result delete(ID id) { Result result = result(String.valueOf(id)); getWriteableService().deleteById(id); diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/AbstractCacheService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/AbstractCacheService.java index 48d6a2152..a5760634c 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/AbstractCacheService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/AbstractCacheService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: AbstractCacheService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.base.service; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseLayeredService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseLayeredService.java index 127378540..f02ac1f6f 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseLayeredService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseLayeredService.java @@ -17,11 +17,12 @@ * Module Name: eurynome-cloud-rest * File Name: BaseLayeredService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.base.service; +import cn.herodotus.eurynome.common.constant.magic.SymbolConstants; import cn.herodotus.eurynome.common.definition.entity.AbstractEntity; import java.io.Serializable; @@ -32,5 +33,9 @@ * @author : gengwei.zheng * @date : 2021/7/14 17:53 */ -public abstract class BaseLayeredService < E extends AbstractEntity, ID extends Serializable> implements WriteableService{ +public abstract class BaseLayeredService implements WriteableService { + + protected String like(String property) { + return SymbolConstants.PERCENT + property + SymbolConstants.PERCENT; + } } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java index 337e38660..6275d5136 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: BaseReadableService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.base.service; @@ -35,13 +35,13 @@ /** *

Description: 只读操作的基础通用Service

- * + *

* 该Service只包含“读”相关的操作,这个是为了支持数据库视图的读取。 * * @author : gengwei.zheng * @date : 2021/7/7 16:51 */ -public abstract class BaseReadableService extends AbstractCacheService implements ReadableService{ +public abstract class BaseReadableService extends AbstractCacheService implements ReadableService { private final static Logger log = LoggerFactory.getLogger(BaseReadableService.class); @@ -53,7 +53,7 @@ public E findById(ID id) { writeToCache(domain); } - log.debug("[Eurynome] |- BaseReadableService findById."); + log.debug("[Herodotus] |- BaseReadableService findById."); return domain; } @@ -65,7 +65,7 @@ public Page findByPage(int pageNumber, int pageSize) { writeToCache(pages); } - log.debug("[Eurynome] |- BaseReadableService findByPage."); + log.debug("[Herodotus] |- BaseReadableService findByPage."); return pages; } @@ -77,18 +77,18 @@ public Page findByPage(int pageNumber, int pageSize, Sort.Direction direction writeToCache(pages); } - log.debug("[Eurynome] |- BaseReadableService findByPage."); + log.debug("[Herodotus] |- BaseReadableService findByPage."); return pages; } @Override - public List findAll() { + public List findByPage() { List domains = readFromCache(); if (CollectionUtils.isEmpty(domains)) { - domains = ReadableService.super.findAll(); + domains = ReadableService.super.findByPage(); writeToCache(domains); } - log.debug("[Eurynome] |- BaseReadableService findAll."); + log.debug("[Herodotus] |- BaseReadableService findAll."); return domains; } } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseWriteableService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseWriteableService.java index 38c7472af..aa31ecc0c 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseWriteableService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseWriteableService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: BaseWriteableService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.base.service; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/ReadableService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/ReadableService.java index c5a115644..1eab55a5e 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/ReadableService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/ReadableService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: ReadableService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/23 15:08:23 */ package cn.herodotus.eurynome.rest.base.service; @@ -41,57 +41,158 @@ */ public interface ReadableService { + /** + * 获取Repository + * + * @return {@link BaseRepository} + */ BaseRepository getRepository(); - default List findAll() { - return getRepository().findAll(); + /** + * 根据ID查询数据 + * + * @param id 数据ID + * @return 与ID对应的数据,如果不存在则返回空 + */ + default E findById(ID id) { + return getRepository().findById(id).orElse(null); } - default Page findAll(Pageable pageable) { - return getRepository().findAll(pageable); + /** + * 数据是否存在 + * + * @param id 数据ID + * @return true 存在,false 不存在 + */ + default boolean existsById(ID id) { + return getRepository().existsById(id); } - default List findAll(Sort sort) { - return getRepository().findAll(sort); + /** + * 查询数量 + * + * @return 数据数量 + */ + default long count() { + return getRepository().count(); } - default List findAll(Specification specification) { - return getRepository().findAll(specification); + /** + * 查询数量 + * + * @param specification {@link Specification} + * @return 数据数量 + */ + default long count(Specification specification) { + return getRepository().count(specification); } - default Page findAll(Specification specification, Pageable pageable) { - return getRepository().findAll(specification, pageable); + /** + * 查询全部数据 + * + * @return 全部数据列表 + */ + default List findByPage() { + return getRepository().findAll(); } - default List findAll(Specification specification, Sort sort) { - return getRepository().findAll(specification, sort); + /** + * 查询全部数据 + * + * @param sort {@link Sort} + * @return 已排序的全部数据列表 + */ + default List findByPage(Sort sort) { + return getRepository().findAll(sort); } - default E findById(ID id) { - return getRepository().findById(id).orElse(null); + /** + * 查询全部数据 + * + * @param specification {@link Specification} + * @return 全部数据列表 + */ + default List findByPage(Specification specification) { + return getRepository().findAll(specification); } - default Page findByPage(int pageNumber, int pageSize) { - return findAll(PageRequest.of(pageNumber, pageSize)); + /** + * 查询全部数据 + * + * @param specification {@link Specification} + * @param sort {@link Sort} + * @return 全部数据列表 + */ + default List findByPage(Specification specification, Sort sort) { + return getRepository().findAll(specification, sort); } - default Page findByPage(int pageNumber, int pageSize, Sort.Direction direction) { - return findAll(PageRequest.of(pageNumber, pageSize, direction)); + /** + * 查询分页数据 + * + * @param pageable {@link Pageable} + * @return 分页数据 + */ + default Page findByPage(Pageable pageable) { + return getRepository().findAll(pageable); } - default Page findByPage(int pageNumber, int pageSize, Sort.Direction direction, String... properties) { - return findAll(PageRequest.of(pageNumber, pageSize, direction, properties)); + /** + * 查询分页数据 + * + * @param pageNumber 当前页码, 起始页码 0 + * @param pageSize 每页显示的数据条数 + * @return 分页数据 + */ + default Page findByPage(int pageNumber, int pageSize) { + return findByPage(PageRequest.of(pageNumber, pageSize)); } - default boolean existsById(ID id) { - return getRepository().existsById(id); + /** + * 查询分页数据 + * + * @param specification {@link Specification} + * @param pageable {@link Pageable} + * @return 分页数据 + */ + default Page findByPage(Specification specification, Pageable pageable) { + return getRepository().findAll(specification, pageable); } - default long count() { - return getRepository().count(); + /** + * 查询分页数据 + * + * @param specification {@link Specification} + * @param pageNumber 当前页码, 起始页码 0 + * @param pageSize 每页显示的数据条数 + * @return 分页数据 + */ + default Page findByPage(Specification specification, int pageNumber, int pageSize) { + return getRepository().findAll(specification, PageRequest.of(pageNumber, pageSize)); } - default long count(Specification specification) { - return getRepository().count(specification); + /** + * 查询分页数据 + * + * @param pageNumber 当前页码, 起始页码 0 + * @param pageSize 每页显示的数据条数 + * @param direction {@link org.springframework.data.domain.Sort.Direction} + * @return 分页数据 + */ + default Page findByPage(int pageNumber, int pageSize, Sort.Direction direction) { + return findByPage(PageRequest.of(pageNumber, pageSize, direction)); + } + + /** + * 查询分页数据 + * + * @param pageNumber 当前页码, 起始页码 0 + * @param pageSize 每页显示的数据条数 + * @param direction {@link org.springframework.data.domain.Sort.Direction} + * @param properties 排序的属性名称 + * @return 分页数据 + */ + default Page findByPage(int pageNumber, int pageSize, Sort.Direction direction, String... properties) { + return findByPage(PageRequest.of(pageNumber, pageSize, direction, properties)); } } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/WriteableService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/WriteableService.java index 2807008bb..dd21d6cc5 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/WriteableService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/WriteableService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: WriteableService.java * Author: gengwei.zheng - * Date: 2021/08/24 12:23:24 + * Date: 2021/09/25 10:32:25 */ package cn.herodotus.eurynome.rest.base.service; @@ -34,27 +34,53 @@ * @date : 2021/7/7 16:47 */ public interface WriteableService extends ReadableService { - + /** + * 删除数据 + * + * @param entity 数据对应实体 + */ default void delete(E entity) { getRepository().delete(entity); } + /** + * 批量全部删除 + */ default void deleteAllInBatch() { getRepository().deleteAllInBatch(); } + /** + * 删除指定多个数据 + * + * @param entities 数据对应实体集合 + */ default void deleteAll(Iterable entities) { getRepository().deleteAll(entities); } + /** + * 删除全部数据 + */ default void deleteAll() { getRepository().deleteAll(); } + /** + * 根据ID删除数据 + * + * @param id 数据对应ID + */ default void deleteById(ID id) { getRepository().deleteById(id); } + /** + * 保存数据 + * + * @param domain 数据对应实体 + * @return 已保存数据 + */ default E save(E domain) { return getRepository().save(domain); } @@ -89,6 +115,9 @@ default E saveOrUpdate(E entity) { return saveAndFlush(entity); } + /** + * 刷新实体状态 + */ default void flush() { getRepository().flush(); } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/JacksonConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/JacksonConfiguration.java index 1ff939d42..7f0b69cac 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/JacksonConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/JacksonConfiguration.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: JacksonConfiguration.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.configuration; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/OpenAPIConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/OpenAPIConfiguration.java index 09b28f655..4eb19e42d 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/OpenAPIConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/OpenAPIConfiguration.java @@ -15,9 +15,9 @@ * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-rest - * File Name: SwaggerConfiguration.java + * File Name: OpenAPIConfiguration.java * Author: gengwei.zheng - * Date: 2021/08/20 11:58:20 + * Date: 2021/09/12 01:51:12 */ package cn.herodotus.eurynome.rest.configuration; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestConfiguration.java index a4527902a..4ce1023d2 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestConfiguration.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: RestConfiguration.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/09/11 18:12:11 */ package cn.herodotus.eurynome.rest.configuration; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestTemplateConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestTemplateConfiguration.java index 6d076fff1..1814ef9cd 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestTemplateConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/RestTemplateConfiguration.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: RestTemplateConfiguration.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.configuration; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/ServiceConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/ServiceConfiguration.java index 0b0b40e8c..cd1a292bd 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/ServiceConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/ServiceConfiguration.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: ServiceConfiguration.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.configuration; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/UndertowWebServerFactoryCustomizer.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/UndertowWebServerFactoryCustomizer.java index 0d8d59c4a..e50ca668f 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/UndertowWebServerFactoryCustomizer.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/UndertowWebServerFactoryCustomizer.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: UndertowWebServerFactoryCustomizer.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.configuration; @@ -33,7 +33,7 @@ /** *

Description: Undertow 配置解决 启动的一个WARN问题

- * + * * @author : gengwei.zheng * @date : 2019/11/17 16:07 */ diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/PlatformProperties.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/PlatformProperties.java index e009df4f3..6ceff1f66 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/PlatformProperties.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/PlatformProperties.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: PlatformProperties.java * Author: gengwei.zheng - * Date: 2021/08/18 17:48:18 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.properties; @@ -33,9 +33,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.boot.context.properties.ConfigurationProperties; -/** +/** *

Description: 平台服务相关配置

- * + * * @author : gengwei.zheng * @date : 2019/11/17 15:22 */ diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/RestProperties.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/RestProperties.java index 172330741..600e39059 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/RestProperties.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/RestProperties.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: RestProperties.java * Author: gengwei.zheng - * Date: 2021/08/18 17:48:18 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.properties; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/ServiceProperties.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/ServiceProperties.java index 70751a9e2..ca637b726 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/ServiceProperties.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/properties/ServiceProperties.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: ServiceProperties.java * Author: gengwei.zheng - * Date: 2021/08/18 17:48:18 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.rest.properties; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/AccessLimitedInterceptor.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/AccessLimitedInterceptor.java index 1f5080e26..a6afb3721 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/AccessLimitedInterceptor.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/AccessLimitedInterceptor.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: AccessLimitedInterceptor.java * Author: gengwei.zheng - * Date: 2021/08/26 19:06:26 + * Date: 2021/09/01 12:34:01 */ package cn.herodotus.eurynome.rest.security; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/IdempotentInterceptor.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/IdempotentInterceptor.java index bb4321b9b..bc793ac14 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/IdempotentInterceptor.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/IdempotentInterceptor.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: IdempotentInterceptor.java * Author: gengwei.zheng - * Date: 2021/08/26 19:07:26 + * Date: 2021/09/01 12:34:01 */ package cn.herodotus.eurynome.rest.security; diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletFilter.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletFilter.java index d04095cd1..838f654e3 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletFilter.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletFilter.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: XssHttpServletFilter.java * Author: gengwei.zheng - * Date: 2021/09/01 12:34:01 + * Date: 2021/09/25 10:33:25 */ package cn.herodotus.eurynome.rest.security; @@ -43,7 +43,7 @@ public class XssHttpServletFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(request); - log.debug ("[Eurynome] |- XssHttpServletFilter wrapper request for [{}].", request.getRequestURI()); + log.debug("[Eurynome] |- XssHttpServletFilter wrapper request for [{}].", request.getRequestURI()); filterChain.doFilter(xssRequest, servletResponse); } } diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletRequestWrapper.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletRequestWrapper.java index de791bbb6..c112e82f5 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletRequestWrapper.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/security/XssHttpServletRequestWrapper.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-rest * File Name: XssHttpServletRequestWrapper.java * Author: gengwei.zheng - * Date: 2021/09/01 12:35:01 + * Date: 2021/09/14 14:12:14 */ package cn.herodotus.eurynome.rest.security; diff --git a/packages/eurynome-cloud-security/pom.xml b/packages/eurynome-cloud-security/pom.xml index 938005c39..8828523e1 100644 --- a/packages/eurynome-cloud-security/pom.xml +++ b/packages/eurynome-cloud-security/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-security - 2.5.4.140 + 2.5.5.0 jar diff --git a/packages/eurynome-cloud-security/src/main/java/cn/herodotus/eurynome/security/definition/core/SocialUserDetails.java b/packages/eurynome-cloud-security/src/main/java/cn/herodotus/eurynome/security/definition/core/SocialUserDetails.java new file mode 100644 index 000000000..7272177cc --- /dev/null +++ b/packages/eurynome-cloud-security/src/main/java/cn/herodotus/eurynome/security/definition/core/SocialUserDetails.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-security + * File Name: SocialUserDetails.java + * Author: gengwei.zheng + * Date: 2021/09/18 20:49:18 + */ + +package cn.herodotus.eurynome.security.definition.core; + +/** + *

Description: 社交登录用户信息详情

+ * + * @author : gengwei.zheng + * @date : 2021/9/18 20:49 + */ +public interface SocialUserDetails { + + /** + * 获取社交登录唯一标识 + * @return String + */ + String getUuid(); + + /** + * 获取社交登录分类标识 + * @return String + */ + String getSource(); + + String getPhoneNumber(); + + String getAvatar(); + + String getUserName(); + + String getNickName(); +} diff --git a/packages/eurynome-cloud-starter/pom.xml b/packages/eurynome-cloud-starter/pom.xml index 0b0c4f41e..fb8f3f7d1 100644 --- a/packages/eurynome-cloud-starter/pom.xml +++ b/packages/eurynome-cloud-starter/pom.xml @@ -29,11 +29,11 @@ packages cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-starter - 2.5.4.140 + 2.5.5.0 通用配置starter,此包的定位是统一未来接入的微服务使用 jar diff --git a/packages/pom.xml b/packages/pom.xml index 69c589e7f..7ea16fdfb 100644 --- a/packages/pom.xml +++ b/packages/pom.xml @@ -29,7 +29,7 @@ eurynome-cloud cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 packages diff --git a/platform/eurynome-cloud-gateway/pom.xml b/platform/eurynome-cloud-gateway/pom.xml index cb294497a..9e1f12c07 100644 --- a/platform/eurynome-cloud-gateway/pom.xml +++ b/platform/eurynome-cloud-gateway/pom.xml @@ -29,11 +29,11 @@ platform cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-gateway - 2.5.4.140 + 2.5.5.0 jar diff --git a/platform/eurynome-cloud-management/pom.xml b/platform/eurynome-cloud-management/pom.xml index e67855f08..6c6c20f40 100644 --- a/platform/eurynome-cloud-management/pom.xml +++ b/platform/eurynome-cloud-management/pom.xml @@ -29,11 +29,11 @@ platform cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-management - 2.5.4.140 + 2.5.5.0 jar diff --git a/platform/eurynome-cloud-uaa/pom.xml b/platform/eurynome-cloud-uaa/pom.xml index 9dac47306..265309794 100644 --- a/platform/eurynome-cloud-uaa/pom.xml +++ b/platform/eurynome-cloud-uaa/pom.xml @@ -29,11 +29,11 @@ platform cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-uaa - 2.5.4.140 + 2.5.5.0 jar diff --git a/platform/pom.xml b/platform/pom.xml index bab19d972..3e2364939 100644 --- a/platform/pom.xml +++ b/platform/pom.xml @@ -29,7 +29,7 @@ eurynome-cloud cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 4.0.0 diff --git a/pom.xml b/pom.xml index 77f5b5e4e..31590dd27 100644 --- a/pom.xml +++ b/pom.xml @@ -7,12 +7,12 @@ cn.herodotus.eurynome dependencies - 2.5.4.140 + 2.5.5.0 dependencies/pom.xml eurynome-cloud - 2.5.4.140 + 2.5.5.0 pom eurynome-cloud diff --git a/services/eurynome-cloud-bpmn-ability/pom.xml b/services/eurynome-cloud-bpmn-ability/pom.xml index 02aec9954..c330c984a 100644 --- a/services/eurynome-cloud-bpmn-ability/pom.xml +++ b/services/eurynome-cloud-bpmn-ability/pom.xml @@ -27,12 +27,12 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 4.0.0 eurynome-cloud-bpmn-ability - 2.5.4.140 + 2.5.5.0 基于Camunda工作流的服务 diff --git a/services/eurynome-cloud-bpmn-rest/pom.xml b/services/eurynome-cloud-bpmn-rest/pom.xml index 6ac35ff05..96d2f9f16 100644 --- a/services/eurynome-cloud-bpmn-rest/pom.xml +++ b/services/eurynome-cloud-bpmn-rest/pom.xml @@ -27,12 +27,12 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 4.0.0 eurynome-cloud-bpmn-rest - 2.5.4.140 + 2.5.5.0 jar diff --git a/services/eurynome-cloud-upms-ability/pom.xml b/services/eurynome-cloud-upms-ability/pom.xml index 6eae97d71..d6a68e9fe 100644 --- a/services/eurynome-cloud-upms-ability/pom.xml +++ b/services/eurynome-cloud-upms-ability/pom.xml @@ -27,12 +27,12 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 4.0.0 eurynome-cloud-upms-ability - 2.5.4.140 + 2.5.5.0 diff --git a/services/eurynome-cloud-upms-ability/src/main/java/cn/herodotus/eurynome/upms/ability/UpmsApplication.java b/services/eurynome-cloud-upms-ability/src/main/java/cn/herodotus/eurynome/upms/ability/UpmsApplication.java index bf85d0468..5758acc6f 100644 --- a/services/eurynome-cloud-upms-ability/src/main/java/cn/herodotus/eurynome/upms/ability/UpmsApplication.java +++ b/services/eurynome-cloud-upms-ability/src/main/java/cn/herodotus/eurynome/upms/ability/UpmsApplication.java @@ -23,9 +23,6 @@ package cn.herodotus.eurynome.upms.ability; import cn.herodotus.eurynome.upms.ability.configuration.UpmsAbilityConfiguration; -import cn.herodotus.eurynome.upms.api.annotation.EnableUpmsInterface; -import cn.herodotus.eurynome.upms.logic.annotation.EnableUpmsLogic; -import cn.herodotus.eurynome.upms.rest.annotation.EnableUpmsRest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -33,9 +30,6 @@ @EnableDiscoveryClient @SpringBootApplication -@EnableUpmsInterface -@EnableUpmsLogic -@EnableUpmsRest @Import(UpmsAbilityConfiguration.class) public class UpmsApplication { diff --git a/services/eurynome-cloud-upms-ability/src/main/resources/META-INF/spring.factories b/services/eurynome-cloud-upms-ability/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..86384504b --- /dev/null +++ b/services/eurynome-cloud-upms-ability/src/main/resources/META-INF/spring.factories @@ -0,0 +1,4 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ + cn.herodotus.eurynome.upms.api.configuration.UpmsApiConfiguration,\ + cn.herodotus.eurynome.upms.logic.configuration.UpmsLogicConfiguration,\ + cn.herodotus.eurynome.upms.rest.configuration.UpmsRestConfiguration \ No newline at end of file diff --git a/services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-mysql.sql b/services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-mysql.sql similarity index 97% rename from services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-mysql.sql rename to services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-mysql.sql index 685bef912..0c7d3e4ab 100644 --- a/services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-mysql.sql +++ b/services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-mysql.sql @@ -23,7 +23,7 @@ -- ---------------------------- -- Table data for oauth_applications -- ---------------------------- -INSERT INTO `oauth_applications`(`app_key`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `reversion`, `status`, `app_icon`, `app_name`, `app_name_en`, `app_secret`, `app_type`, `app_tech`, `website`, `app_code`) VALUES ('010e659a-4005-4610-98f6-00b822f4758e', '2020-04-21 19:00:19.197', 0, '2020-05-05 18:02:48.367', '', b'1', 0, 1, NULL, '业务中台管理端', 'Eurynome', '04165a07-cffd-45cf-a20a-1c2a69f65fb1', 0, 3, 'http://localhost:8080', ''); +INSERT INTO `oauth_applications`(`app_key`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `reversion`, `status`, `app_icon`, `app_name`, `app_name_en`, `app_secret`, `app_type`, `app_tech`, `website`, `app_code`) VALUES ('010e659a-4005-4610-98f6-00b822f4758e', '2020-04-21 19:00:19.197', 0, '2020-05-05 18:02:48.367', '', b'1', 0, 0, NULL, '业务中台管理端', 'Eurynome', '04165a07-cffd-45cf-a20a-1c2a69f65fb1', 0, 3, 'http://localhost:8080', ''); -- ---------------------------- -- Table data for oauth_client_details @@ -37,17 +37,17 @@ INSERT INTO `oauth_client_details` (`client_id`, `client_secret`, `resource_ids` -- ---------------------------- -- Table data for oauth_scopes -- ---------------------------- -INSERT INTO `oauth_scopes`(`scope_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `reversion`, `status`, `scope_code`, `scope_name`) VALUES ('c153737a-5234-11ea-ae28-14cf92c9b916', '2020-04-14 16:06:12', 1, '2020-04-17 07:52:46.481', '中台全部服务权限', b'1', 0, 1, 'all', '全部权限'); +INSERT INTO `oauth_scopes`(`scope_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `reversion`, `status`, `scope_code`, `scope_name`) VALUES ('c153737a-5234-11ea-ae28-14cf92c9b916', '2020-04-14 16:06:12', 1, '2020-04-17 07:52:46.481', '中台全部服务权限', b'1', 0, 0, 'all', '全部权限'); -- ---------------------------- -- Table data for sys_user -- ---------------------------- -INSERT INTO `sys_user`(`user_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `status`, `nick_name`, `password`, `user_name`, `reversion`) VALUES ('1', '2019-07-23 07:19:50', 1, '2019-07-23 07:19:52', '平台管理员', b'1', 1, 'Hades', '$2a$10$fi5ecIcM3hy9RQwE0x78oeyNecPFiUgi0PnhESeENjX3G4CBvYOLO', 'system', NULL); +INSERT INTO `sys_user`(`user_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `status`, `nick_name`, `password`, `user_name`, `reversion`) VALUES ('1', '2019-07-23 07:19:50', 1, '2019-07-23 07:19:52', '平台管理员', b'1', 0, 'Hades', '$2a$10$fi5ecIcM3hy9RQwE0x78oeyNecPFiUgi0PnhESeENjX3G4CBvYOLO', 'system', NULL); -- ---------------------------- -- Table data for sys_role -- ---------------------------- -INSERT INTO `sys_role`(`role_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `status`, `role_code`, `role_name`, `reversion`) VALUES ('1', '2019-07-23 07:22:27', 1, '2019-09-11 12:04:52', '中台管理员角色', b'1', 1, 'ROLE_ADMINISTRATOR', '平台管理员角色', NULL); +INSERT INTO `sys_role`(`role_id`, `create_time`, `ranking`, `update_time`, `description`, `is_reserved`, `status`, `role_code`, `role_name`, `reversion`) VALUES ('1', '2019-07-23 07:22:27', 1, '2019-09-11 12:04:52', '中台管理员角色', b'1', 0, 'ROLE_ADMINISTRATOR', '平台管理员角色', NULL); -- ---------------------------- -- Table data for sys_user_role diff --git a/services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-postgresql.sql b/services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-postgresql.sql similarity index 97% rename from services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-postgresql.sql rename to services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-postgresql.sql index 8671ef3ce..86abaec5c 100644 --- a/services/eurynome-cloud-upms-ability/src/main/resources/sql/upms-data-postgresql.sql +++ b/services/eurynome-cloud-upms-ability/src/main/resources/sqls/upms-data-postgresql.sql @@ -23,7 +23,7 @@ -- ---------------------------- -- Table data for oauth_applications -- ---------------------------- -INSERT INTO "oauth_applications"("app_key", "create_time", "ranking", "update_time", "description", "is_reserved", "reversion", "status", "app_icon", "app_name", "app_name_en", "app_secret", "app_type", "app_tech", "website", "app_code") VALUES ('010e659a-4005-4610-98f6-00b822f4758e', '2020-04-21 19:00:19.197', 0, '2020-05-05 18:02:48.367', '', 't', 0, 1, NULL, '业务中台管理端', 'Eurynome', '04165a07-cffd-45cf-a20a-1c2a69f65fb1', 0, 3, 'http://localhost:8080', ''); +INSERT INTO "oauth_applications"("app_key", "create_time", "ranking", "update_time", "description", "is_reserved", "reversion", "status", "app_icon", "app_name", "app_name_en", "app_secret", "app_type", "app_tech", "website", "app_code") VALUES ('010e659a-4005-4610-98f6-00b822f4758e', '2020-04-21 19:00:19.197', 0, '2020-05-05 18:02:48.367', '', 't', 0, 0, NULL, '业务中台管理端', 'Eurynome', '04165a07-cffd-45cf-a20a-1c2a69f65fb1', 0, 3, 'http://localhost:8080', ''); -- ---------------------------- -- Table data for oauth_client_details @@ -38,23 +38,25 @@ INSERT INTO "oauth_client_details" ("client_id", "resource_ids", "client_secret" -- ---------------------------- -- Table data for oauth_scopes -- ---------------------------- -INSERT INTO "oauth_scopes"("scope_id", "create_time", "ranking", "update_time", "description", "is_reserved", "reversion", "status", "scope_code", "scope_name") VALUES ('c153737a-5234-11ea-ae28-14cf92c9b916', '2020-04-14 16:06:12', 1, '2020-04-17 07:52:46.481', '中台全部服务权限', 't', 0, 1, 'all', '全部权限'); +INSERT INTO "oauth_scopes"("scope_id", "create_time", "ranking", "update_time", "description", "is_reserved", "reversion", "status", "scope_code", "scope_name") VALUES ('c153737a-5234-11ea-ae28-14cf92c9b916', '2020-04-14 16:06:12', 1, '2020-04-17 07:52:46.481', '中台全部服务权限', 't', 0, 0, 'all', '全部权限'); -- ---------------------------- -- Table data for sys_user -- ---------------------------- -INSERT INTO "sys_user"("user_id", "create_time", "ranking", "update_time", "description", "is_reserved", "status", "nick_name", "password", "user_name", "reversion") VALUES ('1', '2019-07-23 07:19:50', 1, '2019-07-23 07:19:52', '平台管理员', 't', 1, 'Hades', '$2a$10$fi5ecIcM3hy9RQwE0x78oeyNecPFiUgi0PnhESeENjX3G4CBvYOLO', 'system', NULL); +INSERT INTO "sys_user"("user_id", "create_time", "ranking", "update_time", "description", "is_reserved", "status", "nick_name", "password", "user_name", "reversion") VALUES ('1', '2019-07-23 07:19:50', 1, '2019-07-23 07:19:52', '平台管理员', 't', 0, 'Hades', '$2a$10$fi5ecIcM3hy9RQwE0x78oeyNecPFiUgi0PnhESeENjX3G4CBvYOLO', 'system', NULL); -- ---------------------------- -- Table data for sys_role -- ---------------------------- -INSERT INTO "sys_role"("role_id", "create_time", "ranking", "update_time", "description", "is_reserved", "status", "role_code", "role_name", "reversion") VALUES ('1', '2019-07-23 07:22:27', 1, '2019-09-11 12:04:52', '中台管理员角色', 't', 1, 'ROLE_ADMINISTRATOR', '平台管理员角色', NULL); +INSERT INTO "sys_role"("role_id", "create_time", "ranking", "update_time", "description", "is_reserved", "status", "role_code", "role_name", "reversion") VALUES ('1', '2019-07-23 07:22:27', 1, '2019-09-11 12:04:52', '中台管理员角色', 't', 0, 'ROLE_ADMINISTRATOR', '平台管理员角色', NULL); -- ---------------------------- -- Table data for sys_user_role -- ---------------------------- INSERT INTO "sys_user_role"("user_id", "role_id") VALUES ('1', '1'); +TRUNCATE "sys_role_authority"; + -- ---------------------------- -- 如果要重新生成权限数据,可以用下面脚本生成角色1 与权限的关系 -- ---------------------------- diff --git a/services/eurynome-cloud-upms-api/pom.xml b/services/eurynome-cloud-upms-api/pom.xml index 53bc6f79f..4cf4c60a9 100644 --- a/services/eurynome-cloud-upms-api/pom.xml +++ b/services/eurynome-cloud-upms-api/pom.xml @@ -29,11 +29,11 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-upms-api - 2.5.4.140 + 2.5.5.0 diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsInterface.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsInterface.java index be046616e..889b893a8 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsInterface.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsInterface.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: EnableUpmsInterface.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.api.annotation; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsRemoteService.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsRemoteService.java index cb4ca7790..5394620f5 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsRemoteService.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/annotation/EnableUpmsRemoteService.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: EnableUpmsRemoteService.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.api.annotation; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/configuration/UpmsApiConfiguration.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/configuration/UpmsApiConfiguration.java index 3be3c1c26..2e45bcacf 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/configuration/UpmsApiConfiguration.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/configuration/UpmsApiConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: UpmsApiConfiguration.java * Author: gengwei.zheng - * Date: 2021/05/13 11:42:13 + * Date: 2021/09/25 10:41:25 */ package cn.herodotus.eurynome.upms.api.configuration; @@ -31,21 +31,21 @@ /** *

Description : Component Data 模块辅助注册类

- * + *

* 由于采用了模块化的方式进行划分,一方面不能将所有的模块放入同一个包中,另一方面如果在每一个使用类中都使用@ComponentScan,不是很优雅。 * 因此之前就采用在starter中用@ComponentScan进行包扫描。这种方式会有很多隐性问题。 - * + *

* 查到一篇文章,里面不建议这么使用。 {@link :https://gooroo.io/GoorooTHINK/Article/17466/Lessons-Learned-Writing-Spring-Boot-Auto-Configurations/29652#.XjfZ9LCHqUn} - * + *

* ·Auto configurations should never be included via @ComponentScan because ordering cannot be guaranteed. * ·Auto configurations should live in a different package to avoid being accidentally picked up by @ComponentScan. * ·Auto configurations should be declared in a META-INF/spring.factories and should NOT be subject to @ComponentScan as mentioned above. * ·@Ordered does not apply to @Configuration classes since Spring Boot 1.3. * ·Use @AutoConfigureOrder, @AutoConfigureBefore, and @AutoConfigureAfter to order auto configurations for Spring Boot 1.3 or greater. * ·Avoid using @ConditionalOnX annotations outside of auto-configurations. @ConditionalOnX annotations are sensitive to ordering and ordering cannot be guaranteed with just @Configuration classes. - * + *

* 参考Flowable的用法,单独再定义一个@Component,进行@ComponentScan。在其它使用的地方进行@Import调用 - * + *

* 因此,至此形成一个约定: * 1、如果一个模块中有需要扫描的内容,例如properties和configuration等。那么就新建一个@Component进行辅助。 * 2、@ComponentScan尽可能定位到具体的包,尽量不要用通配符。 @@ -57,8 +57,9 @@ @Configuration @EntityScan(basePackages = { "cn.herodotus.eurynome.upms.api.entity.system", + "cn.herodotus.eurynome.upms.api.entity.hr", "cn.herodotus.eurynome.upms.api.entity.oauth", - "cn.herodotus.eurynome.upms.api.entity.development" + "cn.herodotus.eurynome.upms.api.entity.development", }) public class UpmsApiConfiguration { diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/UpmsConstants.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/UpmsConstants.java index d6938b19a..5e18b703f 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/UpmsConstants.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/UpmsConstants.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,18 +17,13 @@ * Module Name: eurynome-cloud-upms-api * File Name: UpmsConstants.java * Author: gengwei.zheng - * Date: 2021/05/07 11:46:07 + * Date: 2021/09/22 17:17:22 */ package cn.herodotus.eurynome.upms.api.constants; -import cn.herodotus.eurynome.common.constant.enums.OAuth2Expression; -import cn.herodotus.eurynome.common.constant.enums.StatusEnum; +import cn.herodotus.eurynome.common.constant.enums.*; import cn.herodotus.eurynome.common.constant.magic.CacheConstants; -import cn.herodotus.eurynome.common.constant.enums.GrantType; -import cn.herodotus.eurynome.common.constant.enums.ApplicationType; -import cn.herodotus.eurynome.upms.api.constants.enums.Gender; -import cn.herodotus.eurynome.upms.api.constants.enums.Identity; import cn.herodotus.eurynome.upms.api.constants.enums.SupplierType; import cn.herodotus.eurynome.upms.api.constants.enums.TechnologyType; @@ -83,11 +78,11 @@ public class UpmsConstants extends CacheConstants { private static final List> SUPPLIER_TYPE_ENUM = SupplierType.getToJsonStruct(); private static final List> GENDER_ENUM = Gender.getToJsonStruct(); private static final List> IDENTITY_ENUM = Identity.getToJsonStruct(); - private static final List> EXPRESSION_ENUM = OAuth2Expression.getToJsonStruct(); + private static final List> ORGANIZATION_CATEGORY_ENUM = OrganizationCategory.getToJsonStruct(); public static Map getAllEnums() { - Map map = new HashMap<>(); + Map map = new HashMap<>(8); map.put("status", STATUS_ENUM); map.put("applicationType", APPLICATION_TYPE_ENUM); map.put("grantType", OAUTH2_GRANT_TYPE_ENUM); @@ -95,7 +90,7 @@ public static Map getAllEnums() { map.put("supplierType", SUPPLIER_TYPE_ENUM); map.put("gender", GENDER_ENUM); map.put("identity", IDENTITY_ENUM); - map.put("expression", EXPRESSION_ENUM); + map.put("organizationCategory", ORGANIZATION_CATEGORY_ENUM); return map; } } diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/SupplierType.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/SupplierType.java index 73958c8cd..6df3f2c7f 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/SupplierType.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/SupplierType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: SupplierType.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:41:25 */ package cn.herodotus.eurynome.upms.api.constants.enums; @@ -50,9 +50,9 @@ public enum SupplierType { THIRD_PARTY(2, "第三方企业"), Outsourcing(3, "外包团队"); - @Schema(title = "索引") + @Schema(title = "索引") private final Integer index; - @Schema(title = "文字") + @Schema(title = "文字") private final String text; private static final Map indexMap = new HashMap<>(); diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/TechnologyType.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/TechnologyType.java index de47484f8..3dcb9129e 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/TechnologyType.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/constants/enums/TechnologyType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: TechnologyType.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:41:25 */ package cn.herodotus.eurynome.upms.api.constants.enums; @@ -55,9 +55,9 @@ public enum TechnologyType { ALIAPP(7, "支付宝小程序应用"), DUAPP(8, "百度小程序应用"); - @Schema(title = "索引") + @Schema(title = "索引") private final Integer index; - @Schema(title = "文字") + @Schema(title = "文字") private final String text; private static final Map indexMap = new HashMap<>(); diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/development/Supplier.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/development/Supplier.java index e055a83e4..c04de36e6 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/development/Supplier.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/development/Supplier.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: Supplier.java * Author: gengwei.zheng - * Date: 2021/05/13 11:32:13 + * Date: 2021/07/14 21:19:14 */ package cn.herodotus.eurynome.upms.api.entity.development; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysDepartment.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysDepartment.java new file mode 100644 index 000000000..a51ffbebe --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysDepartment.java @@ -0,0 +1,242 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: SysDepartment.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:35:25 + */ + +package cn.herodotus.eurynome.upms.api.entity.hr; + +import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; +import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +/** + *

Description: 部门信息

+ * + * @author : gengwei.zheng + * @date : 2020/1/19 16:40 + */ +@Schema(title = "部门") +@Entity +@Table(name = "sys_department", indexes = {@Index(name = "sys_department_id_idx", columnList = "department_id")}) +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "departmentId") +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_DEPARTMENT) +public class SysDepartment extends BaseSysEntity { + + @Schema(title = "部门ID") + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name = "department_id", length = 64) + private String departmentId; + + @Schema(title = "部门名称") + @Column(name = "department_name", length = 200) + private String departmentName; + + @Schema(title = "4A标准部门ID") + @Column(name = "a4_biz_dept_id", length = 64) + private String a4BizDeptId; + + @Schema(title = "标准部门代码") + @Column(name = "biz_dept_code", length = 60) + private String bizDeptCode; + + @Schema(title = "标准部门说明") + @Column(name = "biz_dept_desc", length = 256) + private String bizDeptDesc; + + @Schema(title = "标准部门ID") + @Column(name = "biz_dept_id", length = 64) + private String bizDeptId; + + @Schema(title = "标准部门名称") + @Column(name = "biz_dept_name", length = 200) + private String bizDeptName; + + @Schema(title = "标准部门类型") + @Column(name = "biz_dept_type", length = 30) + private String bizDeptType; + + @Schema(title = "分区代码") + @Column(name = "partition_code", length = 256) + private String partitionCode; + + @Schema(title = "部门简称") + @Column(name = "short_name", length = 200) + private String shortName; + + @Schema(title = "上级部门ID") + @Column(name = "parent_id", length = 64) + private String parentId; + + @Schema(title = "所属单位ID") + @Column(name = "organization_id", length = 64) + private String organizationId; + + @Override + public String getId() { + return getDepartmentId(); + } + + @Override + public String getLinkedProperty() { + return null; + } + + public String getDepartmentId() { + return departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public String getDepartmentName() { + return departmentName; + } + + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + public String getA4BizDeptId() { + return a4BizDeptId; + } + + public void setA4BizDeptId(String a4BizDeptId) { + this.a4BizDeptId = a4BizDeptId; + } + + public String getBizDeptCode() { + return bizDeptCode; + } + + public void setBizDeptCode(String bizDeptCode) { + this.bizDeptCode = bizDeptCode; + } + + public String getBizDeptDesc() { + return bizDeptDesc; + } + + public void setBizDeptDesc(String bizDeptDesc) { + this.bizDeptDesc = bizDeptDesc; + } + + public String getBizDeptId() { + return bizDeptId; + } + + public void setBizDeptId(String bizDeptId) { + this.bizDeptId = bizDeptId; + } + + public String getBizDeptName() { + return bizDeptName; + } + + public void setBizDeptName(String bizDeptName) { + this.bizDeptName = bizDeptName; + } + + public String getBizDeptType() { + return bizDeptType; + } + + public void setBizDeptType(String bizDeptType) { + this.bizDeptType = bizDeptType; + } + + public String getPartitionCode() { + return partitionCode; + } + + public void setPartitionCode(String partitionCode) { + this.partitionCode = partitionCode; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SysDepartment that = (SysDepartment) o; + return Objects.equal(departmentId, that.departmentId); + } + + @Override + public int hashCode() { + return Objects.hashCode(departmentId); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("departmentId", departmentId) + .add("departmentName", departmentName) + .add("a4BizDeptId", a4BizDeptId) + .add("bizDeptCode", bizDeptCode) + .add("bizDeptDesc", bizDeptDesc) + .add("bizDeptId", bizDeptId) + .add("bizDeptName", bizDeptName) + .add("bizDeptType", bizDeptType) + .add("partitionCode", partitionCode) + .add("shortName", shortName) + .add("parentId", parentId) + .add("organizationId", organizationId) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysEmployee.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysEmployee.java new file mode 100644 index 000000000..febbc6a0e --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysEmployee.java @@ -0,0 +1,324 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: SysEmployee.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:36:25 + */ + +package cn.herodotus.eurynome.upms.api.entity.hr; + +import cn.herodotus.eurynome.common.constant.enums.AccountType; +import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; +import cn.herodotus.eurynome.security.definition.core.SocialUserDetails; +import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import cn.herodotus.eurynome.common.constant.enums.Gender; +import cn.herodotus.eurynome.common.constant.enums.Identity; +import cn.herodotus.eurynome.upms.api.entity.system.SysUser; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +/** + *

Description: 人员信息

+ * + * @author : gengwei.zheng + * @date : 2020/1/19 16:41 + */ +@Schema(title = "人员") +@Entity +@Table(name = "sys_employee", indexes = {@Index(name = "sys_employee_id_idx", columnList = "employee_id")}) +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "employeeId") +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_EMPLOYEE) +public class SysEmployee extends BaseSysEntity implements SocialUserDetails { + + @Schema(title = "人员ID") + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name = "employee_id", length = 64) + private String employeeId; + + @Schema(title = "姓名") + @Column(name = "employee_name", length = 50) + private String employeeName; + + @Schema(title = "工号") + @Column(name = "employee_no", length = 50) + private String employeeNo; + + @Schema(title = "手机号码") + @Column(name = "mobile_phone_number", length = 50) + private String mobilePhoneNumber; + + @Schema(title = "办公电话") + @Column(name = "office_phone_number", length = 50) + private String officePhoneNumber; + + @Schema(title = "电子邮箱") + @Column(name = "email", length = 100) + private String email; + + @Schema(title = "PKI电子邮箱") + @Column(name = "pki_email", length = 100) + private String pkiEmail; + + @Schema(title = "4A标准人员ID") + @Column(name = "a4_biz_emp_id", length = 256) + private String a4BizEmpId; + + @Schema(title = "头像") + @Column(name = "avatar", length = 1000) + private String avatar; + + @Schema(title = "生日") + @Column(name = "birth_day") + @Temporal(TemporalType.DATE) + private Date birthday; + + @Schema(title = "性别") + @Column(name = "gender") + @Enumerated(EnumType.ORDINAL) + private Gender gender = Gender.MAN; + + @Schema(title = "身份") + @Column(name = "identity") + @Enumerated(EnumType.ORDINAL) + private Identity identity = Identity.STAFF; + + /** + * 为了尽量保证与工作流用户体系一致,这里采用Employee与Department多对多模式。 + *

+ * 为了提升访问效率,使用@Fetch(FetchMode.SUBSELECT),这会让数据一并查出来。 + * 从业务角度分析,一方面没有采用双向查询,避免使用部门的时候查出大量人员数据;另一方面,以人员为主,维护关联数据。 + */ + @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_DEPARTMENT) + @ManyToMany + @Fetch(FetchMode.SUBSELECT) + @JoinTable(name = "sys_employee_department", + joinColumns = {@JoinColumn(name = "employee_id")}, + inverseJoinColumns = {@JoinColumn(name = "department_id")}, + uniqueConstraints = {@UniqueConstraint(columnNames = {"employee_id", "department_id"})}, + indexes = {@Index(name = "sys_employee_department_eid_idx", columnList = "employee_id"), @Index(name = "sys_employee_department_did_idx", columnList = "department_id")}) + private Set departments = new HashSet<>(); + + @OneToOne(mappedBy = "employee", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private SysUser user; + + public SysUser getUser() { + return user; + } + + public void setUser(SysUser user) { + this.user = user; + } + + @Override + public String getId() { + return getEmployeeId(); + } + + @Override + public String getLinkedProperty() { + return null; + } + + public String getEmployeeId() { + return employeeId; + } + + public void setEmployeeId(String employeeId) { + this.employeeId = employeeId; + } + + public String getEmployeeName() { + return employeeName; + } + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + public String getEmployeeNo() { + return employeeNo; + } + + public void setEmployeeNo(String employeeNo) { + this.employeeNo = employeeNo; + } + + public String getMobilePhoneNumber() { + return mobilePhoneNumber; + } + + public void setMobilePhoneNumber(String mobilePhoneNumber) { + this.mobilePhoneNumber = mobilePhoneNumber; + } + + public String getOfficePhoneNumber() { + return officePhoneNumber; + } + + public void setOfficePhoneNumber(String officePhoneNumber) { + this.officePhoneNumber = officePhoneNumber; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPkiEmail() { + return pkiEmail; + } + + public void setPkiEmail(String pkiEmail) { + this.pkiEmail = pkiEmail; + } + + public String getA4BizEmpId() { + return a4BizEmpId; + } + + public void setA4BizEmpId(String a4BizEmpId) { + this.a4BizEmpId = a4BizEmpId; + } + + @Override + public String getUuid() { + return this.employeeId; + } + + @Override + public String getSource() { + return AccountType.INSTITUTION.getKey(); + } + + @Override + public String getPhoneNumber() { + return this.getMobilePhoneNumber(); + } + + @Override + public String getAvatar() { + return this.avatar; + } + + @Override + public String getUserName() { + return this.getEmail(); + } + + @Override + public String getNickName() { + return this.getEmployeeName(); + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public Date getBirthday() { + return birthday; + } + + public void setBirthday(Date birthday) { + this.birthday = birthday; + } + + public Gender getGender() { + return gender; + } + + public void setGender(Gender gender) { + this.gender = gender; + } + + public Identity getIdentity() { + return identity; + } + + public void setIdentity(Identity identity) { + this.identity = identity; + } + + public Set getDepartments() { + return departments; + } + + public void setDepartments(Set departments) { + this.departments = departments; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + + if (o == null || getClass() != o.getClass()) { + return false; + } + + SysEmployee that = (SysEmployee) o; + + return new EqualsBuilder() + .append(getEmployeeId(), that.getEmployeeId()) + .isEquals(); + } + + @Override + public int hashCode() { + return new HashCodeBuilder(17, 37) + .append(getEmployeeId()) + .toHashCode(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("employeeId", employeeId) + .add("employeeName", employeeName) + .add("employeeNo", employeeNo) + .add("mobilePhoneNumber", mobilePhoneNumber) + .add("officePhoneNumber", officePhoneNumber) + .add("email", email) + .add("pkiEmail", pkiEmail) + .add("a4BizEmpId", a4BizEmpId) + .add("avatar", avatar) + .add("birthday", birthday) + .add("gender", gender) + .add("identity", identity) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOrganization.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOrganization.java new file mode 100644 index 000000000..162136864 --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOrganization.java @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: SysOrganization.java + * Author: gengwei.zheng + * Date: 2021/09/22 17:16:22 + */ + +package cn.herodotus.eurynome.upms.api.entity.hr; + +import cn.herodotus.eurynome.common.constant.enums.OrganizationCategory; +import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; +import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +/** + *

Description: 单位信息

+ * + * @author : gengwei.zheng + * @date : 2020/1/19 16:41 + */ +@Schema(title = "单位") +@Entity +@Table(name = "sys_organization", indexes = {@Index(name = "sys_organization_id_idx", columnList = "organization_id")}) +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_ORGANIZATION) +public class SysOrganization extends BaseSysEntity { + + @Schema(title = "单位ID") + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name = "organization_id", length = 64) + private String organizationId; + + @Schema(title = "单位名称") + @Column(name = "organization_name", length = 1000) + private String organizationName; + + @Schema(title = "4A标准单位ID") + @Column(name = "a4_biz_org_id", length = 64) + private String a4BizOrgId; + + @Schema(title = "标准单位代码") + @Column(name = "biz_org_code", length = 60) + private String bizOrgCode; + + @Schema(title = "标准单位说明") + @Column(name = "biz_org_desc", length = 256) + private String bizOrgDesc; + + @Schema(title = "标准单位ID") + @Column(name = "biz_org_id", length = 64) + private String bizOrgId; + + @Schema(title = "标准单位名称") + @Column(name = "biz_org_name", length = 200) + private String bizOrgName; + + @Schema(title = "标准单位类型") + @Column(name = "biz_org_type", length = 30) + private String bizOrgType; + + @Schema(title = "分区代码") + @Column(name = "partition_code", length = 256) + private String partitionCode; + + @Schema(title = "单位简称") + @Column(name = "short_name", length = 200) + private String shortName; + + @Schema(title = "上级单位ID") + @Column(name = "parent_id", length = 64) + private String parentId; + + @Schema(title = "机构类别") + @Column(name = "category") + @Enumerated(EnumType.ORDINAL) + private OrganizationCategory category = OrganizationCategory.ENTERPRISE; + + @Override + public String getId() { + return getOrganizationId(); + } + + @Override + public String getLinkedProperty() { + return null; + } + + public String getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; + } + + public String getOrganizationName() { + return organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + + public String getA4BizOrgId() { + return a4BizOrgId; + } + + public void setA4BizOrgId(String a4BizOrgId) { + this.a4BizOrgId = a4BizOrgId; + } + + public String getBizOrgCode() { + return bizOrgCode; + } + + public void setBizOrgCode(String bizOrgCode) { + this.bizOrgCode = bizOrgCode; + } + + public String getBizOrgDesc() { + return bizOrgDesc; + } + + public void setBizOrgDesc(String bizOrgDesc) { + this.bizOrgDesc = bizOrgDesc; + } + + public String getBizOrgId() { + return bizOrgId; + } + + public void setBizOrgId(String bizOrgId) { + this.bizOrgId = bizOrgId; + } + + public String getBizOrgName() { + return bizOrgName; + } + + public void setBizOrgName(String bizOrgName) { + this.bizOrgName = bizOrgName; + } + + public String getBizOrgType() { + return bizOrgType; + } + + public void setBizOrgType(String bizOrgType) { + this.bizOrgType = bizOrgType; + } + + public String getPartitionCode() { + return partitionCode; + } + + public void setPartitionCode(String partitionCode) { + this.partitionCode = partitionCode; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public OrganizationCategory getCategory() { + return category; + } + + public void setCategory(OrganizationCategory category) { + this.category = category; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("organizationId", organizationId) + .add("organizationName", organizationName) + .add("a4BizOrgId", a4BizOrgId) + .add("bizOrgCode", bizOrgCode) + .add("bizOrgDesc", bizOrgDesc) + .add("bizOrgId", bizOrgId) + .add("bizOrgName", bizOrgName) + .add("bizOrgType", bizOrgType) + .add("partitionCode", partitionCode) + .add("shortName", shortName) + .add("parentId", parentId) + .add("category", category) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnership.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnership.java new file mode 100644 index 000000000..ab0ae6abd --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnership.java @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: SysOwnership.java + * Author: gengwei.zheng + * Date: 2021/09/18 16:12:18 + */ + +package cn.herodotus.eurynome.upms.api.entity.hr; + +import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; +import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; + +/** + *

Description: 人事归属

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 12:16 + */ +@Schema(title = "人事归属") +@Entity +@Table(name = "sys_ownership", indexes = { + @Index(name = "sys_ownership_id_idx", columnList = "ownership_id"), + @Index(name = "sys_ownership_oid_idx", columnList = "organization_id"), + @Index(name = "sys_ownership_did_idx", columnList = "department_id"), + @Index(name = "sys_ownership_eid_idx", columnList = "employee_id") +}) +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_OWNERSHIP) +public class SysOwnership extends BaseSysEntity { + + @Schema(title = "人员ID") + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name = "ownership_id", length = 64) + private String ownershipId; + + @Schema(title = "所属单位ID") + @Column(name = "organization_id", length = 64) + private String organizationId; + + @Schema(title = "所属部门ID") + @Column(name = "department_id", length = 64) + private String departmentId; + + @Column(name = "employee_id", length = 64) + private String employeeId; + + public String getOwnershipId() { + return ownershipId; + } + + public void setOwnershipId(String ownershipId) { + this.ownershipId = ownershipId; + } + + public String getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; + } + + public String getDepartmentId() { + return departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public String getEmployeeId() { + return employeeId; + } + + public void setEmployeeId(String employeeId) { + this.employeeId = employeeId; + } + + @Override + public String getLinkedProperty() { + return this.getDepartmentId(); + } + + @Override + public String getId() { + return this.ownershipId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("ownershipId", ownershipId) + .add("organizationId", organizationId) + .add("departmentId", departmentId) + .add("employeeId", employeeId) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnershipView.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnershipView.java new file mode 100644 index 000000000..d12b59438 --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnershipView.java @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: SysOwnershipView.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:37:25 + */ + +package cn.herodotus.eurynome.upms.api.entity.hr; + +import cn.herodotus.eurynome.data.base.entity.BaseEntity; +import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import cn.herodotus.eurynome.common.constant.enums.Identity; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.hibernate.annotations.CacheConcurrencyStrategy; +import org.hibernate.annotations.Immutable; + +import javax.persistence.*; + +/** + *

Description: 人事归属视图实体

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 14:08 + */ +@Schema(title = "人事归属视图实体") +@Entity +@Immutable +@Table(name = "v_sys_ownership") +public class SysOwnershipView extends BaseEntity { + + @Schema(title = "归属ID") + @Id + @Column(name = "ownership_id") + private String ownershipId; + + @Schema(title = "所属单位ID") + @Column(name = "organization_id") + private String organizationId; + + @Schema(title = "所属单位名称") + @Column(name = "organization_name") + private String organizationName; + + @Schema(title = "所属单位上级代码") + @Column(name = "organization_parent_id") + private String organizationParentId; + + @Schema(title = "所属部门ID") + @Column(name = "department_id") + private String departmentId; + + @Schema(title = "所属部门名称") + @Column(name = "department_name") + private String departmentName; + + @Schema(title = "所属部门上级代码") + @Column(name = "department_parent_id") + private String departmentParentId; + + @Schema(title = "人员ID") + @Column(name = "employee_id") + private String employeeId; + + @Schema(title = "人员姓名") + @Column(name = "employee_name") + private String employeeName; + + @Schema(title = "电子邮件") + @Column(name = "email") + private String email; + + @Schema(title = "PKI电子邮件") + @Column(name = "pki_email") + private String pkiEmail; + + @Schema(title = "手机号码") + @Column(name = "phone_number") + private String phoneNumber; + + @Schema(title = "身份") + @Column(name = "identity") + @Enumerated(EnumType.ORDINAL) + private Identity identity = Identity.STAFF; + + @Override + public String getLinkedProperty() { + return this.getDepartmentId(); + } + + @Override + public String getId() { + return this.getOwnershipId(); + } + + public String getOwnershipId() { + return ownershipId; + } + + public void setOwnershipId(String ownershipId) { + this.ownershipId = ownershipId; + } + + public String getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; + } + + public String getOrganizationName() { + return organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + + public String getOrganizationParentId() { + return organizationParentId; + } + + public void setOrganizationParentId(String organizationParentId) { + this.organizationParentId = organizationParentId; + } + + public String getDepartmentId() { + return departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public String getDepartmentName() { + return departmentName; + } + + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + + public String getDepartmentParentId() { + return departmentParentId; + } + + public void setDepartmentParentId(String departmentParentId) { + this.departmentParentId = departmentParentId; + } + + public String getEmployeeId() { + return employeeId; + } + + public void setEmployeeId(String employeeId) { + this.employeeId = employeeId; + } + + public String getEmployeeName() { + return employeeName; + } + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPkiEmail() { + return pkiEmail; + } + + public void setPkiEmail(String pkiEmail) { + this.pkiEmail = pkiEmail; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public Identity getIdentity() { + return identity; + } + + public void setIdentity(Identity identity) { + this.identity = identity; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("ownershipId", ownershipId) + .add("organizationId", organizationId) + .add("organizationName", organizationName) + .add("organizationParentId", organizationParentId) + .add("departmentId", departmentId) + .add("departmentName", departmentName) + .add("departmentParentId", departmentParentId) + .add("employeeId", employeeId) + .add("employeeName", employeeName) + .add("email", email) + .add("pkiEmail", pkiEmail) + .add("phoneNumber", phoneNumber) + .add("identity", identity) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthAccessToken.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthAccessToken.java new file mode 100644 index 000000000..92846554d --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthAccessToken.java @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: OauthAccessToken.java + * Author: gengwei.zheng + * Date: 2021/09/19 13:43:19 + */ + +package cn.herodotus.eurynome.upms.api.entity.oauth; + +import com.google.common.base.MoreObjects; + +import javax.persistence.*; + +/** + *

Description: OauthAccessToken

+ *

+ * 该实体只用于初始化 OAuth2 相关业务表使用,具体数据库操作由OAuth2 使用内置的原生SQL完成。 + *

+ * 实际业务中一般用不到,所以使用最小化配置。如果实际业务中要使用该实体需要完善相关配置,并测试验证OAuth2是否可以正常运行。 + * + * @author : gengwei.zheng + * @date : 2021/9/19 13:37 + */ +@Entity +@Table(name = "oauth_access_token", indexes = {@Index(name = "oauth_access_token_id_idx", columnList = "authentication_id")}) +public class OauthAccessToken { + + @Id + @Column(name = "authentication_id", nullable = false, length = 256) + private String id; + + @Column(name = "token_id", nullable = false, length = 256) + private String tokenId; + + @Column(name = "token") + private byte[] token; + + @Column(name = "user_name", length = 256) + private String userName; + + @Column(name = "client_id", length = 256) + private String clientId; + + @Column(name = "authentication") + private byte[] authentication; + + @Column(name = "refresh_token", length = 256) + private String refreshToken; + + public String getRefreshToken() { + return refreshToken; + } + + public void setRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; + } + + public byte[] getAuthentication() { + return authentication; + } + + public void setAuthentication(byte[] authentication) { + this.authentication = authentication; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public byte[] getToken() { + return token; + } + + public void setToken(byte[] token) { + this.token = token; + } + + public String getTokenId() { + return tokenId; + } + + public void setTokenId(String tokenId) { + this.tokenId = tokenId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("tokenId", tokenId) + .add("userName", userName) + .add("clientId", clientId) + .add("refreshToken", refreshToken) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApplications.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApplications.java index 5449c2568..fa89976e4 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApplications.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApplications.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: OauthApplications.java * Author: gengwei.zheng - * Date: 2021/05/13 11:32:13 + * Date: 2021/09/19 13:30:19 */ package cn.herodotus.eurynome.upms.api.entity.oauth; @@ -75,7 +75,7 @@ public class OauthApplications extends BaseAppEntity { inverseJoinColumns = {@JoinColumn(name = "scope_id")}, uniqueConstraints = {@UniqueConstraint(columnNames = {"app_key", "scope_id"})}, indexes = {@Index(name = "oauth_applications_scopes_aid_idx", columnList = "app_key"), @Index(name = "oauth_applications_scopes_sid_idx", columnList = "scope_id")}) - private Set scopes = new HashSet<>(); + private Set scopes = new HashSet<>(); public String getAppKey() { return appKey; @@ -109,11 +109,11 @@ public void setWebsite(String website) { this.website = website; } - public Set getScopes() { + public Set getScopes() { return scopes; } - public void setScopes(Set scopes) { + public void setScopes(Set scopes) { this.scopes = scopes; } diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApproval.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApproval.java new file mode 100644 index 000000000..c0870f9f9 --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthApproval.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: OauthApproval.java + * Author: gengwei.zheng + * Date: 2021/09/19 14:04:19 + */ + +package cn.herodotus.eurynome.upms.api.entity.oauth; + +import com.google.common.base.MoreObjects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import java.time.Instant; + +/** + *

Description: OauthApproval

+ *

+ * 该实体只用于初始化 OAuth2 相关业务表使用,具体数据库操作由OAuth2 使用内置的原生SQL完成。 + *

+ * 实际业务中一般用不到,所以使用最小化配置。如果实际业务中要使用该实体需要完善相关配置,并测试验证OAuth2是否可以正常运行。 + * + * @author : gengwei.zheng + * @date : 2021/9/19 13:58 + */ +@Entity +@Table(name = "oauth_approvals") +public class OauthApproval { + + /** + * 添加一个空的id标识,因为jpa在映射实体是需要一个id,这个必须。原始的OAuth2脚本中,该表是无主键的表 + */ + @Id + + @Column(name = "userId", length = 256) + private String userId; + + @Column(name = "clientId", length = 256) + private String clientId; + + @Column(name = "scope", length = 256) + private String scope; + + @Column(name = "status", length = 10) + private String status; + + @Column(name = "expiresAt") + private Instant expiresAt; + + @Column(name = "lastModifiedAt") + private Instant lastModifiedAt; + + public Instant getLastModifiedAt() { + return lastModifiedAt; + } + + public void setLastModifiedAt(Instant lastModifiedAt) { + this.lastModifiedAt = lastModifiedAt; + } + + public Instant getExpiresAt() { + return expiresAt; + } + + public void setExpiresAt(Instant expiresAt) { + this.expiresAt = expiresAt; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getScope() { + return scope; + } + + public void setScope(String scope) { + this.scope = scope; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("userId", userId) + .add("clientId", clientId) + .add("scope", scope) + .add("status", status) + .add("expiresAt", expiresAt) + .add("lastModifiedAt", lastModifiedAt) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientDetails.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientDetails.java index 4bb0c1125..5daca9a8d 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientDetails.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientDetails.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: OauthClientDetails.java * Author: gengwei.zheng - * Date: 2021/05/13 11:31:13 + * Date: 2021/08/18 17:48:18 */ package cn.herodotus.eurynome.upms.api.entity.oauth; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientToken.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientToken.java new file mode 100644 index 000000000..cbc4415c0 --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthClientToken.java @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: OauthClientToken.java + * Author: gengwei.zheng + * Date: 2021/09/19 14:05:19 + */ + +package cn.herodotus.eurynome.upms.api.entity.oauth; + +import com.google.common.base.MoreObjects; + +import javax.persistence.*; + +/** + *

Description: OauthClientToken

+ *

+ * 该实体只用于初始化 OAuth2 相关业务表使用,具体数据库操作由OAuth2 使用内置的原生SQL完成。 + *

+ * 实际业务中一般用不到,所以使用最小化配置。如果实际业务中要使用该实体需要完善相关配置,并测试验证OAuth2是否可以正常运行。 + * + * @author : gengwei.zheng + * @date : 2021/9/19 14:00 + */ +@Entity +@Table(name = "oauth_client_token", indexes = {@Index(name = "oauth_client_token_id_idx", columnList = "authentication_id")}) +public class OauthClientToken { + + @Id + @Column(name = "authentication_id", nullable = false, length = 256) + private String id; + + @Column(name = "token_id", length = 256) + private String tokenId; + + @Column(name = "token") + private byte[] token; + + @Column(name = "user_name", length = 256) + private String userName; + + @Column(name = "client_id", length = 256) + private String clientId; + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public byte[] getToken() { + return token; + } + + public void setToken(byte[] token) { + this.token = token; + } + + public String getTokenId() { + return tokenId; + } + + public void setTokenId(String tokenId) { + this.tokenId = tokenId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("tokenId", tokenId) + .add("userName", userName) + .add("clientId", clientId) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthCode.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthCode.java new file mode 100644 index 000000000..b319e14f3 --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthCode.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: OauthCode.java + * Author: gengwei.zheng + * Date: 2021/09/19 14:03:19 + */ + +package cn.herodotus.eurynome.upms.api.entity.oauth; + +import com.google.common.base.MoreObjects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + *

Description: OauthCode

+ *

+ * 该实体只用于初始化 OAuth2 相关业务表使用,具体数据库操作由OAuth2 使用内置的原生SQL完成。 + *

+ * 实际业务中一般用不到,所以使用最小化配置。如果实际业务中要使用该实体需要完善相关配置,并测试验证OAuth2是否可以正常运行。 + * + * @author : gengwei.zheng + * @date : 2021/9/19 14:01 + */ +@Entity +@Table(name = "oauth_code") +public class OauthCode { + + /** + * 添加一个空的id标识,因为jpa在映射实体是需要一个id,这个必须。原始的OAuth2脚本中,该表是无主键的表 + */ + @Id + + @Column(name = "code", length = 256) + private String code; + + @Column(name = "authentication") + private byte[] authentication; + + public byte[] getAuthentication() { + return authentication; + } + + public void setAuthentication(byte[] authentication) { + this.authentication = authentication; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("code", code) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthRefreshToken.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthRefreshToken.java new file mode 100644 index 000000000..049ecc50e --- /dev/null +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthRefreshToken.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-api + * File Name: OauthRefreshToken.java + * Author: gengwei.zheng + * Date: 2021/09/19 14:05:19 + */ + +package cn.herodotus.eurynome.upms.api.entity.oauth; + +import com.google.common.base.MoreObjects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + *

Description: OauthRefreshToken

+ *

+ * 该实体只用于初始化 OAuth2 相关业务表使用,具体数据库操作由OAuth2 使用内置的原生SQL完成。 + *

+ * 实际业务中一般用不到,所以使用最小化配置。如果实际业务中要使用该实体需要完善相关配置,并测试验证OAuth2是否可以正常运行。 + * + * @author : gengwei.zheng + * @date : 2021/9/19 14:03 + */ +@Entity +@Table(name = "oauth_refresh_token") +public class OauthRefreshToken { + + /** + * 添加一个空的id标识,因为jpa在映射实体是需要一个id,这个必须。原始的OAuth2脚本中,该表是无主键的表 + */ + @Id + + @Column(name = "token_id", length = 256) + private String tokenId; + + @Column(name = "token") + private byte[] token; + + @Column(name = "authentication") + private byte[] authentication; + + public byte[] getAuthentication() { + return authentication; + } + + public void setAuthentication(byte[] authentication) { + this.authentication = authentication; + } + + public byte[] getToken() { + return token; + } + + public void setToken(byte[] token) { + this.token = token; + } + + public String getTokenId() { + return tokenId; + } + + public void setTokenId(String tokenId) { + this.tokenId = tokenId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("tokenId", tokenId) + .toString(); + } +} \ No newline at end of file diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OAuth2Scopes.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthScopes.java similarity index 96% rename from services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OAuth2Scopes.java rename to services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthScopes.java index e272f7932..e55a1884a 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OAuth2Scopes.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/oauth/OauthScopes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: OauthScopes.java * Author: gengwei.zheng - * Date: 2021/05/13 11:32:13 + * Date: 2021/09/19 13:30:19 */ package cn.herodotus.eurynome.upms.api.entity.oauth; @@ -49,7 +49,7 @@ indexes = {@Index(name = "oauth_scopes_id_idx", columnList = "scope_id"), @Index(name = "oauth_scopes_code_idx", columnList = "scope_code")}) @Cacheable @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_OAUTH_SCOPES) -public class OAuth2Scopes extends BaseSysEntity implements GrantedAuthority { +public class OauthScopes extends BaseSysEntity implements GrantedAuthority { @Id @GeneratedValue(generator = "system-uuid") @@ -146,7 +146,7 @@ public boolean equals(Object o) { return false; } - OAuth2Scopes that = (OAuth2Scopes) o; + OauthScopes that = (OauthScopes) o; return new EqualsBuilder() .append(getScopeId(), that.getScopeId()) diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java index 16902cbcf..cf886625d 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: SysAuthority.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:38:25 */ package cn.herodotus.eurynome.upms.api.entity.system; @@ -25,6 +25,9 @@ import cn.herodotus.eurynome.common.constant.enums.AuthorityType; import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.google.common.base.MoreObjects; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.hibernate.annotations.CacheConcurrencyStrategy; @@ -40,13 +43,15 @@ */ @Entity @Table(name = "sys_authority", indexes = {@Index(name = "sys_authority_id_idx", columnList = "authority_id")}) +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "authorityId") @Cacheable @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_AUTHORITY) + public class SysAuthority extends BaseSysEntity { @Id @GeneratedValue(generator = "authority-uuid") - @GenericGenerator(name = "authority-uuid", strategy = "cn.herodotus.eurynome.upms.api.generator.SysAuthorityUUIDGenerator") + @GenericGenerator(name = "authority-uuid", strategy = "cn.herodotus.cloud.upms.api.generator.SysAuthorityUUIDGenerator") @Column(name = "authority_id", length = 64) private String authorityId; @@ -221,18 +226,18 @@ public int hashCode() { @Override public String toString() { - return "SysAuthority{" + - "authorityId='" + authorityId + '\'' + - ", authorityCode='" + authorityCode + '\'' + - ", authorityName='" + authorityName + '\'' + - ", requestMethod='" + requestMethod + '\'' + - ", authorityType=" + authorityType + - ", serviceId='" + serviceId + '\'' + - ", className='" + className + '\'' + - ", methodName='" + methodName + '\'' + - ", url='" + url + '\'' + - ", menuClass='" + menuClass + '\'' + - ", parentId='" + parentId + '\'' + - '}'; + return MoreObjects.toStringHelper(this) + .add("authorityId", authorityId) + .add("authorityCode", authorityCode) + .add("authorityName", authorityName) + .add("requestMethod", requestMethod) + .add("authorityType", authorityType) + .add("serviceId", serviceId) + .add("className", className) + .add("methodName", methodName) + .add("url", url) + .add("menuClass", menuClass) + .add("parentId", parentId) + .toString(); } } diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysDefaultRole.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysDefaultRole.java index 123a0f706..c8ce2ec51 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysDefaultRole.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysDefaultRole.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: SysDefaultRole.java * Author: gengwei.zheng - * Date: 2021/08/05 17:32:05 + * Date: 2021/09/25 10:41:25 */ package cn.herodotus.eurynome.upms.api.entity.system; @@ -54,13 +54,13 @@ public class SysDefaultRole extends BaseSysEntity { @Column(name = "default_id", length = 64) private String defaultId; - @Schema(title = "场景") + @Schema(title = "场景") @Column(name = "scene", unique = true) @Enumerated(EnumType.STRING) private AccountType scene = AccountType.INSTITUTION; @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_ROLE) - @Schema(title = "角色ID") + @Schema(title = "角色ID") @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "role_id", nullable = false) private SysRole role; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysRole.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysRole.java index 41538f4f3..868fd0c6a 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysRole.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysRole.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,15 @@ * Module Name: eurynome-cloud-upms-api * File Name: SysRole.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:39:25 */ package cn.herodotus.eurynome.upms.api.entity.system; import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; import com.google.common.base.MoreObjects; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; @@ -31,7 +33,6 @@ import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.GenericGenerator; -import org.springframework.security.core.GrantedAuthority; import javax.persistence.*; import java.util.HashSet; @@ -42,7 +43,8 @@ indexes = {@Index(name = "sys_role_rid_idx", columnList = "role_id"), @Index(name = "sys_role_rcd_idx", columnList = "role_code")}) @Cacheable @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_ROLE) -public class SysRole extends BaseSysEntity implements GrantedAuthority { +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "roleId") +public class SysRole extends BaseSysEntity { @Id @GeneratedValue(generator = "system-uuid") @@ -82,11 +84,6 @@ public class SysRole extends BaseSysEntity implements GrantedAuthority { @OneToMany(mappedBy = "role", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) private Set defaults = new HashSet<>(); - @Override - public String getAuthority() { - return this.getRoleCode(); - } - @Override public String getId() { return getRoleId(); diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysUser.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysUser.java index 98db9f52f..0577f46a9 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysUser.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysUser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,21 +17,25 @@ * Module Name: eurynome-cloud-upms-api * File Name: SysUser.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:39:25 */ /** * 2019.09.14总结: * 1、今天增加了Redis与Caffeine多级缓存并验证成功 * 2、存在的主要问题就是Jackson的序列化问题。通过该问题的处理总结一下内容: - * (1)Spring Data Jpa @ManyToMany等注解在没有特殊使用需求的时候尽量不要用双向,这会引起对象引用的环,导致json序列化出问题。 - * (2)使用Fastjson在序列化过程中,各种问题会少于Jackson。 - * (3)Spring Date Jpa 分页对象Page,在多级缓存中,由于找不到响应的Page对象,所以在缓存序列化过程中会出错,而且返回前台的内容过多。所以目前是采用返回Map的方式解决。 + * (1)Spring Data Jpa @ManyToMany等注解在没有特殊使用需求的时候尽量不要用双向,这会引起对象引用的环,导致json序列化出问题。 + * (2)使用Fastjson在序列化过程中,各种问题会少于Jackson。 + * (3)Spring Date Jpa 分页对象Page,在多级缓存中,由于找不到响应的Page对象,所以在缓存序列化过程中会出错,而且返回前台的内容过多。所以目前是采用返回Map的方式解决。 */ package cn.herodotus.eurynome.upms.api.entity.system; import cn.herodotus.eurynome.data.base.entity.BaseSysEntity; import cn.herodotus.eurynome.upms.api.constants.UpmsConstants; +import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.google.common.base.MoreObjects; import io.swagger.v3.oas.annotations.media.Schema; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Fetch; @@ -48,39 +52,48 @@ * @author : gengwei.zheng * @date : 2020/4/10 11:06 */ -@Schema(name = "系统用户") +@Schema(title = "系统用户") @Entity @Table(name = "sys_user", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_name"})}, indexes = {@Index(name = "sys_user_id_idx", columnList = "user_id"), @Index(name = "sys_user_unm_idx", columnList = "user_name")}) @Cacheable @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_USER) +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userId") public class SysUser extends BaseSysEntity { - @Schema(title = "用户ID") + @Schema(title = "用户ID") @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid2") @Column(name = "user_id", length = 64) private String userId; - @Schema(title = "用户名") + @Schema(title = "用户名") @Column(name = "user_name", length = 128, unique = true) private String userName; - @Schema(title = "密码", description = "BCryptPasswordEncoder") + @Schema(title = "密码", description = "BCryptPasswordEncoder") @Column(name = "password", length = 256) private String password; - @Schema(title = "昵称") + @Schema(title = "昵称") @Column(name = "nick_name", length = 64) private String nickName; - @Schema(title = "人员ID") - @Column(name = "employee_id", length = 256) - private String employeeId; + @Schema(title = "手机号码") + @Column(name = "phone_number", length = 256) + private String phoneNumber; + + @Schema(title = "手机号码") + @Column(name = "avatar", length = 1024) + private String avatar; + + @Schema(title = "EMAIL") + @Column(name = "email", length = 100) + private String email; @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_ROLE) - @Schema(title = "用户角色") + @Schema(title = "用户角色") @ManyToMany(fetch = FetchType.EAGER) @Fetch(FetchMode.SUBSELECT) @JoinTable(name = "sys_user_role", @@ -90,6 +103,16 @@ public class SysUser extends BaseSysEntity { indexes = {@Index(name = "sys_user_role_uid_idx", columnList = "user_id"), @Index(name = "sys_user_role_rid_idx", columnList = "role_id")}) private Set roles = new HashSet<>(); + @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = UpmsConstants.REGION_SYS_EMPLOYEE) + @Schema(title = "人员") + @OneToOne(fetch = FetchType.LAZY) + @JoinTable(name = "sys_user_employee", + joinColumns = {@JoinColumn(name = "user_id")}, + inverseJoinColumns = {@JoinColumn(name = "employee_id")}, + uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "employee_id"})}, + indexes = {@Index(name = "sys_user_employee_sid_idx", columnList = "user_id"), @Index(name = "sys_user_employee_eid_idx", columnList = "employee_id")}) + private SysEmployee employee; + @Override public String getId() { return getUserId(); @@ -100,6 +123,30 @@ public String getLinkedProperty() { return getUserName(); } + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + public String getUserId() { return userId; } @@ -132,14 +179,6 @@ public void setNickName(String nickName) { this.nickName = nickName; } - public String getEmployeeId() { - return employeeId; - } - - public void setEmployeeId(String employeeId) { - this.employeeId = employeeId; - } - public Set getRoles() { return roles; } @@ -148,15 +187,24 @@ public void setRoles(Set roles) { this.roles = roles; } + public SysEmployee getEmployee() { + return employee; + } + + public void setEmployee(SysEmployee employee) { + this.employee = employee; + } @Override public String toString() { - return "SysUser{" + - "userId='" + userId + '\'' + - ", userName='" + userName + '\'' + - ", password='" + password + '\'' + - ", nickName='" + nickName + '\'' + - ", employeeId='" + employeeId + '\'' + - '}'; + return MoreObjects.toStringHelper(this) + .add("userId", userId) + .add("userName", userName) + .add("password", password) + .add("nickName", nickName) + .add("phoneNumber", phoneNumber) + .add("avatar", avatar) + .add("email", email) + .toString(); } } diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/OauthClientDetailsUUIDGenerator.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/OauthClientDetailsUUIDGenerator.java index e4647d1a4..ea458db38 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/OauthClientDetailsUUIDGenerator.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/OauthClientDetailsUUIDGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: OauthClientDetailsUUIDGenerator.java * Author: gengwei.zheng - * Date: 2021/05/13 11:32:13 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.api.generator; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/SysAuthorityUUIDGenerator.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/SysAuthorityUUIDGenerator.java index 55c0d5848..b976abde3 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/SysAuthorityUUIDGenerator.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/generator/SysAuthorityUUIDGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: SysAuthorityUUIDGenerator.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/08/05 18:32:05 */ package cn.herodotus.eurynome.upms.api.generator; diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/helper/UpmsHelper.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/helper/UpmsHelper.java index 314a5c3ff..2670d6cdc 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/helper/UpmsHelper.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/helper/UpmsHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: UpmsHelper.java * Author: gengwei.zheng - * Date: 2021/05/13 11:53:13 + * Date: 2021/09/19 13:30:19 */ package cn.herodotus.eurynome.upms.api.helper; @@ -29,7 +29,7 @@ import cn.herodotus.eurynome.security.definition.core.HerodotusUserDetails; import cn.herodotus.eurynome.security.definition.domain.RequestMapping; import cn.herodotus.eurynome.security.utils.SecurityUtils; -import cn.herodotus.eurynome.upms.api.entity.oauth.OAuth2Scopes; +import cn.herodotus.eurynome.upms.api.entity.oauth.OauthScopes; import cn.herodotus.eurynome.upms.api.entity.oauth.OauthApplications; import cn.herodotus.eurynome.upms.api.entity.oauth.OauthClientDetails; import cn.herodotus.eurynome.upms.api.entity.system.SysAuthority; @@ -149,7 +149,7 @@ public static OauthClientDetails convertOauthApplicationsToOauthClientDetails(Oa oauthClientDetails.setClientSecret(SecurityUtils.encrypt(oauthApplications.getAppSecret())); if (CollectionUtils.isNotEmpty(oauthApplications.getScopes())) { - String scope = oauthApplications.getScopes().stream().map(OAuth2Scopes::getScopeCode).collect(Collectors.joining(SymbolConstants.COMMA)); + String scope = oauthApplications.getScopes().stream().map(OauthScopes::getScopeCode).collect(Collectors.joining(SymbolConstants.COMMA)); oauthClientDetails.setScope(scope); } diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/fegin/VerificationCodeFeignService.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/fegin/VerificationCodeFeignService.java index 4e95cab0e..210f7c587 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/fegin/VerificationCodeFeignService.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/fegin/VerificationCodeFeignService.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: VerificationCodeFeignService.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/09/25 10:41:25 */ package cn.herodotus.eurynome.upms.api.service.fegin; @@ -42,7 +42,8 @@ public interface VerificationCodeFeignService { */ /** * 生成图形验证码 - * @param httpServletRequest 请求对象 + * + * @param httpServletRequest 请求对象 * @param httpServletResponse 响应对象 * @throws Exception 绘制错误 */ @@ -51,6 +52,7 @@ public interface VerificationCodeFeignService { /** * 验证 + * * @param code 传输代码 * @return 是否正确 */ diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/remote/RemoteVerificationCodeService.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/remote/RemoteVerificationCodeService.java index d792cd1fc..4e28f1086 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/remote/RemoteVerificationCodeService.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/service/remote/RemoteVerificationCodeService.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Gengwei Zheng(herodotus@aliyun.com) + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-api * File Name: RemoteVerificationCodeService.java * Author: gengwei.zheng - * Date: 2021/05/07 11:28:07 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.api.service.remote; diff --git a/services/eurynome-cloud-upms-logic/pom.xml b/services/eurynome-cloud-upms-logic/pom.xml index 2dfead60e..b67dd318d 100644 --- a/services/eurynome-cloud-upms-logic/pom.xml +++ b/services/eurynome-cloud-upms-logic/pom.xml @@ -7,11 +7,11 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-upms-logic - 2.5.4.140 + 2.5.5.0 diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/annotation/EnableUpmsLogic.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/annotation/EnableUpmsLogic.java index 57ec47ef4..a806f98f8 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/annotation/EnableUpmsLogic.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/annotation/EnableUpmsLogic.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2020 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: EnableUpmsLogic.java * Author: gengwei.zheng - * Date: 2020/6/9 下午1:55 - * LastModified: 2020/6/9 下午1:55 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.logic.annotation; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/configuration/UpmsLogicConfiguration.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/configuration/UpmsLogicConfiguration.java index 5b04e63d7..7e7a8cbe5 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/configuration/UpmsLogicConfiguration.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/configuration/UpmsLogicConfiguration.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2020 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-component-data - * File Name: ComponentDataConfiguration.java + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: UpmsLogicConfiguration.java * Author: gengwei.zheng - * Date: 2020/2/3 下午5:13 - * LastModified: 2020/2/3 下午5:13 + * Date: 2021/09/19 07:10:19 */ package cn.herodotus.eurynome.upms.logic.configuration; @@ -60,6 +58,7 @@ @ComponentScan(basePackages = { "cn.herodotus.eurynome.upms.logic.configuration", "cn.herodotus.eurynome.upms.logic.service.system", + "cn.herodotus.eurynome.upms.logic.service.hr", "cn.herodotus.eurynome.upms.logic.service.oauth", "cn.herodotus.eurynome.upms.logic.service.development", "cn.herodotus.eurynome.upms.logic.listener", @@ -67,6 +66,7 @@ }) @EnableJpaRepositories(basePackages = { "cn.herodotus.eurynome.upms.logic.repository.system", + "cn.herodotus.eurynome.upms.logic.repository.hr", "cn.herodotus.eurynome.upms.logic.repository.oauth", "cn.herodotus.eurynome.upms.logic.repository.development", }) diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java new file mode 100644 index 000000000..f5149b2ce --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: OwnershipConfig.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:27:25 + */ + +package cn.herodotus.eurynome.upms.logic.dto; + +import cn.herodotus.eurynome.common.definition.dto.BaseDTO; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; +import org.apache.commons.collections4.CollectionUtils; + +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + *

Description: 增加人员归属参数BO对象

+ * + * @author : gengwei.zheng + * @date : 2021/9/25 10:24 + */ +@Schema(description = "增加人员归属参数BO对象") +public class OwnershipConfig extends BaseDTO { + + @NotNull(message = "单位ID不能为空") + @Schema(description = "单位ID") + private String organizationId; + + @NotNull(message = "部门ID不能为空") + @Schema(description = "部门ID") + private String departmentId; + + @Schema(description = "配置的人员列表") + private List employees; + + public String getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; + } + + public String getDepartmentId() { + return departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public List getEmployees() { + return employees; + } + + public void setEmployees(List employees) { + this.employees = employees; + } + + public List getAllocatable() { + if (CollectionUtils.isNotEmpty(this.employees)) { + return employees.stream().peek(employee -> { + SysDepartment sysDepartment = new SysDepartment(); + sysDepartment.setDepartmentId(this.departmentId); + Set sysDepartments = employee.getDepartments(); + if (CollectionUtils.isEmpty(sysDepartments)) { + sysDepartments = new HashSet<>(); + } + sysDepartments.add(sysDepartment); + employee.setDepartments(sysDepartments); + }).collect(Collectors.toList()); + } + + return new ArrayList<>(); + } + + public List getOwnerships() { + if (CollectionUtils.isNotEmpty(this.employees)) { + return this.employees.stream().map(employee -> { + SysOwnership sysOwnership = new SysOwnership(); + sysOwnership.setEmployeeId(employee.getEmployeeId()); + sysOwnership.setDepartmentId(this.departmentId); + sysOwnership.setOrganizationId(this.organizationId); + return sysOwnership; + }).collect(Collectors.toList()); + } + return new ArrayList<>(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("organizationId", organizationId) + .add("departmentId", departmentId) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java new file mode 100644 index 000000000..51a674054 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: OwnershipRemove.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:27:25 + */ + +package cn.herodotus.eurynome.upms.logic.dto; + +import cn.herodotus.eurynome.common.definition.dto.BaseDTO; +import com.google.common.base.MoreObjects; +import io.swagger.v3.oas.annotations.media.Schema; + +import javax.validation.constraints.NotNull; + +/** + *

Description: 删除人员归属参数BO对象

+ * + * @author : gengwei.zheng + * @date : 2021/9/25 10:25 + */ +@Schema(description = "删除人员归属参数BO对象") +public class OwnershipRemove extends BaseDTO { + + @NotNull(message = "归属ID不能为空") + @Schema(description = "归属ID") + private String ownershipId; + + @NotNull(message = "部门ID不能为空") + @Schema(description = "部门ID") + private String departmentId; + + @NotNull(message = "人员ID不能为空") + @Schema(description = "人员ID") + private String employeeId; + + public String getOwnershipId() { + return ownershipId; + } + + public void setOwnershipId(String ownershipId) { + this.ownershipId = ownershipId; + } + + public String getDepartmentId() { + return departmentId; + } + + public void setDepartmentId(String departmentId) { + this.departmentId = departmentId; + } + + public String getEmployeeId() { + return employeeId; + } + + public void setEmployeeId(String employeeId) { + this.employeeId = employeeId; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("ownershipId", ownershipId) + .add("departmentId", departmentId) + .add("employeeId", employeeId) + .toString(); + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/LocalRequestMappingGatherListener.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/LocalRequestMappingGatherListener.java index 6b007348a..938898539 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/LocalRequestMappingGatherListener.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/LocalRequestMappingGatherListener.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-logic * File Name: LocalRequestMappingGatherListener.java * Author: gengwei.zheng - * Date: 2021/08/23 18:55:23 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.upms.logic.listener; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/RemoteRequestMappingGatherListener.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/RemoteRequestMappingGatherListener.java index b66074d03..b798fc731 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/RemoteRequestMappingGatherListener.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/listener/RemoteRequestMappingGatherListener.java @@ -14,10 +14,10 @@ * limitations under the License. * * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-ability + * Module Name: eurynome-cloud-upms-logic * File Name: RemoteRequestMappingGatherListener.java * Author: gengwei.zheng - * Date: 2021/08/07 20:49:07 + * Date: 2021/08/11 20:49:11 */ package cn.herodotus.eurynome.upms.logic.listener; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/processor/RequestMappingStoreProcessor.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/processor/RequestMappingStoreProcessor.java index 05484e61e..10e87889c 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/processor/RequestMappingStoreProcessor.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/processor/RequestMappingStoreProcessor.java @@ -14,10 +14,10 @@ * limitations under the License. * * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-ability + * Module Name: eurynome-cloud-upms-logic * File Name: RequestMappingStoreProcessor.java * Author: gengwei.zheng - * Date: 2021/08/07 20:50:07 + * Date: 2021/08/11 20:49:11 */ package cn.herodotus.eurynome.upms.logic.processor; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/development/SupplierRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/development/SupplierRepository.java index cc5b5fd96..7f2e5e0b8 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/development/SupplierRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/development/SupplierRepository.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SupplierRepository.java + * Author: gengwei.zheng + * Date: 2021/06/29 15:58:29 + */ + package cn.herodotus.eurynome.upms.logic.repository.development; import cn.herodotus.eurynome.data.base.repository.BaseRepository; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysDepartmentRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysDepartmentRepository.java new file mode 100644 index 000000000..913852b23 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysDepartmentRepository.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysDepartmentRepository.java + * Author: gengwei.zheng + * Date: 2021/09/18 16:12:18 + */ + +package cn.herodotus.eurynome.upms.logic.repository.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import org.springframework.data.jpa.repository.QueryHints; + +import javax.persistence.QueryHint; +import java.util.List; + +/** + *

Description: 部门 Repository

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:47 + */ +public interface SysDepartmentRepository extends BaseRepository { + + @QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true")) + List findByOrganizationId(String organizationId); +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysEmployeeRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysEmployeeRepository.java new file mode 100644 index 000000000..062f8e40a --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysEmployeeRepository.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysEmployeeRepository.java + * Author: gengwei.zheng + * Date: 2021/09/18 16:12:18 + */ + +package cn.herodotus.eurynome.upms.logic.repository.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; + +/** + *

Description: 人员 Repository

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:47 + */ +public interface SysEmployeeRepository extends BaseRepository { + +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOrganizationRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOrganizationRepository.java new file mode 100644 index 000000000..03e10c281 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOrganizationRepository.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOrganizationRepository.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:40:25 + */ + +package cn.herodotus.eurynome.upms.logic.repository.hr; + +import cn.herodotus.eurynome.common.constant.enums.OrganizationCategory; +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOrganization; + +import java.util.List; + +/** + *

Description: 单位管理Repository

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:37 + */ +public interface SysOrganizationRepository extends BaseRepository { + + /** + * 根据组织分类查询组织 + * + * @param category 组织分类 {@link OrganizationCategory} + * @return 组织列表 + */ + List findByCategory(OrganizationCategory category); +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java new file mode 100644 index 000000000..0a15b8874 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOwnershipRepository.java + * Author: gengwei.zheng + * Date: 2021/09/19 15:32:19 + */ + +package cn.herodotus.eurynome.upms.logic.repository.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; + +/** + *

Description: 人事归属Repository

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:28 + */ +public interface SysOwnershipRepository extends BaseRepository { + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param organizationId 单位ID + */ + void deleteByOrganizationId(String organizationId); + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param departmentId 部门ID + */ + void deleteByDepartmentId(String departmentId); + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param employeeId 人员ID + */ + void deleteByEmployeeId(String employeeId); +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipViewRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipViewRepository.java new file mode 100644 index 000000000..01bb9731a --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipViewRepository.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOwnershipViewRepository.java + * Author: gengwei.zheng + * Date: 2021/09/19 15:32:19 + */ + +package cn.herodotus.eurynome.upms.logic.repository.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnershipView; + +import java.util.List; + +/** + *

Description: 人事归属实体Repository

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:29 + */ +public interface SysOwnershipViewRepository extends BaseRepository { + + /** + * 根据人员ID,查找该人员的人事归属信息 + * + * @param employeeId 人员ID + * @return 该人员的所有人事归属信息 + */ + List findByEmployeeId(String employeeId); +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthApplicationsRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthApplicationsRepository.java index 28825c2b6..770d20a8e 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthApplicationsRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthApplicationsRepository.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthApplicationsRepository.java * Author: gengwei.zheng - * Date: 2021/1/17 下午5:18 - * LastModified: 2021/1/3 上午8:46 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.logic.repository.oauth; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthClientDetailsRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthClientDetailsRepository.java index acf174b95..bfdb1946a 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthClientDetailsRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthClientDetailsRepository.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthClientDetailsRepository.java * Author: gengwei.zheng - * Date: 2021/1/17 下午5:18 - * LastModified: 2020/6/9 下午3:38 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.logic.repository.oauth; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthScopesRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthScopesRepository.java index be2b7c4c1..3f5197b58 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthScopesRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/oauth/OauthScopesRepository.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,19 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthScopesRepository.java * Author: gengwei.zheng - * Date: 2021/1/17 下午5:18 - * LastModified: 2021/1/3 上午8:46 + * Date: 2021/09/19 13:30:19 */ package cn.herodotus.eurynome.upms.logic.repository.oauth; import cn.herodotus.eurynome.data.base.repository.BaseRepository; -import cn.herodotus.eurynome.upms.api.entity.oauth.OAuth2Scopes; +import cn.herodotus.eurynome.upms.api.entity.oauth.OauthScopes; /** *

Description : OauthScopeRepository

@@ -33,6 +31,6 @@ * @author : gengwei.zheng * @date : 2020/3/19 16:57 */ -public interface OauthScopesRepository extends BaseRepository { +public interface OauthScopesRepository extends BaseRepository { } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysAuthorityRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysAuthorityRepository.java index 8d216ad48..779cc4d72 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysAuthorityRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysAuthorityRepository.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: SysAuthorityRepository.java * Author: gengwei.zheng - * Date: 2021/1/17 下午5:16 - * LastModified: 2021/1/17 下午4:47 + * Date: 2021/08/18 17:48:18 */ package cn.herodotus.eurynome.upms.logic.repository.system; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysDefaultRoleRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysDefaultRoleRepository.java index bd8721020..4c82776da 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysDefaultRoleRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysDefaultRoleRepository.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-logic * File Name: SysDefaultRoleRepository.java * Author: gengwei.zheng - * Date: 2021/08/05 17:47:05 + * Date: 2021/08/18 17:48:18 */ package cn.herodotus.eurynome.upms.logic.repository.system; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysRoleRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysRoleRepository.java index 8395c7f85..c62dc7949 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysRoleRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysRoleRepository.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysRoleRepository.java + * Author: gengwei.zheng + * Date: 2021/06/29 15:58:29 + */ + package cn.herodotus.eurynome.upms.logic.repository.system; import cn.herodotus.eurynome.data.base.repository.BaseRepository; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysUserRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysUserRepository.java index aa3a6ddc5..44716ba50 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysUserRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/system/SysUserRepository.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: SysUserRepository.java * Author: gengwei.zheng - * Date: 2021/1/17 下午5:16 - * LastModified: 2020/6/9 下午3:38 + * Date: 2021/07/14 21:19:14 */ package cn.herodotus.eurynome.upms.logic.repository.system; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/development/SupplierService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/development/SupplierService.java index 36e8949f0..387304db7 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/development/SupplierService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/development/SupplierService.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SupplierService.java + * Author: gengwei.zheng + * Date: 2021/08/26 20:40:26 + */ + package cn.herodotus.eurynome.upms.logic.service.development; import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java new file mode 100644 index 000000000..49a51f649 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysDepartmentService.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:46:25 + */ + +package cn.herodotus.eurynome.upms.logic.service.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import cn.herodotus.eurynome.upms.logic.repository.hr.SysDepartmentRepository; +import org.apache.commons.lang3.ObjectUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; + +import javax.persistence.criteria.Predicate; +import java.util.ArrayList; +import java.util.List; + +/** + *

Description: 部门管理服务

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:50 + */ +@Service +public class SysDepartmentService extends BaseLayeredService { + + private static final Logger log = LoggerFactory.getLogger(SysDepartmentService.class); + + private final SysDepartmentRepository sysDepartmentRepository; + private final SysOwnershipService sysOwnershipService; + + @Autowired + public SysDepartmentService(SysDepartmentRepository sysDepartmentRepository, SysOwnershipService sysOwnershipService) { + this.sysDepartmentRepository = sysDepartmentRepository; + this.sysOwnershipService = sysOwnershipService; + } + + @Override + public BaseRepository getRepository() { + return sysDepartmentRepository; + } + + public Page findByCondition(int pageNumber, int pageSize, String organizationId) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + + List predicates = new ArrayList<>(); + + if (ObjectUtils.isNotEmpty(organizationId)) { + predicates.add(criteriaBuilder.equal(root.get("organizationId"), organizationId)); + } + + Predicate[] predicateArray = new Predicate[predicates.size()]; + criteriaQuery.where(criteriaBuilder.and(predicates.toArray(predicateArray))); + return criteriaQuery.getRestriction(); + }; + + log.debug("[Herodotus] |- SysDepartment Service findByCondition."); + return this.findByPage(specification, pageable); + } + + public List findAll(String organizationId) { + if (ObjectUtils.isNotEmpty(organizationId)) { + return sysDepartmentRepository.findByOrganizationId(organizationId); + } else { + return sysDepartmentRepository.findAll(); + } + } + + @Override + public void deleteById(String departmentId) { + sysOwnershipService.deleteByDepartmentId(departmentId); + super.deleteById(departmentId); + log.debug("[Herodotus] |- SysDepartment Service deleteById."); + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java new file mode 100644 index 000000000..9716b350c --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java @@ -0,0 +1,283 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysEmployeeService.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:44:25 + */ + +package cn.herodotus.eurynome.upms.logic.service.hr; + +import cn.herodotus.eurynome.assistant.exception.persistence.TransactionRollbackException; +import cn.herodotus.eurynome.common.constant.enums.Gender; +import cn.herodotus.eurynome.common.constant.enums.Identity; +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; +import cn.herodotus.eurynome.upms.api.entity.system.SysUser; +import cn.herodotus.eurynome.upms.logic.dto.OwnershipConfig; +import cn.herodotus.eurynome.upms.logic.dto.OwnershipRemove; +import cn.herodotus.eurynome.upms.logic.repository.hr.SysEmployeeRepository; +import cn.herodotus.eurynome.upms.logic.service.system.SysUserService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import javax.persistence.criteria.Subquery; +import java.util.ArrayList; +import java.util.List; + +/** + *

Description: 人员 服务

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:54 + */ +@Service +public class SysEmployeeService extends BaseLayeredService { + + private static final Logger log = LoggerFactory.getLogger(SysEmployeeService.class); + + private final SysEmployeeRepository sysEmployeeRepository; + private final SysOwnershipService sysOwnershipService; + private final SysUserService sysUserService; + + @Autowired + public SysEmployeeService(SysEmployeeRepository sysEmployeeRepository, SysOwnershipService sysOwnershipService, SysUserService sysUserService) { + this.sysEmployeeRepository = sysEmployeeRepository; + this.sysOwnershipService = sysOwnershipService; + this.sysUserService = sysUserService; + } + + @Override + public BaseRepository getRepository() { + return sysEmployeeRepository; + } + + /** + * 根据动态条件分页查询人员信息 + *

+ * Predicate类:一个简单或复杂的谓词类型,用来拼接条件。 + * Criteria 查询是以元模型的概念为基础的,元模型是为具体持久化单元的受管实体定义的,这些实体可以是实体类,嵌入类或者映射的父类。 + * Root接口:代表Criteria查询的根对象,能够提供查询用到的数据库字段。 + * CriteriaQuery接口:代表一个specific的顶层查询对象,用来执行最后的操作,它包含着查询的各个部分,比如:select 、from、where、group by、order by等注意:CriteriaQuery对象只对实体类型或嵌入式类型的Criteria查询起作用。 + * CriteriaBuilder接口:表示具体的比较条件。 + * + * @param pageNumber 当前页码 + * @param pageSize 每页显示数据条目 + * @param employeeName 人员姓名 + * @param mobilePhoneNumber 手机号码 + * @param officePhoneNumber 办公电话 + * @param email 电子邮件 + * @param pkiEmail PKI电子邮件 + * @param gender 性别 {@link Gender} + * @param identity 身份 {@link Identity} + * @return 人员你的分页数据 + */ + public Page findByCondition(int pageNumber, int pageSize, String employeeName, String mobilePhoneNumber, String officePhoneNumber, String email, String pkiEmail, Gender gender, Identity identity) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + + List predicates = new ArrayList<>(); + + if (StringUtils.isNotBlank(employeeName)) { + predicates.add(criteriaBuilder.like(root.get("employeeName"), like(employeeName))); + } + + if (StringUtils.isNotBlank(mobilePhoneNumber)) { + predicates.add(criteriaBuilder.like(root.get("mobilePhoneNumber"), like(mobilePhoneNumber))); + } + + if (StringUtils.isNotBlank(officePhoneNumber)) { + predicates.add(criteriaBuilder.like(root.get("officePhoneNumber"), like(officePhoneNumber))); + } + + if (StringUtils.isNotBlank(email)) { + predicates.add(criteriaBuilder.like(root.get("email"), like(email))); + } + + if (StringUtils.isNotBlank(pkiEmail)) { + predicates.add(criteriaBuilder.like(root.get("pkiEmail"), like(pkiEmail))); + } + + if (ObjectUtils.isNotEmpty(gender)) { + predicates.add(criteriaBuilder.equal(root.get("gender"), gender)); + } + + if (ObjectUtils.isNotEmpty(identity)) { + predicates.add(criteriaBuilder.equal(root.get("identity"), identity)); + } + + Predicate[] predicateArray = new Predicate[predicates.size()]; + criteriaQuery.where(criteriaBuilder.and(predicates.toArray(predicateArray))); + return criteriaQuery.getRestriction(); + }; + + log.debug("[Herodotus] |- SysEmployee Service findByCondition."); + return this.findByPage(specification, pageable); + } + + /** + * 根据单位ID和部门ID,查找当前部门下未被设置人员归属的人员。 + *

+ * 业务描述: + * 目前采用人事归属的方式设置单位、部门、人员的关系,而不采用传统的:用人员关联单位ID、部门ID的方式进行机构人员关系的创建。 + * 人事归属的方式解决了什么问题,主要的考虑是: + * (1)使用人事归属的方式,可以支持一般的组织机构、党组机构、团组机构等多种机构类型,而人员始终就是一套人员。 + * (2)传统MIS中用人员关联单位ID、部门ID的方式创建关系,只能支持一种组织机构。如果同一套系统或者从灵活度的角度要支持多种机构,那么只能通过每种机构关系创建一个人员信息,而每个人员信息又对应一个用户。同一个人员有多套信息和多个用户信息,导致维护起来非常混乱。 + * (3)这种结构与Camunda或者Flowable、Activity等工作流结构对应,便于信息的同步与管理。 + * organization --> tenant + * department --> group + * employee --> user + *

+ * 当然有更好的设计方式,可以告诉我进行修改 + *

+ * 实现描述: + * 因为涉及到Page问题,所以采用Specification的方式,如果不涉及分页,按照如下的优先级和方式可能更好。 + * (1) 在repository中,定义JPQL + * (2) 在repository中,定义原生SQL + * (3) 在数据库中编写SQL View,然后进行ORM映射 + * + * @param pageNumber 当前页码 + * @param pageSize 每页显示数据条目 + * @param organizationId 单位ID:如果所有部门的ID都是唯一的,那么单位ID可以为空 + * @param departmentId 部门ID + * @return 当前部门下可以进行人事归属设置的人员分页信息,排除已设置过的人员信息 + */ + public Page findAllocatable(int pageNumber, int pageSize, String organizationId, String departmentId, String employeeName, String mobilePhoneNumber, String email, Gender gender, Identity identity) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + // exist sql 结构示例: SELECT * FROM article WHERE EXISTS (SELECT * FROM user WHERE article.uid = user.uid) + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + + // 构造Not Exist子查询 + Subquery subQuery = criteriaQuery.subquery(SysOwnership.class); + Root subRoot = subQuery.from(SysOwnership.class); + + // 构造Not Exist 子查询的where条件 + List subPredicates = new ArrayList<>(); + subPredicates.add(criteriaBuilder.equal(subRoot.get("employeeId"), root.get("employeeId"))); + if (StringUtils.isNotBlank(organizationId)) { + subPredicates.add(criteriaBuilder.equal(subRoot.get("organizationId"), organizationId)); + } + if (StringUtils.isNotBlank(departmentId)) { + subPredicates.add(criteriaBuilder.equal(subRoot.get("departmentId"), departmentId)); + } + + Predicate[] subPredicateArray = new Predicate[subPredicates.size()]; + subQuery.where(criteriaBuilder.and(subPredicates.toArray(subPredicateArray))); + + // 构造完整的子查询语句 + //这句话不加会报错,因为他不知道你子查询要查出什么字段。就是上面示例中的子查询中的“select *”的作用 + subQuery.select(subRoot.get("ownershipId")); + + List rootPredicates = new ArrayList<>(); + rootPredicates.add(criteriaBuilder.not(criteriaBuilder.exists(subQuery))); + if (StringUtils.isNotBlank(employeeName)) { + subPredicates.add(criteriaBuilder.like(root.get("employeeName"), like(employeeName))); + } + + if (StringUtils.isNotBlank(mobilePhoneNumber)) { + subPredicates.add(criteriaBuilder.like(root.get("mobilePhoneNumber"), like(mobilePhoneNumber))); + } + + if (StringUtils.isNotBlank(email)) { + subPredicates.add(criteriaBuilder.like(root.get("email"), like(email))); + } + + if (ObjectUtils.isNotEmpty(gender)) { + subPredicates.add(criteriaBuilder.equal(root.get("gender"), gender)); + } + + if (ObjectUtils.isNotEmpty(identity)) { + subPredicates.add(criteriaBuilder.equal(root.get("identity"), identity)); + } + + Predicate[] rootPredicateArray = new Predicate[rootPredicates.size()]; + // 构造完整SQL + // 正确的结构参考:select * from sys_employee e where not exists (select ownership_id from sys_ownership o where o.employee_id = e.employee_id and o.organization = 1? and o.department_id = 2?) and XXXXXX.... limit ? + criteriaQuery.where(criteriaBuilder.and(rootPredicates.toArray(rootPredicateArray))); + return criteriaQuery.getRestriction(); + }; + + log.debug("[Herodotus] |- SysEmployee Service findAllocatable."); + return this.findByPage(specification, pageable); + } + + public SysEmployee authorize(String employeeId) { + SysEmployee sysEmployee = this.findById(employeeId); + SysUser sysUser = sysUserService.register(sysEmployee); + sysEmployee.setUser(sysUser); + + log.debug("[Herodotus] |- SysEmployee Service authorize."); + return this.saveOrUpdate(sysEmployee); + } + + @Transactional(rollbackFor = TransactionRollbackException.class) + @Override + public void deleteById(String employeeId) { + sysOwnershipService.deleteByEmployeeId(employeeId); + super.deleteById(employeeId); + log.debug("[Herodotus] |- SysEmployee Service deleteById."); + } + + @Transactional(rollbackFor = TransactionRollbackException.class) + public boolean configOwnership(OwnershipConfig ownershipConfig) { + List sysEmployees = ownershipConfig.getAllocatable(); + List sysOwnerships = ownershipConfig.getOwnerships(); + if (CollectionUtils.isNotEmpty(sysEmployees) && CollectionUtils.isNotEmpty(sysOwnerships)) { + List result = sysEmployeeRepository.saveAllAndFlush(sysEmployees); + if (CollectionUtils.isNotEmpty(result)) { + sysOwnershipService.saveAll(sysOwnerships); + return true; + } + } + + return false; + } + + @Transactional(rollbackFor = TransactionRollbackException.class) + public boolean removeOwnership(OwnershipRemove ownershipRemove) { + SysEmployee sysEmployee = super.findById(ownershipRemove.getEmployeeId()); + if (ObjectUtils.isNotEmpty(sysEmployee)) { + SysDepartment sysDepartment = new SysDepartment(); + sysDepartment.setDepartmentId(ownershipRemove.getDepartmentId()); + sysEmployee.getDepartments().remove(sysDepartment); + SysEmployee result = super.save(sysEmployee); + if (ObjectUtils.isNotEmpty(result)) { + sysOwnershipService.deleteById(ownershipRemove.getOwnershipId()); + return true; + } + } + + return false; + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java new file mode 100644 index 000000000..b8d646a9e --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOrganizationService.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:46:25 + */ + +package cn.herodotus.eurynome.upms.logic.service.hr; + +import cn.herodotus.eurynome.assistant.exception.persistence.TransactionRollbackException; +import cn.herodotus.eurynome.common.constant.enums.OrganizationCategory; +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOrganization; +import cn.herodotus.eurynome.upms.logic.repository.hr.SysOrganizationRepository; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.criteria.Predicate; +import java.util.ArrayList; +import java.util.List; + +/** + *

Description: 单位管理服务

+ * + * @author : gengwei.zheng + * @date : 2020/1/20 11:39 + */ +@Service +public class SysOrganizationService extends BaseLayeredService { + + private static final Logger log = LoggerFactory.getLogger(SysOrganizationService.class); + + private final SysOrganizationRepository sysOrganizationRepository; + private final SysOwnershipService sysOwnershipService; + private final SysDepartmentService sysDepartmentService; + + @Autowired + public SysOrganizationService(SysOrganizationRepository sysOrganizationRepository, SysOwnershipService sysOwnershipService, SysDepartmentService sysDepartmentService) { + this.sysOrganizationRepository = sysOrganizationRepository; + this.sysOwnershipService = sysOwnershipService; + this.sysDepartmentService = sysDepartmentService; + } + + @Override + public BaseRepository getRepository() { + return sysOrganizationRepository; + } + + public List findAll(OrganizationCategory organizationCategory) { + if (ObjectUtils.isNotEmpty(organizationCategory)) { + return sysOrganizationRepository.findByCategory(organizationCategory); + } else { + return sysOrganizationRepository.findAll(); + } + } + + public Page findByCondition(int pageNumber, int pageSize, OrganizationCategory organizationCategory) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + + List predicates = new ArrayList<>(); + + if (ObjectUtils.isNotEmpty(organizationCategory)) { + predicates.add(criteriaBuilder.equal(root.get("category"), organizationCategory)); + } + + Predicate[] predicateArray = new Predicate[predicates.size()]; + criteriaQuery.where(criteriaBuilder.and(predicates.toArray(predicateArray))); + return criteriaQuery.getRestriction(); + }; + + log.debug("[Herodotus] |- SysOrganization Service findByCondition."); + return this.findByPage(specification, pageable); + } + + /** + * Transactional 注解 可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。 + *

+ * 虽然@Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional注解应该只被应用到 public 方法上,这是由Spring AOP的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。 + *

+ * 默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为,即使被调用方法使用@Transactional注解进行修饰。 + *

+ * 作者:tuacy + * 链接:https://www.jianshu.com/p/befc2d73e487 + * + * @param organizationId 单位ID + */ + @Transactional(rollbackFor = TransactionRollbackException.class) + @Override + public void deleteById(String organizationId) { + sysOwnershipService.deleteByOrganizationId(organizationId); + super.deleteById(organizationId); + log.debug("[Herodotus] |- SysOrganization Service deleteById."); + } + + /** + * 检测某个组织机构是否被其它数据关联。 + * + * @param organizationId 单位ID + * @return true 被其它数据使用,false 没有被使用。 + */ + public boolean isInUse(String organizationId) { + List sysDepartments = sysDepartmentService.findAll(organizationId); + return CollectionUtils.isNotEmpty(sysDepartments); + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java new file mode 100644 index 000000000..049d92d4c --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOwnershipService.java + * Author: gengwei.zheng + * Date: 2021/09/18 16:16:18 + */ + +package cn.herodotus.eurynome.upms.logic.service.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; +import cn.herodotus.eurynome.upms.logic.repository.hr.SysOwnershipRepository; +import org.apache.commons.lang3.ArrayUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

Description: 人事归属服务

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:30 + */ +@Service +public class SysOwnershipService extends BaseLayeredService { + + private static final Logger log = LoggerFactory.getLogger(SysOwnershipService.class); + + private final SysOwnershipRepository sysOwnershipRepository; + + @Autowired + public SysOwnershipService(SysOwnershipRepository sysOwnershipRepository) { + this.sysOwnershipRepository = sysOwnershipRepository; + } + + @Override + public BaseRepository getRepository() { + return this.sysOwnershipRepository; + } + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param organizationId 单位ID + */ + public void deleteByOrganizationId(String organizationId) { + sysOwnershipRepository.deleteByOrganizationId(organizationId); + log.debug("[Herodotus] |- SysOwnershipService Service deleteByOrganizationId."); + } + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param departmentId 部门ID + */ + public void deleteByDepartmentId(String departmentId) { + sysOwnershipRepository.deleteByDepartmentId(departmentId); + log.debug("[Herodotus] |- SysOwnershipService Service deleteByDepartmentId."); + } + + /** + * 根据单位ID删除人事归属 + *

+ * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 + * + * @param employeeId 人员ID + */ + public void deleteByEmployeeId(String employeeId) { + sysOwnershipRepository.deleteByEmployeeId(employeeId); + log.debug("[Herodotus] |- SysOwnershipService Service deleteByEmployeeId."); + } + + /** + * 批量设置人事归属关系 + *

+ * 如果是通过{@link SysEmployeeService#findAllocatable(int, int, String, String)}获取未设置人事归属关系的人员列表。 + * 那么本方法逻辑上不会出现重复数据的设置。 + * + * @param organizationId 单位ID + * @param departmentId 部门ID + * @param employeeIds 人员IDs + * @return 已设置的人事归属列表,如果未设置成功,列表size为 0 + */ + public List assign(String organizationId, String departmentId, String[] employeeIds) { + List result = new ArrayList<>(); + + if (ArrayUtils.isNotEmpty(employeeIds)) { + List iterable = Arrays.stream(employeeIds).map(employeeId -> { + SysOwnership sysOwnership = new SysOwnership(); + sysOwnership.setOrganizationId(organizationId); + sysOwnership.setDepartmentId(departmentId); + sysOwnership.setEmployeeId(employeeId); + return sysOwnership; + }).collect(Collectors.toList()); + + result = sysOwnershipRepository.saveAllAndFlush(iterable); + } + + log.debug("[Herodotus] |- SysOwnershipService Service assign."); + return result; + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java new file mode 100644 index 000000000..6565d0e29 --- /dev/null +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic + * File Name: SysOwnershipViewService.java + * Author: gengwei.zheng + * Date: 2021/09/23 15:07:23 + */ + +package cn.herodotus.eurynome.upms.logic.service.hr; + +import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.rest.base.service.ReadableService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnershipView; +import cn.herodotus.eurynome.upms.logic.repository.hr.SysOwnershipViewRepository; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; + +import javax.persistence.criteria.Predicate; +import java.util.ArrayList; +import java.util.List; + +/** + *

Description: 人事归属服务视图

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:33 + */ +@Service +public class SysOwnershipViewService implements ReadableService { + + private static final Logger log = LoggerFactory.getLogger(SysOwnershipViewService.class); + + @Autowired + private SysOwnershipViewRepository sysOwnershipViewRepository; + + @Override + public BaseRepository getRepository() { + return this.sysOwnershipViewRepository; + } + + public Page findByCondition(int pageNumber, int pageSize, String organizationId, String departmentId) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + + List predicates = new ArrayList<>(); + + if (StringUtils.isNotBlank(organizationId)) { + predicates.add(criteriaBuilder.equal(root.get("organizationId"), organizationId)); + } + + if (StringUtils.isNotBlank(departmentId)) { + predicates.add(criteriaBuilder.equal(root.get("departmentId"), departmentId)); + } + + Predicate[] predicateArray = new Predicate[predicates.size()]; + criteriaQuery.where(criteriaBuilder.and(predicates.toArray(predicateArray))); + return criteriaQuery.getRestriction(); + }; + + Page pages = this.findByPage(specification, pageable); + log.debug("[Herodotus] |- SysOwnershipView Service findByCondition."); + return pages; + } +} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthApplicationsService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthApplicationsService.java index f08ee01e3..205108899 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthApplicationsService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthApplicationsService.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthApplicationsService.java * Author: gengwei.zheng - * Date: 2021/1/18 下午6:20 - * LastModified: 2021/1/17 下午7:25 + * Date: 2021/09/25 10:46:25 */ package cn.herodotus.eurynome.upms.logic.service.oauth; @@ -27,7 +25,7 @@ import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; import cn.herodotus.eurynome.data.base.repository.BaseRepository; import cn.herodotus.eurynome.upms.api.entity.oauth.OauthApplications; -import cn.herodotus.eurynome.upms.api.entity.oauth.OAuth2Scopes; +import cn.herodotus.eurynome.upms.api.entity.oauth.OauthScopes; import cn.herodotus.eurynome.upms.logic.repository.oauth.OauthApplicationsRepository; import cn.hutool.core.util.IdUtil; import org.apache.commons.lang3.ObjectUtils; @@ -69,7 +67,7 @@ public void deleteById(String appKey) { @Override public OauthApplications saveOrUpdate(OauthApplications domain) { - if(ObjectUtils.isNotEmpty(domain)) { + if (ObjectUtils.isNotEmpty(domain)) { if (StringUtils.isBlank(domain.getAppSecret())) { domain.setAppSecret(IdUtil.randomUUID()); } @@ -83,9 +81,9 @@ public OauthApplications assign(String appKey, String[] scopeIds) { log.debug("[Eurynome] |- OauthApplications Service authorize."); - Set OAuth2ScopesSet = new HashSet<>(); + Set OAuth2ScopesSet = new HashSet<>(); for (String scopeId : scopeIds) { - OAuth2Scopes OAuth2Scopes = new OAuth2Scopes(); + OauthScopes OAuth2Scopes = new OauthScopes(); OAuth2Scopes.setScopeId(scopeId); OAuth2ScopesSet.add(OAuth2Scopes); } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthClientDetailsService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthClientDetailsService.java index 3f20e6c04..f6f2370db 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthClientDetailsService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthClientDetailsService.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthClientDetailsService.java * Author: gengwei.zheng - * Date: 2021/1/18 下午6:20 - * LastModified: 2021/1/17 下午7:20 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.upms.logic.service.oauth; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthScopesService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthScopesService.java index 629580337..bdaf55352 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthScopesService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/oauth/OauthScopesService.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,20 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-logic * File Name: OauthScopesService.java * Author: gengwei.zheng - * Date: 2021/1/18 下午6:20 - * LastModified: 2021/1/17 下午7:25 + * Date: 2021/09/19 13:30:19 */ package cn.herodotus.eurynome.upms.logic.service.oauth; import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; import cn.herodotus.eurynome.data.base.repository.BaseRepository; -import cn.herodotus.eurynome.upms.api.entity.oauth.OAuth2Scopes; +import cn.herodotus.eurynome.upms.api.entity.oauth.OauthScopes; import cn.herodotus.eurynome.upms.api.entity.system.SysAuthority; import cn.herodotus.eurynome.upms.logic.repository.oauth.OauthScopesRepository; import org.slf4j.Logger; @@ -44,7 +42,7 @@ * @date : 2020/3/19 17:00 */ @Service -public class OauthScopesService extends BaseLayeredService { +public class OauthScopesService extends BaseLayeredService { private static final Logger log = LoggerFactory.getLogger(OauthScopesService.class); @@ -52,11 +50,11 @@ public class OauthScopesService extends BaseLayeredService private OauthScopesRepository oauthScopesRepository; @Override - public BaseRepository getRepository() { + public BaseRepository getRepository() { return oauthScopesRepository; } - public OAuth2Scopes authorize(String scopeId, String[] authorities) { + public OauthScopes authorize(String scopeId, String[] authorities) { log.debug("[Eurynome] |- OauthScopes Service authorize."); @@ -67,7 +65,7 @@ public OAuth2Scopes authorize(String scopeId, String[] authorities) { sysAuthorities.add(sysAuthority); } - OAuth2Scopes OAuth2Scopes = findById(scopeId); + OauthScopes OAuth2Scopes = findById(scopeId); OAuth2Scopes.setAuthorities(sysAuthorities); return saveOrUpdate(OAuth2Scopes); diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java index 712a0bc61..49e040c41 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-logic + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic * File Name: SysAuthorityService.java * Author: gengwei.zheng - * Date: 2019/11/19 上午11:03 - * LastModified: 2019/11/19 上午11:00 + * Date: 2021/09/25 10:46:25 */ package cn.herodotus.eurynome.upms.logic.service.system; @@ -32,8 +30,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import javax.persistence.criteria.Subquery; import java.util.List; /** @@ -60,13 +62,13 @@ public BaseRepository getRepository() { } public List batchSaveOrUpdate(List sysAuthorities) { - log.debug("[Eurynome] |- SysAuthority Service batchSaveOrUpdate."); + log.debug("[Herodotus] |- SysAuthority Service batchSaveOrUpdate."); return sysAuthorityRepository.saveAllAndFlush(sysAuthorities); } public List findAllByAuthorityType(AuthorityType authorityType) { List sysAuthorities = sysAuthorityRepository.findAllByAuthorityType(authorityType); - log.debug("[Eurynome] |- SysAuthority Service findAllByAuthorityType."); + log.debug("[Herodotus] |- SysAuthority Service findAllByAuthorityType."); return sysAuthorities; } } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysDefaultRoleService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysDefaultRoleService.java index ca9b41fb5..2e9c9ca50 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysDefaultRoleService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysDefaultRoleService.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-logic * File Name: SysDefaultRoleService.java * Author: gengwei.zheng - * Date: 2021/08/05 17:53:05 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.upms.logic.service.system; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysRoleService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysRoleService.java index fcbff469c..881c7735c 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysRoleService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysRoleService.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-logic + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic * File Name: SysRoleService.java * Author: gengwei.zheng - * Date: 2019/11/19 上午11:03 - * LastModified: 2019/11/19 上午11:00 + * Date: 2021/08/26 20:40:26 */ package cn.herodotus.eurynome.upms.logic.service.system; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java index 3cfa20cba..a848f7025 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,22 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-logic + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-logic * File Name: SysUserService.java * Author: gengwei.zheng - * Date: 2019/11/19 上午11:03 - * LastModified: 2019/11/19 上午11:00 + * Date: 2021/09/18 21:07:18 */ package cn.herodotus.eurynome.upms.logic.service.system; +import cn.herodotus.eurynome.common.constant.enums.AccountType; import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; import cn.herodotus.eurynome.data.base.repository.BaseRepository; +import cn.herodotus.eurynome.security.definition.core.HerodotusUserDetails; +import cn.herodotus.eurynome.security.definition.core.SocialUserDetails; +import cn.herodotus.eurynome.security.utils.SecurityUtils; +import cn.herodotus.eurynome.upms.api.entity.system.SysDefaultRole; import cn.herodotus.eurynome.upms.api.entity.system.SysRole; import cn.herodotus.eurynome.upms.api.entity.system.SysUser; +import cn.herodotus.eurynome.upms.api.helper.UpmsHelper; import cn.herodotus.eurynome.upms.logic.repository.system.SysUserRepository; +import cn.hutool.core.util.IdUtil; +import com.google.common.collect.ImmutableSet; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,10 +58,12 @@ public class SysUserService extends BaseLayeredService { private static final Logger log = LoggerFactory.getLogger(SysUserService.class); private final SysUserRepository sysUserRepository; + private final SysDefaultRoleService sysDefaultRoleService; @Autowired - public SysUserService(SysUserRepository sysUserRepository) { + public SysUserService(SysUserRepository sysUserRepository, SysDefaultRoleService sysDefaultRoleService) { this.sysUserRepository = sysUserRepository; + this.sysDefaultRoleService = sysDefaultRoleService; } @Override @@ -67,19 +78,90 @@ public SysUser findByUserName(String userName) { } public SysUser assign(String userId, String[] roleIds) { + log.debug("[Herodotus] |- SysUser Service assign."); - log.debug("[Eurynome] |- SysUser Service assign."); + SysUser sysUser = findById(userId); + return this.register(sysUser, roleIds); + } - Set sysRoleSet = new HashSet<>(); + public SysUser register(SysUser sysUser, String[] roleIds) { + Set sysRoles = new HashSet<>(); for (String roleId : roleIds) { SysRole sysRole = new SysRole(); sysRole.setRoleId(roleId); - sysRoleSet.add(sysRole); + sysRoles.add(sysRole); } + return this.register(sysUser, sysRoles); + } - SysUser sysUser = findById(userId); - sysUser.setRoles(sysRoleSet); + public SysUser register(SysUser sysUser, AccountType source) { + SysDefaultRole sysDefaultRole = sysDefaultRoleService.findByScene(source); + if (ObjectUtils.isNotEmpty(sysDefaultRole)) { + SysRole sysRole = sysDefaultRole.getRole(); + if (ObjectUtils.isNotEmpty(sysRole)) { + return this.register(sysUser, sysRole); + } + } + log.error("[Herodotus] |- Default role for [{}] is not set correct, may case register error!", source); + return null; + } + public SysUser register(SysUser sysUser, SysRole sysRole) { + Set sysRoles = ImmutableSet.of(sysRole); + return this.register(sysUser, sysRoles); + } + + public SysUser register(SysUser sysUser, Set sysRoles) { + if (CollectionUtils.isNotEmpty(sysRoles)) { + sysUser.setRoles(sysRoles); + } + log.debug("[Herodotus] |- SysUser Service register."); return saveOrUpdate(sysUser); } + + private String enhance(String userName) { + if (StringUtils.isNotBlank(userName)) { + SysUser checkedSysUser = this.findByUserName(userName); + if (ObjectUtils.isNotEmpty(checkedSysUser)) { + return checkedSysUser.getUserName() + IdUtil.nanoId(6); + } else { + return userName; + } + } else { + return "Herodotus" + IdUtil.nanoId(6); + } + } + + public SysUser register(SocialUserDetails socialUserDetails) { + SysUser sysUser = new SysUser(); + + String userName = enhance(socialUserDetails.getUserName()); + sysUser.setUserName(userName); + + String nickName = socialUserDetails.getNickName(); + if (StringUtils.isNotBlank(nickName)) { + sysUser.setNickName(nickName); + } + + String phoneNumber = socialUserDetails.getPhoneNumber(); + if (StringUtils.isNotBlank(phoneNumber)) { + sysUser.setPhoneNumber(SecurityUtils.encrypt(phoneNumber)); + } + + String avatar = socialUserDetails.getAvatar(); + if (StringUtils.isNotBlank(avatar)) { + sysUser.setAvatar(avatar); + } + + sysUser.setPassword(SecurityUtils.encrypt("herodotus-cloud")); + + return register(sysUser, AccountType.getAccountType(socialUserDetails.getSource())); + } + + public HerodotusUserDetails registerUserDetails(SocialUserDetails socialUserDetails) { + SysUser newSysUser = register(socialUserDetails); + + log.debug("[Herodotus] |- SysUser Service register UserDetails."); + return UpmsHelper.convertSysUserToHerodotusUserDetails(newSysUser); + } } diff --git a/services/eurynome-cloud-upms-rest/pom.xml b/services/eurynome-cloud-upms-rest/pom.xml index f45b01714..0eb155dbc 100644 --- a/services/eurynome-cloud-upms-rest/pom.xml +++ b/services/eurynome-cloud-upms-rest/pom.xml @@ -6,11 +6,11 @@ services cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 eurynome-cloud-upms-rest - 2.5.4.140 + 2.5.5.0 eurynome-cloud-upms-rest 通用权限,人员信息服务供应商 diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java index a455086b2..3551105e7 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-rest * File Name: EnableUpmsRest.java * Author: gengwei.zheng - * Date: 2021/1/5 上午11:57 - * LastModified: 2021/1/5 上午11:57 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.rest.annotation; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java index e8423a7f6..96360c298 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java @@ -1,11 +1,11 @@ /* - * Copyright (c) 2019-2021 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * * Project Name: eurynome-cloud * Module Name: eurynome-cloud-upms-rest - * File Name: UpmsConfiguration.java + * File Name: UpmsRestConfiguration.java * Author: gengwei.zheng - * Date: 2021/1/5 上午11:58 - * LastModified: 2021/1/5 上午11:58 + * Date: 2021/06/29 15:58:29 */ package cn.herodotus.eurynome.upms.rest.configuration; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java index b68ff9f85..6bfbbae68 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: UpmsConstantsController.java + * Author: gengwei.zheng + * Date: 2021/09/11 10:08:11 + */ + package cn.herodotus.eurynome.upms.rest.controller; import cn.herodotus.eurynome.common.domain.Result; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java index ecb8b9c29..2162ec33d 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SupplierController.java + * Author: gengwei.zheng + * Date: 2021/09/11 10:06:11 + */ + package cn.herodotus.eurynome.upms.rest.controller.development; import cn.herodotus.eurynome.common.domain.Result; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java new file mode 100644 index 000000000..5f06c0a1d --- /dev/null +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SysDepartmentController.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:47:25 + */ + +package cn.herodotus.eurynome.upms.rest.controller.hr; + +import cn.herodotus.eurynome.common.constant.magic.PlatformConstants; +import cn.herodotus.eurynome.common.domain.Result; +import cn.herodotus.eurynome.rest.base.controller.BaseWriteableRestController; +import cn.herodotus.eurynome.rest.base.service.WriteableService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysDepartment; +import cn.herodotus.eurynome.upms.logic.service.hr.SysDepartmentService; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNode; +import cn.hutool.core.lang.tree.TreeUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/department") +@Tag(name = "部门管理接口") +@Validated +public class SysDepartmentController extends BaseWriteableRestController { + + private final SysDepartmentService sysDepartmentService; + + @Autowired + public SysDepartmentController(SysDepartmentService sysDepartmentService) { + this.sysDepartmentService = sysDepartmentService; + } + + @Override + public WriteableService getWriteableService() { + return this.sysDepartmentService; + } + + private List getSysDepartments(String organizationId) { + return sysDepartmentService.findAll(organizationId); + } + + @Operation(summary = "条件查询部门分页数据", description = "根据输入的字段条件查询部门信息", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysDepartment.class)))}) + @Parameters({ + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "organizationId", description = "单位ID"), + }) + @GetMapping("/condition") + public Result> findByCondition(@NotNull @RequestParam("pageNumber") Integer pageNumber, + @NotNull @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "organizationId", required = false) String organizationId) { + Page pages = sysDepartmentService.findByCondition(pageNumber, pageSize, organizationId); + return result(pages); + } + + @Operation(summary = "获取部门列表", description = "根据单位ID获取部门信息列表", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysDepartment.class)))}) + @Parameters({ + @Parameter(name = "organizationId", required = true, description = "单位ID"), + }) + @GetMapping("/list") + public Result> findAllByOrganizationId(@RequestParam(value = "organizationId", required = false) String organizationId) { + List sysDepartments = getSysDepartments(organizationId); + return result(sysDepartments); + } + + @Operation(summary = "获取部门树", description = "根据单位ID获取部门数据,转换为树形结构", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysDepartment.class)))}) + @Parameters({ + @Parameter(name = "organizationId", required = true, description = "单位ID"), + }) + @GetMapping("/tree") + public Result>> findTree(@RequestParam(value = "organizationId", required = false) String organizationId) { + Result>> result = new Result<>(); + + List sysDepartments = getSysDepartments(organizationId); + if (ObjectUtils.isNotEmpty(sysDepartments)) { + List> treeNodes = sysDepartments.stream().map(sysDepartment -> { + TreeNode treeNode = new TreeNode<>(); + treeNode.setId(sysDepartment.getDepartmentId()); + treeNode.setName(sysDepartment.getDepartmentName()); + treeNode.setParentId(sysDepartment.getParentId()); + return treeNode; + }).collect(Collectors.toList()); + return result.ok().message("查询数据成功").data(TreeUtil.build(treeNodes, null)); + } else { + return result.failed().message("查询数据失败"); + } + } +} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java new file mode 100644 index 000000000..8cf2d3a1b --- /dev/null +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SysEmployeeController.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:52:25 + */ + +package cn.herodotus.eurynome.upms.rest.controller.hr; + +import cn.herodotus.eurynome.common.domain.Result; +import cn.herodotus.eurynome.rest.base.controller.BaseWriteableRestController; +import cn.herodotus.eurynome.rest.base.service.WriteableService; +import cn.herodotus.eurynome.common.constant.enums.Gender; +import cn.herodotus.eurynome.common.constant.enums.Identity; +import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; +import cn.herodotus.eurynome.upms.logic.dto.OwnershipConfig; +import cn.herodotus.eurynome.upms.logic.dto.OwnershipRemove; +import cn.herodotus.eurynome.upms.logic.service.hr.SysEmployeeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + *

Description: 人员管理Controller

+ * + * @author : gengwei.zheng + * @date : 2020/5/19 15:19 + */ +@RestController +@RequestMapping("/employee") +@Tag(name = "人员管理接口") +public class SysEmployeeController extends BaseWriteableRestController { + + private final SysEmployeeService sysEmployeeService; + + @Autowired + public SysEmployeeController(SysEmployeeService sysEmployeeService) { + this.sysEmployeeService = sysEmployeeService; + } + + private Gender parseGender(Integer gender) { + if (ObjectUtils.isNotEmpty(gender)) { + return Gender.getGender(gender); + } + return null; + } + + private Identity parseIdentity(Integer identity) { + if (ObjectUtils.isNotEmpty(identity)) { + return Identity.getIdentity(identity); + } + return null; + } + + @Override + public WriteableService getWriteableService() { + return this.sysEmployeeService; + } + + @Operation(summary = "模糊条件查询人员", description = "根据动态输入的字段模糊查询人员信息", + responses = {@ApiResponse(description = "人员分页列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Map.class)))}) + @Parameters({ + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "employeeName", description = "人员姓名"), + @Parameter(name = "mobilePhoneNumber", description = "手机号码"), + @Parameter(name = "officePhoneNumber", description = "办公电话"), + @Parameter(name = "email", description = "电子邮件"), + @Parameter(name = "pkiEmail", description = "证书标识"), + @Parameter(name = "gender", description = "性别 (索引数字值)"), + @Parameter(name = "identity", description = "身份(索引数字值)"), + }) + @GetMapping("/condition") + public Result> findByCondition(@NotBlank @RequestParam("pageNumber") Integer pageNumber, + @NotBlank @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "employeeName", required = false) String employeeName, + @RequestParam(value = "mobilePhoneNumber", required = false) String mobilePhoneNumber, + @RequestParam(value = "officePhoneNumber", required = false) String officePhoneNumber, + @RequestParam(value = "email", required = false) String email, + @RequestParam(value = "pkiEmail", required = false) String pkiEmail, + @RequestParam(value = "gender", required = false) Integer gender, + @RequestParam(value = "identity", required = false) Integer identity) { + Page pages = sysEmployeeService.findByCondition(pageNumber, pageSize, employeeName, mobilePhoneNumber, officePhoneNumber, email, pkiEmail, parseGender(gender), parseIdentity(identity)); + return result(pages); + } + + @Operation(summary = "查询可设置人事归属的人员", description = "根据输入的单位和部门,分页查询当前部门下未设置人事归属的人员信息,排除了已经设置的人员信息", + responses = {@ApiResponse(description = "可配置人员分页列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Map.class)))}) + @Parameters({ + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "organizationId", required = true, description = "单位ID"), + @Parameter(name = "departmentId", required = true, description = "部门ID"), + @Parameter(name = "employeeName", description = "人员姓名"), + @Parameter(name = "mobilePhoneNumber", description = "手机号码"), + @Parameter(name = "email", description = "电子邮件"), + @Parameter(name = "gender", description = "性别 (索引数字值)"), + @Parameter(name = "identity", description = "身份(索引数字值)"), + }) + @GetMapping("/allocatable") + public Result> findAllocatable(@NotBlank @RequestParam("pageNumber") Integer pageNumber, + @NotBlank @RequestParam("pageSize") Integer pageSize, + @NotBlank @RequestParam("organizationId") String organizationId, + @NotBlank @RequestParam("departmentId") String departmentId, + @RequestParam(value = "employeeName", required = false) String employeeName, + @RequestParam(value = "mobilePhoneNumber", required = false) String mobilePhoneNumber, + @RequestParam(value = "email", required = false) String email, + @RequestParam(value = "gender", required = false) Integer gender, + @RequestParam(value = "identity", required = false) Integer identity) { + Page pages = sysEmployeeService.findAllocatable(pageNumber, pageSize, organizationId, departmentId, employeeName, mobilePhoneNumber, email, parseGender(gender), parseIdentity(identity)); + return result(pages); + } + + @Operation(summary = "给人员分配用户", description = "为人员创建用户,生成默认用户信息,让人员可以进入系统", + responses = {@ApiResponse(description = "已分配用户的人员信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysEmployee.class)))}) + @Parameters({ + @Parameter(name = "employeeId", description = "人员ID") + }) + @PutMapping + public Result authorize(@RequestParam("employeeId") String employeeId) { + SysEmployee sysEmployee = sysEmployeeService.authorize(employeeId); + return result(sysEmployee); + } + + @Operation(summary = "设置人事归属", description = "根据输入的单位和部门,设置当前部门下未设置人事归属的人员信息,排除了已经设置的人员信息", + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), + responses = {@ApiResponse(description = "是否设置成功", content = @Content(mediaType = "application/json"))}) + @Parameters({ + @Parameter(name = "ownershipConfig", required = true, description = "当前页码", schema = @Schema(implementation = OwnershipConfig.class)), + }) + @PostMapping("/allocatable") + public Result saveAllocatable(@RequestBody OwnershipConfig ownershipConfig) { + boolean isSuccess; + if (ObjectUtils.isNotEmpty(ownershipConfig)) { + isSuccess = sysEmployeeService.configOwnership(ownershipConfig); + } else { + isSuccess = false; + } + + return result(isSuccess); + } + + @Operation(summary = "删除人员归属关系", description = "根据归属关系、部门和人员的ID,删除归属关系以及人员与部门之间的关联关系", + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), + responses = {@ApiResponse(description = "是否删除成功", content = @Content(mediaType = "application/json"))}) + @Parameters({ + @Parameter(name = "ownershipRemove", required = true, description = "增加人员归属参数BO对象", schema = @Schema(implementation = OwnershipRemove.class)), + }) + @DeleteMapping("/allocatable") + public Result deleteAllocatable(@RequestBody OwnershipRemove ownershipRemove) { + boolean isSuccess; + if (ObjectUtils.isNotEmpty(ownershipRemove)) { + isSuccess = sysEmployeeService.removeOwnership(ownershipRemove); + } else { + isSuccess = false; + } + + return result(isSuccess); + } +} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java new file mode 100644 index 000000000..27c4acd37 --- /dev/null +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SysOrganizationController.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:48:25 + */ + +package cn.herodotus.eurynome.upms.rest.controller.hr; + +import cn.herodotus.eurynome.common.constant.enums.OrganizationCategory; +import cn.herodotus.eurynome.common.constant.magic.PlatformConstants; +import cn.herodotus.eurynome.common.domain.Result; +import cn.herodotus.eurynome.rest.base.controller.BaseWriteableRestController; +import cn.herodotus.eurynome.rest.base.service.WriteableService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOrganization; +import cn.herodotus.eurynome.upms.logic.service.hr.SysOrganizationService; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNode; +import cn.hutool.core.lang.tree.TreeUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

Description: SysOrganizationController

+ * + * @author : gengwei.zheng + * @date : 2021/9/23 15:14 + */ +@RestController +@RequestMapping("/organization") +@Tag(name = "单位管理接口") +@Validated +public class SysOrganizationController extends BaseWriteableRestController { + + private final SysOrganizationService sysOrganizationService; + + @Autowired + public SysOrganizationController(SysOrganizationService sysOrganizationService) { + this.sysOrganizationService = sysOrganizationService; + } + + @Override + public WriteableService getWriteableService() { + return this.sysOrganizationService; + } + + private OrganizationCategory parseOrganizationCategory(Integer category) { + if (ObjectUtils.isEmpty(category)) { + return null; + } else { + return OrganizationCategory.getOrganizationCategory(category); + } + } + + private List getSysOrganizations(Integer category) { + return sysOrganizationService.findAll(parseOrganizationCategory(category)); + } + + @Operation(summary = "条件分页查询单位", description = "根据动态输入的字段查询单位分页信息", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysOrganization.class)))}) + @Parameters({ + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "category", description = "机构分类 (索引数字值)"), + }) + @GetMapping("/condition") + public Result> findByCondition(@NotNull @RequestParam("pageNumber") Integer pageNumber, + @NotNull @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "category", required = false) Integer category) { + Page pages = sysOrganizationService.findByCondition(pageNumber, pageSize, parseOrganizationCategory(category)); + return result(pages); + } + + @Operation(summary = "获取全部单位", description = "获取全部单位数据", + responses = {@ApiResponse(description = "单位列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysOrganization.class)))}) + @Parameters({ + @Parameter(name = "category", description = "机构分类 (索引数字值)"), + }) + @GetMapping("/list") + public Result> findAll(@RequestParam(value = "category", required = false) Integer category) { + List sysOrganizations = getSysOrganizations(category); + return result(sysOrganizations); + } + + @Operation(summary = "获取单位树", description = "获取全部单位数据,转换为树形结构", + responses = {@ApiResponse(description = "单位树", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysOrganization.class)))}) + @Parameters({ + @Parameter(name = "category", description = "机构分类 (索引数字值)"), + }) + @GetMapping("/tree") + public Result>> findTree(@RequestParam(value = "category", required = false) Integer category) { + Result>> result = new Result<>(); + + List sysOrganizations = getSysOrganizations(category); + if (ObjectUtils.isNotEmpty(sysOrganizations)) { + List> treeNodes = sysOrganizations.stream().map(sysOrganization -> { + TreeNode treeNode = new TreeNode<>(); + treeNode.setId(sysOrganization.getOrganizationId()); + treeNode.setName(sysOrganization.getOrganizationName()); + treeNode.setParentId(sysOrganization.getParentId()); + return treeNode; + }).collect(Collectors.toList()); + return result.ok().message("查询数据成功").data(TreeUtil.build(treeNodes, null)); + } else { + return result.failed().message("查询数据失败"); + } + } + + @Override + public Result delete(@RequestBody String id) { + boolean isInUse = sysOrganizationService.isInUse(id); + if (isInUse) { + return new Result().failed().message("该单位被部分部门引用,请删除关联关系后再删除!"); + } else { + sysOrganizationService.deleteById(id); + return new Result().ok().message("删除成功!"); + } + } +} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java new file mode 100644 index 000000000..ec68c3a86 --- /dev/null +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SysOwnershipController.java + * Author: gengwei.zheng + * Date: 2021/09/18 16:21:18 + */ + +package cn.herodotus.eurynome.upms.rest.controller.hr; + +import cn.herodotus.eurynome.rest.base.controller.BaseWriteableRestController; +import cn.herodotus.eurynome.rest.base.service.WriteableService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; +import cn.herodotus.eurynome.upms.logic.service.hr.SysOwnershipService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

Description: 人事归属Controller

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:36 + */ +@RestController +@RequestMapping("/ownership") +@Tag(name = "人事归属管理接口") +public class SysOwnershipController extends BaseWriteableRestController { + + private final SysOwnershipService sysOwnershipService; + + @Autowired + public SysOwnershipController(SysOwnershipService sysOwnershipService) { + this.sysOwnershipService = sysOwnershipService; + } + + @Override + public WriteableService getWriteableService() { + return this.sysOwnershipService; + } +} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java new file mode 100644 index 000000000..1083ca486 --- /dev/null +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: SysOwnershipViewController.java + * Author: gengwei.zheng + * Date: 2021/09/25 10:48:25 + */ + +package cn.herodotus.eurynome.upms.rest.controller.hr; + +import cn.herodotus.eurynome.common.domain.Result; +import cn.herodotus.eurynome.rest.base.controller.BaseReadableRestController; +import cn.herodotus.eurynome.rest.base.service.ReadableService; +import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnershipView; +import cn.herodotus.eurynome.upms.logic.service.hr.SysOwnershipViewService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + *

Description: 人事归属视图Controller

+ * + * @author : gengwei.zheng + * @date : 2021/7/15 16:36 + */ +@RestController +@RequestMapping("/ownership-view") +@Tag(name = "人事归属视图接口") +public class SysOwnershipViewController extends BaseReadableRestController { + + @Autowired + private SysOwnershipViewService sysOwnershipViewService; + + @Override + public ReadableService getReadableService() { + return this.sysOwnershipViewService; + } + + @Operation(summary = "人事归属条件查询", description = "根据单位ID和部门ID,查询人事归属分页信息") + @Parameters({ + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "organizationId", description = "单位ID"), + @Parameter(name = "departmentId", required = true, description = "部门ID"), + }) + @GetMapping("/condition") + public Result> findByCondition(@RequestParam("pageNumber") int pageNumber, + @RequestParam("pageSize") int pageSize, + @RequestParam("organizationId") String organizationId, + @RequestParam("departmentId") String departmentId) { + Page pages = sysOwnershipViewService.findByCondition(pageNumber, pageSize, organizationId, departmentId); + return result(pages); + } +} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java index 47441f021..f56502430 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: OauthApplicationsController.java + * Author: gengwei.zheng + * Date: 2021/09/19 17:43:19 + */ + package cn.herodotus.eurynome.upms.rest.controller.oauth; import cn.herodotus.eurynome.common.domain.Result; @@ -23,7 +45,7 @@ * @date : 2020/3/25 17:10 */ @RestController -@RequestMapping("/oauth/applications") +@RequestMapping("/authorize/applications") @Tag(name = "Oauth应用接口") @Transactional(rollbackFor = Exception.class) public class OauthApplicationsController extends BaseWriteableRestController { diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java index ef683d53b..dd7f27e2a 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: OauthClientDetailsController.java + * Author: gengwei.zheng + * Date: 2021/09/20 07:50:20 + */ + package cn.herodotus.eurynome.upms.rest.controller.oauth; import cn.herodotus.eurynome.common.domain.Result; @@ -30,7 +52,7 @@ */ @Tag(name = "Oauth客户端详情接口") @RestController -@RequestMapping("/oauth/client_details") +@RequestMapping("/authorize/client-details") @Transactional(rollbackFor = Exception.class) public class OauthClientDetailsController extends BaseController { diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java index 952847234..2ad21f8dc 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java @@ -1,9 +1,31 @@ +/* + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest + * File Name: OauthScopesController.java + * Author: gengwei.zheng + * Date: 2021/09/19 17:43:19 + */ + package cn.herodotus.eurynome.upms.rest.controller.oauth; import cn.herodotus.eurynome.common.domain.Result; import cn.herodotus.eurynome.rest.base.controller.BaseWriteableRestController; import cn.herodotus.eurynome.rest.base.service.WriteableService; -import cn.herodotus.eurynome.upms.api.entity.oauth.OAuth2Scopes; +import cn.herodotus.eurynome.upms.api.entity.oauth.OauthScopes; import cn.herodotus.eurynome.upms.logic.service.oauth.OauthScopesService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -22,9 +44,9 @@ * @date : 2020/3/25 17:10 */ @RestController -@RequestMapping("/oauth/scopes") +@RequestMapping("/authorize/scopes") @Tag(name = "Oauth权限范围接口") -public class OauthScopesController extends BaseWriteableRestController { +public class OauthScopesController extends BaseWriteableRestController { private final OauthScopesService oauthScopesService; @@ -34,7 +56,7 @@ public OauthScopesController(OauthScopesService oauthScopesService) { } @Override - public WriteableService getWriteableService() { + public WriteableService getWriteableService() { return this.oauthScopesService; } @@ -44,8 +66,8 @@ public WriteableService getWriteableService() { @Parameter(name = "authorities[]", required = true, description = "权限对象组成的数组") }) @PutMapping - public Result authorize(@RequestParam(name = "scopeId") String scopeId, @RequestParam(name = "authorities[]") String[] authorities) { - OAuth2Scopes OAuth2Scopes = oauthScopesService.authorize(scopeId, authorities); + public Result authorize(@RequestParam(name = "scopeId") String scopeId, @RequestParam(name = "authorities[]") String[] authorities) { + OauthScopes OAuth2Scopes = oauthScopesService.authorize(scopeId, authorities); return result(OAuth2Scopes); } } diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java index 7e3a5a0d9..40bee2253 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-ability + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest * File Name: SysAuthorityController.java * Author: gengwei.zheng - * Date: 2019/11/25 上午11:19 - * LastModified: 2019/11/25 上午11:13 + * Date: 2021/09/23 15:07:23 */ package cn.herodotus.eurynome.upms.rest.controller.system; @@ -73,7 +71,7 @@ public WriteableService getWriteableService() { public Result>> findTree() { Result>> result = new Result<>(); - List sysAuthorities = sysAuthorityService.findAll(); + List sysAuthorities = sysAuthorityService.findByPage(); if (CollectionUtils.isNotEmpty(sysAuthorities)) { List> treeNodes = sysAuthorities.stream().map(sysAuthority -> { TreeNode treeNode = new TreeNode<>(); diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java index b1fdaf2fa..d90e429cc 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-ability + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest * File Name: SysRoleController.java * Author: gengwei.zheng - * Date: 2019/11/25 上午11:05 - * LastModified: 2019/11/25 上午11:02 + * Date: 2021/09/11 10:08:11 */ package cn.herodotus.eurynome.upms.rest.controller.system; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java index 051ef937f..92cbda967 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java @@ -1,11 +1,11 @@ /* - * Copyright 2019-2019 the original author or authors. + * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * - * Project Name: luban-cloud - * Module Name: luban-cloud-upms-ability + * Project Name: eurynome-cloud + * Module Name: eurynome-cloud-upms-rest * File Name: SysUserController.java * Author: gengwei.zheng - * Date: 2019/11/25 上午10:55 - * LastModified: 2019/11/25 上午10:55 + * Date: 2021/09/11 10:08:11 */ package cn.herodotus.eurynome.upms.rest.controller.system; diff --git a/services/pom.xml b/services/pom.xml index 8f033f61f..b6731cf91 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -31,7 +31,7 @@ eurynome-cloud cn.herodotus.eurynome - 2.5.4.140 + 2.5.5.0 services From b823ed63861318976182d4981d808fb541a18a7e Mon Sep 17 00:00:00 2001 From: herodotus Date: Sun, 26 Sep 2021 10:25:22 +0800 Subject: [PATCH 2/3] perf: v2.5.4.140 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。 2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。 3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。 4. 修改默认验证码字体配置 5. 去除无用依赖包 6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。 7. 新增Camunda 官方脚本 8. 优化数据导入脚本 --- .../camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql | 0 .../camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/db2_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/db2_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/h2_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/h2_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/mariadb_engine_7.15.0.sql | 0 .../camunda/7.15.0/create/mariadb_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/mssql_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/mssql_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/mysql_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/mysql_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/create/oracle_engine_7.15.0.sql | 0 .../camunda/7.15.0/create/oracle_identity_7.15.0.sql | 0 .../camunda/7.15.0/create/postgres_engine_7.15.0.sql | 0 .../camunda/7.15.0/create/postgres_identity_7.15.0.sql | 0 .../camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql | 0 .../camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/db2_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/db2_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/h2_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/h2_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mssql_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mssql_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mysql_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/mysql_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/oracle_engine_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/oracle_identity_7.15.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/drop/postgres_engine_7.15.0.sql | 0 .../camunda/7.15.0/drop/postgres_identity_7.15.0.sql | 0 .../camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql | 0 .../7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql | 0 .../7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql | 0 .../7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql | 0 .../7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql | 0 .../7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql | 0 .../7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql | 0 .../7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql | 0 .../7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql | 0 .../7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql | 0 .../upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql | 0 .../upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql | 0 .../upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql | 0 .../7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql | 0 .../7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql | 0 .../7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql | 0 .../7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql | 0 .../7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql | 0 .../7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql | 0 .../7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql | 0 .../upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql | 0 .../upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql | 0 .../7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql | 0 .../upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql | 0 .../7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql | 0 .../7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql | 0 .../upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql | 0 .../upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql | 0 .../upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql | 0 .../upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql | 0 .../upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql | 0 .../upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql | 0 .../upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql | 0 .../upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql | 0 .../upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql | 0 .../upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql | 0 .../upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql | 0 .../upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql | 0 .../7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql | 0 .../7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql | 0 .../7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql | 0 .../7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql | 0 .../7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql | 0 .../7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql | 0 .../7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql | 0 .../7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql | 0 .../7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql | 0 .../7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql | 0 .../7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql | 0 .../7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql | 0 .../7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql | 0 .../upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql | 0 .../upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql | 0 .../7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql | 0 .../7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql | 0 .../7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql | 0 .../7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql | 0 .../7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql | 0 .../camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql | 0 .../src/main/resources/{sql => sqls}/data-process.sql | 0 440 files changed, 0 insertions(+), 0 deletions(-) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/db2_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/db2_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/h2_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/h2_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mariadb_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mariadb_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mssql_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mssql_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mysql_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/mysql_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/oracle_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/oracle_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/postgres_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/create/postgres_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/db2_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/db2_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/h2_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/h2_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mssql_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mssql_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mysql_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/mysql_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/oracle_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/oracle_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/postgres_engine_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/drop/postgres_identity_7.15.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql (100%) rename services/eurynome-cloud-bpmn-ability/src/main/resources/{sql => sqls}/data-process.sql (100%) diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/cockroachdb_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/cockroachdb_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/db2_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/db2_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/db2_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/db2_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/db2_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/db2_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/db2_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/db2_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/h2_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/h2_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/h2_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/h2_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/h2_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/h2_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/h2_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/h2_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mariadb_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mariadb_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mariadb_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mariadb_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mariadb_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mariadb_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mariadb_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mariadb_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mssql_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mssql_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mssql_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mssql_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mssql_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mssql_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mssql_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mssql_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mysql_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mysql_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mysql_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mysql_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mysql_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mysql_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/mysql_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/mysql_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/oracle_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/oracle_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/oracle_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/oracle_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/oracle_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/oracle_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/oracle_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/oracle_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/postgres_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/postgres_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/postgres_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/postgres_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/postgres_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/postgres_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/create/postgres_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/create/postgres_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/cockroachdb_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/cockroachdb_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/db2_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/db2_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/db2_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/db2_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/db2_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/db2_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/db2_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/db2_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/h2_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/h2_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/h2_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/h2_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/h2_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/h2_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/h2_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/h2_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mariadb_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mariadb_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mssql_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mssql_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mssql_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mssql_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mssql_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mssql_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mssql_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mssql_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mysql_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mysql_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mysql_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mysql_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mysql_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mysql_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/mysql_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/mysql_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/oracle_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/oracle_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/oracle_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/oracle_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/oracle_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/oracle_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/oracle_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/oracle_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/postgres_engine_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/postgres_engine_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/postgres_engine_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/postgres_engine_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/postgres_identity_7.15.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/postgres_identity_7.15.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/drop/postgres_identity_7.15.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/drop/postgres_identity_7.15.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/cockroachdb_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.0_to_6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.1_patch_7.1.9_to_7.1.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.4_to_7.2.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_patch_7.7.8_to_7.7.9_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.7_to_7.8.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_patch_7.8.8_to_7.8.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.1_to_7.9.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.2_to_7.9.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/db2_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.0_to_6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.1_patch_7.1.4_to_7.1.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/h2_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_patch_7.7.8_to_7.7.9_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_patch_7.8.7_to_7.8.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.1_to_7.9.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mariadb_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.0_to_6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.1_patch_7.1.9_to_7.1.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.4_to_7.2.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_patch_7.6.2_to_7.6.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_patch_7.8.7_to_7.8.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.1_to_7.9.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mssql_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.0_to_6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.1_patch_7.1.4_to_7.1.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_patch_7.7.8_to_7.7.9_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_patch_7.8.7_to_7.8.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.1_to_7.9.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/mysql_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.0_to_6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.14_patch_7.14.2_to_7.14.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.1_patch_7.1.4_to_7.1.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/oracle_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_6.1_to_6.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_6.2_to_7.0.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.0_to_7.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.13_to_7.10.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.5_to_7.10.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_patch_7.10.6_to_7.10.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.10_to_7.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.18_to_7.11.19.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.2_to_7.11.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_patch_7.11.7_to_7.11.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.11_to_7.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.0_to_7.12.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.10_to_7.12.11.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_patch_7.12.11_to_7.12.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.12_to_7.13.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.4_to_7.13.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_patch_7.13.5_to_7.13.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.13_to_7.14.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.14_to_7.15.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.1_patch_7.1.4_to_7.1.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.1_to_7.2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.2_patch_7.2.6_to_7.2.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.2_to_7.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.0_to_7.3.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.2_to_7.3.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_patch_7.3.5_to_7.3.6_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.3_to_7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.2_to_7.4.3_3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_patch_7.4.5_to_7.4.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.4_to_7.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.5_to_7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.0_to_7.6.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_patch_7.6.2_to_7.6.3.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.6_to_7.7.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.3_to_7.7.4.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.4_to_7.7.5_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.5_to_7.7.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_patch_7.7.8_to_7.7.9_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.7_to_7.8.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.0_to_7.8.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.11_to_7.8.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.12_to_7.8.13_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_patch_7.8.4_to_7.8.5.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.8_to_7.9.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.0_to_7.9.1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.11_to_7.9.12.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.5_to_7.9.6.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_1.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_patch_7.9.6_to_7.9.7_2.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/camunda/7.15.0/upgrade/postgres_engine_7.9_to_7.10.sql diff --git a/services/eurynome-cloud-bpmn-ability/src/main/resources/sql/data-process.sql b/services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/data-process.sql similarity index 100% rename from services/eurynome-cloud-bpmn-ability/src/main/resources/sql/data-process.sql rename to services/eurynome-cloud-bpmn-ability/src/main/resources/sqls/data-process.sql From 03afe22a441e622fea36c06b3156623efd512fc1 Mon Sep 17 00:00:00 2001 From: herodotus Date: Sun, 26 Sep 2021 18:41:41 +0800 Subject: [PATCH 3/3] feat: v2.5.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重大更新 1. Spring Boot 升级至 2.5.5 2. Spring Cloud 升级至 2020.0.4 3. 大幅改进系统数据库表和数据初始化方式,实现OAuth2业务表自动创建,取消使用脚本的创建方式,提升便捷性 4. 新增人力资源管理相关功能,功能和模型设计实现与Camunda用户体系统一。便于用户体系数据的同步和管理。 5. 基于rollup、lerna 和 yarn workspaces,以 monorepo 方式重新构建前端工程。新版前端工程是以Vue2、Typescript开发的,组件库式的前端功能。代码更清晰、组件化和重用化程度更高。为升级至Vue3做前序铺垫。 - 其它更新 - 解决Skywalking UI连接Skywalking OAP Server出错问题。 - 修改防刷机制的默认配置 - 重新梳理错误体系,优化错误信息,错误提示更加友好。 - 解决单体版对Basic模式认证跨域拦截的问题 - 实现OAuth2 Password模式部分参数加密传输方式,提升系统安全性。 - 修复老版本前端工程已知问题。 - 在线文档同步更新。 - 依赖包版本升级 - Hutool 升级至 5.7.13 - okhttps 升级至 3.1.5 - weixin-java-miniapp 升级至 4.1.9.B - JustAuth 升级至 1.16.4 - jasypt-spring-boot-starter 升级至 3.0.4 - mybatis-plus-boot-starter 升级至3.4.3.4 - dysmsapi20170525 升级至 2.0.5 --- README.md | 4 +- .../scripts/oauth2-schema-mysql.sql | 121 --------- .../scripts/oauth2-schema-postgresql.sql | 153 ------------ dependencies/pom.xml | 16 +- documents/guides/404.html | 6 +- documents/guides/assets/js/app.11046e0a.js | 1 - documents/guides/assets/js/app.dfa17cae.js | 1 + .../guides/assets/js/runtime~app.af71715b.js | 1 - .../guides/assets/js/runtime~app.e1e21d6f.js | 1 + .../guides/assets/js/v-01ef07a3.0845c3b1.js | 1 + .../guides/assets/js/v-05e1cd7a.bd8a97fc.js | 1 + .../guides/assets/js/v-150eedcd.034efb86.js | 1 - .../guides/assets/js/v-150eedcd.1b8f991c.js | 1 + .../guides/assets/js/v-1b984d6f.29c165db.js | 1 + .../guides/assets/js/v-23340e69.640a11df.js | 1 + .../guides/assets/js/v-23340e69.7d8408c7.js | 1 - ...c13.494fc093.js => v-25b47c13.78dfea1d.js} | 2 +- .../guides/assets/js/v-31203a50.7c6f0960.js | 1 + .../guides/assets/js/v-31203a50.fe2fb675.js | 1 - .../guides/assets/js/v-3297977c.2395e7d1.js | 1 + .../guides/assets/js/v-3413cbec.4acd2b80.js | 1 - .../guides/assets/js/v-3413cbec.b35dffed.js | 1 + .../guides/assets/js/v-34232cb1.3b1f7752.js | 1 - .../guides/assets/js/v-34232cb1.a16c51b9.js | 1 + .../guides/assets/js/v-392e2ac6.e53e54bf.js | 1 + .../guides/assets/js/v-4c5db979.0070dff2.js | 1 + .../guides/assets/js/v-4cbee12b.c9497cfe.js | 1 - .../guides/assets/js/v-5b482e3b.35896057.js | 1 + .../guides/assets/js/v-5b482e3b.84072c08.js | 1 - .../guides/assets/js/v-5fe0d252.2bcef0c2.js | 1 - .../guides/assets/js/v-5fe0d252.3d9cf07d.js | 1 + .../guides/assets/js/v-b68b64a4.fc7bff93.js | 1 + ...7a0.2d350416.js => v-c0f957a0.e5ad57f0.js} | 2 +- .../guides/assets/js/v-d0b8a61e.6ac01707.js | 1 + .../guides/assets/js/v-eef3d90a.8d9012b9.js | 1 + .../guides/assets/js/v-eef3d90a.f3193fe7.js | 1 - .../guides/assets/js/v-f283941e.9f2d9416.js | 1 + .../guides/assets/js/v-f283941e.d658da47.js | 1 - documents/guides/basic-knowledge/index.html | 6 +- .../guides/basic-knowledge/postgresql.html | 21 ++ .../basic-knowledge/spring-data-jpa.html | 8 +- documents/guides/configurations/index.html | 24 ++ ...\347\273\237\351\205\215\347\275\256.html" | 21 ++ ...\344\273\266\351\205\215\347\275\256.html" | 21 ++ documents/guides/documents-athena/index.html | 6 +- documents/guides/documents/index.html | 6 +- ...\350\265\226\347\273\204\344\273\266.html" | 21 ++ ...\347\253\257\346\211\213\345\206\214.html" | 21 -- ...\347\253\257\351\227\256\351\242\230.html" | 51 ++++ ...\345\242\203\351\205\215\347\275\256.html" | 6 +- ...\347\224\250\345\221\275\344\273\244.html" | 54 ++++ ...\351\200\237\344\272\206\350\247\243.html" | 6 +- ...\345\210\235\345\247\213\345\214\226.html" | 6 +- ...\345\255\220\346\250\241\345\235\227.html" | 6 +- ...\346\225\260\346\215\256\345\272\223.html" | 14 +- ...\345\242\203\351\203\250\347\275\262.html" | 41 ++- ...\347\233\256\344\273\213\347\273\215.html" | 8 +- .../guides/images/idea/refresh-maven.png | Bin 0 -> 12946 bytes .../guides/images/nacos/config-create.png | Bin 0 -> 31739 bytes .../guides/images/nacos/config-import.png | Bin 0 -> 16438 bytes documents/guides/index.html | 6 +- ...\346\235\203\346\240\207\345\207\206.html" | 8 +- documents/guides/microservices/index.html | 6 +- ...\345\214\226\346\212\200\346\234\257.html" | 6 +- ...\345\214\226\351\203\250\347\275\262.html" | 6 +- documents/guides/others/Idea.html | 54 ++++ documents/guides/others/MySQL.html | 6 +- documents/guides/others/Nacos.html | 6 +- documents/guides/others/Redis.html | 6 +- documents/guides/others/index.html | 6 +- ...\346\226\260\346\227\245\345\277\227.html" | 6 +- .../exception/HerodotusExceptionHandler.java | 6 +- .../common/constant/enums/ResultStatus.java | 4 +- .../eurynome/common/utils/XssUtils.java | 10 +- .../data/cache/layer/HerodotusCache.java | 100 +++----- .../spi/HerodotusDomainDataStorageAccess.java | 41 ++- .../WebSecurityAutoConfiguration.java | 3 - .../base/service/BaseReadableService.java | 8 +- .../common/eurynome-cloud-database.yaml | 2 +- .../eurynome-cloud-environment.yaml | 1 + .../docker/eurynome-cloud-environment.yaml | 1 + .../eurynome-cloud-environment.yaml | 1 + .../nacos_config_export_20210901234519.zip | Bin 6759 -> 0 bytes .../nacos_config_export_20210901234531.zip | Bin 686 -> 0 bytes .../nacos_config_export_20210925140405.zip | Bin 0 -> 7147 bytes .../nacos_config_export_20210925140414.zip | Bin 0 -> 2275 bytes .../resources/sql/oauth2-schema-mysql.sql | 143 ----------- .../sql/oauth2-schema-postgresql.sql | 175 ------------- .../src/main/resources/bootstrap.yml | 9 +- .../resources/sqls/upms-data-postgresql.sql | 48 ++-- .../upms/api/entity/hr/SysOwnershipView.java | 233 ------------------ .../upms/api/entity/system/SysAuthority.java | 2 +- ...shipConfig.java => AllocatableDeploy.java} | 2 +- ...shipRemove.java => AllocatableRemove.java} | 18 +- .../repository/hr/SysOwnershipRepository.java | 24 ++ .../hr/SysOwnershipViewRepository.java | 45 ---- .../service/hr/SysDepartmentService.java | 4 +- .../logic/service/hr/SysEmployeeService.java | 53 ++-- .../service/hr/SysOrganizationService.java | 4 +- .../logic/service/hr/SysOwnershipService.java | 60 +---- .../service/hr/SysOwnershipViewService.java | 86 ------- .../service/system/SysAuthorityService.java | 4 +- .../logic/service/system/SysUserService.java | 8 +- .../upms/rest/annotation/EnableUpmsRest.java | 2 +- .../configuration/UpmsRestConfiguration.java | 2 +- .../controller/UpmsConstantsController.java | 2 +- .../development/SupplierController.java | 2 +- .../hr/SysDepartmentController.java | 2 +- .../controller/hr/SysEmployeeController.java | 51 ++-- .../hr/SysOrganizationController.java | 9 +- .../controller/hr/SysOwnershipController.java | 2 +- .../hr/SysOwnershipViewController.java | 77 ------ .../oauth/OauthApplicationsController.java | 2 +- .../oauth/OauthClientDetailsController.java | 2 +- .../oauth/OauthScopesController.java | 2 +- .../system/SysAuthorityController.java | 2 +- .../controller/system/SysRoleController.java | 2 +- .../controller/system/SysUserController.java | 2 +- 118 files changed, 620 insertions(+), 1434 deletions(-) delete mode 100644 configurations/scripts/oauth2-schema-mysql.sql delete mode 100644 configurations/scripts/oauth2-schema-postgresql.sql delete mode 100644 documents/guides/assets/js/app.11046e0a.js create mode 100644 documents/guides/assets/js/app.dfa17cae.js delete mode 100644 documents/guides/assets/js/runtime~app.af71715b.js create mode 100644 documents/guides/assets/js/runtime~app.e1e21d6f.js create mode 100644 documents/guides/assets/js/v-01ef07a3.0845c3b1.js create mode 100644 documents/guides/assets/js/v-05e1cd7a.bd8a97fc.js delete mode 100644 documents/guides/assets/js/v-150eedcd.034efb86.js create mode 100644 documents/guides/assets/js/v-150eedcd.1b8f991c.js create mode 100644 documents/guides/assets/js/v-1b984d6f.29c165db.js create mode 100644 documents/guides/assets/js/v-23340e69.640a11df.js delete mode 100644 documents/guides/assets/js/v-23340e69.7d8408c7.js rename documents/guides/assets/js/{v-25b47c13.494fc093.js => v-25b47c13.78dfea1d.js} (92%) create mode 100644 documents/guides/assets/js/v-31203a50.7c6f0960.js delete mode 100644 documents/guides/assets/js/v-31203a50.fe2fb675.js create mode 100644 documents/guides/assets/js/v-3297977c.2395e7d1.js delete mode 100644 documents/guides/assets/js/v-3413cbec.4acd2b80.js create mode 100644 documents/guides/assets/js/v-3413cbec.b35dffed.js delete mode 100644 documents/guides/assets/js/v-34232cb1.3b1f7752.js create mode 100644 documents/guides/assets/js/v-34232cb1.a16c51b9.js create mode 100644 documents/guides/assets/js/v-392e2ac6.e53e54bf.js create mode 100644 documents/guides/assets/js/v-4c5db979.0070dff2.js delete mode 100644 documents/guides/assets/js/v-4cbee12b.c9497cfe.js create mode 100644 documents/guides/assets/js/v-5b482e3b.35896057.js delete mode 100644 documents/guides/assets/js/v-5b482e3b.84072c08.js delete mode 100644 documents/guides/assets/js/v-5fe0d252.2bcef0c2.js create mode 100644 documents/guides/assets/js/v-5fe0d252.3d9cf07d.js create mode 100644 documents/guides/assets/js/v-b68b64a4.fc7bff93.js rename documents/guides/assets/js/{v-c0f957a0.2d350416.js => v-c0f957a0.e5ad57f0.js} (95%) create mode 100644 documents/guides/assets/js/v-d0b8a61e.6ac01707.js create mode 100644 documents/guides/assets/js/v-eef3d90a.8d9012b9.js delete mode 100644 documents/guides/assets/js/v-eef3d90a.f3193fe7.js create mode 100644 documents/guides/assets/js/v-f283941e.9f2d9416.js delete mode 100644 documents/guides/assets/js/v-f283941e.d658da47.js create mode 100644 documents/guides/basic-knowledge/postgresql.html create mode 100644 documents/guides/configurations/index.html create mode 100644 "documents/guides/configurations/\347\263\273\347\273\237\351\205\215\347\275\256.html" create mode 100644 "documents/guides/configurations/\347\273\204\344\273\266\351\205\215\347\275\256.html" create mode 100644 "documents/guides/documents/\344\276\235\350\265\226\347\273\204\344\273\266.html" delete mode 100644 "documents/guides/documents/\345\211\215\347\253\257\346\211\213\345\206\214.html" create mode 100644 "documents/guides/documents/\345\211\215\347\253\257\351\227\256\351\242\230.html" create mode 100644 "documents/guides/documents/\345\270\270\347\224\250\345\221\275\344\273\244.html" create mode 100644 documents/guides/images/idea/refresh-maven.png create mode 100644 documents/guides/images/nacos/config-create.png create mode 100644 documents/guides/images/nacos/config-import.png create mode 100644 documents/guides/others/Idea.html delete mode 100644 platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234519.zip delete mode 100644 platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234531.zip create mode 100644 platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140405.zip create mode 100644 platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140414.zip delete mode 100644 platform/eurynome-cloud-uaa/src/main/resources/sql/oauth2-schema-mysql.sql delete mode 100644 platform/eurynome-cloud-uaa/src/main/resources/sql/oauth2-schema-postgresql.sql delete mode 100644 services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/hr/SysOwnershipView.java rename services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/{OwnershipConfig.java => AllocatableDeploy.java} (98%) rename services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/{OwnershipRemove.java => AllocatableRemove.java} (83%) delete mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipViewRepository.java delete mode 100644 services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java delete mode 100644 services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java diff --git a/README.md b/README.md index 8458458f0..33a2881cf 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@

JDK 1.8+ - Spring Boot 2.5.4 - Spring Cloud 2020.0.3 + Spring Boot 2.5.5 + Spring Cloud 2020.0.4 Spring Cloud Alibaba 2021.1 Nacos 2.0.3 License Apache 2.0 diff --git a/configurations/scripts/oauth2-schema-mysql.sql b/configurations/scripts/oauth2-schema-mysql.sql deleted file mode 100644 index 658a2002d..000000000 --- a/configurations/scripts/oauth2-schema-mysql.sql +++ /dev/null @@ -1,121 +0,0 @@ -/* -Navicat MySQL Data Transfer - -Source Server : localhost -Source Server Version : 50528 -Source Host : localhost:3306 -Source Database : open-platform - -Target Server Type : MYSQL -Target Server Version : 50528 -File Encoding : 65001 - -Date: 2019-07-11 18:33:03 -*/ - -SET FOREIGN_KEY_CHECKS=0; - --- ---------------------------- --- Table structure for oauth_access_token --- ---------------------------- -DROP TABLE IF EXISTS `oauth_access_token`; -CREATE TABLE `oauth_access_token` ( - `token_id` varchar(256) DEFAULT NULL, - `token` blob, - `authentication_id` varchar(128) NOT NULL, - `user_name` varchar(256) DEFAULT NULL, - `client_id` varchar(256) DEFAULT NULL, - `authentication` blob, - `refresh_token` varchar(256) DEFAULT NULL, - PRIMARY KEY (`authentication_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2访问令牌'; - --- ---------------------------- --- Records of oauth_access_token --- ---------------------------- - --- ---------------------------- --- Table structure for oauth_approvals --- ---------------------------- -DROP TABLE IF EXISTS `oauth_approvals`; -CREATE TABLE `oauth_approvals` ( - `userId` varchar(256) DEFAULT NULL, - `clientId` varchar(256) DEFAULT NULL, - `scope` varchar(256) DEFAULT NULL, - `status` varchar(10) DEFAULT NULL, - `expiresAt` datetime DEFAULT NULL, - `lastModifiedAt` datetime DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2已授权客户端'; - --- ---------------------------- --- Records of oauth_approvals --- ---------------------------- - --- ---------------------------- --- Table structure for oauth_client_details --- ---------------------------- -DROP TABLE IF EXISTS `oauth_client_details`; -CREATE TABLE `oauth_client_details` ( - `client_id` varchar(128) NOT NULL, - `client_secret` varchar(256) NOT NULL, - `resource_ids` varchar(256) DEFAULT NULL, - `scope` varchar(1024) DEFAULT NULL, - `authorized_grant_types` varchar(256) DEFAULT NULL, - `web_server_redirect_uri` varchar(256) DEFAULT NULL, - `authorities` varchar(2048) DEFAULT NULL, - `access_token_validity` int(11) DEFAULT NULL, - `refresh_token_validity` int(11) DEFAULT NULL, - `additional_information` varchar(4096) DEFAULT NULL, - `autoapprove` varchar(256) DEFAULT NULL, - PRIMARY KEY (`client_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2客户端信息'; - --- ---------------------------- --- Records of oauth_client_details --- ---------------------------- -INSERT INTO `oauth_client_details` VALUES ('7gBZcbsC7kLIWCdELIl8nxcs', '$2a$10$4di0sSQdr9yk4uTKWtZqzedsxI8sWXoR67x.G.Qmy4K2L7ZaFQt6W', '', 'userProfile', 'authorization_code,client_credentials,password', 'http://localhost:8888/login,http://localhost:8888/webjars/springfox-swagger-ui/o2c.html,http://www.baidu.com', '', '43200', '2592000', '{\"website\":\"http://www.baidu.com\",\"apiKey\":\"7gBZcbsC7kLIWCdELIl8nxcs\",\"secretKey\":\"0osTIhce7uPvDKHz6aa67bhCukaKoYl4\",\"appName\":\"平台用户认证服务器\",\"updateTime\":1562841065000,\"isPersist\":1,\"appOs\":\"\",\"appIcon\":\"\",\"developerId\":0,\"createTime\":1542016125000,\"appType\":\"server\",\"appDesc\":\"资源服务器\",\"appId\":\"1552274783265\",\"appNameEn\":\"open-cloud-uaa-admin-server\",\"status\":1}', ''); - --- ---------------------------- --- Table structure for oauth_client_token --- ---------------------------- -DROP TABLE IF EXISTS `oauth_client_token`; -CREATE TABLE `oauth_client_token` ( - `token_id` varchar(256) DEFAULT NULL, - `token` blob, - `authentication_id` varchar(128) NOT NULL, - `user_name` varchar(256) DEFAULT NULL, - `client_id` varchar(256) DEFAULT NULL, - PRIMARY KEY (`authentication_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2客户端令牌'; - --- ---------------------------- --- Records of oauth_client_token --- ---------------------------- - --- ---------------------------- --- Table structure for oauth_code --- ---------------------------- -DROP TABLE IF EXISTS `oauth_code`; -CREATE TABLE `oauth_code` ( - `code` varchar(256) DEFAULT NULL, - `authentication` blob -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2授权码'; - --- ---------------------------- --- Records of oauth_code --- ---------------------------- - --- ---------------------------- --- Table structure for oauth_refresh_token --- ---------------------------- -DROP TABLE IF EXISTS `oauth_refresh_token`; -CREATE TABLE `oauth_refresh_token` ( - `token_id` varchar(256) DEFAULT NULL, - `token` blob, - `authentication` blob -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='oauth2刷新令牌'; - --- ---------------------------- --- Records of oauth_refresh_token --- ---------------------------- -SET FOREIGN_KEY_CHECKS=1; diff --git a/configurations/scripts/oauth2-schema-postgresql.sql b/configurations/scripts/oauth2-schema-postgresql.sql deleted file mode 100644 index fe061b39a..000000000 --- a/configurations/scripts/oauth2-schema-postgresql.sql +++ /dev/null @@ -1,153 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : PostgreSQL-LUBAN - Source Server Type : PostgreSQL - Source Server Version : 100010 - Source Host : localhost:5432 - Source Catalog : luban_cloud_platform - Source Schema : public - - Target Server Type : PostgreSQL - Target Server Version : 100010 - File Encoding : 65001 - - Date: 05/11/2019 11:44:20 -*/ - - --- ---------------------------- --- Table structure for oauth_access_token --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_access_token"; -CREATE TABLE "public"."oauth_access_token" ( - "token_id" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, - "token" bytea, - "authentication_id" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, - "user_name" varchar(256) COLLATE "pg_catalog"."default", - "client_id" varchar(256) COLLATE "pg_catalog"."default", - "authentication" bytea, - "refresh_token" varchar(256) COLLATE "pg_catalog"."default" -) -; - --- ---------------------------- --- Table structure for oauth_approvals --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_approvals"; -CREATE TABLE "public"."oauth_approvals" ( - "userId" varchar(256) COLLATE "pg_catalog"."default", - "clientId" varchar(256) COLLATE "pg_catalog"."default", - "scope" varchar(256) COLLATE "pg_catalog"."default", - "status" varchar(10) COLLATE "pg_catalog"."default", - "expiresAt" timestamp(6), - "lastModifiedAt" timestamp(6) -) -; - --- ---------------------------- --- Table structure for oauth_client_details --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_client_details"; -CREATE TABLE "public"."oauth_client_details" ( - "client_id" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, - "resource_ids" varchar(256) COLLATE "pg_catalog"."default", - "client_secret" varchar(256) COLLATE "pg_catalog"."default", - "scope" varchar(256) COLLATE "pg_catalog"."default", - "authorized_grant_types" varchar(256) COLLATE "pg_catalog"."default", - "web_server_redirect_uri" varchar(256) COLLATE "pg_catalog"."default", - "authorities" varchar(256) COLLATE "pg_catalog"."default", - "access_token_validity" int4, - "refresh_token_validity" int4, - "additional_information" varchar(4096) COLLATE "pg_catalog"."default", - "autoapprove" varchar(256) COLLATE "pg_catalog"."default" -) -; -COMMENT ON COLUMN "public"."oauth_client_details"."client_id" IS '客户端ID'; -COMMENT ON COLUMN "public"."oauth_client_details"."resource_ids" IS '资源ID集合,多个资源时用逗号(,)分隔'; -COMMENT ON COLUMN "public"."oauth_client_details"."client_secret" IS '客户端密匙'; -COMMENT ON COLUMN "public"."oauth_client_details"."scope" IS '客户端申请的权限范围'; -COMMENT ON COLUMN "public"."oauth_client_details"."authorized_grant_types" IS '客户端支持的grant_type'; -COMMENT ON COLUMN "public"."oauth_client_details"."web_server_redirect_uri" IS '重定向URI'; -COMMENT ON COLUMN "public"."oauth_client_details"."authorities" IS '客户端所拥有的Spring Security的权限值,多个用逗号(,)分隔'; -COMMENT ON COLUMN "public"."oauth_client_details"."access_token_validity" IS '访问令牌有效时间值(单位:秒)'; -COMMENT ON COLUMN "public"."oauth_client_details"."refresh_token_validity" IS '更新令牌有效时间值(单位:秒)'; -COMMENT ON COLUMN "public"."oauth_client_details"."additional_information" IS '预留字段'; -COMMENT ON COLUMN "public"."oauth_client_details"."autoapprove" IS '用户是否自动Approval操作'; - --- ---------------------------- --- Table structure for oauth_client_token --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_client_token"; -CREATE TABLE "public"."oauth_client_token" ( - "token_id" varchar(256) COLLATE "pg_catalog"."default", - "token" bytea, - "authentication_id" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, - "user_name" varchar(256) COLLATE "pg_catalog"."default", - "client_id" varchar(256) COLLATE "pg_catalog"."default" -) -; -COMMENT ON COLUMN "public"."oauth_client_token"."token_id" IS 'MD5加密的access_token值'; -COMMENT ON COLUMN "public"."oauth_client_token"."token" IS 'OAuth2AccessToken.java对象序列化后的二进制数据'; -COMMENT ON COLUMN "public"."oauth_client_token"."authentication_id" IS 'MD5加密过的username,client_id,scope'; -COMMENT ON COLUMN "public"."oauth_client_token"."user_name" IS '登录的用户名'; -COMMENT ON COLUMN "public"."oauth_client_token"."client_id" IS '客户端ID'; - --- ---------------------------- --- Table structure for oauth_code --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_code"; -CREATE TABLE "public"."oauth_code" ( - "code" varchar(256) COLLATE "pg_catalog"."default", - "authentication" bytea -) -; -COMMENT ON COLUMN "public"."oauth_code"."code" IS '授权码(未加密)'; -COMMENT ON COLUMN "public"."oauth_code"."authentication" IS 'AuthorizationRequestHolder.java对象序列化后的二进制数据'; - --- ---------------------------- --- Table structure for oauth_refresh_token --- ---------------------------- -DROP TABLE IF EXISTS "public"."oauth_refresh_token"; -CREATE TABLE "public"."oauth_refresh_token" ( - "token_id" varchar(256) COLLATE "pg_catalog"."default", - "token" bytea, - "authentication" bytea -) -; - --- ---------------------------- --- Indexes structure for table oauth_access_token --- ---------------------------- -CREATE INDEX "oauth_access_token_id_idx" ON "public"."oauth_access_token" USING btree ( - "authentication_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table oauth_access_token --- ---------------------------- -ALTER TABLE "public"."oauth_access_token" ADD CONSTRAINT "oauth_access_token_pkey" PRIMARY KEY ("authentication_id"); - --- ---------------------------- --- Indexes structure for table oauth_client_details --- ---------------------------- -CREATE INDEX "oauth_client_details_id_idx" ON "public"."oauth_client_details" USING btree ( - "client_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table oauth_client_details --- ---------------------------- -ALTER TABLE "public"."oauth_client_details" ADD CONSTRAINT "oauth_client_details_pkey" PRIMARY KEY ("client_id"); - --- ---------------------------- --- Indexes structure for table oauth_client_token --- ---------------------------- -CREATE INDEX "oauth_client_token_id_idx" ON "public"."oauth_client_token" USING btree ( - "authentication_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST -); - --- ---------------------------- --- Primary Key structure for table oauth_client_token --- ---------------------------- -ALTER TABLE "public"."oauth_client_token" ADD CONSTRAINT "oauth_client_token_pkey" PRIMARY KEY ("authentication_id"); diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 829ad71b4..ea9da0d6b 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -29,7 +29,7 @@ org.springframework.boot spring-boot-starter-parent - 2.5.4 + 2.5.5 @@ -59,8 +59,8 @@ - 2.5.4 - 2020.0.3 + 2.5.5 + 2020.0.4 2021.1 2.5.1 @@ -89,17 +89,17 @@ 2.0.3 - 5.7.10 - 3.1.4 - 1.16.3 + 5.7.13 + 3.1.5 + 1.16.4 3.0.3 2.3.2 1.6.2 - 3.0.3 + 3.0.4 7.15.0 - 3.4.3.2 + 3.4.3.4 3.5.0 2.3 diff --git a/documents/guides/404.html b/documents/guides/404.html index bc473a38c..968153ba7 100644 --- a/documents/guides/404.html +++ b/documents/guides/404.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Eurynome Cloud - + -

404

There's nothing here.
Take me home
- +

404

That's a Four-Oh-Four.
Take me home
+ diff --git a/documents/guides/assets/js/app.11046e0a.js b/documents/guides/assets/js/app.11046e0a.js deleted file mode 100644 index 74d591987..000000000 --- a/documents/guides/assets/js/app.11046e0a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[143],{3131:(e,l,t)=>{t.d(l,{g:()=>r});var i=t(2009),d=t(6971),n=t(1598),s=t(1843);const r=[i.Z,d.Z,n.Z,s.Z]},9947:(e,l,t)=>{t.d(l,{p:()=>i});const i=[t(3051).Z]},4611:(e,l,t)=>{t.d(l,{l:()=>s});var i=t(8866),d=t(1263),n=t(6243);const s=[i.Z,d.Z,n.Z]},4150:(e,l,t)=>{t.d(l,{Z:()=>d});var i=t(6252);const d={404:(0,i.RC)((()=>t.e(491).then(t.bind(t,8491)))),Layout:(0,i.RC)((()=>t.e(293).then(t.bind(t,3293))))}},6056:(e,l,t)=>{t.d(l,{b:()=>d});var i=t(6252);const d={"v-8daa1a0e":(0,i.RC)((()=>t.e(509).then(t.bind(t,6797)))),"v-344b5769":(0,i.RC)((()=>t.e(861).then(t.bind(t,8497)))),"v-9a0d6c6c":(0,i.RC)((()=>t.e(247).then(t.bind(t,5190)))),"v-c0f957a0":(0,i.RC)((()=>t.e(781).then(t.bind(t,3988)))),"v-4cbee12b":(0,i.RC)((()=>t.e(967).then(t.bind(t,2324)))),"v-cff5f184":(0,i.RC)((()=>t.e(243).then(t.bind(t,2197)))),"v-6430ce6c":(0,i.RC)((()=>t.e(4).then(t.bind(t,683)))),"v-f283941e":(0,i.RC)((()=>t.e(658).then(t.bind(t,2038)))),"v-4331d874":(0,i.RC)((()=>t.e(979).then(t.bind(t,7276)))),"v-eef3d90a":(0,i.RC)((()=>t.e(701).then(t.bind(t,9229)))),"v-23340e69":(0,i.RC)((()=>t.e(152).then(t.bind(t,4954)))),"v-5fe0d252":(0,i.RC)((()=>t.e(188).then(t.bind(t,9735)))),"v-49381304":(0,i.RC)((()=>t.e(925).then(t.bind(t,2604)))),"v-150eedcd":(0,i.RC)((()=>t.e(779).then(t.bind(t,6372)))),"v-5f81e486":(0,i.RC)((()=>t.e(951).then(t.bind(t,9138)))),"v-040481e0":(0,i.RC)((()=>t.e(365).then(t.bind(t,4749)))),"v-661abe0c":(0,i.RC)((()=>t.e(129).then(t.bind(t,6621)))),"v-3413cbec":(0,i.RC)((()=>t.e(90).then(t.bind(t,2875)))),"v-31203a50":(0,i.RC)((()=>t.e(398).then(t.bind(t,7403)))),"v-25b47c13":(0,i.RC)((()=>t.e(446).then(t.bind(t,6207)))),"v-34232cb1":(0,i.RC)((()=>t.e(201).then(t.bind(t,9932)))),"v-5b482e3b":(0,i.RC)((()=>t.e(961).then(t.bind(t,1138)))),"v-3706649a":(0,i.RC)((()=>t.e(88).then(t.bind(t,3881))))}},9706:(e,l,t)=>{t.d(l,{T:()=>i});const i={"v-8daa1a0e":()=>t.e(509).then(t.bind(t,6464)).then((({data:e})=>e)),"v-344b5769":()=>t.e(861).then(t.bind(t,484)).then((({data:e})=>e)),"v-9a0d6c6c":()=>t.e(247).then(t.bind(t,6281)).then((({data:e})=>e)),"v-c0f957a0":()=>t.e(781).then(t.bind(t,3597)).then((({data:e})=>e)),"v-4cbee12b":()=>t.e(967).then(t.bind(t,4363)).then((({data:e})=>e)),"v-cff5f184":()=>t.e(243).then(t.bind(t,7738)).then((({data:e})=>e)),"v-6430ce6c":()=>t.e(4).then(t.bind(t,890)).then((({data:e})=>e)),"v-f283941e":()=>t.e(658).then(t.bind(t,5517)).then((({data:e})=>e)),"v-4331d874":()=>t.e(979).then(t.bind(t,8002)).then((({data:e})=>e)),"v-eef3d90a":()=>t.e(701).then(t.bind(t,7502)).then((({data:e})=>e)),"v-23340e69":()=>t.e(152).then(t.bind(t,7341)).then((({data:e})=>e)),"v-5fe0d252":()=>t.e(188).then(t.bind(t,3133)).then((({data:e})=>e)),"v-49381304":()=>t.e(925).then(t.bind(t,6445)).then((({data:e})=>e)),"v-150eedcd":()=>t.e(779).then(t.bind(t,2236)).then((({data:e})=>e)),"v-5f81e486":()=>t.e(951).then(t.bind(t,9865)).then((({data:e})=>e)),"v-040481e0":()=>t.e(365).then(t.bind(t,6424)).then((({data:e})=>e)),"v-661abe0c":()=>t.e(129).then(t.bind(t,5251)).then((({data:e})=>e)),"v-3413cbec":()=>t.e(90).then(t.bind(t,7635)).then((({data:e})=>e)),"v-31203a50":()=>t.e(398).then(t.bind(t,3657)).then((({data:e})=>e)),"v-25b47c13":()=>t.e(446).then(t.bind(t,3166)).then((({data:e})=>e)),"v-34232cb1":()=>t.e(201).then(t.bind(t,6803)).then((({data:e})=>e)),"v-5b482e3b":()=>t.e(961).then(t.bind(t,7149)).then((({data:e})=>e)),"v-3706649a":()=>t.e(88).then(t.bind(t,1801)).then((({data:e})=>e))}},4634:(e,l,t)=>{t.d(l,{g:()=>d});var i=t(4802);const d=[["v-8daa1a0e","/","",["/index.html","/README.md"]],["v-344b5769","/basic-knowledge/","介绍",["/basic-knowledge/index.html","/basic-knowledge/README.md"]],["v-9a0d6c6c","/basic-knowledge/spring-data-jpa.html","Spring Data JPA",["/basic-knowledge/spring-data-jpa","/basic-knowledge/spring-data-jpa.md"]],["v-c0f957a0","/documents/","介绍",["/documents/index.html","/documents/README.md"]],["v-4cbee12b","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html","前端手册",["/documents/前端手册.html","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C","/documents/前端手册.md","/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.md"]],["v-cff5f184","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html","多环境配置",["/documents/多环境配置.html","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE","/documents/多环境配置.md","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.md"]],["v-6430ce6c","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html","快速了解",["/documents/快速了解.html","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3","/documents/快速了解.md","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.md"]],["v-f283941e","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html","数据初始化",["/documents/数据初始化.html","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96","/documents/数据初始化.md","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.md"]],["v-4331d874","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html","新建子模块",["/documents/新建子模块.html","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97","/documents/新建子模块.md","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.md"]],["v-eef3d90a","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html","更换数据库",["/documents/更换数据库.html","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93","/documents/更换数据库.md","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.md"]],["v-23340e69","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html","环境部署",["/documents/环境部署.html","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2","/documents/环境部署.md","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.md"]],["v-5fe0d252","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html","项目介绍",["/documents/项目介绍.html","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D","/documents/项目介绍.md","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.md"]],["v-49381304","/documents-athena/","介绍",["/documents-athena/index.html","/documents-athena/README.md"]],["v-150eedcd","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html","OAuth2",["/microservices/OAuth2授权标准.html","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86","/microservices/OAuth2授权标准.md","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.md"]],["v-5f81e486","/microservices/","介绍",["/microservices/index.html","/microservices/README.md"]],["v-040481e0","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html","容器化技术",["/microservices/容器化技术.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF","/microservices/容器化技术.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.md"]],["v-661abe0c","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html","容器化部署",["/microservices/容器化部署.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2","/microservices/容器化部署.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.md"]],["v-3413cbec","/others/MySQL.html","MySQL 常见问题",["/others/MySQL","/others/MySQL.md"]],["v-31203a50","/others/Nacos.html","Nacos 常见问题",["/others/Nacos","/others/Nacos.md"]],["v-25b47c13","/others/","说明",["/others/index.html","/others/README.md"]],["v-34232cb1","/others/Redis.html","Redis 常见问题",["/others/Redis","/others/Redis.md"]],["v-5b482e3b","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html","更新日志",["/others/更新日志.html","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97","/others/更新日志.md","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.md"]],["v-3706649a","/404.html","",["/404"]]].reduce(((e,[l,t,d,n])=>(e.push({name:l,path:t,component:i.Y,meta:{title:d}},...n.map((e=>({path:e,redirect:t})))),e)),[{name:"404",path:"/:catchAll(.*)",component:i.Y}])},5472:(e,l,t)=>{t.d(l,{D:()=>i});const i=[{title:"",headers:[],path:"/",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/basic-knowledge/",pathLocale:"/",extraFields:[]},{title:"Spring Data JPA",headers:[{level:2,title:"JPA",slug:"jpa",children:[{level:3,title:"Spring Data Jpa",slug:"spring-data-jpa-1",children:[]},{level:3,title:"Jpa、Hibernate、Spring Data Jpa三者之间的关系",slug:"jpa、hibernate、spring-data-jpa三者之间的关系",children:[]},{level:3,title:"Spring Data Jpa的java配置方案",slug:"spring-data-jpa的java配置方案",children:[]},{level:3,title:"Spring Boot整合Spring Data Jpa",slug:"spring-boot整合spring-data-jpa",children:[]}]},{level:2,title:"Spring Data Jpa的使用",slug:"spring-data-jpa的使用",children:[{level:3,title:"Spring Data Jpa UML类图",slug:"spring-data-jpa-uml类图",children:[]},{level:3,title:"简单的REST CRUD示例",slug:"简单的rest-crud示例",children:[]}]},{level:2,title:"Spring Data Jpa使用详解",slug:"spring-data-jpa使用详解",children:[{level:3,title:"Spring Data查询方法",slug:"spring-data查询方法",children:[]},{level:3,title:"查询方法",slug:"查询方法",children:[]},{level:3,title:"多表查询",slug:"多表查询",children:[]}]},{level:2,title:"审计Auditing",slug:"审计auditing",children:[{level:3,title:"实现AuditorAware接口",slug:"实现auditoraware接口",children:[]},{level:3,title:"启用Jpa审计功能",slug:"启用jpa审计功能",children:[]}]}],path:"/basic-knowledge/spring-data-jpa.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],path:"/documents/",pathLocale:"/",extraFields:[]},{title:"前端手册",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],path:"/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html",pathLocale:"/",extraFields:[]},{title:"多环境配置",headers:[{level:2,title:"什么是多环境配置?",slug:"什么是多环境配置",children:[]},{level:2,title:"Maven 多环境配置",slug:"maven-多环境配置",children:[]},{level:2,title:"Spring Boot 多环境配置",slug:"spring-boot-多环境配置",children:[{level:3,title:"Spring Boot 环境设置机制",slug:"spring-boot-环境设置机制",children:[]},{level:3,title:"配置多环境",slug:"配置多环境",children:[]},{level:3,title:"指定环境",slug:"指定环境",children:[]},{level:3,title:"单一文件写法",slug:"单一文件写法",children:[]}]},{level:2,title:"Nacos 多环境配置",slug:"nacos-多环境配置",children:[{level:3,title:"Data Id",slug:"data-id",children:[]},{level:3,title:"Group",slug:"group",children:[]},{level:3,title:"Namespace",slug:"namespace",children:[]}]},{level:2,title:"Docker和K8S 多环境配置",slug:"docker和k8s-多环境配置",children:[]},{level:2,title:"Eurynome Cloud 的多环境配置",slug:"eurynome-cloud-的多环境配置",children:[{level:3,title:"Eurynome Cloud 中的Maven多环境配置",slug:"eurynome-cloud-中的maven多环境配置",children:[]},{level:3,title:"Eurynome Cloud 中的Spring Boot和Nacos多环境配置",slug:"eurynome-cloud-中的spring-boot和nacos多环境配置",children:[]}]}],path:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"快速了解",headers:[{level:2,title:"项目简介",slug:"项目简介",children:[]},{level:2,title:"主要特性",slug:"主要特性",children:[]},{level:2,title:"技术选型",slug:"技术选型",children:[]},{level:2,title:"内置功能",slug:"内置功能",children:[]}],path:"/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html",pathLocale:"/",extraFields:[]},{title:"数据初始化",headers:[{level:2,title:"系统初次部署数据库初始化内容",slug:"系统初次部署数据库初始化内容",children:[]},{level:2,title:"数据表及数据初始化说明",slug:"数据表及数据初始化说明",children:[{level:3,title:"[1]、OAuth2 标准表结构的创建",slug:"_1-、oauth2-标准表结构的创建",children:[]},{level:3,title:"[2]、服务中涉及业务表的创建",slug:"_2-、服务中涉及业务表的创建",children:[]},{level:3,title:"[3]、个别View或函数的创建(可选)",slug:"_3-、个别view或函数的创建-可选",children:[]},{level:3,title:"[4]、默认用户、角色等数据的初始化",slug:"_4-、默认用户、角色等数据的初始化",children:[]},{level:3,title:"[5]、服务Rest API接口数据初始化",slug:"_5-、服务rest-api接口数据初始化",children:[]}]},{level:2,title:"数据表和数据自动初始化",slug:"数据表和数据自动初始化",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]},{level:3,title:"具体步骤",slug:"具体步骤",children:[]}]},{level:2,title:"系统默认账号",slug:"系统默认账号",children:[]}],path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",pathLocale:"/",extraFields:[]},{title:"新建子模块",headers:[{level:2,title:"在现有工程内,新建常规模块",slug:"在现有工程内-新建常规模块",children:[{level:3,title:"手工新建子模块(非微服务模块)",slug:"手工新建子模块-非微服务模块",children:[]},{level:3,title:"IDEA新建子模块(非微服务模块)",slug:"idea新建子模块-非微服务模块",children:[]}]},{level:2,title:"在现有工程内,新建微服务模块",slug:"在现有工程内-新建微服务模块",children:[{level:3,title:"手工新建子模块(非常规模块)",slug:"手工新建子模块-非常规模块",children:[]},{level:3,title:"IDEA新建子模块(非常规模块)",slug:"idea新建子模块-非常规模块",children:[]}]},{level:2,title:"在现有工程外,新建微服务独立模块工程",slug:"在现有工程外-新建微服务独立模块工程",children:[]}],path:"/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html",pathLocale:"/",extraFields:[]},{title:"更换数据库",headers:[{level:2,title:"为什么默认使用PostgreSQL数据库?",slug:"为什么默认使用postgresql数据库",children:[{level:3,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[]},{level:3,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[]},{level:3,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[]},{level:3,title:"总结",slug:"总结",children:[]}]},{level:2,title:"Spring Boot Starter Data JPA 更换数据库方式",slug:"spring-boot-starter-data-jpa-更换数据库方式",children:[]},{level:2,title:"Eurynome Cloud 更换数据库方式",slug:"eurynome-cloud-更换数据库方式",children:[{level:3,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:3,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:3,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:3,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:3,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]}]}],path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",pathLocale:"/",extraFields:[]},{title:"环境部署",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"运行系统",slug:"运行系统",children:[{level:3,title:"后端运行",slug:"后端运行",children:[]},{level:3,title:"前端运行",slug:"前端运行",children:[]}]}],path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"项目介绍",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"Athena 是什么?",slug:"athena-是什么",children:[]},{level:2,title:"Athena 不是什么?",slug:"athena-不是什么",children:[]},{level:2,title:"为什么 Athena 和 Eurynome Cloud 共享代码?",slug:"为什么-athena-和-eurynome-cloud-共享代码",children:[]},{level:2,title:"为什么构建 Athena?",slug:"为什么构建-athena",children:[]}],path:"/documents-athena/",pathLocale:"/",extraFields:[]},{title:"OAuth2",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/microservices/",pathLocale:"/",extraFields:[]},{title:"容器化技术",headers:[{level:2,title:"Docker能解决什么问题?",slug:"docker能解决什么问题",children:[{level:3,title:"麻烦的环境配置",slug:"麻烦的环境配置",children:[]},{level:3,title:"现在的应用程序",slug:"现在的应用程序",children:[]},{level:3,title:"新架构的挑战",slug:"新架构的挑战",children:[]},{level:3,title:"统一的管理",slug:"统一的管理",children:[]}]},{level:2,title:"“容器”",slug:"容器",children:[{level:3,title:"虚拟化技术",slug:"虚拟化技术",children:[]},{level:3,title:"容器技术",slug:"容器技术",children:[]}]},{level:2,title:"Docker",slug:"docker",children:[{level:3,title:"Docker架构",slug:"docker架构",children:[]},{level:3,title:"Docker底层实现",slug:"docker底层实现",children:[]},{level:3,title:"Docker核心技术",slug:"docker核心技术",children:[]},{level:3,title:"Docker VS VM",slug:"docker-vs-vm",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html",pathLocale:"/",extraFields:[]},{title:"容器化部署",headers:[{level:2,title:"本地容器部署",slug:"本地容器部署",children:[{level:3,title:"[1]、本地Docker安装(Windows版)",slug:"_1-、本地docker安装-windows版",children:[]},{level:3,title:"[2]、安装配置MySQL",slug:"_2-、安装配置mysql",children:[]},{level:3,title:"[2]、安装配置PostgreSQL",slug:"_2-、安装配置postgresql",children:[]},{level:3,title:"[3]、安装配置Redis",slug:"_3-、安装配置redis",children:[]},{level:3,title:"[4]、部署Kafka、Zookeeper、Nacos、ELK、Sentinel Dashboard",slug:"_4-、部署kafka、zookeeper、nacos、elk、sentinel-dashboard",children:[]},{level:3,title:"[5]、部署Skywalking",slug:"_5-、部署skywalking",children:[]},{level:3,title:"[6]、服务打包部署",slug:"_6-、服务打包部署",children:[]}]},{level:2,title:"服务器容器部署",slug:"服务器容器部署",children:[]},{level:2,title:"Docker打包设计",slug:"docker打包设计",children:[{level:3,title:"Eurynome Cloud Docker 打包设计初衷",slug:"eurynome-cloud-docker-打包设计初衷",children:[]},{level:3,title:"Eurynome Cloud Docker 打包的设计",slug:"eurynome-cloud-docker-打包的设计",children:[]},{level:3,title:"Eurynome Cloud Docker 打包使用方法",slug:"eurynome-cloud-docker-打包使用方法",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"MySQL 常见问题",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],path:"/others/MySQL.html",pathLocale:"/",extraFields:[]},{title:"Nacos 常见问题",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],path:"/others/Nacos.html",pathLocale:"/",extraFields:[]},{title:"说明",headers:[],path:"/others/",pathLocale:"/",extraFields:[]},{title:"Redis 常见问题",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],path:"/others/Redis.html",pathLocale:"/",extraFields:[]},{title:"更新日志",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}]},5220:(e,l,t)=>{t.d(l,{H:()=>i});const i={base:"/eurynome-cloud/",lang:"zh-CN",title:"Eurynome Cloud",description:"Eurynome Cloud, 在线文档, 微服务, 微服务架构, Spring Boot,Spring Cloud,Spring Cloud Alibaba, Spring Security, OAuth 2, Skywalking, Nacos",head:[["link",{rel:"icon",href:"/eurynome-cloud/images/logo.png"}],["meta",{name:"keywords",content:"Eurynome Cloud,微服务,Spring Boot,Spirng Cloud,Spring Cloud Alibaba,Spring Security,OAuth2,Nacos,Skywalking"}],["script",{},'var _hmt = _hmt || [];\n (function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?376190fed0f613f413a39d7aa19f387d";\n var s = document.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(hm, s);\n })();']],locales:{}}},2232:(e,l,t)=>{t.d(l,{f:()=>i});const i={logo:"/images/logo.png",darkMode:!0,lastUpdatedText:"更新时间",contributorsText:"贡献者",navbar:[{text:"指南",link:"/documents/"},{text:"单体版",link:"/documents-athena/"},{text:"微服务技术栈",link:"/microservices/"},{text:"了解更多",children:[{text:"延伸",children:[{text:"了解基础知识",link:"/basic-knowledge/"}]},{text:"帮助",children:[{text:"我要提问",link:"https://gitee.com/herodotus/eurynome-cloud/issues"},{text:"常见问题",link:"/others/README.md"},{text:"更新日志",link:"/others/更新日志.md"},{text:"加入QQ群",link:"https://jq.qq.com/?_wv=1027&k=bIerJVy8"}]}]},{text:"Gitee",children:[{text:"后端源码",link:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://gitee.com/herodotus/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://gitee.com/herodotus/herodotus-cloud-athena",target:"_blank"}]},{text:"Github",children:[{text:"后端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://github.com/herodotus-cloud/herodotus-cloud-athena",target:"_blank"}]}],sidebar:{"/documents/":[{text:"指南",children:["/documents/README.md","/documents/快速了解.md","/documents/项目介绍.md","/documents/环境部署.md"]},{text:"后端手册",children:["/documents/数据初始化.md","/documents/更换数据库.md","/documents/多环境配置.md","/documents/新建子模块.md"]},{text:"前端手册",children:["/documents/前端手册.md"]}],"/documents-athena/":[{text:"单体版",children:["/documents-athena/README.md"]}],"/microservices/":[{text:"微服务技术栈",children:["/microservices/README.md","/microservices/OAuth2授权标准.md","/microservices/容器化技术.md","/microservices/容器化部署.md"]}],"/basic-knowledge/":[{text:"基础知识",children:["/basic-knowledge/README.md","/basic-knowledge/spring-data-jpa.md"]}],"/others/":[{text:"其它内容",children:["/others/README.md","/others/Nacos.md","/others/Redis.md","/others/更新日志.md"]}]},locales:{"/":{selectLanguageName:"English"}},repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,contributors:!0,notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"}}},e=>{e.O(0,[512,567],(()=>(5698,e(e.s=5698)))),e.O()}]); \ No newline at end of file diff --git a/documents/guides/assets/js/app.dfa17cae.js b/documents/guides/assets/js/app.dfa17cae.js new file mode 100644 index 000000000..37db932ab --- /dev/null +++ b/documents/guides/assets/js/app.dfa17cae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[143],{3131:(e,l,t)=>{t.d(l,{g:()=>r});var i=t(2009),n=t(6971),d=t(1598),s=t(1843);const r=[i.Z,n.Z,d.Z,s.Z]},9947:(e,l,t)=>{t.d(l,{p:()=>i});const i=[t(3051).Z]},4611:(e,l,t)=>{t.d(l,{l:()=>s});var i=t(8866),n=t(1263),d=t(6243);const s=[i.Z,n.Z,d.Z]},4150:(e,l,t)=>{t.d(l,{Z:()=>n});var i=t(6252);const n={404:(0,i.RC)((()=>t.e(491).then(t.bind(t,8491)))),Layout:(0,i.RC)((()=>t.e(293).then(t.bind(t,3293))))}},6056:(e,l,t)=>{t.d(l,{b:()=>n});var i=t(6252);const n={"v-8daa1a0e":(0,i.RC)((()=>t.e(509).then(t.bind(t,6797)))),"v-3297977c":(0,i.RC)((()=>t.e(189).then(t.bind(t,4425)))),"v-344b5769":(0,i.RC)((()=>t.e(861).then(t.bind(t,8497)))),"v-9a0d6c6c":(0,i.RC)((()=>t.e(247).then(t.bind(t,5190)))),"v-4c5db979":(0,i.RC)((()=>t.e(334).then(t.bind(t,4612)))),"v-d0b8a61e":(0,i.RC)((()=>t.e(216).then(t.bind(t,9132)))),"v-05e1cd7a":(0,i.RC)((()=>t.e(934).then(t.bind(t,7745)))),"v-c0f957a0":(0,i.RC)((()=>t.e(781).then(t.bind(t,5180)))),"v-b68b64a4":(0,i.RC)((()=>t.e(892).then(t.bind(t,132)))),"v-392e2ac6":(0,i.RC)((()=>t.e(939).then(t.bind(t,5037)))),"v-cff5f184":(0,i.RC)((()=>t.e(243).then(t.bind(t,2197)))),"v-01ef07a3":(0,i.RC)((()=>t.e(812).then(t.bind(t,7029)))),"v-6430ce6c":(0,i.RC)((()=>t.e(4).then(t.bind(t,683)))),"v-f283941e":(0,i.RC)((()=>t.e(658).then(t.bind(t,3331)))),"v-4331d874":(0,i.RC)((()=>t.e(979).then(t.bind(t,7276)))),"v-eef3d90a":(0,i.RC)((()=>t.e(701).then(t.bind(t,4454)))),"v-23340e69":(0,i.RC)((()=>t.e(152).then(t.bind(t,9792)))),"v-5fe0d252":(0,i.RC)((()=>t.e(188).then(t.bind(t,8108)))),"v-49381304":(0,i.RC)((()=>t.e(925).then(t.bind(t,2604)))),"v-150eedcd":(0,i.RC)((()=>t.e(779).then(t.bind(t,6372)))),"v-5f81e486":(0,i.RC)((()=>t.e(951).then(t.bind(t,9138)))),"v-040481e0":(0,i.RC)((()=>t.e(365).then(t.bind(t,4749)))),"v-661abe0c":(0,i.RC)((()=>t.e(129).then(t.bind(t,6621)))),"v-1b984d6f":(0,i.RC)((()=>t.e(295).then(t.bind(t,1915)))),"v-3413cbec":(0,i.RC)((()=>t.e(90).then(t.bind(t,2875)))),"v-31203a50":(0,i.RC)((()=>t.e(398).then(t.bind(t,7403)))),"v-25b47c13":(0,i.RC)((()=>t.e(446).then(t.bind(t,6207)))),"v-34232cb1":(0,i.RC)((()=>t.e(201).then(t.bind(t,9932)))),"v-5b482e3b":(0,i.RC)((()=>t.e(961).then(t.bind(t,7863)))),"v-3706649a":(0,i.RC)((()=>t.e(88).then(t.bind(t,3881))))}},9706:(e,l,t)=>{t.d(l,{T:()=>i});const i={"v-8daa1a0e":()=>t.e(509).then(t.bind(t,6464)).then((({data:e})=>e)),"v-3297977c":()=>t.e(189).then(t.bind(t,7958)).then((({data:e})=>e)),"v-344b5769":()=>t.e(861).then(t.bind(t,484)).then((({data:e})=>e)),"v-9a0d6c6c":()=>t.e(247).then(t.bind(t,6281)).then((({data:e})=>e)),"v-4c5db979":()=>t.e(334).then(t.bind(t,4484)).then((({data:e})=>e)),"v-d0b8a61e":()=>t.e(216).then(t.bind(t,875)).then((({data:e})=>e)),"v-05e1cd7a":()=>t.e(934).then(t.bind(t,9131)).then((({data:e})=>e)),"v-c0f957a0":()=>t.e(781).then(t.bind(t,3597)).then((({data:e})=>e)),"v-b68b64a4":()=>t.e(892).then(t.bind(t,4548)).then((({data:e})=>e)),"v-392e2ac6":()=>t.e(939).then(t.bind(t,4988)).then((({data:e})=>e)),"v-cff5f184":()=>t.e(243).then(t.bind(t,7738)).then((({data:e})=>e)),"v-01ef07a3":()=>t.e(812).then(t.bind(t,4432)).then((({data:e})=>e)),"v-6430ce6c":()=>t.e(4).then(t.bind(t,890)).then((({data:e})=>e)),"v-f283941e":()=>t.e(658).then(t.bind(t,5517)).then((({data:e})=>e)),"v-4331d874":()=>t.e(979).then(t.bind(t,8002)).then((({data:e})=>e)),"v-eef3d90a":()=>t.e(701).then(t.bind(t,4954)).then((({data:e})=>e)),"v-23340e69":()=>t.e(152).then(t.bind(t,7341)).then((({data:e})=>e)),"v-5fe0d252":()=>t.e(188).then(t.bind(t,3133)).then((({data:e})=>e)),"v-49381304":()=>t.e(925).then(t.bind(t,6445)).then((({data:e})=>e)),"v-150eedcd":()=>t.e(779).then(t.bind(t,2236)).then((({data:e})=>e)),"v-5f81e486":()=>t.e(951).then(t.bind(t,9865)).then((({data:e})=>e)),"v-040481e0":()=>t.e(365).then(t.bind(t,6424)).then((({data:e})=>e)),"v-661abe0c":()=>t.e(129).then(t.bind(t,5251)).then((({data:e})=>e)),"v-1b984d6f":()=>t.e(295).then(t.bind(t,1087)).then((({data:e})=>e)),"v-3413cbec":()=>t.e(90).then(t.bind(t,7635)).then((({data:e})=>e)),"v-31203a50":()=>t.e(398).then(t.bind(t,3657)).then((({data:e})=>e)),"v-25b47c13":()=>t.e(446).then(t.bind(t,3166)).then((({data:e})=>e)),"v-34232cb1":()=>t.e(201).then(t.bind(t,6803)).then((({data:e})=>e)),"v-5b482e3b":()=>t.e(961).then(t.bind(t,7149)).then((({data:e})=>e)),"v-3706649a":()=>t.e(88).then(t.bind(t,1801)).then((({data:e})=>e))}},4634:(e,l,t)=>{t.d(l,{g:()=>n});var i=t(4802);const n=[["v-8daa1a0e","/","",["/index.html","/README.md"]],["v-3297977c","/basic-knowledge/postgresql.html","为什么默认使用PostgreSQL数据库?",["/basic-knowledge/postgresql","/basic-knowledge/postgresql.md"]],["v-344b5769","/basic-knowledge/","介绍",["/basic-knowledge/index.html","/basic-knowledge/README.md"]],["v-9a0d6c6c","/basic-knowledge/spring-data-jpa.html","Spring Data JPA",["/basic-knowledge/spring-data-jpa","/basic-knowledge/spring-data-jpa.md"]],["v-4c5db979","/configurations/","快速配置",["/configurations/index.html","/configurations/README.md"]],["v-d0b8a61e","/configurations/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE.html","系统配置",["/configurations/系统配置.html","/configurations/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE","/configurations/系统配置.md","/configurations/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE.md"]],["v-05e1cd7a","/configurations/%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE.html","组件配置",["/configurations/组件配置.html","/configurations/%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE","/configurations/组件配置.md","/configurations/%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE.md"]],["v-c0f957a0","/documents/","介绍",["/documents/index.html","/documents/README.md"]],["v-b68b64a4","/documents/%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6.html","依赖组件",["/documents/依赖组件.html","/documents/%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6","/documents/依赖组件.md","/documents/%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6.md"]],["v-392e2ac6","/documents/%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98.html","前端问题",["/documents/前端问题.html","/documents/%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98","/documents/前端问题.md","/documents/%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98.md"]],["v-cff5f184","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html","多环境配置",["/documents/多环境配置.html","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE","/documents/多环境配置.md","/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.md"]],["v-01ef07a3","/documents/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.html","常用命令",["/documents/常用命令.html","/documents/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4","/documents/常用命令.md","/documents/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.md"]],["v-6430ce6c","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html","快速了解",["/documents/快速了解.html","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3","/documents/快速了解.md","/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.md"]],["v-f283941e","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html","数据初始化",["/documents/数据初始化.html","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96","/documents/数据初始化.md","/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.md"]],["v-4331d874","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html","新建子模块",["/documents/新建子模块.html","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97","/documents/新建子模块.md","/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.md"]],["v-eef3d90a","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html","更换数据库",["/documents/更换数据库.html","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93","/documents/更换数据库.md","/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.md"]],["v-23340e69","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html","环境部署",["/documents/环境部署.html","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2","/documents/环境部署.md","/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.md"]],["v-5fe0d252","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html","项目介绍",["/documents/项目介绍.html","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D","/documents/项目介绍.md","/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.md"]],["v-49381304","/documents-athena/","介绍",["/documents-athena/index.html","/documents-athena/README.md"]],["v-150eedcd","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html","OAuth2",["/microservices/OAuth2授权标准.html","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86","/microservices/OAuth2授权标准.md","/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.md"]],["v-5f81e486","/microservices/","介绍",["/microservices/index.html","/microservices/README.md"]],["v-040481e0","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html","容器化技术",["/microservices/容器化技术.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF","/microservices/容器化技术.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.md"]],["v-661abe0c","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html","容器化部署",["/microservices/容器化部署.html","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2","/microservices/容器化部署.md","/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.md"]],["v-1b984d6f","/others/Idea.html","Idea",["/others/Idea","/others/Idea.md"]],["v-3413cbec","/others/MySQL.html","MySQL 常见问题",["/others/MySQL","/others/MySQL.md"]],["v-31203a50","/others/Nacos.html","Nacos 常见问题",["/others/Nacos","/others/Nacos.md"]],["v-25b47c13","/others/","说明",["/others/index.html","/others/README.md"]],["v-34232cb1","/others/Redis.html","Redis 常见问题",["/others/Redis","/others/Redis.md"]],["v-5b482e3b","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html","更新日志",["/others/更新日志.html","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97","/others/更新日志.md","/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.md"]],["v-3706649a","/404.html","",["/404"]]].reduce(((e,[l,t,n,d])=>(e.push({name:l,path:t,component:i.Y,meta:{title:n}},...d.map((e=>({path:e,redirect:t})))),e)),[{name:"404",path:"/:catchAll(.*)",component:i.Y}])},5472:(e,l,t)=>{t.d(l,{D:()=>i});const i=[{title:"",headers:[],path:"/",pathLocale:"/",extraFields:[]},{title:"为什么默认使用PostgreSQL数据库?",headers:[{level:2,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[{level:3,title:"MySQL",slug:"mysql",children:[]},{level:3,title:"PostgreSQL",slug:"postgresql",children:[]}]},{level:2,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[{level:3,title:"[1]、不仅仅是关系型数据库",slug:"_1-、不仅仅是关系型数据库",children:[]},{level:3,title:"[2]、支持地理信息处理扩展",slug:"_2-、支持地理信息处理扩展",children:[]},{level:3,title:"[3]、可以快速构建REST API",slug:"_3-、可以快速构建rest-api",children:[]},{level:3,title:"[4]、支持树状结构",slug:"_4-、支持树状结构",children:[]},{level:3,title:"[5]、有极其强悍的 SQL 编程能力",slug:"_5-、有极其强悍的-sql-编程能力",children:[]},{level:3,title:"[6]、外部数据源支持",slug:"_6-、外部数据源支持",children:[]},{level:3,title:"[7]、没有字符串长度限制",slug:"_7-、没有字符串长度限制",children:[]},{level:3,title:"[8]、支持图结构数据存储",slug:"_8-、支持图结构数据存储",children:[]},{level:3,title:"[9]、支持窗口函数",slug:"_9-、支持窗口函数",children:[]},{level:3,title:"[10]、对索引的支持更强",slug:"_10-、对索引的支持更强",children:[]},{level:3,title:"[11]、集群支持更好",slug:"_11-、集群支持更好",children:[]},{level:3,title:"[12]、事务隔离做的更好",slug:"_12-、事务隔离做的更好",children:[]},{level:3,title:"[13]、对于字符支持更好一些",slug:"_13-、对于字符支持更好一些",children:[]},{level:3,title:"[14]、对表连接支持较完整",slug:"_14-、对表连接支持较完整",children:[]},{level:3,title:"[15]、存储方式支持更大的数据量",slug:"_15-、存储方式支持更大的数据量",children:[]},{level:3,title:"[16]、时间精度更高",slug:"_16-、时间精度更高",children:[]},{level:3,title:"[17]、优化器的功能较完整",slug:"_17-、优化器的功能较完整",children:[]},{level:3,title:"[18]、序列支持更好",slug:"_18-、序列支持更好",children:[]},{level:3,title:"[19]、对子查询支持更好",slug:"_19-、对子查询支持更好",children:[]},{level:3,title:"[20]、增加列更加简单",slug:"_20-、增加列更加简单",children:[]}]},{level:2,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[{level:3,title:"[1]、MySQL比PostgreSQL更流行",slug:"_1-、mysql比postgresql更流行",children:[]},{level:3,title:"[2]、回滚实现更优",slug:"_2-、回滚实现更优",children:[]},{level:3,title:"[3]、在Windows上运行更可靠",slug:"_3-、在windows上运行更可靠",children:[]},{level:3,title:"[4]、线程模式相比进程模式的优势",slug:"_4-、线程模式相比进程模式的优势",children:[]},{level:3,title:"[5]、权限设置上更加完善",slug:"_5-、权限设置上更加完善",children:[]},{level:3,title:"[6]、存储引擎插件化机制",slug:"_6-、存储引擎插件化机制",children:[]},{level:3,title:"[7]、适应24/7运行",slug:"_7-、适应24-7运行",children:[]},{level:3,title:"[8]、更加试用于简单的场景",slug:"_8-、更加试用于简单的场景",children:[]}]},{level:2,title:"总结",slug:"总结",children:[]}],path:"/basic-knowledge/postgresql.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/basic-knowledge/",pathLocale:"/",extraFields:[]},{title:"Spring Data JPA",headers:[{level:2,title:"JPA",slug:"jpa",children:[{level:3,title:"Spring Data Jpa",slug:"spring-data-jpa-1",children:[]},{level:3,title:"Jpa、Hibernate、Spring Data Jpa三者之间的关系",slug:"jpa、hibernate、spring-data-jpa三者之间的关系",children:[]},{level:3,title:"Spring Data Jpa的java配置方案",slug:"spring-data-jpa的java配置方案",children:[]},{level:3,title:"Spring Boot整合Spring Data Jpa",slug:"spring-boot整合spring-data-jpa",children:[]}]},{level:2,title:"Spring Data Jpa的使用",slug:"spring-data-jpa的使用",children:[{level:3,title:"Spring Data Jpa UML类图",slug:"spring-data-jpa-uml类图",children:[]},{level:3,title:"简单的REST CRUD示例",slug:"简单的rest-crud示例",children:[]}]},{level:2,title:"Spring Data Jpa使用详解",slug:"spring-data-jpa使用详解",children:[{level:3,title:"Spring Data查询方法",slug:"spring-data查询方法",children:[]},{level:3,title:"查询方法",slug:"查询方法",children:[]},{level:3,title:"多表查询",slug:"多表查询",children:[]}]},{level:2,title:"审计Auditing",slug:"审计auditing",children:[{level:3,title:"实现AuditorAware接口",slug:"实现auditoraware接口",children:[]},{level:3,title:"启用Jpa审计功能",slug:"启用jpa审计功能",children:[]}]}],path:"/basic-knowledge/spring-data-jpa.html",pathLocale:"/",extraFields:[]},{title:"快速配置",headers:[{level:2,title:"eurynome-cloud-environment.yaml",slug:"eurynome-cloud-environment-yaml",children:[{level:3,title:"herodotus.environment.logstash-server-addr",slug:"herodotus-environment-logstash-server-addr",children:[]},{level:3,title:"herodotus.environment.gateway-server-addr",slug:"herodotus-environment-gateway-server-addr",children:[]},{level:3,title:"herodotus.environment.database.host",slug:"herodotus-environment-database-host",children:[]},{level:3,title:"herodotus.environment.database.port",slug:"herodotus-environment-database-port",children:[]},{level:3,title:"herodotus.environment.database.name",slug:"herodotus-environment-database-name",children:[]},{level:3,title:"herodotus.environment.database.username",slug:"herodotus-environment-database-username",children:[]},{level:3,title:"herodotus.environment.database.password",slug:"herodotus-environment-database-password",children:[]},{level:3,title:"herodotus.environment.redis.host",slug:"herodotus-environment-redis-host",children:[]},{level:3,title:"herodotus.environment.redis.port",slug:"herodotus-environment-redis-port",children:[]},{level:3,title:"herodotus.environment.redis.password",slug:"herodotus-environment-redis-password",children:[]},{level:3,title:"herodotus.environment.kafka.bootstrap-servers",slug:"herodotus-environment-kafka-bootstrap-servers",children:[]},{level:3,title:"herodotus.switch.database.ddl-auto",slug:"herodotus-switch-database-ddl-auto",children:[]},{level:3,title:"herodotus.switch.database.init-mode",slug:"herodotus-switch-database-init-mode",children:[]},{level:3,title:"herodotus.switch.database.use-second-level-cache",slug:"herodotus-switch-database-use-second-level-cache",children:[]},{level:3,title:"herodotus.switch.database.show-sql",slug:"herodotus-switch-database-show-sql",children:[]},{level:3,title:"herodotus.switch.database.format-sql",slug:"herodotus-switch-database-format-sql",children:[]},{level:3,title:"herodotus.switch.database.generate-statistics",slug:"herodotus-switch-database-generate-statistics",children:[]},{level:3,title:"herodotus.switch.swagger.enabled",slug:"herodotus-switch-swagger-enabled",children:[]},{level:3,title:"herodotus.management.log-center.server-addr",slug:"herodotus-management-log-center-server-addr",children:[]},{level:3,title:"herodotus.management.log-center.loggers",slug:"herodotus-management-log-center-loggers",children:[]}]}],path:"/configurations/",pathLocale:"/",extraFields:[]},{title:"系统配置",headers:[],path:"/configurations/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"组件配置",headers:[{level:2,title:"Spring Boot",slug:"spring-boot",children:[{level:3,title:"v2.5.5",slug:"v2-5-5",children:[]}]},{level:2,title:"Camunda",slug:"camunda",children:[{level:3,title:"v7.15.0",slug:"v7-15-0",children:[]}]}],path:"/configurations/%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],path:"/documents/",pathLocale:"/",extraFields:[]},{title:"依赖组件",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"IOC组件",slug:"ioc组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],path:"/documents/%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6.html",pathLocale:"/",extraFields:[]},{title:"前端问题",headers:[{level:2,title:"暂时不要升级的依赖包",slug:"暂时不要升级的依赖包",children:[]},{level:2,title:"问题一:升级依赖包时出错",slug:"问题一-升级依赖包时出错",children:[{level:3,title:"(1)解决办法一",slug:"_1-解决办法一",children:[]},{level:3,title:"(2)解决办法二",slug:"_2-解决办法二",children:[]}]},{level:2,title:"问题二:运行命令是出现禁止脚本运行的错误",slug:"问题二-运行命令是出现禁止脚本运行的错误",children:[]}],path:"/documents/%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98.html",pathLocale:"/",extraFields:[]},{title:"多环境配置",headers:[{level:2,title:"什么是多环境配置?",slug:"什么是多环境配置",children:[]},{level:2,title:"Maven 多环境配置",slug:"maven-多环境配置",children:[]},{level:2,title:"Spring Boot 多环境配置",slug:"spring-boot-多环境配置",children:[{level:3,title:"Spring Boot 环境设置机制",slug:"spring-boot-环境设置机制",children:[]},{level:3,title:"配置多环境",slug:"配置多环境",children:[]},{level:3,title:"指定环境",slug:"指定环境",children:[]},{level:3,title:"单一文件写法",slug:"单一文件写法",children:[]}]},{level:2,title:"Nacos 多环境配置",slug:"nacos-多环境配置",children:[{level:3,title:"Data Id",slug:"data-id",children:[]},{level:3,title:"Group",slug:"group",children:[]},{level:3,title:"Namespace",slug:"namespace",children:[]}]},{level:2,title:"Docker和K8S 多环境配置",slug:"docker和k8s-多环境配置",children:[]},{level:2,title:"Eurynome Cloud 的多环境配置",slug:"eurynome-cloud-的多环境配置",children:[{level:3,title:"Eurynome Cloud 中的Maven多环境配置",slug:"eurynome-cloud-中的maven多环境配置",children:[]},{level:3,title:"Eurynome Cloud 中的Spring Boot和Nacos多环境配置",slug:"eurynome-cloud-中的spring-boot和nacos多环境配置",children:[]}]}],path:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html",pathLocale:"/",extraFields:[]},{title:"常用命令",headers:[{level:2,title:"前端工程涉及命令",slug:"前端工程涉及命令",children:[{level:3,title:"指定包",slug:"指定包",children:[]},{level:3,title:"依赖工程内组件",slug:"依赖工程内组件",children:[]},{level:3,title:"根目录添加依赖",slug:"根目录添加依赖",children:[]},{level:3,title:"升级依赖包",slug:"升级依赖包",children:[]},{level:3,title:"编译所有组件",slug:"编译所有组件",children:[]},{level:3,title:"清空组件 dist",slug:"清空组件-dist",children:[]},{level:3,title:"清除组件中的 node_modules",slug:"清除组件中的-node-modules",children:[]},{level:3,title:"让各个组件中重新关联依赖包",slug:"让各个组件中重新关联依赖包",children:[]},{level:3,title:"提交代码",slug:"提交代码",children:[]}]}],path:"/documents/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.html",pathLocale:"/",extraFields:[]},{title:"快速了解",headers:[{level:2,title:"项目简介",slug:"项目简介",children:[]},{level:2,title:"主要特性",slug:"主要特性",children:[]},{level:2,title:"技术选型",slug:"技术选型",children:[]},{level:2,title:"内置功能",slug:"内置功能",children:[]}],path:"/documents/%E5%BF%AB%E9%80%9F%E4%BA%86%E8%A7%A3.html",pathLocale:"/",extraFields:[]},{title:"数据初始化",headers:[{level:2,title:"知识铺垫",slug:"知识铺垫",children:[{level:3,title:"基础原理",slug:"基础原理",children:[]},{level:3,title:"Spring Data JPA 更换数据库",slug:"spring-data-jpa-更换数据库",children:[]},{level:3,title:"Spring Data JPA 初始化数据库",slug:"spring-data-jpa-初始化数据库",children:[]},{level:3,title:"特别说明",slug:"特别说明",children:[]}]},{level:2,title:"操作步骤",slug:"操作步骤",children:[{level:3,title:"步骤一:创建数据表",slug:"步骤一-创建数据表",children:[]},{level:3,title:"步骤二:初始默认数据",slug:"步骤二-初始默认数据",children:[]},{level:3,title:"步骤三:回置配置",slug:"步骤三-回置配置",children:[]}]},{level:2,title:"配置参数对应关系",slug:"配置参数对应关系",children:[]}],path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",pathLocale:"/",extraFields:[]},{title:"新建子模块",headers:[{level:2,title:"在现有工程内,新建常规模块",slug:"在现有工程内-新建常规模块",children:[{level:3,title:"手工新建子模块(非微服务模块)",slug:"手工新建子模块-非微服务模块",children:[]},{level:3,title:"IDEA新建子模块(非微服务模块)",slug:"idea新建子模块-非微服务模块",children:[]}]},{level:2,title:"在现有工程内,新建微服务模块",slug:"在现有工程内-新建微服务模块",children:[{level:3,title:"手工新建子模块(非常规模块)",slug:"手工新建子模块-非常规模块",children:[]},{level:3,title:"IDEA新建子模块(非常规模块)",slug:"idea新建子模块-非常规模块",children:[]}]},{level:2,title:"在现有工程外,新建微服务独立模块工程",slug:"在现有工程外-新建微服务独立模块工程",children:[]}],path:"/documents/%E6%96%B0%E5%BB%BA%E5%AD%90%E6%A8%A1%E5%9D%97.html",pathLocale:"/",extraFields:[]},{title:"更换数据库",headers:[{level:2,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:2,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:2,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:2,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:2,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]},{level:2,title:"步骤六:修改工作流服务数据库类型",slug:"步骤六-修改工作流服务数据库类型",children:[]}],path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",pathLocale:"/",extraFields:[]},{title:"环境部署",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"后端运行",slug:"后端运行",children:[{level:3,title:"[1]、检出代码创建工程",slug:"_1-、检出代码创建工程",children:[]},{level:3,title:"[2]、创建引用数据数据库",slug:"_2-、创建引用数据数据库",children:[]},{level:3,title:"[3]、创建或导入Nacos配置",slug:"_3-、创建或导入nacos配置",children:[]},{level:3,title:"[4]、修改Nacos配置",slug:"_4-、修改nacos配置",children:[]},{level:3,title:"[5]、修改pom.xml配置",slug:"_5-、修改pom-xml配置",children:[]},{level:3,title:"[6]、编译代码",slug:"_6-、编译代码",children:[]},{level:3,title:"[7]、数据库创建和数据初始化",slug:"_7-、数据库创建和数据初始化",children:[]},{level:3,title:"[8]、运行服务模块",slug:"_8-、运行服务模块",children:[]},{level:3,title:"[9]、运行ELK(可选)",slug:"_9-、运行elk-可选",children:[]},{level:3,title:"[10]、以Docker方式部署(可选)",slug:"_10-、以docker方式部署-可选",children:[]},{level:3,title:"[11]、部署验证",slug:"_11-、部署验证",children:[]}]},{level:2,title:"前端运行",slug:"前端运行",children:[{level:3,title:"[1]、检出代码",slug:"_1-、检出代码",children:[]},{level:3,title:"[2]、修改配置",slug:"_2-、修改配置",children:[]},{level:3,title:"[3]、前端运行命令",slug:"_3-、前端运行命令",children:[]},{level:3,title:"[4]、运行验证",slug:"_4-、运行验证",children:[]}]}],path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"项目介绍",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[{level:2,title:"Athena 是什么?",slug:"athena-是什么",children:[]},{level:2,title:"Athena 不是什么?",slug:"athena-不是什么",children:[]},{level:2,title:"为什么 Athena 和 Eurynome Cloud 共享代码?",slug:"为什么-athena-和-eurynome-cloud-共享代码",children:[]},{level:2,title:"为什么构建 Athena?",slug:"为什么构建-athena",children:[]}],path:"/documents-athena/",pathLocale:"/",extraFields:[]},{title:"OAuth2",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",pathLocale:"/",extraFields:[]},{title:"介绍",headers:[],path:"/microservices/",pathLocale:"/",extraFields:[]},{title:"容器化技术",headers:[{level:2,title:"Docker能解决什么问题?",slug:"docker能解决什么问题",children:[{level:3,title:"麻烦的环境配置",slug:"麻烦的环境配置",children:[]},{level:3,title:"现在的应用程序",slug:"现在的应用程序",children:[]},{level:3,title:"新架构的挑战",slug:"新架构的挑战",children:[]},{level:3,title:"统一的管理",slug:"统一的管理",children:[]}]},{level:2,title:"“容器”",slug:"容器",children:[{level:3,title:"虚拟化技术",slug:"虚拟化技术",children:[]},{level:3,title:"容器技术",slug:"容器技术",children:[]}]},{level:2,title:"Docker",slug:"docker",children:[{level:3,title:"Docker架构",slug:"docker架构",children:[]},{level:3,title:"Docker底层实现",slug:"docker底层实现",children:[]},{level:3,title:"Docker核心技术",slug:"docker核心技术",children:[]},{level:3,title:"Docker VS VM",slug:"docker-vs-vm",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html",pathLocale:"/",extraFields:[]},{title:"容器化部署",headers:[{level:2,title:"本地容器部署",slug:"本地容器部署",children:[{level:3,title:"[1]、本地Docker安装(Windows版)",slug:"_1-、本地docker安装-windows版",children:[]},{level:3,title:"[2]、安装配置MySQL",slug:"_2-、安装配置mysql",children:[]},{level:3,title:"[2]、安装配置PostgreSQL",slug:"_2-、安装配置postgresql",children:[]},{level:3,title:"[3]、安装配置Redis",slug:"_3-、安装配置redis",children:[]},{level:3,title:"[4]、部署Kafka、Zookeeper、Nacos、ELK、Sentinel Dashboard",slug:"_4-、部署kafka、zookeeper、nacos、elk、sentinel-dashboard",children:[]},{level:3,title:"[5]、部署Skywalking",slug:"_5-、部署skywalking",children:[]},{level:3,title:"[6]、服务打包部署",slug:"_6-、服务打包部署",children:[]}]},{level:2,title:"服务器容器部署",slug:"服务器容器部署",children:[]},{level:2,title:"Docker打包设计",slug:"docker打包设计",children:[{level:3,title:"Eurynome Cloud Docker 打包设计初衷",slug:"eurynome-cloud-docker-打包设计初衷",children:[]},{level:3,title:"Eurynome Cloud Docker 打包的设计",slug:"eurynome-cloud-docker-打包的设计",children:[]},{level:3,title:"Eurynome Cloud Docker 打包使用方法",slug:"eurynome-cloud-docker-打包使用方法",children:[]}]}],path:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2.html",pathLocale:"/",extraFields:[]},{title:"Idea",headers:[{level:2,title:"[1]、found character '@' that cannot start any token. (Do not use @ for indentation)",slug:"_1-、found-character-that-cannot-start-any-token-do-not-use-for-indentation",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]}]}],path:"/others/Idea.html",pathLocale:"/",extraFields:[]},{title:"MySQL 常见问题",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],path:"/others/MySQL.html",pathLocale:"/",extraFields:[]},{title:"Nacos 常见问题",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],path:"/others/Nacos.html",pathLocale:"/",extraFields:[]},{title:"说明",headers:[],path:"/others/",pathLocale:"/",extraFields:[]},{title:"Redis 常见问题",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],path:"/others/Redis.html",pathLocale:"/",extraFields:[]},{title:"更新日志",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-5-0",children:[]},{level:2,title:"v2.5.4.140",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}]},5220:(e,l,t)=>{t.d(l,{H:()=>i});const i={base:"/eurynome-cloud/",lang:"zh-CN",title:"Eurynome Cloud",description:"Eurynome Cloud, 在线文档, 微服务, 微服务架构, Spring Boot,Spring Cloud,Spring Cloud Alibaba, Spring Security, OAuth 2, Skywalking, Nacos",head:[["link",{rel:"icon",href:"/eurynome-cloud/images/logo.png"}],["meta",{name:"keywords",content:"Eurynome Cloud,微服务,Spring Boot,Spirng Cloud,Spring Cloud Alibaba,Spring Security,OAuth2,Nacos,Skywalking"}],["script",{},'var _hmt = _hmt || [];\n (function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?376190fed0f613f413a39d7aa19f387d";\n var s = document.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(hm, s);\n })();']],locales:{}}},2232:(e,l,t)=>{t.d(l,{f:()=>i});const i={logo:"/images/logo.png",darkMode:!0,lastUpdatedText:"更新时间",contributorsText:"贡献者",navbar:[{text:"指南",link:"/documents/"},{text:"配置参考",link:"/configurations/"},{text:"单体版",link:"/documents-athena/"},{text:"微服务技术栈",link:"/microservices/"},{text:"了解更多",children:[{text:"延伸",children:[{text:"了解基础知识",link:"/basic-knowledge/"},{text:"了解PostgreSQL",link:"/basic-knowledge/postgresql.md"}]},{text:"帮助",children:[{text:"我要提问",link:"https://gitee.com/herodotus/eurynome-cloud/issues"},{text:"常见问题",link:"/others/README.md"},{text:"更新日志",link:"/others/更新日志.md"},{text:"加入QQ群",link:"https://jq.qq.com/?_wv=1027&k=bIerJVy8"}]}]},{text:"Gitee",children:[{text:"后端源码",link:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://gitee.com/herodotus/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://gitee.com/herodotus/herodotus-cloud-athena",target:"_blank"}]},{text:"Github",children:[{text:"后端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud",target:"_blank"},{text:"前端源码",link:"https://github.com/herodotus-cloud/eurynome-cloud-ui",target:"_blank"},{text:"单体版源码",link:"https://github.com/herodotus-cloud/herodotus-cloud-athena",target:"_blank"}]}],sidebar:{"/documents/":[{text:"指南",children:["/documents/README.md","/documents/快速了解.md","/documents/项目介绍.md","/documents/环境部署.md"]},{text:"后端手册",children:["/documents/数据初始化.md","/documents/更换数据库.md","/documents/多环境配置.md","/documents/新建子模块.md"]},{text:"前端手册",children:["/documents/依赖组件.md","/documents/常用命令.md","/documents/前端问题.md"]}],"/documents-athena/":[{text:"单体版",children:["/documents-athena/README.md"]}],"/microservices/":[{text:"微服务技术栈",children:["/microservices/README.md","/microservices/OAuth2授权标准.md","/microservices/容器化技术.md","/microservices/容器化部署.md"]}],"/basic-knowledge/":[{text:"基础知识",children:["/basic-knowledge/README.md","/basic-knowledge/postgresql.md","/basic-knowledge/spring-data-jpa.md"]}],"/configurations/":[{text:"配置参考",children:["/configurations/README.md","/configurations/系统配置.md","/configurations/组件配置.md"]}],"/others/":[{text:"其它内容",children:["/others/README.md","/others/Idea.md","/others/Nacos.md","/others/Redis.md","/others/MySQL.md","/others/更新日志.md"]}]},locales:{"/":{selectLanguageName:"English"}},repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,contributors:!0,notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"}}},e=>{e.O(0,[512,567],(()=>(5698,e(e.s=5698)))),e.O()}]); \ No newline at end of file diff --git a/documents/guides/assets/js/runtime~app.af71715b.js b/documents/guides/assets/js/runtime~app.af71715b.js deleted file mode 100644 index 3cde476f8..000000000 --- a/documents/guides/assets/js/runtime~app.af71715b.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,r,t,o={},a={};function n(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={exports:{}};return o[e].call(t.exports,t,t.exports,n),t.exports}n.m=o,e=[],n.O=(r,t,o,a)=>{if(!t){var c=1/0;for(i=0;i=a)&&Object.keys(n.O).every((e=>n.O[e](t[f])))?t.splice(f--,1):(d=!1,a0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[t,o,a]},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>"assets/js/"+({4:"v-6430ce6c",88:"v-3706649a",90:"v-3413cbec",129:"v-661abe0c",152:"v-23340e69",188:"v-5fe0d252",201:"v-34232cb1",243:"v-cff5f184",247:"v-9a0d6c6c",365:"v-040481e0",398:"v-31203a50",446:"v-25b47c13",509:"v-8daa1a0e",658:"v-f283941e",701:"v-eef3d90a",779:"v-150eedcd",781:"v-c0f957a0",861:"v-344b5769",925:"v-49381304",951:"v-5f81e486",961:"v-5b482e3b",967:"v-4cbee12b",979:"v-4331d874"}[e]||e)+"."+{4:"1de67da1",88:"7c7f390b",90:"4acd2b80",129:"31ad52d8",152:"7d8408c7",188:"2bcef0c2",201:"3b1f7752",243:"792b970a",247:"b218c0df",293:"b4539685",365:"06a9e811",398:"fe2fb675",446:"494fc093",491:"972827fa",509:"5c646a5b",658:"d658da47",701:"f3193fe7",779:"034efb86",781:"2d350416",861:"298808d9",925:"5f7bf04f",951:"8aef46c8",961:"84072c08",967:"c9497cfe",979:"9dd6945c"}[e]+".js",n.miniCssF=e=>"assets/css/styles.03bfbc71.css",n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="eurynome-cloud-document:",n.l=(e,o,a,c)=>{if(r[e])r[e].push(o);else{var d,f;if(void 0!==a)for(var s=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(v);var a=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),a&&a.forEach((e=>e(o))),t)return t(o)},v=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),f&&document.head.appendChild(d)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/eurynome-cloud/",(()=>{var e={523:0,512:0};n.f.j=(r,t)=>{var o=n.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(/^5(12|23)$/.test(r))e[r]=0;else{var a=new Promise(((t,a)=>o=e[r]=[t,a]));t.push(o[2]=a);var c=n.p+n.u(r),d=new Error;n.l(c,(t=>{if(n.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+r+" failed.\n("+a+": "+c+")",d.name="ChunkLoadError",d.type=a,d.request=c,o[1](d)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,t)=>{var o,a,[c,d,f]=t,s=0;if(c.some((r=>0!==e[r]))){for(o in d)n.o(d,o)&&(n.m[o]=d[o]);if(f)var i=f(n)}for(r&&r(t);s{"use strict";var e,r,t,a={},o={};function d(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return a[e].call(t.exports,t,t.exports,d),t.exports}d.m=a,e=[],d.O=(r,t,a,o)=>{if(!t){var c=1/0;for(s=0;s=o)&&Object.keys(d.O).every((e=>d.O[e](t[f])))?t.splice(f--,1):(n=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,a,o]},d.d=(e,r)=>{for(var t in r)d.o(r,t)&&!d.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((r,t)=>(d.f[t](e,r),r)),[])),d.u=e=>"assets/js/"+({4:"v-6430ce6c",88:"v-3706649a",90:"v-3413cbec",129:"v-661abe0c",152:"v-23340e69",188:"v-5fe0d252",189:"v-3297977c",201:"v-34232cb1",216:"v-d0b8a61e",243:"v-cff5f184",247:"v-9a0d6c6c",295:"v-1b984d6f",334:"v-4c5db979",365:"v-040481e0",398:"v-31203a50",446:"v-25b47c13",509:"v-8daa1a0e",658:"v-f283941e",701:"v-eef3d90a",779:"v-150eedcd",781:"v-c0f957a0",812:"v-01ef07a3",861:"v-344b5769",892:"v-b68b64a4",925:"v-49381304",934:"v-05e1cd7a",939:"v-392e2ac6",951:"v-5f81e486",961:"v-5b482e3b",979:"v-4331d874"}[e]||e)+"."+{4:"1de67da1",88:"7c7f390b",90:"b35dffed",129:"31ad52d8",152:"640a11df",188:"3d9cf07d",189:"2395e7d1",201:"a16c51b9",216:"6ac01707",243:"792b970a",247:"b218c0df",293:"b4539685",295:"29c165db",334:"0070dff2",365:"06a9e811",398:"7c6f0960",446:"78dfea1d",491:"972827fa",509:"5c646a5b",658:"9f2d9416",701:"8d9012b9",779:"1b8f991c",781:"e5ad57f0",812:"0845c3b1",861:"298808d9",892:"fc7bff93",925:"5f7bf04f",934:"bd8a97fc",939:"e53e54bf",951:"8aef46c8",961:"35896057",979:"9dd6945c"}[e]+".js",d.miniCssF=e=>"assets/css/styles.03bfbc71.css",d.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="eurynome-cloud-document:",d.l=(e,a,o,c)=>{if(r[e])r[e].push(a);else{var n,f;if(void 0!==o)for(var v=document.getElementsByTagName("script"),s=0;s{n.onerror=n.onload=null,clearTimeout(u);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(a))),t)return t(a)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),f&&document.head.appendChild(n)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/eurynome-cloud/",(()=>{var e={523:0,512:0};d.f.j=(r,t)=>{var a=d.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^5(12|23)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>a=e[r]=[t,o]));t.push(a[2]=o);var c=d.p+d.u(r),n=new Error;d.l(c,(t=>{if(d.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;n.message="Loading chunk "+r+" failed.\n("+o+": "+c+")",n.name="ChunkLoadError",n.type=o,n.request=c,a[1](n)}}),"chunk-"+r,r)}},d.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[c,n,f]=t,v=0;if(c.some((r=>0!==e[r]))){for(a in n)d.o(n,a)&&(d.m[a]=n[a]);if(f)var s=f(d)}for(r&&r(t);v{a.r(e),a.d(e,{data:()=>s});const s={key:"v-01ef07a3",path:"/documents/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.html",title:"常用命令",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"前端工程涉及命令",slug:"前端工程涉及命令",children:[{level:3,title:"指定包",slug:"指定包",children:[]},{level:3,title:"依赖工程内组件",slug:"依赖工程内组件",children:[]},{level:3,title:"根目录添加依赖",slug:"根目录添加依赖",children:[]},{level:3,title:"升级依赖包",slug:"升级依赖包",children:[]},{level:3,title:"编译所有组件",slug:"编译所有组件",children:[]},{level:3,title:"清空组件 dist",slug:"清空组件-dist",children:[]},{level:3,title:"清除组件中的 node_modules",slug:"清除组件中的-node-modules",children:[]},{level:3,title:"让各个组件中重新关联依赖包",slug:"让各个组件中重新关联依赖包",children:[]},{level:3,title:"提交代码",slug:"提交代码",children:[]}]}],filePathRelative:"documents/常用命令.md",git:{updatedTime:null,contributors:[]}}},7029:(n,e,a)=>{a.r(e),a.d(e,{default:()=>l});const s=(0,a(6252).uE)('

常用命令

前端工程涉及命令

指定包

指定包,在某个包下执行 yarn 命令

yarn ws:**\n\n// 例如:\n// 添加包(从npm中添加)\nyarn ws:example add lodash -D\n\n// 删除包\nyarn ws:example remove lodash\n\n// 运行example\nyarn ws:example serve\n
1
2
3
4
5
6
7
8
9
10
11

依赖工程内组件

添加本工程中的组件作为依赖包(尚未上传至 npm)

// 将工程中的h-button 添加至example中\n// 注意:不支持批量添加多个,要一个一个加\nlerna add @hecate/h-button --scope @hecate/example\n\n// 删除本工程中的组件,使用yarn命令即可\nyarn ws:example remove @hecate/h-button\n
1
2
3
4
5
6

根目录添加依赖

在根目录添加依赖包

// -W 意思是指工作区,想要操作工程级的包,这个参数不能缺\n// -D 指定devDependencies的意思\n// 添加组件\nyarn add lodash -D -W\n\n// 删除组件\nyarn add lodash -W\n
1
2
3
4
5
6
7

升级依赖包

yarn upgrade-interactive --latest\n\n// 升级全局依赖包\nyarn global upgrade-interactive --latest\n
1
2
3
4

编译所有组件

lerna run lib\n
1

清空组件 dist

lerna run clean\n
1

清除组件中的 node_modules

lerna clean\n
1

让各个组件中重新关联依赖包

lerna bootstrap 或 yarn install\n
1

提交代码

yarn push\n
1
',23),l={render:function(n,e){return s}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-05e1cd7a.bd8a97fc.js b/documents/guides/assets/js/v-05e1cd7a.bd8a97fc.js new file mode 100644 index 000000000..35bccc22a --- /dev/null +++ b/documents/guides/assets/js/v-05e1cd7a.bd8a97fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[934],{9131:(e,r,a)=>{a.r(r),a.d(r,{data:()=>n});const n={key:"v-05e1cd7a",path:"/configurations/%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE.html",title:"组件配置",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"Spring Boot",slug:"spring-boot",children:[{level:3,title:"v2.5.5",slug:"v2-5-5",children:[]}]},{level:2,title:"Camunda",slug:"camunda",children:[{level:3,title:"v7.15.0",slug:"v7-15-0",children:[]}]}],filePathRelative:"configurations/组件配置.md",git:{updatedTime:null,contributors:[]}}},7745:(e,r,a)=>{a.r(r),a.d(r,{default:()=>c});var n=a(6252);const t=(0,n.uE)('

组件配置

Spring Boot

v2.5.5

',3),i={href:"https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties",target:"_blank",rel:"noopener noreferrer"},o=(0,n.Uk)("官网"),d=(0,n._)("h2",{id:"camunda",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#camunda","aria-hidden":"true"},"#"),(0,n.Uk)(" Camunda")],-1),l=(0,n._)("h3",{id:"v7-15-0",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#v7-15-0","aria-hidden":"true"},"#"),(0,n.Uk)(" v7.15.0")],-1),h={href:"https://docs.camunda.org/manual/7.15/user-guide/spring-boot-integration/configuration/",target:"_blank",rel:"noopener noreferrer"},u=(0,n.Uk)("官网"),c={render:function(e,r){const a=(0,n.up)("OutboundLink");return(0,n.wg)(),(0,n.iD)(n.HY,null,[t,(0,n._)("p",null,[(0,n._)("a",i,[o,(0,n.Wm)(a)])]),d,l,(0,n._)("p",null,[(0,n._)("a",h,[u,(0,n.Wm)(a)])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-150eedcd.034efb86.js b/documents/guides/assets/js/v-150eedcd.034efb86.js deleted file mode 100644 index 01e93f56d..000000000 --- a/documents/guides/assets/js/v-150eedcd.034efb86.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[779],{2236:(s,a,e)=>{e.r(a),e.d(a,{data:()=>n});const n={key:"v-150eedcd",path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",title:"OAuth2",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],filePathRelative:"microservices/OAuth2授权标准.md",git:{updatedTime:null,contributors:[]}}},6372:(s,a,e)=>{e.r(a),e.d(a,{default:()=>i});const n=(0,e(6252).uE)('

OAuth2

介绍

OAuth 全称是 Open Authentication

开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

目前使用最广泛的是 OAuth 2.0OAuth 1.0 已经被废弃了。本文中的OAuth都是指 OAuth 2.0

OAuth2授权流程中的角色

  • 资源拥有者(resource owner):能授权访问受保护资源的一个实体,可以是一个人,那我们称之为最终用户;
  • 资源服务器(resource server):存储受保护资源,客户端通过access token请求资源,资源服务器响应受保护资源给客户端;
  • 授权服务器(authorization server):成功验证资源拥有者并获取授权之后,授权服务器颁发授权令牌(Access Token)给客户端。
  • 客户端(client):第三方应用,也可以是它自己的官方应用;其本身不存储资源,而是资源拥有者授权通过后,使用它的授权(授权令牌)访问受保护资源,然后客户端把相应的数据展示出来/提交到服务器。

令牌与密码

令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

  • (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。
  • (2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。
  • (3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

注意

只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

四种模式

OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 协议根据使用不同的适用场景,规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。

  • 授权码模式(Authorization Code Grant
  • 隐式模式(Implicit Grant
  • 密码模式式(Resource Owner Password Credentials Grant):
  • 客户端凭证模式(Client Credentials Grant

授权码模式(Authorization Code Grant)

授权码授权模式主要流程如下图所示:

授权码模式流程

  • 第一步:用户访问页面或者出发认证地址
  • 第二步:访问的页面将请求重定向到认证服务器
  • 第三步:用户登录成功只有,认证服务器向用户展示授权页面,等待用户授权
  • 第四步:用户授权,认证服务器生成一个 code 和带上 client_id 发送给应用服务器。然后,应用服务器拿到 code,并用 client_id 去后台查询对应的client_secret
  • 第五步:将 codeclient_idclient_secret传给认证服务器换取 access_tokenrefresh_token
  • 第六步:将 access_tokenrefresh_token 传给应用服务器
  • 第七步:验证 token,访问真正的资源页面

授权码授权模式优劣势:

授权码模式优劣势

隐式模式(Implicit Grant)

隐式模式主要流程如下图所示:

隐式模式流程

  • 第一步:用户访问页面时,重定向到认证服务器。
  • 第二步:认证服务器给用户一个认证页面,等待用户授权。
  • 第三步:用户授权,认证服务器想应用页面返回 Token
  • 第四步:验证 Token,访问真正的资源页面

隐式模式优劣势:

隐式模式优劣势

密码模式(Resource Owner Password Credentials Grant)

密码模式主要流程如下图所示:

密码流程

  • 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
  • 第二步:应用页面那种这个信息去认证服务器授权
  • 第三步:认证服务器授权通过,拿到token,访问真正的资源页面

说明

优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)

缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)

应用场景:自家公司搭建的认证服务器

客户端凭证模式(Client Credentials Grant)

客户端凭证模式主要流程如下图所示:

客户端凭证流程

  • 第一步:用户访问应用客户端
  • 第二步:通过客户端定义的验证方法,拿到token,无需授权
  • 第三步:访问资源服务器A
  • 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。

说明

这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。

因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

模式验证

注意

以下内容中,所有URL地址一定要使用IP访问。如果是本地环境,那么也要使用本机真实的IP,不要使用 127.0.0.1 或者 localhost。切记!!!

说明

不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这 是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。

即:要在系统中为该客户端分配ID(client ID)和客户端密钥(client secret),换句话说 oauth-client-details 表中要有该客户端对应的数据

授权码模式验证

指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

第一步:客户端向资源端申请code

说明

这里所说的客户端,是指任意想要使用 Eurynome Cloud 的应用系统。

主要逻辑:假设,某网站或者系统(客户端),我们称之为 A 。Eurynome Cloud 向A网站提供一个认证链接,A 网站会把这个连接做成一个按钮,用户点击后就会根据这个连接跳转到 Eurynome Cloud,在 Eurynome Cloud 认证通过后授权用户数据给 A 网站使用。

上面所说的连接,就是如下的认证连接:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=code&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://localhost:9999/passport/login&scope=all\n
1

参数

  • response_type:必选。值固定为“code”。
  • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
  • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
  • redirect_uri:必选参数(授权成功后的重定向地址)
  • scope:可选参数(表示授权范围)

第二步:资源端返回code给客户端

可以采用以下两种方式进行验证:

  • 第一种:如果有想要接入的系统,那么就在这个系统中做一个图标按钮,点击后跳转到上面的地址。(比如:很多系统都支持微信登录,那么在页面上就会有一个微信的图标按钮,点击后跳转到一个地址)
  • 第二种:如果没有想接入的系统,可以将上面的地址输入到浏览器,获取信息后配合 Postman 等工具进行验证。

下面采用第二种浏览器的方式

在浏览器中输入上面的地址,会跳出如下登录界面。

流程1

输入用户名、密码和验证码进行用户验证。

可以使用系统默认用户:system 密码:123456

登录成功后,会跳转到授权页面进行授权,如下图所示:

流程2

授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的code, 如下所示。这个地址就是系统中设置的 redirect_uri

http://localhost:9999/passport/login?code=P6dxH5\n
1

第三步:客户端根据code向资源端请求令牌

在你习惯的工具中,输入下面的地址:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token?client_id=010e659a-4005-4610-98f6-00b822f4758e&client_secret=04165a07-cffd-45cf-a20a-1c2a69f65fb1&grant_type=authorization_code&code=P6dxH5&scope=all&redirect_uri=http://localhost:9999/passport/login\n
1

参数

  • grant_type:必选参数(固定值“authorization_code”)
  • code : 必选参数(上一步Response 中响应的code,避免在请求的过程中被篡改)
  • redirect_uri:必选参数(必须和Request中提供的redirect_uri相同)
  • client_id:必选参数(必须和上一步Request中提供的client_id相同,不能token和授权码请求的第三方应用不一致)

下图以 Postman 为例:

流程3

第四步:资源端向客户端返回令牌及明细

返回如下所示 Token 则表示验证成功

{\n    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MzE2NjA5ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiNGJiNTQzNDUtZGQyNC00MzQ3LThkMjYtNjU1ZTVkNDA4NWY3IiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.BdTMSL2QTxyWe4Xs6piAS1Ldk23zUfhlG5_dA0xaNFA",\n    "token_type": "bearer",\n    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiI0YmI1NDM0NS1kZDI0LTQzNDctOGQyNi02NTVlNWQ0MDg1ZjciLCJleHAiOjE2MzQyMDk3ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiOTQzYzVlOGQtNjVjZC00YmJhLTlmNjMtY2Y3MTRhNDQ2ZDdkIiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.JIQ7N_rqsbhSb1M9voFhbAJq9QmPoKbirZ2lV_AYkYM",\n    "expires_in": 43199,\n    "scope": "all",\n    "license": "herodotus-cloud",\n    "openid": "1",\n    "jti": "4bb54345-dd24-4347-8d26-655e5d4085f7"\n}\n
1
2
3
4
5
6
7
8
9
10

参数

  • access_token:访问令牌(服务器端加密过的字符串)。
  • refresh_token:刷新令牌(刷新令牌的字符串)
  • expires_in:过期时间(令牌的过期时间)

隐式模式验证

有些 Web 应用是纯前端应用,没有后端。这时就不能用上面的方式了,必须将令牌储存在前端。RFC 6749 就规定了第二种方式,允许直接向前端颁发令牌。这种方式没有授权码这个中间步骤,所以称为(授权码)"隐藏式"(implicit)

第一步:客户端向资源端申请Token

在浏览器中输入如下的认证连接:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=token&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://www.baidu.com&scope=all\n
1

参数

  • response_type:必选。值固定为“token”。
  • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
  • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
  • redirect_uri:必选参数(授权成功后的重定向地址)
  • scope:可选参数(表示授权范围)

第二步:到认证服务器认证

在浏览器中输入上面的地址,会跳出如下登录界面。

流程1

输入用户名、密码和验证码进行用户验证。

可以使用系统默认用户:system 密码:123456

登录成功后,会跳转到授权页面进行授权,如下图所示:

流程2

第三步:资源端转向客户端并传递token

授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的token, 如下所示。这个地址就是系统中设置的 redirect_uri

https://www.baidu.com/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MzE2NjA5ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiNGJiNTQzNDUtZGQyNC00MzQ3LThkMjYtNjU1ZTVkNDA4NWY3IiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.BdTMSL2QTxyWe4Xs6piAS1Ldk23zUfhlG5_dA0xaNFA&token_type=bearer&expires_in=42511&license=herodotus-cloud&openid=1&jti=4bb54345-dd24-4347-8d26-655e5d4085f7\n
1

上面 URL 中,access_token参数就是令牌

密码模式验证

如果你高度信任某个应用,RFC 6749 也允许用户把用户名和密码,直接告诉该应用。该应用就使用你的密码,申请令牌,这种方式称为"密码式"(password)。

Eurynome Cloud 前端就是使用密码模式进行登录

直接使用如下地址获取Token即可

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token\n
1

操作如下图所示:

流程4

参数

  • username:必选参数(登录用户名)
  • password:必选参数(登录用户密码)
  • grant_type:必选参数(固定值“password”)
  • client_id:必选参数
  • client_secret:必选参数
  • scope:可选参数(表示授权范围)

客户端凭证模式验证

这种模式直接根据client的id和密钥即可获取token,无需用户参与 这种模式比较合适消费api的后端服务,比如拉取一组用户信息等

直接使用如下地址获取Token即可

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token\n
1

操作如下图所示:

流程5

参数

  • grant_type:必选参数(固定值“client_credentials”)
  • client_id:必选参数
  • client_secret:必选参数
  • scope:可选参数(表示授权范围)
',99),i={render:function(s,a){return n}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-150eedcd.1b8f991c.js b/documents/guides/assets/js/v-150eedcd.1b8f991c.js new file mode 100644 index 000000000..213f0733c --- /dev/null +++ b/documents/guides/assets/js/v-150eedcd.1b8f991c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[779],{2236:(s,e,a)=>{a.r(e),a.d(e,{data:()=>n});const n={key:"v-150eedcd",path:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html",title:"OAuth2",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"介绍",slug:"介绍",children:[{level:3,title:"OAuth2授权流程中的角色",slug:"oauth2授权流程中的角色",children:[]},{level:3,title:"令牌与密码",slug:"令牌与密码",children:[]}]},{level:2,title:"四种模式",slug:"四种模式",children:[{level:3,title:"授权码模式(Authorization Code Grant)",slug:"授权码模式-authorization-code-grant",children:[]},{level:3,title:"隐式模式(Implicit Grant)",slug:"隐式模式-implicit-grant",children:[]},{level:3,title:"密码模式(Resource Owner Password Credentials Grant)",slug:"密码模式-resource-owner-password-credentials-grant",children:[]},{level:3,title:"客户端凭证模式(Client Credentials Grant)",slug:"客户端凭证模式-client-credentials-grant",children:[]}]},{level:2,title:"模式验证",slug:"模式验证",children:[{level:3,title:"授权码模式验证",slug:"授权码模式验证",children:[]},{level:3,title:"隐式模式验证",slug:"隐式模式验证",children:[]},{level:3,title:"密码模式验证",slug:"密码模式验证",children:[]},{level:3,title:"客户端凭证模式验证",slug:"客户端凭证模式验证",children:[]}]}],filePathRelative:"microservices/OAuth2授权标准.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},6372:(s,e,a)=>{a.r(e),a.d(e,{default:()=>i});const n=(0,a(6252).uE)('

OAuth2

介绍

OAuth 全称是 Open Authentication

开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

目前使用最广泛的是 OAuth 2.0OAuth 1.0 已经被废弃了。本文中的OAuth都是指 OAuth 2.0

OAuth2授权流程中的角色

  • 资源拥有者(resource owner):能授权访问受保护资源的一个实体,可以是一个人,那我们称之为最终用户;
  • 资源服务器(resource server):存储受保护资源,客户端通过access token请求资源,资源服务器响应受保护资源给客户端;
  • 授权服务器(authorization server):成功验证资源拥有者并获取授权之后,授权服务器颁发授权令牌(Access Token)给客户端。
  • 客户端(client):第三方应用,也可以是它自己的官方应用;其本身不存储资源,而是资源拥有者授权通过后,使用它的授权(授权令牌)访问受保护资源,然后客户端把相应的数据展示出来/提交到服务器。

令牌与密码

令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

  • (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。
  • (2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。
  • (3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

注意

只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

四种模式

OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 协议根据使用不同的适用场景,规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。

  • 授权码模式(Authorization Code Grant
  • 隐式模式(Implicit Grant
  • 密码模式式(Resource Owner Password Credentials Grant):
  • 客户端凭证模式(Client Credentials Grant

授权码模式(Authorization Code Grant)

授权码授权模式主要流程如下图所示:

授权码模式流程

  • 第一步:用户访问页面或者出发认证地址
  • 第二步:访问的页面将请求重定向到认证服务器
  • 第三步:用户登录成功只有,认证服务器向用户展示授权页面,等待用户授权
  • 第四步:用户授权,认证服务器生成一个 code 和带上 client_id 发送给应用服务器。然后,应用服务器拿到 code,并用 client_id 去后台查询对应的client_secret
  • 第五步:将 codeclient_idclient_secret传给认证服务器换取 access_tokenrefresh_token
  • 第六步:将 access_tokenrefresh_token 传给应用服务器
  • 第七步:验证 token,访问真正的资源页面

授权码授权模式优劣势:

授权码模式优劣势

隐式模式(Implicit Grant)

隐式模式主要流程如下图所示:

隐式模式流程

  • 第一步:用户访问页面时,重定向到认证服务器。
  • 第二步:认证服务器给用户一个认证页面,等待用户授权。
  • 第三步:用户授权,认证服务器想应用页面返回 Token
  • 第四步:验证 Token,访问真正的资源页面

隐式模式优劣势:

隐式模式优劣势

密码模式(Resource Owner Password Credentials Grant)

密码模式主要流程如下图所示:

密码流程

  • 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
  • 第二步:应用页面那种这个信息去认证服务器授权
  • 第三步:认证服务器授权通过,拿到token,访问真正的资源页面

说明

优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)

缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)

应用场景:自家公司搭建的认证服务器

客户端凭证模式(Client Credentials Grant)

客户端凭证模式主要流程如下图所示:

客户端凭证流程

  • 第一步:用户访问应用客户端
  • 第二步:通过客户端定义的验证方法,拿到token,无需授权
  • 第三步:访问资源服务器A
  • 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。

说明

这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。

因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

模式验证

注意

以下内容中,所有URL地址一定要使用IP访问。如果是本地环境,那么也要使用本机真实的IP,不要使用 127.0.0.1 或者 localhost。切记!!!

说明

不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这 是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。

即:要在系统中为该客户端分配ID(client ID)和客户端密钥(client secret),换句话说 oauth-client-details 表中要有该客户端对应的数据

授权码模式验证

指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

第一步:客户端向资源端申请code

说明

这里所说的客户端,是指任意想要使用 Eurynome Cloud 的应用系统。

主要逻辑:假设,某网站或者系统(客户端),我们称之为 A 。Eurynome Cloud 向A网站提供一个认证链接,A 网站会把这个连接做成一个按钮,用户点击后就会根据这个连接跳转到 Eurynome Cloud,在 Eurynome Cloud 认证通过后授权用户数据给 A 网站使用。

上面所说的连接,就是如下的认证连接:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=code&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://localhost:9999/passport/login&scope=all\n
1

参数

  • response_type:必选。值固定为“code”。
  • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
  • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
  • redirect_uri:必选参数(授权成功后的重定向地址)
  • scope:可选参数(表示授权范围)

第二步:资源端返回code给客户端

可以采用以下两种方式进行验证:

  • 第一种:如果有想要接入的系统,那么就在这个系统中做一个图标按钮,点击后跳转到上面的地址。(比如:很多系统都支持微信登录,那么在页面上就会有一个微信的图标按钮,点击后跳转到一个地址)
  • 第二种:如果没有想接入的系统,可以将上面的地址输入到浏览器,获取信息后配合 Postman 等工具进行验证。

下面采用第二种浏览器的方式

在浏览器中输入上面的地址,会跳出如下登录界面。

流程1

输入用户名、密码和验证码进行用户验证。

可以使用系统默认用户:system 密码:123456

登录成功后,会跳转到授权页面进行授权,如下图所示:

流程2

授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的code, 如下所示。这个地址就是系统中设置的 redirect_uri

http://localhost:9999/passport/login?code=P6dxH5\n
1

第三步:客户端根据code向资源端请求令牌

在你习惯的工具中,输入下面的地址:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token?client_id=010e659a-4005-4610-98f6-00b822f4758e&client_secret=04165a07-cffd-45cf-a20a-1c2a69f65fb1&grant_type=authorization_code&code=P6dxH5&scope=all&redirect_uri=http://localhost:9999/passport/login\n
1

参数

  • grant_type:必选参数(固定值“authorization_code”)
  • code : 必选参数(上一步Response 中响应的code,避免在请求的过程中被篡改)
  • redirect_uri:必选参数(必须和Request中提供的redirect_uri相同)
  • client_id:必选参数(必须和上一步Request中提供的client_id相同,不能token和授权码请求的第三方应用不一致)

下图以 Postman 为例:

流程3

第四步:资源端向客户端返回令牌及明细

返回如下所示 Token 则表示验证成功

{\n    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MzE2NjA5ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiNGJiNTQzNDUtZGQyNC00MzQ3LThkMjYtNjU1ZTVkNDA4NWY3IiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.BdTMSL2QTxyWe4Xs6piAS1Ldk23zUfhlG5_dA0xaNFA",\n    "token_type": "bearer",\n    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJhdGkiOiI0YmI1NDM0NS1kZDI0LTQzNDctOGQyNi02NTVlNWQ0MDg1ZjciLCJleHAiOjE2MzQyMDk3ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiOTQzYzVlOGQtNjVjZC00YmJhLTlmNjMtY2Y3MTRhNDQ2ZDdkIiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.JIQ7N_rqsbhSb1M9voFhbAJq9QmPoKbirZ2lV_AYkYM",\n    "expires_in": 43199,\n    "scope": "all",\n    "license": "herodotus-cloud",\n    "openid": "1",\n    "jti": "4bb54345-dd24-4347-8d26-655e5d4085f7"\n}\n
1
2
3
4
5
6
7
8
9
10

参数

  • access_token:访问令牌(服务器端加密过的字符串)。
  • refresh_token:刷新令牌(刷新令牌的字符串)
  • expires_in:过期时间(令牌的过期时间)

隐式模式验证

有些 Web 应用是纯前端应用,没有后端。这时就不能用上面的方式了,必须将令牌储存在前端。RFC 6749 就规定了第二种方式,允许直接向前端颁发令牌。这种方式没有授权码这个中间步骤,所以称为(授权码)"隐藏式"(implicit)

第一步:客户端向资源端申请Token

在浏览器中输入如下的认证连接:

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=token&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://www.baidu.com&scope=all\n
1

参数

  • response_type:必选。值固定为“token”。
  • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
  • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
  • redirect_uri:必选参数(授权成功后的重定向地址)
  • scope:可选参数(表示授权范围)

第二步:到认证服务器认证

在浏览器中输入上面的地址,会跳出如下登录界面。

流程1

输入用户名、密码和验证码进行用户验证。

可以使用系统默认用户:system 密码:123456

登录成功后,会跳转到授权页面进行授权,如下图所示:

流程2

第三步:资源端转向客户端并传递token

授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的token, 如下所示。这个地址就是系统中设置的 redirect_uri

https://www.baidu.com/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MzE2NjA5ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiNGJiNTQzNDUtZGQyNC00MzQ3LThkMjYtNjU1ZTVkNDA4NWY3IiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.BdTMSL2QTxyWe4Xs6piAS1Ldk23zUfhlG5_dA0xaNFA&token_type=bearer&expires_in=42511&license=herodotus-cloud&openid=1&jti=4bb54345-dd24-4347-8d26-655e5d4085f7\n
1

上面 URL 中,access_token参数就是令牌

密码模式验证

如果你高度信任某个应用,RFC 6749 也允许用户把用户名和密码,直接告诉该应用。该应用就使用你的密码,申请令牌,这种方式称为"密码式"(password)。

Eurynome Cloud 前端就是使用密码模式进行登录

直接使用如下地址获取Token即可

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token\n
1

操作如下图所示:

流程4

参数

  • username:必选参数(登录用户名)
  • password:必选参数(登录用户密码)
  • grant_type:必选参数(固定值“password”)
  • client_id:必选参数
  • client_secret:必选参数
  • scope:可选参数(表示授权范围)

客户端凭证模式验证

这种模式直接根据client的id和密钥即可获取token,无需用户参与 这种模式比较合适消费api的后端服务,比如拉取一组用户信息等

直接使用如下地址获取Token即可

http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token\n
1

操作如下图所示:

流程5

参数

  • grant_type:必选参数(固定值“client_credentials”)
  • client_id:必选参数
  • client_secret:必选参数
  • scope:可选参数(表示授权范围)
',99),i={render:function(s,e){return n}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-1b984d6f.29c165db.js b/documents/guides/assets/js/v-1b984d6f.29c165db.js new file mode 100644 index 000000000..1ebbc94ea --- /dev/null +++ b/documents/guides/assets/js/v-1b984d6f.29c165db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[295],{1087:(n,a,s)=>{s.r(a),s.d(a,{data:()=>p});const p={key:"v-1b984d6f",path:"/others/Idea.html",title:"Idea",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、found character '@' that cannot start any token. (Do not use @ for indentation)",slug:"_1-、found-character-that-cannot-start-any-token-do-not-use-for-indentation",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]}]}],filePathRelative:"others/Idea.md",git:{updatedTime:null,contributors:[]}}},1915:(n,a,s)=>{s.r(a),s.d(a,{default:()=>t});const p=(0,s(6252).uE)('

Idea

[1]、found character '@' that cannot start any token. (Do not use @ for indentation)

启动服务时,出现以下错误

16:01:05.726 [main] ERROR org.springframework.boot.SpringApplication - Application run failed\norg.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token\nfound character '@' that cannot start any token. (Do not use @ for indentation)\n in 'reader', line 7, column 13:\n        active: @profile.name@\n                ^\n\n\tat org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:439)\n\tat org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:248)\n\tat org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:633)\n\tat org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:165)\n\tat org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:59)\n\tat org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:45)\n\tat org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:140)\n\tat org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:119)\n\tat org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:221)\n\tat org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:191)\n\tat org.yaml.snakeyaml.composer.Composer.composeKeyNode(Composer.java:309)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:300)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)\n\tat org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)\n\tat org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:313)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)\n\tat org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)\n\tat org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:313)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)\n\tat org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)\n\tat org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)\n\tat org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:115)\n\tat org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:135)\n\tat org.springframework.boot.env.OriginTrackedYamlLoader$OriginTrackingConstructor.getData(OriginTrackedYamlLoader.java:99)\n\tat org.yaml.snakeyaml.Yaml$1.next(Yaml.java:512)\n
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

该问题主要是由于 bootstrap.yml 中使用了 @ @ 变量,而在 target 目录中生成的 bootstrap.yml中的 @ @ 变量没有被正确替换。

解决办法

办法一

使用 mvn installmvn package 命令重新编译工程。

办法二

在IDEA中,打开Maven面板,点击刷新按钮。如下图所示:

架构图

',11),t={render:function(n,a){return p}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-23340e69.640a11df.js b/documents/guides/assets/js/v-23340e69.640a11df.js new file mode 100644 index 000000000..98d3525db --- /dev/null +++ b/documents/guides/assets/js/v-23340e69.640a11df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[152],{7341:(n,a,e)=>{e.r(a),e.d(a,{data:()=>s});const s={key:"v-23340e69",path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",title:"环境部署",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"后端运行",slug:"后端运行",children:[{level:3,title:"[1]、检出代码创建工程",slug:"_1-、检出代码创建工程",children:[]},{level:3,title:"[2]、创建引用数据数据库",slug:"_2-、创建引用数据数据库",children:[]},{level:3,title:"[3]、创建或导入Nacos配置",slug:"_3-、创建或导入nacos配置",children:[]},{level:3,title:"[4]、修改Nacos配置",slug:"_4-、修改nacos配置",children:[]},{level:3,title:"[5]、修改pom.xml配置",slug:"_5-、修改pom-xml配置",children:[]},{level:3,title:"[6]、编译代码",slug:"_6-、编译代码",children:[]},{level:3,title:"[7]、数据库创建和数据初始化",slug:"_7-、数据库创建和数据初始化",children:[]},{level:3,title:"[8]、运行服务模块",slug:"_8-、运行服务模块",children:[]},{level:3,title:"[9]、运行ELK(可选)",slug:"_9-、运行elk-可选",children:[]},{level:3,title:"[10]、以Docker方式部署(可选)",slug:"_10-、以docker方式部署-可选",children:[]},{level:3,title:"[11]、部署验证",slug:"_11-、部署验证",children:[]}]},{level:2,title:"前端运行",slug:"前端运行",children:[{level:3,title:"[1]、检出代码",slug:"_1-、检出代码",children:[]},{level:3,title:"[2]、修改配置",slug:"_2-、修改配置",children:[]},{level:3,title:"[3]、前端运行命令",slug:"_3-、前端运行命令",children:[]},{level:3,title:"[4]、运行验证",slug:"_4-、运行验证",children:[]}]}],filePathRelative:"documents/环境部署.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:3}]}}},9792:(n,a,e)=>{e.r(a),e.d(a,{default:()=>Hn});var s=e(6252);const t=(0,s.uE)('

环境部署

准备工作

后端运行所需的基础设施

设施当前版本说明
Nacos2.0.3分布式版本使用的Nacos作为配置中心和服务发现中心,所以需要安装Nacos。不管本地运行还是Docker、K8S环境都需要。
Redis3.2.100+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要
Kafka2.6.0+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要。(虽然本系统使用的是spring cloud bus同时兼容RabbitMQ和Kafka,由于使用Debezium来支持工作流、ElasticSearch数据同步,所以如果没有特殊的使用需求还是建议使用Kafka)
PostgreSQL 数据库建议使用最新版,其它版本也可以运行个人多年项目经验,感觉PostgreSQL更好用和顺手,所以默认数据为PostgreSQL。基础代码都是使用spring data jpa(Mybatis Plus也支持),所以其它数据库也支持,修改一下配置就行
MySQL 数据库5.6.5+Nacos 运行需要依赖数据库,长久运行需要依赖于MySQL(目前Nacos不支持其它数据库,虽说Nacos RoadMap有多数据库支持,不知道什么时候开发完成)。本地运行为了省事,也可以用Nacos的内置数据库,这样减少本地运行资源占用
Sentinel Dashboard1.8.0本地调试运行可以不需要
Skywalking8.7.0本地运行可以不需要
ELK7.0.0 +日志中心中心所需基础环境,本地运行可以不需要,需要在配置关闭日志收集
  • (1) 后端本地运行所需标准最小环境
Nacos >= 1.1.0 (推荐使用最新版Nacos)\nRedis >= 3.0.0\nKafka >= 2.6.0 (目前Kafka运行还需要依赖Zookeeper)\nPostgreSQL >= 10\n
1
2
3
4
  • (2) 开发环境
IDEA 或 Eclipse (推荐IDEA)\nJDK >= 1.8 (推荐1.8版本)\nMaven >= 1.3\nGit 使用最新版\n
1
2
3
4

前端运行所需的基础设施

设施当前版本说明
Nodejs14.17.0 +运行前端Vue工程必须依赖,如果不需要运行前端可以忽略
Yarn1.22.10前端包管理工具,如果习惯使用Yarn,用Npm或其它工具也都可以
  • (1) 前端端本地运行所需标准最小环境
Nodejs>= 10\nYarn>= 1.22.10 (Yarn2 目前会有很多问题,劣势太多不建议使用)\n
1
2
  • (2) 开发环境
Visual Studio Code (Vscode)或其它 (推荐Vscode)\n
1
  • (3) 环境配置
',15),l={href:"https://blog.csdn.net/Pointer_v/article/details/105432529?spm=1001.2014.3001.5501",target:"_blank",rel:"noopener noreferrer"},o=(0,s.Uk)("参见个人博客"),c=(0,s.uE)('

后端运行

说明

开展以下各项工作以前,请确保数据库应用、Redis、Nacos、ELK 套件已经正确安装和运行。

[1]、检出代码创建工程

方式一

',4),p=(0,s.Uk)("前往"),r={href:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank",rel:"noopener noreferrer"},i=(0,s.Uk)("Gitee下载页面"),d=(0,s.Uk)("下载解压到工作目录"),u=(0,s.uE)("
  • 打开IDE导入工程

  • Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。

  • IDEA,菜单 File -> Open,然后选择已解压工程所在的目录,点击 OK 即可。

  • ",3),g=(0,s._)("blockquote",null,[(0,s._)("p",null,"IDE会自动加载相关的依赖包,具体要依据网络以及个人本地Maven缓存情况而定。")],-1),h=(0,s._)("h4",{id:"方式二",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#方式二","aria-hidden":"true"},"#"),(0,s.Uk)(" 方式二")],-1),k=(0,s._)("code",null,"IDEA",-1),m=(0,s.Uk)(" 菜单 "),b=(0,s._)("code",null,"File -> New -> Project From Version Control...",-1),_=(0,s.Uk)(", 在弹出框中输入本工程Git地址:"),v={href:"https://gitee.com/herodotus/eurynome-cloud.git",target:"_blank",rel:"noopener noreferrer"},E=(0,s.Uk)("https://gitee.com/herodotus/eurynome-cloud.git"),f=(0,s.Uk)(",然后设置放置目录,点击 "),U=(0,s._)("strong",null,"OK",-1),A=(0,s.Uk)(" 即可"),x=(0,s.uE)('

    [2]、创建引用数据数据库

    进入PostgreSQLSQL Shell(psql) (在Windows的菜单中可以找到),使用超级管理员账号和密码登录进入数据库,执行以下脚本:

    CREATE USER herodotus WITH PASSWORD 'herodotus';\nCREATE DATABASE herodotus OWNER herodotus;\nGRANT ALL PRIVILEGES ON DATABASE herodotus TO herodotus;\n
    1
    2
    3

    注意

    要分步、一条一条地执行,不要全部复制,一把全部执行。一定要注意每个语句结尾要以“;”结束。

    说明

    • 这里不管是用户名、用户密码还是数据库名均使用herodotus是为了方便,请根据自己实际情况修改。
    • 这里没有进行分库(即:所有的服务使用同一个数据库),如不满足需求,请在整体部署完成可以正常运行后,再结合自己的实际情况修改。
    • 以上是均是以 PostgreSQL 作为默认数据库进行说明,如果要使用其它数据库,具体安装和建库步骤请自行探索。
    ',5),y={class:"custom-container tip"},N=(0,s._)("p",{class:"custom-container-title"},"提示",-1),D=(0,s.Uk)("系统默认使用 "),S=(0,s._)("code",null,"PostgreSQL",-1),P=(0,s.Uk)(" 数据库,如果想要使用其它数据库,建议详细全面阅读本章节,对整体部署过程有了详细了解之后,再来了解如何切换数据库。参阅:"),L=(0,s.Uk)("更换数据库"),w=(0,s._)("div",{class:"custom-container tip"},[(0,s._)("p",{class:"custom-container-title"},"提示"),(0,s._)("p",null,[(0,s._)("code",null,"Linux"),(0,s.Uk)(" 环境下在命令行中,以管理员账号登录 "),(0,s._)("code",null,"PostgreSQL"),(0,s.Uk)("数据库")])],-1),I=(0,s._)("h3",{id:"_3-、创建或导入nacos配置",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#_3-、创建或导入nacos配置","aria-hidden":"true"},"#"),(0,s.Uk)(" [3]、创建或导入Nacos配置")],-1),C={class:"custom-container warning"},K=(0,s._)("p",{class:"custom-container-title"},"说明",-1),W=(0,s.Uk)("再进行以下操作之前,请确保对Nacos中 Namespace、Group等基础概念和具体操作有所了解。"),T={href:"https://nacos.io/zh-cn/docs/concepts.html",target:"_blank",rel:"noopener noreferrer"},B=(0,s.Uk)("【官方文档】"),M=(0,s._)("h4",{id:"方式一-手动创建nacos配置信息",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#方式一-手动创建nacos配置信息","aria-hidden":"true"},"#"),(0,s.Uk)(" 方式一:手动创建Nacos配置信息")],-1),O=(0,s._)("p",null,[(0,s.Uk)("工程的 "),(0,s._)("code",null,"${project_home}/platform/eurynome-cloud-management/resources/configs"),(0,s.Uk)(" 目录下,放置着所有需要导入到 "),(0,s._)("code",null,"Nacos"),(0,s.Uk)(" 中的默认配置。开始其它工作之前,需要先在Nacos中创建所有配置")],-1),R=(0,s.Uk)("访问 "),G=(0,s._)("code",null,"Nacos",-1),V=(0,s.Uk)(" 后台管理,"),j={href:"http://localhost:8848/nacos",target:"_blank",rel:"noopener noreferrer"},F=(0,s.Uk)("默认本机地址"),Q=(0,s.Uk)(", 使用默认账号"),q=(0,s._)("code",null,"nacos/nacos",-1),Y=(0,s.Uk)("登录。"),H=(0,s._)("li",null,[(0,s._)("p",null,[(0,s.Uk)("在 "),(0,s._)("code",null,"Nacos"),(0,s.Uk)(" 后台中,在 "),(0,s._)("code",null,"配置管理 --\x3e 配置列表"),(0,s.Uk)(" 功能中,点击"),(0,s._)("strong",null,"添加"),(0,s.Uk)("按钮,手动添加所有配置文件,操作如下图所示:")])],-1),$=(0,s.uE)('

    创建Nacos配置

    注意

    • 创建配置之前,请提前规划配置放置的命名空间(Namespace)。默认是放到 Nacos public命名空间中,如果不符合您的需求,可以在新建命名空间之后,再进行配置的创建。
    • ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,还有一级目录。这级目录的名称,是配置文件对应 Nacos 中的 Group 名称。所以在 Nacos 中新建配置时,一定要注意 Group 的创建和匹配。切勿全部新建到 DEFAULT 组下,这样会导致无法正常运行。

    提示

    本项目所有Nacos配置,均是采用yaml格式。如需使用其它格式请自行修改

    方式二:批量导入Nacos配置

    手动方式创建Nacos配置,比较繁琐和容易出错。为了使用提升使用的便捷性,在工程 ${project_home}/platform/eurynome-cloud-management/resources/imports 目录下提供可以直接导入的配置包。可以方便的完成导入配置、创建Group等操作。

    ',5),z=(0,s.Uk)("访问 "),J=(0,s._)("code",null,"Nacos",-1),Z=(0,s.Uk)(" 后台管理,"),X={href:"http://localhost:8848/nacos",target:"_blank",rel:"noopener noreferrer"},nn=(0,s.Uk)("默认本机地址"),an=(0,s.Uk)(", 使用默认账号"),en=(0,s._)("code",null,"nacos/nacos",-1),sn=(0,s.Uk)("登录。"),tn=(0,s._)("li",null,[(0,s._)("p",null,[(0,s.Uk)("在 "),(0,s._)("code",null,"Nacos"),(0,s.Uk)(" 后台中,在 "),(0,s._)("code",null,"配置管理 --\x3e 配置列表"),(0,s.Uk)(" 功能中,点击"),(0,s._)("strong",null,"导入配置"),(0,s.Uk)("按钮,选择配置导入包即可,完成配置文件导入和Group的创建,操作如下图所示:")])],-1),ln=(0,s.uE)('

    导入Nacos配置

    注意

    • 创建配置之前,请提前规划配置放置的命名空间(Namespace)。默认是放到 Nacos public命名空间中,如果不符合您的需求,可以在新建命名空间之后,再进行配置的创建。

    [4]、修改Nacos配置

    上一步所导入的配置信息均是使用默认的、本地化的配置,需要根据自己搭建的基础设施环境,对相关的配置进行修改。

    ',4),on=(0,s.Uk)("访问 "),cn=(0,s._)("code",null,"Nacos",-1),pn=(0,s.Uk)(" 后台管理,"),rn={href:"http://localhost:8848/nacos",target:"_blank",rel:"noopener noreferrer"},dn=(0,s.Uk)("默认本机地址"),un=(0,s.Uk)(", 使用默认账号"),gn=(0,s._)("code",null,"nacos/nacos",-1),hn=(0,s.Uk)("登录。"),kn=(0,s._)("li",null,[(0,s._)("p",null,[(0,s.Uk)("找到对应的配置文件进行修改。常用的设置在 "),(0,s._)("code",null,"eurynome-cloud-environment.yaml"),(0,s.Uk)(" 中即可修改完成,如果不满足您实际需求,可再到其它的配置文件中详细修改。")])],-1),mn={class:"custom-container tip"},bn=(0,s.uE)('

    说明

    为了方便使用,Eurynome Cloud 所有的配置采用**“共享式、统一化多环境配置模式”**设计,大多数配置在对应 多环境eurynome-cloud-environment.yaml 配置中就可以完成修改。例如,您当前使用的是 development 环境,那么在Nacos后台管理中,找到 Group 是 developmenteurynome-cloud-environment.yaml 配置修改。

    ',2),_n=(0,s._)("strong",null,"Eurynome Cloud",-1),vn=(0,s.Uk)(" 多环境配置设计及使用,参阅:"),En=(0,s.Uk)("多环境配置"),fn=(0,s.uE)('

    [5]、修改pom.xml配置

    在工程根目录下,找到 pom.xml, 修改对应 profile 中参数。由于使用的多环境,所以在该文件中,需要找到应环境的配置,修改该环境下的对应的配置信息。主要结构如下所示:

    <!-- 开发 -->\n<profile>\n    <id>development</id>\n    <activation>\n        <activeByDefault>true</activeByDefault>\n    </activation>\n    <properties>\n        <profile.name>development</profile.name>\n        <database.type>postgresql</database.type>\n        <skip.build.source.package>false</skip.build.source.package>\n        <skip.copy.docker.resource>false</skip.copy.docker.resource>\n        <skip.build.git.commit.info>false</skip.build.git.commit.info>\n        <config.server-addr>127.0.0.1:8848</config.server-addr>\n        <config.namespace></config.namespace>\n        <discovery.server-addr>127.0.0.1:8848</discovery.server-addr>\n        <sentinel.server-addr>127.0.0.1:8858</sentinel.server-addr>\n    </properties>\n</profile>\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    必须要修改的参数涉及以下几项:

    • config.server-addr:配置中心地址,即Nacos服务端地址
    • config.namespace:Nacos 命名空间ID。如果要使用的是默认的命名空间,该参数不设置任何值。
    • discovery.server-addr:服务发现地址,即Nacos服务端地址
    • sentinel.server-addr:Sentinel Dashborad 地址
    ',5),Un=(0,s.Uk)("详细参数说明,参阅:"),An=(0,s.Uk)("多环境配置"),xn=(0,s.uE)('

    [6]、编译代码

    编译方式一

    用命令行进入到工程代码所在根据目录,通过执行下面命令进行编译

    mvn install\n\n或 \n\nmvn package\n
    1
    2
    3
    4
    5

    提示

    推荐使用install命令,进行编译。使用该命令编译完成之后,会在Maven本地缓存中,生成响应的包,这样eurynome-cloud-athena功能就可以直接使用。

    提示

    在第一次编译的时候,因为在本地缓存缺少相关的包,所以在执行 mvn clean 操作时会提示错误。因此,在第一次编译时只使用 mvn packagemvn install。第一次编译完成之后,就可以使用 mvn clean packagemvn clean install 命令进行编译。IDE界面操作也是同理。

    编译方式二

    在IDE工程中,利用IDE提供的界面操作进行编译。

    IDEA为例,在右侧Maven Panel中,选择eurynome-cloud(root)节点,点击Lifecycle节点下的install 或者 package 进行编译。参考下图:

    输入图片说明

    [7]、数据库创建和数据初始化

    ',11),yn=(0,s.Uk)("具体操作方法,参阅:"),Nn=(0,s.Uk)("数据初始化"),Dn=(0,s.uE)('

    [8]、运行服务模块

    说明

    各个服务的启动顺序并没有严格的要求,启动的先后顺序并不影响实际的使用,但是部分核心代码逻辑以及组件存在“时机性”问题,启动顺序的不同会略有时机差异性。

    如果您对时机性没有要求,那么请忽略启动顺序问题,随意启动。

    如果您对时机性有较高要求,那么请详细阅读各个服务对应的备注说明。

    • ManagementApplication (监控中心服务 可选。)

    说明

    本质上 ManagementApplication 服务先启动还是后启动,并不影响平台的实际使用。仅有的影响是

    • 先启动ManagementApplication服务,然后再启动其它服务,Spring Boot Admin会马上收到服务的运行监控信息,进行及时的展示;
    • 如果后启动ManagementApplication服务,其它在ManagementApplication之前运行服务的监控信息会间隔一段时间才会展现。

    如果要使用该服务中的Spring Boot Admin监控,建议最先启动该服务。

    • UpmsApplication (用户中心服务 必须)
    • GatewayApplication (服务网关服务 必须)
    • UaaApplication (统一认证服务 必须)
    • BpmnApplication (分布式工作流 可选)

    [9]、运行ELK(可选)

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及 Skywalking 链路追踪的数据存储介质。

    目前已有基础功能尚未涉及到搜索,只有日志中心和链路追踪功能涉及到 Elasticsearch。如果本地开发不要相关功能,就不需要安装和运行ELK套件。

    提示

    如果本地不想使用 ELK,那么需要关闭微服务的日志收集功能。

    修改你所使用 多环境 对应的 eurynome-cloud-environment.yaml 配置中的 herodotus.environment.logstash-server-addr 属性的值,将其值设置成 false ,即可关闭日志收集功能,就解除服务对 ELK 的依赖

    [8]、运行Skywalking(可选)

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及Skywalking链路追踪的数据存储介质。正式环境运行建议使用 DockerK8S 的方式运行 Skywalking,并以 Docker 的形式运行服务。

    如果仅是在本地运行调试服务与 Skywalking 的联动,可以在IDE中增加参数后,再运行服务即可。

    以IDEA为例,点开 Edit Configurations...,在对应服务的 VM Options 输入框中添加如下参数即可调试 Skywalking

    -javaagent:D:/Workspaces/Java/herodotus-cloud/configurations/docker/context/agent/skywalking-agent-es7-8.6.0.jar=agent.service_name=herodotus-cloud-upms-ability,collector.backend_service=192.168.101.10:11800\n
    1

    操作界面如下图所示,IDEA版本不同配置方式会有差异

    输入图片说明

    [10]、以Docker方式部署(可选)

    ',17),Sn=(0,s.Uk)("参见:"),Pn=(0,s.Uk)("容器化部署"),Ln=(0,s._)("h3",{id:"_11-、部署验证",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#_11-、部署验证","aria-hidden":"true"},"#"),(0,s.Uk)(" [11]、部署验证")],-1),wn=(0,s._)("p",null,[(0,s.Uk)("以上步骤完成之后,工程后端整体搭建部署完成。可以通过运行前端界面进行操作或者用 "),(0,s._)("code",null,"Postman"),(0,s.Uk)(" 调用接口的方式进行验证。")],-1),In=(0,s.Uk)("如果界面操作正常,或者接口调用正常,则说明工程已经正确部署。更多验证,参阅:"),Cn=(0,s.Uk)("OAuth2授权标准"),Kn=(0,s._)("h2",{id:"前端运行",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#前端运行","aria-hidden":"true"},"#"),(0,s.Uk)(" 前端运行")],-1),Wn=(0,s._)("h3",{id:"_1-、检出代码",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#_1-、检出代码","aria-hidden":"true"},"#"),(0,s.Uk)(" [1]、检出代码")],-1),Tn=(0,s.Uk)("在合适位置上,使用Git检出前端工程代码。"),Bn={href:"https://gitee.com/herodotus/eurynome-cloud-ui",target:"_blank",rel:"noopener noreferrer"},Mn=(0,s.Uk)("项目地址"),On=(0,s._)("h3",{id:"_2-、修改配置",tabindex:"-1"},[(0,s._)("a",{class:"header-anchor",href:"#_2-、修改配置","aria-hidden":"true"},"#"),(0,s.Uk)(" [2]、修改配置")],-1),Rn=(0,s._)("p",null,[(0,s.Uk)("在前端工程 "),(0,s._)("code",null,"${project_home}/packages/@herodotus/ui"),(0,s.Uk)(" 录下,找到 "),(0,s._)("code",null,".env.development"),(0,s.Uk)(" 或者 "),(0,s._)("code",null,".env.production"),(0,s.Uk)(" 文件。修改其中的参数")],-1),Gn={class:"custom-container tip"},Vn=(0,s.uE)('

    参数说明

    • NODE_ENV:当前多环境名称
    • VUE_APP_SYSTEM_NAME:界面显示的系统名称
    • VUE_APP_GATEWAY:服务网关访问地址
    • VUE_APP_PROJECT:地址切换名称。通过该参数以动态修改域名以外的地址,以实现单体版等使用同一套操作界面。eurynome指定是微服务版,其它任意值指定是单体版
    • VUE_APP_OAUTH_CLIENT_ID:OAuth2 密码模式 Client Id。
    • VUE_APP_OAUTH_CLIENT_SECRET:OAuth2 密码模式 Client 密码
    • VUE_APP_OAUTH_GRANT_TYPE:OAuth2 授权模式

    [3]、前端运行命令

    // 进入目录\ncd eurynome-cloud-ui\n\n// 安装依赖\nyarn install\n\n// 如果要使用`.env.development`中的配置值,使用下面命令\nyarn e:ui dev\n\n// 如果要使用`.env.production`中的配置值,使用下面命令\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    yarn e:ui prod

    [4]、运行验证

    ',6),jn=(0,s.Uk)("打开浏览器,输入:"),Fn={href:"http://localhost:3000",target:"_blank",rel:"noopener noreferrer"},Qn=(0,s.Uk)("http://localhost:3000"),qn=(0,s.Uk)(" 默认账户/密码 system/123456"),Yn=(0,s._)("p",null,"若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功",-1),Hn={render:function(n,a){const e=(0,s.up)("OutboundLink"),Hn=(0,s.up)("RouterLink");return(0,s.wg)(),(0,s.iD)(s.HY,null,[t,(0,s._)("p",null,[(0,s._)("a",l,[o,(0,s.Wm)(e)])]),c,(0,s._)("ul",null,[(0,s._)("li",null,[(0,s._)("p",null,[p,(0,s._)("a",r,[i,(0,s.Wm)(e)]),d])]),u]),g,h,(0,s._)("p",null,[k,m,b,_,(0,s._)("a",v,[E,(0,s.Wm)(e)]),f,U,A]),x,(0,s._)("div",y,[N,(0,s._)("p",null,[D,S,P,(0,s.Wm)(Hn,{to:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html"},{default:(0,s.w5)((()=>[L])),_:1})])]),w,I,(0,s._)("div",C,[K,(0,s._)("p",null,[W,(0,s._)("a",T,[B,(0,s.Wm)(e)])])]),M,O,(0,s._)("ol",null,[(0,s._)("li",null,[(0,s._)("p",null,[R,G,V,(0,s._)("a",j,[F,(0,s.Wm)(e)]),Q,q,Y])]),H]),$,(0,s._)("ol",null,[(0,s._)("li",null,[(0,s._)("p",null,[z,J,Z,(0,s._)("a",X,[nn,(0,s.Wm)(e)]),an,en,sn])]),tn]),ln,(0,s._)("ol",null,[(0,s._)("li",null,[(0,s._)("p",null,[on,cn,pn,(0,s._)("a",rn,[dn,(0,s.Wm)(e)]),un,gn,hn])]),kn]),(0,s._)("div",mn,[bn,(0,s._)("p",null,[_n,vn,(0,s.Wm)(Hn,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,s.w5)((()=>[En])),_:1})])]),fn,(0,s._)("p",null,[Un,(0,s.Wm)(Hn,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,s.w5)((()=>[An])),_:1})]),xn,(0,s._)("p",null,[yn,(0,s.Wm)(Hn,{to:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html"},{default:(0,s.w5)((()=>[Nn])),_:1})]),Dn,(0,s._)("p",null,[Sn,(0,s.Wm)(Hn,{to:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html"},{default:(0,s.w5)((()=>[Pn])),_:1})]),Ln,wn,(0,s._)("p",null,[In,(0,s.Wm)(Hn,{to:"/microservices/OAuth2%E6%8E%88%E6%9D%83%E6%A0%87%E5%87%86.html#%E6%A8%A1%E5%BC%8F%E9%AA%8C%E8%AF%81"},{default:(0,s.w5)((()=>[Cn])),_:1})]),Kn,Wn,(0,s._)("p",null,[Tn,(0,s._)("a",Bn,[Mn,(0,s.Wm)(e)])]),On,Rn,(0,s._)("div",Gn,[Vn,(0,s._)("p",null,[jn,(0,s._)("a",Fn,[Qn,(0,s.Wm)(e)]),qn]),Yn])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-23340e69.7d8408c7.js b/documents/guides/assets/js/v-23340e69.7d8408c7.js deleted file mode 100644 index 3efee5dba..000000000 --- a/documents/guides/assets/js/v-23340e69.7d8408c7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[152],{7341:(n,a,s)=>{s.r(a),s.d(a,{data:()=>e});const e={key:"v-23340e69",path:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html",title:"环境部署",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"准备工作",slug:"准备工作",children:[{level:3,title:"后端运行所需的基础设施",slug:"后端运行所需的基础设施",children:[]},{level:3,title:"前端运行所需的基础设施",slug:"前端运行所需的基础设施",children:[]}]},{level:2,title:"运行系统",slug:"运行系统",children:[{level:3,title:"后端运行",slug:"后端运行",children:[]},{level:3,title:"前端运行",slug:"前端运行",children:[]}]}],filePathRelative:"documents/环境部署.md",git:{updatedTime:1631030613e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},4954:(n,a,s)=>{s.r(a),s.d(a,{default:()=>R});var e=s(6252);const t=(0,e.uE)('

    环境部署

    准备工作

    后端运行所需的基础设施

    设施当前版本说明
    Nacos2.0.3分布式版本使用的Nacos作为配置中心和服务发现中心,所以需要安装Nacos。不管本地运行还是Docker、K8S环境都需要。
    Redis3.2.100+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要
    Kafka2.6.0+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要。(虽然本系统使用的是spring cloud bus同时兼容RabbitMQ和Kafka,由于使用Debezium来支持工作流、ElasticSearch数据同步,所以如果没有特殊的使用需求还是建议使用Kafka)
    PostgreSQL 数据库建议使用最新版,其它版本也可以运行个人多年项目经验,感觉PostgreSQL更好用和顺手,所以默认数据为PostgreSQL。基础代码都是使用spring data jpa(Mybatis Plus也支持),所以其它数据库也支持,修改一下配置就行
    MySQL 数据库5.6.5+Nacos 运行需要依赖数据库,长久运行需要依赖于MySQL(目前Nacos不支持其它数据库,虽说Nacos RoadMap有多数据库支持,不知道什么时候开发完成)。本地运行为了省事,也可以用Nacos的内置数据库,这样减少本地运行资源占用
    Sentinel Dashboard1.8.0本地调试运行可以不需要
    Skywalking8.7.0本地运行可以不需要
    ELK7.0.0 +日志中心中心所需基础环境,本地运行可以不需要,需要在配置关闭日志收集
    • (1) 后端本地运行所需标准最小环境
    Nacos >= 1.1.0 (推荐使用最新版Nacos)\nRedis >= 3.0.0\nKafka >= 2.6.0 (目前Kafka运行还需要依赖Zookeeper)\nPostgreSQL >= 10\n
    1
    2
    3
    4
    • (2) 开发环境
    IDEA 或 Eclipse (推荐IDEA)\nJDK >= 1.8 (推荐1.8版本)\nMaven >= 1.3\nGit 使用最新版\n
    1
    2
    3
    4

    前端运行所需的基础设施

    设施当前版本说明
    Nodejs14.17.0 +运行前端Vue工程必须依赖,如果不需要运行前端可以忽略
    Yarn1.22.10前端包管理工具,如果习惯使用Yarn,用Npm或其它工具也都可以
    • (1) 前端端本地运行所需标准最小环境
    Nodejs>= 10\nYarn>= 1.22.10 (Yarn2 目前会有很多问题,劣势太多不建议使用)\n
    1
    2
    • (2) 开发环境
    Visual Studio Code (Vscode)或其它 (推荐Vscode)\n
    1
    • (3) 环境配置
    ',15),o={href:"https://blog.csdn.net/Pointer_v/article/details/105432529?spm=1001.2014.3001.5501",target:"_blank",rel:"noopener noreferrer"},c=(0,e.Uk)("参见个人博客"),p=(0,e.uE)('

    运行系统

    后端运行

    [1]、创建工程

    方式一:

    ',4),l=(0,e.Uk)("前往"),r={href:"https://gitee.com/herodotus/eurynome-cloud",target:"_blank",rel:"noopener noreferrer"},i=(0,e.Uk)("Gitee下载页面"),d=(0,e.Uk)("下载解压到工作目录"),u=(0,e.uE)("
  • 打开IDE导入工程

  • Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。

  • IDEA,菜单 File -> Open,然后选择已解压工程所在的目录,点击 OK 即可。

  • ",3),m=(0,e._)("blockquote",null,[(0,e._)("p",null,"IDE会自动加载相关的依赖包,具体要依据网络以及个人本地Maven缓存情况而定。")],-1),g=(0,e._)("p",null,[(0,e._)("strong",null,"方式二:")],-1),k=(0,e._)("code",null,"IDEA",-1),h=(0,e.Uk)(" 菜单 "),b=(0,e._)("code",null,"File -> New -> Project From Version Control...",-1),v=(0,e.Uk)(", 在弹出框中输入本工程Git地址:"),f={href:"https://gitee.com/herodotus/eurynome-cloud.git",target:"_blank",rel:"noopener noreferrer"},y=(0,e.Uk)("https://gitee.com/herodotus/eurynome-cloud.git"),_=(0,e.Uk)(",然后设置放置目录,点击 "),E=(0,e._)("strong",null,"OK",-1),x=(0,e.Uk)(" 即可"),A=(0,e.uE)('

    [2]、修改配置

    • (1)需导入Nacos配置信息修改

    在工程 ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,存放着所有需要导入 Nacos 的所有配置文件。

    提示

    本项目所有Nacos配置,均是采用yaml格式。如需使用其它格式请自行修改

    请根据自身环境的信息,进行对应的修改。为了方便使用,所有的所有的配置采用**“共享式、统一化多环境配置模式”**,所以大多数配置在对应 多环境eurynome-cloud-environment.yaml 配置中就可以完成修改。

    注意

    第一次使用系统,eurynome-cloud-environment.yamlherodotus.switch.database.ddl-auto 配置,要设置成 updatecreate。推荐设置成 update,这样在开发过程中,会自动更新数据库结构。生产环境中,也可以设置成 update,当然最好设置成 none

    • (2)导入Nacos配置

    配置修改完成之后,需要将${project_home}/platform/eurynome-cloud-management/resources/configs 目录下导入到 Nacos 中。

    注意

    ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,还有一级目录。这级目录的名称,是对应 Nacos 中的 Group。所以在向 Nacos 导入配置时,一定要注意 Group 的创建和匹配。切勿全部导入到 DEFAULT 组下,这样会导致无法正常运行。

    提示

    Eurynome Cloud 是开源版本,未提供Nacos配置的自动导入功能。

    为了方便使用,最新的版本中,在${project_home}/platform/eurynome-cloud-management/resources/imports 目录下提供可以直接导入的配置包。可以方便的完成导入配置、创建Group等操作。

    • (3)修改pom配置

    找到工程根目录下的 pom.xml, 由于支持多环境,所以在该文件中,找到你对应环境的配置,修改该环境下的对应的配置信息。

    <!-- 开发 -->\n<profile>\n    <id>development</id>\n    <activation>\n        <!--默认激活配置-->\n        <activeByDefault>true</activeByDefault>\n    </activation>\n    <properties>\n        <!--当前环境-->\n        <profile.name>development</profile.name>\n        <database.type>postgresql</database.type>\n        <!--代码构建控制-->\n        <!--跳过构建源代码包-->\n        <skip.build.source.package>false</skip.build.source.package>\n        <!--不copy代码包到docker构建目录-->\n        <skip.copy.docker.resource>false</skip.copy.docker.resource>\n        <!--不执行git commit 构建-->\n        <skip.build.git.commit.info>false</skip.build.git.commit.info>\n        <!--Nacos配置中心地址-->\n        <config.server-addr>127.0.0.1:8848</config.server-addr>\n        <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->\n        <config.namespace></config.namespace>\n        <!--Nacos服务发现地址-->\n        <discovery.server-addr>127.0.0.1:8848</discovery.server-addr>\n        <sentinel.server-addr>127.0.0.1:8858</sentinel.server-addr>\n    </properties>\n</profile>\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    • (4)多环境配置
    ',14),S=(0,e.Uk)("参考"),D=(0,e.Uk)("多环境配置"),N=(0,e.Uk)("说明"),L=(0,e.uE)('

    [3]、编译代码

    方式一:

    在IDE工程中,利用IDE提供的界面操作进行编译。以IDEA为例,在右侧Maven Panel中,选择eurynome-cloud(root)节点,点击Lifecycle节点下的install 或者 package 进行编译。参考下图:

    输入图片说明

    方式二:

    用命令行进入到工程代码所在目录,通过执行下面命令进行编译

    mvn install\n\n或 \n\nmvn package\n
    1
    2
    3
    4
    5

    提示

    推荐使用install命令,进行编译。使用该命令编译完成之后,会在Maven本地缓存中,生成响应的包,这样eurynome-cloud-athena功能就可以直接使用。

    提示

    在第一次编译的时候,因为在本地缓存缺少相关的包,所以在执行 mvn clean 操作时会提示错误。因此,在第一次编译时只使用 mvn packagemvn install。第一次编译完成之后,就可以使用 mvn clean packagemvn clean install 命令进行编译。IDE界面操作也是同理。

    [4]、创建数据库

    进入PostgreSQLSQL Shell(psql) (在Windows的菜单中可以找到),使用超级管理员账号和密码登录进入数据库,执行以下脚本:

    提示

    Linux 环境下在命令行中登录 PostgreSQL

    CREATE USER herodotus WITH PASSWORD 'herodotus';\nCREATE DATABASE herodotus OWNER herodotus;\nGRANT ALL PRIVILEGES ON DATABASE herodotus TO herodotus;\n
    1
    2
    3

    说明(1)

    这里不管是用户名、用户密码还是数据库名均使用herodotus是为了方便,请根据自己实际情况修改。

    说明(2)

    这里没有进行分库(即:所有的服务使用同一个数据库),请根据自己的实际情况修改。

    说明(3)

    以上是以 PostgreSQL 作为默认数据库,如果要使用其它数据请自行探索。

    注意

    要分步、一条一条地执行,不要全部复制,一把全部执行。一定要注意每个语句结尾要以“;”结束。

    [5]、导入数据库脚本

    (1)运行服务

    为了减少数据库脚本,与实际应用不匹配的问题,系统大部分数据库表以及初始默认数据,使用自动创建方式导入,只有 OAuth2 额外需要的表,才需要手动创建。

    所以在进行脚本的导入之前,请先运行${project_home}/services/eurynome-cloud-upms-ability 服务。该服务正常运行之后,会将大部分基础表创建好,同时会扫描该服务中的Rest API,转换为权限存储至sys_authority表中。

    再运行${project_home}/platform/eurynome-cloud-uaa服务,该服务正常运行之后,会扫描该服务中的Rest API,转换为权限存储至sys_authority表中。

    (2)导入数据库脚本

    1. 在工程${project_home}/configurations/scripts 目录下,找到 OAuth2 Schema脚本(oauth2-schema-postgresql.sql)导入到系统中。

    2. 在工程${project_home}/services/eurynome-cloud-upms-ability/resources/sqls目录下, 找到系统默认数据脚本(upms-data-postgresql.sql)导入到系统中。

    数据库创建和脚本导入示例

    示例

    [6]、打开运行基础模块

    说明

    各个服务的启动顺序并没有严格的要求,启动的先后顺序并不影响实际的使用,但是部分核心代码逻辑以及组件存在“时机性”问题,启动顺序的不同会带来不是特别明显的时机差异性。

    如果您对时机性没有要求,那么请忽略启动顺序问题,随意启动。

    如果您对时机性有较高要求,那么请详细阅读各个服务对应的备注说明。

    • ManagementApplication (监控中心 可选。)

    提示

    本质上ManagementApplication服务先启动还是后启动对应实际使用并不影响。仅有的影响是先启动ManagementApplication服务,然后在启动其它服务,Spring Boot Admin会马上收到服务的运行监控信息,进行及时的展示;如果后启动ManagementApplication服务,其它在ManagementApplication之前运行服务的监控信息会间隔一段时间才会展现。

    如果要使用该服务中的Spring Boot Admin监控,建议最先启动该服务。

    • UpmsApplication (用户模块 必须)
    • GatewayApplication (网关模块 必须)
    • UaaApplication (认证模块 必须)
    • BpmnApplication (工作流 可选)

    [7]、运行ELK

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及 Skywalking 链路追踪的数据存储介质。

    目前已有基础功能尚未涉及到搜索,只有日志中心和链路追踪功能涉及到 Elasticsearch。如果本地开发不要相关功能,就不需要安装ELK套件。

    提示

    如果不想使用ELK,那么需要关闭微服务的日志收集功能。修改你所使用 多环境 对应的 eurynome-cloud-environment.yaml 配置中的 herodotus.environment.logstash-server-addr 属性的值,将其值设置成 false ,即可关闭日志收集功能

    [8]、运行Skywalking

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及Skywalking链路追踪的数据存储介质。正式环境运行建议使用 DockerK8S 的方式运行 Skywalking,并以 Docker 的形式运行服务。

    如果仅是在本地运行调试服务与 Skywalking 的联动,可以在IDE中增加参数后,再运行服务即可。

    以IDEA为例,点开 Edit Configurations...,在对应服务的 VM Options 输入框中添加如下参数即可调试 Skywalking

    -javaagent:D:/Workspaces/Java/herodotus-cloud/configurations/docker/context/agent/skywalking-agent-es7-8.6.0.jar=agent.service_name=herodotus-cloud-upms-ability,collector.backend_service=192.168.101.10:11800\n
    1

    [9]、以Docker方式部署

    ',40),w=(0,e.Uk)("参见:"),U=(0,e.Uk)("容器化部署"),I=(0,e.uE)('

    具体操作如下图所示:

    输入图片说明

    前端运行

    前端运行命令

    // 进入目录\ncd eurynome-cloud-ui\n\n// 安装依赖\nyarn install\n或\nnpm install\n\n# 本地开发 启动项目\nyarn dev\n或\nnpm run dev\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    运行验证

    ',6),K=(0,e.Uk)("打开浏览器,输入:"),M={href:"http://localhost:3000",target:"_blank",rel:"noopener noreferrer"},P=(0,e.Uk)("http://localhost:3000"),j=(0,e.Uk)(" 默认账户/密码 system/123456) 若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功"),R={render:function(n,a){const s=(0,e.up)("OutboundLink"),R=(0,e.up)("RouterLink");return(0,e.wg)(),(0,e.iD)(e.HY,null,[t,(0,e._)("p",null,[(0,e._)("a",o,[c,(0,e.Wm)(s)])]),p,(0,e._)("ul",null,[(0,e._)("li",null,[(0,e._)("p",null,[l,(0,e._)("a",r,[i,(0,e.Wm)(s)]),d])]),u]),m,g,(0,e._)("p",null,[k,h,b,v,(0,e._)("a",f,[y,(0,e.Wm)(s)]),_,E,x]),A,(0,e._)("p",null,[S,(0,e.Wm)(R,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,e.w5)((()=>[D])),_:1}),N]),L,(0,e._)("p",null,[w,(0,e.Wm)(R,{to:"/microservices/%E5%AE%B9%E5%99%A8%E5%8C%96%E6%8A%80%E6%9C%AF.html"},{default:(0,e.w5)((()=>[U])),_:1})]),I,(0,e._)("p",null,[K,(0,e._)("a",M,[P,(0,e.Wm)(s)]),j])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-25b47c13.494fc093.js b/documents/guides/assets/js/v-25b47c13.78dfea1d.js similarity index 92% rename from documents/guides/assets/js/v-25b47c13.494fc093.js rename to documents/guides/assets/js/v-25b47c13.78dfea1d.js index 2458c2411..234f2632e 100644 --- a/documents/guides/assets/js/v-25b47c13.494fc093.js +++ b/documents/guides/assets/js/v-25b47c13.78dfea1d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[446],{3166:(e,t,n)=>{n.r(t),n.d(t,{data:()=>r});const r={key:"v-25b47c13",path:"/others/",title:"说明",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[],filePathRelative:"others/README.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:4}]}}},6207:(e,t,n)=>{n.r(t),n.d(t,{default:()=>m});var r=n(6252);const o=(0,r._)("h1",{id:"说明",tabindex:"-1"},[(0,r._)("a",{class:"header-anchor",href:"#说明","aria-hidden":"true"},"#"),(0,r.Uk)(" 说明")],-1),u={class:"custom-container tip"},a=(0,r._)("p",{class:"custom-container-title"},"提示",-1),s=(0,r._)("p",null,"本部分会梳理、总结使用者经常提出的一些问题,形成文档方便大家查阅,以便帮助使用者快速定位和解决问题。",-1),l=(0,r._)("p",null,"每个使用者所使用的微服务基础环境都不可能完全相同,因此,可能存在无法全面覆盖、满足所有场景的情况。",-1),c=(0,r._)("p",null,"同时,文档中的解决办法,只是作者根据自己的情况进行解决的办法,可能不是最优的解决办法。",-1),i=(0,r.Uk)("所以,如果发现了使用上的问题、或者针对某些问题有更优的解决办法,欢迎广大使用者提"),d={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},h=(0,r.Uk)("【Issue】"),m={render:function(e,t){const n=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[o,(0,r._)("div",u,[a,s,l,c,(0,r._)("p",null,[i,(0,r._)("a",d,[h,(0,r.Wm)(n)])])])],64)}}}}]); \ No newline at end of file +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[446],{3166:(e,t,n)=>{n.r(t),n.d(t,{data:()=>r});const r={key:"v-25b47c13",path:"/others/",title:"说明",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[],filePathRelative:"others/README.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:5}]}}},6207:(e,t,n)=>{n.r(t),n.d(t,{default:()=>m});var r=n(6252);const o=(0,r._)("h1",{id:"说明",tabindex:"-1"},[(0,r._)("a",{class:"header-anchor",href:"#说明","aria-hidden":"true"},"#"),(0,r.Uk)(" 说明")],-1),u={class:"custom-container tip"},a=(0,r._)("p",{class:"custom-container-title"},"提示",-1),s=(0,r._)("p",null,"本部分会梳理、总结使用者经常提出的一些问题,形成文档方便大家查阅,以便帮助使用者快速定位和解决问题。",-1),l=(0,r._)("p",null,"每个使用者所使用的微服务基础环境都不可能完全相同,因此,可能存在无法全面覆盖、满足所有场景的情况。",-1),c=(0,r._)("p",null,"同时,文档中的解决办法,只是作者根据自己的情况进行解决的办法,可能不是最优的解决办法。",-1),i=(0,r.Uk)("所以,如果发现了使用上的问题、或者针对某些问题有更优的解决办法,欢迎广大使用者提"),d={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},h=(0,r.Uk)("【Issue】"),m={render:function(e,t){const n=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[o,(0,r._)("div",u,[a,s,l,c,(0,r._)("p",null,[i,(0,r._)("a",d,[h,(0,r.Wm)(n)])])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-31203a50.7c6f0960.js b/documents/guides/assets/js/v-31203a50.7c6f0960.js new file mode 100644 index 000000000..97df1f623 --- /dev/null +++ b/documents/guides/assets/js/v-31203a50.7c6f0960.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[398],{3657:(e,i,o)=>{o.r(i),o.d(i,{data:()=>a});const a={key:"v-31203a50",path:"/others/Nacos.html",title:"Nacos 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],filePathRelative:"others/Nacos.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},7403:(e,i,o)=>{o.r(i),o.d(i,{default:()=>l});const a=(0,o(6252).uE)('

    Nacos 常见问题

    [1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00

    将Nacos日志设置到Debug级别,在服务运行起来之后,就会发现控制台持续输出以上Debug信息。

    说明

    这不是代码Bug,而是Nacos自身机制,想要详细了解请阅读Nacos源代码或自行百度。

    这是Nacos Client本地缓存及故障转移机制。在Nacos源代码中,ServiceInfoHolder的构造方法中,会初始化一个FailoverReactor类。FailoverReactor的作用便是用来处理故障转移的。

    FailoverReactor的构造方法会拼接故障根目录:${user.home}/nacos/naming/public/failover,其中public也有可能是其他的自定义命名空间;

    主要逻辑就是:

    • 基本操作就是读取failover目录,查找故障转移【开关】文件为名为“failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00”。

    • 如果故障转移文件不存在,则直接返回,不断输出Debug信息。

    • 如果故障转移文件存在,比较文件修改时间,如果已经修改,则获取故障转移文件中的内容。

    • 故障转移文件中存储了0和1标识。0表示关闭,1表示开启。

    • 当为开启状态时,执行线程FailoverFileReader。

    • 解决办法

    1. 将Nacos日志级别调整为INFO级别以上。
    2. 手动在${user.home}/nacos/naming/public目录下,新建文件failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00
    ',9),l={render:function(e,i){return a}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-31203a50.fe2fb675.js b/documents/guides/assets/js/v-31203a50.fe2fb675.js deleted file mode 100644 index c0b82ee9d..000000000 --- a/documents/guides/assets/js/v-31203a50.fe2fb675.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[398],{3657:(e,i,o)=>{o.r(i),o.d(i,{data:()=>a});const a={key:"v-31203a50",path:"/others/Nacos.html",title:"Nacos 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00",slug:"_1-、failover-switch-is-not-found-failover00-00-000-vipsrv-failover-switch-000-00-00",children:[]}],filePathRelative:"others/Nacos.md",git:{updatedTime:null,contributors:[]}}},7403:(e,i,o)=>{o.r(i),o.d(i,{default:()=>l});const a=(0,o(6252).uE)('

    Nacos 常见问题

    [1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00

    将Nacos日志设置到Debug级别,在服务运行起来之后,就会发现控制台持续输出以上Debug信息。

    说明

    这不是代码Bug,而是Nacos自身机制,想要详细了解请阅读Nacos源代码或自行百度。

    这是Nacos Client本地缓存及故障转移机制。在Nacos源代码中,ServiceInfoHolder的构造方法中,会初始化一个FailoverReactor类。FailoverReactor的作用便是用来处理故障转移的。

    FailoverReactor的构造方法会拼接故障根目录:${user.home}/nacos/naming/public/failover,其中public也有可能是其他的自定义命名空间;

    主要逻辑就是:

    • 基本操作就是读取failover目录,查找故障转移【开关】文件为名为“failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00”。

    • 如果故障转移文件不存在,则直接返回,不断输出Debug信息。

    • 如果故障转移文件存在,比较文件修改时间,如果已经修改,则获取故障转移文件中的内容。

    • 故障转移文件中存储了0和1标识。0表示关闭,1表示开启。

    • 当为开启状态时,执行线程FailoverFileReader。

    • 解决办法

    1. 将Nacos日志级别调整为INFO级别以上。
    2. 手动在${user.home}/nacos/naming/public目录下,新建文件failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00
    ',9),l={render:function(e,i){return a}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-3297977c.2395e7d1.js b/documents/guides/assets/js/v-3297977c.2395e7d1.js new file mode 100644 index 000000000..5e94caade --- /dev/null +++ b/documents/guides/assets/js/v-3297977c.2395e7d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[189],{7958:(e,r,a)=>{a.r(r),a.d(r,{data:()=>l});const l={key:"v-3297977c",path:"/basic-knowledge/postgresql.html",title:"为什么默认使用PostgreSQL数据库?",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[{level:3,title:"MySQL",slug:"mysql",children:[]},{level:3,title:"PostgreSQL",slug:"postgresql",children:[]}]},{level:2,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[{level:3,title:"[1]、不仅仅是关系型数据库",slug:"_1-、不仅仅是关系型数据库",children:[]},{level:3,title:"[2]、支持地理信息处理扩展",slug:"_2-、支持地理信息处理扩展",children:[]},{level:3,title:"[3]、可以快速构建REST API",slug:"_3-、可以快速构建rest-api",children:[]},{level:3,title:"[4]、支持树状结构",slug:"_4-、支持树状结构",children:[]},{level:3,title:"[5]、有极其强悍的 SQL 编程能力",slug:"_5-、有极其强悍的-sql-编程能力",children:[]},{level:3,title:"[6]、外部数据源支持",slug:"_6-、外部数据源支持",children:[]},{level:3,title:"[7]、没有字符串长度限制",slug:"_7-、没有字符串长度限制",children:[]},{level:3,title:"[8]、支持图结构数据存储",slug:"_8-、支持图结构数据存储",children:[]},{level:3,title:"[9]、支持窗口函数",slug:"_9-、支持窗口函数",children:[]},{level:3,title:"[10]、对索引的支持更强",slug:"_10-、对索引的支持更强",children:[]},{level:3,title:"[11]、集群支持更好",slug:"_11-、集群支持更好",children:[]},{level:3,title:"[12]、事务隔离做的更好",slug:"_12-、事务隔离做的更好",children:[]},{level:3,title:"[13]、对于字符支持更好一些",slug:"_13-、对于字符支持更好一些",children:[]},{level:3,title:"[14]、对表连接支持较完整",slug:"_14-、对表连接支持较完整",children:[]},{level:3,title:"[15]、存储方式支持更大的数据量",slug:"_15-、存储方式支持更大的数据量",children:[]},{level:3,title:"[16]、时间精度更高",slug:"_16-、时间精度更高",children:[]},{level:3,title:"[17]、优化器的功能较完整",slug:"_17-、优化器的功能较完整",children:[]},{level:3,title:"[18]、序列支持更好",slug:"_18-、序列支持更好",children:[]},{level:3,title:"[19]、对子查询支持更好",slug:"_19-、对子查询支持更好",children:[]},{level:3,title:"[20]、增加列更加简单",slug:"_20-、增加列更加简单",children:[]}]},{level:2,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[{level:3,title:"[1]、MySQL比PostgreSQL更流行",slug:"_1-、mysql比postgresql更流行",children:[]},{level:3,title:"[2]、回滚实现更优",slug:"_2-、回滚实现更优",children:[]},{level:3,title:"[3]、在Windows上运行更可靠",slug:"_3-、在windows上运行更可靠",children:[]},{level:3,title:"[4]、线程模式相比进程模式的优势",slug:"_4-、线程模式相比进程模式的优势",children:[]},{level:3,title:"[5]、权限设置上更加完善",slug:"_5-、权限设置上更加完善",children:[]},{level:3,title:"[6]、存储引擎插件化机制",slug:"_6-、存储引擎插件化机制",children:[]},{level:3,title:"[7]、适应24/7运行",slug:"_7-、适应24-7运行",children:[]},{level:3,title:"[8]、更加试用于简单的场景",slug:"_8-、更加试用于简单的场景",children:[]}]},{level:2,title:"总结",slug:"总结",children:[]}],filePathRelative:"basic-knowledge/postgresql.md",git:{updatedTime:null,contributors:[]}}},4425:(e,r,a)=>{a.r(r),a.d(r,{default:()=>n});var l=a(6252);const s=(0,l.uE)('

    为什么默认使用PostgreSQL数据库?

    PostgreSQL VS MySQL

    PostgreSQL VS MySQL

    MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。这样的两种背景直接导致了各自固有的优点和缺点。

    MySQL

    MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,由于MySQL被控制在Oracle,社区担心会对MySQL的开源会有影响,所以开发了一些分支,比如: MariaDB和Percona。

    PostgreSQL

    PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

    PostgreSQL相对于MySQL的优势

    [1]、不仅仅是关系型数据库

    除了存储正常的数据类型外,还支持存储:

    • array,不管是一位数组还是多为数组均支持
    • json(hStore)和jsonb,相比使用text存储接送要高效很多
    • json和jsonb之间的区别

    jsonb和json在更高的层面上看起来几乎是一样的,但在存储实现上是不同的。

    • json存储完的文本,json列会每次都解析存储的值,它不支持索引,但你可以为查询创建表达式索引。
    • jsonb存储的二进制格式,避免了重新解析数据结构。它支持索引,这意味着你可以不使用指定的索引就能查询任何路径。

    当我们比较写入数据速度时,由于数据存储的方式的原因,jsonb会比json稍微的慢一点。json列会每次都解析存储的值,这意味着键的顺序要和输入的时候一样。但jsonb不同,以二进制格式存储且不保证键的顺序。因此,如果你有软件需要依赖键的顺序,jsonb可能不是你的应用的最佳选择。使用jsonb的优势还在于你可以轻易的整合关系型数据和非关系型数据, PostgreSQL对于mongodb这类的基于文档的数据库是个不小的威胁,毕竟如果一个表中只有一列数据的类型是半结构化的,没有必要为了迁就它而整个表的设计采用schemaless的结构。

    [2]、支持地理信息处理扩展

    PostGIS 为PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测量与几何拓扑分析。在功能上,和MYSQL对比,PostGIS具有下列优势:

    O2O业务场景中的LBS业务使用PostgreSQL + PostGIS有无法比拟的优势。

    [3]、可以快速构建REST API

    PostgREST 可以方便的为任何 PostgreSQL 数据库提供完全的 RESTful API 服务。

    [4]、支持树状结构

    支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。MySQL 处理树状的设计会很复杂, 而且需要写很多代码, 而 PostgreSQL 可以高效处理树结构。

    [5]、有极其强悍的 SQL 编程能力

    支持递归,有非常丰富的统计函数和统计语法支持。

    MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 PostgreSQL:没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。

    [6]、外部数据源支持

    可以把 70 种外部数据源 (包括 Mysql, Oracle, CSV, hadoop …) 当成自己数据库中的表来查询。Postgres有一个针对这一难题的解决方案:一个名为“外部数据封装器(Foreign Data Wrapper,FDW)”的特性。该特性最初由PostgreSQL社区领袖Dave Page四年前根据SQL标准SQL/MED(SQL Management of External Data)开发。FDW提供了一个SQL接口,用于访问远程数据存储中的远程大数据对象,使DBA可以整合来自不相关数据源的数据,将它们存入Postgres数据库中的一个公共模型。这样,DBA就可以访问和操作其它系统管理的数据,就像在本地Postgres表中一样。例如,使用FDW for MongoDB,数据库管理员可以查询来自文档数据库的数据,并使用SQL将它与来自本地Postgres表的数据相关联。借助这种方法,用户可以将数据作为行、列或JSON文档进行查看、排序和分组。他们甚至可以直接从Postgres向源文档数据库写入(插入、更细或删除)数据,就像一个一体的无缝部署。也可以对Hadoop集群或MySQL部署做同样的事。FDW使Postgres可以充当企业的中央联合数据库或“Hub”。

    [7]、没有字符串长度限制

    一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而PostgreSQL的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。MySQL 的各种text字段有不同的限制,要手动区分 small text, middle text, large text… PostgreSQL 没有这个限制,text 能支持各种大小。

    [8]、支持图结构数据存储

    ',30),t=(0,l.Uk)("没有具体使用过,具体可以自己搜索下。"),i={href:"https://mp.weixin.qq.com/s/cjor82wgDu5gzDvTYpLDWw",target:"_blank",rel:"noopener noreferrer"},h=(0,l.Uk)("参考链接"),d=(0,l.uE)('

    [9]、支持窗口函数

    窗口函数提供跨行相关的当前查询行集执行计算的能力。仅当调用跟着OVER子句的聚集函数,作为窗口函数;否则它们作为常规的聚合函数。窗口也是一种分组,但和 group by 的分组不同。窗口,可以提供分组之外,还可以执行对每个窗口进行计算。可以想象成是group by 后,然后对每个分组进行计算,而不像Group by ,只是单纯地分组。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能简单的解决 “每组取 top 5” 的这类问题。MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。

    [10]、对索引的支持更强

    PostgreSQL 的可以使用函数和条件索引,这使得PostgreSQL数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。对于索引类型:

    MySQL:取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 PostgreSQL:支持 B-树、哈希、R-树和 Gist 索引。 InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。PostgreSQL不存在这个问题。

    索引类型方面,MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:B+TREE。PostgreSQL支持 B-树、哈希、R-树和 Gist 索引。

    [11]、集群支持更好

    Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。复制(Replication)功能是异步的并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。

    PostgreSQL有丰富的开源cluster软件支持。plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。

    另外,PostgreSQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。

    [12]、事务隔离做的更好

    MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 PostgreSQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能。

    [13]、对于字符支持更好一些

    MySQL 里需要 utf8mb4 才能显示 emoji 的坑, PostgreSQL 没这个坑。

    [14]、对表连接支持较完整

    对表连接支持较完整,MySQL只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。PostgreSQL都支持。

    [15]、存储方式支持更大的数据量

    PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

    [16]、时间精度更高

    MySQL对于时间、日期、间隔等时间类型没有秒以下级别的存储类型,而PostgreSQL可以精确到秒以下。

    [17]、优化器的功能较完整

    MySQL对复杂查询的处理较弱,查询优化器不够成熟,explain看执行计划的结果简单。性能优化工具与度量信息不足。

    PostgreSQL很强大的查询优化器,支持很复杂的查询处理。explain返回丰富的信息。提供了一些性能视图,可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息,也可以看到cache命中率。网上有一个开源的pgstatspack工具。

    [18]、序列支持更好

    MySQL 不支持多个表从同一个序列中取 id, 而 PostgreSQL 可以。

    [19]、对子查询支持更好

    对子查询的支持。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。几乎任何数据库的子查询 (subquery) 性能都比 MySQL 好。

    [20]、增加列更加简单

    MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表.

    MySQL相对于PostgreSQL的优势

    [1]、MySQL比PostgreSQL更流行

    流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。易用,很容易安装。第三方工具,包括可视化工具,让用户能够很容易入门。

    [2]、回滚实现更优

    innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。

    [3]、在Windows上运行更可靠

    与PostgreSQL相比,MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在 NT/Win2000/WinXP下,是一个服务),而PostgreSQL是运行在Cygwin模拟环境下。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的。

    [4]、线程模式相比进程模式的优势

    MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

    进程模式对多CPU利用率比较高。进程模式共享数据需要用到共享内存,而线程模式数据本身就是在进程空间内都是共享的,不同线程访问只需要控制好线程之间的同步。 线程模式对资源消耗比较少。所以MySQL能支持远比PostgreSQL多的更多的连接。但PostgreSQL中有优秀的连接池软件软件,如pgbouncer和pgpool,所以通过连接池也可以支持很多的连接。

    [5]、权限设置上更加完善

    MySQL在权限系统上比PostgreSQL某些方面更为完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限, PostgreSQL可以通过建立视图,并确定视图的权限来弥补。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的,但是在很多时候,这是有用的。

    [6]、存储引擎插件化机制

    MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

    [7]、适应24/7运行

    MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。

    [8]、更加试用于简单的场景

    PostgreSQL只支持堆表,不支持索引组织表,Innodb只支持索引组织表。

    • 索引组织表的优势:表内的数据就是按索引的方式组织,数据是有序的,如果数据都是按主键来访问,那么访问数据比较快。而堆表,按主键访问数据时,是需要先按主键索引找到数据的物理位置。
    • 索引组织表的劣势:索引组织表中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织表来说,主键的值不能太大,否则占用的空间比较大。

    对于索引组织表来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入的性能。所以对于使用innodb来说,我们一般最好让主键是一个无意义的序列,这样插入每次都发生在最后,以避免这个问题。 由于索引组织表是按一个索引树,一般它访问数据块必须按数据块之间的关系进行访问,而不是按物理块的访问数据的,所以当做全表扫描时要比堆表慢很多,这可能在OLTP中不明显,但在数据仓库的应用中可能是一个问题。

    总结

    MySQL从一开始就没有打算做所有事情,因而它在功能方面有一定的局限性,并不能满足一些先进应用程序的要求。MySQL对某些功能(例如引用、事务、审计等)的实现方式使得它与其他的关系型数据库相比缺少了一些可靠性。对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。除非你需要绝对的数据完整性,ACID遵从性或者设计复杂,否则PostgreSQL对于简单的场景而言有点多余。

    如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的:

    • 如果你的操作系统是Windows,你应该使用MySQL。
    • 当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。
    • 如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。
    • 你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
    • 如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。
    ',53),n={render:function(e,r){const a=(0,l.up)("OutboundLink");return(0,l.wg)(),(0,l.iD)(l.HY,null,[s,(0,l._)("p",null,[t,(0,l._)("a",i,[h,(0,l.Wm)(a)])]),d],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-3413cbec.4acd2b80.js b/documents/guides/assets/js/v-3413cbec.4acd2b80.js deleted file mode 100644 index ed946b141..000000000 --- a/documents/guides/assets/js/v-3413cbec.4acd2b80.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[90],{7635:(e,a,d)=>{d.r(a),d.d(a,{data:()=>t});const t={key:"v-3413cbec",path:"/others/MySQL.html",title:"MySQL 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],filePathRelative:"others/MySQL.md",git:{updatedTime:null,contributors:[]}}},2875:(e,a,d)=>{d.r(a),d.d(a,{default:()=>p});var t=d(6252);const o=(0,t.uE)('

    MySQL 常见问题

    [1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'

    Eurynome Cloud 默认使用Spring Data JPA进行基础功能的编写, 采用 HibernateJPA的一种实现)提供的 ddl-auto进行基础表的创建和更新。

    ',3),c={class:"custom-container tip"},r=(0,t._)("p",{class:"custom-container-title"},"提示",-1),n=(0,t.Uk)("什么是 "),i=(0,t._)("code",null,"Spring Data JPA",-1),l=(0,t.Uk)(", 参见:基础知识章节,"),s=(0,t.Uk)("Spring Data JPA"),u=(0,t._)("p",null,"ddl-auto 怎么用,参见:更换数据库章节,[spring-boot-starter-data-jpa 更换数据库方式](../documents/更换数据库.md#spring-boot-starter-data-jpa 更换数据库方式)",-1),h=(0,t.uE)('

    Hibernate方言

    Hibernate 底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准 SQL 语句,但所有数据库都对标准 SQL 进行了一些扩展,所以在语法细节上存在一些差异,因此 Hibernate 需要根据数据库来识别这些差异。假如系统需要数据库的变换时,那么用 hibernate 的话就只需要改一改配置文件(修改连接字符串、驱动类、方言等),而用传统的jdbc时,那么SQL语言可能就要有很多改动。(略微重复了)

    Hibernate 方言为实现HQL语句向不同数据库的 SQL 语句转换时,解决不同数据库之间的差异而制定的一套”规范”。

    举例来说,我们在MySQL数据库里进行分页查询,只需使用limit关键字就可以了;而标准SQL并不支持limit关键字,例如Oracle则需要使用行内视图的方式来进行分页。同样的应用程序,当我们在不同数据库之间迁移时,底层数据库的访问细节会发生改变,而 Hibernate 也为这种改变做好了准备,现在我们需要做的是:告诉Hibernate应用程序的底层即将使用哪种数据库——这就是Hibernate方言。

    说明

    因为不同数据库自身的特殊性,那么不同数据库方言的实现逻辑也不能完全相同。出现这个问题是因为MySQL 方言自身所导致,如果已经存在外键,那么就会抛出错误,但是不会影响实际使用。PostgreSQL方案就不会出现问题。

    解决的办法是:

    在使用MySQL数据库时,在首次进行数据库表创建时,需要将eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto修改为create。当所有的表创建成功后,将herodotus.switch.database.ddl-auto值修改为none。那么在次启动就不会出现这个问题。

    ',8),p={render:function(e,a){const d=(0,t.up)("RouterLink");return(0,t.wg)(),(0,t.iD)(t.HY,null,[o,(0,t._)("div",c,[r,(0,t._)("p",null,[n,i,l,(0,t.Wm)(d,{to:"/basic-knowledge/spring-data-jpa.html"},{default:(0,t.w5)((()=>[s])),_:1})]),u]),h],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-3413cbec.b35dffed.js b/documents/guides/assets/js/v-3413cbec.b35dffed.js new file mode 100644 index 000000000..abad21abc --- /dev/null +++ b/documents/guides/assets/js/v-3413cbec.b35dffed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[90],{7635:(e,a,d)=>{d.r(a),d.d(a,{data:()=>t});const t={key:"v-3413cbec",path:"/others/MySQL.html",title:"MySQL 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'",slug:"_1-、-java-sql-sqlsyntaxerrorexception-duplicate-key-name-xxx-idx",children:[{level:3,title:"Hibernate方言",slug:"hibernate方言",children:[]},{level:3,title:"说明",slug:"说明",children:[]}]}],filePathRelative:"others/MySQL.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},2875:(e,a,d)=>{d.r(a),d.d(a,{default:()=>p});var t=d(6252);const o=(0,t.uE)('

    MySQL 常见问题

    [1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'

    Eurynome Cloud 默认使用Spring Data JPA进行基础功能的编写, 采用 HibernateJPA的一种实现)提供的 ddl-auto进行基础表的创建和更新。

    ',3),c={class:"custom-container tip"},r=(0,t._)("p",{class:"custom-container-title"},"提示",-1),n=(0,t.Uk)("什么是 "),i=(0,t._)("code",null,"Spring Data JPA",-1),l=(0,t.Uk)(", 参见:基础知识章节,"),s=(0,t.Uk)("Spring Data JPA"),u=(0,t._)("p",null,"ddl-auto 怎么用,参见:更换数据库章节,[spring-boot-starter-data-jpa 更换数据库方式](../documents/更换数据库.md#spring-boot-starter-data-jpa 更换数据库方式)",-1),h=(0,t.uE)('

    Hibernate方言

    Hibernate 底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准 SQL 语句,但所有数据库都对标准 SQL 进行了一些扩展,所以在语法细节上存在一些差异,因此 Hibernate 需要根据数据库来识别这些差异。假如系统需要数据库的变换时,那么用 hibernate 的话就只需要改一改配置文件(修改连接字符串、驱动类、方言等),而用传统的jdbc时,那么SQL语言可能就要有很多改动。(略微重复了)

    Hibernate 方言为实现HQL语句向不同数据库的 SQL 语句转换时,解决不同数据库之间的差异而制定的一套”规范”。

    举例来说,我们在MySQL数据库里进行分页查询,只需使用limit关键字就可以了;而标准SQL并不支持limit关键字,例如Oracle则需要使用行内视图的方式来进行分页。同样的应用程序,当我们在不同数据库之间迁移时,底层数据库的访问细节会发生改变,而 Hibernate 也为这种改变做好了准备,现在我们需要做的是:告诉Hibernate应用程序的底层即将使用哪种数据库——这就是Hibernate方言。

    说明

    因为不同数据库自身的特殊性,那么不同数据库方言的实现逻辑也不能完全相同。出现这个问题是因为MySQL 方言自身所导致,如果已经存在外键,那么就会抛出错误,但是不会影响实际使用。PostgreSQL方案就不会出现问题。

    解决的办法是:

    在使用MySQL数据库时,在首次进行数据库表创建时,需要将eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto修改为create。当所有的表创建成功后,将herodotus.switch.database.ddl-auto值修改为none。那么在次启动就不会出现这个问题。

    ',8),p={render:function(e,a){const d=(0,t.up)("RouterLink");return(0,t.wg)(),(0,t.iD)(t.HY,null,[o,(0,t._)("div",c,[r,(0,t._)("p",null,[n,i,l,(0,t.Wm)(d,{to:"/basic-knowledge/spring-data-jpa.html"},{default:(0,t.w5)((()=>[s])),_:1})]),u]),h],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-34232cb1.3b1f7752.js b/documents/guides/assets/js/v-34232cb1.3b1f7752.js deleted file mode 100644 index 416ac9eb6..000000000 --- a/documents/guides/assets/js/v-34232cb1.3b1f7752.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[201],{6803:(e,t,i)=>{i.r(t),i.d(t,{data:()=>d});const d={key:"v-34232cb1",path:"/others/Redis.html",title:"Redis 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],filePathRelative:"others/Redis.md",git:{updatedTime:null,contributors:[]}}},9932:(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});var d=i(6252);const o=(0,d.uE)('

    Redis 常见问题

    [1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问

    Redis默认只允许通过127.0.0.1访问,这是其自身的安全防护机制。如果想要使用IP地址进行访问,需要将其保护设置打开。

    • Windows 版

    找到redis.windows.conf配置文件

    1. protected-mode 参数改为no。

    2. 注释掉bind 127.0.0.1

    3. 重启redis服务

    Redis 密码

    • Linux
    1. linux对应的是redis.conf文件

    2. 修改还是和windows一样

    3. 修改完成重启服务

    [2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required

    出现该错误,是由于Redis中设置密码,而代码中未读到Redis密码或配置文件中没有配置密码导致的。

    • 解决办法
    1. 首先用Redis客户端,比如:redis-desktop-manager,进行Redis的连接测试。如果无法连接,那么请检查密码输入是否正确、本地网络等相关环境;如果可以正常连接,请进行下一步。
    2. 检查Nacos中,Redis相关配置是否配置了密码。一定要注意格式,检查格式缩进是否正确、yaml配置“:”后面是否空了一格。如果确定配置正确,请进行下一步。
    3. 检查服务是否可以正常访问到Nacos服务器,是否可以正确读取Nacos中配置。
    ',13),l=(0,d.Uk)("以上操作均确保无误应该就可以正常使用了,如果还有问题,那么就请尽可能的准备详尽的信息,在Gitee中提"),c={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},n=(0,d.Uk)("Issue"),r=(0,d.uE)('

    [3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>

    使用spring boot data redis 链接redis sentinel集群,会报此错。

    原因是因为redis sentinel集群的sentinel配置文件没有配置密码,sentinel配置密码的方式和redis的密码配置方式一样,配置文件中加上requirepass <密码> 就行。

    另外,sentinel中的sentinel auth-pass <master> <pass> 不是给sentinel配置密码,而是sentinel链接redis master的密码

    ',4),a={render:function(e,t){const i=(0,d.up)("OutboundLink");return(0,d.wg)(),(0,d.iD)(d.HY,null,[o,(0,d._)("p",null,[l,(0,d._)("a",c,[n,(0,d.Wm)(i)])]),r],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-34232cb1.a16c51b9.js b/documents/guides/assets/js/v-34232cb1.a16c51b9.js new file mode 100644 index 000000000..2e019bfe9 --- /dev/null +++ b/documents/guides/assets/js/v-34232cb1.a16c51b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[201],{6803:(e,t,i)=>{i.r(t),i.d(t,{data:()=>d});const d={key:"v-34232cb1",path:"/others/Redis.html",title:"Redis 常见问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"[1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问",slug:"_1-、本地redis使用127-0-0-1可以访问-使用ip地址无法访问",children:[]},{level:2,title:"[2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required",slug:"_2-、io-lettuce-core-rediscommandexecutionexception-noauth-authentication-required",children:[]},{level:2,title:"[3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>",slug:"_3-、noauth-hello-must-be-called-with-the-client-already-authenticated-otherwise-the-hello-auth-user",children:[]}],filePathRelative:"others/Redis.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},9932:(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});var d=i(6252);const o=(0,d.uE)('

    Redis 常见问题

    [1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问

    Redis默认只允许通过127.0.0.1访问,这是其自身的安全防护机制。如果想要使用IP地址进行访问,需要将其保护设置打开。

    • Windows 版

    找到redis.windows.conf配置文件

    1. protected-mode 参数改为no。

    2. 注释掉bind 127.0.0.1

    3. 重启redis服务

    Redis 密码

    • Linux
    1. linux对应的是redis.conf文件

    2. 修改还是和windows一样

    3. 修改完成重启服务

    [2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required

    出现该错误,是由于Redis中设置密码,而代码中未读到Redis密码或配置文件中没有配置密码导致的。

    • 解决办法
    1. 首先用Redis客户端,比如:redis-desktop-manager,进行Redis的连接测试。如果无法连接,那么请检查密码输入是否正确、本地网络等相关环境;如果可以正常连接,请进行下一步。
    2. 检查Nacos中,Redis相关配置是否配置了密码。一定要注意格式,检查格式缩进是否正确、yaml配置“:”后面是否空了一格。如果确定配置正确,请进行下一步。
    3. 检查服务是否可以正常访问到Nacos服务器,是否可以正确读取Nacos中配置。
    ',13),c=(0,d.Uk)("以上操作均确保无误应该就可以正常使用了,如果还有问题,那么就请尽可能的准备详尽的信息,在Gitee中提"),l={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},n=(0,d.Uk)("Issue"),r=(0,d.uE)('

    [3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>

    使用spring boot data redis 链接redis sentinel集群,会报此错。

    原因是因为redis sentinel集群的sentinel配置文件没有配置密码,sentinel配置密码的方式和redis的密码配置方式一样,配置文件中加上requirepass <密码> 就行。

    另外,sentinel中的sentinel auth-pass <master> <pass> 不是给sentinel配置密码,而是sentinel链接redis master的密码

    ',4),a={render:function(e,t){const i=(0,d.up)("OutboundLink");return(0,d.wg)(),(0,d.iD)(d.HY,null,[o,(0,d._)("p",null,[c,(0,d._)("a",l,[n,(0,d.Wm)(i)])]),r],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-392e2ac6.e53e54bf.js b/documents/guides/assets/js/v-392e2ac6.e53e54bf.js new file mode 100644 index 000000000..072363038 --- /dev/null +++ b/documents/guides/assets/js/v-392e2ac6.e53e54bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[939],{4988:(e,a,n)=>{n.r(a),n.d(a,{data:()=>s});const s={key:"v-392e2ac6",path:"/documents/%E5%89%8D%E7%AB%AF%E9%97%AE%E9%A2%98.html",title:"前端问题",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"暂时不要升级的依赖包",slug:"暂时不要升级的依赖包",children:[]},{level:2,title:"问题一:升级依赖包时出错",slug:"问题一-升级依赖包时出错",children:[{level:3,title:"(1)解决办法一",slug:"_1-解决办法一",children:[]},{level:3,title:"(2)解决办法二",slug:"_2-解决办法二",children:[]}]},{level:2,title:"问题二:运行命令是出现禁止脚本运行的错误",slug:"问题二-运行命令是出现禁止脚本运行的错误",children:[]}],filePathRelative:"documents/前端问题.md",git:{updatedTime:null,contributors:[]}}},5037:(e,a,n)=>{n.r(a),n.d(a,{default:()=>t});const s=(0,n(6252).uE)('

    前端问题

    暂时不要升级的依赖包

    依赖包当前使用版本最新版本说明
    remark-footnotes2.0.0= 3.0.0目前不要升级该包,该包是为了解决 Nuxt 启动 Warning 问题
    rollup-plugin-vue5.1.9> 6.0.0目前不要升级该包,等工程变更为 Vue3 在进行升级
    sass4.44.2> 5.9.0目前不要升级该包,会出现很多样式除法过期的提示,需要等到Vuetify大版本升级后再考虑
    sass-loader10.1.1= 12.1.0目前不要升级该包,最新版本很多包还有没有适配
    webpack4.46.0> 5.40.0目前不要升级该包,compression-webpack-plugin会抛错误
    css-loader5.2.7> 6.3.0目前不要升级该包,编译时会抛错误
    typescript4.2.3> 4.3.0目前不要升级该包,升级后系统无法正确运行

    问题一:升级依赖包时出错

    使用yarn upgrade-interactive --latest命令升级依赖包的时候,特别是@hecate/form-service 中,有依赖包可以升级时(目测是由于使用了 Nuxt),经常会出现下面的错误。

    Invariant Violation: expected workspace package to exist for "autoprefixer"\n    at invariant (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:2314:15)\n    at _loop2 (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:94537:9)\n    at PackageHoister.init (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:94596:19)\n    at PackageLinker.getFlatHoistedTree (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:48744:20)\n    at PackageLinker.<anonymous> (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:48755:27)\n    at Generator.next (<anonymous>)\n    at step (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:310:30)\n    at D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:328:14\n    at new Promise (<anonymous>)\n    at new F (D:\\LocalCaches\\yarn\\global\\node_modules\\yarn\\lib\\cli.js:5301:28)\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    这个问题是 yarn 本身的 Bug,虽然 yarn 已经升级到了 1.22.10,但是一会好一会不好的。

    (1)解决办法一

    在工程中将 yarn 的版本,降到 1.19.XX。这种方法,只对本工程有效,这样其它工程仍旧可以使用最新版的 yarn,避免了全局安装低版本 yarn 的问题

    yarn policies set-version 1.19.XX\n\n// .yarn 目录生成后,执行\nyarn install\n
    1
    2
    3
    4

    这个命令会在工程中生成一个.yarn 目录以及一个.yarnrc 文件,并在其中指定 yarn 版本。

    (2)解决办法二

    这种办法土一点,但是可以不用去理会 yarn 的不管问题。

    // 1、先查询看看那些包可以升级\nyarn upgrade-interactive --latest\n\n// 2、到指定的包的package.json中,手工修改版本号\n\n// 3、清除组件包的依赖\nlerna clean\n\n// 4、重新关联依赖\nlerna bootstrap\n\n或\n\nyarn install\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    问题二:运行命令是出现禁止脚本运行的错误

    解决方法:打开 PowerShell(在小娜里搜就行),输入:

    set-executionpolicy remotesigned\n
    1

    之后选择 Y,问题就解决了。

    ',18),t={render:function(e,a){return s}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-4c5db979.0070dff2.js b/documents/guides/assets/js/v-4c5db979.0070dff2.js new file mode 100644 index 000000000..5dd310847 --- /dev/null +++ b/documents/guides/assets/js/v-4c5db979.0070dff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[334],{4484:(e,o,a)=>{a.r(o),a.d(o,{data:()=>d});const d={key:"v-4c5db979",path:"/configurations/",title:"快速配置",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"eurynome-cloud-environment.yaml",slug:"eurynome-cloud-environment-yaml",children:[{level:3,title:"herodotus.environment.logstash-server-addr",slug:"herodotus-environment-logstash-server-addr",children:[]},{level:3,title:"herodotus.environment.gateway-server-addr",slug:"herodotus-environment-gateway-server-addr",children:[]},{level:3,title:"herodotus.environment.database.host",slug:"herodotus-environment-database-host",children:[]},{level:3,title:"herodotus.environment.database.port",slug:"herodotus-environment-database-port",children:[]},{level:3,title:"herodotus.environment.database.name",slug:"herodotus-environment-database-name",children:[]},{level:3,title:"herodotus.environment.database.username",slug:"herodotus-environment-database-username",children:[]},{level:3,title:"herodotus.environment.database.password",slug:"herodotus-environment-database-password",children:[]},{level:3,title:"herodotus.environment.redis.host",slug:"herodotus-environment-redis-host",children:[]},{level:3,title:"herodotus.environment.redis.port",slug:"herodotus-environment-redis-port",children:[]},{level:3,title:"herodotus.environment.redis.password",slug:"herodotus-environment-redis-password",children:[]},{level:3,title:"herodotus.environment.kafka.bootstrap-servers",slug:"herodotus-environment-kafka-bootstrap-servers",children:[]},{level:3,title:"herodotus.switch.database.ddl-auto",slug:"herodotus-switch-database-ddl-auto",children:[]},{level:3,title:"herodotus.switch.database.init-mode",slug:"herodotus-switch-database-init-mode",children:[]},{level:3,title:"herodotus.switch.database.use-second-level-cache",slug:"herodotus-switch-database-use-second-level-cache",children:[]},{level:3,title:"herodotus.switch.database.show-sql",slug:"herodotus-switch-database-show-sql",children:[]},{level:3,title:"herodotus.switch.database.format-sql",slug:"herodotus-switch-database-format-sql",children:[]},{level:3,title:"herodotus.switch.database.generate-statistics",slug:"herodotus-switch-database-generate-statistics",children:[]},{level:3,title:"herodotus.switch.swagger.enabled",slug:"herodotus-switch-swagger-enabled",children:[]},{level:3,title:"herodotus.management.log-center.server-addr",slug:"herodotus-management-log-center-server-addr",children:[]},{level:3,title:"herodotus.management.log-center.loggers",slug:"herodotus-management-log-center-loggers",children:[]}]}],filePathRelative:"configurations/README.md",git:{updatedTime:null,contributors:[]}}},4612:(e,o,a)=>{a.r(o),a.d(o,{default:()=>t});const d=(0,a(6252).uE)('

    快速配置

    eurynome-cloud-environment.yaml

    herodotus.environment.logstash-server-addr

    • Type: String | Boolean
    • Default: false

    日志中心Logstash连接TCP地址。Logstash连接默认端口:5044

    • Example:127.0.0.1:5044

    提示

    如果设置成false,则关闭日志收集组件与日志中心Logstash的连接。如果无法连接Logstash则会抛错

    herodotus.environment.gateway-server-addr

    • Type: String
    • Default: ""

    服务网关地址,Gateway服务默认端口:8847

    • Example:http://localhost:8847

    herodotus.environment.database.host

    • Type: String
    • Default: ""

    数据库连接地址。

    • Example:127.0.0.1

    herodotus.environment.database.port

    • Type: String
    • Default: ""

    数据库连接端口。

    • Example:5432

    herodotus.environment.database.name

    • Type: String
    • Default: ""

    数据库名。

    herodotus.environment.database.username

    • Type: String
    • Default: ""

    数据库登录用户名。

    herodotus.environment.database.password

    • Type: String
    • Default: ""

    数据库登录密码。

    herodotus.environment.redis.host

    • Type: String
    • Default: ""

    Redis连接地址。

    • Example:127.0.0.1

    herodotus.environment.redis.port

    • Type: String
    • Default: 6379

    Redis连接端口。

    • Example:6379

    herodotus.environment.redis.password

    • Type: String
    • Default: ""

    Redis连接密码。

    herodotus.environment.kafka.bootstrap-servers

    • Type: String
    • Default: ""

    Kafka连接地址连接地址。Kafka连接默认端口9092

    • Example:127.0.0.1:9092

    herodotus.switch.database.ddl-auto

    • Type: Enum
    • Default: ""
    • Values: createcreate-dropupdatevalidatenone

    配置 Spring Data JPA 自动DDL处理状态。参阅:[数据初始化](../documents/数据初始化.md#Spring Data JPA 更换数据库)

    herodotus.switch.database.init-mode

    • Type: Enum
    • Default: ""
    • Values: neveralwaysembedded

    配置 Spring Data JPA 自动DDL处理状态。参阅:[数据初始化](../documents/数据初始化.md#Spring Data JPA 初始化数据库)

    herodotus.switch.database.use-second-level-cache

    • Type: Boolean
    • Default: false

    是否开启 Spring Data JPA 二级缓存

    herodotus.switch.database.show-sql

    • Type: Boolean
    • Default: false

    是否在日志中输出 Hibernate HQL 调试日志

    herodotus.switch.database.format-sql

    • Type: Boolean
    • Default: false

    是否对日志中输出 Hibernate 的 HQL 调试日志进行格式美化

    herodotus.switch.database.generate-statistics

    • Type: Boolean
    • Default: false

    是否开启 Hibernate SQL 运行分析

    herodotus.switch.swagger.enabled

    • Type: Boolean
    • Default: false

    是否开启 Swagger API 文档

    herodotus.management.log-center.server-addr

    • Type: String | Boolean
    • Default: false

    日志中心Logstash连接TCP地址。Logstash连接默认端口:5044。具体值与herodotus.environment.logstash-server-addr 相同

    • Example:127.0.0.1:5044

    herodotus.management.log-center.loggers

    • Type: Map<String, LogLevel>
    • Default: null

    指定输出到日志中心的日志级别,以及具体日志内容

    • Example:127.0.0.1:5044
    cn.herodotus.eurynome: debug\norg.springframework.security: debug\ncom.alibaba.nacos.client.naming: error\n
    1
    2
    3
    ',73),t={render:function(e,o){return d}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-4cbee12b.c9497cfe.js b/documents/guides/assets/js/v-4cbee12b.c9497cfe.js deleted file mode 100644 index b76fd03fb..000000000 --- a/documents/guides/assets/js/v-4cbee12b.c9497cfe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[967],{4363:(e,r,l)=>{l.r(r),l.d(r,{data:()=>n});const n={key:"v-4cbee12b",path:"/documents/%E5%89%8D%E7%AB%AF%E6%89%8B%E5%86%8C.html",title:"前端手册",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],filePathRelative:"documents/前端手册.md",git:{updatedTime:1630997095e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},2324:(e,r,l)=>{l.r(r),l.d(r,{default:()=>G});var n=l(6252);const t=(0,n._)("h1",{id:"前端手册",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#前端手册","aria-hidden":"true"},"#"),(0,n.Uk)(" 前端手册")],-1),a=(0,n._)("p",null,"系统使用到的相关组件",-1),o=(0,n._)("h2",{id:"前端框架",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#前端框架","aria-hidden":"true"},"#"),(0,n.Uk)(" 前端框架")],-1),i={href:"https://cn.vuejs.org/",target:"_blank",rel:"noopener noreferrer"},h=(0,n.Uk)("Vue"),u={href:"https://cli.vuejs.org/zh/guide/",target:"_blank",rel:"noopener noreferrer"},d=(0,n.Uk)("Vue-cli"),s={href:"https://class-component.vuejs.org/",target:"_blank",rel:"noopener noreferrer"},_=(0,n.Uk)("Vue Class Component"),c={href:"https://www.npmjs.com/package/vue-property-decorator",target:"_blank",rel:"noopener noreferrer"},p=(0,n.Uk)("Vue-property-decorator"),m=(0,n._)("h2",{id:"基础框架组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#基础框架组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 基础框架组件")],-1),f={href:"https://vuetifyjs.com/zh-Hans/",target:"_blank",rel:"noopener noreferrer"},k=(0,n.Uk)("Vuetify"),b=(0,n._)("h2",{id:"表单校验组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#表单校验组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 表单校验组件")],-1),g={href:"https://vee-validate.logaretm.com/v4/",target:"_blank",rel:"noopener noreferrer"},U=(0,n.Uk)("VeeValidate"),v=(0,n._)("h2",{id:"离线存储组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#离线存储组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 离线存储组件")],-1),W={href:"http://localforage.docschina.org/",target:"_blank",rel:"noopener noreferrer"},w=(0,n.Uk)("LocalForage"),j=(0,n._)("h2",{id:"消息提示框组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#消息提示框组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 消息提示框组件")],-1),x={href:"https://sweetalert2.github.io/",target:"_blank",rel:"noopener noreferrer"},y=(0,n.Uk)("Sweetalert2"),V=(0,n._)("h2",{id:"工作流编辑器组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#工作流编辑器组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 工作流编辑器组件")],-1),C={href:"https://github.com/bpmn-io/bpmn-js",target:"_blank",rel:"noopener noreferrer"},z=(0,n.Uk)("bpmn-js"),E={href:"https://github.com/bpmn-io/bpmn-js-properties-panel",target:"_blank",rel:"noopener noreferrer"},A=(0,n.Uk)("bpmn-js-properties-panel"),L={href:"https://github.com/camunda/camunda-bpmn-moddle/commits/master",target:"_blank",rel:"noopener noreferrer"},q=(0,n.Uk)("camunda-bpmn-moddle"),B=(0,n._)("h2",{id:"通用工具库组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#通用工具库组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 通用工具库组件")],-1),D={href:"https://www.axios-http.cn/docs/intro",target:"_blank",rel:"noopener noreferrer"},F=(0,n.Uk)("Axios"),H={href:"https://ricostacruz.com/nprogress/",target:"_blank",rel:"noopener noreferrer"},N=(0,n.Uk)("Nprogress"),M={href:"http://momentjs.cn/docs/",target:"_blank",rel:"noopener noreferrer"},O=(0,n.Uk)("Moment.js"),P={href:"https://www.lodashjs.com/",target:"_blank",rel:"noopener noreferrer"},R=(0,n.Uk)("Lodash"),S=(0,n._)("h2",{id:"图标库",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#图标库","aria-hidden":"true"},"#"),(0,n.Uk)(" 图标库")],-1),T={href:"https://pictogrammers.github.io/@mdi/font/5.9.55/",target:"_blank",rel:"noopener noreferrer"},Y=(0,n.Uk)("@mdi/font"),G={render:function(e,r){const l=(0,n.up)("OutboundLink");return(0,n.wg)(),(0,n.iD)(n.HY,null,[t,a,o,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",i,[h,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",u,[d,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",s,[_,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",c,[p,(0,n.Wm)(l)])])]),m,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",f,[k,(0,n.Wm)(l)])])]),b,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",g,[U,(0,n.Wm)(l)])])]),v,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",W,[w,(0,n.Wm)(l)])])]),j,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",x,[y,(0,n.Wm)(l)])])]),V,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",C,[z,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",E,[A,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",L,[q,(0,n.Wm)(l)])])]),B,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",D,[F,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",H,[N,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",M,[O,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",P,[R,(0,n.Wm)(l)])])]),S,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",T,[Y,(0,n.Wm)(l)])])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-5b482e3b.35896057.js b/documents/guides/assets/js/v-5b482e3b.35896057.js new file mode 100644 index 000000000..37e3f1034 --- /dev/null +++ b/documents/guides/assets/js/v-5b482e3b.35896057.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[961],{7149:(i,l,e)=>{e.r(l),e.d(l,{data:()=>a});const a={key:"v-5b482e3b",path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",title:"更新日志",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-5-0",children:[]},{level:2,title:"v2.5.4.140",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],filePathRelative:"others/更新日志.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:3}]}}},7863:(i,l,e)=>{e.r(l),e.d(l,{default:()=>t});const a=(0,e(6252).uE)('

    更新日志

    v2.5.5.0

    • 重大更新

      1. Spring Boot 升级至 2.5.5
      2. Spring Cloud 升级至 2020.0.4
      3. 大幅改进系统数据库表和数据初始化方式,实现OAuth2业务表自动创建,取消使用脚本的创建方式,提升便捷性
      4. 新增人力资源管理相关功能,功能和模型设计实现与Camunda用户体系统一。便于用户体系数据的同步和管理。
      5. 基于rollup、lerna 和 yarn workspaces,以 monorepo 方式重新构建前端工程。新版前端工程是以Vue2、Typescript开发的,组件库式的前端功能。代码更清晰、组件化和重用化程度更高。为升级至Vue3做前序铺垫。
    • 其它更新

      • 解决Skywalking UI连接Skywalking OAP Server出错问题。
      • 修改防刷机制的默认配置
      • 重新梳理错误体系,优化错误信息,错误提示更加友好。
      • 解决单体版对Basic模式认证跨域拦截的问题
      • 实现OAuth2 Password模式部分参数加密传输方式,提升系统安全性。
      • 修复老版本前端工程已知问题。
      • 在线文档同步更新。
    • 依赖包版本升级

      • Hutool 升级至 5.7.13
      • okhttps 升级至 3.1.5
      • weixin-java-miniapp 升级至 4.1.9.B
      • JustAuth 升级至 1.16.4
      • jasypt-spring-boot-starter 升级至 3.0.4
      • mybatis-plus-boot-starter 升级至3.4.3.4
      • dysmsapi20170525 升级至 2.0.5

    v2.5.4.140

    1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
    2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
    3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
    4. 修改默认验证码字体配置
    5. 去除无用依赖包
    6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
    7. 新增Camunda 官方脚本
    8. 优化数据导入脚本

    v2.5.4.130

    1. 修复单体版Knife4j依赖错误问题
    2. 修复单体版配置错误问题
    3. 增加Gitee流程模版
    4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
    5. 优化自定义页面显示内容,增加Exception StackTrace输出
    6. 修复XssUtils校验出错问题。
    7. 优化ResourceServer安全配置
    8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
    9. 解决前端控制台出错问题
    10. 更新在线文档,增加OAuth2 四种模式验证说明

    v2.5.4.120

    1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
    2. Swagger文档注解全面升级为支持OpenAPI
    3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
    4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
    5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
    6. 修复Bpmn服务默认启动Tomcat问题。
    7. 升级前端依赖包版本
    8. 更新Nacos配置文件及导入包
    9. 更新在线文档

    v2.5.4.110

    1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
    2. 更换Nacos导入包,解决上一版本导入包导入重复问题
    3. Update Readme

    v2.5.4.100

    1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
    2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
    3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
    4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
    5. 增加MySQL数据库默认数据初始化脚本
    6. 增加最新版Nacos配置导入包
    7. 修复前端UI申请APPKEY页面错误
    8. 修复前端UI切换至单体版后,连接错误问题。
    9. 升级前端UI依赖包版本。
    10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

    v2.5.4.90

    1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
    2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
    3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
    4. 新增SQL 注入攻击防控机制。
    5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
    6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
    7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
    8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
    9. 解决修改Redis密码配置生效问题
    10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
    11. 升级依赖包版本
      • spring-boot-admin 升级至 2.5.1
      • git-commit-id-plugin 升级至 4.9.10
      • docker-maven-plugin 升级至 0.37.0
      • hutool 升级至 5.7.10
      • okhttps 升级至 3.1.4
      • JustAuth 升级至1.16.3
      • aliyun-java-sdk-core 升级至 4.5.25
      • baiducloud-java-sdk 升级至 0.10.175
      • aliyun-java-sdk-oss 升级至 3.13.1
      • cn.jpush.api 升级至 3.5.2
    12. 规范项目文档,增加系统部署、数据库切换等多部分内容
    13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
    14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
    15. 解决授权码模式(authorization code)验证码被拦截问题

    v2.5.4.80

    • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
    • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
    • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
    • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
    • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
    • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

    v2.5.4.65

    • 优化Skywalking打包内容,直接使用Skywalking官方容器
    • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
    • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
    • 在Gitee Wiki中,增加数据库初始化说明文档
    • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
    • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

    v2.5.4.60

    • Spring Boot 版本升级至 2.5.4
    • Skywalking 版本升级至 8.7.0
    • 微服务日志输出至日志中心格式。
    • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
    • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
    • 修复Kafka配置不生效问题。
    • 解决单体版自动启动Kafka问题。
    • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

    v2.5.4.55

    • 整合代码,将constant包代码整合至common包中。删除constant包。
    • 完善Rest接口校验机制,以及相关自定义错误码
    • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

    v2.5.4.50

    • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
    • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
    • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
    • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 清理系统无用代码。
    • 增加方法级动态权限演示动图,更新Readme

    v2.5.4.40

    • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
    • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
    • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

    v2.5.4.30

    • 重新调整Property配置,规范Property定义。修改相关配置
    • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
    • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
    • 调整部分常理代码位置,常量代码基本调整完成
    • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
    • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

    v2.5.4.20

    • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
    • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
    • 调整包依赖关系,新建assistant、constant包,删除message包。
    • 逐步将平台中各类非独有常量移入constant包方便管理和修改
    • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
    • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
    • 删除无用代码

    v2.5.4.10

    • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
    • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
    • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
    • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
    • 实现动态权限配置的多服务同步。
    • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
    • 修改配置文件配置
    • 删除无用代码

    v2.5.3.60

    • Nacos版本升级至2.0.3
    • Hutool版本升级至5.7.6
    • 修改部分代码名称
    • 修改配置文件配置参数

    v2.5.3.50

    • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
    • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
    • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
    • 删除无用代码
    • 为动态Scope权限做铺垫。
    • 全面支持方法级权限控制。

    v2.5.3.40

    • Spring Boot 版本升级至 2.5.3
    • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
    • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
    • git commit 插件升级至 5.0.0 版本

    v2.5.3.30

    • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
    • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
    • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
    • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
    • 删除不再使用的通用类代码。
    • 修改说明文档

    v2.5.3.10

    • 自研基于Caffeine和Redis分布式两级缓存
    • 完美支持JPA Hibernate二级缓存
    • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
    • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
    • 极大的简化了原有自研的基于JetCache的缓存使用方式。
    • 保留JetCache,可根据实际使用需要使用。
    • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

    2.5.2.40

    • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
    • jetcache valueEncoder 和 valueDecoder 修改为kryo
    • 部分代码的日志改为传统方式,不再使用@Slf4j注解
    • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
    • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
    • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
    • 将Hibernate Validator替换为spring-boot-starter-validation
    • 删除JPA过期方法封装

    v2.5.2.30

    • Spring Boot 版本升级至2.5.2
    • Spring Boot Admin 版本升级至2.4.2
    • 升级其它相关依赖版本

    v2.5.2.25

    • Skywalking升级至8.6.0

    v2.5.2.20

    • Spring Boot 升级至2.5.1
    • Camunda 升级至7.15.0
    • 其它依赖包版本升级
    • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
    • 结构性调整平台相关配置属性

    v2.5.1.0

    • Spring Boot 大版本升级至2.5.0

    v2.4.5.60

    • 修改负载均衡不生效问题
    • 调整包依赖关系
    • 升级版本

    v2.4.5.48

    • 正式发布开源版本
    ',57),t={render:function(i,l){return a}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-5b482e3b.84072c08.js b/documents/guides/assets/js/v-5b482e3b.84072c08.js deleted file mode 100644 index 8bad440d1..000000000 --- a/documents/guides/assets/js/v-5b482e3b.84072c08.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[961],{7149:(i,l,e)=>{e.r(l),e.d(l,{data:()=>a});const a={key:"v-5b482e3b",path:"/others/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97.html",title:"更新日志",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"v2.5.5.0",slug:"v2-5-4-140",children:[]},{level:2,title:"v2.5.4.130",slug:"v2-5-4-130",children:[]},{level:2,title:"v2.5.4.120",slug:"v2-5-4-120",children:[]},{level:2,title:"v2.5.4.110",slug:"v2-5-4-110",children:[]},{level:2,title:"v2.5.4.100",slug:"v2-5-4-100",children:[]},{level:2,title:"v2.5.4.90",slug:"v2-5-4-90",children:[]},{level:2,title:"v2.5.4.80",slug:"v2-5-4-80",children:[]},{level:2,title:"v2.5.4.65",slug:"v2-5-4-65",children:[]},{level:2,title:"v2.5.4.60",slug:"v2-5-4-60",children:[]},{level:2,title:"v2.5.4.55",slug:"v2-5-4-55",children:[]},{level:2,title:"v2.5.4.50",slug:"v2-5-4-50",children:[]},{level:2,title:"v2.5.4.40",slug:"v2-5-4-40",children:[]},{level:2,title:"v2.5.4.30",slug:"v2-5-4-30",children:[]},{level:2,title:"v2.5.4.20",slug:"v2-5-4-20",children:[]},{level:2,title:"v2.5.4.10",slug:"v2-5-4-10",children:[]},{level:2,title:"v2.5.3.60",slug:"v2-5-3-60",children:[]},{level:2,title:"v2.5.3.50",slug:"v2-5-3-50",children:[]},{level:2,title:"v2.5.3.40",slug:"v2-5-3-40",children:[]},{level:2,title:"v2.5.3.30",slug:"v2-5-3-30",children:[]},{level:2,title:"v2.5.3.10",slug:"v2-5-3-10",children:[]},{level:2,title:"2.5.2.40",slug:"_2-5-2-40",children:[]},{level:2,title:"v2.5.2.30",slug:"v2-5-2-30",children:[]},{level:2,title:"v2.5.2.25",slug:"v2-5-2-25",children:[]},{level:2,title:"v2.5.2.20",slug:"v2-5-2-20",children:[]},{level:2,title:"v2.5.1.0",slug:"v2-5-1-0",children:[]},{level:2,title:"v2.4.5.60",slug:"v2-4-5-60",children:[]},{level:2,title:"v2.4.5.48",slug:"v2-4-5-48",children:[]}],filePathRelative:"others/更新日志.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},1138:(i,l,e)=>{e.r(l),e.d(l,{default:()=>t});const a=(0,e(6252).uE)('

    更新日志

    v2.5.5.0

    1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
    2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
    3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
    4. 修改默认验证码字体配置
    5. 去除无用依赖包
    6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
    7. 新增Camunda 官方脚本
    8. 优化数据导入脚本

    v2.5.4.130

    1. 修复单体版Knife4j依赖错误问题
    2. 修复单体版配置错误问题
    3. 增加Gitee流程模版
    4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
    5. 优化自定义页面显示内容,增加Exception StackTrace输出
    6. 修复XssUtils校验出错问题。
    7. 优化ResourceServer安全配置
    8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
    9. 解决前端控制台出错问题
    10. 更新在线文档,增加OAuth2 四种模式验证说明

    v2.5.4.120

    1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
    2. Swagger文档注解全面升级为支持OpenAPI
    3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
    4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
    5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
    6. 修复Bpmn服务默认启动Tomcat问题。
    7. 升级前端依赖包版本
    8. 更新Nacos配置文件及导入包
    9. 更新在线文档

    v2.5.4.110

    1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
    2. 更换Nacos导入包,解决上一版本导入包导入重复问题
    3. Update Readme

    v2.5.4.100

    1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
    2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
    3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
    4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
    5. 增加MySQL数据库默认数据初始化脚本
    6. 增加最新版Nacos配置导入包
    7. 修复前端UI申请APPKEY页面错误
    8. 修复前端UI切换至单体版后,连接错误问题。
    9. 升级前端UI依赖包版本。
    10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

    v2.5.4.90

    1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
    2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
    3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
    4. 新增SQL 注入攻击防控机制。
    5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
    6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
    7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
    8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
    9. 解决修改Redis密码配置生效问题
    10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
    11. 升级依赖包版本
      • spring-boot-admin 升级至 2.5.1
      • git-commit-id-plugin 升级至 4.9.10
      • docker-maven-plugin 升级至 0.37.0
      • hutool 升级至 5.7.10
      • okhttps 升级至 3.1.4
      • JustAuth 升级至1.16.3
      • aliyun-java-sdk-core 升级至 4.5.25
      • baiducloud-java-sdk 升级至 0.10.175
      • aliyun-java-sdk-oss 升级至 3.13.1
      • cn.jpush.api 升级至 3.5.2
    12. 规范项目文档,增加系统部署、数据库切换等多部分内容
    13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
    14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
    15. 解决授权码模式(authorization code)验证码被拦截问题

    v2.5.4.80

    • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
    • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
    • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
    • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
    • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
    • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

    v2.5.4.65

    • 优化Skywalking打包内容,直接使用Skywalking官方容器
    • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
    • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
    • 在Gitee Wiki中,增加数据库初始化说明文档
    • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
    • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

    v2.5.4.60

    • Spring Boot 版本升级至 2.5.4
    • Skywalking 版本升级至 8.7.0
    • 微服务日志输出至日志中心格式。
    • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
    • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
    • 修复Kafka配置不生效问题。
    • 解决单体版自动启动Kafka问题。
    • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

    v2.5.4.55

    • 整合代码,将constant包代码整合至common包中。删除constant包。
    • 完善Rest接口校验机制,以及相关自定义错误码
    • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

    v2.5.4.50

    • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
    • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
    • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
    • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 清理系统无用代码。
    • 增加方法级动态权限演示动图,更新Readme

    v2.5.4.40

    • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
    • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
    • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

    v2.5.4.30

    • 重新调整Property配置,规范Property定义。修改相关配置
    • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
    • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
    • 调整部分常理代码位置,常量代码基本调整完成
    • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
    • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

    v2.5.4.20

    • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
    • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
    • 调整包依赖关系,新建assistant、constant包,删除message包。
    • 逐步将平台中各类非独有常量移入constant包方便管理和修改
    • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
    • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
    • 删除无用代码

    v2.5.4.10

    • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
    • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
    • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
    • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
    • 实现动态权限配置的多服务同步。
    • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
    • 修改配置文件配置
    • 删除无用代码

    v2.5.3.60

    • Nacos版本升级至2.0.3
    • Hutool版本升级至5.7.6
    • 修改部分代码名称
    • 修改配置文件配置参数

    v2.5.3.50

    • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
    • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
    • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
    • 删除无用代码
    • 为动态Scope权限做铺垫。
    • 全面支持方法级权限控制。

    v2.5.3.40

    • Spring Boot 版本升级至 2.5.3
    • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
    • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
    • git commit 插件升级至 5.0.0 版本

    v2.5.3.30

    • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
    • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
    • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
    • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
    • 删除不再使用的通用类代码。
    • 修改说明文档

    v2.5.3.10

    • 自研基于Caffeine和Redis分布式两级缓存
    • 完美支持JPA Hibernate二级缓存
    • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
    • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
    • 极大的简化了原有自研的基于JetCache的缓存使用方式。
    • 保留JetCache,可根据实际使用需要使用。
    • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

    2.5.2.40

    • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
    • jetcache valueEncoder 和 valueDecoder 修改为kryo
    • 部分代码的日志改为传统方式,不再使用@Slf4j注解
    • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
    • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
    • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
    • 将Hibernate Validator替换为spring-boot-starter-validation
    • 删除JPA过期方法封装

    v2.5.2.30

    • Spring Boot 版本升级至2.5.2
    • Spring Boot Admin 版本升级至2.4.2
    • 升级其它相关依赖版本

    v2.5.2.25

    • Skywalking升级至8.6.0

    v2.5.2.20

    • Spring Boot 升级至2.5.1
    • Camunda 升级至7.15.0
    • 其它依赖包版本升级
    • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
    • 结构性调整平台相关配置属性

    v2.5.1.0

    • Spring Boot 大版本升级至2.5.0

    v2.4.5.60

    • 修改负载均衡不生效问题
    • 调整包依赖关系
    • 升级版本

    v2.4.5.48

    • 正式发布开源版本
    ',55),t={render:function(i,l){return a}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-5fe0d252.2bcef0c2.js b/documents/guides/assets/js/v-5fe0d252.2bcef0c2.js deleted file mode 100644 index 74ccd45cd..000000000 --- a/documents/guides/assets/js/v-5fe0d252.2bcef0c2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[188],{3133:(e,d,t)=>{t.r(d),t.d(d,{data:()=>l});const l={key:"v-5fe0d252",path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",title:"项目介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],filePathRelative:"documents/项目介绍.md",git:{updatedTime:1631030613e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},9735:(e,d,t)=>{t.r(d),t.d(d,{default:()=>o});const l=(0,t(6252).uE)('

    项目介绍

    工程结构

    后端工程结构

    eurynome-cloud\n├── configurations -- 配置文件脚本和统一Docker build上下文目录\n├── dependencies -- 工程Maven顶级依赖,统一控制版本和依赖\n├── documents -- 工程相关文档(会逐步清理,统一采用Gitee Wiki)\n├── packages -- 基础通用依赖包\n├    ├── eurynome-cloud-assistant -- Spring相关公共辅助工具、注解相关工具代码组件\n├    ├── eurynome-cloud-common -- 公共工具类\n├    ├── eurynome-cloud-data -- 数据持久化、数据缓存以及Redis等数据处理相关代码组件\n├    ├── eurynome-cloud-kernel -- 微服务接入平台必备组件\n├    ├── eurynome-cloud-oauth -- OAuth2通用代码\n├    ├── eurynome-cloud-oauth-starter -- 自定义OAuth2 Starter,Athena单体版核心Starter\n├    ├── eurynome-cloud-rest -- Rest相关代码组件\n├    ├── eurynome-cloud-sercurity -- Security通用代码\n├    └── eurynome-cloud-starter -- 微服务核心Starter\n├── platform -- 平台核心服务\n├    ├── eurynome-cloud-gateway -- 服务网关\n├    ├── eurynome-cloud-management -- Spring Boot Admin 监控服务\n├    └── eurynome-cloud-uaa -- 统一认证模块\n├── services -- 平台业务服务\n├    ├── eurynome-cloud-upms-api -- 通用用户权限api \n├    ├── eurynome-cloud-upms-logic -- 通用用户权限service\n├    ├── eurynome-cloud-upms-rest -- 通用用户权限rest 接口\n├    ├── eurynome-cloud-upms-ability -- 通用用户权限服务\n└──  └── eurynome-cloud-bpmn-ability -- 工作流服务 \n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    核心技术

    后端核心技术

    (1)Spring相关核心技术及版本

    组件版本
    Spring Boot2.5.4
    Spring Cloud2020.0.3
    Spring Cloud Alibaba2021.1
    Spring Boot Admin2.5.1
    Nacos2.0.3
    Sentinel1.8.0
    Seata1.3.0

    (2)涉及的相关的技术

    • 持久层框架: Spring Data Jpa & Mybatis Plus
    • API网关:Spring Cloud Gateway
    • 服务注册&发现和配置中心: Alibaba Nacos
    • 服务消费:Spring Cloud OpenFeign & RestTemplate & OkHttps
    • 负载均衡:Spring Cloud Loadbalancer
    • 服务熔断&降级&限流:Alibaba Sentinel
    • 服务监控:Spring Boot Admin
    • 消息队列:使用 Spring Cloud 消息总线 Spring Cloud Bus 默认 Kafka 适配RabbitMQ
    • 链路跟踪:Skywalking
    • 分布式事务:Seata
    • 数据缓存:JetCache + Redis + Caffeine
    • 数据库: PostgresqlMySQLOracle ...
    • JSON序列化:Jackson & FastJson
    • 文件服务:阿里云OSS/Minio
    • 数据调试:p6spy
    • 日志中心:ELK
    • 日志收集:Logstash Logback Encoder

    前端核心技术

    • Vue2
    • Vuex
    • Vue-router
    • Vue-cli
    • Axios
    • Vuetify
    • Bpmn.js
    • Localforage

    版本关系

    组件版本关系

    Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
    2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
    2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
    2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
    2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
    2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
    2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
    2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

    毕业版本关系(推荐使用)

    Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot Version
    Spring Cloud 2020.0.12021.12.4.2
    Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE
    Spring Cloud Greenwich.SR62.1.4.RELEASE2.1.13.RELEASE
    Spring Cloud Hoxton.SR32.2.1.RELEASE2.2.5.RELEASE
    Spring Cloud Hoxton.RELEASE2.2.0.RELEASE2.2.X.RELEASE
    Spring Cloud Greenwich2.1.2.RELEASE2.1.X.RELEASE
    Spring Cloud Finchley2.0.4.RELEASE(停止维护,建议升级)2.0.X.RELEASE
    Spring Cloud Edgware1.5.1.RELEASE(停止维护,建议升级)1.5.X.RELEASE

    功能介绍

    [1]、统一安全认证中心

    • OAuth2 安全认证

    支持 OAuth2 授权码模式、隐式授权码模式(简单模式)、密码模式和客户端模式四种登录模式

    • JWT Token令牌

    采用JWT对OAuth2 Token进行加密

    • 自定义OAuth2页面

    自定义OAuth2 login、confirm、error页面,提升系统使用用户体验。可结合自身需求进行修改。

    • OAuth2 登录验证码

    OAuth2登录增加验证码保护,支持gif、中文、算数等类型,可通过配置进行修改以及是否显示验证码控制

    • OAuth2登录数据加密传输

    基于AES对 OAuth2 登录数据进行动态加密传输,可通过配置对表单参数名进行动态配置,提升系统安全性

    • 平台权限管理

    基于RBAC模型,以角色和接口为核心,使用统一逻辑实现@PreAuthorize注解权限与URL权限的全面整合及动态可配置化。统一平台接口白名单,IP地址白名单,以及Scope绑定URL的管理。无须配置Security权限注解,支持URL粒度的鉴权和用户权限的动态配置。 完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服务多实例等各种应用场景。

    • User、Client数据策略访问

    支持OAuth2 UserDetailsClientDetails数据直连数据库和Feign两种数据获取策略模式,OAuth2直连数据库性能更优,Feign访问数据服务独立可动态扩展。可通过配置动态修改具体采用哪种策略。

    • 手机短信验证码注册和登录

    支持通过手机验证码登录认证,与平台为统一体系,统一返回OAuth2 Token,支持服务接口鉴权

    • 第三方系统社交注册和登录

    基于 JustAuth 实现第三方系统社交登录认证,,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权,。所有 JustAuth 支持的第三方系统均支持。

    • 微信小程序注册和登录

    支持微信小程序登录认证,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权。

    • 其它注册和登录

    采用策略模式对外部登录和注册进行支持,目前未支持的登录,可参考标准,动态扩展,即可支持。

    [2]、统一服务访问网关

    • 网关动态路由

    基于GatewayNacos实现服务网关动态路由,无须增加任何配置,即可支持服务的发现与路由

    • 网关服务鉴权: 服务网关集成部分权限认证功能,提升系统安全性,降低平台压力

    • 网关服务限流

    基于Sentinel实现服务的限流,支持基于Gateway Filter的自定义限流

    • 动态文档聚合: 网关动态Swagger文档聚合,使用Swagger 3.0,支持Knife4j增强。不同环境访问控制

    • 统一跨域处理

    基于Gateway实现统一跨域处理

    • 统一错误处理

    平台统一错误处理,支持自定义错误码体系

    • 自定义动态路由

    支持基于DB的动态路由管理与路由规则配置

    [3]、微服务架构支撑

    • 服务注册发现

    基于Nacos实现服务的注册与发现。

    • 服务负载均衡

    Spring Cloud Netflix 停止维护,使用 Spring Cloud Loadbalancer 全面替换Ribbon

    • 服务熔断降级

    整合OpenFeignSentinel,从熔断降级、系统负载保护、热点防护等多个维度来保障微服务的稳定性

    • 统一配置中心

    基于 Nacos 搭建的统一配置中心,支持配置文件自动导入和关键信息加密,可根据文件夹名称自动分组配置。

    • 统一日志中心

    采用TCP直连的方式采集和发送日志,集成 Skywalking TraceID 实现日志聚合及ELK日志分析。通过 @EnableXXX 注解开启或关闭日志采集功能。

    • 分布任务调度

    极简集成 xxl-job,支持分布式任务调度功能

    • 分布事务处理

    集成 Seata,支持分布式事务,无代码侵入,灵活便捷

    • 分布对象存储

    支持 Minio 分布式对象存储。同时,集成阿里云OSS,可通过 @EnableXXX 注解开启或关闭功能。

    • 分布式工作流

    Camunda 引擎为基础定义分布式工作流引擎,提供自研人事信息管理以及人事管理体系与工作流用户体系的实时集成

    [4]、微服务运行监控

    • 服务调用链监控

    集成 Skywalking 进行服务调用链的监控,调用链监控深度可延伸至Undertow、数据库、Redis

    • 应用吞吐量监控

    集成 Skywalking 进行应用吞吐量监控

    • 熔断、降级监控

    集成 Sentinel 进行服务的熔断、降级监控

    • 微服务状态监控

    集成 Spring Boot Admin 进行服务运行状态的监控

    [5]、数据自动化处理

    • 数据模型初始化

    RBACOAuth2 部分核心表、Camunda 数据表,在初始部署过程中为自动化创建

    • 核心应用数据初始化

    RBACOAuth2 等核心数据,在初始部署过程中为自动化导入

    • URL权限数据动态汇总

    自动扫描URL接口作为权限汇总存入系统,根据URL相关信息生成唯一ID,多次导入数据不会重复。可通过配置动态开启或修改扫描内容

    • Yml配置自动导入

    服务所需使用的配置文件,可自动根据文件夹进行分组并导入到 Nacos 中。

    [6]、服务开发支撑

    • 通用CRUD封装

    各种类型的代码生成器较多,结合实际应用使用效果来看,代码生成器在实际开发中使用频率低于理想预期。因此,没有考虑提供代码生成器,而是对常规的CRUD进行了多层次的封装,使定制化服务的开发更加便捷。

    • 自研两级缓存封装

    自研基于 CaffeineRedis 分布式两级缓存,完美支持JPA Hibernate二级缓存,完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。实现基于CaffeineHibernate 二级缓存,可与自研两级缓存快速切换,仅使用本地缓存创建Key繁琐和分页数据无法更新的问题

    • 多类型数据库支持

    默认采用 PostgreSQL 数据库,支持 MySQLOracleH2等多种关系型数据库,无须修改代码可动态切换。数据层同时支持 Spring Data JpaMybatis Plus

    • 多消息队列支持

    适配 RabbitMQKafka,默认使用 Kafka,支持消息总线(Spring Cloud Bus)

    • 多种服务调用方式

    默认采用 OpenFeign 进行服务间调用,支持 RestTemplateOkHttps

    • 共享式多环境切换

    共享式、统一化多环境配置模式,Yml、Docker均采用此方式配置,避免类似的服务配置、Dockerfile配置导出复制和修改的问题

    • 多团队开发管理

    支持多团队开发,可针对各个团队开发服务,进行单独的授权配置。

    • 注解模型模块模式

    除必要依赖逻辑以及强注入顺序要求的模块采用 Spring SPI(spring.factories)机制外,其它功能模块均采用 @EnableXXX 注解编程模型,可选择性进行控制是否开启对应模块,减少不必要的依赖注入和启动。

    • 代码打包记录查询

    对代码编译信息进行记录,可查询代码版本以及编译时间等相关信息,方便运维人员更好的掌握代码信息。

    • 人事信息管理

    除已有的用户体系外,集成单位、部门、人员等人事管理功能,满足大多数人事管理场景,并与 Camunda 工作流用户体系无缝整合,实现数据实时同步。

    [7]、信息发送集成

    • 微信小程序订阅消息

    支持微信小程序订阅消息发送。提供订阅消息模版工厂,可根据自身业务需求,编写少量代码既可以拓展支持新订阅消息模版。

    • 极光消息推送集成

    集成极光消息推送,对极光后台API进行封装,封装度高、调用方便,可快速与自定义业务需求整合,通过 @EnableXXX 注解开启或关闭。

    • 环信消息集成

    集成环信IM和消息推送,使用更加便捷,可在应用中根据自定义需求快速整合和拓展IM,发送手机推送消息。通过 @EnableXXX 注解开启或关闭。

    • 多通道SMS集成

    集成阿里、百度、中国移动、华为、京东、极光、网易、七牛、腾讯、又拍、云片等平台短信发送通道。可通过配置动态选择具体使用通道。支持多模版定义以及模版参数顺序控制

    [8]、内容审核集成

    • 阿里云内容审核

    集成阿里云内容审核,支持文本、图片、音频、视频、网页内容审核,支持同步审核、异步审核、异步 Callback 方式审核通过 @EnableXXX 注解开启或关闭。

    • 微信小程序内容审核

    集成微信小程序内容审核,支持文本、图片、音频内容审核,支持同步、异步审核。通过 @EnableXXX 注解开启或关闭。

    • 百度证照识别

    集成百度证照审核,支持营业执照、身份证 OCR 识别。通过 @EnableXXX 注解开启或关闭。

    • 天眼查企业信息查询

    集成天眼查企业信息查询。通过 @EnableXXX 注解开启或关闭。

    ',128),o={render:function(e,d){return l}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-5fe0d252.3d9cf07d.js b/documents/guides/assets/js/v-5fe0d252.3d9cf07d.js new file mode 100644 index 000000000..77e5f2d86 --- /dev/null +++ b/documents/guides/assets/js/v-5fe0d252.3d9cf07d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[188],{3133:(e,d,t)=>{t.r(d),t.d(d,{data:()=>l});const l={key:"v-5fe0d252",path:"/documents/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D.html",title:"项目介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"工程结构",slug:"工程结构",children:[{level:3,title:"后端工程结构",slug:"后端工程结构",children:[]}]},{level:2,title:"核心技术",slug:"核心技术",children:[{level:3,title:"后端核心技术",slug:"后端核心技术",children:[]},{level:3,title:"前端核心技术",slug:"前端核心技术",children:[]}]},{level:2,title:"版本关系",slug:"版本关系",children:[{level:3,title:"组件版本关系",slug:"组件版本关系",children:[]},{level:3,title:"毕业版本关系(推荐使用)",slug:"毕业版本关系-推荐使用",children:[]}]},{level:2,title:"功能介绍",slug:"功能介绍",children:[{level:3,title:"[1]、统一安全认证中心",slug:"_1-、统一安全认证中心",children:[]},{level:3,title:"[2]、统一服务访问网关",slug:"_2-、统一服务访问网关",children:[]},{level:3,title:"[3]、微服务架构支撑",slug:"_3-、微服务架构支撑",children:[]},{level:3,title:"[4]、微服务运行监控",slug:"_4-、微服务运行监控",children:[]},{level:3,title:"[5]、数据自动化处理",slug:"_5-、数据自动化处理",children:[]},{level:3,title:"[6]、服务开发支撑",slug:"_6-、服务开发支撑",children:[]},{level:3,title:"[7]、信息发送集成",slug:"_7-、信息发送集成",children:[]},{level:3,title:"[8]、内容审核集成",slug:"_8-、内容审核集成",children:[]}]}],filePathRelative:"documents/项目介绍.md",git:{updatedTime:1631030613e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},8108:(e,d,t)=>{t.r(d),t.d(d,{default:()=>o});const l=(0,t(6252).uE)('

    项目介绍

    工程结构

    后端工程结构

    eurynome-cloud\n├── configurations -- 配置文件脚本和统一Docker build上下文目录\n├── dependencies -- 工程Maven顶级依赖,统一控制版本和依赖\n├── documents -- 工程相关文档(会逐步清理,统一采用Gitee Wiki)\n├── packages -- 基础通用依赖包\n├    ├── eurynome-cloud-assistant -- Spring相关公共辅助工具、注解相关工具代码组件\n├    ├── eurynome-cloud-common -- 公共工具类\n├    ├── eurynome-cloud-data -- 数据持久化、数据缓存以及Redis等数据处理相关代码组件\n├    ├── eurynome-cloud-kernel -- 微服务接入平台必备组件\n├    ├── eurynome-cloud-oauth -- OAuth2通用代码\n├    ├── eurynome-cloud-oauth-starter -- 自定义OAuth2 Starter,Athena单体版核心Starter\n├    ├── eurynome-cloud-rest -- Rest相关代码组件\n├    ├── eurynome-cloud-sercurity -- Security通用代码\n├    └── eurynome-cloud-starter -- 微服务核心Starter\n├── platform -- 平台核心服务\n├    ├── eurynome-cloud-gateway -- 服务网关\n├    ├── eurynome-cloud-management -- Spring Boot Admin 监控服务\n├    └── eurynome-cloud-uaa -- 统一认证模块\n├── services -- 平台业务服务\n├    ├── eurynome-cloud-upms-api -- 通用用户权限api \n├    ├── eurynome-cloud-upms-logic -- 通用用户权限service\n├    ├── eurynome-cloud-upms-rest -- 通用用户权限rest 接口\n├    ├── eurynome-cloud-upms-ability -- 通用用户权限服务\n└──  └── eurynome-cloud-bpmn-ability -- 工作流服务 \n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    核心技术

    后端核心技术

    (1)Spring相关核心技术及版本

    组件版本
    Spring Boot2.5.5
    Spring Cloud2020.0.4
    Spring Cloud Alibaba2021.1
    Spring Boot Admin2.5.1
    Nacos2.0.3
    Sentinel1.8.0
    Seata1.3.0

    (2)涉及的相关的技术

    • 持久层框架: Spring Data Jpa & Mybatis Plus
    • API网关:Spring Cloud Gateway
    • 服务注册&发现和配置中心: Alibaba Nacos
    • 服务消费:Spring Cloud OpenFeign & RestTemplate & OkHttps
    • 负载均衡:Spring Cloud Loadbalancer
    • 服务熔断&降级&限流:Alibaba Sentinel
    • 服务监控:Spring Boot Admin
    • 消息队列:使用 Spring Cloud 消息总线 Spring Cloud Bus 默认 Kafka 适配RabbitMQ
    • 链路跟踪:Skywalking
    • 分布式事务:Seata
    • 数据缓存:JetCache + Redis + Caffeine, 自定义多级缓存
    • 数据库: PostgresqlMySQLOracle ...
    • JSON序列化:Jackson & FastJson
    • 文件服务:阿里云OSS/Minio
    • 数据调试:p6spy
    • 在线文档:Springdoc + Swagger 3 + OpenAPI
    • 日志中心:ELK
    • 日志收集:Logstash Logback Encoder
    • 数据同步:Debezimu
    • 外部集成:JustAuthWxJava,多种短信API
    • 工作流引擎:Camunda

    前端核心技术

    • Vue2
    • Vuex
    • Vue-router
    • Vue-cli
    • Axios
    • Vuetify
    • Bpmn.js
    • Localforage
    • Rollup
    • Lerna

    版本关系

    组件版本关系

    Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
    2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
    2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
    2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
    2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
    2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
    2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
    2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

    毕业版本关系(推荐使用)

    Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot Version
    Spring Cloud 2020.0.12021.12.4.2
    Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE
    Spring Cloud Greenwich.SR62.1.4.RELEASE2.1.13.RELEASE
    Spring Cloud Hoxton.SR32.2.1.RELEASE2.2.5.RELEASE
    Spring Cloud Hoxton.RELEASE2.2.0.RELEASE2.2.X.RELEASE
    Spring Cloud Greenwich2.1.2.RELEASE2.1.X.RELEASE
    Spring Cloud Finchley2.0.4.RELEASE(停止维护,建议升级)2.0.X.RELEASE
    Spring Cloud Edgware1.5.1.RELEASE(停止维护,建议升级)1.5.X.RELEASE

    功能介绍

    [1]、统一安全认证中心

    • OAuth2 安全认证

    支持 OAuth2 授权码模式、隐式授权码模式(简单模式)、密码模式和客户端模式四种登录模式

    • JWT Token令牌

    采用JWT对OAuth2 Token进行加密

    • 自定义OAuth2页面

    自定义OAuth2 login、confirm、error页面,提升系统使用用户体验。可结合自身需求进行修改。

    • OAuth2 登录验证码

    OAuth2登录增加验证码保护,支持gif、中文、算数等类型,可通过配置进行修改以及是否显示验证码控制

    • OAuth2登录数据加密传输

    基于AES对 OAuth2 登录数据进行动态加密传输,可通过配置对表单参数名进行动态配置,提升系统安全性

    • 平台权限管理

    基于RBAC模型,以角色和接口为核心,使用统一逻辑实现@PreAuthorize注解权限与URL权限的全面整合及动态可配置化。统一平台接口白名单,IP地址白名单,以及Scope绑定URL的管理。无须配置Security权限注解,支持URL粒度的鉴权和用户权限的动态配置。 完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服务多实例等各种应用场景。

    • User、Client数据策略访问

    支持OAuth2 UserDetailsClientDetails数据直连数据库和Feign两种数据获取策略模式,OAuth2直连数据库性能更优,Feign访问数据服务独立可动态扩展。可通过配置动态修改具体采用哪种策略。

    • 手机短信验证码注册和登录

    支持通过手机验证码登录认证,与平台为统一体系,统一返回OAuth2 Token,支持服务接口鉴权

    • 第三方系统社交注册和登录

    基于 JustAuth 实现第三方系统社交登录认证,,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权,。所有 JustAuth 支持的第三方系统均支持。

    • 微信小程序注册和登录

    支持微信小程序登录认证,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权。

    • 其它注册和登录

    采用策略模式对外部登录和注册进行支持,目前未支持的登录,可参考标准,动态扩展,即可支持。

    [2]、统一服务访问网关

    • 网关动态路由

    基于GatewayNacos实现服务网关动态路由,无须增加任何配置,即可支持服务的发现与路由

    • 网关服务鉴权: 服务网关集成部分权限认证功能,提升系统安全性,降低平台压力

    • 网关服务限流

    基于Sentinel实现服务的限流,支持基于Gateway Filter的自定义限流

    • 动态文档聚合: 网关动态Swagger文档聚合,使用Swagger 3.0,支持Knife4j增强。不同环境访问控制

    • 统一跨域处理

    基于Gateway实现统一跨域处理

    • 统一错误处理

    平台统一错误处理,支持自定义错误码体系

    • 自定义动态路由

    支持基于DB的动态路由管理与路由规则配置

    [3]、微服务架构支撑

    • 服务注册发现

    基于Nacos实现服务的注册与发现。

    • 服务负载均衡

    Spring Cloud Netflix 停止维护,使用 Spring Cloud Loadbalancer 全面替换Ribbon

    • 服务熔断降级

    整合OpenFeignSentinel,从熔断降级、系统负载保护、热点防护等多个维度来保障微服务的稳定性

    • 统一配置中心

    基于 Nacos 搭建的统一配置中心,支持配置文件自动导入和关键信息加密,可根据文件夹名称自动分组配置。

    • 统一日志中心

    采用TCP直连的方式采集和发送日志,集成 Skywalking TraceID 实现日志聚合及ELK日志分析。通过 @EnableXXX 注解开启或关闭日志采集功能。

    • 分布任务调度

    极简集成 xxl-job,支持分布式任务调度功能

    • 分布事务处理

    集成 Seata,支持分布式事务,无代码侵入,灵活便捷

    • 分布对象存储

    支持 Minio 分布式对象存储。同时,集成阿里云OSS,可通过 @EnableXXX 注解开启或关闭功能。

    • 分布式工作流

    Camunda 引擎为基础定义分布式工作流引擎,提供自研人事信息管理以及人事管理体系与工作流用户体系的实时集成

    [4]、微服务运行监控

    • 服务调用链监控

    集成 Skywalking 进行服务调用链的监控,调用链监控深度可延伸至Undertow、数据库、Redis

    • 应用吞吐量监控

    集成 Skywalking 进行应用吞吐量监控

    • 熔断、降级监控

    集成 Sentinel 进行服务的熔断、降级监控

    • 微服务状态监控

    集成 Spring Boot Admin 进行服务运行状态的监控

    [5]、数据自动化处理

    • 数据模型初始化

    RBACOAuth2 部分核心表、Camunda 数据表,在初始部署过程中为自动化创建

    • 核心应用数据初始化

    RBACOAuth2 等核心数据,在初始部署过程中为自动化导入

    • URL权限数据动态汇总

    自动扫描URL接口作为权限汇总存入系统,根据URL相关信息生成唯一ID,多次导入数据不会重复。可通过配置动态开启或修改扫描内容

    • Yml配置自动导入

    服务所需使用的配置文件,可自动根据文件夹进行分组并导入到 Nacos 中。

    [6]、服务开发支撑

    • 通用CRUD封装

    各种类型的代码生成器较多,结合实际应用使用效果来看,代码生成器在实际开发中使用频率低于理想预期。因此,没有考虑提供代码生成器,而是对常规的CRUD进行了多层次的封装,使定制化服务的开发更加便捷。

    • 自研两级缓存封装

    自研基于 CaffeineRedis 分布式两级缓存,完美支持JPA Hibernate二级缓存,完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。实现基于CaffeineHibernate 二级缓存,可与自研两级缓存快速切换,仅使用本地缓存创建Key繁琐和分页数据无法更新的问题

    • 多类型数据库支持

    默认采用 PostgreSQL 数据库,支持 MySQLOracleH2等多种关系型数据库,无须修改代码可动态切换。数据层同时支持 Spring Data JpaMybatis Plus

    • 多消息队列支持

    适配 RabbitMQKafka,默认使用 Kafka,支持消息总线(Spring Cloud Bus)

    • 多种服务调用方式

    默认采用 OpenFeign 进行服务间调用,支持 RestTemplateOkHttps

    • 共享式多环境切换

    共享式、统一化多环境配置模式,Yml、Docker均采用此方式配置,避免类似的服务配置、Dockerfile配置导出复制和修改的问题

    • 多团队开发管理

    支持多团队开发,可针对各个团队开发服务,进行单独的授权配置。

    • 注解模型模块模式

    除必要依赖逻辑以及强注入顺序要求的模块采用 Spring SPI(spring.factories)机制外,其它功能模块均采用 @EnableXXX 注解编程模型,可选择性进行控制是否开启对应模块,减少不必要的依赖注入和启动。

    • 代码打包记录查询

    对代码编译信息进行记录,可查询代码版本以及编译时间等相关信息,方便运维人员更好的掌握代码信息。

    • 人事信息管理

    除已有的用户体系外,集成单位、部门、人员等人事管理功能,满足大多数人事管理场景,并与 Camunda 工作流用户体系无缝整合,实现数据实时同步。

    [7]、信息发送集成

    • 微信小程序订阅消息

    支持微信小程序订阅消息发送。提供订阅消息模版工厂,可根据自身业务需求,编写少量代码既可以拓展支持新订阅消息模版。

    • 极光消息推送集成

    集成极光消息推送,对极光后台API进行封装,封装度高、调用方便,可快速与自定义业务需求整合,通过 @EnableXXX 注解开启或关闭。

    • 环信消息集成

    集成环信IM和消息推送,使用更加便捷,可在应用中根据自定义需求快速整合和拓展IM,发送手机推送消息。通过 @EnableXXX 注解开启或关闭。

    • 多通道SMS集成

    集成阿里、百度、中国移动、华为、京东、极光、网易、七牛、腾讯、又拍、云片等平台短信发送通道。可通过配置动态选择具体使用通道。支持多模版定义以及模版参数顺序控制

    [8]、内容审核集成

    • 阿里云内容审核

    集成阿里云内容审核,支持文本、图片、音频、视频、网页内容审核,支持同步审核、异步审核、异步 Callback 方式审核通过 @EnableXXX 注解开启或关闭。

    • 微信小程序内容审核

    集成微信小程序内容审核,支持文本、图片、音频内容审核,支持同步、异步审核。通过 @EnableXXX 注解开启或关闭。

    • 百度证照识别

    集成百度证照审核,支持营业执照、身份证 OCR 识别。通过 @EnableXXX 注解开启或关闭。

    • 天眼查企业信息查询

    集成天眼查企业信息查询。通过 @EnableXXX 注解开启或关闭。

    ',128),o={render:function(e,d){return l}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-b68b64a4.fc7bff93.js b/documents/guides/assets/js/v-b68b64a4.fc7bff93.js new file mode 100644 index 000000000..4c84b7b27 --- /dev/null +++ b/documents/guides/assets/js/v-b68b64a4.fc7bff93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[892],{4548:(e,r,l)=>{l.r(r),l.d(r,{data:()=>n});const n={key:"v-b68b64a4",path:"/documents/%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6.html",title:"依赖组件",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"前端框架",slug:"前端框架",children:[]},{level:2,title:"基础框架组件",slug:"基础框架组件",children:[]},{level:2,title:"IOC组件",slug:"ioc组件",children:[]},{level:2,title:"表单校验组件",slug:"表单校验组件",children:[]},{level:2,title:"离线存储组件",slug:"离线存储组件",children:[]},{level:2,title:"消息提示框组件",slug:"消息提示框组件",children:[]},{level:2,title:"工作流编辑器组件",slug:"工作流编辑器组件",children:[]},{level:2,title:"通用工具库组件",slug:"通用工具库组件",children:[]},{level:2,title:"图标库",slug:"图标库",children:[]}],filePathRelative:"documents/依赖组件.md",git:{updatedTime:null,contributors:[]}}},132:(e,r,l)=>{l.r(r),l.d(r,{default:()=>X});var n=l(6252);const t=(0,n._)("h1",{id:"依赖组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#依赖组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 依赖组件")],-1),a=(0,n._)("p",null,"系统使用到的相关组件",-1),o=(0,n._)("h2",{id:"前端框架",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#前端框架","aria-hidden":"true"},"#"),(0,n.Uk)(" 前端框架")],-1),i={href:"https://cn.vuejs.org/",target:"_blank",rel:"noopener noreferrer"},h=(0,n.Uk)("Vue"),u={href:"https://cli.vuejs.org/zh/guide/",target:"_blank",rel:"noopener noreferrer"},s=(0,n.Uk)("Vue cli"),d={href:"https://class-component.vuejs.org/",target:"_blank",rel:"noopener noreferrer"},_=(0,n.Uk)("Vue Class Component"),c={href:"https://www.npmjs.com/package/vue-property-decorator",target:"_blank",rel:"noopener noreferrer"},p=(0,n.Uk)("Vue property decorator"),m=(0,n._)("h2",{id:"基础框架组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#基础框架组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 基础框架组件")],-1),f={href:"https://vuetifyjs.com/zh-Hans/",target:"_blank",rel:"noopener noreferrer"},k=(0,n.Uk)("Vuetify"),g=(0,n._)("h2",{id:"ioc组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#ioc组件","aria-hidden":"true"},"#"),(0,n.Uk)(" IOC组件")],-1),b={href:"https://www.npmjs.com/package/typescript-ioc",target:"_blank",rel:"noopener noreferrer"},U=(0,n.Uk)("typescript-ioc"),v=(0,n.Uk)("。"),w=(0,n._)("div",{class:"custom-container tip"},[(0,n._)("p",{class:"custom-container-title"},"说明"),(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("strong",null,"优点"),(0,n.Uk)(":和Spring非常像的 Typescript IOC 组件,用着非常方便。")]),(0,n._)("li",null,[(0,n._)("strong",null,"缺点"),(0,n.Uk)(":一年多未更新了。")])])],-1),W=(0,n._)("h2",{id:"表单校验组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#表单校验组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 表单校验组件")],-1),j={href:"https://vee-validate.logaretm.com/v4/",target:"_blank",rel:"noopener noreferrer"},x=(0,n.Uk)("VeeValidate"),y=(0,n._)("h2",{id:"离线存储组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#离线存储组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 离线存储组件")],-1),C={href:"http://localforage.docschina.org/",target:"_blank",rel:"noopener noreferrer"},B=(0,n.Uk)("LocalForage"),V=(0,n._)("h2",{id:"消息提示框组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#消息提示框组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 消息提示框组件")],-1),E={href:"https://sweetalert2.github.io/",target:"_blank",rel:"noopener noreferrer"},z=(0,n.Uk)("Sweetalert2"),O=(0,n._)("h2",{id:"工作流编辑器组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#工作流编辑器组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 工作流编辑器组件")],-1),I={href:"https://github.com/bpmn-io/bpmn-js",target:"_blank",rel:"noopener noreferrer"},L=(0,n.Uk)("bpmn-js"),D={href:"https://github.com/bpmn-io/bpmn-js-properties-panel",target:"_blank",rel:"noopener noreferrer"},H=(0,n.Uk)("bpmn-js-properties-panel"),N={href:"https://github.com/camunda/camunda-bpmn-moddle/commits/master",target:"_blank",rel:"noopener noreferrer"},S=(0,n.Uk)("camunda-bpmn-moddle"),T=(0,n._)("h2",{id:"通用工具库组件",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#通用工具库组件","aria-hidden":"true"},"#"),(0,n.Uk)(" 通用工具库组件")],-1),A={href:"https://www.axios-http.cn/docs/intro",target:"_blank",rel:"noopener noreferrer"},F=(0,n.Uk)("Axios"),M={href:"https://ricostacruz.com/nprogress/",target:"_blank",rel:"noopener noreferrer"},P=(0,n.Uk)("Nprogress"),R={href:"http://momentjs.cn/docs/",target:"_blank",rel:"noopener noreferrer"},Y=(0,n.Uk)("Moment.js"),q={href:"https://www.lodashjs.com/",target:"_blank",rel:"noopener noreferrer"},G=(0,n.Uk)("Lodash"),J=(0,n._)("h2",{id:"图标库",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#图标库","aria-hidden":"true"},"#"),(0,n.Uk)(" 图标库")],-1),K={href:"https://pictogrammers.github.io/@mdi/font/5.9.55/",target:"_blank",rel:"noopener noreferrer"},Q=(0,n.Uk)("@mdi/font"),X={render:function(e,r){const l=(0,n.up)("OutboundLink");return(0,n.wg)(),(0,n.iD)(n.HY,null,[t,a,o,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",i,[h,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",u,[s,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",d,[_,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",c,[p,(0,n.Wm)(l)])])]),m,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",f,[k,(0,n.Wm)(l)])])]),g,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",b,[U,(0,n.Wm)(l)]),v])]),w,W,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",j,[x,(0,n.Wm)(l)])])]),y,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",C,[B,(0,n.Wm)(l)])])]),V,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",E,[z,(0,n.Wm)(l)])])]),O,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",I,[L,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",D,[H,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",N,[S,(0,n.Wm)(l)])])]),T,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",A,[F,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",M,[P,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",R,[Y,(0,n.Wm)(l)])]),(0,n._)("li",null,[(0,n._)("a",q,[G,(0,n.Wm)(l)])])]),J,(0,n._)("ul",null,[(0,n._)("li",null,[(0,n._)("a",K,[Q,(0,n.Wm)(l)])])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-c0f957a0.2d350416.js b/documents/guides/assets/js/v-c0f957a0.e5ad57f0.js similarity index 95% rename from documents/guides/assets/js/v-c0f957a0.2d350416.js rename to documents/guides/assets/js/v-c0f957a0.e5ad57f0.js index 0d8cd2b94..71a41e83f 100644 --- a/documents/guides/assets/js/v-c0f957a0.2d350416.js +++ b/documents/guides/assets/js/v-c0f957a0.e5ad57f0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[781],{3597:(e,a,t)=>{t.r(a),t.d(a,{data:()=>r});const r={key:"v-c0f957a0",path:"/documents/",title:"介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],filePathRelative:"documents/README.md",git:{updatedTime:1631389061e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:3}]}}},3988:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var r=t(6252);const i=(0,r.uE)('

    介绍

    Eurynome Cloud 微服务架构


    JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

    提示

    有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

    Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

    总体架构

    架构图

    功能演示

    提示

    有特点的功能,正在逐步添加。

    [1]、基于URL的方法级动态权限配置

    架构图

    [2]、服务调用链监控

    架构图

    版本号说明

    本系统版本号,分为四段。

    • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
    • 第三段,表示系统功能的变化
    • 第四段,表示系统功能维护及优化情况

    交流反馈

    ',18),o=(0,r.Uk)("有问题欢迎提交"),l={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},s=(0,r.Uk)("ISSUS"),n=(0,r.Uk)(" ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。"),d=(0,r._)("li",null,"邮箱:herodotus@aliyun.com",-1),h=(0,r.Uk)("QQ群:"),c={href:"https://jq.qq.com/?_wv=1027&k=bIerJVy8",target:"_blank",rel:"noopener noreferrer"},u=(0,r.Uk)("922565573"),g={render:function(e,a){const t=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[i,(0,r._)("ul",null,[(0,r._)("li",null,[o,(0,r._)("a",l,[s,(0,r.Wm)(t)]),n]),d,(0,r._)("li",null,[h,(0,r._)("a",c,[u,(0,r.Wm)(t)])])])],64)}}}}]); \ No newline at end of file +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[781],{3597:(e,a,t)=>{t.r(a),t.d(a,{data:()=>r});const r={key:"v-c0f957a0",path:"/documents/",title:"介绍",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"总体架构",slug:"总体架构",children:[]},{level:2,title:"功能演示",slug:"功能演示",children:[{level:3,title:"[1]、基于URL的方法级动态权限配置",slug:"_1-、基于url的方法级动态权限配置",children:[]},{level:3,title:"[2]、服务调用链监控",slug:"_2-、服务调用链监控",children:[]}]},{level:2,title:"版本号说明",slug:"版本号说明",children:[]},{level:2,title:"交流反馈",slug:"交流反馈",children:[]}],filePathRelative:"documents/README.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:4}]}}},5180:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var r=t(6252);const i=(0,r.uE)('

    介绍

    Eurynome Cloud 微服务架构


    JDK 1.8+  Spring Boot 2.5.5  Spring Cloud 2020.0.4  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

    提示

    有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

    Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

    总体架构

    架构图

    功能演示

    提示

    有特点的功能,正在逐步添加。

    [1]、基于URL的方法级动态权限配置

    架构图

    [2]、服务调用链监控

    架构图

    版本号说明

    本系统版本号,分为四段。

    • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
    • 第三段,表示系统功能的变化
    • 第四段,表示系统功能维护及优化情况

    交流反馈

    ',18),o=(0,r.Uk)("有问题欢迎提交"),l={href:"https://gitee.com/herodotus/eurynome-cloud/issues",target:"_blank",rel:"noopener noreferrer"},s=(0,r.Uk)("ISSUS"),n=(0,r.Uk)(" ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。"),d=(0,r._)("li",null,"邮箱:herodotus@aliyun.com",-1),h=(0,r.Uk)("QQ群:"),c={href:"https://jq.qq.com/?_wv=1027&k=bIerJVy8",target:"_blank",rel:"noopener noreferrer"},u=(0,r.Uk)("922565573"),g={render:function(e,a){const t=(0,r.up)("OutboundLink");return(0,r.wg)(),(0,r.iD)(r.HY,null,[i,(0,r._)("ul",null,[(0,r._)("li",null,[o,(0,r._)("a",l,[s,(0,r.Wm)(t)]),n]),d,(0,r._)("li",null,[h,(0,r._)("a",c,[u,(0,r.Wm)(t)])])])],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-d0b8a61e.6ac01707.js b/documents/guides/assets/js/v-d0b8a61e.6ac01707.js new file mode 100644 index 000000000..57f0df017 --- /dev/null +++ b/documents/guides/assets/js/v-d0b8a61e.6ac01707.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[216],{875:(e,t,a)=>{a.r(t),a.d(t,{data:()=>n});const n={key:"v-d0b8a61e",path:"/configurations/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE.html",title:"系统配置",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[],filePathRelative:"configurations/系统配置.md",git:{updatedTime:null,contributors:[]}}},9132:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var n=a(6252);const r={id:"系统配置",tabindex:"-1"},d=[(0,n._)("a",{class:"header-anchor",href:"#系统配置","aria-hidden":"true"},"#",-1),(0,n.Uk)(" 系统配置")],u={render:function(e,t){return(0,n.wg)(),(0,n.iD)("h1",r,d)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-eef3d90a.8d9012b9.js b/documents/guides/assets/js/v-eef3d90a.8d9012b9.js new file mode 100644 index 000000000..0788068af --- /dev/null +++ b/documents/guides/assets/js/v-eef3d90a.8d9012b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[701],{4954:(e,a,n)=>{n.r(a),n.d(a,{data:()=>s});const s={key:"v-eef3d90a",path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",title:"更换数据库",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:2,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:2,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:2,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:2,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]},{level:2,title:"步骤六:修改工作流服务数据库类型",slug:"步骤六-修改工作流服务数据库类型",children:[]}],filePathRelative:"documents/更换数据库.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},4454:(e,a,n)=>{n.r(a),n.d(a,{default:()=>x});var s=n(6252);const o=(0,s.uE)('

    更换数据库

    步骤一:判断是否需要添加数据库方言配置

    Eurynome Cloud 使用数据库"方言"配置模式,以达到规范化数据库配置、减少参数修改、快速更换数据库的目的。

    目前,Eurynome Cloud 默认提供postgresqlmysql8mysql57三种方言配置。在Nacos的配置中可以找到eurynome-cloud-database-postgresql.yamleurynome-cloud-database-mysql8.yamleurynome-cloud-database-mysql57.yaml与之对应。

    如果你所使用的数据库,postgresqlmysql8mysql57三种方言配置并不能满足,那么请按照下面几步操作;如果能满足请跳过。

    1. 在Nacos中新建一个按照格式 eurynome-cloud-database-<database.type>.yaml 命名的配置。

    2.复制下面的配置内容到该配置中,注意不要改变格式以及具体配置名。

    herodotus:\n  database-information:\n    platform: postgresql\n    driver-class-name: org.postgresql.Driver\n    dialect: org.hibernate.dialect.PostgreSQL10Dialect\n    url: jdbc:postgresql://${herodotus.environment.database.host}:${herodotus.environment.database.port}/${herodotus.environment.database.name}\n
    1
    2
    3
    4
    5
    6
    1. 根据自己使用的数据库,修改配置中对应的的信息。

    说明

    eurynome-cloud-database-<database.type>.yaml中,主要包含针对不同类型数据库,所使用的JDBC Driver等相关配置信息。

    • platform:指定数据库类型。

    注意:platform具体值来源于枚举类org.springframework.orm.jpa.vendor.Database,请使用全部小写字母值进行配置。这个值不分版本,所以mysql5数据库和mysql8数据库均是使用mysql,目前支持的值如下: db2derbyh2hanahsqlinformixmysqloraclepostgresqlsql_serversybase

    • driver-class-name:数据库驱动类名。
    • dialect: 指定Hibernate针对不同的数据库的Dialect,org.hibernate.dialect 包下可以找到具体数据库对应的dialect。
    • url:数据库连接URL。

    注意:这里的的URL是通过配置eurynome-cloud-environment.yaml,中的herodotus.environment.database.host、port、name等三个值组装而成。如果新增方言配置,不管具体数据库URL内容是什么,一定确保数据库地址、端口、数据库名使用${herodotus.environment.database.host}、${herodotus.environment.database.port}、${herodotus.environment.database.name}三个站位符替换,否则*-environment.yaml中配置的值将不再生效。

    步骤二:修改环境参数

    ',11),t=(0,s.Uk)("在根据你所使用的"),c=(0,s.Uk)("Maven多环境"),l=(0,s.uE)(",找到 Nacos 对应 Group 下的eurynome-cloud-environment.yaml配置,修改数据库相关的hostportnameusernamepassword等几个参数的值。",17),d=(0,s.uE)('
    herodotus:\n  environment:\n    logstash-server-addr: 127.0.0.1:5044\n    gateway-server-addr: http://localhost:8847\n    database:\n      host: 127.0.0.1\n      port: 5432\n      name: herodotus\n      username: XXXXX\n      password: XXXXX\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    步骤三:修改pom.xml

    ',2),p=(0,s.Uk)("找到工程根目录下的"),r=(0,s._)("code",null,"pom.xml",-1),u=(0,s.Uk)(", 根据你所使用的"),i=(0,s.Uk)("Maven多环境"),m=(0,s.Uk)("找到对应的"),b=(0,s._)("code",null,"",-1),k=(0,s.Uk)(", 修改"),y=(0,s._)("code",null,"",-1),h=(0,s.Uk)("属性值。"),v=(0,s.uE)('
    <database.type>postgresql</database.type>\n
    1

    注意

    该值与步骤一中,eurynome-cloud-database-<database.type>.yaml的值对应。

    在Maven编译的过程中,<database.type>的值会作为参数传递到各个服务的boostrap.yml配置中,与boostrap.yml中已有的信息拼装成Nacos中对应的配置名。通过这种方式实现Maven多环境、Nacos配置、不同数据库配置的联动

    - data-id: eurynome-cloud-database-@database.type@.yaml\n  group: common\n
    1
    2

    步骤四:添加数据库JDBC Driver

    目前,系统代码已经包含 PostgreSQLMySQL (支持 MySQL5MySQL8 )和 H2 三种数据库的JDBC Driver, 如果你使用数据库不在此范围内,那么就需要在代码包eurynome-cloud-datapom.xml中添加对应数据库的JDBC Driver

    步骤五:编译工程代码

    以上步骤完成之后,使用mvn packagemvn install命令,重新编译工程。

    注意

    这一步非常重要,因为Maven无法真正做到与yml配置文件的传参,只有通过编译,在编译过程中用pom.xml<database.type>的值,替换yml配置文件中的@database.type@模拟一种参数传递。

    ',7),g=(0,s.Uk)("修改配置之后,参考"),E=(0,s.Uk)("数据初始化"),q=(0,s.Uk)("章节进行数据库初始化工作。"),f=(0,s.uE)('

    提示

    目前仅提供 PostgreSQLMySQL 两种数据库对应的数据初始化脚本,其它数据库需要自己额外处理。如需要使用Spring Data JPA初始化机制,需要手动修改spring.sql.init.*相关参数。

    步骤六:修改工作流服务数据库类型

    eurynome-cloud-bpmn-ability 模块中,找到bootstrap.yml。根据你所使用的数据库,修改配置camunda.bpm.database.type的值。

    说明

    camunda.bpm.database.type支持的值有: h2, mysql, mariadb, oracle, postgres, mssql, db2.

    ',4),x={render:function(e,a){const n=(0,s.up)("RouterLink");return(0,s.wg)(),(0,s.iD)(s.HY,null,[o,(0,s._)("p",null,[t,(0,s.Wm)(n,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,s.w5)((()=>[c])),_:1}),l]),d,(0,s._)("p",null,[p,r,u,(0,s.Wm)(n,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,s.w5)((()=>[i])),_:1}),m,b,k,y,h]),v,(0,s._)("p",null,[g,(0,s.Wm)(n,{to:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html"},{default:(0,s.w5)((()=>[E])),_:1}),q]),f],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-eef3d90a.f3193fe7.js b/documents/guides/assets/js/v-eef3d90a.f3193fe7.js deleted file mode 100644 index 5c8d1ef3a..000000000 --- a/documents/guides/assets/js/v-eef3d90a.f3193fe7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[701],{7502:(t,e,s)=>{s.r(e),s.d(e,{data:()=>a});const a={key:"v-eef3d90a",path:"/documents/%E6%9B%B4%E6%8D%A2%E6%95%B0%E6%8D%AE%E5%BA%93.html",title:"更换数据库",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"为什么默认使用PostgreSQL数据库?",slug:"为什么默认使用postgresql数据库",children:[{level:3,title:"PostgreSQL VS MySQL",slug:"postgresql-vs-mysql",children:[]},{level:3,title:"PostgreSQL相对于MySQL的优势",slug:"postgresql相对于mysql的优势",children:[]},{level:3,title:"MySQL相对于PostgreSQL的优势",slug:"mysql相对于postgresql的优势",children:[]},{level:3,title:"总结",slug:"总结",children:[]}]},{level:2,title:"Spring Boot Starter Data JPA 更换数据库方式",slug:"spring-boot-starter-data-jpa-更换数据库方式",children:[]},{level:2,title:"Eurynome Cloud 更换数据库方式",slug:"eurynome-cloud-更换数据库方式",children:[{level:3,title:"步骤一:判断是否需要添加数据库方言配置",slug:"步骤一-判断是否需要添加数据库方言配置",children:[]},{level:3,title:"步骤二:修改环境参数",slug:"步骤二-修改环境参数",children:[]},{level:3,title:"步骤三:修改pom.xml",slug:"步骤三-修改pom-xml",children:[]},{level:3,title:"步骤四:添加数据库JDBC Driver",slug:"步骤四-添加数据库jdbc-driver",children:[]},{level:3,title:"步骤五:编译工程代码",slug:"步骤五-编译工程代码",children:[]}]}],filePathRelative:"documents/更换数据库.md",git:{updatedTime:1631030613e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},9229:(t,e,s)=>{s.r(e),s.d(e,{default:()=>E});var a=s(6252);const o=(0,a.uE)('

    更换数据库

    为什么默认使用PostgreSQL数据库?

    PostgreSQL VS MySQL

    PostgreSQL VS MySQL

    MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。这样的两种背景直接导致了各自固有的优点和缺点。

    MySQL

    MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,由于MySQL被控制在Oracle,社区担心会对MySQL的开源会有影响,所以开发了一些分支,比如: MariaDB和Percona。

    PostgreSQL

    PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

    PostgreSQL相对于MySQL的优势

    1. 不仅仅是关系型数据库

    除了存储正常的数据类型外,还支持存储:

    • array,不管是一位数组还是多为数组均支持
    • json(hStore)和jsonb,相比使用text存储接送要高效很多
    • json和jsonb之间的区别

    jsonb和json在更高的层面上看起来几乎是一样的,但在存储实现上是不同的。

    • json存储完的文本,json列会每次都解析存储的值,它不支持索引,但你可以为查询创建表达式索引。
    • jsonb存储的二进制格式,避免了重新解析数据结构。它支持索引,这意味着你可以不使用指定的索引就能查询任何路径。

    当我们比较写入数据速度时,由于数据存储的方式的原因,jsonb会比json稍微的慢一点。json列会每次都解析存储的值,这意味着键的顺序要和输入的时候一样。但jsonb不同,以二进制格式存储且不保证键的顺序。因此,如果你有软件需要依赖键的顺序,jsonb可能不是你的应用的最佳选择。使用jsonb的优势还在于你可以轻易的整合关系型数据和非关系型数据, PostgreSQL对于mongodb这类的基于文档的数据库是个不小的威胁,毕竟如果一个表中只有一列数据的类型是半结构化的,没有必要为了迁就它而整个表的设计采用schemaless的结构。

    1. 支持地理信息处理扩展

    PostGIS 为PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测量与几何拓扑分析。在功能上,和MYSQL对比,PostGIS具有下列优势:

    O2O业务场景中的LBS业务使用PostgreSQL + PostGIS有无法比拟的优势。

    1. 可以快速构建REST API

    PostgREST 可以方便的为任何 PostgreSQL 数据库提供完全的 RESTful API 服务。

    1. 支持树状结构

    支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。MySQL 处理树状的设计会很复杂, 而且需要写很多代码, 而 PostgreSQL 可以高效处理树结构。

    1. 有极其强悍的 SQL 编程能力

    支持递归,有非常丰富的统计函数和统计语法支持。

    MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 PostgreSQL:没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。

    1. 外部数据源支持

    可以把 70 种外部数据源 (包括 Mysql, Oracle, CSV, hadoop …) 当成自己数据库中的表来查询。Postgres有一个针对这一难题的解决方案:一个名为“外部数据封装器(Foreign Data Wrapper,FDW)”的特性。该特性最初由PostgreSQL社区领袖Dave Page四年前根据SQL标准SQL/MED(SQL Management of External Data)开发。FDW提供了一个SQL接口,用于访问远程数据存储中的远程大数据对象,使DBA可以整合来自不相关数据源的数据,将它们存入Postgres数据库中的一个公共模型。这样,DBA就可以访问和操作其它系统管理的数据,就像在本地Postgres表中一样。例如,使用FDW for MongoDB,数据库管理员可以查询来自文档数据库的数据,并使用SQL将它与来自本地Postgres表的数据相关联。借助这种方法,用户可以将数据作为行、列或JSON文档进行查看、排序和分组。他们甚至可以直接从Postgres向源文档数据库写入(插入、更细或删除)数据,就像一个一体的无缝部署。也可以对Hadoop集群或MySQL部署做同样的事。FDW使Postgres可以充当企业的中央联合数据库或“Hub”。

    1. 没有字符串长度限制

    一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而PostgreSQL的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。MySQL 的各种text字段有不同的限制,要手动区分 small text, middle text, large text… PostgreSQL 没有这个限制,text 能支持各种大小。

    1. 支持图结构数据存储
    ',31),n=(0,a.Uk)("没有具体使用过,具体可以自己搜索下。"),r={href:"https://mp.weixin.qq.com/s/cjor82wgDu5gzDvTYpLDWw",target:"_blank",rel:"noopener noreferrer"},l=(0,a.Uk)("参考链接"),d=(0,a.uE)('
    1. 支持窗口函数

    窗口函数提供跨行相关的当前查询行集执行计算的能力。仅当调用跟着OVER子句的聚集函数,作为窗口函数;否则它们作为常规的聚合函数。窗口也是一种分组,但和 group by 的分组不同。窗口,可以提供分组之外,还可以执行对每个窗口进行计算。可以想象成是group by 后,然后对每个分组进行计算,而不像Group by ,只是单纯地分组。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能简单的解决 “每组取 top 5” 的这类问题。MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。

    1. 对索引的支持更强

    PostgreSQL 的可以使用函数和条件索引,这使得PostgreSQL数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。对于索引类型:

    MySQL:取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 PostgreSQL:支持 B-树、哈希、R-树和 Gist 索引。 InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。PostgreSQL不存在这个问题。

    索引类型方面,MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:B+TREE。PostgreSQL支持 B-树、哈希、R-树和 Gist 索引。

    1. 集群支持更好

    Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。复制(Replication)功能是异步的并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。

    PostgreSQL有丰富的开源cluster软件支持。plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。

    另外,PostgreSQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。

    1. 事务隔离做的更好

    MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 PostgreSQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能。

    1. 对于字符支持更好一些

    MySQL 里需要 utf8mb4 才能显示 emoji 的坑, PostgreSQL 没这个坑。

    1. 对表连接支持较完整

    对表连接支持较完整,MySQL只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。PostgreSQL都支持。

    1. 存储方式支持更大的数据量

    PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

    1. 时间精度更高

    MySQL对于时间、日期、间隔等时间类型没有秒以下级别的存储类型,而PostgreSQL可以精确到秒以下。

    1. 优化器的功能较完整

    MySQL对复杂查询的处理较弱,查询优化器不够成熟,explain看执行计划的结果简单。性能优化工具与度量信息不足。

    PostgreSQL很强大的查询优化器,支持很复杂的查询处理。explain返回丰富的信息。提供了一些性能视图,可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息,也可以看到cache命中率。网上有一个开源的pgstatspack工具。

    1. 序列支持更好

    MySQL 不支持多个表从同一个序列中取 id, 而 PostgreSQL 可以。

    1. 对子查询支持更好

    对子查询的支持。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。几乎任何数据库的子查询 (subquery) 性能都比 MySQL 好。

    1. 增加列更加简单

    MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表.

    MySQL相对于PostgreSQL的优势

    1. MySQL比PostgreSQL更流行

    流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。易用,很容易安装。第三方工具,包括可视化工具,让用户能够很容易入门。

    1. 回滚实现更优

    innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。

    1. 在Windows上运行更可靠

    与PostgreSQL相比,MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在 NT/Win2000/WinXP下,是一个服务),而PostgreSQL是运行在Cygwin模拟环境下。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的。

    1. 线程模式相比进程模式的优势

    MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

    进程模式对多CPU利用率比较高。进程模式共享数据需要用到共享内存,而线程模式数据本身就是在进程空间内都是共享的,不同线程访问只需要控制好线程之间的同步。 线程模式对资源消耗比较少。所以MySQL能支持远比PostgreSQL多的更多的连接。但PostgreSQL中有优秀的连接池软件软件,如pgbouncer和pgpool,所以通过连接池也可以支持很多的连接。

    1. 权限设置上更加完善

    MySQL在权限系统上比PostgreSQL某些方面更为完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限, PostgreSQL可以通过建立视图,并确定视图的权限来弥补。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的,但是在很多时候,这是有用的。

    1. 存储引擎插件化机制

    MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

    1. 适应24/7运行

    MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。

    1. 更加试用于简单的场景

    PostgreSQL只支持堆表,不支持索引组织表,Innodb只支持索引组织表。

    • 索引组织表的优势:表内的数据就是按索引的方式组织,数据是有序的,如果数据都是按主键来访问,那么访问数据比较快。而堆表,按主键访问数据时,是需要先按主键索引找到数据的物理位置。
    • 索引组织表的劣势:索引组织表中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织表来说,主键的值不能太大,否则占用的空间比较大。

    对于索引组织表来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入的性能。所以对于使用innodb来说,我们一般最好让主键是一个无意义的序列,这样插入每次都发生在最后,以避免这个问题。 由于索引组织表是按一个索引树,一般它访问数据块必须按数据块之间的关系进行访问,而不是按物理块的访问数据的,所以当做全表扫描时要比堆表慢很多,这可能在OLTP中不明显,但在数据仓库的应用中可能是一个问题。

    总结

    MySQL从一开始就没有打算做所有事情,因而它在功能方面有一定的局限性,并不能满足一些先进应用程序的要求。MySQL对某些功能(例如引用、事务、审计等)的实现方式使得它与其他的关系型数据库相比缺少了一些可靠性。对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。除非你需要绝对的数据完整性,ACID遵从性或者设计复杂,否则PostgreSQL对于简单的场景而言有点多余。

    如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的:

    • 如果你的操作系统是Windows,你应该使用MySQL。
    • 当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。
    • 如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。
    • 你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
    • 如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。

    Spring Boot Starter Data JPA 更换数据库方式

    由于基础核心数据访问层使用spring-boot-starter-data-jpa组件,JPA是标准,Spring Data JPA默认使用Hibernate作为JPA实现,因此天然支持不同类型的数据库。

    既然Spring Data JPA天然支持不同类型数据库,那么通过修改spring-boot-starter-data-jpa对应的配置参数就可以更换数据库。

    假设只是单纯的使用spring-boot-starter-data-jpa,那么更换数据库就仅需要修改以下配置。

    配置说明
    spring.datasource.driver-class-name数据库Driver Class,不同的数据库驱动不同
    spring.datasource.url数据库访问连接,不同数据连接格式也不同
    spring.datasource.username数据库访问用户名,如果相同可以不用修改
    spring.datasource.password数据库访问密码,如果相同可以不用修改
    spring.jpa.database选择数据库类型,具体类型与枚举org.springframework.orm.jpa.vendor.Database中的值对应,使用小写值即可
    spring.jpa.properties.hibernate.dialect选择数据库类型对应的dialect,在 org.hibernate.dialect 包下可以找到具体数据库对应的dialect
    spring.jpa.hibernate.ddl-auto设置hibernate初始化操作的类型,具体参见下表

    spring.jpa.hibernate.ddl-auto 属性和含义见下表:

    属性说明
    create每次加载hibernate时都会删除上一次的生成的表,再重新根据model生成表,因此可能会导致数据丢失。
    create-drop每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
    update最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,原有数据不会清空,只会更新。
    validate每次加载hibernate时,会校验数据与数据库的字段类型是否相同,字段不同会报错。
    none不进行任何操作

    如果想要使用spring-boot-starter-data-jpa提供SQL自动初始化机制,那么还需要额外修改以下配置:

    配置说明
    spring.sql.init.platform数据库类型,主要用于在data-locations 和 schema-locations 中定位不同数据库的脚本, schema-${platform}.sql and data-${platform}.sql。具体值标准情况与spring.jpa.database值相同,当然也可以自定义,注意该值与具体*.sql文件名的对应。
    spring.sql.init.data-locationsDML SQL文件路径
    spring.sql.init.data-locationsDDL SQL文件路径

    Eurynome Cloud 更换数据库方式

    Eurynome Cloud 更换数据库需要修改的参数与spring-boot-starter-data-jpa 更换数据库需要修改的参数完全一致。

    Eurynome Cloud 配置参数与spring-boot-starter-data-jpa配置参数对应关系如下表:

    配置对应
    herodotus.database-information.driver-class-namespring.datasource.driver-class-name
    herodotus.database-information.urlspring.datasource.url
    herodotus.environment.database.usernamespring.datasource.username
    herodotus.environment.database.passwordspring.datasource.password
    herodotus.database-information.platformspring.jpa.database
    herodotus.environment.database.dialectspring.jpa.properties.hibernate.dialect
    herodotus.switch.database.ddl-autospring.jpa.hibernate.ddl-auto

    步骤一:判断是否需要添加数据库方言配置

    Eurynome Cloud 使用数据库"方言"配置模式,以达到规范化数据库配置、减少参数修改、快速更换数据库的目的。

    目前,Eurynome Cloud 默认提供postgresqlmysql8mysql57三种方言配置。在Nacos的配置中可以找到eurynome-cloud-database-postgresql.yamleurynome-cloud-database-mysql8.yamleurynome-cloud-database-mysql57.yaml与之对应。具体配置格式如下:

    如果你所使用的数据库,postgresqlmysql8mysql57三种方言配置并不能满足,那么请按照下面几步操作;如果能满足请跳过。

    • 在Nacos中新建一个按照格式eurynome-cloud-database-<database.type>.yaml命名的配置。
    • 复制下面的配置内容到该配置中,注意不要改变格式以及具体配置名。
    herodotus:\n  database-information:\n    platform: postgresql\n    driver-class-name: org.postgresql.Driver\n    dialect: org.hibernate.dialect.PostgreSQL10Dialect\n    url: jdbc:postgresql://${herodotus.environment.database.host}:${herodotus.environment.database.port}/${herodotus.environment.database.name}\n
    1
    2
    3
    4
    5
    6
    • 根据自己使用的数据库,修改配置中对应的的信息。

    说明

    eurynome-cloud-database-<database.type>.yaml中,主要包含针对不同类型数据库,所使用的JDBC Driver等相关配置信息。

    • platform:指定数据库类型。

    注意:platform具体值来源于枚举类org.springframework.orm.jpa.vendor.Database,请使用全部小写字母值进行配置。这个值不分版本,所以mysql5数据库和mysql8数据库均是使用mysql,目前支持的值如下: db2derbyh2hanahsqlinformixmysqloraclepostgresqlsql_serversybase

    • driver-class-name:数据库驱动类名。
    • dialect: 指定Hibernate针对不同的数据库的Dialect,org.hibernate.dialect 包下可以找到具体数据库对应的dialect。
    • url:数据库连接URL。

    注意:这里的的URL是通过配置eurynome-cloud-environment.yaml,中的herodotus.environment.database.host、port、name等三个值组装而成。如果新增方言配置,不管具体数据库URL内容是什么,一定确保数据库地址、端口、数据库名使用${herodotus.environment.database.host}、${herodotus.environment.database.port}、${herodotus.environment.database.name}三个站位符替换,否则*-environment.yaml中配置的值将不再生效。

    步骤二:修改环境参数

    ',75),p=(0,a.Uk)("在根据你所使用的"),i=(0,a.Uk)("Maven多环境"),c=(0,a.Uk)(",找到Nacos对应Group下的"),u=(0,a._)("code",null,"eurynome-cloud-environment.yaml",-1),g=(0,a.Uk)("配置,修改数据库相关的host、port、name、username、password等几个参数的值。"),m=(0,a.uE)('
    herodotus:\n  environment:\n    logstash-server-addr: 127.0.0.1:5044\n    gateway-server-addr: http://localhost:8847\n    database:\n      host: 127.0.0.1\n      port: 5432\n      name: herodotus\n      username: XXXXX\n      password: XXXXX\n
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    步骤三:修改pom.xml

    ',2),b=(0,a.Uk)("找到工程根目录下的"),h=(0,a._)("code",null,"pom.xml",-1),y=(0,a.Uk)(", 根据你所使用的"),S=(0,a.Uk)("Maven多环境"),L=(0,a.Uk)("找到对应的"),Q=(0,a._)("code",null,"",-1),k=(0,a.Uk)(", 修改"),P=(0,a._)("code",null,"",-1),v=(0,a.Uk)("属性值。"),M=(0,a.uE)('
    <database.type>postgresql</database.type>\n
    1

    注意

    在Maven编译的过程中,<database.type>的值会作为参数传递到各个服务的boostrap.yml配置中,与boostrap.yml中已有的信息拼装成Nacos中对应的配置名。通过这种方式实现Maven多环境、Nacos配置、不同数据库配置的联动

    - data-id: eurynome-cloud-database-@database.type@.yaml\n  group: common\n
    1
    2

    步骤四:添加数据库JDBC Driver

    目前,系统代码已经包含PostgreSQLMySQL8H2三种数据库的JDBC Driver, 如果你使用数据库不在此范围内,那么就需要在代码包eurynome-cloud-datapom.xml中添加对应数据库的JDBC Driver

    步骤五:编译工程代码

    以上步骤完成之后,使用mvn packagemvn install命令,重新编译工程。

    注意

    这一步非常重要,因为Maven无法真正做到与yml配置文件的传参,只有通过编译,在编译过程中用pom.xml<database.type>的值,替换yml配置文件中的@database.type@模拟一种参数传递。

    修改配置之后,参考数据初始化章节进行数据库初始化工作。

    提示

    目前仅提供PostgreSQLMySQL两种数据库对应的数据初始化脚本,其它数据库需要自己额外处理。如需要使用Spring Data JPA初始化机制,需要手动修改spring.sql.init.*相关参数。

    ',10),E={render:function(t,e){const s=(0,a.up)("OutboundLink"),E=(0,a.up)("RouterLink");return(0,a.wg)(),(0,a.iD)(a.HY,null,[o,(0,a._)("p",null,[n,(0,a._)("a",r,[l,(0,a.Wm)(s)])]),d,(0,a._)("p",null,[p,(0,a.Wm)(E,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,a.w5)((()=>[i])),_:1}),c,u,g]),m,(0,a._)("p",null,[b,h,y,(0,a.Wm)(E,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,a.w5)((()=>[S])),_:1}),L,Q,k,P,v]),M],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-f283941e.9f2d9416.js b/documents/guides/assets/js/v-f283941e.9f2d9416.js new file mode 100644 index 000000000..caa4e98f2 --- /dev/null +++ b/documents/guides/assets/js/v-f283941e.9f2d9416.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[658],{5517:(e,t,d)=>{d.r(t),d.d(t,{data:()=>o});const o={key:"v-f283941e",path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",title:"数据初始化",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"知识铺垫",slug:"知识铺垫",children:[{level:3,title:"基础原理",slug:"基础原理",children:[]},{level:3,title:"Spring Data JPA 更换数据库",slug:"spring-data-jpa-更换数据库",children:[]},{level:3,title:"Spring Data JPA 初始化数据库",slug:"spring-data-jpa-初始化数据库",children:[]},{level:3,title:"特别说明",slug:"特别说明",children:[]}]},{level:2,title:"操作步骤",slug:"操作步骤",children:[{level:3,title:"步骤一:创建数据表",slug:"步骤一-创建数据表",children:[]},{level:3,title:"步骤二:初始默认数据",slug:"步骤二-初始默认数据",children:[]},{level:3,title:"步骤三:回置配置",slug:"步骤三-回置配置",children:[]}]},{level:2,title:"配置参数对应关系",slug:"配置参数对应关系",children:[]}],filePathRelative:"documents/数据初始化.md",git:{updatedTime:1631897274e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:2}]}}},3331:(e,t,d)=>{d.r(t),d.d(t,{default:()=>Z});var o=d(6252);const a=(0,o.uE)('

    数据初始化

    知识铺垫

    基础原理

    Eurynome Cloud 核心数据访问层使用Spring Boot生态中的spring-boot-starter-data-jpa组件,spring-boot-starter-data-jpa 核心依赖是 Spring Data JPA

    ',4),r=(0,o._)("code",null,"JPA",-1),l=(0,o.Uk)("("),c=(0,o._)("code",null,"Java Persistence API",-1),i=(0,o.Uk)(")意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范。"),n=(0,o._)("code",null,"Spring Data JPA",-1),s=(0,o.Uk)(" 默认使用 "),p=(0,o._)("code",null,"Hibernate",-1),u=(0,o.Uk)(" 作为 "),h=(0,o._)("code",null,"JPA",-1),m=(0,o.Uk)(" 实现。参阅:"),b=(0,o.Uk)("Spring Data JPA"),g=(0,o.uE)('

    Spring Data JPA 利用 Hibernate 多数据库支持能力实现不同类型数据库的支持,同时使用 Hibernatehbm2ddl 机制 实现数据库表的自动创建。除此以外,Spring Data JPA 提供了数据库SQL脚本自动执行机制,实现了数据脚本的初始化和表结构等创建功能。

    Spring Data JPA 更换数据库

    通过修改spring-boot-starter-data-jpa对应的配置参数就可以达成更换数据库的目的。主要涉及需要修改的配置参数如下表所示:

    配置说明
    spring.datasource.driver-class-name数据库Driver Class,不同的数据库驱动不同
    spring.datasource.url数据库访问连接,不同数据连接格式也不同
    spring.datasource.username数据库访问用户名,如果相同可以不用修改
    spring.datasource.password数据库访问密码,如果相同可以不用修改
    spring.jpa.database选择数据库类型,具体类型与枚举org.springframework.orm.jpa.vendor.Database中的值对应,使用小写值即可
    spring.jpa.properties.hibernate.dialect选择数据库类型对应的dialect,在 org.hibernate.dialect 包下可以找到具体数据库对应的dialect
    spring.jpa.hibernate.ddl-auto设置hibernate初始化操作的类型,具体参见下表

    这里要特别注意 spring.jpa.hibernate.ddl-auto 参数。

    spring.jpa.hibernate.ddl-auto 参数包含以下几个值,具体含义见下表:

    属性说明
    create每次加载hibernate时都会删除上一次的生成的表,再重新根据model(与数据库表对应的实体)生成表,因此可能会导致数据丢失。
    create-drop每次加载hibernate时根据model类生成表,服务一关闭,表就自动删除。该设置适用于演示环境等特殊场景使用
    update最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构,再次使用时自动更新表结构,原有数据不会清空。
    validate每次加载hibernate时,会校验数据与数据库的字段类型是否相同,字段不同会报错。
    none不进行任何操作

    如果想要使用spring-boot-starter-data-jpa提供SQL自动初始化机制,那么还需要额外修改以下配置:

    通过以上配置参数的修改就可以进行数据库的切换,以及数据库表的创建.

    Spring Data JPA 初始化数据库

    Spring Data JPA 还提供的数据库SQL脚本的执行机制。将已生成好的数据库SQL脚本,放入到代码工程的resources目录下,按照指定格式命名,通过修改配置就可以实现SQL脚本的自动执行。

    具体SQL文件名的格式为:schema-${platform}.sqldata-${platform}.sqlplatform 是用来指定不同的数据库类型,以此来实现不同数据库脚本的切换。

    • schema-${platform}.sql:主要放置数据库定义语言(DDL)SQL脚本,例如:数据库表、视图、存储过程等。
    • data-${platform}.sql:主要放置数据操纵语言(DML)SQL脚本,例如:最经常用到的 SELECT、UPDATE、INSERT、DELETE。

    由此可见,schema-${platform}.sql 是先于 data-${platform}.sql 执行的。

    主要涉及需要修改的配置参数如下表所示:

    配置说明
    spring.sql.init.mode用于控制脚本执行状态。
    spring.sql.init.platform数据库类型,主要用于在data-locations 和 schema-locations 中定位不同数据库的脚本
    spring.sql.init.data-locationsDML SQL文件路径
    spring.sql.init.data-locationsDDL SQL文件路径

    这里要特别注意 spring.sql.init.mode 参数。

    spring.sql.init.mode 参数包含以下几个值,具体含义见下表:

    属性说明
    always总是执行,相当于开启
    never不执行,相当于关闭
    embedded仅初始化嵌入式数据库,特殊需求和设计会用到

    特别说明

    说明:

    Spring Data JPA 既可以通过 Hibernate 的机制进行数据库表的创建,也可以通过sql.init的方式进行数据库表以及数据初始化的创建。这两者是各自独立的、没有任何必然联系的。具体如何使用就要看设计者的考虑。

    两者的执行顺序不同,如果要两者同时使用一定要注意执行顺序,否则很容易导致运行出错。具体的顺序是:

    schema-${platform}.sql > data-${platform}.sql > hbm2ddl

    操作步骤

    Eurynome Cloud 数据库表创建和默认数据的初始化,就是使用 Spring Data JPA 自身的机制实现。

    Eurynome Cloud 数据库表创建和默认数据的初始化过程中, 主要会进行以下几项操作。

    • 创建核心业务表
    • 扫描已运行服务中所有的RestController接口,将接口数据转换为权限数据,并汇总至用户中心服务统一存储和管理。
    • 系统默认数据,如用户、角色等数据的初始化。
    ',25),_={class:"custom-container danger"},y=(0,o._)("p",{class:"custom-container-title"},"注意",-1),v=(0,o.Uk)("具体开始之前,一定要确保所有前序工作已经完成。参阅:"),k=(0,o.Uk)("数据库初始化前序工作"),E=(0,o._)("h3",{id:"步骤一-创建数据表",tabindex:"-1"},[(0,o._)("a",{class:"header-anchor",href:"#步骤一-创建数据表","aria-hidden":"true"},"#"),(0,o.Uk)(" 步骤一:创建数据表")],-1),f=(0,o.Uk)("进入Nacos管理界面。找到您所使用的对应 "),A=(0,o._)("code",null,"多环境",-1),U=(0,o.Uk)(" 下的 "),S=(0,o._)("code",null,"eurynome-cloud-environment.yaml",-1),D=(0,o.Uk)(" 配置文件。例如,您当前使用的是 "),w=(0,o._)("code",null,"development",-1),q=(0,o.Uk)(" 环境,那么在Nacos后台管理中,找到 "),L=(0,o._)("code",null,"Group",-1),j=(0,o.Uk)(" 是 "),P=(0,o._)("code",null,"development",-1),J=(0,o.Uk)(" 的 "),Q=(0,o._)("code",null,"eurynome-cloud-environment.yaml",-1),x=(0,o.Uk)(" 配置。多环境配置,参阅:"),C=(0,o.Uk)("多环境配置"),B=(0,o._)("li",null,[(0,o._)("p",null,[(0,o.Uk)("设置 "),(0,o._)("code",null,"eurynome-cloud-environment.yaml"),(0,o.Uk)("配置文件中属性 "),(0,o._)("code",null,"herodotus.switch.database.ddl-auto"),(0,o.Uk)(" 的值为 "),(0,o._)("code",null,"create"),(0,o.Uk)(" 或 "),(0,o._)("code",null,"update")])],-1),$=(0,o.uE)('

    说明

    • 如果是初次部署,或者想将已有表重新创建,那么将 herodotus.switch.database.ddl-auto 的值设置为 create
    • 如果是已经开始使用系统了,想保留已有的数据,只做更新,那么将 herodotus.switch.database.ddl-auto 的值设置为 update
    1. 点击发布按钮,发布配置,让配置生效。
    ',2),H={class:"custom-container danger"},N=(0,o._)("p",{class:"custom-container-title"},"注意",-1),M=(0,o._)("li",null,[(0,o._)("p",null,[(0,o._)("strong",null,"正式环境一定要提前做好数据备份"),(0,o.Uk)("。")])],-1),T=(0,o._)("code",null,"herodotus.switch.database.ddl-auto",-1),F=(0,o.Uk)(" 的值设置为 "),I=(0,o._)("code",null,"update",-1),R=(0,o.Uk)(", 再次运行服务,由于 "),W=(0,o._)("code",null,"Hibernate",-1),G=(0,o.Uk)(" 不同方言实现逻辑的不同,在有些数据库下运行,例如:"),z=(0,o._)("code",null,"PostgreSQL",-1),K=(0,o.Uk)(", 对于某些兼容性问题,只是输出告警;在某些数据库下运行,例如 MySQL,对于某些兼容性问题,会直接抛出Exception。所以出现这种情况,只要服务继续在运行就不是系统BUG;如果出错直接导致服务运行停止,那么请报 "),Y=(0,o._)("code",null,"ISSUE",-1),O=(0,o.Uk)("。参阅:"),V=(0,o.Uk)("MySQL常见问题"),X=(0,o.uE)('
    1. 运行 UpmsApplication 服务。

    UpmsApplication 服务第一次正常运行之后,所有核心业务表都已经创建,UpmsApplication 服务中所有接口都已经转换为权限数据存入sys_authority表中。

    如果看到有数据库表创建,同时sys_authority表中有数据,证明数据库表创建成功。

    步骤二:初始默认数据

    1. 停止UpmsApplication 服务

    2. 进入Nacos管理界面。找到您所使用的对应 多环境 下的 eurynome-cloud-environment.yaml 配置文件。

    3. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.ddl-auto 的值为 updatenone

    4. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.init-mode 的值为 always

    5. 点击发布按钮,发布配置,让配置生效。

    6. 再次运行 UpmsApplication 服务。

    UpmsApplication 服务再一次正常运行之后,如果sys_usersys_rolesys_role_authority等表中都都已经有数据了,证明数据初始化成功。

    步骤三:回置配置

    1. 停止UpmsApplication 服务

    2. 进入Nacos管理界面。找到您所使用的对应 多环境 下的 eurynome-cloud-environment.yaml 配置文件。

    3. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.init-mode 的值重置为 never

    4. 检查 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.ddl-auto 的值为 updatenone

    5. 点击发布按钮,发布配置,让配置生效。

    为什么回置并再次检查

    • 如果 herodotus.switch.database.ddl-auto 的值为 createcreate-drop,再次启动服务会重新建表,那么前面的工作就白做了。
    • 如果 herodotus.switch.database.init-mode 的值为 always,再次启动服务会再次执行SQL脚本,必定出现主键冲突问题导致失败。

    配置参数对应关系

    Eurynome Cloud 数据库操作设计配置参数与spring-boot-starter-data-jpa配置参数对应关系如下表:

    配置对应
    herodotus.database-information.driver-class-namespring.datasource.driver-class-name
    herodotus.database-information.urlspring.datasource.url
    herodotus.environment.database.usernamespring.datasource.username
    herodotus.environment.database.passwordspring.datasource.password
    herodotus.database-information.platformspring.jpa.database
    spring.sql.init.platform
    herodotus.environment.database.dialectspring.jpa.properties.hibernate.dialect
    herodotus.switch.database.ddl-autospring.jpa.hibernate.ddl-auto
    herodotus.switch.database.init-modespring.sql.init.mode
    ',12),Z={render:function(e,t){const d=(0,o.up)("RouterLink");return(0,o.wg)(),(0,o.iD)(o.HY,null,[a,(0,o._)("p",null,[r,l,c,i,n,s,p,u,h,m,(0,o.Wm)(d,{to:"/basic-knowledge/spring-data-jpa.html#JPA"},{default:(0,o.w5)((()=>[b])),_:1})]),g,(0,o._)("div",_,[y,(0,o._)("p",null,[v,(0,o.Wm)(d,{to:"/documents/%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.html#%E5%90%8E%E7%AB%AF%E8%BF%90%E8%A1%8C"},{default:(0,o.w5)((()=>[k])),_:1})])]),E,(0,o._)("ol",null,[(0,o._)("li",null,[(0,o._)("p",null,[f,A,U,S,D,w,q,L,j,P,J,Q,x,(0,o.Wm)(d,{to:"/documents/%E5%A4%9A%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html"},{default:(0,o.w5)((()=>[C])),_:1})])]),B]),$,(0,o._)("div",H,[N,(0,o._)("ul",null,[M,(0,o._)("li",null,[(0,o._)("p",null,[T,F,I,R,W,G,z,K,Y,O,(0,o.Wm)(d,{to:"/others/MySQL.html"},{default:(0,o.w5)((()=>[V])),_:1})])])])]),X],64)}}}}]); \ No newline at end of file diff --git a/documents/guides/assets/js/v-f283941e.d658da47.js b/documents/guides/assets/js/v-f283941e.d658da47.js deleted file mode 100644 index 16e54ddbd..000000000 --- a/documents/guides/assets/js/v-f283941e.d658da47.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkeurynome_cloud_document=self.webpackChunkeurynome_cloud_document||[]).push([[658],{5517:(e,o,d)=>{d.r(o),d.d(o,{data:()=>c});const c={key:"v-f283941e",path:"/documents/%E6%95%B0%E6%8D%AE%E5%88%9D%E5%A7%8B%E5%8C%96.html",title:"数据初始化",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"系统初次部署数据库初始化内容",slug:"系统初次部署数据库初始化内容",children:[]},{level:2,title:"数据表及数据初始化说明",slug:"数据表及数据初始化说明",children:[{level:3,title:"[1]、OAuth2 标准表结构的创建",slug:"_1-、oauth2-标准表结构的创建",children:[]},{level:3,title:"[2]、服务中涉及业务表的创建",slug:"_2-、服务中涉及业务表的创建",children:[]},{level:3,title:"[3]、个别View或函数的创建(可选)",slug:"_3-、个别view或函数的创建-可选",children:[]},{level:3,title:"[4]、默认用户、角色等数据的初始化",slug:"_4-、默认用户、角色等数据的初始化",children:[]},{level:3,title:"[5]、服务Rest API接口数据初始化",slug:"_5-、服务rest-api接口数据初始化",children:[]}]},{level:2,title:"数据表和数据自动初始化",slug:"数据表和数据自动初始化",children:[{level:3,title:"解决办法",slug:"解决办法",children:[]},{level:3,title:"具体步骤",slug:"具体步骤",children:[]}]},{level:2,title:"系统默认账号",slug:"系统默认账号",children:[]}],filePathRelative:"documents/数据初始化.md",git:{updatedTime:1631030613e3,contributors:[{name:"herodotus",email:"pointer_v@qq.com",commits:1}]}}},2038:(e,o,d)=>{d.r(o),d.d(o,{default:()=>a});const c=(0,d(6252).uE)('

    数据初始化

    系统初次部署数据库初始化内容

    Eurynome Cloud 在初次使用时,数据初始化涉及以下内容:

    • 数据库表创建,其中涉及以下几部分表的创建:
      1. OAuth2 标准表结构的创建
      2. 服务中涉及业务表的创建
      3. 个别View或函数的创建
    • 默认数据初始化,其中涉及以下几部分数据的初始化
      1. 默认用户、角色等数据的初始化
      2. 平台已有服务Rest API接口数据初始化以及权限数据的转化。

    数据表及数据初始化说明

    [1]、OAuth2 标准表结构的创建

    目前系统提供MySQLPostgreSQL 两种数据库的OAuth2标准的表结构创建脚本,可以在工程的${project_home}/configurations/scripts目录下找到对应的Schema SQL脚本。

    ${project_home}/packages/eurynome-cloud-security包的resources目录中,也存有一份OAuth2的表结构创建脚本以及默认数据的导入脚本。这些脚本与${project_home}/configurations/scripts内容一致,主要是用于微服务版和单体版的自动化表结构创建和数据初始化,具体用法后面会讲到。

    [2]、服务中涉及业务表的创建

    系统虽然同时支持MybatisJPA,但是已有服务的代码实现目前均是基于JPA编写,因此服务中涉及的业务表,只要spring.jpa.hibernate.ddl-auto属性设置为非none值,那么就可以自动创建。

    提示

    在微服务架构,可以通过修改Nacos对应环境下(系统支持多环境,不同环境对应Nacos不同的组)的eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto值进行修改。

    [3]、个别View或函数的创建(可选)

    如果已有功能使用到了数据库的视图、函数(或存储过程)等特性,那么会提供相应的创建脚本,可以在工程的${project_home}/configurations/scripts目录下找到对应的Schema SQL脚本。

    注:目前开源版本暂不涉及,可以忽略本项内容

    [4]、默认用户、角色等数据的初始化

    表结构创建完成之后,可以通过导入数据初始化脚本,导入系统默认的用户、角色以及OAuth2相关数据。该脚本可以在${project_home}/services/eurynome-cloud-upms-ability包的resources目录下找到。

    [5]、服务Rest API接口数据初始化

    系统基础的权限数据,来源于所有服务中包含的Rest API接口。为了方便使用,服务在正常启动之后,会扫描所有的RestController,获取其中所有的接口信息后,存入系统的sys_authority表作为权限数据。

    说明

    系统对扫描RestController,获取接口信息功能提供了开关配置,可以通过配置设置是否开启扫描功能。同时,考虑到减少配置,提高使用的便捷性,所以是否开启注解扫描的配置直接使用的是spring.jpa.hibernate.ddl-auto的值。即:如果spring.jpa.hibernate.ddl-auto的值是none,那么就关闭注解扫描功能。

    说明

    系统是以服务名、请求类型以及请求URL组合值的MD5值作为权限的ID,所以只要保证“服务名、请求类型、请求URL”这三个值不改变,那么权限的ID就不会变化。其中任意一个值有变化,就会被当成新的权限数据存入sys_authority表中,这时就一定请注意你所配置的role和authority的关系。

    说明

    扫描所有的RestController获取接口信息后,是使用 jpa 的save()方法进行权限数据的保存。这个方法既有新增功能又有更新功能,如果sys_authority表中没有该条权限数据就新增,如果有那么就更新。因此,尽量不要手动修改sys_authority的值,修改后的值会被重新的扫描RestController获取到的值覆盖。

    数据表和数据自动初始化

    因为是使用spring-data-jpa,所以可以使用spring-data-jpa提供的机制进行数据表和数据自动初始化。

    spring-data-jpa中,jpa的默认实现使用的是Hibernate。提供了基于JDBCHibernate两部分数据表创建和初始化机制:

    • 基于JDBC的初始化机制:通过配置spring.sql.init相关属性实现,使用jdbc读取sql脚本实现。schema相关脚本创建表、视图、存储过程等,data相关脚本导入数据。
    • 基于Hibernate的初始化机制:通过配置spring.jpa.hibernate.ddl-auto相关属性实现,利用Hibernate自身的机制实现。目前只用到的了建表功能。

    Eurynome Cloud的数据表和数据自动初始化就是基于这两种机制实现,用Hibernate的初始化机制创建服务涉及的相关业务表,用JDBC的初始化机制创建OAuth2的标准表和导入所有的初始化数据。

    由于spring-data-jpaJDBC的初始化机制,在服务启动过程中会早于Hibernate的初始化机制执行,这就导致在第一次执行数据表和数据自动初始化时会出现问题:服务涉及的业务表还没有创建,JDBC的初始化机制就可开始导入数据,导致数据初始化失败。

    解决办法

    1. 将所有表结构和初始数据全部生成为SQL脚本,只使用JDBC的初始化机制进行初始化。因为目前没有使用flyway等数据库版本管理,手动管理的数据库脚本越多,就越容易出现数据库变更后脚本更新不及时导致出错率增大的问题。(后续考虑增加flyway等数据库版本管理功能)
    2. 还是综合使用JDBC的初始化机制和Hibernate的初始化机制,使用一种绕的办法解决初始化时机不同的问题。

    具体步骤

    1. 设置属性spring.sql.init.mode=neverspring.jpa.hibernate.ddl-auto=create,先启动一次服务。这次启动Hibernate会把所有服务涉及的业务表创建出来,同时系统会把所有的扫描到的RestController接口存储至sys_authority表中。然后,停掉该服务。
    2. 设置属性spring.sql.init.mode=alwaysspring.jpa.hibernate.ddl-auto=update,再一次启动服务。这次服务启动会JDBC的初始化机制就会创建OAuth2的表结构,以及导入所有初始化数据而不会出错。
    3. 数据初始化成功后,请注意将属性spring.sql.init.mode改回never,防止下次运行再次导入数据导致主键冲突等问题。属性spring.jpa.hibernate.ddl-auto的值可以根据自己实际使用需求需改。一般在开发阶段或设置为update或者none

    系统默认账号

    系统部署完成后,可以使用一下账号进行登录使用:

    • 默认用户名:system
    • 默认密码:123456
    ',34),a={render:function(e,o){return c}}}}]); \ No newline at end of file diff --git a/documents/guides/basic-knowledge/index.html b/documents/guides/basic-knowledge/index.html index 77f5903f7..d92f83c72 100644 --- a/documents/guides/basic-knowledge/index.html +++ b/documents/guides/basic-knowledge/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();介绍 | Eurynome Cloud - + -

    介绍

    说明

    一部分朋友使用 Eurynome Cloud 是本着学习的目的,以期掌握更多的IT技术技能。因此,开辟了本栏目。

    本栏目会逐步增加 Eurynome Cloud 所涉及各类技术的基础知识,希望可以帮助使用者更好的了解 Eurynome Cloud 所使用的技术,让使用者可以更快速的开展系统的使用和开发。

    很多技术内容单独拿出来都是一个很大的课题,而且市面上也会有较多的书籍供了解和学习。本栏目内容定位是收集整理一些相关技术的入门知识,起到抛砖引玉的作用。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +

    介绍

    说明

    一部分朋友使用 Eurynome Cloud 是本着学习的目的,以期掌握更多的IT技术技能。因此,开辟了本栏目。

    本栏目会逐步增加 Eurynome Cloud 所涉及各类技术的基础知识,希望可以帮助使用者更好的了解 Eurynome Cloud 所使用的技术,让使用者可以更快速的开展系统的使用和开发。

    很多技术内容单独拿出来都是一个很大的课题,而且市面上也会有较多的书籍供了解和学习。本栏目内容定位是收集整理一些相关技术的入门知识,起到抛砖引玉的作用。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    + diff --git a/documents/guides/basic-knowledge/postgresql.html b/documents/guides/basic-knowledge/postgresql.html new file mode 100644 index 000000000..5f363eb87 --- /dev/null +++ b/documents/guides/basic-knowledge/postgresql.html @@ -0,0 +1,21 @@ + + + + + + + 为什么默认使用PostgreSQL数据库? | Eurynome Cloud + + + + +

    为什么默认使用PostgreSQL数据库?

    PostgreSQL VS MySQL

    PostgreSQL VS MySQL

    MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。这样的两种背景直接导致了各自固有的优点和缺点。

    MySQL

    MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,由于MySQL被控制在Oracle,社区担心会对MySQL的开源会有影响,所以开发了一些分支,比如: MariaDB和Percona。

    PostgreSQL

    PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

    PostgreSQL相对于MySQL的优势

    [1]、不仅仅是关系型数据库

    除了存储正常的数据类型外,还支持存储:

    • array,不管是一位数组还是多为数组均支持
    • json(hStore)和jsonb,相比使用text存储接送要高效很多
    • json和jsonb之间的区别

    jsonb和json在更高的层面上看起来几乎是一样的,但在存储实现上是不同的。

    • json存储完的文本,json列会每次都解析存储的值,它不支持索引,但你可以为查询创建表达式索引。
    • jsonb存储的二进制格式,避免了重新解析数据结构。它支持索引,这意味着你可以不使用指定的索引就能查询任何路径。

    当我们比较写入数据速度时,由于数据存储的方式的原因,jsonb会比json稍微的慢一点。json列会每次都解析存储的值,这意味着键的顺序要和输入的时候一样。但jsonb不同,以二进制格式存储且不保证键的顺序。因此,如果你有软件需要依赖键的顺序,jsonb可能不是你的应用的最佳选择。使用jsonb的优势还在于你可以轻易的整合关系型数据和非关系型数据, PostgreSQL对于mongodb这类的基于文档的数据库是个不小的威胁,毕竟如果一个表中只有一列数据的类型是半结构化的,没有必要为了迁就它而整个表的设计采用schemaless的结构。

    [2]、支持地理信息处理扩展

    PostGIS 为PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测量与几何拓扑分析。在功能上,和MYSQL对比,PostGIS具有下列优势:

    O2O业务场景中的LBS业务使用PostgreSQL + PostGIS有无法比拟的优势。

    [3]、可以快速构建REST API

    PostgREST 可以方便的为任何 PostgreSQL 数据库提供完全的 RESTful API 服务。

    [4]、支持树状结构

    支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。MySQL 处理树状的设计会很复杂, 而且需要写很多代码, 而 PostgreSQL 可以高效处理树结构。

    [5]、有极其强悍的 SQL 编程能力

    支持递归,有非常丰富的统计函数和统计语法支持。

    MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 PostgreSQL:没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。

    [6]、外部数据源支持

    可以把 70 种外部数据源 (包括 Mysql, Oracle, CSV, hadoop …) 当成自己数据库中的表来查询。Postgres有一个针对这一难题的解决方案:一个名为“外部数据封装器(Foreign Data Wrapper,FDW)”的特性。该特性最初由PostgreSQL社区领袖Dave Page四年前根据SQL标准SQL/MED(SQL Management of External Data)开发。FDW提供了一个SQL接口,用于访问远程数据存储中的远程大数据对象,使DBA可以整合来自不相关数据源的数据,将它们存入Postgres数据库中的一个公共模型。这样,DBA就可以访问和操作其它系统管理的数据,就像在本地Postgres表中一样。例如,使用FDW for MongoDB,数据库管理员可以查询来自文档数据库的数据,并使用SQL将它与来自本地Postgres表的数据相关联。借助这种方法,用户可以将数据作为行、列或JSON文档进行查看、排序和分组。他们甚至可以直接从Postgres向源文档数据库写入(插入、更细或删除)数据,就像一个一体的无缝部署。也可以对Hadoop集群或MySQL部署做同样的事。FDW使Postgres可以充当企业的中央联合数据库或“Hub”。

    [7]、没有字符串长度限制

    一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而PostgreSQL的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。MySQL 的各种text字段有不同的限制,要手动区分 small text, middle text, large text… PostgreSQL 没有这个限制,text 能支持各种大小。

    [8]、支持图结构数据存储

    没有具体使用过,具体可以自己搜索下。参考链接open in new window

    [9]、支持窗口函数

    窗口函数提供跨行相关的当前查询行集执行计算的能力。仅当调用跟着OVER子句的聚集函数,作为窗口函数;否则它们作为常规的聚合函数。窗口也是一种分组,但和 group by 的分组不同。窗口,可以提供分组之外,还可以执行对每个窗口进行计算。可以想象成是group by 后,然后对每个分组进行计算,而不像Group by ,只是单纯地分组。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能简单的解决 “每组取 top 5” 的这类问题。MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。

    [10]、对索引的支持更强

    PostgreSQL 的可以使用函数和条件索引,这使得PostgreSQL数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。对于索引类型:

    MySQL:取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 PostgreSQL:支持 B-树、哈希、R-树和 Gist 索引。 InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。PostgreSQL不存在这个问题。

    索引类型方面,MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:B+TREE。PostgreSQL支持 B-树、哈希、R-树和 Gist 索引。

    [11]、集群支持更好

    Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。复制(Replication)功能是异步的并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。

    PostgreSQL有丰富的开源cluster软件支持。plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。

    另外,PostgreSQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。

    [12]、事务隔离做的更好

    MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 PostgreSQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能。

    [13]、对于字符支持更好一些

    MySQL 里需要 utf8mb4 才能显示 emoji 的坑, PostgreSQL 没这个坑。

    [14]、对表连接支持较完整

    对表连接支持较完整,MySQL只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。PostgreSQL都支持。

    [15]、存储方式支持更大的数据量

    PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

    [16]、时间精度更高

    MySQL对于时间、日期、间隔等时间类型没有秒以下级别的存储类型,而PostgreSQL可以精确到秒以下。

    [17]、优化器的功能较完整

    MySQL对复杂查询的处理较弱,查询优化器不够成熟,explain看执行计划的结果简单。性能优化工具与度量信息不足。

    PostgreSQL很强大的查询优化器,支持很复杂的查询处理。explain返回丰富的信息。提供了一些性能视图,可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息,也可以看到cache命中率。网上有一个开源的pgstatspack工具。

    [18]、序列支持更好

    MySQL 不支持多个表从同一个序列中取 id, 而 PostgreSQL 可以。

    [19]、对子查询支持更好

    对子查询的支持。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。几乎任何数据库的子查询 (subquery) 性能都比 MySQL 好。

    [20]、增加列更加简单

    MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表.

    MySQL相对于PostgreSQL的优势

    [1]、MySQL比PostgreSQL更流行

    流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。易用,很容易安装。第三方工具,包括可视化工具,让用户能够很容易入门。

    [2]、回滚实现更优

    innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。

    [3]、在Windows上运行更可靠

    与PostgreSQL相比,MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在 NT/Win2000/WinXP下,是一个服务),而PostgreSQL是运行在Cygwin模拟环境下。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的。

    [4]、线程模式相比进程模式的优势

    MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

    进程模式对多CPU利用率比较高。进程模式共享数据需要用到共享内存,而线程模式数据本身就是在进程空间内都是共享的,不同线程访问只需要控制好线程之间的同步。 线程模式对资源消耗比较少。所以MySQL能支持远比PostgreSQL多的更多的连接。但PostgreSQL中有优秀的连接池软件软件,如pgbouncer和pgpool,所以通过连接池也可以支持很多的连接。

    [5]、权限设置上更加完善

    MySQL在权限系统上比PostgreSQL某些方面更为完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限, PostgreSQL可以通过建立视图,并确定视图的权限来弥补。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的,但是在很多时候,这是有用的。

    [6]、存储引擎插件化机制

    MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

    [7]、适应24/7运行

    MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。

    [8]、更加试用于简单的场景

    PostgreSQL只支持堆表,不支持索引组织表,Innodb只支持索引组织表。

    • 索引组织表的优势:表内的数据就是按索引的方式组织,数据是有序的,如果数据都是按主键来访问,那么访问数据比较快。而堆表,按主键访问数据时,是需要先按主键索引找到数据的物理位置。
    • 索引组织表的劣势:索引组织表中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织表来说,主键的值不能太大,否则占用的空间比较大。

    对于索引组织表来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入的性能。所以对于使用innodb来说,我们一般最好让主键是一个无意义的序列,这样插入每次都发生在最后,以避免这个问题。 由于索引组织表是按一个索引树,一般它访问数据块必须按数据块之间的关系进行访问,而不是按物理块的访问数据的,所以当做全表扫描时要比堆表慢很多,这可能在OLTP中不明显,但在数据仓库的应用中可能是一个问题。

    总结

    MySQL从一开始就没有打算做所有事情,因而它在功能方面有一定的局限性,并不能满足一些先进应用程序的要求。MySQL对某些功能(例如引用、事务、审计等)的实现方式使得它与其他的关系型数据库相比缺少了一些可靠性。对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。除非你需要绝对的数据完整性,ACID遵从性或者设计复杂,否则PostgreSQL对于简单的场景而言有点多余。

    如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的:

    • 如果你的操作系统是Windows,你应该使用MySQL。
    • 当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。
    • 如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。
    • 你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
    • 如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。
    + + + diff --git a/documents/guides/basic-knowledge/spring-data-jpa.html b/documents/guides/basic-knowledge/spring-data-jpa.html index d6f151232..3aa043ebe 100644 --- a/documents/guides/basic-knowledge/spring-data-jpa.html +++ b/documents/guides/basic-knowledge/spring-data-jpa.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Spring Data JPA | Eurynome Cloud - + -

    Spring Data JPA

    JPA

    JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence,详细内容可参考https://github.com/javaee/jpa-specopen in new window

    JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束 HibernateTopLinkJDOORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。总的来说,JPA包括以下3方面的技术:

    • ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系
    • API: 操作实体对象来执行CRUD操作
    • 查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL语句紧密耦合

    JPA架构

    Spring Data Jpa

    Spring官方的解释https://spring.io/projects/spring-data-jpa#overviewopen in new window

    Spring Data Jpa官方解释

    Spring Data JPASpring Data 家族的一部分,可以轻松实现基于 JPA 的存储库。 此模块处理对基于 JPA 的数据访问层的增强支持。 它使构建使用数据访问技术的Spring驱动应用程序变得更加容易。

    在相当长的一段时间内,实现应用程序的数据访问层一直很麻烦。 必须编写太多样板代码来执行简单查询以及执行分页和审计。 Spring Data JPA 旨在通过减少实际需要的工作量来显著改善数据访问层的实现。 作为开发人员,您编写repository接口,包括自定义查找器方法,Spring将自动提供实现。

    Spring Data生态

    Jpa、Hibernate、Spring Data Jpa三者之间的关系

    这个问题可参考https://stackoverflow.com/questions/16148188/spring-data-jpa-versus-jpa-whats-the-difference及https://blog.csdn.net/u014421556/article/details/52635000open in new window

    总的来说JPAORM规范,HibernateTopLink 等是 JPA 规范的具体实现,这样的好处是开发者可以面向 JPA 规范进行持久层的开发,而底层的实现则是可以切换的。Spring Data Jpa 则是在 JPA 之上添加另一层抽象(Repository层的实现),极大地简化持久层开发及 ORM 框架切换的成本。

    Jpa、Hibernate、Spring Data Jpa三者之间的关系

    Spring Data Jpa的java配置方案

    Spring Boot 没出来之前如果要采用 Java Configuration 来配置 Spring Data Jpa 你需要配置如下的Bean 参考自Spring In Action及Spring Data Jpa官方文档5.1.2. Annotation-based Configurationopen in new window

    import org.springframework.context.annotation.Bean;
    +    

    Spring Data JPA

    JPA

    JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence,详细内容可参考https://github.com/javaee/jpa-specopen in new window

    JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束 HibernateTopLinkJDOORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。总的来说,JPA包括以下3方面的技术:

    • ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系
    • API: 操作实体对象来执行CRUD操作
    • 查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL语句紧密耦合

    JPA架构

    Spring Data Jpa

    Spring官方的解释https://spring.io/projects/spring-data-jpa#overviewopen in new window

    Spring Data Jpa官方解释

    Spring Data JPASpring Data 家族的一部分,可以轻松实现基于 JPA 的存储库。 此模块处理对基于 JPA 的数据访问层的增强支持。 它使构建使用数据访问技术的Spring驱动应用程序变得更加容易。

    在相当长的一段时间内,实现应用程序的数据访问层一直很麻烦。 必须编写太多样板代码来执行简单查询以及执行分页和审计。 Spring Data JPA 旨在通过减少实际需要的工作量来显著改善数据访问层的实现。 作为开发人员,您编写repository接口,包括自定义查找器方法,Spring将自动提供实现。

    Spring Data生态

    Jpa、Hibernate、Spring Data Jpa三者之间的关系

    这个问题可参考https://stackoverflow.com/questions/16148188/spring-data-jpa-versus-jpa-whats-the-difference及https://blog.csdn.net/u014421556/article/details/52635000open in new window

    总的来说JPAORM规范,HibernateTopLink 等是 JPA 规范的具体实现,这样的好处是开发者可以面向 JPA 规范进行持久层的开发,而底层的实现则是可以切换的。Spring Data Jpa 则是在 JPA 之上添加另一层抽象(Repository层的实现),极大地简化持久层开发及 ORM 框架切换的成本。

    Jpa、Hibernate、Spring Data Jpa三者之间的关系

    Spring Data Jpa的java配置方案

    Spring Boot 没出来之前如果要采用 Java Configuration 来配置 Spring Data Jpa 你需要配置如下的Bean 参考自Spring In Action及Spring Data Jpa官方文档5.1.2. Annotation-based Configurationopen in new window

    import org.springframework.context.annotation.Bean;
     import org.springframework.context.annotation.Configuration;
     import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
     import org.springframework.orm.jpa.JpaTransactionManager;
    @@ -730,7 +730,7 @@
             SpringApplication.run(SpringBootJpaApplication.class, args);
         }
     }
    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    更多关于Jpa Specificationsopen in new windowExampleopen in new window查询请查阅官方文档

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    更多关于Jpa Specificationsopen in new windowExampleopen in new window查询请查阅官方文档

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    + diff --git a/documents/guides/configurations/index.html b/documents/guides/configurations/index.html new file mode 100644 index 000000000..6a20b96cd --- /dev/null +++ b/documents/guides/configurations/index.html @@ -0,0 +1,24 @@ + + + + + + + 快速配置 | Eurynome Cloud + + + + +

    快速配置

    eurynome-cloud-environment.yaml

    herodotus.environment.logstash-server-addr

    • Type: String | Boolean
    • Default: false

    日志中心Logstash连接TCP地址。Logstash连接默认端口:5044

    • Example:127.0.0.1:5044

    提示

    如果设置成false,则关闭日志收集组件与日志中心Logstash的连接。如果无法连接Logstash则会抛错

    herodotus.environment.gateway-server-addr

    • Type: String
    • Default: ""

    服务网关地址,Gateway服务默认端口:8847

    • Example:http://localhost:8847

    herodotus.environment.database.host

    • Type: String
    • Default: ""

    数据库连接地址。

    • Example:127.0.0.1

    herodotus.environment.database.port

    • Type: String
    • Default: ""

    数据库连接端口。

    • Example:5432

    herodotus.environment.database.name

    • Type: String
    • Default: ""

    数据库名。

    herodotus.environment.database.username

    • Type: String
    • Default: ""

    数据库登录用户名。

    herodotus.environment.database.password

    • Type: String
    • Default: ""

    数据库登录密码。

    herodotus.environment.redis.host

    • Type: String
    • Default: ""

    Redis连接地址。

    • Example:127.0.0.1

    herodotus.environment.redis.port

    • Type: String
    • Default: 6379

    Redis连接端口。

    • Example:6379

    herodotus.environment.redis.password

    • Type: String
    • Default: ""

    Redis连接密码。

    herodotus.environment.kafka.bootstrap-servers

    • Type: String
    • Default: ""

    Kafka连接地址连接地址。Kafka连接默认端口9092

    • Example:127.0.0.1:9092

    herodotus.switch.database.ddl-auto

    • Type: Enum
    • Default: ""
    • Values: createcreate-dropupdatevalidatenone

    配置 Spring Data JPA 自动DDL处理状态。参阅:[数据初始化](../documents/数据初始化.md#Spring Data JPA 更换数据库)

    herodotus.switch.database.init-mode

    • Type: Enum
    • Default: ""
    • Values: neveralwaysembedded

    配置 Spring Data JPA 自动DDL处理状态。参阅:[数据初始化](../documents/数据初始化.md#Spring Data JPA 初始化数据库)

    herodotus.switch.database.use-second-level-cache

    • Type: Boolean
    • Default: false

    是否开启 Spring Data JPA 二级缓存

    herodotus.switch.database.show-sql

    • Type: Boolean
    • Default: false

    是否在日志中输出 Hibernate HQL 调试日志

    herodotus.switch.database.format-sql

    • Type: Boolean
    • Default: false

    是否对日志中输出 Hibernate 的 HQL 调试日志进行格式美化

    herodotus.switch.database.generate-statistics

    • Type: Boolean
    • Default: false

    是否开启 Hibernate SQL 运行分析

    herodotus.switch.swagger.enabled

    • Type: Boolean
    • Default: false

    是否开启 Swagger API 文档

    herodotus.management.log-center.server-addr

    • Type: String | Boolean
    • Default: false

    日志中心Logstash连接TCP地址。Logstash连接默认端口:5044。具体值与herodotus.environment.logstash-server-addr 相同

    • Example:127.0.0.1:5044

    herodotus.management.log-center.loggers

    • Type: Map<String, LogLevel>
    • Default: null

    指定输出到日志中心的日志级别,以及具体日志内容

    • Example:127.0.0.1:5044
    cn.herodotus.eurynome: debug
    +org.springframework.security: debug
    +com.alibaba.nacos.client.naming: error
    +
    1
    2
    3
    + + + diff --git "a/documents/guides/configurations/\347\263\273\347\273\237\351\205\215\347\275\256.html" "b/documents/guides/configurations/\347\263\273\347\273\237\351\205\215\347\275\256.html" new file mode 100644 index 000000000..03db89f29 --- /dev/null +++ "b/documents/guides/configurations/\347\263\273\347\273\237\351\205\215\347\275\256.html" @@ -0,0 +1,21 @@ + + + + + + + 系统配置 | Eurynome Cloud + + + + + + + + diff --git "a/documents/guides/configurations/\347\273\204\344\273\266\351\205\215\347\275\256.html" "b/documents/guides/configurations/\347\273\204\344\273\266\351\205\215\347\275\256.html" new file mode 100644 index 000000000..2c853ff9c --- /dev/null +++ "b/documents/guides/configurations/\347\273\204\344\273\266\351\205\215\347\275\256.html" @@ -0,0 +1,21 @@ + + + + + + + 组件配置 | Eurynome Cloud + + + + + + + + diff --git a/documents/guides/documents-athena/index.html b/documents/guides/documents-athena/index.html index 44635563c..457287995 100644 --- a/documents/guides/documents-athena/index.html +++ b/documents/guides/documents-athena/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();介绍 | Eurynome Cloud - + -

    介绍

    Athena 是什么?

    • Eurynome Cloud Athena 是从 Eurynome Cloud 中提取出来的、可以独立运行的、基于OAuth2认证的、前后端分离的单体式后台管理脚手架。
    • Eurynome Cloud Athena 本质上就是eurynome-cloud-oauth-starter的应用。从pom中可以看到该工程核心依赖就是 Eurynome Cloudeurynome-cloud-oauth-starter
    • Eurynome Cloud Athena 更多的是一个演示性工程,用来示例如何使用eurynome-cloud-oauth-starter,以及相关的配置参数是如何配置的。也可以完全不用照搬Athena工程,自己新建一个Spring Boot工程,添加eurynome-cloud-oauth-starter依赖和相应的配置也可以使用。

    Athena 不是什么?

    Eurynome Cloud Athena 并不是一个完整的开源项目,其核心代码eurynome-cloud-oauth-starter,需要通过编译 Eurynome Cloud 生成(目前 Eurynome Cloud 核心包并没有提交至Maven中央仓库)。

    为什么 Athena 和 Eurynome Cloud 共享代码?

    不管是单独搭建基于Spring SecurityOAuth2的后台管理脚手架,还是构建基于Spring Cloud的分布式微服务架构,Spring SecurityOAuth2核心代码的应用方式都是不变的,可以是通用的,因此将SecurityOAuth2以及其它通用的代码放在 Eurynome Cloud 中,编译后供 Eurynome Cloud Athena 使用。

    曾经也考虑过,在重新提取一个工程,专门放置通用代码。但是这种方式,额外多了一道编译手续,也不便于对 Eurynome Cloud 整个代码的了解和使用,因此放弃了这种方式。

    为什么构建 Athena?

    基于Spring CloudSpring Cloud Alibaba的微服务架构,已经成为应用建设的主流方案。但是不可否认的是,搭建一套微服务架构所需的基础架构越来越多,也越来越复杂,所需的配套资源也越来越大。仅仅是在开发电脑上搭建一套运行开发调试环境,其复杂度和所需的资源也不容小觑。而很多应用,特别是小型应用,在早期开发中或者用户量不大的前期完全没有必要上一整套微服务,额外增加复杂度。很多情况下一套单体的、前后端分离的后台就足以满足。

    因为以上的考虑,才构建的 Eurynome Cloud Athena。其实只要Spring SecurityOAuth2核心代码写的足够通用,单体式架构就自然而然的产生了。

    Eurynome Cloud Athena 不需要搭建NacosELKSentinelSkywalking等基础设施,只要一个数据库就可以独立运行,而且具备微服务架构除服务管理以外的所有功能。不仅编译和运行速度有几倍的提升,而且只要代码规范、分包合理,可以快速无缝迁移到微服务架构。这有助于在项目早期快速建设项目,方便开发人员在本地进行开发以及技术研究。

    如果你没有大量的时间和资源搭建微服务架构,那么就可以尝试使用 Eurynome Cloud Athena,可以从另一个角度快速、全面地了解 Eurynome Cloud

    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    - +

    介绍

    Athena 是什么?

    • Eurynome Cloud Athena 是从 Eurynome Cloud 中提取出来的、可以独立运行的、基于OAuth2认证的、前后端分离的单体式后台管理脚手架。
    • Eurynome Cloud Athena 本质上就是eurynome-cloud-oauth-starter的应用。从pom中可以看到该工程核心依赖就是 Eurynome Cloudeurynome-cloud-oauth-starter
    • Eurynome Cloud Athena 更多的是一个演示性工程,用来示例如何使用eurynome-cloud-oauth-starter,以及相关的配置参数是如何配置的。也可以完全不用照搬Athena工程,自己新建一个Spring Boot工程,添加eurynome-cloud-oauth-starter依赖和相应的配置也可以使用。

    Athena 不是什么?

    Eurynome Cloud Athena 并不是一个完整的开源项目,其核心代码eurynome-cloud-oauth-starter,需要通过编译 Eurynome Cloud 生成(目前 Eurynome Cloud 核心包并没有提交至Maven中央仓库)。

    为什么 Athena 和 Eurynome Cloud 共享代码?

    不管是单独搭建基于Spring SecurityOAuth2的后台管理脚手架,还是构建基于Spring Cloud的分布式微服务架构,Spring SecurityOAuth2核心代码的应用方式都是不变的,可以是通用的,因此将SecurityOAuth2以及其它通用的代码放在 Eurynome Cloud 中,编译后供 Eurynome Cloud Athena 使用。

    曾经也考虑过,在重新提取一个工程,专门放置通用代码。但是这种方式,额外多了一道编译手续,也不便于对 Eurynome Cloud 整个代码的了解和使用,因此放弃了这种方式。

    为什么构建 Athena?

    基于Spring CloudSpring Cloud Alibaba的微服务架构,已经成为应用建设的主流方案。但是不可否认的是,搭建一套微服务架构所需的基础架构越来越多,也越来越复杂,所需的配套资源也越来越大。仅仅是在开发电脑上搭建一套运行开发调试环境,其复杂度和所需的资源也不容小觑。而很多应用,特别是小型应用,在早期开发中或者用户量不大的前期完全没有必要上一整套微服务,额外增加复杂度。很多情况下一套单体的、前后端分离的后台就足以满足。

    因为以上的考虑,才构建的 Eurynome Cloud Athena。其实只要Spring SecurityOAuth2核心代码写的足够通用,单体式架构就自然而然的产生了。

    Eurynome Cloud Athena 不需要搭建NacosELKSentinelSkywalking等基础设施,只要一个数据库就可以独立运行,而且具备微服务架构除服务管理以外的所有功能。不仅编译和运行速度有几倍的提升,而且只要代码规范、分包合理,可以快速无缝迁移到微服务架构。这有助于在项目早期快速建设项目,方便开发人员在本地进行开发以及技术研究。

    如果你没有大量的时间和资源搭建微服务架构,那么就可以尝试使用 Eurynome Cloud Athena,可以从另一个角度快速、全面地了解 Eurynome Cloud

    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    + diff --git a/documents/guides/documents/index.html b/documents/guides/documents/index.html index eeb9c7b6b..ccfd61363 100644 --- a/documents/guides/documents/index.html +++ b/documents/guides/documents/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();介绍 | Eurynome Cloud - + -

    介绍

    Eurynome Cloud 微服务架构


    JDK 1.8+  Spring Boot 2.5.4  Spring Cloud 2020.0.3  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

    提示

    有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

    Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

    总体架构

    架构图

    功能演示

    提示

    有特点的功能,正在逐步添加。

    [1]、基于URL的方法级动态权限配置

    架构图

    [2]、服务调用链监控

    架构图

    版本号说明

    本系统版本号,分为四段。

    • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
    • 第三段,表示系统功能的变化
    • 第四段,表示系统功能维护及优化情况

    交流反馈

    • 有问题欢迎提交ISSUSopen in new window ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。
    • 邮箱:herodotus@aliyun.com
    • QQ群:922565573open in new window
    更新时间: 2021/9/12 上午3:37:41
    贡献者: herodotus
    - +

    介绍

    Eurynome Cloud 微服务架构


    JDK 1.8+  Spring Boot 2.5.5  Spring Cloud 2020.0.4  Spring Cloud Alibaba 2021.1  Nacos 2.0.3  License Apache 2.0  码匠君  Version 2.5.5.0  Gitee star  Gitee fork

    提示

    有幸负责过一个“中台”项目,彻底告别了SSH。随着微服务以及相关架构使用和研究深入,发现很多方面都不能满足需求。研究过很多优秀的开源项目,感觉都不太适合自己。所以就想自己做一套属于自己的微服务架构,因此就有了Eurynome-Cloud

    Eurynome Cloud 是一款企业级微服务架构和服务能力开发平台。基于 Spring Boot 2.5.4Spring Cloud 2020.0.3Spring Cloud Alibaba 2021.1Nacos 2.0.3 等最新版本开发,遵循 Spring Boot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用

    总体架构

    架构图

    功能演示

    提示

    有特点的功能,正在逐步添加。

    [1]、基于URL的方法级动态权限配置

    架构图

    [2]、服务调用链监控

    架构图

    版本号说明

    本系统版本号,分为四段。

    • 第一段和第二段,与 Spring Boot 版本对应,根据采用的 Spring Boot 版本变更。例如,当前采用 Spring Boot 2.4.6 版本,那么就以2.4.X.X开头
    • 第三段,表示系统功能的变化
    • 第四段,表示系统功能维护及优化情况

    交流反馈

    • 有问题欢迎提交ISSUSopen in new window ,请写清楚问题的具体原因,重现步骤和环境(上下文)。Gitee评论中有字数限制,稍微复杂的内容不太便于回复。
    • 邮箱:herodotus@aliyun.com
    • QQ群:922565573open in new window
    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git "a/documents/guides/documents/\344\276\235\350\265\226\347\273\204\344\273\266.html" "b/documents/guides/documents/\344\276\235\350\265\226\347\273\204\344\273\266.html" new file mode 100644 index 000000000..b48a39fd8 --- /dev/null +++ "b/documents/guides/documents/\344\276\235\350\265\226\347\273\204\344\273\266.html" @@ -0,0 +1,21 @@ + + + + + + + 依赖组件 | Eurynome Cloud + + + + +
    + + + diff --git "a/documents/guides/documents/\345\211\215\347\253\257\346\211\213\345\206\214.html" "b/documents/guides/documents/\345\211\215\347\253\257\346\211\213\345\206\214.html" deleted file mode 100644 index b308a7bce..000000000 --- "a/documents/guides/documents/\345\211\215\347\253\257\346\211\213\345\206\214.html" +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - 前端手册 | Eurynome Cloud - - - - -
    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    - - - diff --git "a/documents/guides/documents/\345\211\215\347\253\257\351\227\256\351\242\230.html" "b/documents/guides/documents/\345\211\215\347\253\257\351\227\256\351\242\230.html" new file mode 100644 index 000000000..eaf3db81c --- /dev/null +++ "b/documents/guides/documents/\345\211\215\347\253\257\351\227\256\351\242\230.html" @@ -0,0 +1,51 @@ + + + + + + + 前端问题 | Eurynome Cloud + + + + +

    前端问题

    暂时不要升级的依赖包

    依赖包当前使用版本最新版本说明
    remark-footnotes2.0.0= 3.0.0目前不要升级该包,该包是为了解决 Nuxt 启动 Warning 问题
    rollup-plugin-vue5.1.9> 6.0.0目前不要升级该包,等工程变更为 Vue3 在进行升级
    sass4.44.2> 5.9.0目前不要升级该包,会出现很多样式除法过期的提示,需要等到Vuetify大版本升级后再考虑
    sass-loader10.1.1= 12.1.0目前不要升级该包,最新版本很多包还有没有适配
    webpack4.46.0> 5.40.0目前不要升级该包,compression-webpack-plugin会抛错误
    css-loader5.2.7> 6.3.0目前不要升级该包,编译时会抛错误
    typescript4.2.3> 4.3.0目前不要升级该包,升级后系统无法正确运行

    问题一:升级依赖包时出错

    使用yarn upgrade-interactive --latest命令升级依赖包的时候,特别是@hecate/form-service 中,有依赖包可以升级时(目测是由于使用了 Nuxt),经常会出现下面的错误。

    Invariant Violation: expected workspace package to exist for "autoprefixer"
    +    at invariant (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:2314:15)
    +    at _loop2 (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:94537:9)
    +    at PackageHoister.init (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:94596:19)
    +    at PackageLinker.getFlatHoistedTree (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48744:20)
    +    at PackageLinker.<anonymous> (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48755:27)
    +    at Generator.next (<anonymous>)
    +    at step (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:310:30)
    +    at D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:328:14
    +    at new Promise (<anonymous>)
    +    at new F (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:5301:28)
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    这个问题是 yarn 本身的 Bug,虽然 yarn 已经升级到了 1.22.10,但是一会好一会不好的。

    (1)解决办法一

    在工程中将 yarn 的版本,降到 1.19.XX。这种方法,只对本工程有效,这样其它工程仍旧可以使用最新版的 yarn,避免了全局安装低版本 yarn 的问题

    yarn policies set-version 1.19.XX
    +
    +// .yarn 目录生成后,执行
    +yarn install
    +
    1
    2
    3
    4

    这个命令会在工程中生成一个.yarn 目录以及一个.yarnrc 文件,并在其中指定 yarn 版本。

    (2)解决办法二

    这种办法土一点,但是可以不用去理会 yarn 的不管问题。

    // 1、先查询看看那些包可以升级
    +yarn upgrade-interactive --latest
    +
    +// 2、到指定的包的package.json中,手工修改版本号
    +
    +// 3、清除组件包的依赖
    +lerna clean
    +
    +// 4、重新关联依赖
    +lerna bootstrap
    +
    +或
    +
    +yarn install
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    问题二:运行命令是出现禁止脚本运行的错误

    解决方法:打开 PowerShell(在小娜里搜就行),输入:

    set-executionpolicy remotesigned
    +
    1

    之后选择 Y,问题就解决了。

    + + + diff --git "a/documents/guides/documents/\345\244\232\347\216\257\345\242\203\351\205\215\347\275\256.html" "b/documents/guides/documents/\345\244\232\347\216\257\345\242\203\351\205\215\347\275\256.html" index 1c1bb19a6..a88795934 100644 --- "a/documents/guides/documents/\345\244\232\347\216\257\345\242\203\351\205\215\347\275\256.html" +++ "b/documents/guides/documents/\345\244\232\347\216\257\345\242\203\351\205\215\347\275\256.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();多环境配置 | Eurynome Cloud - + -

    多环境配置

    什么是多环境配置?

    在实际项目开发过程中,我们往往需要区分开发,测试,联调、预发布,生产等不同的应用环境。这些应用环境用途不同,对应环境的配置项、稳定性、数据质量、保障性、可接触人群等要求也不同,比如Swagger一般上在生产时是关闭的;不同环境数据库地址、端口号等都是不尽相同的。要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。

    使用多环境配置,可以针对不同的应用环境,提前配置好对应的环境配置信息。在使用时,仅需要修改具体的环境名称,就可以把对应环境配置信息、系统参数等相关内容全部切换。不仅使用便捷,还极大地降低了手工修改参数的出错率。

    Maven 多环境配置

    使用Maven可以通过在pom.xml中增加<profiles>配置进行多环境的配置。参见以下示例:

    <profiles>
    +    

    多环境配置

    什么是多环境配置?

    在实际项目开发过程中,我们往往需要区分开发,测试,联调、预发布,生产等不同的应用环境。这些应用环境用途不同,对应环境的配置项、稳定性、数据质量、保障性、可接触人群等要求也不同,比如Swagger一般上在生产时是关闭的;不同环境数据库地址、端口号等都是不尽相同的。要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。

    使用多环境配置,可以针对不同的应用环境,提前配置好对应的环境配置信息。在使用时,仅需要修改具体的环境名称,就可以把对应环境配置信息、系统参数等相关内容全部切换。不仅使用便捷,还极大地降低了手工修改参数的出错率。

    Maven 多环境配置

    使用Maven可以通过在pom.xml中增加<profiles>配置进行多环境的配置。参见以下示例:

    <profiles>
         <profile>
             <id>development</id>
             <activation>
    @@ -89,6 +89,6 @@
         </properties>
     </profile>
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

    Docker和K8S 多环境配置

    DockerK8S的多环境,因为不同使用者使用的方式不同,Eurynome Cloud 并没有过多涉及。Eurynome Cloud 中,也简单定义了自己Docker多环境,涉及productiondevelopment两个环境,主要区别是production环境docker打包会包含Skywalking Agent,而development环境docker打包只会包含应用,通过执行不同的docker-compose文件进行区分仅此而已。如果不使用Skywalking,使用development环境打包docker即可。

    Eurynome Cloud 的多环境配置

    微服务架构涉及多方面内容,Eurynome Cloud的为解决多环境,综合使用MavenSpring Boot以及Nacos多环境的特点,以支持微服务的多环境切换和多种数据库的配置支持。

    Eurynome Cloud 中的Maven多环境配置

    Eurynome Cloud Maven 多环境配置,在工程根目录下的pom.xml中进行配置。这里的环境配置主要解决以下问题:

    1. 传递参数:传递<profile.name><database.type>两个参数。
    • <profile.name>的值传递至bootstrap.yml中,这样就可以联动使用Spring BootNacos的多环境配置;
    • <database.type>参数,传递至bootstrap.yml中,用于指定具体使用的数据库配置
    1. Dashboard:通过<skip.build.source.package><skip.copy.docker.resource><skip.build.git.commit.info>三个参数进行打包控制。
    • <skip.build.source.package> 控制是否构建源代码包:构建源代码包便于调试eurynome-cloud-athena的调试。
    • <skip.copy.docker.resource> 控制是否拷贝服务jar包:编译完成后,将可执行额外操作,将服务jar包拷贝到统一的docker build context下,使用统一配置build docker,这样就不必每一个服务都编写Dockerfile
    • <skip.build.git.commit.info> 控制是否生成Git信息:是否将Git commit等相关信息在编译打包时,写入到jar包中。写入Git commit等相关信息,可以便于在运维过程中快速区分不同jar对应的提交信息、编译、开发者等相关信息。
    1. NacosSentinel Dashboard地址指定

    指定不同环境下Nacos配置中心、服务发现和Sentinel Dashboard的地址,Nacos配置中心、服务发现地址无法写在Nacos的配置中,所以在此处进行设置。

    Eurynome Cloud 中的Spring Boot和Nacos多环境配置

    • 通过Spring Bootprofiles机制,实现Spring BootNacos的联动。
    • 利用NacosGroup信息,实现Nacos配置的多环境。${project_home}/platform/eurynome-cloud-management/resources/configs目录下,还有一级目录。这级目录的名称,是对应Nacos中的Group。所以在向Nacos导入配置时,一定要注意Group的创建和匹配。切勿全部导入到DEFAULT组下,这样会导致无法正常运行。
    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    - + diff --git "a/documents/guides/documents/\345\270\270\347\224\250\345\221\275\344\273\244.html" "b/documents/guides/documents/\345\270\270\347\224\250\345\221\275\344\273\244.html" new file mode 100644 index 000000000..1d73b80fc --- /dev/null +++ "b/documents/guides/documents/\345\270\270\347\224\250\345\221\275\344\273\244.html" @@ -0,0 +1,54 @@ + + + + + + + 常用命令 | Eurynome Cloud + + + + +

    常用命令

    前端工程涉及命令

    指定包

    指定包,在某个包下执行 yarn 命令

    yarn ws:**
    +
    +// 例如:
    +// 添加包(从npm中添加)
    +yarn ws:example add lodash -D
    +
    +// 删除包
    +yarn ws:example remove lodash
    +
    +// 运行example
    +yarn ws:example serve
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    依赖工程内组件

    添加本工程中的组件作为依赖包(尚未上传至 npm)

    // 将工程中的h-button 添加至example中
    +// 注意:不支持批量添加多个,要一个一个加
    +lerna add @hecate/h-button --scope @hecate/example
    +
    +// 删除本工程中的组件,使用yarn命令即可
    +yarn ws:example remove @hecate/h-button
    +
    1
    2
    3
    4
    5
    6

    根目录添加依赖

    在根目录添加依赖包

    // -W 意思是指工作区,想要操作工程级的包,这个参数不能缺
    +// -D 指定devDependencies的意思
    +// 添加组件
    +yarn add lodash -D -W
    +
    +// 删除组件
    +yarn add lodash -W
    +
    1
    2
    3
    4
    5
    6
    7

    升级依赖包

    yarn upgrade-interactive --latest
    +
    +// 升级全局依赖包
    +yarn global upgrade-interactive --latest
    +
    1
    2
    3
    4

    编译所有组件

    lerna run lib
    +
    1

    清空组件 dist

    lerna run clean
    +
    1

    清除组件中的 node_modules

    lerna clean
    +
    1

    让各个组件中重新关联依赖包

    lerna bootstrap 或 yarn install
    +
    1

    提交代码

    yarn push
    +
    1
    + + + diff --git "a/documents/guides/documents/\345\277\253\351\200\237\344\272\206\350\247\243.html" "b/documents/guides/documents/\345\277\253\351\200\237\344\272\206\350\247\243.html" index f7d69274d..97e229ad3 100644 --- "a/documents/guides/documents/\345\277\253\351\200\237\344\272\206\350\247\243.html" +++ "b/documents/guides/documents/\345\277\253\351\200\237\344\272\206\350\247\243.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();快速了解 | Eurynome Cloud - + -

    快速了解

    项目简介

    Eurynome Cloud 是一款基于 Spring BootSpring CloudSpring Cloud AlibabaVueVuetify 的前后端分离微服务架构和服务能力开发平台。同时还提供与微服务版本技术体系一致的单体版架构,无须搭建复杂的微服务基础设施,即可快速搭建基于 OAuth2 的、前后端分离的服务应用。

    主要特性

    • 面向互联网和企业级应用开发(支持手机验证码、小程序、第三方应用登录、支持证照审核、文本图片音频视频内容审核、企业人事管理等诸多功能)
    • Maven多模块依赖,高度模块化和可配置化,方便模块升级、增减模块。
    • 适配多种数据库类型,同时支持 Spring Data JPAMybatis Plus
    • 支持动态方法级权限,无须配置 @PreAuthorize 注解、使用 antMatchers 方法控制权限。
    • 完善的XSS防范及脚本过滤和SQL注入防控机制,便捷的、灵活的防刷机制、杜绝外部恶意攻击
    • 多种消息队列支持,基于消息总线适配 RabbitMQKafka
    • 自动化权限数据收集、数据表结构默认数据自动初始化、Nacos 配置自动导入。
    • 自研多级数据缓存,完美融合 Spring Data JPA & Hibernate 二级查询缓存。
    • 共享式、统一性多环境配置,统一化配置设定,简化配置参数修改数量,降低修改配置出错率,提升平台维护便捷性。

    技术选型

    1、系统环境

    • Java EE 8
    • Servlet 3.0
    • Apache Maven 3.0

    2、主框架

    • Spring Boot 2.5.X
    • Spring Cloud 2020.0.3
    • Spring Cloud Alibaba 2021.1
    • Spring Security & OAuth 2.0

    3、持久层

    • Apache Mybatis & Mybatis Plus
    • Spring Boot Data JPA
    • Spring Boot Validation
    • Jetcache、Caffeine、Redis lettuce

    内置功能

    • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。包含第三方登录用户信息的管理。
    • 角色管理:创建用户角色,为角色权限分配、设置角色接口权限划分。
    • 权限管理:动态设定接口表达式权限,替代在代码中使用 @PreAuthorize 注解、antMatchers 方法等传统权限控制手段。
    • 终端管理OAuth2 终端信息管理,设置终端认证类型、Token有效时间、权限范围等信息。
    • 应用管理:结合 OAuth2 机制,创建应用信息,申请APP_KEY。
    • 范围管理:创建终端权限范围、设置范围对应权限。
    • 机构管理:配置系统组织机构,支持树形结构展示。
    • 部门管理:配置机构下属部门信息,支持树形机构展示。
    • 人员管理:配置机构人员信息,为人员分配和创建用户信息。
    • 归属管理:配置机构、部门和人员的归属关系,支持人员信息唯一,绑定标准机构、党团、工会等多种机构类型。避免针对不同机构类型为统一人员创建重复信息。此种结构设定,与Camunda工作流人员体系一一对应。
    • 系统接口:根据业务代码自动生成相关的api接口文档。
    • 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
    • 工作流编辑器:基于BPMN 2.0标准的在线工作流模型编辑器,支持SVGXML格式导入、导出。
    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +

    快速了解

    项目简介

    Eurynome Cloud 是一款基于 Spring BootSpring CloudSpring Cloud AlibabaVueVuetify 的前后端分离微服务架构和服务能力开发平台。同时还提供与微服务版本技术体系一致的单体版架构,无须搭建复杂的微服务基础设施,即可快速搭建基于 OAuth2 的、前后端分离的服务应用。

    主要特性

    • 面向互联网和企业级应用开发(支持手机验证码、小程序、第三方应用登录、支持证照审核、文本图片音频视频内容审核、企业人事管理等诸多功能)
    • Maven多模块依赖,高度模块化和可配置化,方便模块升级、增减模块。
    • 适配多种数据库类型,同时支持 Spring Data JPAMybatis Plus
    • 支持动态方法级权限,无须配置 @PreAuthorize 注解、使用 antMatchers 方法控制权限。
    • 完善的XSS防范及脚本过滤和SQL注入防控机制,便捷的、灵活的防刷机制、杜绝外部恶意攻击
    • 多种消息队列支持,基于消息总线适配 RabbitMQKafka
    • 自动化权限数据收集、数据表结构默认数据自动初始化、Nacos 配置自动导入。
    • 自研多级数据缓存,完美融合 Spring Data JPA & Hibernate 二级查询缓存。
    • 共享式、统一性多环境配置,统一化配置设定,简化配置参数修改数量,降低修改配置出错率,提升平台维护便捷性。

    技术选型

    1、系统环境

    • Java EE 8
    • Servlet 3.0
    • Apache Maven 3.0

    2、主框架

    • Spring Boot 2.5.X
    • Spring Cloud 2020.0.3
    • Spring Cloud Alibaba 2021.1
    • Spring Security & OAuth 2.0

    3、持久层

    • Apache Mybatis & Mybatis Plus
    • Spring Boot Data JPA
    • Spring Boot Validation
    • Jetcache、Caffeine、Redis lettuce

    内置功能

    • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。包含第三方登录用户信息的管理。
    • 角色管理:创建用户角色,为角色权限分配、设置角色接口权限划分。
    • 权限管理:动态设定接口表达式权限,替代在代码中使用 @PreAuthorize 注解、antMatchers 方法等传统权限控制手段。
    • 终端管理OAuth2 终端信息管理,设置终端认证类型、Token有效时间、权限范围等信息。
    • 应用管理:结合 OAuth2 机制,创建应用信息,申请APP_KEY。
    • 范围管理:创建终端权限范围、设置范围对应权限。
    • 机构管理:配置系统组织机构,支持树形结构展示。
    • 部门管理:配置机构下属部门信息,支持树形机构展示。
    • 人员管理:配置机构人员信息,为人员分配和创建用户信息。
    • 归属管理:配置机构、部门和人员的归属关系,支持人员信息唯一,绑定标准机构、党团、工会等多种机构类型。避免针对不同机构类型为统一人员创建重复信息。此种结构设定,与Camunda工作流人员体系一一对应。
    • 系统接口:根据业务代码自动生成相关的api接口文档。
    • 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
    • 工作流编辑器:基于BPMN 2.0标准的在线工作流模型编辑器,支持SVGXML格式导入、导出。
    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    + diff --git "a/documents/guides/documents/\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.html" "b/documents/guides/documents/\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.html" index 6d99456bd..e3d1714fc 100644 --- "a/documents/guides/documents/\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.html" +++ "b/documents/guides/documents/\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();数据初始化 | Eurynome Cloud - + -

    数据初始化

    系统初次部署数据库初始化内容

    Eurynome Cloud 在初次使用时,数据初始化涉及以下内容:

    • 数据库表创建,其中涉及以下几部分表的创建:
      1. OAuth2 标准表结构的创建
      2. 服务中涉及业务表的创建
      3. 个别View或函数的创建
    • 默认数据初始化,其中涉及以下几部分数据的初始化
      1. 默认用户、角色等数据的初始化
      2. 平台已有服务Rest API接口数据初始化以及权限数据的转化。

    数据表及数据初始化说明

    [1]、OAuth2 标准表结构的创建

    目前系统提供MySQLPostgreSQL 两种数据库的OAuth2标准的表结构创建脚本,可以在工程的${project_home}/configurations/scripts目录下找到对应的Schema SQL脚本。

    ${project_home}/packages/eurynome-cloud-security包的resources目录中,也存有一份OAuth2的表结构创建脚本以及默认数据的导入脚本。这些脚本与${project_home}/configurations/scripts内容一致,主要是用于微服务版和单体版的自动化表结构创建和数据初始化,具体用法后面会讲到。

    [2]、服务中涉及业务表的创建

    系统虽然同时支持MybatisJPA,但是已有服务的代码实现目前均是基于JPA编写,因此服务中涉及的业务表,只要spring.jpa.hibernate.ddl-auto属性设置为非none值,那么就可以自动创建。

    提示

    在微服务架构,可以通过修改Nacos对应环境下(系统支持多环境,不同环境对应Nacos不同的组)的eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto值进行修改。

    [3]、个别View或函数的创建(可选)

    如果已有功能使用到了数据库的视图、函数(或存储过程)等特性,那么会提供相应的创建脚本,可以在工程的${project_home}/configurations/scripts目录下找到对应的Schema SQL脚本。

    注:目前开源版本暂不涉及,可以忽略本项内容

    [4]、默认用户、角色等数据的初始化

    表结构创建完成之后,可以通过导入数据初始化脚本,导入系统默认的用户、角色以及OAuth2相关数据。该脚本可以在${project_home}/services/eurynome-cloud-upms-ability包的resources目录下找到。

    [5]、服务Rest API接口数据初始化

    系统基础的权限数据,来源于所有服务中包含的Rest API接口。为了方便使用,服务在正常启动之后,会扫描所有的RestController,获取其中所有的接口信息后,存入系统的sys_authority表作为权限数据。

    说明

    系统对扫描RestController,获取接口信息功能提供了开关配置,可以通过配置设置是否开启扫描功能。同时,考虑到减少配置,提高使用的便捷性,所以是否开启注解扫描的配置直接使用的是spring.jpa.hibernate.ddl-auto的值。即:如果spring.jpa.hibernate.ddl-auto的值是none,那么就关闭注解扫描功能。

    说明

    系统是以服务名、请求类型以及请求URL组合值的MD5值作为权限的ID,所以只要保证“服务名、请求类型、请求URL”这三个值不改变,那么权限的ID就不会变化。其中任意一个值有变化,就会被当成新的权限数据存入sys_authority表中,这时就一定请注意你所配置的role和authority的关系。

    说明

    扫描所有的RestController获取接口信息后,是使用 jpa 的save()方法进行权限数据的保存。这个方法既有新增功能又有更新功能,如果sys_authority表中没有该条权限数据就新增,如果有那么就更新。因此,尽量不要手动修改sys_authority的值,修改后的值会被重新的扫描RestController获取到的值覆盖。

    数据表和数据自动初始化

    因为是使用spring-data-jpa,所以可以使用spring-data-jpa提供的机制进行数据表和数据自动初始化。

    spring-data-jpa中,jpa的默认实现使用的是Hibernate。提供了基于JDBCHibernate两部分数据表创建和初始化机制:

    • 基于JDBC的初始化机制:通过配置spring.sql.init相关属性实现,使用jdbc读取sql脚本实现。schema相关脚本创建表、视图、存储过程等,data相关脚本导入数据。
    • 基于Hibernate的初始化机制:通过配置spring.jpa.hibernate.ddl-auto相关属性实现,利用Hibernate自身的机制实现。目前只用到的了建表功能。

    Eurynome Cloud的数据表和数据自动初始化就是基于这两种机制实现,用Hibernate的初始化机制创建服务涉及的相关业务表,用JDBC的初始化机制创建OAuth2的标准表和导入所有的初始化数据。

    由于spring-data-jpaJDBC的初始化机制,在服务启动过程中会早于Hibernate的初始化机制执行,这就导致在第一次执行数据表和数据自动初始化时会出现问题:服务涉及的业务表还没有创建,JDBC的初始化机制就可开始导入数据,导致数据初始化失败。

    解决办法

    1. 将所有表结构和初始数据全部生成为SQL脚本,只使用JDBC的初始化机制进行初始化。因为目前没有使用flyway等数据库版本管理,手动管理的数据库脚本越多,就越容易出现数据库变更后脚本更新不及时导致出错率增大的问题。(后续考虑增加flyway等数据库版本管理功能)
    2. 还是综合使用JDBC的初始化机制和Hibernate的初始化机制,使用一种绕的办法解决初始化时机不同的问题。

    具体步骤

    1. 设置属性spring.sql.init.mode=neverspring.jpa.hibernate.ddl-auto=create,先启动一次服务。这次启动Hibernate会把所有服务涉及的业务表创建出来,同时系统会把所有的扫描到的RestController接口存储至sys_authority表中。然后,停掉该服务。
    2. 设置属性spring.sql.init.mode=alwaysspring.jpa.hibernate.ddl-auto=update,再一次启动服务。这次服务启动会JDBC的初始化机制就会创建OAuth2的表结构,以及导入所有初始化数据而不会出错。
    3. 数据初始化成功后,请注意将属性spring.sql.init.mode改回never,防止下次运行再次导入数据导致主键冲突等问题。属性spring.jpa.hibernate.ddl-auto的值可以根据自己实际使用需求需改。一般在开发阶段或设置为update或者none

    系统默认账号

    系统部署完成后,可以使用一下账号进行登录使用:

    • 默认用户名:system
    • 默认密码:123456
    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +

    数据初始化

    知识铺垫

    基础原理

    Eurynome Cloud 核心数据访问层使用Spring Boot生态中的spring-boot-starter-data-jpa组件,spring-boot-starter-data-jpa 核心依赖是 Spring Data JPA

    JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范。Spring Data JPA 默认使用 Hibernate 作为 JPA 实现。参阅:Spring Data JPA

    Spring Data JPA 利用 Hibernate 多数据库支持能力实现不同类型数据库的支持,同时使用 Hibernatehbm2ddl 机制 实现数据库表的自动创建。除此以外,Spring Data JPA 提供了数据库SQL脚本自动执行机制,实现了数据脚本的初始化和表结构等创建功能。

    Spring Data JPA 更换数据库

    通过修改spring-boot-starter-data-jpa对应的配置参数就可以达成更换数据库的目的。主要涉及需要修改的配置参数如下表所示:

    配置说明
    spring.datasource.driver-class-name数据库Driver Class,不同的数据库驱动不同
    spring.datasource.url数据库访问连接,不同数据连接格式也不同
    spring.datasource.username数据库访问用户名,如果相同可以不用修改
    spring.datasource.password数据库访问密码,如果相同可以不用修改
    spring.jpa.database选择数据库类型,具体类型与枚举org.springframework.orm.jpa.vendor.Database中的值对应,使用小写值即可
    spring.jpa.properties.hibernate.dialect选择数据库类型对应的dialect,在 org.hibernate.dialect 包下可以找到具体数据库对应的dialect
    spring.jpa.hibernate.ddl-auto设置hibernate初始化操作的类型,具体参见下表

    这里要特别注意 spring.jpa.hibernate.ddl-auto 参数。

    spring.jpa.hibernate.ddl-auto 参数包含以下几个值,具体含义见下表:

    属性说明
    create每次加载hibernate时都会删除上一次的生成的表,再重新根据model(与数据库表对应的实体)生成表,因此可能会导致数据丢失。
    create-drop每次加载hibernate时根据model类生成表,服务一关闭,表就自动删除。该设置适用于演示环境等特殊场景使用
    update最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构,再次使用时自动更新表结构,原有数据不会清空。
    validate每次加载hibernate时,会校验数据与数据库的字段类型是否相同,字段不同会报错。
    none不进行任何操作

    如果想要使用spring-boot-starter-data-jpa提供SQL自动初始化机制,那么还需要额外修改以下配置:

    通过以上配置参数的修改就可以进行数据库的切换,以及数据库表的创建.

    Spring Data JPA 初始化数据库

    Spring Data JPA 还提供的数据库SQL脚本的执行机制。将已生成好的数据库SQL脚本,放入到代码工程的resources目录下,按照指定格式命名,通过修改配置就可以实现SQL脚本的自动执行。

    具体SQL文件名的格式为:schema-${platform}.sqldata-${platform}.sqlplatform 是用来指定不同的数据库类型,以此来实现不同数据库脚本的切换。

    • schema-${platform}.sql:主要放置数据库定义语言(DDL)SQL脚本,例如:数据库表、视图、存储过程等。
    • data-${platform}.sql:主要放置数据操纵语言(DML)SQL脚本,例如:最经常用到的 SELECT、UPDATE、INSERT、DELETE。

    由此可见,schema-${platform}.sql 是先于 data-${platform}.sql 执行的。

    主要涉及需要修改的配置参数如下表所示:

    配置说明
    spring.sql.init.mode用于控制脚本执行状态。
    spring.sql.init.platform数据库类型,主要用于在data-locations 和 schema-locations 中定位不同数据库的脚本
    spring.sql.init.data-locationsDML SQL文件路径
    spring.sql.init.data-locationsDDL SQL文件路径

    这里要特别注意 spring.sql.init.mode 参数。

    spring.sql.init.mode 参数包含以下几个值,具体含义见下表:

    属性说明
    always总是执行,相当于开启
    never不执行,相当于关闭
    embedded仅初始化嵌入式数据库,特殊需求和设计会用到

    特别说明

    说明:

    Spring Data JPA 既可以通过 Hibernate 的机制进行数据库表的创建,也可以通过sql.init的方式进行数据库表以及数据初始化的创建。这两者是各自独立的、没有任何必然联系的。具体如何使用就要看设计者的考虑。

    两者的执行顺序不同,如果要两者同时使用一定要注意执行顺序,否则很容易导致运行出错。具体的顺序是:

    schema-${platform}.sql > data-${platform}.sql > hbm2ddl

    操作步骤

    Eurynome Cloud 数据库表创建和默认数据的初始化,就是使用 Spring Data JPA 自身的机制实现。

    Eurynome Cloud 数据库表创建和默认数据的初始化过程中, 主要会进行以下几项操作。

    • 创建核心业务表
    • 扫描已运行服务中所有的RestController接口,将接口数据转换为权限数据,并汇总至用户中心服务统一存储和管理。
    • 系统默认数据,如用户、角色等数据的初始化。

    注意

    具体开始之前,一定要确保所有前序工作已经完成。参阅:数据库初始化前序工作

    步骤一:创建数据表

    1. 进入Nacos管理界面。找到您所使用的对应 多环境 下的 eurynome-cloud-environment.yaml 配置文件。例如,您当前使用的是 development 环境,那么在Nacos后台管理中,找到 Groupdevelopmenteurynome-cloud-environment.yaml 配置。多环境配置,参阅:多环境配置

    2. 设置 eurynome-cloud-environment.yaml配置文件中属性 herodotus.switch.database.ddl-auto 的值为 createupdate

    说明

    • 如果是初次部署,或者想将已有表重新创建,那么将 herodotus.switch.database.ddl-auto 的值设置为 create
    • 如果是已经开始使用系统了,想保留已有的数据,只做更新,那么将 herodotus.switch.database.ddl-auto 的值设置为 update
    1. 点击发布按钮,发布配置,让配置生效。

    注意

    • 正式环境一定要提前做好数据备份

    • herodotus.switch.database.ddl-auto 的值设置为 update, 再次运行服务,由于 Hibernate 不同方言实现逻辑的不同,在有些数据库下运行,例如:PostgreSQL, 对于某些兼容性问题,只是输出告警;在某些数据库下运行,例如 MySQL,对于某些兼容性问题,会直接抛出Exception。所以出现这种情况,只要服务继续在运行就不是系统BUG;如果出错直接导致服务运行停止,那么请报 ISSUE。参阅:MySQL常见问题

    1. 运行 UpmsApplication 服务。

    UpmsApplication 服务第一次正常运行之后,所有核心业务表都已经创建,UpmsApplication 服务中所有接口都已经转换为权限数据存入sys_authority表中。

    如果看到有数据库表创建,同时sys_authority表中有数据,证明数据库表创建成功。

    步骤二:初始默认数据

    1. 停止UpmsApplication 服务

    2. 进入Nacos管理界面。找到您所使用的对应 多环境 下的 eurynome-cloud-environment.yaml 配置文件。

    3. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.ddl-auto 的值为 updatenone

    4. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.init-mode 的值为 always

    5. 点击发布按钮,发布配置,让配置生效。

    6. 再次运行 UpmsApplication 服务。

    UpmsApplication 服务再一次正常运行之后,如果sys_usersys_rolesys_role_authority等表中都都已经有数据了,证明数据初始化成功。

    步骤三:回置配置

    1. 停止UpmsApplication 服务

    2. 进入Nacos管理界面。找到您所使用的对应 多环境 下的 eurynome-cloud-environment.yaml 配置文件。

    3. 设置 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.init-mode 的值重置为 never

    4. 检查 eurynome-cloud-environment.yaml 配置文件中属性 herodotus.switch.database.ddl-auto 的值为 updatenone

    5. 点击发布按钮,发布配置,让配置生效。

    为什么回置并再次检查

    • 如果 herodotus.switch.database.ddl-auto 的值为 createcreate-drop,再次启动服务会重新建表,那么前面的工作就白做了。
    • 如果 herodotus.switch.database.init-mode 的值为 always,再次启动服务会再次执行SQL脚本,必定出现主键冲突问题导致失败。

    配置参数对应关系

    Eurynome Cloud 数据库操作设计配置参数与spring-boot-starter-data-jpa配置参数对应关系如下表:

    配置对应
    herodotus.database-information.driver-class-namespring.datasource.driver-class-name
    herodotus.database-information.urlspring.datasource.url
    herodotus.environment.database.usernamespring.datasource.username
    herodotus.environment.database.passwordspring.datasource.password
    herodotus.database-information.platformspring.jpa.database
    spring.sql.init.platform
    herodotus.environment.database.dialectspring.jpa.properties.hibernate.dialect
    herodotus.switch.database.ddl-autospring.jpa.hibernate.ddl-auto
    herodotus.switch.database.init-modespring.sql.init.mode
    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git "a/documents/guides/documents/\346\226\260\345\273\272\345\255\220\346\250\241\345\235\227.html" "b/documents/guides/documents/\346\226\260\345\273\272\345\255\220\346\250\241\345\235\227.html" index 0bd9ef26e..c3d5e2a82 100644 --- "a/documents/guides/documents/\346\226\260\345\273\272\345\255\220\346\250\241\345\235\227.html" +++ "b/documents/guides/documents/\346\226\260\345\273\272\345\255\220\346\250\241\345\235\227.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();新建子模块 | Eurynome Cloud - + -

    新建子模块

    提示

    以下内容是基于Maven多模块工程创建子模块的案例说明

    在现有工程内,新建常规模块

    手工新建子模块(非微服务模块)

    1. 在合适的位置,新建模块目录,例如:eurynome-test

    2. eurynome-test业务模块下,新建pom.xml文件、以及src\main\javasrc\main\resources目录

    3. 修改eurynome-test业务模块下的pom.xml文件,添加Maven 基础配置

    <?xml version="1.0" encoding="UTF-8"?>
    +    

    新建子模块

    提示

    以下内容是基于Maven多模块工程创建子模块的案例说明

    在现有工程内,新建常规模块

    手工新建子模块(非微服务模块)

    1. 在合适的位置,新建模块目录,例如:eurynome-test

    2. eurynome-test业务模块下,新建pom.xml文件、以及src\main\javasrc\main\resources目录

    3. 修改eurynome-test业务模块下的pom.xml文件,添加Maven 基础配置

    <?xml version="1.0" encoding="UTF-8"?>
     <project xmlns="http://maven.apache.org/POM/4.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    @@ -336,6 +336,6 @@
             port: 8719
             dashboard: @sentinel.server-addr@
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - + diff --git "a/documents/guides/documents/\346\233\264\346\215\242\346\225\260\346\215\256\345\272\223.html" "b/documents/guides/documents/\346\233\264\346\215\242\346\225\260\346\215\256\345\272\223.html" index 7dd1a3f88..6201a4e57 100644 --- "a/documents/guides/documents/\346\233\264\346\215\242\346\225\260\346\215\256\345\272\223.html" +++ "b/documents/guides/documents/\346\233\264\346\215\242\346\225\260\346\215\256\345\272\223.html" @@ -11,17 +11,17 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();更换数据库 | Eurynome Cloud - + -

    更换数据库

    为什么默认使用PostgreSQL数据库?

    PostgreSQL VS MySQL

    PostgreSQL VS MySQL

    MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。这样的两种背景直接导致了各自固有的优点和缺点。

    MySQL

    MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,由于MySQL被控制在Oracle,社区担心会对MySQL的开源会有影响,所以开发了一些分支,比如: MariaDB和Percona。

    PostgreSQL

    PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

    PostgreSQL相对于MySQL的优势

    1. 不仅仅是关系型数据库

    除了存储正常的数据类型外,还支持存储:

    • array,不管是一位数组还是多为数组均支持
    • json(hStore)和jsonb,相比使用text存储接送要高效很多
    • json和jsonb之间的区别

    jsonb和json在更高的层面上看起来几乎是一样的,但在存储实现上是不同的。

    • json存储完的文本,json列会每次都解析存储的值,它不支持索引,但你可以为查询创建表达式索引。
    • jsonb存储的二进制格式,避免了重新解析数据结构。它支持索引,这意味着你可以不使用指定的索引就能查询任何路径。

    当我们比较写入数据速度时,由于数据存储的方式的原因,jsonb会比json稍微的慢一点。json列会每次都解析存储的值,这意味着键的顺序要和输入的时候一样。但jsonb不同,以二进制格式存储且不保证键的顺序。因此,如果你有软件需要依赖键的顺序,jsonb可能不是你的应用的最佳选择。使用jsonb的优势还在于你可以轻易的整合关系型数据和非关系型数据, PostgreSQL对于mongodb这类的基于文档的数据库是个不小的威胁,毕竟如果一个表中只有一列数据的类型是半结构化的,没有必要为了迁就它而整个表的设计采用schemaless的结构。

    1. 支持地理信息处理扩展

    PostGIS 为PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测量与几何拓扑分析。在功能上,和MYSQL对比,PostGIS具有下列优势:

    O2O业务场景中的LBS业务使用PostgreSQL + PostGIS有无法比拟的优势。

    1. 可以快速构建REST API

    PostgREST 可以方便的为任何 PostgreSQL 数据库提供完全的 RESTful API 服务。

    1. 支持树状结构

    支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。MySQL 处理树状的设计会很复杂, 而且需要写很多代码, 而 PostgreSQL 可以高效处理树结构。

    1. 有极其强悍的 SQL 编程能力

    支持递归,有非常丰富的统计函数和统计语法支持。

    MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 PostgreSQL:没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。

    1. 外部数据源支持

    可以把 70 种外部数据源 (包括 Mysql, Oracle, CSV, hadoop …) 当成自己数据库中的表来查询。Postgres有一个针对这一难题的解决方案:一个名为“外部数据封装器(Foreign Data Wrapper,FDW)”的特性。该特性最初由PostgreSQL社区领袖Dave Page四年前根据SQL标准SQL/MED(SQL Management of External Data)开发。FDW提供了一个SQL接口,用于访问远程数据存储中的远程大数据对象,使DBA可以整合来自不相关数据源的数据,将它们存入Postgres数据库中的一个公共模型。这样,DBA就可以访问和操作其它系统管理的数据,就像在本地Postgres表中一样。例如,使用FDW for MongoDB,数据库管理员可以查询来自文档数据库的数据,并使用SQL将它与来自本地Postgres表的数据相关联。借助这种方法,用户可以将数据作为行、列或JSON文档进行查看、排序和分组。他们甚至可以直接从Postgres向源文档数据库写入(插入、更细或删除)数据,就像一个一体的无缝部署。也可以对Hadoop集群或MySQL部署做同样的事。FDW使Postgres可以充当企业的中央联合数据库或“Hub”。

    1. 没有字符串长度限制

    一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而PostgreSQL的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。MySQL 的各种text字段有不同的限制,要手动区分 small text, middle text, large text… PostgreSQL 没有这个限制,text 能支持各种大小。

    1. 支持图结构数据存储

    没有具体使用过,具体可以自己搜索下。参考链接open in new window

    1. 支持窗口函数

    窗口函数提供跨行相关的当前查询行集执行计算的能力。仅当调用跟着OVER子句的聚集函数,作为窗口函数;否则它们作为常规的聚合函数。窗口也是一种分组,但和 group by 的分组不同。窗口,可以提供分组之外,还可以执行对每个窗口进行计算。可以想象成是group by 后,然后对每个分组进行计算,而不像Group by ,只是单纯地分组。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能简单的解决 “每组取 top 5” 的这类问题。MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。

    1. 对索引的支持更强

    PostgreSQL 的可以使用函数和条件索引,这使得PostgreSQL数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。对于索引类型:

    MySQL:取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 PostgreSQL:支持 B-树、哈希、R-树和 Gist 索引。 InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。PostgreSQL不存在这个问题。

    索引类型方面,MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:B+TREE。PostgreSQL支持 B-树、哈希、R-树和 Gist 索引。

    1. 集群支持更好

    Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。复制(Replication)功能是异步的并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。

    PostgreSQL有丰富的开源cluster软件支持。plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。

    另外,PostgreSQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。

    1. 事务隔离做的更好

    MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 PostgreSQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能。

    1. 对于字符支持更好一些

    MySQL 里需要 utf8mb4 才能显示 emoji 的坑, PostgreSQL 没这个坑。

    1. 对表连接支持较完整

    对表连接支持较完整,MySQL只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。PostgreSQL都支持。

    1. 存储方式支持更大的数据量

    PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

    1. 时间精度更高

    MySQL对于时间、日期、间隔等时间类型没有秒以下级别的存储类型,而PostgreSQL可以精确到秒以下。

    1. 优化器的功能较完整

    MySQL对复杂查询的处理较弱,查询优化器不够成熟,explain看执行计划的结果简单。性能优化工具与度量信息不足。

    PostgreSQL很强大的查询优化器,支持很复杂的查询处理。explain返回丰富的信息。提供了一些性能视图,可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息,也可以看到cache命中率。网上有一个开源的pgstatspack工具。

    1. 序列支持更好

    MySQL 不支持多个表从同一个序列中取 id, 而 PostgreSQL 可以。

    1. 对子查询支持更好

    对子查询的支持。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询,但是子查询的存在在很多时候仍然不可避免。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性。几乎任何数据库的子查询 (subquery) 性能都比 MySQL 好。

    1. 增加列更加简单

    MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表.

    MySQL相对于PostgreSQL的优势

    1. MySQL比PostgreSQL更流行

    流行对于一个商业软件来说,也是一个很重要的指标,流行意味着更多的用户,意味着经受了更多的考验,意味着更好的商业支持、意味着更多、更完善的文档资料。易用,很容易安装。第三方工具,包括可视化工具,让用户能够很容易入门。

    1. 回滚实现更优

    innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。

    1. 在Windows上运行更可靠

    与PostgreSQL相比,MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在 NT/Win2000/WinXP下,是一个服务),而PostgreSQL是运行在Cygwin模拟环境下。PostgreSQL在Windows下运行没有MySQL稳定,应该是可以想象的。

    1. 线程模式相比进程模式的优势

    MySQL使用了线程,而PostgreSQL使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。

    进程模式对多CPU利用率比较高。进程模式共享数据需要用到共享内存,而线程模式数据本身就是在进程空间内都是共享的,不同线程访问只需要控制好线程之间的同步。 线程模式对资源消耗比较少。所以MySQL能支持远比PostgreSQL多的更多的连接。但PostgreSQL中有优秀的连接池软件软件,如pgbouncer和pgpool,所以通过连接池也可以支持很多的连接。

    1. 权限设置上更加完善

    MySQL在权限系统上比PostgreSQL某些方面更为完善。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限。对于列级的权限, PostgreSQL可以通过建立视图,并确定视图的权限来弥补。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的,但是在很多时候,这是有用的。

    1. 存储引擎插件化机制

    MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

    1. 适应24/7运行

    MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序。PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。

    1. 更加试用于简单的场景

    PostgreSQL只支持堆表,不支持索引组织表,Innodb只支持索引组织表。

    • 索引组织表的优势:表内的数据就是按索引的方式组织,数据是有序的,如果数据都是按主键来访问,那么访问数据比较快。而堆表,按主键访问数据时,是需要先按主键索引找到数据的物理位置。
    • 索引组织表的劣势:索引组织表中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织表来说,主键的值不能太大,否则占用的空间比较大。

    对于索引组织表来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入的性能。所以对于使用innodb来说,我们一般最好让主键是一个无意义的序列,这样插入每次都发生在最后,以避免这个问题。 由于索引组织表是按一个索引树,一般它访问数据块必须按数据块之间的关系进行访问,而不是按物理块的访问数据的,所以当做全表扫描时要比堆表慢很多,这可能在OLTP中不明显,但在数据仓库的应用中可能是一个问题。

    总结

    MySQL从一开始就没有打算做所有事情,因而它在功能方面有一定的局限性,并不能满足一些先进应用程序的要求。MySQL对某些功能(例如引用、事务、审计等)的实现方式使得它与其他的关系型数据库相比缺少了一些可靠性。对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。除非你需要绝对的数据完整性,ACID遵从性或者设计复杂,否则PostgreSQL对于简单的场景而言有点多余。

    如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的:

    • 如果你的操作系统是Windows,你应该使用MySQL。
    • 当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。
    • 如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。
    • 你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
    • 如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。

    Spring Boot Starter Data JPA 更换数据库方式

    由于基础核心数据访问层使用spring-boot-starter-data-jpa组件,JPA是标准,Spring Data JPA默认使用Hibernate作为JPA实现,因此天然支持不同类型的数据库。

    既然Spring Data JPA天然支持不同类型数据库,那么通过修改spring-boot-starter-data-jpa对应的配置参数就可以更换数据库。

    假设只是单纯的使用spring-boot-starter-data-jpa,那么更换数据库就仅需要修改以下配置。

    配置说明
    spring.datasource.driver-class-name数据库Driver Class,不同的数据库驱动不同
    spring.datasource.url数据库访问连接,不同数据连接格式也不同
    spring.datasource.username数据库访问用户名,如果相同可以不用修改
    spring.datasource.password数据库访问密码,如果相同可以不用修改
    spring.jpa.database选择数据库类型,具体类型与枚举org.springframework.orm.jpa.vendor.Database中的值对应,使用小写值即可
    spring.jpa.properties.hibernate.dialect选择数据库类型对应的dialect,在 org.hibernate.dialect 包下可以找到具体数据库对应的dialect
    spring.jpa.hibernate.ddl-auto设置hibernate初始化操作的类型,具体参见下表

    spring.jpa.hibernate.ddl-auto 属性和含义见下表:

    属性说明
    create每次加载hibernate时都会删除上一次的生成的表,再重新根据model生成表,因此可能会导致数据丢失。
    create-drop每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
    update最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,原有数据不会清空,只会更新。
    validate每次加载hibernate时,会校验数据与数据库的字段类型是否相同,字段不同会报错。
    none不进行任何操作

    如果想要使用spring-boot-starter-data-jpa提供SQL自动初始化机制,那么还需要额外修改以下配置:

    配置说明
    spring.sql.init.platform数据库类型,主要用于在data-locations 和 schema-locations 中定位不同数据库的脚本, schema-${platform}.sql and data-${platform}.sql。具体值标准情况与spring.jpa.database值相同,当然也可以自定义,注意该值与具体*.sql文件名的对应。
    spring.sql.init.data-locationsDML SQL文件路径
    spring.sql.init.data-locationsDDL SQL文件路径

    Eurynome Cloud 更换数据库方式

    Eurynome Cloud 更换数据库需要修改的参数与spring-boot-starter-data-jpa 更换数据库需要修改的参数完全一致。

    Eurynome Cloud 配置参数与spring-boot-starter-data-jpa配置参数对应关系如下表:

    配置对应
    herodotus.database-information.driver-class-namespring.datasource.driver-class-name
    herodotus.database-information.urlspring.datasource.url
    herodotus.environment.database.usernamespring.datasource.username
    herodotus.environment.database.passwordspring.datasource.password
    herodotus.database-information.platformspring.jpa.database
    herodotus.environment.database.dialectspring.jpa.properties.hibernate.dialect
    herodotus.switch.database.ddl-autospring.jpa.hibernate.ddl-auto

    步骤一:判断是否需要添加数据库方言配置

    Eurynome Cloud 使用数据库"方言"配置模式,以达到规范化数据库配置、减少参数修改、快速更换数据库的目的。

    目前,Eurynome Cloud 默认提供postgresqlmysql8mysql57三种方言配置。在Nacos的配置中可以找到eurynome-cloud-database-postgresql.yamleurynome-cloud-database-mysql8.yamleurynome-cloud-database-mysql57.yaml与之对应。具体配置格式如下:

    如果你所使用的数据库,postgresqlmysql8mysql57三种方言配置并不能满足,那么请按照下面几步操作;如果能满足请跳过。

    • 在Nacos中新建一个按照格式eurynome-cloud-database-<database.type>.yaml命名的配置。
    • 复制下面的配置内容到该配置中,注意不要改变格式以及具体配置名。
    herodotus:
    +    

    更换数据库

    步骤一:判断是否需要添加数据库方言配置

    Eurynome Cloud 使用数据库"方言"配置模式,以达到规范化数据库配置、减少参数修改、快速更换数据库的目的。

    目前,Eurynome Cloud 默认提供postgresqlmysql8mysql57三种方言配置。在Nacos的配置中可以找到eurynome-cloud-database-postgresql.yamleurynome-cloud-database-mysql8.yamleurynome-cloud-database-mysql57.yaml与之对应。

    如果你所使用的数据库,postgresqlmysql8mysql57三种方言配置并不能满足,那么请按照下面几步操作;如果能满足请跳过。

    1. 在Nacos中新建一个按照格式 eurynome-cloud-database-<database.type>.yaml 命名的配置。

    2.复制下面的配置内容到该配置中,注意不要改变格式以及具体配置名。

    herodotus:
       database-information:
         platform: postgresql
         driver-class-name: org.postgresql.Driver
         dialect: org.hibernate.dialect.PostgreSQL10Dialect
         url: jdbc:postgresql://${herodotus.environment.database.host}:${herodotus.environment.database.port}/${herodotus.environment.database.name}
    -
    1
    2
    3
    4
    5
    6
    • 根据自己使用的数据库,修改配置中对应的的信息。

    说明

    eurynome-cloud-database-<database.type>.yaml中,主要包含针对不同类型数据库,所使用的JDBC Driver等相关配置信息。

    • platform:指定数据库类型。

    注意:platform具体值来源于枚举类org.springframework.orm.jpa.vendor.Database,请使用全部小写字母值进行配置。这个值不分版本,所以mysql5数据库和mysql8数据库均是使用mysql,目前支持的值如下: db2derbyh2hanahsqlinformixmysqloraclepostgresqlsql_serversybase

    • driver-class-name:数据库驱动类名。
    • dialect: 指定Hibernate针对不同的数据库的Dialect,org.hibernate.dialect 包下可以找到具体数据库对应的dialect。
    • url:数据库连接URL。

    注意:这里的的URL是通过配置eurynome-cloud-environment.yaml,中的herodotus.environment.database.host、port、name等三个值组装而成。如果新增方言配置,不管具体数据库URL内容是什么,一定确保数据库地址、端口、数据库名使用${herodotus.environment.database.host}、${herodotus.environment.database.port}、${herodotus.environment.database.name}三个站位符替换,否则*-environment.yaml中配置的值将不再生效。

    步骤二:修改环境参数

    在根据你所使用的Maven多环境,找到Nacos对应Group下的eurynome-cloud-environment.yaml配置,修改数据库相关的host、port、name、username、password等几个参数的值。

    herodotus:
    +
    1
    2
    3
    4
    5
    6
    1. 根据自己使用的数据库,修改配置中对应的的信息。

    说明

    eurynome-cloud-database-<database.type>.yaml中,主要包含针对不同类型数据库,所使用的JDBC Driver等相关配置信息。

    • platform:指定数据库类型。

    注意:platform具体值来源于枚举类org.springframework.orm.jpa.vendor.Database,请使用全部小写字母值进行配置。这个值不分版本,所以mysql5数据库和mysql8数据库均是使用mysql,目前支持的值如下: db2derbyh2hanahsqlinformixmysqloraclepostgresqlsql_serversybase

    • driver-class-name:数据库驱动类名。
    • dialect: 指定Hibernate针对不同的数据库的Dialect,org.hibernate.dialect 包下可以找到具体数据库对应的dialect。
    • url:数据库连接URL。

    注意:这里的的URL是通过配置eurynome-cloud-environment.yaml,中的herodotus.environment.database.host、port、name等三个值组装而成。如果新增方言配置,不管具体数据库URL内容是什么,一定确保数据库地址、端口、数据库名使用${herodotus.environment.database.host}、${herodotus.environment.database.port}、${herodotus.environment.database.name}三个站位符替换,否则*-environment.yaml中配置的值将不再生效。

    步骤二:修改环境参数

    在根据你所使用的Maven多环境,找到 Nacos 对应 Group 下的eurynome-cloud-environment.yaml配置,修改数据库相关的hostportnameusernamepassword等几个参数的值。

    herodotus:
       environment:
         logstash-server-addr: 127.0.0.1:5044
         gateway-server-addr: http://localhost:8847
    @@ -31,10 +31,10 @@
           name: herodotus
           username: XXXXX
           password: XXXXX
    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    步骤三:修改pom.xml

    找到工程根目录下的pom.xml, 根据你所使用的Maven多环境找到对应的<profiles>, 修改<database.type>属性值。

    <database.type>postgresql</database.type>
    -
    1

    注意

    在Maven编译的过程中,<database.type>的值会作为参数传递到各个服务的boostrap.yml配置中,与boostrap.yml中已有的信息拼装成Nacos中对应的配置名。通过这种方式实现Maven多环境、Nacos配置、不同数据库配置的联动

    - data-id: eurynome-cloud-database-@database.type@.yaml
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    步骤三:修改pom.xml

    找到工程根目录下的pom.xml, 根据你所使用的Maven多环境找到对应的<profiles>, 修改<database.type>属性值。

    <database.type>postgresql</database.type>
    +
    1

    注意

    该值与步骤一中,eurynome-cloud-database-<database.type>.yaml的值对应。

    在Maven编译的过程中,<database.type>的值会作为参数传递到各个服务的boostrap.yml配置中,与boostrap.yml中已有的信息拼装成Nacos中对应的配置名。通过这种方式实现Maven多环境、Nacos配置、不同数据库配置的联动

    - data-id: eurynome-cloud-database-@database.type@.yaml
       group: common
    -
    1
    2

    步骤四:添加数据库JDBC Driver

    目前,系统代码已经包含PostgreSQLMySQL8H2三种数据库的JDBC Driver, 如果你使用数据库不在此范围内,那么就需要在代码包eurynome-cloud-datapom.xml中添加对应数据库的JDBC Driver

    步骤五:编译工程代码

    以上步骤完成之后,使用mvn packagemvn install命令,重新编译工程。

    注意

    这一步非常重要,因为Maven无法真正做到与yml配置文件的传参,只有通过编译,在编译过程中用pom.xml<database.type>的值,替换yml配置文件中的@database.type@模拟一种参数传递。

    修改配置之后,参考数据初始化章节进行数据库初始化工作。

    提示

    目前仅提供PostgreSQLMySQL两种数据库对应的数据初始化脚本,其它数据库需要自己额外处理。如需要使用Spring Data JPA初始化机制,需要手动修改spring.sql.init.*相关参数。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +
    1
    2

    步骤四:添加数据库JDBC Driver

    目前,系统代码已经包含 PostgreSQLMySQL (支持 MySQL5MySQL8 )和 H2 三种数据库的JDBC Driver, 如果你使用数据库不在此范围内,那么就需要在代码包eurynome-cloud-datapom.xml中添加对应数据库的JDBC Driver

    步骤五:编译工程代码

    以上步骤完成之后,使用mvn packagemvn install命令,重新编译工程。

    注意

    这一步非常重要,因为Maven无法真正做到与yml配置文件的传参,只有通过编译,在编译过程中用pom.xml<database.type>的值,替换yml配置文件中的@database.type@模拟一种参数传递。

    修改配置之后,参考数据初始化章节进行数据库初始化工作。

    提示

    目前仅提供 PostgreSQLMySQL 两种数据库对应的数据初始化脚本,其它数据库需要自己额外处理。如需要使用Spring Data JPA初始化机制,需要手动修改spring.sql.init.*相关参数。

    步骤六:修改工作流服务数据库类型

    eurynome-cloud-bpmn-ability 模块中,找到bootstrap.yml。根据你所使用的数据库,修改配置camunda.bpm.database.type的值。

    说明

    camunda.bpm.database.type支持的值有: h2, mysql, mariadb, oracle, postgres, mssql, db2.

    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git "a/documents/guides/documents/\347\216\257\345\242\203\351\203\250\347\275\262.html" "b/documents/guides/documents/\347\216\257\345\242\203\351\203\250\347\275\262.html" index 04641ff9c..fd420acf0 100644 --- "a/documents/guides/documents/\347\216\257\345\242\203\351\203\250\347\275\262.html" +++ "b/documents/guides/documents/\347\216\257\345\242\203\351\203\250\347\275\262.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();环境部署 | Eurynome Cloud - + -

    环境部署

    准备工作

    后端运行所需的基础设施

    设施当前版本说明
    Nacos2.0.3分布式版本使用的Nacos作为配置中心和服务发现中心,所以需要安装Nacos。不管本地运行还是Docker、K8S环境都需要。
    Redis3.2.100+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要
    Kafka2.6.0+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要。(虽然本系统使用的是spring cloud bus同时兼容RabbitMQ和Kafka,由于使用Debezium来支持工作流、ElasticSearch数据同步,所以如果没有特殊的使用需求还是建议使用Kafka)
    PostgreSQL 数据库建议使用最新版,其它版本也可以运行个人多年项目经验,感觉PostgreSQL更好用和顺手,所以默认数据为PostgreSQL。基础代码都是使用spring data jpa(Mybatis Plus也支持),所以其它数据库也支持,修改一下配置就行
    MySQL 数据库5.6.5+Nacos 运行需要依赖数据库,长久运行需要依赖于MySQL(目前Nacos不支持其它数据库,虽说Nacos RoadMap有多数据库支持,不知道什么时候开发完成)。本地运行为了省事,也可以用Nacos的内置数据库,这样减少本地运行资源占用
    Sentinel Dashboard1.8.0本地调试运行可以不需要
    Skywalking8.7.0本地运行可以不需要
    ELK7.0.0 +日志中心中心所需基础环境,本地运行可以不需要,需要在配置关闭日志收集
    • (1) 后端本地运行所需标准最小环境
    Nacos >= 1.1.0 (推荐使用最新版Nacos)
    +    

    环境部署

    准备工作

    后端运行所需的基础设施

    设施当前版本说明
    Nacos2.0.3分布式版本使用的Nacos作为配置中心和服务发现中心,所以需要安装Nacos。不管本地运行还是Docker、K8S环境都需要。
    Redis3.2.100+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要
    Kafka2.6.0+运行的必须组件,分布式版本、单体版本;本地运行还是还是Docker、K8S环境都需要。(虽然本系统使用的是spring cloud bus同时兼容RabbitMQ和Kafka,由于使用Debezium来支持工作流、ElasticSearch数据同步,所以如果没有特殊的使用需求还是建议使用Kafka)
    PostgreSQL 数据库建议使用最新版,其它版本也可以运行个人多年项目经验,感觉PostgreSQL更好用和顺手,所以默认数据为PostgreSQL。基础代码都是使用spring data jpa(Mybatis Plus也支持),所以其它数据库也支持,修改一下配置就行
    MySQL 数据库5.6.5+Nacos 运行需要依赖数据库,长久运行需要依赖于MySQL(目前Nacos不支持其它数据库,虽说Nacos RoadMap有多数据库支持,不知道什么时候开发完成)。本地运行为了省事,也可以用Nacos的内置数据库,这样减少本地运行资源占用
    Sentinel Dashboard1.8.0本地调试运行可以不需要
    Skywalking8.7.0本地运行可以不需要
    ELK7.0.0 +日志中心中心所需基础环境,本地运行可以不需要,需要在配置关闭日志收集
    • (1) 后端本地运行所需标准最小环境
    Nacos >= 1.1.0 (推荐使用最新版Nacos)
     Redis >= 3.0.0
     Kafka >= 2.6.0 (目前Kafka运行还需要依赖Zookeeper)
     PostgreSQL >= 10
    @@ -26,55 +26,44 @@
     
    1
    2
    3
    4

    前端运行所需的基础设施

    设施当前版本说明
    Nodejs14.17.0 +运行前端Vue工程必须依赖,如果不需要运行前端可以忽略
    Yarn1.22.10前端包管理工具,如果习惯使用Yarn,用Npm或其它工具也都可以
    • (1) 前端端本地运行所需标准最小环境
    Nodejs>= 10
     Yarn>= 1.22.10 (Yarn2 目前会有很多问题,劣势太多不建议使用)
     
    1
    2
    • (2) 开发环境
    Visual Studio Code (Vscode)或其它 (推荐Vscode)
    -
    1
    • (3) 环境配置

    参见个人博客open in new window

    运行系统

    后端运行

    [1]、创建工程

    方式一:

    • 前往Gitee下载页面open in new window下载解压到工作目录

    • 打开IDE导入工程

    • Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。

    • IDEA,菜单 File -> Open,然后选择已解压工程所在的目录,点击 OK 即可。

    IDE会自动加载相关的依赖包,具体要依据网络以及个人本地Maven缓存情况而定。

    方式二:

    IDEA 菜单 File -> New -> Project From Version Control..., 在弹出框中输入本工程Git地址:https://gitee.com/herodotus/eurynome-cloud.gitopen in new window,然后设置放置目录,点击 OK 即可

    [2]、修改配置

    • (1)需导入Nacos配置信息修改

    在工程 ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,存放着所有需要导入 Nacos 的所有配置文件。

    提示

    本项目所有Nacos配置,均是采用yaml格式。如需使用其它格式请自行修改

    请根据自身环境的信息,进行对应的修改。为了方便使用,所有的所有的配置采用**“共享式、统一化多环境配置模式”**,所以大多数配置在对应 多环境eurynome-cloud-environment.yaml 配置中就可以完成修改。

    注意

    第一次使用系统,eurynome-cloud-environment.yamlherodotus.switch.database.ddl-auto 配置,要设置成 updatecreate。推荐设置成 update,这样在开发过程中,会自动更新数据库结构。生产环境中,也可以设置成 update,当然最好设置成 none

    • (2)导入Nacos配置

    配置修改完成之后,需要将${project_home}/platform/eurynome-cloud-management/resources/configs 目录下导入到 Nacos 中。

    注意

    ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,还有一级目录。这级目录的名称,是对应 Nacos 中的 Group。所以在向 Nacos 导入配置时,一定要注意 Group 的创建和匹配。切勿全部导入到 DEFAULT 组下,这样会导致无法正常运行。

    提示

    Eurynome Cloud 是开源版本,未提供Nacos配置的自动导入功能。

    为了方便使用,最新的版本中,在${project_home}/platform/eurynome-cloud-management/resources/imports 目录下提供可以直接导入的配置包。可以方便的完成导入配置、创建Group等操作。

    • (3)修改pom配置

    找到工程根目录下的 pom.xml, 由于支持多环境,所以在该文件中,找到你对应环境的配置,修改该环境下的对应的配置信息。

    <!-- 开发 -->
    +
    1
    • (3) 环境配置

    参见个人博客open in new window

    后端运行

    说明

    开展以下各项工作以前,请确保数据库应用、Redis、Nacos、ELK 套件已经正确安装和运行。

    [1]、检出代码创建工程

    方式一

    • 前往Gitee下载页面open in new window下载解压到工作目录

    • 打开IDE导入工程

    • Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入。

    • IDEA,菜单 File -> Open,然后选择已解压工程所在的目录,点击 OK 即可。

    IDE会自动加载相关的依赖包,具体要依据网络以及个人本地Maven缓存情况而定。

    方式二

    IDEA 菜单 File -> New -> Project From Version Control..., 在弹出框中输入本工程Git地址:https://gitee.com/herodotus/eurynome-cloud.gitopen in new window,然后设置放置目录,点击 OK 即可

    [2]、创建引用数据数据库

    进入PostgreSQLSQL Shell(psql) (在Windows的菜单中可以找到),使用超级管理员账号和密码登录进入数据库,执行以下脚本:

    CREATE USER herodotus WITH PASSWORD 'herodotus';
    +CREATE DATABASE herodotus OWNER herodotus;
    +GRANT ALL PRIVILEGES ON DATABASE herodotus TO herodotus;
    +
    1
    2
    3

    注意

    要分步、一条一条地执行,不要全部复制,一把全部执行。一定要注意每个语句结尾要以“;”结束。

    说明

    • 这里不管是用户名、用户密码还是数据库名均使用herodotus是为了方便,请根据自己实际情况修改。
    • 这里没有进行分库(即:所有的服务使用同一个数据库),如不满足需求,请在整体部署完成可以正常运行后,再结合自己的实际情况修改。
    • 以上是均是以 PostgreSQL 作为默认数据库进行说明,如果要使用其它数据库,具体安装和建库步骤请自行探索。

    提示

    系统默认使用 PostgreSQL 数据库,如果想要使用其它数据库,建议详细全面阅读本章节,对整体部署过程有了详细了解之后,再来了解如何切换数据库。参阅:更换数据库

    提示

    Linux 环境下在命令行中,以管理员账号登录 PostgreSQL数据库

    [3]、创建或导入Nacos配置

    说明

    再进行以下操作之前,请确保对Nacos中 Namespace、Group等基础概念和具体操作有所了解。【官方文档】open in new window

    方式一:手动创建Nacos配置信息

    工程的 ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,放置着所有需要导入到 Nacos 中的默认配置。开始其它工作之前,需要先在Nacos中创建所有配置

    1. 访问 Nacos 后台管理,默认本机地址open in new window, 使用默认账号nacos/nacos登录。

    2. Nacos 后台中,在 配置管理 --> 配置列表 功能中,点击添加按钮,手动添加所有配置文件,操作如下图所示:

    创建Nacos配置

    注意

    • 创建配置之前,请提前规划配置放置的命名空间(Namespace)。默认是放到 Nacos public命名空间中,如果不符合您的需求,可以在新建命名空间之后,再进行配置的创建。
    • ${project_home}/platform/eurynome-cloud-management/resources/configs 目录下,还有一级目录。这级目录的名称,是配置文件对应 Nacos 中的 Group 名称。所以在 Nacos 中新建配置时,一定要注意 Group 的创建和匹配。切勿全部新建到 DEFAULT 组下,这样会导致无法正常运行。

    提示

    本项目所有Nacos配置,均是采用yaml格式。如需使用其它格式请自行修改

    方式二:批量导入Nacos配置

    手动方式创建Nacos配置,比较繁琐和容易出错。为了使用提升使用的便捷性,在工程 ${project_home}/platform/eurynome-cloud-management/resources/imports 目录下提供可以直接导入的配置包。可以方便的完成导入配置、创建Group等操作。

    1. 访问 Nacos 后台管理,默认本机地址open in new window, 使用默认账号nacos/nacos登录。

    2. Nacos 后台中,在 配置管理 --> 配置列表 功能中,点击导入配置按钮,选择配置导入包即可,完成配置文件导入和Group的创建,操作如下图所示:

    导入Nacos配置

    注意

    • 创建配置之前,请提前规划配置放置的命名空间(Namespace)。默认是放到 Nacos public命名空间中,如果不符合您的需求,可以在新建命名空间之后,再进行配置的创建。

    [4]、修改Nacos配置

    上一步所导入的配置信息均是使用默认的、本地化的配置,需要根据自己搭建的基础设施环境,对相关的配置进行修改。

    1. 访问 Nacos 后台管理,默认本机地址open in new window, 使用默认账号nacos/nacos登录。

    2. 找到对应的配置文件进行修改。常用的设置在 eurynome-cloud-environment.yaml 中即可修改完成,如果不满足您实际需求,可再到其它的配置文件中详细修改。

    说明

    为了方便使用,Eurynome Cloud 所有的配置采用**“共享式、统一化多环境配置模式”**设计,大多数配置在对应 多环境eurynome-cloud-environment.yaml 配置中就可以完成修改。例如,您当前使用的是 development 环境,那么在Nacos后台管理中,找到 Group 是 developmenteurynome-cloud-environment.yaml 配置修改。

    Eurynome Cloud 多环境配置设计及使用,参阅:多环境配置

    [5]、修改pom.xml配置

    在工程根目录下,找到 pom.xml, 修改对应 profile 中参数。由于使用的多环境,所以在该文件中,需要找到应环境的配置,修改该环境下的对应的配置信息。主要结构如下所示:

    <!-- 开发 -->
     <profile>
         <id>development</id>
         <activation>
    -        <!--默认激活配置-->
             <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
    -        <!--当前环境-->
             <profile.name>development</profile.name>
             <database.type>postgresql</database.type>
    -        <!--代码构建控制-->
    -        <!--跳过构建源代码包-->
             <skip.build.source.package>false</skip.build.source.package>
    -        <!--不copy代码包到docker构建目录-->
             <skip.copy.docker.resource>false</skip.copy.docker.resource>
    -        <!--不执行git commit 构建-->
             <skip.build.git.commit.info>false</skip.build.git.commit.info>
    -        <!--Nacos配置中心地址-->
             <config.server-addr>127.0.0.1:8848</config.server-addr>
    -        <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
             <config.namespace></config.namespace>
    -        <!--Nacos服务发现地址-->
             <discovery.server-addr>127.0.0.1:8848</discovery.server-addr>
             <sentinel.server-addr>127.0.0.1:8858</sentinel.server-addr>
         </properties>
     </profile>
    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    • (4)多环境配置

    参考多环境配置说明

    [3]、编译代码

    方式一:

    在IDE工程中,利用IDE提供的界面操作进行编译。以IDEA为例,在右侧Maven Panel中,选择eurynome-cloud(root)节点,点击Lifecycle节点下的install 或者 package 进行编译。参考下图:

    输入图片说明

    方式二:

    用命令行进入到工程代码所在目录,通过执行下面命令进行编译

    mvn install
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    必须要修改的参数涉及以下几项:

    • config.server-addr:配置中心地址,即Nacos服务端地址
    • config.namespace:Nacos 命名空间ID。如果要使用的是默认的命名空间,该参数不设置任何值。
    • discovery.server-addr:服务发现地址,即Nacos服务端地址
    • sentinel.server-addr:Sentinel Dashborad 地址

    详细参数说明,参阅:多环境配置

    [6]、编译代码

    编译方式一

    用命令行进入到工程代码所在根据目录,通过执行下面命令进行编译

    mvn install
     
     或 
     
     mvn package
    -
    1
    2
    3
    4
    5

    提示

    推荐使用install命令,进行编译。使用该命令编译完成之后,会在Maven本地缓存中,生成响应的包,这样eurynome-cloud-athena功能就可以直接使用。

    提示

    在第一次编译的时候,因为在本地缓存缺少相关的包,所以在执行 mvn clean 操作时会提示错误。因此,在第一次编译时只使用 mvn packagemvn install。第一次编译完成之后,就可以使用 mvn clean packagemvn clean install 命令进行编译。IDE界面操作也是同理。

    [4]、创建数据库

    进入PostgreSQLSQL Shell(psql) (在Windows的菜单中可以找到),使用超级管理员账号和密码登录进入数据库,执行以下脚本:

    提示

    Linux 环境下在命令行中登录 PostgreSQL

    CREATE USER herodotus WITH PASSWORD 'herodotus';
    -CREATE DATABASE herodotus OWNER herodotus;
    -GRANT ALL PRIVILEGES ON DATABASE herodotus TO herodotus;
    -
    1
    2
    3

    说明(1)

    这里不管是用户名、用户密码还是数据库名均使用herodotus是为了方便,请根据自己实际情况修改。

    说明(2)

    这里没有进行分库(即:所有的服务使用同一个数据库),请根据自己的实际情况修改。

    说明(3)

    以上是以 PostgreSQL 作为默认数据库,如果要使用其它数据请自行探索。

    注意

    要分步、一条一条地执行,不要全部复制,一把全部执行。一定要注意每个语句结尾要以“;”结束。

    [5]、导入数据库脚本

    (1)运行服务

    为了减少数据库脚本,与实际应用不匹配的问题,系统大部分数据库表以及初始默认数据,使用自动创建方式导入,只有 OAuth2 额外需要的表,才需要手动创建。

    所以在进行脚本的导入之前,请先运行${project_home}/services/eurynome-cloud-upms-ability 服务。该服务正常运行之后,会将大部分基础表创建好,同时会扫描该服务中的Rest API,转换为权限存储至sys_authority表中。

    再运行${project_home}/platform/eurynome-cloud-uaa服务,该服务正常运行之后,会扫描该服务中的Rest API,转换为权限存储至sys_authority表中。

    (2)导入数据库脚本

    1. 在工程${project_home}/configurations/scripts 目录下,找到 OAuth2 Schema脚本(oauth2-schema-postgresql.sql)导入到系统中。

    2. 在工程${project_home}/services/eurynome-cloud-upms-ability/resources/sqls目录下, 找到系统默认数据脚本(upms-data-postgresql.sql)导入到系统中。

    数据库创建和脚本导入示例

    示例

    [6]、打开运行基础模块

    说明

    各个服务的启动顺序并没有严格的要求,启动的先后顺序并不影响实际的使用,但是部分核心代码逻辑以及组件存在“时机性”问题,启动顺序的不同会带来不是特别明显的时机差异性。

    如果您对时机性没有要求,那么请忽略启动顺序问题,随意启动。

    如果您对时机性有较高要求,那么请详细阅读各个服务对应的备注说明。

    • ManagementApplication (监控中心 可选。)

    提示

    本质上ManagementApplication服务先启动还是后启动对应实际使用并不影响。仅有的影响是先启动ManagementApplication服务,然后在启动其它服务,Spring Boot Admin会马上收到服务的运行监控信息,进行及时的展示;如果后启动ManagementApplication服务,其它在ManagementApplication之前运行服务的监控信息会间隔一段时间才会展现。

    如果要使用该服务中的Spring Boot Admin监控,建议最先启动该服务。

    • UpmsApplication (用户模块 必须)
    • GatewayApplication (网关模块 必须)
    • UaaApplication (认证模块 必须)
    • BpmnApplication (工作流 可选)

    [7]、运行ELK

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及 Skywalking 链路追踪的数据存储介质。

    目前已有基础功能尚未涉及到搜索,只有日志中心和链路追踪功能涉及到 Elasticsearch。如果本地开发不要相关功能,就不需要安装ELK套件。

    提示

    如果不想使用ELK,那么需要关闭微服务的日志收集功能。修改你所使用 多环境 对应的 eurynome-cloud-environment.yaml 配置中的 herodotus.environment.logstash-server-addr 属性的值,将其值设置成 false ,即可关闭日志收集功能

    [8]、运行Skywalking

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及Skywalking链路追踪的数据存储介质。正式环境运行建议使用 DockerK8S 的方式运行 Skywalking,并以 Docker 的形式运行服务。

    如果仅是在本地运行调试服务与 Skywalking 的联动,可以在IDE中增加参数后,再运行服务即可。

    以IDEA为例,点开 Edit Configurations...,在对应服务的 VM Options 输入框中添加如下参数即可调试 Skywalking

    -javaagent:D:/Workspaces/Java/herodotus-cloud/configurations/docker/context/agent/skywalking-agent-es7-8.6.0.jar=agent.service_name=herodotus-cloud-upms-ability,collector.backend_service=192.168.101.10:11800
    -
    1

    [9]、以Docker方式部署

    参见:容器化部署

    具体操作如下图所示:

    输入图片说明

    前端运行

    前端运行命令

    // 进入目录
    +
    1
    2
    3
    4
    5

    提示

    推荐使用install命令,进行编译。使用该命令编译完成之后,会在Maven本地缓存中,生成响应的包,这样eurynome-cloud-athena功能就可以直接使用。

    提示

    在第一次编译的时候,因为在本地缓存缺少相关的包,所以在执行 mvn clean 操作时会提示错误。因此,在第一次编译时只使用 mvn packagemvn install。第一次编译完成之后,就可以使用 mvn clean packagemvn clean install 命令进行编译。IDE界面操作也是同理。

    编译方式二

    在IDE工程中,利用IDE提供的界面操作进行编译。

    IDEA为例,在右侧Maven Panel中,选择eurynome-cloud(root)节点,点击Lifecycle节点下的install 或者 package 进行编译。参考下图:

    输入图片说明

    [7]、数据库创建和数据初始化

    具体操作方法,参阅:数据初始化

    [8]、运行服务模块

    说明

    各个服务的启动顺序并没有严格的要求,启动的先后顺序并不影响实际的使用,但是部分核心代码逻辑以及组件存在“时机性”问题,启动顺序的不同会略有时机差异性。

    如果您对时机性没有要求,那么请忽略启动顺序问题,随意启动。

    如果您对时机性有较高要求,那么请详细阅读各个服务对应的备注说明。

    • ManagementApplication (监控中心服务 可选。)

    说明

    本质上 ManagementApplication 服务先启动还是后启动,并不影响平台的实际使用。仅有的影响是

    • 先启动ManagementApplication服务,然后再启动其它服务,Spring Boot Admin会马上收到服务的运行监控信息,进行及时的展示;
    • 如果后启动ManagementApplication服务,其它在ManagementApplication之前运行服务的监控信息会间隔一段时间才会展现。

    如果要使用该服务中的Spring Boot Admin监控,建议最先启动该服务。

    • UpmsApplication (用户中心服务 必须)
    • GatewayApplication (服务网关服务 必须)
    • UaaApplication (统一认证服务 必须)
    • BpmnApplication (分布式工作流 可选)

    [9]、运行ELK(可选)

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及 Skywalking 链路追踪的数据存储介质。

    目前已有基础功能尚未涉及到搜索,只有日志中心和链路追踪功能涉及到 Elasticsearch。如果本地开发不要相关功能,就不需要安装和运行ELK套件。

    提示

    如果本地不想使用 ELK,那么需要关闭微服务的日志收集功能。

    修改你所使用 多环境 对应的 eurynome-cloud-environment.yaml 配置中的 herodotus.environment.logstash-server-addr 属性的值,将其值设置成 false ,即可关闭日志收集功能,就解除服务对 ELK 的依赖

    [8]、运行Skywalking(可选)

    完整运行本套微服务架构,需要搭建 ELK 套件,作为日志中心以及Skywalking链路追踪的数据存储介质。正式环境运行建议使用 DockerK8S 的方式运行 Skywalking,并以 Docker 的形式运行服务。

    如果仅是在本地运行调试服务与 Skywalking 的联动,可以在IDE中增加参数后,再运行服务即可。

    以IDEA为例,点开 Edit Configurations...,在对应服务的 VM Options 输入框中添加如下参数即可调试 Skywalking

    -javaagent:D:/Workspaces/Java/herodotus-cloud/configurations/docker/context/agent/skywalking-agent-es7-8.6.0.jar=agent.service_name=herodotus-cloud-upms-ability,collector.backend_service=192.168.101.10:11800
    +
    1

    操作界面如下图所示,IDEA版本不同配置方式会有差异

    输入图片说明

    [10]、以Docker方式部署(可选)

    参见:容器化部署

    [11]、部署验证

    以上步骤完成之后,工程后端整体搭建部署完成。可以通过运行前端界面进行操作或者用 Postman 调用接口的方式进行验证。

    如果界面操作正常,或者接口调用正常,则说明工程已经正确部署。更多验证,参阅:OAuth2授权标准

    前端运行

    [1]、检出代码

    在合适位置上,使用Git检出前端工程代码。项目地址open in new window

    [2]、修改配置

    在前端工程 ${project_home}/packages/@herodotus/ui 录下,找到 .env.development 或者 .env.production 文件。修改其中的参数

    参数说明

    • NODE_ENV:当前多环境名称
    • VUE_APP_SYSTEM_NAME:界面显示的系统名称
    • VUE_APP_GATEWAY:服务网关访问地址
    • VUE_APP_PROJECT:地址切换名称。通过该参数以动态修改域名以外的地址,以实现单体版等使用同一套操作界面。eurynome指定是微服务版,其它任意值指定是单体版
    • VUE_APP_OAUTH_CLIENT_ID:OAuth2 密码模式 Client Id。
    • VUE_APP_OAUTH_CLIENT_SECRET:OAuth2 密码模式 Client 密码
    • VUE_APP_OAUTH_GRANT_TYPE:OAuth2 授权模式

    [3]、前端运行命令

    // 进入目录
     cd eurynome-cloud-ui
     
     // 安装依赖
     yarn install
    -或
    -npm install
     
    -# 本地开发 启动项目
    -yarn dev
    -或
    -npm run dev
    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    运行验证

    打开浏览器,输入:http://localhost:3000open in new window 默认账户/密码 system/123456) 若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +// 如果要使用`.env.development`中的配置值,使用下面命令 +yarn e:ui dev + +// 如果要使用`.env.production`中的配置值,使用下面命令 +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    yarn e:ui prod

    [4]、运行验证

    打开浏览器,输入:http://localhost:3000open in new window 默认账户/密码 system/123456

    若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功

    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git "a/documents/guides/documents/\351\241\271\347\233\256\344\273\213\347\273\215.html" "b/documents/guides/documents/\351\241\271\347\233\256\344\273\213\347\273\215.html" index 860ab486c..2dbc2b8cf 100644 --- "a/documents/guides/documents/\351\241\271\347\233\256\344\273\213\347\273\215.html" +++ "b/documents/guides/documents/\351\241\271\347\233\256\344\273\213\347\273\215.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();项目介绍 | Eurynome Cloud - + -

    项目介绍

    工程结构

    后端工程结构

    eurynome-cloud
    +    

    项目介绍

    工程结构

    后端工程结构

    eurynome-cloud
     ├── configurations -- 配置文件脚本和统一Docker build上下文目录
     ├── dependencies -- 工程Maven顶级依赖,统一控制版本和依赖
     ├── documents -- 工程相关文档(会逐步清理,统一采用Gitee Wiki)
    @@ -39,7 +39,7 @@
     ├    ├── eurynome-cloud-upms-rest -- 通用用户权限rest 接口
     ├    ├── eurynome-cloud-upms-ability -- 通用用户权限服务
     └──  └── eurynome-cloud-bpmn-ability -- 工作流服务 
    -
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    核心技术

    后端核心技术

    (1)Spring相关核心技术及版本

    组件版本
    Spring Boot2.5.4
    Spring Cloud2020.0.3
    Spring Cloud Alibaba2021.1
    Spring Boot Admin2.5.1
    Nacos2.0.3
    Sentinel1.8.0
    Seata1.3.0

    (2)涉及的相关的技术

    • 持久层框架: Spring Data Jpa & Mybatis Plus
    • API网关:Spring Cloud Gateway
    • 服务注册&发现和配置中心: Alibaba Nacos
    • 服务消费:Spring Cloud OpenFeign & RestTemplate & OkHttps
    • 负载均衡:Spring Cloud Loadbalancer
    • 服务熔断&降级&限流:Alibaba Sentinel
    • 服务监控:Spring Boot Admin
    • 消息队列:使用 Spring Cloud 消息总线 Spring Cloud Bus 默认 Kafka 适配RabbitMQ
    • 链路跟踪:Skywalking
    • 分布式事务:Seata
    • 数据缓存:JetCache + Redis + Caffeine
    • 数据库: PostgresqlMySQLOracle ...
    • JSON序列化:Jackson & FastJson
    • 文件服务:阿里云OSS/Minio
    • 数据调试:p6spy
    • 日志中心:ELK
    • 日志收集:Logstash Logback Encoder

    前端核心技术

    • Vue2
    • Vuex
    • Vue-router
    • Vue-cli
    • Axios
    • Vuetify
    • Bpmn.js
    • Localforage

    版本关系

    组件版本关系

    Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
    2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
    2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
    2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
    2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
    2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
    2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
    2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

    毕业版本关系(推荐使用)

    Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot Version
    Spring Cloud 2020.0.12021.12.4.2
    Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE
    Spring Cloud Greenwich.SR62.1.4.RELEASE2.1.13.RELEASE
    Spring Cloud Hoxton.SR32.2.1.RELEASE2.2.5.RELEASE
    Spring Cloud Hoxton.RELEASE2.2.0.RELEASE2.2.X.RELEASE
    Spring Cloud Greenwich2.1.2.RELEASE2.1.X.RELEASE
    Spring Cloud Finchley2.0.4.RELEASE(停止维护,建议升级)2.0.X.RELEASE
    Spring Cloud Edgware1.5.1.RELEASE(停止维护,建议升级)1.5.X.RELEASE

    功能介绍

    [1]、统一安全认证中心

    • OAuth2 安全认证

    支持 OAuth2 授权码模式、隐式授权码模式(简单模式)、密码模式和客户端模式四种登录模式

    • JWT Token令牌

    采用JWT对OAuth2 Token进行加密

    • 自定义OAuth2页面

    自定义OAuth2 login、confirm、error页面,提升系统使用用户体验。可结合自身需求进行修改。

    • OAuth2 登录验证码

    OAuth2登录增加验证码保护,支持gif、中文、算数等类型,可通过配置进行修改以及是否显示验证码控制

    • OAuth2登录数据加密传输

    基于AES对 OAuth2 登录数据进行动态加密传输,可通过配置对表单参数名进行动态配置,提升系统安全性

    • 平台权限管理

    基于RBAC模型,以角色和接口为核心,使用统一逻辑实现@PreAuthorize注解权限与URL权限的全面整合及动态可配置化。统一平台接口白名单,IP地址白名单,以及Scope绑定URL的管理。无须配置Security权限注解,支持URL粒度的鉴权和用户权限的动态配置。 完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服务多实例等各种应用场景。

    • User、Client数据策略访问

    支持OAuth2 UserDetailsClientDetails数据直连数据库和Feign两种数据获取策略模式,OAuth2直连数据库性能更优,Feign访问数据服务独立可动态扩展。可通过配置动态修改具体采用哪种策略。

    • 手机短信验证码注册和登录

    支持通过手机验证码登录认证,与平台为统一体系,统一返回OAuth2 Token,支持服务接口鉴权

    • 第三方系统社交注册和登录

    基于 JustAuth 实现第三方系统社交登录认证,,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权,。所有 JustAuth 支持的第三方系统均支持。

    • 微信小程序注册和登录

    支持微信小程序登录认证,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权。

    • 其它注册和登录

    采用策略模式对外部登录和注册进行支持,目前未支持的登录,可参考标准,动态扩展,即可支持。

    [2]、统一服务访问网关

    • 网关动态路由

    基于GatewayNacos实现服务网关动态路由,无须增加任何配置,即可支持服务的发现与路由

    • 网关服务鉴权: 服务网关集成部分权限认证功能,提升系统安全性,降低平台压力

    • 网关服务限流

    基于Sentinel实现服务的限流,支持基于Gateway Filter的自定义限流

    • 动态文档聚合: 网关动态Swagger文档聚合,使用Swagger 3.0,支持Knife4j增强。不同环境访问控制

    • 统一跨域处理

    基于Gateway实现统一跨域处理

    • 统一错误处理

    平台统一错误处理,支持自定义错误码体系

    • 自定义动态路由

    支持基于DB的动态路由管理与路由规则配置

    [3]、微服务架构支撑

    • 服务注册发现

    基于Nacos实现服务的注册与发现。

    • 服务负载均衡

    Spring Cloud Netflix 停止维护,使用 Spring Cloud Loadbalancer 全面替换Ribbon

    • 服务熔断降级

    整合OpenFeignSentinel,从熔断降级、系统负载保护、热点防护等多个维度来保障微服务的稳定性

    • 统一配置中心

    基于 Nacos 搭建的统一配置中心,支持配置文件自动导入和关键信息加密,可根据文件夹名称自动分组配置。

    • 统一日志中心

    采用TCP直连的方式采集和发送日志,集成 Skywalking TraceID 实现日志聚合及ELK日志分析。通过 @EnableXXX 注解开启或关闭日志采集功能。

    • 分布任务调度

    极简集成 xxl-job,支持分布式任务调度功能

    • 分布事务处理

    集成 Seata,支持分布式事务,无代码侵入,灵活便捷

    • 分布对象存储

    支持 Minio 分布式对象存储。同时,集成阿里云OSS,可通过 @EnableXXX 注解开启或关闭功能。

    • 分布式工作流

    Camunda 引擎为基础定义分布式工作流引擎,提供自研人事信息管理以及人事管理体系与工作流用户体系的实时集成

    [4]、微服务运行监控

    • 服务调用链监控

    集成 Skywalking 进行服务调用链的监控,调用链监控深度可延伸至Undertow、数据库、Redis

    • 应用吞吐量监控

    集成 Skywalking 进行应用吞吐量监控

    • 熔断、降级监控

    集成 Sentinel 进行服务的熔断、降级监控

    • 微服务状态监控

    集成 Spring Boot Admin 进行服务运行状态的监控

    [5]、数据自动化处理

    • 数据模型初始化

    RBACOAuth2 部分核心表、Camunda 数据表,在初始部署过程中为自动化创建

    • 核心应用数据初始化

    RBACOAuth2 等核心数据,在初始部署过程中为自动化导入

    • URL权限数据动态汇总

    自动扫描URL接口作为权限汇总存入系统,根据URL相关信息生成唯一ID,多次导入数据不会重复。可通过配置动态开启或修改扫描内容

    • Yml配置自动导入

    服务所需使用的配置文件,可自动根据文件夹进行分组并导入到 Nacos 中。

    [6]、服务开发支撑

    • 通用CRUD封装

    各种类型的代码生成器较多,结合实际应用使用效果来看,代码生成器在实际开发中使用频率低于理想预期。因此,没有考虑提供代码生成器,而是对常规的CRUD进行了多层次的封装,使定制化服务的开发更加便捷。

    • 自研两级缓存封装

    自研基于 CaffeineRedis 分布式两级缓存,完美支持JPA Hibernate二级缓存,完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。实现基于CaffeineHibernate 二级缓存,可与自研两级缓存快速切换,仅使用本地缓存创建Key繁琐和分页数据无法更新的问题

    • 多类型数据库支持

    默认采用 PostgreSQL 数据库,支持 MySQLOracleH2等多种关系型数据库,无须修改代码可动态切换。数据层同时支持 Spring Data JpaMybatis Plus

    • 多消息队列支持

    适配 RabbitMQKafka,默认使用 Kafka,支持消息总线(Spring Cloud Bus)

    • 多种服务调用方式

    默认采用 OpenFeign 进行服务间调用,支持 RestTemplateOkHttps

    • 共享式多环境切换

    共享式、统一化多环境配置模式,Yml、Docker均采用此方式配置,避免类似的服务配置、Dockerfile配置导出复制和修改的问题

    • 多团队开发管理

    支持多团队开发,可针对各个团队开发服务,进行单独的授权配置。

    • 注解模型模块模式

    除必要依赖逻辑以及强注入顺序要求的模块采用 Spring SPI(spring.factories)机制外,其它功能模块均采用 @EnableXXX 注解编程模型,可选择性进行控制是否开启对应模块,减少不必要的依赖注入和启动。

    • 代码打包记录查询

    对代码编译信息进行记录,可查询代码版本以及编译时间等相关信息,方便运维人员更好的掌握代码信息。

    • 人事信息管理

    除已有的用户体系外,集成单位、部门、人员等人事管理功能,满足大多数人事管理场景,并与 Camunda 工作流用户体系无缝整合,实现数据实时同步。

    [7]、信息发送集成

    • 微信小程序订阅消息

    支持微信小程序订阅消息发送。提供订阅消息模版工厂,可根据自身业务需求,编写少量代码既可以拓展支持新订阅消息模版。

    • 极光消息推送集成

    集成极光消息推送,对极光后台API进行封装,封装度高、调用方便,可快速与自定义业务需求整合,通过 @EnableXXX 注解开启或关闭。

    • 环信消息集成

    集成环信IM和消息推送,使用更加便捷,可在应用中根据自定义需求快速整合和拓展IM,发送手机推送消息。通过 @EnableXXX 注解开启或关闭。

    • 多通道SMS集成

    集成阿里、百度、中国移动、华为、京东、极光、网易、七牛、腾讯、又拍、云片等平台短信发送通道。可通过配置动态选择具体使用通道。支持多模版定义以及模版参数顺序控制

    [8]、内容审核集成

    • 阿里云内容审核

    集成阿里云内容审核,支持文本、图片、音频、视频、网页内容审核,支持同步审核、异步审核、异步 Callback 方式审核通过 @EnableXXX 注解开启或关闭。

    • 微信小程序内容审核

    集成微信小程序内容审核,支持文本、图片、音频内容审核,支持同步、异步审核。通过 @EnableXXX 注解开启或关闭。

    • 百度证照识别

    集成百度证照审核,支持营业执照、身份证 OCR 识别。通过 @EnableXXX 注解开启或关闭。

    • 天眼查企业信息查询

    集成天眼查企业信息查询。通过 @EnableXXX 注解开启或关闭。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    核心技术

    后端核心技术

    (1)Spring相关核心技术及版本

    组件版本
    Spring Boot2.5.5
    Spring Cloud2020.0.4
    Spring Cloud Alibaba2021.1
    Spring Boot Admin2.5.1
    Nacos2.0.3
    Sentinel1.8.0
    Seata1.3.0

    (2)涉及的相关的技术

    • 持久层框架: Spring Data Jpa & Mybatis Plus
    • API网关:Spring Cloud Gateway
    • 服务注册&发现和配置中心: Alibaba Nacos
    • 服务消费:Spring Cloud OpenFeign & RestTemplate & OkHttps
    • 负载均衡:Spring Cloud Loadbalancer
    • 服务熔断&降级&限流:Alibaba Sentinel
    • 服务监控:Spring Boot Admin
    • 消息队列:使用 Spring Cloud 消息总线 Spring Cloud Bus 默认 Kafka 适配RabbitMQ
    • 链路跟踪:Skywalking
    • 分布式事务:Seata
    • 数据缓存:JetCache + Redis + Caffeine, 自定义多级缓存
    • 数据库: PostgresqlMySQLOracle ...
    • JSON序列化:Jackson & FastJson
    • 文件服务:阿里云OSS/Minio
    • 数据调试:p6spy
    • 在线文档:Springdoc + Swagger 3 + OpenAPI
    • 日志中心:ELK
    • 日志收集:Logstash Logback Encoder
    • 数据同步:Debezimu
    • 外部集成:JustAuthWxJava,多种短信API
    • 工作流引擎:Camunda

    前端核心技术

    • Vue2
    • Vuex
    • Vue-router
    • Vue-cli
    • Axios
    • Vuetify
    • Bpmn.js
    • Localforage
    • Rollup
    • Lerna

    版本关系

    组件版本关系

    Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
    2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
    2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
    2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
    2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
    2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
    2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
    2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

    毕业版本关系(推荐使用)

    Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot Version
    Spring Cloud 2020.0.12021.12.4.2
    Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE
    Spring Cloud Greenwich.SR62.1.4.RELEASE2.1.13.RELEASE
    Spring Cloud Hoxton.SR32.2.1.RELEASE2.2.5.RELEASE
    Spring Cloud Hoxton.RELEASE2.2.0.RELEASE2.2.X.RELEASE
    Spring Cloud Greenwich2.1.2.RELEASE2.1.X.RELEASE
    Spring Cloud Finchley2.0.4.RELEASE(停止维护,建议升级)2.0.X.RELEASE
    Spring Cloud Edgware1.5.1.RELEASE(停止维护,建议升级)1.5.X.RELEASE

    功能介绍

    [1]、统一安全认证中心

    • OAuth2 安全认证

    支持 OAuth2 授权码模式、隐式授权码模式(简单模式)、密码模式和客户端模式四种登录模式

    • JWT Token令牌

    采用JWT对OAuth2 Token进行加密

    • 自定义OAuth2页面

    自定义OAuth2 login、confirm、error页面,提升系统使用用户体验。可结合自身需求进行修改。

    • OAuth2 登录验证码

    OAuth2登录增加验证码保护,支持gif、中文、算数等类型,可通过配置进行修改以及是否显示验证码控制

    • OAuth2登录数据加密传输

    基于AES对 OAuth2 登录数据进行动态加密传输,可通过配置对表单参数名进行动态配置,提升系统安全性

    • 平台权限管理

    基于RBAC模型,以角色和接口为核心,使用统一逻辑实现@PreAuthorize注解权限与URL权限的全面整合及动态可配置化。统一平台接口白名单,IP地址白名单,以及Scope绑定URL的管理。无须配置Security权限注解,支持URL粒度的鉴权和用户权限的动态配置。 完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服务多实例等各种应用场景。

    • User、Client数据策略访问

    支持OAuth2 UserDetailsClientDetails数据直连数据库和Feign两种数据获取策略模式,OAuth2直连数据库性能更优,Feign访问数据服务独立可动态扩展。可通过配置动态修改具体采用哪种策略。

    • 手机短信验证码注册和登录

    支持通过手机验证码登录认证,与平台为统一体系,统一返回OAuth2 Token,支持服务接口鉴权

    • 第三方系统社交注册和登录

    基于 JustAuth 实现第三方系统社交登录认证,,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权,。所有 JustAuth 支持的第三方系统均支持。

    • 微信小程序注册和登录

    支持微信小程序登录认证,与平台为统一体系,统一返回 OAuth2 Token,支持服务接口鉴权。

    • 其它注册和登录

    采用策略模式对外部登录和注册进行支持,目前未支持的登录,可参考标准,动态扩展,即可支持。

    [2]、统一服务访问网关

    • 网关动态路由

    基于GatewayNacos实现服务网关动态路由,无须增加任何配置,即可支持服务的发现与路由

    • 网关服务鉴权: 服务网关集成部分权限认证功能,提升系统安全性,降低平台压力

    • 网关服务限流

    基于Sentinel实现服务的限流,支持基于Gateway Filter的自定义限流

    • 动态文档聚合: 网关动态Swagger文档聚合,使用Swagger 3.0,支持Knife4j增强。不同环境访问控制

    • 统一跨域处理

    基于Gateway实现统一跨域处理

    • 统一错误处理

    平台统一错误处理,支持自定义错误码体系

    • 自定义动态路由

    支持基于DB的动态路由管理与路由规则配置

    [3]、微服务架构支撑

    • 服务注册发现

    基于Nacos实现服务的注册与发现。

    • 服务负载均衡

    Spring Cloud Netflix 停止维护,使用 Spring Cloud Loadbalancer 全面替换Ribbon

    • 服务熔断降级

    整合OpenFeignSentinel,从熔断降级、系统负载保护、热点防护等多个维度来保障微服务的稳定性

    • 统一配置中心

    基于 Nacos 搭建的统一配置中心,支持配置文件自动导入和关键信息加密,可根据文件夹名称自动分组配置。

    • 统一日志中心

    采用TCP直连的方式采集和发送日志,集成 Skywalking TraceID 实现日志聚合及ELK日志分析。通过 @EnableXXX 注解开启或关闭日志采集功能。

    • 分布任务调度

    极简集成 xxl-job,支持分布式任务调度功能

    • 分布事务处理

    集成 Seata,支持分布式事务,无代码侵入,灵活便捷

    • 分布对象存储

    支持 Minio 分布式对象存储。同时,集成阿里云OSS,可通过 @EnableXXX 注解开启或关闭功能。

    • 分布式工作流

    Camunda 引擎为基础定义分布式工作流引擎,提供自研人事信息管理以及人事管理体系与工作流用户体系的实时集成

    [4]、微服务运行监控

    • 服务调用链监控

    集成 Skywalking 进行服务调用链的监控,调用链监控深度可延伸至Undertow、数据库、Redis

    • 应用吞吐量监控

    集成 Skywalking 进行应用吞吐量监控

    • 熔断、降级监控

    集成 Sentinel 进行服务的熔断、降级监控

    • 微服务状态监控

    集成 Spring Boot Admin 进行服务运行状态的监控

    [5]、数据自动化处理

    • 数据模型初始化

    RBACOAuth2 部分核心表、Camunda 数据表,在初始部署过程中为自动化创建

    • 核心应用数据初始化

    RBACOAuth2 等核心数据,在初始部署过程中为自动化导入

    • URL权限数据动态汇总

    自动扫描URL接口作为权限汇总存入系统,根据URL相关信息生成唯一ID,多次导入数据不会重复。可通过配置动态开启或修改扫描内容

    • Yml配置自动导入

    服务所需使用的配置文件,可自动根据文件夹进行分组并导入到 Nacos 中。

    [6]、服务开发支撑

    • 通用CRUD封装

    各种类型的代码生成器较多,结合实际应用使用效果来看,代码生成器在实际开发中使用频率低于理想预期。因此,没有考虑提供代码生成器,而是对常规的CRUD进行了多层次的封装,使定制化服务的开发更加便捷。

    • 自研两级缓存封装

    自研基于 CaffeineRedis 分布式两级缓存,完美支持JPA Hibernate二级缓存,完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。实现基于CaffeineHibernate 二级缓存,可与自研两级缓存快速切换,仅使用本地缓存创建Key繁琐和分页数据无法更新的问题

    • 多类型数据库支持

    默认采用 PostgreSQL 数据库,支持 MySQLOracleH2等多种关系型数据库,无须修改代码可动态切换。数据层同时支持 Spring Data JpaMybatis Plus

    • 多消息队列支持

    适配 RabbitMQKafka,默认使用 Kafka,支持消息总线(Spring Cloud Bus)

    • 多种服务调用方式

    默认采用 OpenFeign 进行服务间调用,支持 RestTemplateOkHttps

    • 共享式多环境切换

    共享式、统一化多环境配置模式,Yml、Docker均采用此方式配置,避免类似的服务配置、Dockerfile配置导出复制和修改的问题

    • 多团队开发管理

    支持多团队开发,可针对各个团队开发服务,进行单独的授权配置。

    • 注解模型模块模式

    除必要依赖逻辑以及强注入顺序要求的模块采用 Spring SPI(spring.factories)机制外,其它功能模块均采用 @EnableXXX 注解编程模型,可选择性进行控制是否开启对应模块,减少不必要的依赖注入和启动。

    • 代码打包记录查询

    对代码编译信息进行记录,可查询代码版本以及编译时间等相关信息,方便运维人员更好的掌握代码信息。

    • 人事信息管理

    除已有的用户体系外,集成单位、部门、人员等人事管理功能,满足大多数人事管理场景,并与 Camunda 工作流用户体系无缝整合,实现数据实时同步。

    [7]、信息发送集成

    • 微信小程序订阅消息

    支持微信小程序订阅消息发送。提供订阅消息模版工厂,可根据自身业务需求,编写少量代码既可以拓展支持新订阅消息模版。

    • 极光消息推送集成

    集成极光消息推送,对极光后台API进行封装,封装度高、调用方便,可快速与自定义业务需求整合,通过 @EnableXXX 注解开启或关闭。

    • 环信消息集成

    集成环信IM和消息推送,使用更加便捷,可在应用中根据自定义需求快速整合和拓展IM,发送手机推送消息。通过 @EnableXXX 注解开启或关闭。

    • 多通道SMS集成

    集成阿里、百度、中国移动、华为、京东、极光、网易、七牛、腾讯、又拍、云片等平台短信发送通道。可通过配置动态选择具体使用通道。支持多模版定义以及模版参数顺序控制

    [8]、内容审核集成

    • 阿里云内容审核

    集成阿里云内容审核,支持文本、图片、音频、视频、网页内容审核,支持同步审核、异步审核、异步 Callback 方式审核通过 @EnableXXX 注解开启或关闭。

    • 微信小程序内容审核

    集成微信小程序内容审核,支持文本、图片、音频内容审核,支持同步、异步审核。通过 @EnableXXX 注解开启或关闭。

    • 百度证照识别

    集成百度证照审核,支持营业执照、身份证 OCR 识别。通过 @EnableXXX 注解开启或关闭。

    • 天眼查企业信息查询

    集成天眼查企业信息查询。通过 @EnableXXX 注解开启或关闭。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    + diff --git a/documents/guides/images/idea/refresh-maven.png b/documents/guides/images/idea/refresh-maven.png new file mode 100644 index 0000000000000000000000000000000000000000..2446581826e6fccf7f4df5fe872e28468ea263f3 GIT binary patch literal 12946 zcmbVzcQjmY_wOJfiD*HzL>natB4PC2Mj37N8bo5k5IqP&^xoSj38O`{7`^2yx*$f) zXo=p2=+WmodV&D__x_<`ni@;4!RRL5!cyA53xb{LGCJzEt#gU#_Uk9#lzJi*#fk5P6uYL%+ zor|A=K##fAl;rhaTjH~iz3xtAtn86ITMql-TKEFH=FVMZ`zQ+Eam|dBu<9KFoAnn* z2(fj?&dkh0a>>-YafI!b~ zK$!s1uA#|5AO=D#G3f1W0t69AF7z#i0K}>&hXaA)*;s+i_fY=-+#aqi{rd|MAqXS~ zDSnNHaSNpYYtNPhUtTR){C{0C;d&hZU9;R7o(~g+kQ(AE(b&!Ewkf^lyp0qpV91wb zfXw#BnWj@6d9hl@K7(f=^ZP&C$}wvqDZ2M-KGeRPGu1UfsQQhl`LpWMN!NI1tTNrF zwzbXAtEe8+nd1xXzIBjKqNM6p$qf1~_Uf76R=e`fiRi3*$bb&R*zkr=L~|(@ezt6? zqvQ!V&(6p9eQaNGEN<0ui zO1tBFD|krWk@2R=ik2B*DL$Oq@C%5uuVJC=^C7bbhUJzEQJA&#zLFf^^la56$y^G~ z|0Jt+)X4=Nm&!yE5K$9deQ&xr<*tO*!li*^e%Dh5erY$$Gso zXts6qUSUaJ8^7Nwk_J&ryZ+|rXj`NYcP+vKuc{zgLj+n(dMHS*d~`!Htt>u(>YK&y zbYonN`9rG)Q~v^6-XfouMMq^Nm?Q1iJ+y+#-wPqSI>8qk0Xrr?E^*RFOjAJAD7&#Y z=ioe@Ky~2Y+{`0j-uO_9BCe;1Z4L0A26zDX_qyj;|6M*Sw~!{^L^s>2dyX+gAW-ei zy}874JDaD!m0cY64XjLqKe&D@^7NU@grf8qveIg)*xWj_b_P z)7ikjk8L^*42uCG+WX8!1za+DiN4aeC%O-UM6VtYDGA3QzP}unLVS)6jTk)Trk_Ip z`qi7%ITW?mGBGPUI|(F}j}dCkh(DwCE(=PWx`HRa&yxyty8X8`TB9m^JAJd?95Y$f z4;fQ{Kx6ECSpQ3}wg(}my(QklzQKd?+J^IiOdvV_n@Nz02z0sB$Gq|qG+YER66rUV zxE2?=k^FQP0(zgSq%P@xpleE0LXIAAD_Ki$J7;(N3ct0J%mMuKnJG@n0iD%7mZSi` zSTzs0_#sHYQT=Vcv&PEy19Le6C~r1^?rXvQ*1Y2C4vfjF(ij>>$eG|NE6n+ds`i6& z(W-fJq|n$41|XfpeNsn#7j;Rn>ol)xylB%JLl0o%kX4USh+lCE`0p)$zeqAm)`}SAH^8(Ii3ku>e2|vSDp2STR`8~{9mOD{$|9%Rlyv-Gk!N86VN;%$G!Y#}{^WqPQ;v$xh$4*U* zqC7T4doJOon_;nn77YTiZLc4HFMrrL9=WWTro1=I^!%2`XxF4DF&A6+Kf;FQ_VVa7 z=ULA=(%UJz*(KUEh&c+p+j2yysHIDV?a|(848E^G1`TVUm9Y5M@LB(xKSE8-Wkeay zjJl@2hk?-zkFGnmDW2w+pxm(m=o1!A_FRKMY^bj9zZf{y2O(0iebph_#x+))zuYp{ z=MxXpFoqLyZGvtBp5e9pA(w5CQ#1L52WwtS$LHrZ@@#r}H4)A&CynN5ui+JYfpgW~ zrPEz&gJ#>|{YDkN4}J(6-Z`Y1UBvX?h|#8ELQ*L=Ay7E3pkTj!AGuL@Ez4M6c^bb{ zQvAYGM!uVk_5HMvgv0aS?O$AuB;2j*hSZPJZc}k0apBFQS&q~nfTP&)7y4C7eZCY~ znFK`@orXvkK(Wg#_gpsr#7|EqZmh{B&nD}89Znw`Q;Ak6DriGpGkjvjiWh!->8j62 z^-M4+N(~>Ut&Ya`1^NfP&Nqt8oUM18IG4G3=jg|;z1GL=D*DQ8ao1W3vsLZQPd?UZ zD4pK34VLy;5!(3~2@7;(a4Awtp_$bl7}`v+q8=-F+nKF0sf0Tsx-2(u^_f{oNhuxg zqj+6|6c1LL>a~;noP&G9?sO!WWOZ1e*Lf3Wp981`LxZ(+j) zeLg<59ckb&!GOaw%rBo=(-czNl2J7u-En+sJ1qr8Ri!-s(39C#0c3J8IkUg~=5);z zKiIP2{Nvpld`#s6!7IW4+NV@5fvn1`TRQ;qIeP-z!J;MlzdslvFS{6u^Vvw z{KS`fIHA^UM0b##r^l4Gp+wp?8M0J*9K+cuZKr3_&ea!z;W20zcS<=XrR!(e1&W_Q ziTjxpS}Xc2mAXSzBpy;slk}q6*i>U^hE$Dp(y8Bp;}5QWu_YC|3DP_#2QT(hyrgF% zG8b1lEULv*&*FA)0y|FG#p!Fych)dzWkkwo@hrkr4SGlfBW}7$bkr}mhsn>0TV-o} zh(mnR6W(S?(0jfrre)C*uZ|m;>Rc_YIK8Oo;pcGlK`zWHxufsDiEi11o?e7;g|89q z&4`X~l4>+h-2AKmuL8QH%EP(IyxDOTk81Oo!kP{IX|hHNE6fWoR)U32a7^6D)e>5D$z<@RI6I0UQ?N+h=ykDb2Q4bo{Nj$l0T$u?l;mP)levN$uCYD>-Oja|ho~mH zV?P-K&2u>J(_u*Z;!%RamHgI%=vJ$`pO7=(9eIK4uX)Vnk_L7p#FD$7Y>FRC>jaNV z4XD-q{zPsw6}vKB`zC*?!JGab-!0}iHu=4MnVgdsW;l-LNtJ4g9Q!Y!Q^Y4jXqrMH z&E&l%WA(|2TLBrJE}Hiep-rO;8=A$Kn+DTMH&E}RVxMTAws-bFW`Xihw#4djo)rne z*PnA}ALrknYS6@2D0+Xl>8a^-N8-)1tgG!WB#!TJeuQ z9bGB5HlF!ITkNW@M8GiWN2SKGH#|16Z?!@=Q#`LOhBU5Qhd1~#c$wm+Rz~saLb8H( zT=5%xgM0?>hvbNg@^AY$;A_w(J&tn=;hQMPa6wz+U49eZWq}9hMsM!qp$Do}HI)j~ z*b89s^;6_Sd>WJ2EQHI}RS63QDB2DGOf}<8j)|mX-1{CpYZNb;6@CCjp_b4=HMfq2 z=+pJ@=C4kMIMhZqT8Y9s7Wj;MdBXQuPC7DoSK2?ue;T=g>Pf;Nr^C^r3<26Cw^*9Z zwc1q82bl^4*36evhr@*H_(}YHawQJ5ol!I+G0^9(EAZVyv}Mk+3WqMKkkP5iv*bz` z9!bfC9D%9wCDfAr$%EZ7`0yZ{S@S&$N6W9#OU=v+RRx29NnL01lczt=*~chu*0lBg zj8goZGxTA(+Nj*p)^0tHf0q@Bf?teFHO!vpwGa`2O0wZxCC}Iu2$dP0#I$v9QERwjp*7H&ow|`N-oZM!519cGWoD0Rj1oe{g%{R`;iRs|IZ>|DeNb@Yu5+AY%QtJRQc9W|vZ&`6;XdmTU#ib{ zVo%AWV_->{66B2r}%d7gLX9XJOYX;rW@!l zz|zPausc4!OnB~19%PBaDanhLolr0*IKXdbOMneOnS#Mia5JXjHVzkmaiEx&;@xRV z-r|+}(ENof0McLUuX_pg`aX_ag-*>=CqQ%sO=qU- zvL1+$OKB+k6?17{-7|W+ZKIF25HLuA{Byjl?%1e7f&D&t1uqQVbbEn750nMa10y^3 z%ryh{D2@SLPZ0N){*~`vw zjN?n{>q{Mo>ZgqFTG{ytLB+&z!ZjW2eE|=h1jF#!X~DX1MA9>pMq#o?YA@e0fB#^@ z{?IQ|%l;(^01epK1g#o)6ZNnHX_@LMR+qid>(^$`x6N+Gvx<+n%MV&7?emGO0Gx=X zFb2cmlbDc)Ocm`-_tY!07%Pd*DMV*G*XOW$gE@isLLg|1BT|)4>+yVky}^&oFdYGN z?XcA-+&)Fl9lr7MqnZ-hms{(bTSW7oLSD39WdtBOzXU_vx^G)KU34UAFUs&bkm2>X zIS`5BNXmPuP2&XvpYQ_biaNv2(^HpNyK#IT23^B)t(rn*8dZa;=)0u^=-mnS>^Cv`$bI3`Rhmo}|p=0-T` z3Jj0!KGIYW=p24RN3^htpCfL^=P3R)W~|Nm!wHdlo@q67<}g%M z`@pjbZ9yM4R5GvhXOKj3n!6ALO5tq5kZvO`G+M+Ql=z<~8s(;q9%1Y#n_oiEifS@Z`n3pXYnc0a=&c7^ld^)|?VAG0}wUPfg@ zr@Xh5SenD9c&?UH$02S|d%`Cqc2Qp=&zGt!I5tl zid4^Rof&z?X;1cP`(YCR>m`6Ffc>_b*lH1SRUBu>3)6?3|4GU_*iy~2+gIe-(rf2R zRG;GU3hw72J6Ey3hw$~774r||Tj)-|dks{453o4_@svZCVTfC-y^kx(-tUM`ixJJb zmD<0pdGQJkozt#JX?PjfRCz&-72%Bh# zYdtl2h-C0Sg_m+MDgY{K^6u8Py$=F$d|<~qVVDvCPvpm{qke`gPMdHD740fq5rULV zSOLIjK%hH>|BWm3=x7d!i-=(ojm*i(G1f6#w`C*+#cQ+TC2SVDoP+{~ZG`*=r~ma2 z4OOk2xZ_c{-oENQ0VstCTMmBU1L-xf`zMjS>Ts=S#uj*5g9M;pSmbaXN<4_6%r?2K zwpa4aC+nqpv--pcZjw^kpoc_=39170jMvZiG>26S-7}A&lH&1@p2zW?_o+DX9@@^7 z`T6thZ!TY1V(-szb82|lH-*Z92G4rWh?E)E)&lHi^Gg)+0oIhX^_3x2F|`UT{n zPSJMp>c&oLWPa83hsg8@=EW4d{sM|IkXvyaG z_#J2k95F_IUZ(8{atKnjfLq_Qk}WF3#jb;T?f`rE2b)v(IwJa`^K?DiU3d3zYDGo8 zN#C5g6>8674DC*4pK-8+C5LG;ink}xuh}!u?erNV&2ydFkKteA7W`Re#UsyIk@42R z5d;;$HU(~ED)}v~8ytJQUd)RAVqi_Zq;6JW^lQfHfk-=*n||(VEIHkCMue(W5{?2( zd<+6kMISMw|2%TK*&F`Q`^+Wx6GJ|xpi+vb3T=*XIJmZblV_^mj#0Jam9A@{(3p%? z_6aVY*=5M0`L5kR9vPw(Fz;ZNy@vJ*H9QI8-5U^aS|2eH-9}}p37%ft&#f9F)c~tY z9J%iLqtib?e;q9oBuZ$PE&oZ^@18s_Rb4_25O2WGfdw1&p>;W{zgC{8g5%gc4Uk|&@w7O+IcEcy9w?L% z0S_Kf$T=ICcoPH>I?iUZ3V@ms`6>~D)Du*2$tSD~+9#!E^Ot7}&YdMzmv(ZaywtMw zn;R4ehtX5!gmhanIlLMe*=G`Wxq+H*y?m{fb+ULGbdi0LEBojcDt(_W-jjny8nt-u z`hieP0TF^Io&pQ?Rbaz1AAQ}JZ{4=KYjsggIzK9SsStVkts>wCB8>>3#2+a0A}&w& zWDw5BYb+5gm&@B7$Cn4T(58DpIU&cRr*YaX+Tq7yN!2ZLA$JxxckyoWV#h0{or@KJ zXEM3ARqA8w?Gnohfw-3+y*%ITXrR)RJ?i!!@4NIhTAaaaM97Q;Qg>NRGmzaos}3f>RH$o;cMq-!cq;>$ogE2-I732SJC1 z?Q#h@pDs4dvs~<4M&zC?2ShEk{qdSlnmcQm{N0<|Bk_%yCr|{zq{sF$qso%*GaIAl zRCIi0O;7XpFt8&nJeVBxAXgY$_yfFfvDbgyGC{AfBJN@}b@FoOsG~Nwjk|UC7g^N> zcff^Yn4ox`@4nou^oHd<)<$sY0uPy*&Qt=uc6DVHE`F|(&02+ z((F-*2RQpRa=UG1!3lhtVBD|qu&s$32%@J^!dNX*;8r*e^!5!Q;4?9msvMxd_6+2I z5UAk4c4r*b%(6fI)D-)zy&&?pccb74ZORW2{%szDz?G9&H9+77MU5yP$OWz4yPl8@4jk?kRf(G&g0L9;Ayk~$aZ-V_>%ZkgYJ)W|_hb7g5?&zXS@BW9~A{O|10SFzz;12H0w8fNEisu#y!6-J+}?cY>WtxS$OD1UlOD)C5dPv7Z?4>>_;dWa>p^_rwU_6yaE>tzN)khhp)c{t9vzS=L7aAE+qHDJ~ zA~H9e=?3pdH)mIkxinD3z{g{tP$pq|L;=$0GVEOB6A{9}IIWh;4kUM|CWu$~l7AED z5-JOQLV$3X^ohO?1j06S3PiqI^-TigoHP0dxVNh2DGi!T&L8kbK7=Z@&&%Y%t9Bn7 zg#BtCSAPNL3G@b;u*)juUKCryX#@1s5o*T$WG$hAl$rX;$~Td5U7%yO z-mY`?T-=x|Wt^$H@A|ZdP4}ROjpy}2m?knuaC~!baBMAjxhZ83OJT zobQ-jEUY$AAnktgss0UKMQ++%b4kA<6^NPHv8L)McB{KDIlmY1_e=PGy!+#wBOra@ zk^XabWNJ096WqjHGYDe6-Y+Jrvki}TzFX`7+vv{9otI{5bMw`?eK!{7peu-2=fSw7 z8jKCGO(9l91;TI({MG6ksPB_5U3wdu={QNd6OmwZtB#?bQKLhOgj(hUpCJ65q5Y$% z3!7^)H9y2_}0MZsLMV z1b;!5t-v^wKRmG*Kf;kbsO4BxXJ-JR_=4EVV&mJ*nLV1*yWMssr`>u}nQe5;W}WU% z71IG1-#4Pp7{vX?_C|&{%yAqB+Fu?b4f-Bhics)_?O@-29fU&7Bn3edh=T0U#s;e1 zdH)T(b1J`MJBK}WVQVmB)yJOjCwfqMwvX7`k=kj9s%$Qw3QO8noamX@u5SW9E8NJb zkkZx3`P+O=T4QT*ZbFH3kGNg--JQ_F$CzScq|xWu2S{E;OQvAJr?N&2iCV-)V=y=G z9Q=&<@Hqt5LFGo1a7XO{GHBT{kz-6eU4FPL!Lv$60ej*ydSt`?$xjMFH-v!W*b+RY z5RzDa6X#?IJCYJ+irCoZVSo<%exO=GY+#+%O}S02&I9dno=}YWh3)XkKyFmw?0Mc& z=Y;aclq@wrk>Kfxq^#z-_MdqQqgy@HXd0KBh<=%Tu#IuA)pg}kjUQR0+!5DKLs|BW z3%5h!4E7J*H#fm*OJ{x(NQDZ)-52P%?Xz!r1;{>xFH&)YMOinkTr^sZN(N2FUP+Ch zn=9JS0XSB_+zi~4<1|nC@hgtjp26P?z!@HvZHJ1((*c&4i(i7u{V|u6^k1psys9-* znAO7j$E4}MqG7AvW-GF)v}N4L3YkR}tM|?k3*pXb(kLtdNOTV^}ENL_DEZkLA4@4lNB6rf6ngI$Pa0 z$@A7|OZFTIwU{5S^&H;a5>(!cFe0*@3`Liz6tc>U<@A0i)Y3cvQC>xb-WH5m#bt@T z-;anw6oo}9*57^Dl^dx*IOj1vF$d9FT#r+dfBajCqga#`8TAJ}FucDr^|^ehz0Qug zsiX!bj1*@rm}#!v&jl~FdxdEfaDYHR2(jgq_h6#i^zq&NUKi>Z^JD7c#^Y5oZfs7{ zrjR!X^k385)x^NRhY-R6#?SBAs{MF6b z%r59&hol}(hA6v}#F$o((wasyKh&bQ!bB}3x<*Sft?s+WpMAtTf;woI#*%wf08jR#NpBHRD> zV~TlyANv%6_dQh}$?I0$E2qx$K8gphWSXm6$g(uI@}AqfJj9OcoY<1Oq$6Egu|#H| zf^G2=-Fe_r6C@`Fl-AaFAo4s^rfH~DH%`;R0FCzU0UWv55`cL9rq6k5BqR#YnU)+F zN9rl;DqG-A%t_%m#XF#%R~UfHn!4->t~0-yE;6-AHVMV^>U7!dx=Y)hmD0#`NUMu6 z?jQOBbWq86$(g$(pdLX)L5sg)UH!!_tjgn* zysADQ-u!wO^ZK00Ir2l&i;l%G=EQ@qD}zx$i-sTKJhQw(dWCcqucor93SsS{D)cYq_~S%kj`?Zm7-=@?;ZS`xZ>_9MGV>GYF{ z&ElEH=V;tVzyF{J+5NGwnbk}^uznY|)%D!2Zsz;ilh2zy!vuBF|1QkX($2qZ^}0H~ z!dVjRPEW{t7U+m$8}LqThoKKQetaI|2VXhI6(kvfsU+_7i#j*hxsN3D)jIkbGRtB| zAI3$*7Fak*0{+JSWQCumGZe{>@#t<;J#FTE1v#T zch5#FS77Nm8=m*`OTW6)V9pjuO+?g%m;~s(4?5ux=nfS`*EvoJ#F-V!FFjtvLTX%2!ydM+?=#T)ozId(jCm;E zV&!n+&sQ$Mdf%ET?vsw{GK}dmwZvL8Y&S=P0VYFd)~Q zE}QKN@9_o!V4{Zvf(F)k?2pz%5wCMa|uj}N&U-JqFD6l4mo5aSK-MLNp7w1{p3!1&U4 zN#tbSVwi$oN}Dg3rJ*}qOLe1Q1fXvKH+3Wjd(GQ%4Q-+Ja-Uuj*ti`4TDXhwJw9i% zM@z}FCyXy<0q#p)>~nbsbAs+_l$tV?5w7`na$_PZC?*mRE`#%N>qg_BdR7O6#lpke zXbU#p7S(4ofDNQ{YN3&T!k|r_latp1l}onez9y1c#TsbGy(aWpZMUJHVupFJ4 ziXWz3iwTMWdUCAzTefaZLL#`73hS#L z^HsV-LzZ+~t?;6SIsedKQvkmz^bR}TP553H=xPiixJ@2J24eVv2bdD{a;{2}AGb8q zp1;~weTT7Y$ee$rw5cxXstNb$$R+>f$8${ow%G=ZJ#oje6GzV13aTtmThan3sw)(ef!+%-C5CAHXhxivSEdel-X4tC*fAQ3o+~1sfJ)Fj%g|k$6laOM!A0 z+H-L>{`OzP`xlzJLLrC(ytGdKrAER??R7N%3Xm?oQ&+-eO+m&=k#0}U4x#s7XyA@`gH0r(9*l5qpyW@v0UJ?kyN# zFOS8*CWz%`12JylWlRaN9MT`KE>>)bOS^JD=m)w6eY0Z2Si`y}dw2?l4CbAF=2N90 z6%clir?&7+9P93Mc-Z{7i0IWgjyrIX78JFIf0lxbrt4vp#oJ9=$9Oh zj8Jv9fPLfT70GlP+9Y2*aXlZ;3I{SQC~0xtgdr2kLzpfjvbI9Rr&GSluBEQ@F|do!zRr#X|crbXWs%_i-A!RYE+zz z_d&M%p&L(|@ZBm(Uhp`V+XqsA7ZT?>XHK|yAYLy}YgAG0dtZe3FBcM9C4dk2V-P1~ zfuo%mi9qq>z`Dj$U@R+MkB5BgD`3(Dm83ve<@Eq3<|7QgGz)?YR8OWoEoA{(uL%&V zvnyFP$XTFKlpTC%H!Yku?LG=wH|YN93X*eW#Wx3qIe>aN<2~Pf`A-bJQq|pPLROae z_yy2^(U$LWLJegyWy ztoYkD4oyNhblQ=Ba?=D&oZWdiJIpE@tYeY&5tDt0%Sqzwa`dJG-a)+QlmH25w?8DvJ?DioZ6)u-oGkxq$`ghW2A*jD(b(CgSJG&86K*v zh~;3qRa8llHL$nTu|*nF?lPdiw@l80_2wiVK0G-XyN+dO$*W+sP1>J{+G$yN~`t5H{LQpB^Q#b zpX#?L<9tqt+KE|#3jO~**^G~VC(TY^|Bw|Q4Ilg}Qu}Jzh$IcxnZFFu2dv3qbeK7z z5woPA)5oq40-XXIcn99_nF1$H3I}x$5flpp2Uffy&3+R|>wSP^H<(bYuVzhBN;Mtq zH;gtm-oD;Qp-D66$5?$%#)1cJv^gBN_OiFl@4TpSd%7e8+5{n9#E(wJ@DLi%#kmF} zXX6sAPRD0b#gW^_F&Gau_0%9s*sOf< zAkfm)tFKbZLu2)rVC8OJHK4^bnQlP%RvNGk>pc}T&DLr-J+r|Gn^vnS?UU_pV<55s zoi~6MAEXC@MT7WDenL;Bd(&}M_YiIjPI81#DgJK%tBA{^hp%dv*I(Ddkf8qCg2i@R#`$Lh^{Xh^h}Sk|nt3%4+uxCfJeQQj0xi%oWV3K@-YA>HF6# zCev!Y;8-eGUED)=e4(AOk5XJ8fGjovt%OGws@}$WPSJ4=?2ZGzCAwT_5VQc~#7Q6; zQPw&sb;V*x@jhcTP~A}i1Y820K2>NNSx*J*k^yiBYui4nMCfT1+ft#e&^GK9Z}2ne zwH$ID7bh=Ud-?nBZgAo+RK5mp46wd;@y&8ZV^z^NNVTwxz&RcGpnTggfyR6Fx z7#mX%r%j)?(CXkLeU^JiIE~$8yXToBy|9hOiyE02{)OyJW rjlVI~?*+a?@*XmIG$*`sNx<@+$kv9ibQAcJ21rd=OQ~GpY0&=y;Tz9U literal 0 HcmV?d00001 diff --git a/documents/guides/images/nacos/config-create.png b/documents/guides/images/nacos/config-create.png new file mode 100644 index 0000000000000000000000000000000000000000..04e6dc12943a6d3922ecfa2be3008a513bf5422e GIT binary patch literal 31739 zcmeFZ30zZG*EbqU3$`+}r4CFCJ}@b5h5T23=l$u00EK^LPExSf`ayW?tQ=C`@P@2-+S-XpS8)!IcKlE z_S*lo)_?V z`~)q@KYS4(jBq1#k<}5b;^!hNXV(H66-|%@h2@sg_*Kkq+nJo27C)sl zhcErJgpge#b2-><3t>T-aoi^SdO$wipI118L$e=1i8*UQ`tLqYoz+|V?$b?MBl^2f zAdg^>uH(R;;V<>qzWcPvXKA9|yN~g;AftDmUYY%Ocx7TLrpbl2xL6^#tt)^@DsB&i zG%#9l-j(%pa$0{wd_#~R;kh*vN1ih-lCrB(BfCZVB65yQz@2uZf{Uv(NjLD8 zw#^nXw1R!7Pn{z(MnZ&^+N`SP?Lm{HETV4?%|kWT=~f#Coesxz44R(vf|T2+URR;d zrE6a#l*kTtSTarRtK~km3+-rjSqd1$i0LN!8Pms)T*%Z4eb4S8%&0`av(*38;Elyn zg(x>1LN$?wt@pxaqe$=6OKtX!J_Se*sMRoW{N^ph{I^ z>OAM+;$`p6fZl)r9ouM$2YDx-iI|8jEj6Nx$GSp`V#~xn>H%e~zz)(gapCJAlP~UfTLRM)i zZQb7_%(hGnS!G;RVnUDZ54`Ve!k<`DGr-4tR8MFZ*6GP#uFA2_)x#=?RI{KNc2(^v zt)TePNE%HTX;vLIGRk=&5Xo_@(%_Y}m_Gx;V}$nY^t!d|63#jpMtyGQQpO&B8u$u_&E2 zVHMPOs#W+<&ANJ*iaU#!Za@Iej}osuz|yCiVo@+XYq(PP(@D3OAnuhM3ar6)MVBnqhf#)$kYE zp(VAXae09A;H%@RqU<;FYe=t4N6@Ls!QU;j6 zPQ(=qL=23hSTVn-f*M#hPABVGD>T+GaJjs36v6)P$P2+<7`cZ-lE-5wN5h_w_pwKX zAu7d57~7?p##x0UXR?Z>9N;vl_`sWUAzM^XCs-;RrBdv`j*o=2du3ZE@(yGsum=tr z_V;vIA~~yNRf&Y@ai@z7oD-l_n!a<5*B-0Wgn@C0xhWlntJ}j}B&6X-6k0(9cM&{( zef5|ymBa+$TWx8s;-xOks;LVi8xFX}_|&NvaG`ln4plALj#xj7j+VYwt1`BDtBC5J z74BZB??*D_)%z17oB15aR4GA8mLSnt8n_QZ=GYj7ydVN(m!o%;N(R*3>yu2|_Tkmb+F67q#Hl1hvcLz9<$3xi99FZ>$# zDc|Fpn@K#01E~FVx1MvFlSy@fU&>q+dSRb2-BpJj12oB zoXQOv>RVW#6<(F>lax*f?N4hpr`v1fqdesJRX6Z~*u_zbo-Dmt;O_le%f%NVCcQ1! zjGhj$N%bhXu*GY_h5Qp0AN})odlG38JXs!}EfZui^rKKekNz&NDK_k%s+0%Zo|;?% zWlU{6*!Yw&a(PIU9^`9EUsaPMb`)3IsZ8}xNSPQ_Wjio%sOs=MYqJ5_Equ0s*SVTt zn@K?XDuSHI$rO?-Ik#X2_Swj7x$NmoG}cb6bQ^c6=Uch|BkWBi2IsVIO^Cw0!Np$Lk*_b!k=W% zE7$JW1bRenu;0;qGBafbzPaMo;WvNoA^Al2%Xv-Yr9m94C%Z?wp6;q|U5+o3KH8^s z30eZrQzT>tEh(C|__=~rzHq>KX)aPS){v!`sb@RohGDZu*FD5%w>^8ZFvBKPb?^^n z1s*I#J%pt)9WV_y#tqqMUs&H%6}9>gc$kEzNNB^_H48nlUKtQp z`d|)Hr#-$wKjxt8K*Q)`bg7;*bZbeEyc>J*0B*5p6@G$cYtZk-x1$MH2Wg5|73yI| zjQY7CY=iv~B+Luj#6Pbm*Y~|hZmQY3>geaXXelw}2a_eu!9Usd-E~QOYnOax6K-+O zQ}(G}uqM&>jziN|P`#zEt^{cw`viG_|G7WDMO+qWj>{l#xoYC?H6q^wUo6apa^x0w zc{_cdlPg>_MX_;Ll@+1XoI}^8dHL;q7!J(>~)f#pvFLIAnYGyrikv)kfq_}``rzc9)_}(G^O*9oPz#OmI!^x3b z)9WaS`0+8DC@XBHew4dSc^nQKDc*RVyan6m6)Ju*gwq8;iLuWKr;4?D@ynVCuZo4~ z8XL6AaMC&Pw<@pn=j5sx)5(h9g2hZxGD6e9X0YpjxH;pxp`M^(rhIR?OHy%%xrz#v z${cI#u9;Z3Z+(_h42~NREn-v;$<{(;p)g3rE%HppsX_h^i*kLjYet0$>Z}3gFVzoS zE_PDLfbqn4z3465PaCS>{fhMxur>xkASE->4fTRd&KY_1#JbE3PWzBLGo3-Mm{Awz z?oeCt)B`bM{<2hJb8e;_Q^BwPrk>xXa)!#}?mR+fI%`1UO(;gC|1uJS{8=2=kjqja zzQ<|A3I19a4Mn3}C{X5e_){A3#`}a80SrBe$m;}f{{n=(*A-NNsQ0$?;0YTdI>*n_Dm1)OGa}lP>+DV)JGvyuJV-o(BoPcnO_8|u)p8#EM%?H4 zi4=-4k)uF^_>m4?*fnjp*ur=AI^DefpU>IP3D<*0p2$tRM^>a&!F@MqH&ekeC&_!N zAL4TW0nMv549J0jhH;I*;Cv!5U68aFLm ziFW_9rgwYWW^6udHm0~vl9OIZVSePF)WqTV??Ule8Xi7Av-rOD5)7*CabDDcz}NF{ zXwKlhC6E~u3;9#?y22SgCJ;-VwdxDx#_cwk*VkA-T;Na?E_^CeTtRjOv0y$Uubjsx zQ|zGRYdJeSJ_no#%zhVuw0i5%xINhMHWoHtxdBo|U9G0plL~Ouy9$?1gq+bdDvWWL zzyNzhb#4h(yA0&&#@G^K9|Wm~v1IJw0S;@30igIws8F88lZECt-JW{vbbCm)5g(vc z)eD2GS5p^{Fg>e%uq`9Z$g5TE(ESPpU{|byg|JmXrVwfJxZ?Es)a%j1%^g;W2oEJC zjaq+7UBNS_y^C>m(KwJOn5Ldhua2L&LAQshrQ8B-e;5}5mAu4&G$WQdUy(6dsTn0< zgir&7aFs|P08Z5xy-O8l4C@vW1Ow;U9r#nM2(G6|y#oOPM8P9$81qM5s?PfFPlYJd)HZT5M}o;c{zgUxU)`@TXCEJsT!1YZkvUTh zq;d#y4~(LSDTGC8s-LqvC}gCWVW*s<5ND9RR48>tCZ!0nN?q9|^jBflkYgm8LL6Bj zj8?m3q}Q__PN5#{suy}mctf)C`*<%Np`CxdYV~$Vg3Sdc`VGj6oD4%snOm?qQf6#? zpbF`3=3Y~cuf}lXe7QEgp(#%;*-b09JjgffUy)ihVqWzah*yQ|@U)V^g6uEcfmkTr z)UN8svn>4E?x==TL|v#>h_1cM>01;uLlAyd5UBnQ)3K3xHdp=HK{pJiJCT>TQ@2DaX$uk%o7#7Fqh7U7{L4!=1^cuE~lYc^&7%)sM;KP@?Zamy-NtMPayOxYt+!F#QOq7<|nm;hbaaY$WH2=LZ^1L)uM zmG}uJP(f0NA&op(BttN|xnR`*>@O!qp<+@28AdUkE|7o0uF0fiE=OyD*aX63`H{e4 zTJ-U-zU9=Qid&Q!SMT;~tXuar(1LUZpY{fn71S3aj?3Q?Rs?l?O(15#Oo7|`PnaCq zRUM%&*=2fM8Z*M&qbMn9!{tpW7sFCBC zdLXYHva=8NfK*+T<1!pU3=&UPqM1oXBs&qH8L-UeT=vl5E(t&S4bJgNkP&@XEsNG-Qv?MgHu2_A1Z7-q%4-iFM)K!*EjHp5b_#bHIBB+T+CtBHZ5;<4Uq z1{Y4P-BvHC!Wu-WO9E*IE>h?dW642svaD~D90akQY`kiDp#sRK9Y zVl>E<2?BBxl82?Y_PGQ1DeZu(zO%-pe@V?T>9dOI+opj_f=)5SqTewFBC2hzgs3kv z<1!}VbV?D6ddT1mMHw^9I#Iw{=_+N}EzLb>wGpyJXNf>0VxD-gISG=;8@4cHA5Wu1 zq=q1?eNeA2$_gPieoey4h(7xly+gJfIaSooC;S9ZLu6t*IUZnMCWU9c((!9lZ;`m4 zs#U)GHSkd{X@jJ0p}pox)MzQ?+#V!83J^&Go2(F3kLNCA68H&|vimRBgBbj8;RRD0 zanERk5P2&JzdUOaCQE{-^I+NKCVv;~9buICjsDugb?*tiO`b~=52nmRdf>zX;rZuk#MmL#n1mSawl|8DF{c~=E<8|A+($@gETB6B1@9Kz~N z@LwCN>?r82@BD*ziqkAlv0i|FBY)K98mHmnYkJp%F3sOo=@z(3bpro_&Utf0^(f|B&{%d81-qLSB zQm+GO%RlG8j-D_$^y^1jZ3Y>AIWOYQ)I~2NoP*~D*zM~8LN}wS=EXQ|LS1*X3dfp$ zBq$d0k&G{|eB6if9VU1emH3=C!dXL=s#!!N))r;yoiTrpuG`k)B7fK-yB>E7g1xGw zhUx73sjvlID{(B21Yb={w?oERO{O%Rr(Wc zMBTzS;MiWNS~cz*j2f3;dZaB$KPQ0`qRVGmN1qhOusXO|D5iO(qIh)ue8)>K>y;-{ z(LePl5D+6|ij8P!JXl6qPvM?zF14wuP4mjEy?eUEjsr>cU6MW~&-1LUky#f({fN^M zmUwk*8Ls0fZlrY!H6O<_RE&gh)r6`1C=$mo;B|GCECk`J zKROf4KhtrpWO_;*HP#xk#S_v4v-%pT7`w)OVH)&Zi;HY5>e$AYk*pz^9k!n3GzPnz z5NoT*T5ks@>&aD7;^|d&*UZxcF`dJXh=?!Kj~3HTDvt&?9n52*I?n-LNp>cD@^tB3 z$A4=669581+qT?om1~}dqBJ!LT*4%;tSLKuD#HE4@I=V8VZjOmAZY@MLF6V!eY z6+g)Kzh=~GFrAZM^dHSlQP&#)Fdazm3<2!8gSSr7SC>aQ4Rvg{|0YNY!oJ;c z<8kSJ(i45&t+EkQ%Gr_!f&$Z<73=ekt6jaV{aLTj>3HoEy#sTGCI!|~e(KEkG~L(& z?KPY3*{_YO^q`D|VzDc%ETKC?KwxTbba$$dy||?~=`Szjo5j=Go0W(2EqJl9)!{}( zz1E5L3lko2O0z0u?Mp63mc${-olxq>ofzJjxbLVdz4E_z^+b&D$&*8&?{pzbuLMhS4#_}N!2L#c6YbzgKyN6a5Fd@Y_iy#`^AIV*eQ3D;On-Q1TQ)WvhN>5ln& z(3ZnEH}Et(h*XtwtF#;Eo5D$&d3qG_6`29*QDt~9^p8AXahE~k#0G|cSw;27-F_yi zoM{`$8@_>jV3*K-BTtzlmNZ7>6&7f6`oc?$=tN{OK3&`#+-Y{3gcqZI`UNiEMi%1{ zlg-4!Q?ESrNkZOjy%aE1-7(+(VeK?lI56Es|{^cRv!u~Zd5Tqh_hjWp|Kbc_n zW0IyDe2_an$Tr-6Mo<2^Uwm_?Tsm*Ri~a%`osT=EDqdCB4MXqhisL*Uy?j7Ylv|Kx z9e@F)BDZ;{!+GXms+^v&KV92}prH65K6dzS6k{B16ku)lU;^E`QOr9XW@mvbMp4dX zCQ(8I_D6yG2s6Wz`>$b>k#h=rx)yMJyDIZ3p97j#sRZfp{j@>x6vf%j83gHGRF<{N zqcgMYoVuySG3RluzNjr?l%t3BE1xVLz1<@OfeH8z!+aT-bor}fjxVD7!;R=dYNhL* z*jOcLFJh7Q5C9gmj;XsPb=S~?x>vMzZhBv*7Uf}6!v-^KRYUZ*6c z&1p3PfRdj_j#=0sPOh*DGojlaaxZq=%2stZ*!cP)`qEr&V!iZ5k2CA)>y$+}P>^6a z5;XrXt`X2;1zJ87H8{P>Fg8iu4F57K!rGvJ(d)Y7tMo-@+zK5|0TW}?>?+$Lku+}V zM&#sm1jcd?cJOi_b}a$0<`!HbUNZ07_5(4)`3fiST1!NwchNc!g5VjhE^AzsQgo&v z57nS-AyaeAnHM82Hg>af`~5eOJbO^+q%Czj42t4FLEP0ni|~e`Cl-`I`&D?_To*4N zd#QUXs{vH~PX-kuwxH&0E;Ob)Tr;6FYQ2PD9M(?~=NMF2D1=(1dc?1`sv3MU`eY;U zE9tDdgB=Eme_9#t$J3Ml{zyW7#=n?L`6HpOr8$ou`au)Rbh9GRHOEr>51t+>Kl(A= z^zBJNZ-%n79{@Fd-zCMbDPJ+5}47+gH5S@fdqPRs&Mr1P5kzb|v?yr$fwlf@%+j`gH7Yd%?A{zs8 zopW&hBSZc_K)z&90cHcmEsi?kh1~2x((4j_7!XT09avDD@9rl&%yb0t8<-(Z#AG6+ z_q(#O7UQH6ARV>gQ4T`KO@&Lb`|{F~+Bd3-*;0TJ4+|~Uf5g$7@4sX0EKC#8NfM{* z#du9^VQr30$5@65eGa)D&<0~T-*Y8N6pu9lalSF#KLcyrKUgVif9c?Rz{cFI>j{%2`9Y*$}dsYy+z6bEfRftzBHjr1zHrJSSWnJJm)>>mN+*J zcYErrx%b4yKcb_oeNviQbVDDA@r&u!#WZ=D^?GrD(LEDAEUc~R$iGq)3<95eTO!3I z>~~grb@1JJ15qfoV@FC!Lb6|MQgku`#5`#rktd+NyQa^%)ml^1Pwwf8oft-0erWQ% z&YkC8E+H`TCT^YrrCNt(MJw(C4T#6j=k`I$IuK()(1^|eHpnW6>J%WoJ1W`RqBtJn zho9Pc?CEa-duZ3D?nbq4ydgkMxIWpCXc{I&gY0{!e}5DdCcWZY{whRM4|eC$4mI)>E99#W`D33R~4}eZaDl}U_{R=K{1V% zV5d@}rhr)SE}E27>xBqdJaOG|Zw?&@SIDD}pW;=hT47%l(s?n{H7DQL0|d8<%uyY! z+g4ItH2pnIe?C}=`3W%X?Px6L8kb*qNjOG2y1XG&KWYq9I_22XmW@dsI$9I~f*anEY;!wBh2qIF1a;*1C^50v$c-nj5bku&usm#- z%0d{!aPA4}J9*r{S`~YT^7Z7;H}*};Q1hRuo-RZuB|wVokkeC-ql5*Ni=6$+EFZ{& z;=kUaLGwXzst%_rV}YP}(2#888%f3v4@9+K&Niz}-tdC8g9u+10#6V$tn^=x3KttYiTh=4DbUqPSEld^4XQ}8~*Q0{=ex7xTg<(P}U z{CN3Dt@Ch>xm|{%X6Qj*=geQdR}lAe?x{U9P%>8|`r`u9xh=}buiOL<#kONcPQ7^K zb@_S&Yc|CJ#g6T%9$@3ewXy*6A9o2E}UxNv#4P<>4>Le z*S$F-xO}I0{}B*$d?O5UvIW~qSU}TQ3cn&K>-~urpPf2Af7|Ph3r2LldWc}$Ud>J6 z8xw(r2YSUbW5;jj1_xlx7MUj!q!Bdh{oi`_ugEbTTYbpU_3uA3U4*o=*IsXla$o4I z3F_||Hn2SRQ5!?Rk|JjzR_0-P#M7y3#r!XKiXGGS%8!BWF8t`yzpzUeOzAMm1D4nE zAjIGA+m8hWo!7f=_Yp7RC)VpSr=QB6e;d#}pwML~rMjpx>6vrwH2ui{zj&qeGS6C#ud6!C%4EZvumv zzSHjrUXSn4iH0T~d)Me61zLRfWW-_yM`;Q+@qy0ljX6Ij=BR(P;U5X~_>1&k4ErfL zN^hXyxZRoc+Io`M_q_mjG)rWO!g77Sx!hv9aIc|?Bd?4rMPXp`V|8UL(k57H>u*D5hjF7BswPbZCMIuV=C7db%# z0%`FH=!+92IAqK-i+FiMQ4>@qiUxOEmn}~xkyl;)s27dq^tFb5Oz{0A&gn&-?eU;K zi&)c%Z!Jkr(#K3nUeawHK&FG&BZ;=r)K*69Hmpn1RW;~!I4(<}7K*NrulMDUinK?RQHM8h>O zedoSop;xmp4+9)b={s`6Hf;J31GRFR)Ar{CJ8;^d}v(cC4^p(J<-%fcIt}l}Fk`@{Eixb(0=5N`yrWB}Jt8B5Nd7 z4Ox1>EeW;ROS*SuIp=WPq@%z64R@e6kQ&!1deuMO-U4c=DV>V?6>LhsA!zvUmbUO& zGx|5{q{;1t#&GNudiKTJ{yrIik=9D@O14Z9G;MKBEt-u$Z+B;YcvGXT~3>L0q<*UH^@<#vTtq#O&%5NNt8rlrANN01(5`rZdm(plL_e0YLL% z5d}avUFnLZ(};d*9-Dx5lnW+wnq+uFq{V8<4BZgTV?O|ZA6lG~NQbblAT6JusS-`+ z!7We*YXj$y?($DDrMLB?;)jsUpx@Hxumc4PnH@`57^s4r%ziK1pD_+@J3qg@{f7h$I_qA6ua zbA^MNLrS4&mo(S)&T%l?W~F90F^)uC3x+0 zGR4G2nf^DwHRsF4GPMP6#A05-v%VK)V{z)*yaxaC>n#yzoz>{Y5z0PJn3~9}Ers-c z6Fc@RcIr)3doO7}C1Z`g4wZgQus7yfv-Uz(dmGHBd5)1<47;?6$a!8$QHR6`IvhZC zR`&+WJZ#VA#)mAZ8UR_;P$(BBZ3Jr z5gNtmCPRvRqWICW8f<&oBSBS%2eNB@b-2HzX=z`|P^#wFgBJZJXmC(>*M9Ap2vR=SKa4b;Ys(534w>dw`PV zbWWgovQDKLjN#txb*p0#A#m%+xO<5Sm3MDv9c4qxBDT|}>?gfQVPG&KZ7lp-ByD53wFZ4;lD zA6+x(k016j-djq57v(KyJ1y|=?XIHRU59;6-3s|bGwW4ZMbPZoj{TFlsZTr zgfc27Yu~OplkhM{4~RxA@0jZ-!ds5M9(}3xdgb6~!KK)fPqQOHeO6_rWN%m`5)@>y z$tN7-ZTMEa)0Ls;oLbsVt~zlN6hNu9JQ)+ohj$Qz*{uEC6 zEe&1%7UV9j3O7uu|<>tnj5*1DSa zsGxR`yVXHk2J^Uc+R#M1)j3~_INwUUc9F{+n@HZe<($u4UA8zm?KR!*$!laCJ=HzD zZa=1XPEm>i5AK^2{WS`5WYa^NdQYgzn7q^I zBs~l^QzZmOqhDkvaH0!GjNfKIqv=xmnTETkU#1|V?n8Tg2`Q&lK~MLXy56hHYa$M zL(;}gZvKsYi+jw;Ku3_NMNnEQou?dPOsJ&ukkmHn5ij%Nz9AiJ;E;kWBP*4yqx(ya z>Y#JKod=H+E{MLFKBuR13I8!TUULBD?yV>}x2mOj&U>u!({<*4bJjc;)i&@y1I%+z z{RhE|Zr%Sxi7qRWLEOVXpUXn-GwQ9spU^Y4ioaKRCt%jCEb;7@)8yxo%6DI}sT9GDLAV*u6Z%UfO*fma3X$K?$1o}Z3YiJ!AzC#Ll_tho^dBHKxSNCs;iu@c*4V-%Zb*3-JsgLSHZCE#*l0N1iFW?`A`wU$i94)Kh zEcuYC-k+U2MZPJNie0e}!3P+W2$Oq_5n-!RA8kvZRZNw&r7-?TPch);--?}a&II=R z{nmdp*9}_yfvf#THZV_iE9;}5u4{8ldKE0@9Yuibv%9Ot9&)(;>+IEb{o)0g))|F@ z2K^|%kefxEfw*o~n^mH1Zqsv+JJl=XDfMmUnWl7t@jQTCKGp;s3~61|*kt6LtiZc$0_K_4EeL z0jrZlcsqSNJVb&TA|9Vp`PJE1*KLSSnrJhxUd3|GjP1VXdcq3jtd~*I-+pfc<9f`r41pBtX_0g*XhCz#Ph9Y$fD{~TgNUtUvM%Aw2S&7gF0#=tVDCF+0UF>nXT-2uf~^ANy?9?|saj ztOqiWzms+U^H=U^J+QpaM{$zrM^2LH_}>1@kCd02gOzPx&OFh|f`t}0Aem-<&J=y5!V8ZBCy{#=lmCq9pukCj5Bbzim%rMj?=JXiI?a0O%}42_vo5!KtxangE;8sh2dFTrQ_i~Tgedan6g`Zbn_6^6 znWOsb13x*`Ov~D{m_7gn}sxPXisG*;GRN75j^+CFAvr*qp8oMgb z0!2iq9hsoW*UtLRsr7XwzZ<3q-Mkdewts%ie1eQn-~Wx#1u8E-U762%{{NjjJNhcGnga_#9luBDP{9;qDVnAXD>O#?B>oj+2+c!SBfK;ZAYA$)pI7i2_SEiV7z zEXsZ%w>f=3p1d0eY%8K1JZl1uUx8IyqKQJQnMnCFQ-~=OsvO%1?C4${v;)vN-BZB@A*`N zLkG5wm!TO$fP*^8M)p{j-Ay02?%`evfRZ9>RD1WUfoh;kN3ZA^P1ID5;UT{f~XhMObD z9Sh-{9`VChkKc3uy}A%L;_Lvua^n~^I-#rDrnq`rogVrms4t#Z$Ag*LBU7tK`ZKXA zQHnp2lx_j_E^7c7w7y3;cY|E4@7N2YYKIH5>>v-hm$_ZZmX~e6I$LZ^PkJK$%Vo8; z%a*M+wE}C3TS^xT&4g}6r>qV_u_-xxISp(Fp$#9t&Ci&*e9FRt$LRh1TduL*G#j=RnB!kn8d|;h^BMGU3sw?zb%1pz|xBS86{7WQigH z*R}}S@@~NILjWVWl~&l$yRFf@>;{lW;dYDHjdEifo%ij#(mdY-ST5`&y^l(IT-bi_DV`bEdDK2}|>6c>8$gJD3X8 z6*!azSfSBlky&~H>bN(c>W3Wwy*B08p2xUI=%a>AVWR2QffNO>CRvhng&cOk!-8Mz zUqiuue}toPF`>nXnIlp$R7`DeGQCk~x^CppO9_JZl{O>WV%ff0yccrNZ^`Vaicw&b zl0tXd`Nxl1pD%bib=^O*3l?83k547$tk)MQs=5j z-l+Ns*jI-~M70bX^(vy58@`!}xLH6`OYZd<)6LQv5`%fC51+L1`-jeW<1e~A7Nd#{ zuf(t3X5{&&IHob|vO8a~j!0&Tpl6y29X_*7x^d-rO%Q2FlIu8}f~N_}9*s}7Mzrl( ztuEgyn9gEwXvbg3$`sU&Jhr@aWJK^JJRm$nuJDB8F_b%y>nS&u| zfgJ3`#@w0%5~4 zRWU4PN%UAI#`-}9Y)exy(!HU#BgWj;9mHZGHb79@PCk5B9I+c%F9$|!39(~GEU||4 z`b@YLUU#g?rP#J%JW#RbiJS?@zLjZ>$!pwPp|RpUqgbTvFr@=HM5-$JLpODe>CFNL zA=1RSt`h;G>fD^0XQw7{){ZlNt=&(6c^?PmOkUryMorqB0n>js9Y>D=5zf8ACuhQ+IV8#^tPemzPQ;!b z-Wtn9V%;f?z~#n7!U~;>?WUa0IT6Liq5VsUc6f+W2!b{pU|FP5tB+J4PUq z3A~AoHThvWKT<7xx|~=%8isV&9^G zi`QD^!<<%;j@b6atBsyd!hr(&O!tK+4`T#?S&s4XJ8=N4(xMIfr5Ih$9P~vuTLt^! zX+6tv*_TPS_|6BwwoP77OgF2>1!S6`xGr9E(~`MLDSzL^BePw6;EM5PTGuP zdVUROQ#MR)Ad>RgP7nmnpug+c7SnS|Q+$=;xO5{rIOBT2qsZfiQ=No7or-o*;L|r3HG7hX%3Itd;Mgq1TN7?YpyS z-|ue+jGps!4r!l_ zXglIF)8b^xdCEA-kQx`|-1hL)et7k4>?52HlsHL%O)Y)#uIBa5?pZ&Ud?tL_sJ~&U ze>YXeJrSP0OI;55v{Hve$wrvA(U@8>aImJ1awgJ<+Pv90h@!YbQ?JOmwS;qbBj9!+ zDv_9rF?$!^t;()vQ5K7(B8NYjg3HJ{s@)um*8IaPgSuB$L-if|it9uQ$Q57A3^liuzcX$t@#m)Vdfi{EbjJh60ZNk(>X;k7?w`yjy;5yZwnN*Ug9j zu4@7j(>;7B`c{p+-rnHm&GhQG%K-L?Zg5$N-u0e48Z=QQ|0E-PJzG;Y^~(h3ms{`B zvotr6{kK}ruV?A12~CNstk-JhGzqE46AwK}bTx8a$Nz1jjqL~9QDcq}$isfVKCt#C9|QdBDo zebzc*6`Z!Bn%fj@1oa5-OF&@8?vFwRdjV;X28U+5dp%dzdaD-vCD)qyWiV12Tmwn~PFzhx_I!BoQ_1@Y7d@@7Hl9lw7cP#h@{_ z#?a&}Bj+AaI{Z9@OFu13a_Tv`-B~@&B-RO>KjWLIB*)$ztC%>mQb*_2j6=v@atm_I zYRjGxc%bU>wpK%7>}3BvhoGs6V`JkhOU_3Ts>kjt z>ujfupqhs4yj3AS)(hMsJ(j6zUza2nvW^Z^ybSt3vw(wYG{{$9G;QslZcJ}#=}FNS zJ>{5ZZM49(>y^(eZp#B=w(|mD-Cc~~aZABiU+YBe$^h-PJ+&**jt#w=iNcvExu{0F zL2(nDc!k{)$M1ha4uE0K1^_$u;ObFdBC5p&QJcw84ON&tdvAY>y>trM`4GI$6Cp|k zPR4Kt;)gett%v++8&Q6)B5!x^_1}|PELyVktirOsaL2RxW)}WJBSL0N3ezT5cc_$GdShT2)YfQ=dwr{O;jB~{v-ETMxMv6im z_8xy0KN=-hjTe}D_RGM|UxPDyPJ4QY4>(8l*VKt+Q*0Q-1kty?a&Lt`Z1%BN@L6FN zcI_dZbCX4y6mY)fOwSl|ZpDVO${QsMQ%{+)+$#PBXVAfozJ#Q!1NX)7?a~M}&aX``%S*HCfAN zT}h(m-TGf904%fb+(fvhgXH_oCk^ql7jDwtGll;m@rjb2(~#LahRO4e;$yk~e6#xR zy7@H%a8{qh0KK!6Pulo+-h9%=CvAY<;n^qL_=KXMPd-IgH}}cI0s+SR2aI+Jy5>B@^eH9wx6S~>QQkzRxF^~6oT2CrRyuJ?Ha2A(jD1gsQXc@+@b}HD z-QKgI@D5;w>Cat7w3Oy0A%zA*-e7TmdUl=z+sEd=P*&)Z%;se7Np z?*rC~J_|k8&3#YrJOIem(;G_0-t(ZJn*XHyPo@Web>gRq_X&1Bfi5r;HvK>1a^6*k z0sr~|hkAcL|E=wT&fU%J6u7KAW%I)!QBQ$myBEy=c4y!J(c87hG<8Pt)<-oPj%|v9 zNZB%+Iwp-nt%g!`&JoPEV%U_xkoTk$sY{es3tV-Yg@pjIlptxy|>MI*x!`ys=SbTP=va` zbH@a2v0t8TolytUk7k=H{r@bPePo<}IJro07@yK7h|M&_d_A&YB7CJNelt7Qj!@|ONCEv7qYg#{0 z%D~Rn8gpOC@|ZsOTsrF^F}t|PIhe4Bc(WT!@;|nJ&5H=*%EnXIjq^AA5W64o7 z$l;QtR;xw!l#Bm_87VAG!DS$5(D0!g1i7cwZ6@GoR)i4GVprSXP$?X3mj2k>+^l^f zdny?oqu?|;)>x)xTJ=Sji2ih<+Zk^7JrMUs7Gvr1;-XxefwC@ryk&nCj>>U+XGP6~ zJ_FbC(A@rY5I2gh>JE-7nI4hv(oLby;PVamvlLqSBa1N*!oe`pdXG!h1MPGMO^F=6 zYvM{Ci-K1lm8b=R2zo#pED$c9^v_oLw5Jo0!XB!v71Zv>bKQ>Xz%aT3<{;Q~ur^~o zS?s@tyOP%km#T;}y5%A&Z;9eOaohADmGNpIG}Qd2TMs+Tg}tMI*NS4ZzM-l_e^MA~ zf!c$DAsn+IwJf5od%38VVLMH4r1q1S{TtacK zA(v2WRdd*rmb8e7g3BYdzTFtPaG9u)?q=e-z?%3r@b_FqR_bGNoZ3&B{cnlvuBOJ-& z(5gvvn>DqQm|u?gRx7PD{>NDDYx(P-)FRJA!A>UlRCv=UCz^lXSj~u5#*O)k73yOu}un=$K`BBp6b1?m^LTjmHK*#zg4E8qfh2mB?uhnVjp>~CjnQ>L@> zRzs2+b}n*NRW78mY@98NRQcgclOwfklL=O#+rj6#)ZH~8#$h|jZ*4b?{zq7a(;@m6 z7}qXjn3RPJEWv~FB$B$;H%F|bGOT~3>sk!x!)n55lUt4uyU&1#$OAdr(y#vFp?=yf z!j-CJtVI=dUZZ9b%!PCwMMDPb7f_+2Jn1q)3e0#p157fDR8v~D?1=BWWXL9gA2bh7FG2cg&-az zUh;2H)s{NUDnK?To{_%ZMw5+rIYI8LBS_3ivi|TwCy|R zdd;Bn>g;LTGhHL4)p2sc-r4=2EZVUhVlchMavmXi!NYTfb0vPK)5|KKpIYEt3BBiZ f__# literal 0 HcmV?d00001 diff --git a/documents/guides/images/nacos/config-import.png b/documents/guides/images/nacos/config-import.png new file mode 100644 index 0000000000000000000000000000000000000000..396ad2a7e44157ad07c91ceb8f96c0566d2093fe GIT binary patch literal 16438 zcmeIZXHb*f*Ds6;A|hZfU_fk$1r(H$Py|#!sv?~b5D@`GXi4ZORYi%45D`M)MggUS z-bqB%(1UacAtEJ`kWdo{A#h^3|8vee^PV{$-e=zD!`U+oS9Y@ZTGuMO{MK5JEzJ!j zwo7jp5)zUyHo9_CNN5XPNNAJHwylC5Gg5@1;NPZzn}+&AMV*JI1s{Yx^vv{xgi282 zYpx=K&tkqt_5ngdl1;z< zyX$*qbM`ijpkNNE;>_vg1 z_c&`E%50C3M>HSYcK+l8iMR{%tkuFQz9TGjHXtJ)qk$BlBR8$On9eWd40{s_XNP#{ ziorA7Sl(2LozuPU}f*wBlyZw-_cGTm8s^9|@UnEiqd)I1r z@2=m??`}#VHah zr1!aX8^PB*Jjy3AwOyD{y8d#$LPQs3&IPhAf#NNMX->|0nAU`3$OT5O^y&si-b-Jy5H z@70BG9U8IzV>wPK!f@v2Oj%igRFP~i&vkdfc=cV&fkrJ%q*h-1c~)yP!~Cy3IiKhBA(N@rC_5bT>%T(l4NHUU^G_VDq`mQ|7Jy4eD`@cg`jY38~VW$`~M zKQPvhH!WgAXVj|6esT;S-u)0m?apkxV#LqHFi6S;$4&=xG5R%`pz-l>dm~O0EXa2v zu~sf)WK4EDJz~`^A{`cDNoq41^}YPtKR#cr<{MIxEsyoWRj)rfdFqcX-9D`c4t=Dj z-LUxVk7xZH3H#TJK3Du}aYvPmqJV$2`y=Z3Uo-r#>1_70j9eLu|09E4ep~bZT>^xr z9%lYs7>bW<6D)PVn|Rd!XPqDP_)w(Q;a^Lmpgm}c{@=~)y;w$+omIkwxrEDwd`1fk zZHfZ^9(R0g?V0-hM-k&ISR{_JYRt%=CE!E3bniml)mS7#dA%$W@28CC1N;u*@XO(T zL%P}=cSkIiu=WHe|M6SgAEL#%&6Jq|f^V+)kCO*YE*FXXl!w$Vd^lJ%FfSL$rS$p7 zhjA&k}=puIKX+{4wkSDQp5-T{gnMi3oj!CQf-XPNAmT+;|HU9~~_+ zmQM(smH8u-kBN)@JqKoJ)svDzjH0p_d$9`6;;7-0_{i}`Z8CcozD7&TqQTDP(L0jr zSpHScn{_|#9h;*VX8Ds?HC!7_?yejiKU` zm&qM2sG5nDm@Os6OmQKhHUs_lBR7h)znULp9tz!K5Z5Ae&_7<*Me+W6;wlnW`Op~1 zoYm~7mzu<@O3?irrqjQ6M(huJH*-IoQGVCiI|U3VqJ>)^2Sj*BCD<)0-64qvmed_& z33{J;+z&M=Bfx6-@uNIL9hiIV9jxTuMcL!`Yr@Txv+r#IEWJu1_mQwg@sbJC)lCxg zTe7fdmK3OWsx#X(4q312?gD+r#|h;ty?_67ylBgAj^`C2pYW0KN*k}`eRI?ouFMh znoE)@dhDLWJm%ilKRXr=C$Hs!HU`+04&v{V?7#ZT*ra&&GsiTNo?4Je68VJ*DwSVi zJhQp}o5KNjuv!MB za32T_3+4k0$R`=!B%i!f@_oCh2=JlD)63QUR32lR=!_$lXGR=k9_vkkHf5i?cuqBI z_xX70{ezOt)Ailga_bb@5g*L*nF9^`K8RR3Gt9*Igfx}rLvLJFCKcM^A-$ZE{s@nG zSb@`dcpl5mFYVwhj3XOO$e;XJ&`j%?>ZT@ZhGt{Zxk@nhIfs*Xc_i({5LGR|Mm z+t@N4a;r6;iCT42YT^y}QWl^Z{VXn`gEq@}Sp}&Z@rO*K6bx-rUCnN&v4*U`D_>9-kz^!_E&eN)T+@Ik2A)H zk7Dp@rb#03I#bFNoO0BVgSp~~>QcMzX!$OE@avGTccqTKrE;$FGqbH_$EXfUkf@xd z>~K?Zj3H~qM>JS^tRhY4Mp*h~e4qvE(_-AV!~10<>G+RJik25^5LdDa%#&NL4*#;5x|F|TDU-37Qb_V*1amxHNU zMS;cEhrTS?&y~V&KAE6*X=~*rcu5-q-c3Fk*`1YJ31AnOc93~Cq1e1mRaagjlO|SKNapExS6Xpo zw9P63a@EEpMt|s1kYmEmn@-=wk(&(i&go;G3(vjWd4+fR^d?0K?LttRNo_W3(3v+8 zDL&7>XDOAXT3{%r=FQ9|cl1*RNcamc2jJIzmG8xZ-S_vpk>3;8h;2}?VamVOZo znx66X1_i*0 zRa2eeGiTa%uW|}SMJSwb?iR8t4wf8duYb@+$@Y2A7?a zP8v9NirG7OGUeM5+uKzZrLd>xl)+N!kv4LdETEB3n`Q#Ng0H_XI|BlotVVRJ4L9LX zg^Z7t2|Q!HciMreFYsoqwIYi^$yupB;4>)IdO1Kh+-w};n4fQ~G7a3yw`HkzRqH8?_dg$s|Z;tu= zY%5y>dO}O`nTaKIKSS+G_UOL1Ot6rw0eZT!&M|TWdG^>-t5%KoRin;++N;x(?+Q^E zk_dY+V<@EV@+@RxqAkim4?k$i>Y`JH(Aa(BGR^46!U1AGfyHg;6+j=hE}A>ImOZ=f zei;~^Wksgv#U)ZKn|%R&rE3U}AxGws)&)8sm^|%NXQk<`z4xl9dbWzrR_x4d2L2cZ zrJOsP3+;PH^|80?S`1lTX!FZ|p=`3PiSAA;R^8d{Fc?B(=v1V82}wIgR@IBSOEKlH z^1Yxb<2jx_2kPo)R>ZE8`{~(n$vm{QTDg+7lg!D*r>}OQFBLO?M5sI-M$E*UDS5vg z?eqUyIor#(y5Iz{jwrNqBbTp}y#wk;Wr$%w!BuF}X8E*{^zP z6X@t0uhhSLH99rZRqxuh6jq=xM*wn{#*=mif6R2g+L!%AYRZj)OTlg((pmF@QriZ7~R!rntk7p@7X);#qZK7+ML}dvi640xIxOEyF&b-){NRSl$Ey6&q+TL4qwP#`WTdfHW-+#u}1ltZNd|=u^QQP~b zTPwu|-OUtj4}LJXP}F@_#46|89mb9KD4#k9&{yVd8rXHH0*;mL740vpEfhVqT!Ft| zb&kyTD_@Si42_hf;#us|ykNNIE`bo4-c6fB>Yk>Tsa@Y)iMujs?EV2FQUp(!k;WtOlg~MSJd9jkbGf%hMl~@1b%=& zYaD=P7gsO6kFjaE#P)nE5#LnO-cyww9({C3lCO~b}2>tA%g!z;iibOPA! zM|87tX^&VwFOKBLHdlAs?y2u?__%Qx5 zq_FiB+sKb?!RU%SWYw=(g>g}Bz(MM^%uLD5p3jy4)PMDvMYNF(`o6QgB9$dIq=t6w z$jp4Nd?s!OS@QJ77{vTIxS_{VzUhAO&G@$xBc(4xw)eRlWgEp$LZ?oVuNjd8q_1*w zoUI6^=2Lw*TSx?6b_mfttTeQ)Ux|rZW~YaRk1#X{igklk3$@4FR2Io0x$ynNkdq$G z{qpAq1{8;KJBt62h$D|wn%sc&9_d~iIX{%hMRbu*QadBUO0c0z zz$rF|{7!RL@1VGE-x05<4z9S;k!er2pDp??0kBVfTtz)?iA?#GTKB#vthjxli>(5d zc&<#kwvwWgaWv2H&MGHl8M=G8(AwO*LH6On+VJnMuxA4pu5mm|h7MY;b&mb`+2Dt& zA5p2)0^~hxPfka-%0(akDm0~^T2WDy;83NNC;DT~0qh=}^Ym<9JpYC-OuD+(wvTsB zL$Z`F(r+m1F+e@p2^h>aSdWQWldW63FZ;2!9brg8sJIz+!FMDjx<3rO)g}pZ_IX%n z+rKF}WD+p`AP_jfx@B&U+C4C41GNcU;sME?{2)Hkyl@d>K1}cx&R}F+4EPzM#m7w zZ7sRys=V>(_0A9dd3l}+_aP?Uy0~B)!_v^H&~S04Lon#r4;kh5t&O00>0Z*MW{TJUpG$Y8KjL8r2Nh;0VN&zO3iG&^1+^AX!FZph( z;61L@04K*9IGW(DnPn!!lug-1FVM$%o2X+835R?(P~-qF$2j#vAxZ3FxDjJu0OFdP zbtrh2qeuSgM6h)XMiD5Mf@791PuSX24X((39A*QK zoK6o{oto~~6YZMnV&$O$hSM>XO>M<|f3L>8@&en;etV_#k(NM)RbY-3=31_-kPFQ- zHmNo|vt>)t^OU|F2}2a)crnl9@6wMR&VQ^1sxkH-+#b56s7J?GL)qqL?7%}#>a|m6 z9C2?)&OhsgtaBJIggYU;*8n}h4skL1 z5J2fS{NQx_X`4rK6UI7t0z({G7U!<5o*}Hu_{lvdaA$y~v6=WADLZ??00$I#vtYnS z#0x_Vdz{2+`%;~NuWF_&&AA8oqcPagXvLkqn|@8H7NbSah*61v$n4;zspBHY%yqYB zO8$X{T(&e0cKWC^8> zV>2SNHtJV%b!qXRboBr5cTi6@Sc=+tPPb)i@wo|)^*g#rqyiJ)cz(C_Qg49~gf%I9tQrH&n$vpI|BW_=GfD~tQuh7*UkIWe*6So4TkeACH#x`D zo6+Yq{zBB`w)2Gk&KebST+Ape^+5aMU*9&FNNN9w|ETj<=6Q4dNi^u?km=U^wVe-| zXno5N*mBb^&`WOfe`e5M2|EutE*h{KZ<#o2{2$8uKB?o|4zzA+|Kg2ZPp3$oC~jK+ z&$O!tSjY34W@7kr3Ub`M|7o&Mzbt3#TiXb}`Y(!x5e8t6K~0$??{CN>GivR4n(*<6 zCh4i;Ybk`Vy<0e!M6FE7cxreUs;9h1JN8Argdfi0&!>Gl+i%J6gQtdc@ zZPIq_xo7b#iE(2)V`1?@sT7`lF}x%^Dl zQ_$q(i+^*iI<2PDjX1+w)TEVE82^BA35(!}Z8PEmPJ(ZV30>Dv%h3aE>K*!8a)XgR z`%ge4*GqbV+_(ExKYt3z;d8aN9}e7zro?7uG+q_Ylq7z=cu(O0FebV3_bMuJ+ce8_S(J+8K!L)^q+;8-v)m8C8*H{@l`8 zIlmX3`bweggPHfOHm7*_tWT+cTcsvSpg#{)z`j-`C;r(wZNDiJ}4PsT}K%Ob@<7-p^m7~O-?Z$vbSD$bcTmdqt z9DBeVvHZUDrRQ56<3pvA%c+WM`8J@}DkuPGsNvK`KG4uT9b0Y}*S^R3K%4sUrng0S zotDy4_^lm2AS;B5QbBxV@U0^c%-tM7({3Yj$PkDv-OYwmF~JsEU6BPE4lOtk(+}^- zEnQ3iR^D$|3et3MuSlz2_gP)<76i5!J_J@RtF~Q+uv#Fe+qum0T^w20)^!od;M1RdDTQj10JA>raYR3v z+p8_*-{uehbV_z5CBFzfZcVfX4wSelU?9`N8U6seSG+~eg+&E`!!y>Y>$z6Swpu=$ zJ#^aRZ0(h8bHw*f&6ahSXffz8#)!o+BMJ|m%$^~?lMR6rk((pH6#qrw8EEKhck;Bw zYDgaQIP*JMtDJ0kuNBUC(cb`gVq-@TDSeiB&0;crv5r_b?U6oNd>wRxSnWQc(M2rI z9i-m+Sk5b@5}GbVwx=7+T-X!m9d=OLQTv(%J?Mgo5=uKDjDp7YJYB}XX+X!E!wHDj zsZ?343bxnY%0Bn@uus!AZ)ogH}tIOK2JRbEm5?HdU;mE2i{tz6$4@2DKC(%9)JCYn;b*01Ao z5C5?A*!}EmSMDg2b+DgUt1DW#F!lYWh9&6B+-ob)SIYXUxE`I0UU5-a9feop>kmwT)2SmUuEL zy7n=hGEaqPRl|{>zz+=MXC61(AS?2=r7}a>nc}d=XWy`|v+`(d@1GymwI8ZL95R?Xq>IWAnTGBkZc{QGevehqt@`qt&ky{N)6gPc z<_u)!h(LjAXN}}_oZ=0s23>g~oD##)+=OqB6Bd1exqeH&HQQ2?m;?~w6gH?hE?MJED zaCgB$0Uq&g+%fPzuM-h$2+le5(}-p&N&nD;2^_6D*ef!9-#Xf*F57zRP0En!N+*ta z`MO~zS`HX`2^{Q`>OWu$jH=A0N7rh7`jBe@>a-_1To@j@1TUn5Q&ixTm_W_K&Kz%S z#QK|}b^gT#V5P0kh-^r8uL1PfK8+Eel(O#f;QRR7TvyB!rh6OO-*7l^OyF_ffH_vJ z>Rg{S`XSx3?P%F$ffYsuTnG=}rUy2P!ph@)X3v!3;@vb3XY+%vp66B0EMEw!T}UH7 zD$&g`4PKadtSkB@Q?_m4?xr$$(LDf7J7=w+;Ic;C68E%y;`=1o1KXIYft@?psGep< z7$Dm<^r!1hsfK4^X=#K{Kq)2NHY`d@W&hK)Eh#N%eEW&~k&7ECgoe7F`{~zSh-0o|NgcZZWq=BX;kM#-d== zCe5>NH^!9-WR~s1RevFdDEsMorP&oVxo{G&Q^Z@89bMAd(u-&fGi<#L8gZvp%-)Gj z1oz9^W|d%1GSjCCyu{+bymtn))>8I7rf#Av$C%a+*BP&V`Ylr@D&KLm@!T`^i^NhN zgIH&ego1ca^=TIq?b$sE?4M*3egV2$7wdhAF&MI>J+xobb4b7Tnb+hUa){{AHN)(n z8Et$&G4O;&{B&=P5jG%aD?2FS!>cMKMtPF>-P7efHy{<~4n(#$uTSJyprjgLoSvn{ zcLEoSS+`3rbqb%T5U2aC&Qw2lC;A<_c`ewf=mEq>1CbWDI=EQm)0A-sBa+&G7&X?> z&P!wjxMjk0d8f-;CJd=qbYN(xQ#doYvqPTFsF^+a285MqhL>O zg!^ClR7oW|B1hb-j}Wg^^OTG%QSPlJKcZ_jg3ii*uilM}#S-SPtr^9}z=I`xGc#o& zXGEhzb_}A_!ryW9}C9`R=C!tFqsa-`OA!B&R*nOU@r$1R!L^}4_b>R)eh!qKNRBN+2z-a+^4 z9ezUTj7Mj>nTz>X5c5brTRk_n^cdRP8W}^YRz|Z_&LY2?DT_n^iD+%-K+3i5Rzl%*)|dU zX6&4nO{Bkok5Ew)oxlgh9FN{b-*iNQDDac~YYzY|sztA1J?B%csdnl~fG%~c60-SD zQ>gTD0KP|Ny%K;c2)Iv^T8#008_r@U|$IC_l*&*&r{)>wSHVVl0Shcgp{X@R}m|{bh!?yU6ykoSd4e$HSWatxW)Sx>g=z95!cnIC#;e{oOGhNsv|JTDQ@RCQ4|h zZsHLqGBc=It)SXqUpeMBTBEkdZA%i`J8q>m7x^2$LY*f^Lx_0J(K$YVb)*uKrtoRiVRHOIc7|VH0G{+ zVXi`XZo6%a_`9%mRWVL!hHL%%czcp1qO{X(@-7?>zsU4XIT5MQGd!6BSOmMt03=K_ z4&3Tg@5q#mj~&+nvC0g{;`?_$#fA{F*#+n~eX2i^HBU0%j<2$uKp4U(D-?)2Og}J{AdoBg^57(m~ zT{)Yuuo60dXvyYO%Gll1zUi_ttJypT#Nr@mKZ*{355b)As}6NkQ*P0gLEURnAzpHE zv4L;qm@V!ui0h&nfpLX*L&D=t_JI1XlOHDPHK-{0AJl7@6;i->a6vJKhf)HC%XZpL z&)Juqw?|y_z6gxDdx#Ifod;7jO+hP)qV%2Do6iF{{j{t3KN0PD{XL?ovI8k&X>Y}U zEZq%rG9Q&?;L3V0)cf5$=i$Of#0s3`XrCMCa8u#;bZl<7n==;XQ$Nm`2un&&_;hi8 z1g@diK($zkILINLKf5N!fq`CRVTsJpX+LbbqZiRYZ_??`r8c9)OQ}UvLjI<~fXqxK zVuEJIM8HH3%9xU<*reBBINXhI390ulI7wp`r>j;ibG z#IUnK^wk@|fS=3riM1n|kphJ52PRM-*n3Zy&3Er^DgXK1ShN*>-y749PkL>EMl9T~ z>6W)aCOk0@$_gAg4XCy>38!599EmWS!D0Yth6lLXz=K%z~W>TD%dagH0sXRFfZ7b{hKh#{dT+`qsnX8ZTpyd9sVVWTAWs8}$4f^BS6 z+n;J2Fr2Q(3r}2_vZY2gNI?DxQ>`z49Ztwv_ph1gI7x^+fb0&iwu6n{Sl%!^9>(M5 zbnjT)qO^;*=RO+jv%D*KcQlcbC8DPtov{BhCOhzcyIk)k4(eTevL;5n)0X@z-DFo& zZP@yX0Ii!Q-cKBkhe>n^J3*J*Y{)wFQR{}*a<+>zC!jcLN?VkH!)DgqY1&x^M!rSq{?zidPZ zG>I(x3#t5H;ICeCrwA>-NpIMm_0QM353oqX<>5kXxqJlp_sA~-AYO+uDiii*^RJ;_ zksI`Hzkx_wp(D)~ef1Ghgrp~B>xt- zZw%kP96l68EI9#d{)qw!5*4`Hgg*iWLd#fPk7cb{MUrC0KOQ4S9o`e^Ex;uWhaU@& zNs<~#K61%}ExD?s$T)u>9am}MO+{1N`yppf>V9MYLJi$={eI0H`kI&$W}g|eP;3SX zq1CON1s*;a6(SoGXDg2w z4?3P-IGLa&_Ck0mO{Wq4rSaNd%)R~Th}i%ZmO?5vSqWu$W_USn-u-D(;?-@L7Qhl3 zGHfUs;lO1Q~+gifSnyu{x)jc74)2(}Wmpy@gPgG~L_usXUtbeZHaoGXt#gI3rR zvDPR>CcR;BUJa$kk23cc3NNC=(|ZFY2H^`YyigGVnJJGIOXUdu&e>PAw+*Ld;mS^yn44DkcA1C%mb}=qn+O?SF}U z+%0mq+DCa$D6-nERJ|Ir4Ty+zal70$K4%Lb8Y&8rK(4c9tHk~la4|WxY&qAMr3VW z;Is$6*YA!)s)v;;2D53`u5T^>;m_w>UK?fJT0i9S)Qezm_oCCFXihxk7*%ILJKuR@ z($)fQp@YlSyYe}kJ__E01r1<==6G~=DoX}3Fratkik4~1-Ta!0OeIt)E}`A=On~*! zq4L~XYTb_%)|G`-Fh!IF%+2|CJc;kQ{7`DmbNOvV_?OUHDvu*RSuRis9Jvf!;|F7*59?qVBxW&4fO~&uBd}h zlNn*MTmhqY^F@K@9z8M~eTI16UU95O>Er-9)=r#0#a3^>wA302qlfC5B|LiMh_o7z zZ_y_#L%HOMLjlgZ@}Mhw6H#=F;41%Yicr!WE^C} z&&%BX4nTho(E|sz`GQ=gPe#|)N35A_H1Omg8(DAm@7jfWlQwf?Ut`!a$>x5jFk3+x z--TIepACeB-TFh>QLo`m%S%T0=kJBlt1$%wX|%IZt9fKG`fcgA;M^1U@907iRgFHc z@7tYuWE&l#HhVHUMDyIyqq3LOd-VJVz{?e-@S&fay8YKW`Kk~)hu*f|Ejm>KtGX( zvX`La4Q?_%y+JWp^yCfj)u8uT2T#XoD#6U{P{CPGe+0msYb0xLAgdeeN7Kc@N;@|N7<@K>!w`WbB1j@gzIm>9b*py z;Hepz&H((&%AOK^OIyIhF#(t$F`Om>-?u&q4;YG`YLju$`TeT?W(8nWm?+VCcIJ{5 z#Bms=#c+{r^K#OS$K^`=^4bJ{Z#{64*}B79v*;41w23!+i*BsKkQn14>zhS*pPz)J zuEHFYpekqeq8Qz6*qmr*i3Fgk-Bu*55oZ^WehzxU0eXB<$OeQG$$Pmb>^P{`RQ;b< zZN~vvZ`^UnFG0xg8IUfY4HXnY&DTZb@(R}8JZ9Z`%=H%d$}M$4(r5i>>lNekl6pYW z?f3Hz``VJH4J2pEtag3kR}|UgAn5S3MwW6t2;joAtmwdgu^WJgmO9|XnJfQNU|1kT8;o6pRMnK#ug3Ry=ptd5Dduv3APhP0W z*7<>ms$~Q&VZ^5cm&W0S$0T~~J+2}iyw}ry9}QXW&Gae9q(HdIEb1;niPv(!8RB_2 z16`*yB>AYp`Q1RughL)Kyaj%~q4H#7eYGTtS8YF)>`&)2eLC~)SS+eU|kW1?h-G^L?mY_=`0Wlo>P5o#{@M$ ztfXJwhQUnKq9Kl9+m;8;Q~X|-+xSDR^uTD{{#3>AEZ*?5*_*HrGQW(btoB=`EKYq@ zI*IQ8>M3#{-A_s%gcfj{NT9jtSVh`=}mT1Nhuv7#i=u+EAFZRIMc-z%Yd zt?EoIDUtx1XRA`m{061!4DsRS4c7$vno$Dpu?_BRn2uGYsITKrkJkiH9*auZ3HFg9 zrT~kIM)rK!`Se5=PbOVHj|SUnIN9M;Q{t6t0n6yWe{a$l{1#oxicU zY6O5b9Lhb_<8%6L!tY{2+Ng+Nb8~uir>t+p%M$B|*eckw6#oC*xc(dLo&Qf3hIahg z&wsU`6}9L;#ZN*)hjsoOs08OWk-w=jLPB;s|8M7ii9iPBWa|jLB+%?^=L#CUtdIP` z+JMG+vR8JfZlKNa-yyexIE}1ofbwLme};B&J!t(k*C2&oQKn-3B$Z|ov670Lgilwv ze{}wvvGPEB{62E6bDZ+nV{%r<5_HE2lxOl>R=i#5b)CP(Yl1;B>Y=uR7(L5b(JDpU zQ1oxn+suWNuc>^O0gv&Ec_!6G6iSiTCxrLvILf$Y$hT}HNpKb6)s2tb5dF8Hm$S7- zwNMUBf+(OqDQt?Us2lb$f75ktaz*9-1JtBDlBqCqBcA_nZC_}tM8_DbN~$?~kW{&h ztP0=>%|=B8E%Bf7O?gAC&jZJ+dA>@GP6V;8?R0KnvHIUrvrydgkM}wV zE~8ZFGIGvQk3!Yc&88a7&7BDNH$zH@6Cbqf;JT$&io(?(^@8Y$GcQ6Edz1}w%CaEw zaEOAUVakn2s|T5Qi+`!Xp6|SGP|>i+G$@v&J?nB76v+}+-(On(8M^;N6CiY>`)HG? zofIK^{aupOS84zXe#_S|obdOKA|!Nn+h0WseT@3Qoq|j0e~CaI-ThDHZIj@p@;mWS oNXSL@KexC4^J3S8EXKO-?yJwJ587n1f8C;uubN*e(szma9}e))%K!iX literal 0 HcmV?d00001 diff --git a/documents/guides/index.html b/documents/guides/index.html index e5a383572..c7f6bd085 100644 --- a/documents/guides/index.html +++ b/documents/guides/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Eurynome Cloud - + -
    Eurynome Cloud

    Eurynome Cloud

    简洁优雅 · 稳定高效 | 宁静致远 · 精益求精

    快速上手 →

    最新技术栈

    使用最流行的技术Spring Boot、Spring Cloud、Spring Cloud Alibaba、Nacos、Sentinel、Skywalking、Vue、Vuetify。

    功能全面

    面向互联网和企业级应用设计,支持手机验证码、小程序、第三方应用登录、证照审核、内容审核、企业人事管理等诸多功能。

    双版本支持

    提供与微服务版本技术体系一致的单体版架构,无须复杂的微服务基础设施,即可快速搭建基于OAuth2的、前后端分离的应用。

    便捷配置

    共享式、综合性多环境配置,统一化配置参数设定,简化配置参数修改数量,降低修改配置出错率,提升维护便捷性。

    特有功能

    高度灵活的动态权限配置,无须配置@PreAuthorize注解、使用antMatchers等方式,完全通过配置实现方法级权限控制。

    整洁规范

    代码整洁规范易于阅读,完全遵照Spring Boot编程思想,注解丰富、配置灵活、策略驱动

    - +
    Eurynome Cloud

    Eurynome Cloud

    简洁优雅 · 稳定高效 | 宁静致远 · 精益求精

    快速上手 →

    最新技术栈

    使用最流行的技术Spring Boot、Spring Cloud、Spring Cloud Alibaba、Nacos、Sentinel、Skywalking、Vue、Vuetify。

    功能全面

    面向互联网和企业级应用设计,支持手机验证码、小程序、第三方应用登录、证照审核、内容审核、企业人事管理等诸多功能。

    双版本支持

    提供与微服务版本技术体系一致的单体版架构,无须复杂的微服务基础设施,即可快速搭建基于OAuth2的、前后端分离的应用。

    便捷配置

    共享式、综合性多环境配置,统一化配置参数设定,简化配置参数修改数量,降低修改配置出错率,提升维护便捷性。

    特有功能

    高度灵活的动态权限配置,无须配置@PreAuthorize注解、使用antMatchers等方式,完全通过配置实现方法级权限控制。

    整洁规范

    代码整洁规范易于阅读,完全遵照Spring Boot编程思想,注解丰富、配置灵活、策略驱动

    + diff --git "a/documents/guides/microservices/OAuth2\346\216\210\346\235\203\346\240\207\345\207\206.html" "b/documents/guides/microservices/OAuth2\346\216\210\346\235\203\346\240\207\345\207\206.html" index 670cd68a3..2cd115f0c 100644 --- "a/documents/guides/microservices/OAuth2\346\216\210\346\235\203\346\240\207\345\207\206.html" +++ "b/documents/guides/microservices/OAuth2\346\216\210\346\235\203\346\240\207\345\207\206.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();OAuth2 | Eurynome Cloud - + -

    OAuth2

    介绍

    OAuth 全称是 Open Authentication

    开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

    目前使用最广泛的是 OAuth 2.0OAuth 1.0 已经被废弃了。本文中的OAuth都是指 OAuth 2.0

    OAuth2授权流程中的角色

    • 资源拥有者(resource owner):能授权访问受保护资源的一个实体,可以是一个人,那我们称之为最终用户;
    • 资源服务器(resource server):存储受保护资源,客户端通过access token请求资源,资源服务器响应受保护资源给客户端;
    • 授权服务器(authorization server):成功验证资源拥有者并获取授权之后,授权服务器颁发授权令牌(Access Token)给客户端。
    • 客户端(client):第三方应用,也可以是它自己的官方应用;其本身不存储资源,而是资源拥有者授权通过后,使用它的授权(授权令牌)访问受保护资源,然后客户端把相应的数据展示出来/提交到服务器。

    令牌与密码

    令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

    • (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。
    • (2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。
    • (3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

    上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

    注意

    只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

    四种模式

    OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 协议根据使用不同的适用场景,规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。

    • 授权码模式(Authorization Code Grant
    • 隐式模式(Implicit Grant
    • 密码模式式(Resource Owner Password Credentials Grant):
    • 客户端凭证模式(Client Credentials Grant

    授权码模式(Authorization Code Grant)

    授权码授权模式主要流程如下图所示:

    授权码模式流程

    • 第一步:用户访问页面或者出发认证地址
    • 第二步:访问的页面将请求重定向到认证服务器
    • 第三步:用户登录成功只有,认证服务器向用户展示授权页面,等待用户授权
    • 第四步:用户授权,认证服务器生成一个 code 和带上 client_id 发送给应用服务器。然后,应用服务器拿到 code,并用 client_id 去后台查询对应的client_secret
    • 第五步:将 codeclient_idclient_secret传给认证服务器换取 access_tokenrefresh_token
    • 第六步:将 access_tokenrefresh_token 传给应用服务器
    • 第七步:验证 token,访问真正的资源页面

    授权码授权模式优劣势:

    授权码模式优劣势

    隐式模式(Implicit Grant)

    隐式模式主要流程如下图所示:

    隐式模式流程

    • 第一步:用户访问页面时,重定向到认证服务器。
    • 第二步:认证服务器给用户一个认证页面,等待用户授权。
    • 第三步:用户授权,认证服务器想应用页面返回 Token
    • 第四步:验证 Token,访问真正的资源页面

    隐式模式优劣势:

    隐式模式优劣势

    密码模式(Resource Owner Password Credentials Grant)

    密码模式主要流程如下图所示:

    密码流程

    • 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
    • 第二步:应用页面那种这个信息去认证服务器授权
    • 第三步:认证服务器授权通过,拿到token,访问真正的资源页面

    说明

    优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)

    缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)

    应用场景:自家公司搭建的认证服务器

    客户端凭证模式(Client Credentials Grant)

    客户端凭证模式主要流程如下图所示:

    客户端凭证流程

    • 第一步:用户访问应用客户端
    • 第二步:通过客户端定义的验证方法,拿到token,无需授权
    • 第三步:访问资源服务器A
    • 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。

    说明

    这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。

    因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

    模式验证

    注意

    以下内容中,所有URL地址一定要使用IP访问。如果是本地环境,那么也要使用本机真实的IP,不要使用 127.0.0.1 或者 localhost。切记!!!

    说明

    不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这 是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。

    即:要在系统中为该客户端分配ID(client ID)和客户端密钥(client secret),换句话说 oauth-client-details 表中要有该客户端对应的数据

    授权码模式验证

    指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

    第一步:客户端向资源端申请code

    说明

    这里所说的客户端,是指任意想要使用 Eurynome Cloud 的应用系统。

    主要逻辑:假设,某网站或者系统(客户端),我们称之为 A 。Eurynome Cloud 向A网站提供一个认证链接,A 网站会把这个连接做成一个按钮,用户点击后就会根据这个连接跳转到 Eurynome Cloud,在 Eurynome Cloud 认证通过后授权用户数据给 A 网站使用。

    上面所说的连接,就是如下的认证连接:

    http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=code&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://localhost:9999/passport/login&scope=all
    +    

    OAuth2

    介绍

    OAuth 全称是 Open Authentication

    开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

    目前使用最广泛的是 OAuth 2.0OAuth 1.0 已经被废弃了。本文中的OAuth都是指 OAuth 2.0

    OAuth2授权流程中的角色

    • 资源拥有者(resource owner):能授权访问受保护资源的一个实体,可以是一个人,那我们称之为最终用户;
    • 资源服务器(resource server):存储受保护资源,客户端通过access token请求资源,资源服务器响应受保护资源给客户端;
    • 授权服务器(authorization server):成功验证资源拥有者并获取授权之后,授权服务器颁发授权令牌(Access Token)给客户端。
    • 客户端(client):第三方应用,也可以是它自己的官方应用;其本身不存储资源,而是资源拥有者授权通过后,使用它的授权(授权令牌)访问受保护资源,然后客户端把相应的数据展示出来/提交到服务器。

    令牌与密码

    令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

    • (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。
    • (2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。
    • (3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

    上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

    注意

    只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

    四种模式

    OAuth 的核心就是向第三方应用颁发令牌。OAuth 2.0 协议根据使用不同的适用场景,规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌。下面就是这四种授权方式。

    • 授权码模式(Authorization Code Grant
    • 隐式模式(Implicit Grant
    • 密码模式式(Resource Owner Password Credentials Grant):
    • 客户端凭证模式(Client Credentials Grant

    授权码模式(Authorization Code Grant)

    授权码授权模式主要流程如下图所示:

    授权码模式流程

    • 第一步:用户访问页面或者出发认证地址
    • 第二步:访问的页面将请求重定向到认证服务器
    • 第三步:用户登录成功只有,认证服务器向用户展示授权页面,等待用户授权
    • 第四步:用户授权,认证服务器生成一个 code 和带上 client_id 发送给应用服务器。然后,应用服务器拿到 code,并用 client_id 去后台查询对应的client_secret
    • 第五步:将 codeclient_idclient_secret传给认证服务器换取 access_tokenrefresh_token
    • 第六步:将 access_tokenrefresh_token 传给应用服务器
    • 第七步:验证 token,访问真正的资源页面

    授权码授权模式优劣势:

    授权码模式优劣势

    隐式模式(Implicit Grant)

    隐式模式主要流程如下图所示:

    隐式模式流程

    • 第一步:用户访问页面时,重定向到认证服务器。
    • 第二步:认证服务器给用户一个认证页面,等待用户授权。
    • 第三步:用户授权,认证服务器想应用页面返回 Token
    • 第四步:验证 Token,访问真正的资源页面

    隐式模式优劣势:

    隐式模式优劣势

    密码模式(Resource Owner Password Credentials Grant)

    密码模式主要流程如下图所示:

    密码流程

    • 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
    • 第二步:应用页面那种这个信息去认证服务器授权
    • 第三步:认证服务器授权通过,拿到token,访问真正的资源页面

    说明

    优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)

    缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)

    应用场景:自家公司搭建的认证服务器

    客户端凭证模式(Client Credentials Grant)

    客户端凭证模式主要流程如下图所示:

    客户端凭证流程

    • 第一步:用户访问应用客户端
    • 第二步:通过客户端定义的验证方法,拿到token,无需授权
    • 第三步:访问资源服务器A
    • 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。

    说明

    这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。

    因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

    模式验证

    注意

    以下内容中,所有URL地址一定要使用IP访问。如果是本地环境,那么也要使用本机真实的IP,不要使用 127.0.0.1 或者 localhost。切记!!!

    说明

    不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这 是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。

    即:要在系统中为该客户端分配ID(client ID)和客户端密钥(client secret),换句话说 oauth-client-details 表中要有该客户端对应的数据

    授权码模式验证

    指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

    第一步:客户端向资源端申请code

    说明

    这里所说的客户端,是指任意想要使用 Eurynome Cloud 的应用系统。

    主要逻辑:假设,某网站或者系统(客户端),我们称之为 A 。Eurynome Cloud 向A网站提供一个认证链接,A 网站会把这个连接做成一个按钮,用户点击后就会根据这个连接跳转到 Eurynome Cloud,在 Eurynome Cloud 认证通过后授权用户数据给 A 网站使用。

    上面所说的连接,就是如下的认证连接:

    http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/authorize?response_type=code&client_id=010e659a-4005-4610-98f6-00b822f4758e&redirect_uri=http://localhost:9999/passport/login&scope=all
     
    1

    参数

    • response_type:必选。值固定为“code”。
    • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
    • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
    • redirect_uri:必选参数(授权成功后的重定向地址)
    • scope:可选参数(表示授权范围)

    第二步:资源端返回code给客户端

    可以采用以下两种方式进行验证:

    • 第一种:如果有想要接入的系统,那么就在这个系统中做一个图标按钮,点击后跳转到上面的地址。(比如:很多系统都支持微信登录,那么在页面上就会有一个微信的图标按钮,点击后跳转到一个地址)
    • 第二种:如果没有想接入的系统,可以将上面的地址输入到浏览器,获取信息后配合 Postman 等工具进行验证。

    下面采用第二种浏览器的方式

    在浏览器中输入上面的地址,会跳出如下登录界面。

    流程1

    输入用户名、密码和验证码进行用户验证。

    可以使用系统默认用户:system 密码:123456

    登录成功后,会跳转到授权页面进行授权,如下图所示:

    流程2

    授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的code, 如下所示。这个地址就是系统中设置的 redirect_uri

    http://localhost:9999/passport/login?code=P6dxH5
     
    1

    第三步:客户端根据code向资源端请求令牌

    在你习惯的工具中,输入下面的地址:

    http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token?client_id=010e659a-4005-4610-98f6-00b822f4758e&client_secret=04165a07-cffd-45cf-a20a-1c2a69f65fb1&grant_type=authorization_code&code=P6dxH5&scope=all&redirect_uri=http://localhost:9999/passport/login
     
    1

    参数

    • grant_type:必选参数(固定值“authorization_code”)
    • code : 必选参数(上一步Response 中响应的code,避免在请求的过程中被篡改)
    • redirect_uri:必选参数(必须和Request中提供的redirect_uri相同)
    • client_id:必选参数(必须和上一步Request中提供的client_id相同,不能token和授权码请求的第三方应用不一致)

    下图以 Postman 为例:

    流程3

    第四步:资源端向客户端返回令牌及明细

    返回如下所示 Token 则表示验证成功

    {
    @@ -32,7 +32,7 @@
     
    1

    参数

    • response_type:必选。值固定为“token”。
    • client_id:必选参数(第三方应用的标识ID,告诉服务器谁需要得到授权)
    • state:Client提供的一个字符串,服务器会原样返回给Client。这个要自己实现,用于防止恶意攻击。
    • redirect_uri:必选参数(授权成功后的重定向地址)
    • scope:可选参数(表示授权范围)

    第二步:到认证服务器认证

    在浏览器中输入上面的地址,会跳出如下登录界面。

    流程1

    输入用户名、密码和验证码进行用户验证。

    可以使用系统默认用户:system 密码:123456

    登录成功后,会跳转到授权页面进行授权,如下图所示:

    流程2

    第三步:资源端转向客户端并传递token

    授权成功后,就会跳转到一个新的地址,同时在地址的后面会跟随生成的token, 如下所示。这个地址就是系统中设置的 redirect_uri

    https://www.baidu.com/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaWNlbnNlIjoiaGVyb2RvdHVzLWNsb3VkIiwidXNlcl9uYW1lIjoic3lzdGVtIiwib3BlbmlkIjoiMSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MzE2NjA5ODQsImF1dGhvcml0aWVzIjpbIk9QXzExNTk4MzkxNzUiLCJPUF8yMDY3MDA2OTYyIiwiT1BfMjAzODgxODY1IiwiT1BfMTgzMTkzMzI1NiIsIk9QXzM0NzEwODY4NCIsIk9QXzE1Mjk0OTk3MzQiLCJPUF8xNzkxNDgyODQwIiwiT1BfNTM5NzkwMTU0IiwiT1BfMTI5MTk4NjQyMCIsIk9QXzQxNDY2NTUwNSIsIk9QXzQ5MDczNzk0IiwiT1BfNzg3NjI3NTU1IiwiT1BfMTczNTYzMTgyNyIsIk9QXzEyNTYzNDY4ODciLCJPUF8xNTk1NjM4NiIsIk9QXzY1NDE2MjAxMSIsIk9QXzE2ODEwMjg3OTEiLCJPUF8xNTM4MzQzNDAiLCJPUF85NTI1NjU1NzAiLCJPUF8xOTg5ODY5MjkxIiwiT1BfMTcxODk4ODQwOCIsIk9QXzEyMTMxODc4MDkiLCJPUF85OTMxNjU1IiwiT1BfNzMwMTA1NDk5IiwiT1BfMTE5ODg3Njk4NSIsIk9QXzMyMjc3NjY4MSIsIk9QXzYyNTQ3MTI0OCIsIk9QXzIwNDA2OTk0NDMiLCJPUF83MzQwODE3MTYiLCJPUF80NTM5MjE4MjUiLCJPUF83MTUxMTUyNzIiLCJPUF82NzI5Mjg4NyIsIk9QXzE2MDM5NTM4NTgiLCJPUF8xNzQzMDQ0MzA1IiwiT1BfOTkzOTYyNDAzIiwiT1BfMTU3ODIxMTczOSIsIk9QXzI1NjIwMTkiLCJPUF8xODQwMDkwOTkyIiwiT1BfNDE1NjI2MzI5IiwiT1BfMTMxMTQ4MDk3IiwiT1BfMTc3NDc3NDczMSIsIk9QXzE4MjIwODE3NzIiLCJPUF83MjkxNDY4NDMiLCJPUF82MDA5MjI1NjEiLCJPUF82MjczMjEwNDUiLCJPUF8yMDkxMzM3OTIyIiwiT1BfNDc0NTk0NDAzIiwiT1BfMTk4OTk0MDM1MSIsIk9QXzM1NjI0MjY2OSIsIk9QXzM1NjA3Nzk5NSIsIk9QXzYyNTc3NDk4MyIsIk9QXzIxNzEyODM2NyIsIlJPTEVfQURNSU5JU1RSQVRPUiIsIk9QXzE1NDAwMTAyNDYiLCJPUF8xNjU3ODY0Njg2IiwiT1BfODEzNTM1MjIwIiwiT1BfOTk3ODg0MDg1IiwiT1BfMjk0MTgzNTIwIiwiT1BfNTYzMjI3MTc5IiwiT1BfMTc5NzU2ODIzNCIsIk9QXzgzNDYyODg1MCIsIk9QXzE5NzkwNjg5NzciLCJPUF8xNjU0NTEzMjYxIiwiT1BfMzIyOTQ3NTEwIiwiT1BfNzIxNDU2MDMzIiwiT1BfMTQ0NDM1NDg4IiwiT1BfNjQyMTQ1MjM4IiwiT1BfMTYxMzY5NzgwOSIsIk9QXzE0MDI5NTM1ODgiLCJPUF8xOTI0OTk4NTYzIiwiT1BfMTkwODM4MzQyNiIsIk9QXzIxMTk5NTYwNjQiXSwianRpIjoiNGJiNTQzNDUtZGQyNC00MzQ3LThkMjYtNjU1ZTVkNDA4NWY3IiwiY2xpZW50X2lkIjoiMDEwZTY1OWEtNDAwNS00NjEwLTk4ZjYtMDBiODIyZjQ3NThlIn0.BdTMSL2QTxyWe4Xs6piAS1Ldk23zUfhlG5_dA0xaNFA&token_type=bearer&expires_in=42511&license=herodotus-cloud&openid=1&jti=4bb54345-dd24-4347-8d26-655e5d4085f7
     
    1

    上面 URL 中,access_token参数就是令牌

    密码模式验证

    如果你高度信任某个应用,RFC 6749 也允许用户把用户名和密码,直接告诉该应用。该应用就使用你的密码,申请令牌,这种方式称为"密码式"(password)。

    Eurynome Cloud 前端就是使用密码模式进行登录

    直接使用如下地址获取Token即可

    http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token
     
    1

    操作如下图所示:

    流程4

    参数

    • username:必选参数(登录用户名)
    • password:必选参数(登录用户密码)
    • grant_type:必选参数(固定值“password”)
    • client_id:必选参数
    • client_secret:必选参数
    • scope:可选参数(表示授权范围)

    客户端凭证模式验证

    这种模式直接根据client的id和密钥即可获取token,无需用户参与 这种模式比较合适消费api的后端服务,比如拉取一组用户信息等

    直接使用如下地址获取Token即可

    http://192.168.101.10:8847/eurynome-cloud-uaa/oauth/token
    -
    1

    操作如下图所示:

    流程5

    参数

    • grant_type:必选参数(固定值“client_credentials”)
    • client_id:必选参数
    • client_secret:必选参数
    • scope:可选参数(表示授权范围)
    - +
    1

    操作如下图所示:

    流程5

    参数

    • grant_type:必选参数(固定值“client_credentials”)
    • client_id:必选参数
    • client_secret:必选参数
    • scope:可选参数(表示授权范围)
    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git a/documents/guides/microservices/index.html b/documents/guides/microservices/index.html index 99fce0909..bbd86c35b 100644 --- a/documents/guides/microservices/index.html +++ b/documents/guides/microservices/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();介绍 | Eurynome Cloud - + - - + + diff --git "a/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\346\212\200\346\234\257.html" "b/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\346\212\200\346\234\257.html" index 2b06b55a2..b12aa4131 100644 --- "a/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\346\212\200\346\234\257.html" +++ "b/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\346\212\200\346\234\257.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();容器化技术 | Eurynome Cloud - + -

    容器化技术

    Docker能解决什么问题?

    Docker Logo

    Docker是一个容器化工具,那么什么是容器呢,Docker和容器有什么关系,Docker又能解决什么问题呢?

    麻烦的环境配置

    软件开发最大的麻烦事之一就是环境配置,在开发之前我们需要准备各种运行环境、IDE、辅助工具。就像我们要使用电脑前,先要安装操作系统一样。

    而一个可用软件的交付过程通常包含两个部分 - 开发和维护。不幸的是,我们很难保证软件开发测试和运行维护阶段的软件能运行在一模一样的环境下。开发常说:"It works on my machine",很多时候我们都要花大量的时间去配置环境和教别人配置环境。

    现在的应用程序

    applications.jpg

    以前的应用程序:

    • 几乎都是单块应用: 大系统, 多模块
    • 紧耦合: 内部调用
    • 不常变更: 需求稳定(改动成本高)

    如今的应用程序:

    • 解耦: 微服务/异步
    • 经常变更: 快速迭代
    • 动态创建和部署: 服务化

    新架构的挑战

    • 多样化的技术栈
    • 需要动态创建机器
    • 很多活动组件
    • 运维人员需要管理复杂的架构

    复杂的架构

    在新的应用程序架构下,我们部署应用的成本大大增加。不但要搭建不同语言、不同技术栈适配的运行环境,还要部署到多个服务器主机上;并且这些主机还可能来自不同地方(公/私有云主机、物理主机)。

    统一的管理

    其实在软件开发的过程中我们就思考过类似的问题 - 如何统一的管理我们的代码包。例如,Maven、Gradle、NPM,我们使用一个相同的格式(规范)将我们的代码划分成模块,并使用一套工具去管理他们。在此之后我们不需要重复的copy代码、复制文件,只需要声明式的引入我们需要的代码包就可以了。

    当然,我们希望我们的应用部署也能如此简单。

    “容器”

    good-container.png

    app-container.png

    “容器”是一个黑盒,对于它的使用者来说:

    • 无需关心里面有什么:只关注“容器”能做什么
    • 有一套工具来管理黑盒:打包、运输、运行
    • 减少了部署单元的数量,从而减少了花销:多个工具聚集在一个“容器”内
    • 更容易管理多个环境:以“容器”为单位进行部署和管理

    虚拟化技术

    (1) 虚拟机:精心配置的虚拟机也是满足我们(基本)要求的容器,我们能够通过虚拟机镜像来打包我们的应用。但是,庞大的操作系统占用了大量的系统资源,使运行成本大大上升。

    vm.png

    虚拟机

    • 应用
      • 运行环境(Java/数据库/libs...)
      • 客户机操作系统(Guest Operating System)
      • 虚拟机管理系统(Hypervisor)
      • 操作系统级:MacOS(HyperKit),Windows的Hyper-V
      • 应用软件级:VirtualBox,VMWare Workstation
    • 主操作系统(Host Operating System)
    • 硬件(Infrastructure)/云主机

    (2) 容器:(作为进程)共用内核并提供额外的隔离手段,避免虚拟的操作系统占用。

    container.png

    容器

    • 应用
    • 运行环境(Java/数据库/libs...)
    • Docker守护进程(Docker Daemon): 类似虚拟机管理系统
    • 主操作系统(Host Operating System)
    • 硬件(Infrastructure)/云主机

    容器技术

    容器技术已经发展了一段时间了, 例如, LXC, BSD Jails, Solaris Zones...

    history.png

    容器技术特点

    • 看起来像虚拟机
      • 可以SSH到容器
      • 具有root的访问权限
      • 可以安装包
      • 可以mount文件系统
      • 拥有自己的eth0接口
      • 可以修改iptables 规则和routing table
    • 共享宿主机的内核
    • 隔离 cgroups (memory, cpu, blkio)
    • 拥有进程空间 (pid, mnt, net, ipc, uts)
      • pid - 隔离进程PID
      • mnt - 允许创建不同的文件系统层级
      • net - 隔离网络控制、iptables、防火墙、路由
      • ipc - 定义内部进程交流的范围
      • uts - 允许修改hostname :::

    容器技术的局限

    • 容器没有标准的格式
    • 所以容器是不可移植的
    • 没有标准的工具,所以比如要自己管理网络
    • 没有可重用的模块和API

    Docker

    what-is-docker.png

    • 使容器变得更容易使用
    • 容器镜像的商品化
    • 可插拔的模块易于吸引供应商加入
    • 适当的API可用来创建高层次抽象的工具
    • 和微服务诞生在同一个时代

    Docker架构

    docker-architecture.png

    • Docker Client:接收命令和Docker Host进行交互的客户端
    • Docker Host:运行Docker服务的主机
      • Docker Daemon:守护进程,用于管理所有镜像和容器
      • Docker Images/Containers:镜像和容器实例
    • Registry(Hub):镜像仓库

    docker-architecture2.png

    Docker底层实现

    docker-tech.png

    底层实现原理详解见open in new window

    Docker核心技术

    core-tech.png

    • Namespace 命名空间 Linux 的命名空间机制提供了以下七种不同的命名空间,包括 CLONE_NEWCGROUP、CLONE_NEWIPC、CLONE_NEWNET、CLONE_NEWNS、CLONE_NEWPID、CLONE_NEWUSER、CLONE_NEWUTS,通过这七个选项我们能在创建新的进程时设置新进程应该在哪些资源上与宿主机器进行隔离。因此容器只能感知内部的进程,而对宿主机和其他容器一无所知。
    • CGroups (Control Groups) Linux 的 CGroup 能够为一组进程分配资源,也就是我们在上面提到的 CPU、内存、网络带宽等资源.
    • UnionFS union-fs.png

    Docker中的每一个镜像都是由一系列的只读层组成的,Dockerfile 中的每一个命令都会在已有的只读层上创建一个新的层。通过 docker run 命令可以在镜像的最上层添加一个可写的层 - 容器层,所有对于运行时容器的修改其实都是对这个容器读写层的修改。

    容器和镜像的区别就在于,所有的镜像都是只读的,而每一个容器其实等于镜像加上一个可读写的层,也就是同一个镜像可以对应多个容器。同时已构建的每一层镜像也可以作为其他镜像的基础层进行共用。

    Docker VS VM

    docker-vs-vm.png

    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    - +

    容器化技术

    Docker能解决什么问题?

    Docker Logo

    Docker是一个容器化工具,那么什么是容器呢,Docker和容器有什么关系,Docker又能解决什么问题呢?

    麻烦的环境配置

    软件开发最大的麻烦事之一就是环境配置,在开发之前我们需要准备各种运行环境、IDE、辅助工具。就像我们要使用电脑前,先要安装操作系统一样。

    而一个可用软件的交付过程通常包含两个部分 - 开发和维护。不幸的是,我们很难保证软件开发测试和运行维护阶段的软件能运行在一模一样的环境下。开发常说:"It works on my machine",很多时候我们都要花大量的时间去配置环境和教别人配置环境。

    现在的应用程序

    applications.jpg

    以前的应用程序:

    • 几乎都是单块应用: 大系统, 多模块
    • 紧耦合: 内部调用
    • 不常变更: 需求稳定(改动成本高)

    如今的应用程序:

    • 解耦: 微服务/异步
    • 经常变更: 快速迭代
    • 动态创建和部署: 服务化

    新架构的挑战

    • 多样化的技术栈
    • 需要动态创建机器
    • 很多活动组件
    • 运维人员需要管理复杂的架构

    复杂的架构

    在新的应用程序架构下,我们部署应用的成本大大增加。不但要搭建不同语言、不同技术栈适配的运行环境,还要部署到多个服务器主机上;并且这些主机还可能来自不同地方(公/私有云主机、物理主机)。

    统一的管理

    其实在软件开发的过程中我们就思考过类似的问题 - 如何统一的管理我们的代码包。例如,Maven、Gradle、NPM,我们使用一个相同的格式(规范)将我们的代码划分成模块,并使用一套工具去管理他们。在此之后我们不需要重复的copy代码、复制文件,只需要声明式的引入我们需要的代码包就可以了。

    当然,我们希望我们的应用部署也能如此简单。

    “容器”

    good-container.png

    app-container.png

    “容器”是一个黑盒,对于它的使用者来说:

    • 无需关心里面有什么:只关注“容器”能做什么
    • 有一套工具来管理黑盒:打包、运输、运行
    • 减少了部署单元的数量,从而减少了花销:多个工具聚集在一个“容器”内
    • 更容易管理多个环境:以“容器”为单位进行部署和管理

    虚拟化技术

    (1) 虚拟机:精心配置的虚拟机也是满足我们(基本)要求的容器,我们能够通过虚拟机镜像来打包我们的应用。但是,庞大的操作系统占用了大量的系统资源,使运行成本大大上升。

    vm.png

    虚拟机

    • 应用
      • 运行环境(Java/数据库/libs...)
      • 客户机操作系统(Guest Operating System)
      • 虚拟机管理系统(Hypervisor)
      • 操作系统级:MacOS(HyperKit),Windows的Hyper-V
      • 应用软件级:VirtualBox,VMWare Workstation
    • 主操作系统(Host Operating System)
    • 硬件(Infrastructure)/云主机

    (2) 容器:(作为进程)共用内核并提供额外的隔离手段,避免虚拟的操作系统占用。

    container.png

    容器

    • 应用
    • 运行环境(Java/数据库/libs...)
    • Docker守护进程(Docker Daemon): 类似虚拟机管理系统
    • 主操作系统(Host Operating System)
    • 硬件(Infrastructure)/云主机

    容器技术

    容器技术已经发展了一段时间了, 例如, LXC, BSD Jails, Solaris Zones...

    history.png

    容器技术特点

    • 看起来像虚拟机
      • 可以SSH到容器
      • 具有root的访问权限
      • 可以安装包
      • 可以mount文件系统
      • 拥有自己的eth0接口
      • 可以修改iptables 规则和routing table
    • 共享宿主机的内核
    • 隔离 cgroups (memory, cpu, blkio)
    • 拥有进程空间 (pid, mnt, net, ipc, uts)
      • pid - 隔离进程PID
      • mnt - 允许创建不同的文件系统层级
      • net - 隔离网络控制、iptables、防火墙、路由
      • ipc - 定义内部进程交流的范围
      • uts - 允许修改hostname :::

    容器技术的局限

    • 容器没有标准的格式
    • 所以容器是不可移植的
    • 没有标准的工具,所以比如要自己管理网络
    • 没有可重用的模块和API

    Docker

    what-is-docker.png

    • 使容器变得更容易使用
    • 容器镜像的商品化
    • 可插拔的模块易于吸引供应商加入
    • 适当的API可用来创建高层次抽象的工具
    • 和微服务诞生在同一个时代

    Docker架构

    docker-architecture.png

    • Docker Client:接收命令和Docker Host进行交互的客户端
    • Docker Host:运行Docker服务的主机
      • Docker Daemon:守护进程,用于管理所有镜像和容器
      • Docker Images/Containers:镜像和容器实例
    • Registry(Hub):镜像仓库

    docker-architecture2.png

    Docker底层实现

    docker-tech.png

    底层实现原理详解见open in new window

    Docker核心技术

    core-tech.png

    • Namespace 命名空间 Linux 的命名空间机制提供了以下七种不同的命名空间,包括 CLONE_NEWCGROUP、CLONE_NEWIPC、CLONE_NEWNET、CLONE_NEWNS、CLONE_NEWPID、CLONE_NEWUSER、CLONE_NEWUTS,通过这七个选项我们能在创建新的进程时设置新进程应该在哪些资源上与宿主机器进行隔离。因此容器只能感知内部的进程,而对宿主机和其他容器一无所知。
    • CGroups (Control Groups) Linux 的 CGroup 能够为一组进程分配资源,也就是我们在上面提到的 CPU、内存、网络带宽等资源.
    • UnionFS union-fs.png

    Docker中的每一个镜像都是由一系列的只读层组成的,Dockerfile 中的每一个命令都会在已有的只读层上创建一个新的层。通过 docker run 命令可以在镜像的最上层添加一个可写的层 - 容器层,所有对于运行时容器的修改其实都是对这个容器读写层的修改。

    容器和镜像的区别就在于,所有的镜像都是只读的,而每一个容器其实等于镜像加上一个可读写的层,也就是同一个镜像可以对应多个容器。同时已构建的每一层镜像也可以作为其他镜像的基础层进行共用。

    Docker VS VM

    docker-vs-vm.png

    更新时间: 2021/9/7 下午2:44:55
    贡献者: herodotus
    + diff --git "a/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\351\203\250\347\275\262.html" "b/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\351\203\250\347\275\262.html" index f7745d458..610abb244 100644 --- "a/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\351\203\250\347\275\262.html" +++ "b/documents/guides/microservices/\345\256\271\345\231\250\345\214\226\351\203\250\347\275\262.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();容器化部署 | Eurynome Cloud - + -

    容器化部署

    本地容器部署

    本地采用容器方式进行项目的部署,因为每个人使用的电脑、操作系统都各不相同,加之不同人的喜好和偏好也不尽相同,无法做到全覆盖。

    提示

    这里仅以容器方式安装NacosELKKafkaZookeeperSentinel,本地安装PostgreSQLMySQLRedis的方式,进行示意性说明。仅供参考,具体安装请结合自身及时情况,适时调整。

    本地安装

    • PostgreSQL
    • MySQL
    • Redis

    容器安装

    • Nacos
    • ELK
    • Kafka & Zookeeper
    • Sentinel

    [1]、本地Docker安装(Windows版)

    • Windows 本地安装 Docker 请参考个人博文:
    1. Windows 10 2004 (20H1) 安装 Docker Desktop for Windows (2.3.0.2) 以 WSL 2 方式运行容器open in new window
    2. Windows 10 将 Docker Desktop for Windows(WSL 2 方式)文件存储移出C盘放置到其它目录open in new window

    [2]、安装配置MySQL

    1. 正常安装MySQL
    2. 创建Nacos持久化数据库

    即在MySQL中,为Nacos新建用户、新建数据库、给数据库用户分配数据库权限。

    1. 导入Nacos初始脚本

    下载open in new window最新稳定版的Nacos压缩包。解压后,在{NACOS_HOME}/conf目录下,找到nacos-mysql.sql导入到数据库中。

    提示

    在工程的${project home}/configurations/scripts目录下,保存了一份Nacos脚本可以使用,如果不是最新请自行重新下载。

    1. 开放MySQL数据库IP访问

    正常情况下,本地开发使用localhost就可以访问已安装的mysql服务; 因为Docker是使用内部的独立网络,Docker内部容器想要访问外部的数据库,只能通过ip地址才能访问。所以需要开放数据库的IP访问,否则会出现 Docker 容器发无法连接数据库的情况。

    使用命令行工具,登录进入MySQL,输入以下脚本查看数据库的可访问情况:

    mysql> select host,user from mysql.user;
    +    

    容器化部署

    本地容器部署

    本地采用容器方式进行项目的部署,因为每个人使用的电脑、操作系统都各不相同,加之不同人的喜好和偏好也不尽相同,无法做到全覆盖。

    提示

    这里仅以容器方式安装NacosELKKafkaZookeeperSentinel,本地安装PostgreSQLMySQLRedis的方式,进行示意性说明。仅供参考,具体安装请结合自身及时情况,适时调整。

    本地安装

    • PostgreSQL
    • MySQL
    • Redis

    容器安装

    • Nacos
    • ELK
    • Kafka & Zookeeper
    • Sentinel

    [1]、本地Docker安装(Windows版)

    • Windows 本地安装 Docker 请参考个人博文:
    1. Windows 10 2004 (20H1) 安装 Docker Desktop for Windows (2.3.0.2) 以 WSL 2 方式运行容器open in new window
    2. Windows 10 将 Docker Desktop for Windows(WSL 2 方式)文件存储移出C盘放置到其它目录open in new window

    [2]、安装配置MySQL

    1. 正常安装MySQL
    2. 创建Nacos持久化数据库

    即在MySQL中,为Nacos新建用户、新建数据库、给数据库用户分配数据库权限。

    1. 导入Nacos初始脚本

    下载open in new window最新稳定版的Nacos压缩包。解压后,在{NACOS_HOME}/conf目录下,找到nacos-mysql.sql导入到数据库中。

    提示

    在工程的${project home}/configurations/scripts目录下,保存了一份Nacos脚本可以使用,如果不是最新请自行重新下载。

    1. 开放MySQL数据库IP访问

    正常情况下,本地开发使用localhost就可以访问已安装的mysql服务; 因为Docker是使用内部的独立网络,Docker内部容器想要访问外部的数据库,只能通过ip地址才能访问。所以需要开放数据库的IP访问,否则会出现 Docker 容器发无法连接数据库的情况。

    使用命令行工具,登录进入MySQL,输入以下脚本查看数据库的可访问情况:

    mysql> select host,user from mysql.user;
     
    1

    查询结果示例:

    | host      | user             |
     | --------- | ---------------- |
     | localhost | root             |
    @@ -44,6 +44,6 @@
     
    1
    1. 如果是以Docker的方式运行服务,传统的方式就需要把skywalking-agent.jar一并打入到服务的docker中。

    由于Docker-compose打包上下文的问题,就需要在每一个模块中都复制一份skywalking-agent.jar。很不好管理,看着也不舒服。

    [2]、Dockerfile的编写和放置问题

    常规Java微服务的Docker打包方式,要么采用Maven Plugin的方式,要么采用docker-compose的方式。不管哪一种方式,都需要在该服务代码所在目录下新建一个Dockerfile文件。

    一方面,每个服务下的Dockerfile文件中的配置信息,除了服务的JAR包名不同以外,其余的所有配置都相同,就是一种重复劳动。 另一方面,如果要增加Skywalking,那么需要在每一个服务所在目录下都拷贝一份skywalking-agent.jar。不仅重复工作,代码结构也不美观整洁。

    Eurynome Cloud Docker 打包的设计

    为了解决上述两方面问题,Eurynome Cloud 在所有模块之外之指定了一个统一的目录,将需要打包的jar以及dockerfile全部放入该目录,通过该目录形成一个统一的上下文环境。在Eurynome Cloud工程中,${project_home}/configurations/docker/context就是这个上下文环境。

    在这个上下文环境中,除了包含通用的Dockerfile、Skywalking Agent以外,在使用Maven进行编译的过程中,还会将所有需要打包服务的对应的jar包拷贝到${project_home}/configurations/docker/context/target目录下。这样打包的所有资源就都已经具备,同时还解决了上述两个问题。

    提示

    可以通过修改${project_home}/pom.xml 中的<docker.build.directory>值,来改变拷贝jar包的目录

    Eurynome Cloud Docker 打包使用方法

    [1]、修改信息

    由于使用了一个统一的Dockerfile来解决重复定义Docker打包配置文件的问题,想要实现使用一个Dockerfile打出不同的Docker,那么就需要通过传参的方式来改变Dockerfile中的值。

    这里采用的是环境变量的方式,在${project_home}/configurations/docker/docker-compose/.env文件中定义这些参数。其中包含版本号以及具体服务对应的包名。所以如果有新增服务或者想要指定版本号,首先就需要修改这个配置文件。

    [2]、执行命令

    执行打包命令

    docker-compose -f ${project home}/configurations/docker/docker-compose/herodotus/services.dev.yml --env-file=${project_home}/configurations/docker/docker-compose/herodotus/.env up -d
     
    1

    或者

    docker-compose -f ${project home}/configurations/docker/docker-compose/herodotus/services.prod.yml --env-file=${project_home}/configurations/docker/docker-compose/herodotus/.env up -d
     
    1

    说明

    上文说到想要以Docker的方式运行服务并且关联Skywalking,就需要在打包时将Skywalking Agent打入到Docker中。但实际应用中并不是所有环境都需要使用Skywalking,比如:在生产环境需要使用Skywalking,在开发环境中并不需要Skywalking以降低资源消耗。

    因此,Eurynome Cloud 提供了两种打包配置

    使用${project home}/configurations/docker/docker-compose/herodotus/services.dev.yml这个Docker-compose配置文件打包时,对应的Dockerfile文件是${project home}/configurations/docker/context/development/Dockerfile。这个Dockerfile配置中,没有包含Skywalking Agent的拷贝命令。

    使用${project home}/configurations/docker/docker-compose/herodotus/services.prod.yml这个Docker-compose配置文件打包时,对应的Dockerfile文件是${project home}/configurations/docker/context/production/Dockerfile。这个Dockerfile配置中,包含了Skywalking Agent的拷贝命令。

    这样通过不同的命令,实现了对不同Docker环境需求的支持。

    更新时间: 2021/9/8 上午12:03:33
    贡献者: herodotus
    - + diff --git a/documents/guides/others/Idea.html b/documents/guides/others/Idea.html new file mode 100644 index 000000000..28387a1df --- /dev/null +++ b/documents/guides/others/Idea.html @@ -0,0 +1,54 @@ + + + + + + + Idea | Eurynome Cloud + + + + +

    Idea

    [1]、found character '@' that cannot start any token. (Do not use @ for indentation)

    启动服务时,出现以下错误

    16:01:05.726 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
    +org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
    +found character '@' that cannot start any token. (Do not use @ for indentation)
    + in 'reader', line 7, column 13:
    +        active: @profile.name@
    +                ^
    +
    +	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:439)
    +	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:248)
    +	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:633)
    +	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:165)
    +	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:59)
    +	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:45)
    +	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:140)
    +	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:119)
    +	at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:221)
    +	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:191)
    +	at org.yaml.snakeyaml.composer.Composer.composeKeyNode(Composer.java:309)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:300)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)
    +	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)
    +	at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:313)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)
    +	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)
    +	at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:313)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)
    +	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:288)
    +	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:195)
    +	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:115)
    +	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:135)
    +	at org.springframework.boot.env.OriginTrackedYamlLoader$OriginTrackingConstructor.getData(OriginTrackedYamlLoader.java:99)
    +	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:512)
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

    该问题主要是由于 bootstrap.yml 中使用了 @ @ 变量,而在 target 目录中生成的 bootstrap.yml中的 @ @ 变量没有被正确替换。

    解决办法

    办法一

    使用 mvn installmvn package 命令重新编译工程。

    办法二

    在IDEA中,打开Maven面板,点击刷新按钮。如下图所示:

    架构图

    + + + diff --git a/documents/guides/others/MySQL.html b/documents/guides/others/MySQL.html index a138e86da..b9eba0b7c 100644 --- a/documents/guides/others/MySQL.html +++ b/documents/guides/others/MySQL.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();MySQL 常见问题 | Eurynome Cloud - + -

    MySQL 常见问题

    [1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'

    Eurynome Cloud 默认使用Spring Data JPA进行基础功能的编写, 采用 HibernateJPA的一种实现)提供的 ddl-auto进行基础表的创建和更新。

    提示

    什么是 Spring Data JPA, 参见:基础知识章节,Spring Data JPA

    ddl-auto 怎么用,参见:更换数据库章节,[spring-boot-starter-data-jpa 更换数据库方式](../documents/更换数据库.md#spring-boot-starter-data-jpa 更换数据库方式)

    Hibernate方言

    Hibernate 底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准 SQL 语句,但所有数据库都对标准 SQL 进行了一些扩展,所以在语法细节上存在一些差异,因此 Hibernate 需要根据数据库来识别这些差异。假如系统需要数据库的变换时,那么用 hibernate 的话就只需要改一改配置文件(修改连接字符串、驱动类、方言等),而用传统的jdbc时,那么SQL语言可能就要有很多改动。(略微重复了)

    Hibernate 方言为实现HQL语句向不同数据库的 SQL 语句转换时,解决不同数据库之间的差异而制定的一套”规范”。

    举例来说,我们在MySQL数据库里进行分页查询,只需使用limit关键字就可以了;而标准SQL并不支持limit关键字,例如Oracle则需要使用行内视图的方式来进行分页。同样的应用程序,当我们在不同数据库之间迁移时,底层数据库的访问细节会发生改变,而 Hibernate 也为这种改变做好了准备,现在我们需要做的是:告诉Hibernate应用程序的底层即将使用哪种数据库——这就是Hibernate方言。

    说明

    因为不同数据库自身的特殊性,那么不同数据库方言的实现逻辑也不能完全相同。出现这个问题是因为MySQL 方言自身所导致,如果已经存在外键,那么就会抛出错误,但是不会影响实际使用。PostgreSQL方案就不会出现问题。

    解决的办法是:

    在使用MySQL数据库时,在首次进行数据库表创建时,需要将eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto修改为create。当所有的表创建成功后,将herodotus.switch.database.ddl-auto值修改为none。那么在次启动就不会出现这个问题。

    - +

    MySQL 常见问题

    [1]、 java.sql.SQLSyntaxErrorException: Duplicate key name 'xxx_idx'

    Eurynome Cloud 默认使用Spring Data JPA进行基础功能的编写, 采用 HibernateJPA的一种实现)提供的 ddl-auto进行基础表的创建和更新。

    提示

    什么是 Spring Data JPA, 参见:基础知识章节,Spring Data JPA

    ddl-auto 怎么用,参见:更换数据库章节,[spring-boot-starter-data-jpa 更换数据库方式](../documents/更换数据库.md#spring-boot-starter-data-jpa 更换数据库方式)

    Hibernate方言

    Hibernate 底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准 SQL 语句,但所有数据库都对标准 SQL 进行了一些扩展,所以在语法细节上存在一些差异,因此 Hibernate 需要根据数据库来识别这些差异。假如系统需要数据库的变换时,那么用 hibernate 的话就只需要改一改配置文件(修改连接字符串、驱动类、方言等),而用传统的jdbc时,那么SQL语言可能就要有很多改动。(略微重复了)

    Hibernate 方言为实现HQL语句向不同数据库的 SQL 语句转换时,解决不同数据库之间的差异而制定的一套”规范”。

    举例来说,我们在MySQL数据库里进行分页查询,只需使用limit关键字就可以了;而标准SQL并不支持limit关键字,例如Oracle则需要使用行内视图的方式来进行分页。同样的应用程序,当我们在不同数据库之间迁移时,底层数据库的访问细节会发生改变,而 Hibernate 也为这种改变做好了准备,现在我们需要做的是:告诉Hibernate应用程序的底层即将使用哪种数据库——这就是Hibernate方言。

    说明

    因为不同数据库自身的特殊性,那么不同数据库方言的实现逻辑也不能完全相同。出现这个问题是因为MySQL 方言自身所导致,如果已经存在外键,那么就会抛出错误,但是不会影响实际使用。PostgreSQL方案就不会出现问题。

    解决的办法是:

    在使用MySQL数据库时,在首次进行数据库表创建时,需要将eurynome-cloud-environment.yaml配置中的herodotus.switch.database.ddl-auto修改为create。当所有的表创建成功后,将herodotus.switch.database.ddl-auto值修改为none。那么在次启动就不会出现这个问题。

    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git a/documents/guides/others/Nacos.html b/documents/guides/others/Nacos.html index 25b3e6a89..1f96cacb1 100644 --- a/documents/guides/others/Nacos.html +++ b/documents/guides/others/Nacos.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Nacos 常见问题 | Eurynome Cloud - + -

    Nacos 常见问题

    [1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00

    将Nacos日志设置到Debug级别,在服务运行起来之后,就会发现控制台持续输出以上Debug信息。

    说明

    这不是代码Bug,而是Nacos自身机制,想要详细了解请阅读Nacos源代码或自行百度。

    这是Nacos Client本地缓存及故障转移机制。在Nacos源代码中,ServiceInfoHolder的构造方法中,会初始化一个FailoverReactor类。FailoverReactor的作用便是用来处理故障转移的。

    FailoverReactor的构造方法会拼接故障根目录:${user.home}/nacos/naming/public/failover,其中public也有可能是其他的自定义命名空间;

    主要逻辑就是:

    • 基本操作就是读取failover目录,查找故障转移【开关】文件为名为“failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00”。

    • 如果故障转移文件不存在,则直接返回,不断输出Debug信息。

    • 如果故障转移文件存在,比较文件修改时间,如果已经修改,则获取故障转移文件中的内容。

    • 故障转移文件中存储了0和1标识。0表示关闭,1表示开启。

    • 当为开启状态时,执行线程FailoverFileReader。

    • 解决办法

    1. 将Nacos日志级别调整为INFO级别以上。
    2. 手动在${user.home}/nacos/naming/public目录下,新建文件failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00
    - +

    Nacos 常见问题

    [1]、failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00

    将Nacos日志设置到Debug级别,在服务运行起来之后,就会发现控制台持续输出以上Debug信息。

    说明

    这不是代码Bug,而是Nacos自身机制,想要详细了解请阅读Nacos源代码或自行百度。

    这是Nacos Client本地缓存及故障转移机制。在Nacos源代码中,ServiceInfoHolder的构造方法中,会初始化一个FailoverReactor类。FailoverReactor的作用便是用来处理故障转移的。

    FailoverReactor的构造方法会拼接故障根目录:${user.home}/nacos/naming/public/failover,其中public也有可能是其他的自定义命名空间;

    主要逻辑就是:

    • 基本操作就是读取failover目录,查找故障转移【开关】文件为名为“failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00”。

    • 如果故障转移文件不存在,则直接返回,不断输出Debug信息。

    • 如果故障转移文件存在,比较文件修改时间,如果已经修改,则获取故障转移文件中的内容。

    • 故障转移文件中存储了0和1标识。0表示关闭,1表示开启。

    • 当为开启状态时,执行线程FailoverFileReader。

    • 解决办法

    1. 将Nacos日志级别调整为INFO级别以上。
    2. 手动在${user.home}/nacos/naming/public目录下,新建文件failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00
    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git a/documents/guides/others/Redis.html b/documents/guides/others/Redis.html index d841263df..cc04fe7df 100644 --- a/documents/guides/others/Redis.html +++ b/documents/guides/others/Redis.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Redis 常见问题 | Eurynome Cloud - + -

    Redis 常见问题

    [1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问

    Redis默认只允许通过127.0.0.1访问,这是其自身的安全防护机制。如果想要使用IP地址进行访问,需要将其保护设置打开。

    • Windows 版

    找到redis.windows.conf配置文件

    1. protected-mode 参数改为no。

    2. 注释掉bind 127.0.0.1

    3. 重启redis服务

    Redis 密码

    • Linux
    1. linux对应的是redis.conf文件

    2. 修改还是和windows一样

    3. 修改完成重启服务

    [2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required

    出现该错误,是由于Redis中设置密码,而代码中未读到Redis密码或配置文件中没有配置密码导致的。

    • 解决办法
    1. 首先用Redis客户端,比如:redis-desktop-manager,进行Redis的连接测试。如果无法连接,那么请检查密码输入是否正确、本地网络等相关环境;如果可以正常连接,请进行下一步。
    2. 检查Nacos中,Redis相关配置是否配置了密码。一定要注意格式,检查格式缩进是否正确、yaml配置“:”后面是否空了一格。如果确定配置正确,请进行下一步。
    3. 检查服务是否可以正常访问到Nacos服务器,是否可以正确读取Nacos中配置。

    以上操作均确保无误应该就可以正常使用了,如果还有问题,那么就请尽可能的准备详尽的信息,在Gitee中提Issueopen in new window

    [3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>

    使用spring boot data redis 链接redis sentinel集群,会报此错。

    原因是因为redis sentinel集群的sentinel配置文件没有配置密码,sentinel配置密码的方式和redis的密码配置方式一样,配置文件中加上requirepass <密码> 就行。

    另外,sentinel中的sentinel auth-pass <master> <pass> 不是给sentinel配置密码,而是sentinel链接redis master的密码

    - +

    Redis 常见问题

    [1]、本地Redis使用127.0.0.1可以访问,使用IP地址无法访问

    Redis默认只允许通过127.0.0.1访问,这是其自身的安全防护机制。如果想要使用IP地址进行访问,需要将其保护设置打开。

    • Windows 版

    找到redis.windows.conf配置文件

    1. protected-mode 参数改为no。

    2. 注释掉bind 127.0.0.1

    3. 重启redis服务

    Redis 密码

    • Linux
    1. linux对应的是redis.conf文件

    2. 修改还是和windows一样

    3. 修改完成重启服务

    [2]、io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required

    出现该错误,是由于Redis中设置密码,而代码中未读到Redis密码或配置文件中没有配置密码导致的。

    • 解决办法
    1. 首先用Redis客户端,比如:redis-desktop-manager,进行Redis的连接测试。如果无法连接,那么请检查密码输入是否正确、本地网络等相关环境;如果可以正常连接,请进行下一步。
    2. 检查Nacos中,Redis相关配置是否配置了密码。一定要注意格式,检查格式缩进是否正确、yaml配置“:”后面是否空了一格。如果确定配置正确,请进行下一步。
    3. 检查服务是否可以正常访问到Nacos服务器,是否可以正确读取Nacos中配置。

    以上操作均确保无误应该就可以正常使用了,如果还有问题,那么就请尽可能的准备详尽的信息,在Gitee中提Issueopen in new window

    [3]、NOAUTH HELLO must be called with the client already authenticated, otherwise the HELLO AUTH <user>

    使用spring boot data redis 链接redis sentinel集群,会报此错。

    原因是因为redis sentinel集群的sentinel配置文件没有配置密码,sentinel配置密码的方式和redis的密码配置方式一样,配置文件中加上requirepass <密码> 就行。

    另外,sentinel中的sentinel auth-pass <master> <pass> 不是给sentinel配置密码,而是sentinel链接redis master的密码

    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git a/documents/guides/others/index.html b/documents/guides/others/index.html index 271b8a3d1..e191a5854 100644 --- a/documents/guides/others/index.html +++ b/documents/guides/others/index.html @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();说明 | Eurynome Cloud - + -

    说明

    提示

    本部分会梳理、总结使用者经常提出的一些问题,形成文档方便大家查阅,以便帮助使用者快速定位和解决问题。

    每个使用者所使用的微服务基础环境都不可能完全相同,因此,可能存在无法全面覆盖、满足所有场景的情况。

    同时,文档中的解决办法,只是作者根据自己的情况进行解决的办法,可能不是最优的解决办法。

    所以,如果发现了使用上的问题、或者针对某些问题有更优的解决办法,欢迎广大使用者提【Issue】open in new window

    更新时间: 2021/9/12 上午3:37:41
    贡献者: herodotus
    - +

    说明

    提示

    本部分会梳理、总结使用者经常提出的一些问题,形成文档方便大家查阅,以便帮助使用者快速定位和解决问题。

    每个使用者所使用的微服务基础环境都不可能完全相同,因此,可能存在无法全面覆盖、满足所有场景的情况。

    同时,文档中的解决办法,只是作者根据自己的情况进行解决的办法,可能不是最优的解决办法。

    所以,如果发现了使用上的问题、或者针对某些问题有更优的解决办法,欢迎广大使用者提【Issue】open in new window

    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git "a/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" "b/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" index 0b4e38479..b9d5362bd 100644 --- "a/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" +++ "b/documents/guides/others/\346\233\264\346\226\260\346\227\245\345\277\227.html" @@ -11,11 +11,11 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();更新日志 | Eurynome Cloud - + -

    更新日志

    v2.5.5.0

    1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
    2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
    3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
    4. 修改默认验证码字体配置
    5. 去除无用依赖包
    6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
    7. 新增Camunda 官方脚本
    8. 优化数据导入脚本

    v2.5.4.130

    1. 修复单体版Knife4j依赖错误问题
    2. 修复单体版配置错误问题
    3. 增加Gitee流程模版
    4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
    5. 优化自定义页面显示内容,增加Exception StackTrace输出
    6. 修复XssUtils校验出错问题。
    7. 优化ResourceServer安全配置
    8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
    9. 解决前端控制台出错问题
    10. 更新在线文档,增加OAuth2 四种模式验证说明

    v2.5.4.120

    1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
    2. Swagger文档注解全面升级为支持OpenAPI
    3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
    4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
    5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
    6. 修复Bpmn服务默认启动Tomcat问题。
    7. 升级前端依赖包版本
    8. 更新Nacos配置文件及导入包
    9. 更新在线文档

    v2.5.4.110

    1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
    2. 更换Nacos导入包,解决上一版本导入包导入重复问题
    3. Update Readme

    v2.5.4.100

    1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
    2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
    3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
    4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
    5. 增加MySQL数据库默认数据初始化脚本
    6. 增加最新版Nacos配置导入包
    7. 修复前端UI申请APPKEY页面错误
    8. 修复前端UI切换至单体版后,连接错误问题。
    9. 升级前端UI依赖包版本。
    10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

    v2.5.4.90

    1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
    2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
    3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
    4. 新增SQL 注入攻击防控机制。
    5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
    6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
    7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
    8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
    9. 解决修改Redis密码配置生效问题
    10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
    11. 升级依赖包版本
      • spring-boot-admin 升级至 2.5.1
      • git-commit-id-plugin 升级至 4.9.10
      • docker-maven-plugin 升级至 0.37.0
      • hutool 升级至 5.7.10
      • okhttps 升级至 3.1.4
      • JustAuth 升级至1.16.3
      • aliyun-java-sdk-core 升级至 4.5.25
      • baiducloud-java-sdk 升级至 0.10.175
      • aliyun-java-sdk-oss 升级至 3.13.1
      • cn.jpush.api 升级至 3.5.2
    12. 规范项目文档,增加系统部署、数据库切换等多部分内容
    13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
    14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
    15. 解决授权码模式(authorization code)验证码被拦截问题

    v2.5.4.80

    • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
    • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
    • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
    • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
    • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
    • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

    v2.5.4.65

    • 优化Skywalking打包内容,直接使用Skywalking官方容器
    • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
    • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
    • 在Gitee Wiki中,增加数据库初始化说明文档
    • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
    • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

    v2.5.4.60

    • Spring Boot 版本升级至 2.5.4
    • Skywalking 版本升级至 8.7.0
    • 微服务日志输出至日志中心格式。
    • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
    • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
    • 修复Kafka配置不生效问题。
    • 解决单体版自动启动Kafka问题。
    • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

    v2.5.4.55

    • 整合代码,将constant包代码整合至common包中。删除constant包。
    • 完善Rest接口校验机制,以及相关自定义错误码
    • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

    v2.5.4.50

    • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
    • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
    • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
    • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 清理系统无用代码。
    • 增加方法级动态权限演示动图,更新Readme

    v2.5.4.40

    • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
    • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
    • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

    v2.5.4.30

    • 重新调整Property配置,规范Property定义。修改相关配置
    • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
    • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
    • 调整部分常理代码位置,常量代码基本调整完成
    • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
    • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

    v2.5.4.20

    • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
    • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
    • 调整包依赖关系,新建assistant、constant包,删除message包。
    • 逐步将平台中各类非独有常量移入constant包方便管理和修改
    • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
    • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
    • 删除无用代码

    v2.5.4.10

    • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
    • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
    • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
    • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
    • 实现动态权限配置的多服务同步。
    • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
    • 修改配置文件配置
    • 删除无用代码

    v2.5.3.60

    • Nacos版本升级至2.0.3
    • Hutool版本升级至5.7.6
    • 修改部分代码名称
    • 修改配置文件配置参数

    v2.5.3.50

    • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
    • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
    • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
    • 删除无用代码
    • 为动态Scope权限做铺垫。
    • 全面支持方法级权限控制。

    v2.5.3.40

    • Spring Boot 版本升级至 2.5.3
    • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
    • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
    • git commit 插件升级至 5.0.0 版本

    v2.5.3.30

    • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
    • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
    • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
    • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
    • 删除不再使用的通用类代码。
    • 修改说明文档

    v2.5.3.10

    • 自研基于Caffeine和Redis分布式两级缓存
    • 完美支持JPA Hibernate二级缓存
    • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
    • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
    • 极大的简化了原有自研的基于JetCache的缓存使用方式。
    • 保留JetCache,可根据实际使用需要使用。
    • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

    2.5.2.40

    • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
    • jetcache valueEncoder 和 valueDecoder 修改为kryo
    • 部分代码的日志改为传统方式,不再使用@Slf4j注解
    • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
    • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
    • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
    • 将Hibernate Validator替换为spring-boot-starter-validation
    • 删除JPA过期方法封装

    v2.5.2.30

    • Spring Boot 版本升级至2.5.2
    • Spring Boot Admin 版本升级至2.4.2
    • 升级其它相关依赖版本

    v2.5.2.25

    • Skywalking升级至8.6.0

    v2.5.2.20

    • Spring Boot 升级至2.5.1
    • Camunda 升级至7.15.0
    • 其它依赖包版本升级
    • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
    • 结构性调整平台相关配置属性

    v2.5.1.0

    • Spring Boot 大版本升级至2.5.0

    v2.4.5.60

    • 修改负载均衡不生效问题
    • 调整包依赖关系
    • 升级版本

    v2.4.5.48

    • 正式发布开源版本
    更新时间: 2021/9/12 上午3:37:41
    贡献者: herodotus
    - +

    更新日志

    v2.5.5.0

    • 重大更新

      1. Spring Boot 升级至 2.5.5
      2. Spring Cloud 升级至 2020.0.4
      3. 大幅改进系统数据库表和数据初始化方式,实现OAuth2业务表自动创建,取消使用脚本的创建方式,提升便捷性
      4. 新增人力资源管理相关功能,功能和模型设计实现与Camunda用户体系统一。便于用户体系数据的同步和管理。
      5. 基于rollup、lerna 和 yarn workspaces,以 monorepo 方式重新构建前端工程。新版前端工程是以Vue2、Typescript开发的,组件库式的前端功能。代码更清晰、组件化和重用化程度更高。为升级至Vue3做前序铺垫。
    • 其它更新

      • 解决Skywalking UI连接Skywalking OAP Server出错问题。
      • 修改防刷机制的默认配置
      • 重新梳理错误体系,优化错误信息,错误提示更加友好。
      • 解决单体版对Basic模式认证跨域拦截的问题
      • 实现OAuth2 Password模式部分参数加密传输方式,提升系统安全性。
      • 修复老版本前端工程已知问题。
      • 在线文档同步更新。
    • 依赖包版本升级

      • Hutool 升级至 5.7.13
      • okhttps 升级至 3.1.5
      • weixin-java-miniapp 升级至 4.1.9.B
      • JustAuth 升级至 1.16.4
      • jasypt-spring-boot-starter 升级至 3.0.4
      • mybatis-plus-boot-starter 升级至3.4.3.4
      • dysmsapi20170525 升级至 2.0.5

    v2.5.4.140

    1. 优化Antisamy通用代码,提升Xss分析西能,去除严格拦截导致的JSON解析错误。
    2. 解决本地权限缓存并发写入冲突,抛出com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException问题。
    3. 解决OAuth Starter引入Upms Logic 重复导入权限数据问题。
    4. 修改默认验证码字体配置
    5. 去除无用依赖包
    6. 新增MySQL57数据库切换配置。更新Nacos 配置SQL脚本,增加最新导入包。
    7. 新增Camunda 官方脚本
    8. 优化数据导入脚本

    v2.5.4.130

    1. 修复单体版Knife4j依赖错误问题
    2. 修复单体版配置错误问题
    3. 增加Gitee流程模版
    4. 修复OAuth2自定义confirm_access.html,error.html,login.html页面,数据类型编译错误。
    5. 优化自定义页面显示内容,增加Exception StackTrace输出
    6. 修复XssUtils校验出错问题。
    7. 优化ResourceServer安全配置
    8. 修复OAuth2 四种模式中授权码模式(Authorization Code)、隐式授权模式(Implicit Grant)模式出错问题。
    9. 解决前端控制台出错问题
    10. 更新在线文档,增加OAuth2 四种模式验证说明

    v2.5.4.120

    1. 使用Springdoc全面替换Springfox,配置更灵活、配置更多样
    2. Swagger文档注解全面升级为支持OpenAPI
    3. 使用Springdoc重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j同步升级至3.0.3版本。
    4. Swagger文档默认支持OAuth2 Password、Authorization Code 两种认证流程
    5. 整合Camunda Engine Rest 与Swagger,实现Camunda API接口文档查阅,支持聚合查阅。
    6. 修复Bpmn服务默认启动Tomcat问题。
    7. 升级前端依赖包版本
    8. 更新Nacos配置文件及导入包
    9. 更新在线文档

    v2.5.4.110

    1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
    2. 更换Nacos导入包,解决上一版本导入包导入重复问题
    3. Update Readme

    v2.5.4.100

    1. 重新梳理所有Nacos配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
    2. 重构数据库相关Nacos配置,优化Maven、Nacos多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
    3. 解决eurynome-cloud-management编译出现的Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
    4. 解决Redis设置密码后,无法连接出现 NOAUTH Authentication required 错误
    5. 增加MySQL数据库默认数据初始化脚本
    6. 增加最新版Nacos配置导入包
    7. 修复前端UI申请APPKEY页面错误
    8. 修复前端UI切换至单体版后,连接错误问题。
    9. 升级前端UI依赖包版本。
    10. 同步更新相关文档,补充新建子模块、常见问题等部分文档。

    v2.5.4.90

    1. 使用Mybatis Plus全面替换已有Mybatis,与Spring Boot Data JPA共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
    2. 整合Mybatis Plus和Spring Boot Data JPA更换数据库配置属性,一处修改即可以同时修改Mybatis Plus和Spring Boot Data JPA使用数据库类型。
    3. 新增接口XSS脚本攻击过滤机制,同时支持请求参数和JSON请求体过滤。采用Ebay XSS过滤模型,进一步提升防控能力。
    4. 新增SQL 注入攻击防控机制。
    5. 解决eurynome-cloud-gateway和eurynome-cloud-management服务启动调用Kafka问题。
    6. 解决CacheConfigException错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
    7. 解决Spring Boot Admin 不支持Java 8 时间类型问题。
    8. 解决Spring Boot Admin 不显示 Git Properties 信息问题。
    9. 解决修改Redis密码配置生效问题
    10. 梳理dependencies依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
    11. 升级依赖包版本
      • spring-boot-admin 升级至 2.5.1
      • git-commit-id-plugin 升级至 4.9.10
      • docker-maven-plugin 升级至 0.37.0
      • hutool 升级至 5.7.10
      • okhttps 升级至 3.1.4
      • JustAuth 升级至1.16.3
      • aliyun-java-sdk-core 升级至 4.5.25
      • baiducloud-java-sdk 升级至 0.10.175
      • aliyun-java-sdk-oss 升级至 3.13.1
      • cn.jpush.api 升级至 3.5.2
    12. 规范项目文档,增加系统部署、数据库切换等多部分内容
    13. 增加Nacos配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
    14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
    15. 解决授权码模式(authorization code)验证码被拦截问题

    v2.5.4.80

    • 合并eurynome-cloud-curd包和eurynome-cloud-rest包,减少包数量,提升代码维护便捷度。
    • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
    • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent和@AccessLimited注解进行灵活的、个性化的配置。
    • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问Redis带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
    • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持Duration时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
    • 定义Stamp签章体系,采用统一体系,对SMS短信验证码、JustAuth State、环信Token以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问Redis压力。

    v2.5.4.65

    • 优化Skywalking打包内容,直接使用Skywalking官方容器
    • 补充RequestMappingScanner对应事件代码,解决单体版扫描Rest API接口后不会存储问题
    • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC初始化机制与Hibernate 初始化机制冲突问题。
    • 在Gitee Wiki中,增加数据库初始化说明文档
    • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
    • 前端UI中,增加部分配置,使用者可以通过注释部分配置,让前端UI快速支持单体版。

    v2.5.4.60

    • Spring Boot 版本升级至 2.5.4
    • Skywalking 版本升级至 8.7.0
    • 微服务日志输出至日志中心格式。
    • 增加Swagger注入条件注解,优化日志中心相关配置采用统一常量控制
    • 增加自定义Property"助手"数据统一自动编译生成配置,无须额外设置,在IDE中编辑配置属性时可自动弹出提示
    • 修复Kafka配置不生效问题。
    • 解决单体版自动启动Kafka问题。
    • 暂时关闭单体版Swagger,规避Swagger会自动启动Kafka问题。

    v2.5.4.55

    • 整合代码,将constant包代码整合至common包中。删除constant包。
    • 完善Rest接口校验机制,以及相关自定义错误码
    • 统一spring boot validation错误信息,将其整合至平台统一响应实体Result中。无须在各个Rest接口中,添加BindingResult参数。

    v2.5.4.50

    • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
    • 重新梳理Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证Voter逻辑,使用统一逻辑实现@PreAuthorize注解权限的全面动态可配置化。统一平台接口- 白名单,IP地址白名单,以及Scope绑定URL的管理。
    • 重构UserDetails用户信息组织逻辑,使用Spring Security标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
    • 优化平台权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及分布式各服- 务多实例等各种应用场景。
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 清理系统无用代码。
    • 增加方法级动态权限演示动图,更新Readme

    v2.5.4.40

    • 优化自定义多级缓存,实现可以统一设置allowNullValues值,并解决存储空值时卡死问题。
    • 重新梳理、优化系统权限从Controller扫描、汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构、UPMS自身应用需求、分布式架构以及- - 分布式各服务多实例等各种应用场景。
    • 增加Kafka条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖Kafka而导致的无法启动
    • 修复部分已知BUG,将部分代码中日志由@Slf4j改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时Idea提醒代码不一致问题。
    • 去除传统Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

    v2.5.4.30

    • 重新调整Property配置,规范Property定义。修改相关配置
    • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
    • 增加Kafka配置,增加@KafkaListener动态控制,以避免在不需要的情况下Kafka的自动开启。
    • 调整部分常理代码位置,常量代码基本调整完成
    • 将原有自定义条件,转换为@ConditionalOnXXX注解,让使用更加便捷
    • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled注解

    v2.5.4.20

    • 本地权限缓存更换为JetCache,为服务多实例的权限扫描和存储提供更好的支持
    • 将数据访问策略从Conditional类,升级为Conditional注解,使用更加便捷
    • 调整包依赖关系,新建assistant、constant包,删除message包。
    • 逐步将平台中各类非独有常量移入constant包方便管理和修改
    • 采用Spring Boot Event和Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构、UPMS、分布式多实例等不同场景接口扫描的特殊需求
    • 优化Docker Compose配置,使用Debezium Kafka 替换已有kafka,以支持Debezium应用
    • 删除无用代码

    v2.5.4.10

    • 全网首个实现Spring Security 动态URL权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
    • 全面支持方法级权限控制,Security OAuth2 permitAll等方法权限以及@PreAuthorize注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
    • 彻底解决使用withObjectPostProcessor方式,会覆盖外部匹配规则问题。
    • 真正实现Scope权限与URL权限的关联与管控,拓展OAuth2默认只进行Scope简单对比的实现逻辑。
    • 实现动态权限配置的多服务同步。
    • 暂时去除JetCache,全面使用自研支持Hibernate二级缓存的多级缓存。
    • 修改配置文件配置
    • 删除无用代码

    v2.5.3.60

    • Nacos版本升级至2.0.3
    • Hutool版本升级至5.7.6
    • 修改部分代码名称
    • 修改配置文件配置参数

    v2.5.3.50

    • 将所有服务包括UAA的权限存储,改为本地和认证中心,多级分布式存储和验证。
    • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
    • 改进自研多级缓存,解决Hibernate二级缓存进行数据缓存时产生的事务锁问题。
    • 删除无用代码
    • 为动态Scope权限做铺垫。
    • 全面支持方法级权限控制。

    v2.5.3.40

    • Spring Boot 版本升级至 2.5.3
    • 采用新的Hash算法,缩短权限标识;简化用户权限信息,以缩短平台生成JWT Token的长度
    • git commit 插件由pl.project13.maven » git-commit-id-plugin改为io.github.git-commit-id » git-commit-id-maven-plugin。
    • git commit 插件升级至 5.0.0 版本

    v2.5.3.30

    • 重构用户中心用户人员体系,将平台用户、第三方社交登录用户、人事管理用户以及Camunda工作流用户体系无缝融合。
    • 人事管理体系人员唯一化管理,同时支持企业、党组、团青等多种类型的机构类型,便于企业人事管理。
    • 基于Debezium实现数据库变更数据捕获,实现人事管理信息与Camunda工作流用户实时同步。
    • 树形结构通用代码实现逻辑与Hutool Tree一致,因此采用Hutool Tree 全面替换已有的Tree代码。
    • 删除不再使用的通用类代码。
    • 修改说明文档

    v2.5.3.10

    • 自研基于Caffeine和Redis分布式两级缓存
    • 完美支持JPA Hibernate二级缓存
    • 完美支持各类查询数据缓存以及JPA @ManyToMany, @ManyToOne等关联查询。
    • 实现基于Caffeine的Hibernate二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
    • 极大的简化了原有自研的基于JetCache的缓存使用方式。
    • 保留JetCache,可根据实际使用需要使用。
    • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

    2.5.2.40

    • Redis Value 默认序列化工具修改为Jackson2JsonRedisSerializer
    • jetcache valueEncoder 和 valueDecoder 修改为kryo
    • 部分代码的日志改为传统方式,不再使用@Slf4j注解
    • 抽象实体共性属性,拓展基础实体,以支持JPA视图类的ORM映射。
    • 重构基础Service,将基础Service的读操作与其它操作分离,以支持“视图”相关Service的编写。
    • 重构基础Controller,将基础Controller的读操作与其它操作分离,以支持“视图”相关Controller的编写。
    • 将Hibernate Validator替换为spring-boot-starter-validation
    • 删除JPA过期方法封装

    v2.5.2.30

    • Spring Boot 版本升级至2.5.2
    • Spring Boot Admin 版本升级至2.4.2
    • 升级其它相关依赖版本

    v2.5.2.25

    • Skywalking升级至8.6.0

    v2.5.2.20

    • Spring Boot 升级至2.5.1
    • Camunda 升级至7.15.0
    • 其它依赖包版本升级
    • Swagger回滚至2.9.2,解决Swagger接口测试相关问题以及Knife4 Authorize不显示问题
    • 结构性调整平台相关配置属性

    v2.5.1.0

    • Spring Boot 大版本升级至2.5.0

    v2.4.5.60

    • 修改负载均衡不生效问题
    • 调整包依赖关系
    • 升级版本

    v2.4.5.48

    • 正式发布开源版本
    更新时间: 2021/9/18 上午12:47:54
    贡献者: herodotus
    + diff --git a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java index b9157d666..152ad62ac 100644 --- a/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java +++ b/packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/exception/HerodotusExceptionHandler.java @@ -170,7 +170,7 @@ protected static Result getResult(ResultStatus resultStatus, int httpSta public static Result resolveException(Exception ex, String path) { - log.trace("[Herodotus] |- Global Exception Handler, Path : [{}], Exception : [{}]", path, ex); + log.trace("[Eurynome] |- Global Exception Handler, Path : [{}], Exception : [{}]", path, ex); Result result = new Result().failed(); @@ -179,7 +179,7 @@ public static Result resolveException(Exception ex, String path) { if (EXCEPTION_DICTIONARY.containsKey(exceptionName)) { result = EXCEPTION_DICTIONARY.get(exceptionName); } else { - log.warn("[Herodotus] |- Global Exception Handler, Can not find the exception name [{}] in dictionary, please do optimize ", exceptionName); + log.warn("[Eurynome] |- Global Exception Handler, Can not find the exception name [{}] in dictionary, please do optimize ", exceptionName); } } @@ -187,7 +187,7 @@ public static Result resolveException(Exception ex, String path) { result.stackTrace(ex.getStackTrace()); result.detail(ex.getMessage()); - log.debug("[Herodotus] |- Global Exception Handler, Error is : {}", result); + log.debug("[Eurynome] |- Global Exception Handler, Error is : {}", result); return result; } diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java index 284a515c6..3d9b42e75 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/enums/ResultStatus.java @@ -111,9 +111,9 @@ public enum ResultStatus { ERROR(50000, "Error"), NULL_POINTER_EXCEPTION(50001, "后台代码出现了空值"), IO_EXCEPTION(50002, "IO异常"), - HTTP_MESSAGE_NOT_READABLE_EXCEPTION(50003, "Http Message 不可读异常"), + HTTP_MESSAGE_NOT_READABLE_EXCEPTION(50003, "JSON转换为实体出错!"), TYPE_MISMATCH_EXCEPTION(50004, "类型不匹配"), - MISSING_SERVLET_REQUEST_PARAMETER_EXCEPTION(50005, "Servlet请求参数缺失"), + MISSING_SERVLET_REQUEST_PARAMETER_EXCEPTION(50005, "接口参数使用错误或必要参数缺失,请查阅接口文档!"), IllegalArgumentException(50006, "非法参数错误"), SERVICE_UNAVAILABLE(50301, "Service Unavailable"), diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/utils/XssUtils.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/utils/XssUtils.java index 8484d8027..3b1ebee00 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/utils/XssUtils.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/utils/XssUtils.java @@ -70,7 +70,7 @@ private Policy createPolicy() { URL url = ResourceUtils.getURL("classpath:antisamy/antisamy-anythinggoes.xml"); return Policy.getInstance(url); } catch (IOException | PolicyException e) { - log.warn("[Herodotus] |- Antisamy create policy error! {}", e.getMessage()); + log.warn("[Eurynome] |- Antisamy create policy error! {}", e.getMessage()); return null; } } @@ -81,15 +81,15 @@ private CleanResults scan(String taintedHtml) throws ScanException, PolicyExcept private String cleanHtml(String taintedHtml) { try { - log.trace("[Herodotus] |- Before Antisamy Scan, value is: [{}]", taintedHtml); + log.trace("[Eurynome] |- Before Antisamy Scan, value is: [{}]", taintedHtml); // 使用AntiSamy清洗数据 final CleanResults cleanResults = scan(taintedHtml); String result = cleanResults.getCleanHTML(); - log.trace("[Herodotus] |- After Antisamy Scan, value is: [{}]", result); + log.trace("[Eurynome] |- After Antisamy Scan, value is: [{}]", result); return result; } catch (ScanException | PolicyException e) { - log.error("[Herodotus] |- Antisamy scan catch error! {}", e.getMessage()); + log.error("[Eurynome] |- Antisamy scan catch error! {}", e.getMessage()); return taintedHtml; } } @@ -100,7 +100,7 @@ public static String cleaning(String taintedHTML) { //AntiSamy会把“ ”转换成乱码,把双引号转换成""" 先将 的乱码替换为空,双引号的乱码替换为双引号 String temp = cleanHtml.replaceAll(getInstance().nbsp, ""); String result = temp.replaceAll(getInstance().quot, "\""); - log.trace("[Herodotus] |- After Antisamy Well Formed, value is: [{}]", result); + log.trace("[Eurynome] |- After Antisamy Well Formed, value is: [{}]", result); return result; } } diff --git a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/cache/layer/HerodotusCache.java b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/cache/layer/HerodotusCache.java index f37347170..7832dfb9d 100644 --- a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/cache/layer/HerodotusCache.java +++ b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/cache/layer/HerodotusCache.java @@ -73,21 +73,8 @@ private String secure(Object key) { return original; } - @Nullable - @Override - public String getName() { - return this.name; - } - - @Nullable - @Override - public Object getNativeCache() { - return this; - } - @Override protected Object lookup(Object key) { - String secure = secure(key); Object caffeineValue = caffeineCache.get(secure); @@ -108,49 +95,13 @@ protected Object lookup(Object key) { } @Override - public ValueWrapper get(Object key) { - - String secure = secure(key); - - ValueWrapper caffeineValue = caffeineCache.get(secure); - if (ObjectUtils.isNotEmpty(caffeineValue)) { - log.trace("[Eurynome] |- CACHE - Get ValueWrapper data from caffeine cache, hit the cache."); - return caffeineValue; - } - - ValueWrapper redisValue = redisCache.get(secure); - if (ObjectUtils.isNotEmpty(redisValue)) { - log.trace("[Eurynome] |- CACHE - Get ValueWrapper data from redis cache, hit the cache."); - return redisValue; - } - - log.debug("[Eurynome] |- CACHE - Get ValueWrapper data form Herodotus Cache for key: [{}], value is null", secure); - - return null; + public String getName() { + return this.name; } @Override - public T get(Object key, Class type) { - - String secure = secure(key); - - T caffeineValue = caffeineCache.get(secure, type); - if (ObjectUtils.isNotEmpty(caffeineValue)) { - log.trace("[Eurynome] |- CACHE - Get with type form caffeine cache, hit the cache."); - return caffeineValue; - } - - T redisValue = redisCache.get(secure, type); - if (ObjectUtils.isNotEmpty(redisValue)) { - log.trace("[Eurynome] |- CACHE - Get with type form redis cache, hit the cache."); - caffeineCache.put(secure, redisValue); - log.trace("[Eurynome] |- CACHE - Sync redis cache to caffeine cache, in 'Get with type' action"); - return redisValue; - } - - log.debug("[Eurynome] |- CACHE - Get with type form Herodotus Cache for key: [{}], value is null", secure); - - return null; + public Object getNativeCache() { + return this; } /** @@ -167,10 +118,9 @@ private Object getRedisStoreValue(Object key, Callable valueLoader) { } @SuppressWarnings("unchecked") - @Nullable @Override + @Nullable public T get(Object key, Callable valueLoader) { - String secure = secure(key); T value = (T) caffeineCache.getNativeCache().get(secure, k -> getRedisStoreValue(k, valueLoader)); @@ -183,8 +133,7 @@ public T get(Object key, Callable valueLoader) { } @Override - public void put(Object key, @Nullable Object value) { - + public void put(Object key, Object value) { if (!isAllowNullValues() && value == null) { throw new IllegalArgumentException(String.format( "Cache '%s' does not allow 'null' values. Avoid storing null via '@Cacheable(unless=\"#result == null\")' or configure RedisCache to allow 'null' via RedisCacheConfiguration.", @@ -199,22 +148,8 @@ public void put(Object key, @Nullable Object value) { } } - @Override - public ValueWrapper putIfAbsent(Object key, Object value) { - - String secure = secure(key); - - caffeineCache.putIfAbsent(secure, value); - ValueWrapper valueWrapper = redisCache.putIfAbsent(secure, value); - - log.debug("[Eurynome] |- CACHE - Put data into Herodotus Cache If Absent, with key: [{}] and value: [{}]", secure, value); - return valueWrapper; - } - - @Nullable @Override public void evict(Object key) { - String secure = secure(key); log.debug("[Eurynome] |- CACHE - Evict Herodotus Cache for key: {}", secure); @@ -229,7 +164,6 @@ public void evict(Object key) { @Override public void clear() { - log.trace("[Eurynome] |- CACHE - Clear Herodotus Cache."); if (clearRemoteOnExit) { @@ -240,4 +174,26 @@ public void clear() { caffeineCache.clear(); log.trace("[Eurynome] |- CACHE - Clear Herodotus Cache in caffeine cache."); } + + @Override + public ValueWrapper get(Object key) { + + String secure = secure(key); + + ValueWrapper caffeineValue = caffeineCache.get(secure); + if (ObjectUtils.isNotEmpty(caffeineValue)) { + log.trace("[Eurynome] |- CACHE - Get ValueWrapper data from caffeine cache, hit the cache."); + return caffeineValue; + } + + ValueWrapper redisValue = redisCache.get(secure); + if (ObjectUtils.isNotEmpty(redisValue)) { + log.trace("[Eurynome] |- CACHE - Get ValueWrapper data from redis cache, hit the cache."); + return redisValue; + } + + log.debug("[Eurynome] |- CACHE - Get ValueWrapper data form Herodotus Cache for key: [{}], value is null", secure); + + return null; + } } diff --git a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/jpa/hibernate/cache/spi/HerodotusDomainDataStorageAccess.java b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/jpa/hibernate/cache/spi/HerodotusDomainDataStorageAccess.java index 9563bacc0..cf0278659 100644 --- a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/jpa/hibernate/cache/spi/HerodotusDomainDataStorageAccess.java +++ b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/jpa/hibernate/cache/spi/HerodotusDomainDataStorageAccess.java @@ -25,16 +25,20 @@ import org.apache.commons.lang3.ObjectUtils; import org.hibernate.cache.spi.support.DomainDataStorageAccess; import org.hibernate.engine.spi.SharedSessionContractImplementor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.cache.Cache; /** - *

    Description: TODO

    + *

    Description: 自定义DomainDataStorageAccess实现

    * * @author : gengwei.zheng * @date : 2021/7/14 21:10 */ public class HerodotusDomainDataStorageAccess implements DomainDataStorageAccess { + private static final Logger log = LoggerFactory.getLogger(HerodotusDomainDataStorageAccess.class); + private final Cache cache; public HerodotusDomainDataStorageAccess(Cache cache) { @@ -43,40 +47,59 @@ public HerodotusDomainDataStorageAccess(Cache cache) { private Object get(Object key) { Cache.ValueWrapper value = cache.get(key); + if (ObjectUtils.isNotEmpty(value)) { return value.get(); } return null; } + @Override + public boolean contains(Object key) { + Object value = this.get(key); + log.debug("[Eurynome] |- CACHE - SPI check is key : [{}] exist.", key); + return ObjectUtils.isNotEmpty(value); + } + @Override public Object getFromCache(Object key, SharedSessionContractImplementor session) { - return this.get(key); + Object value = this.get(key); + log.debug("[Eurynome] |- CACHE - SPI get from cache key is : [{}], value is : [{}]", key, value); + return value; } @Override public void putIntoCache(Object key, Object value, SharedSessionContractImplementor session) { + log.debug("[Eurynome] |- CACHE - SPI put into cache key is : [{}], value is : [{}]", key, value); cache.put(key, value); } @Override - public boolean contains(Object key) { - Object value = this.get(key); - return ObjectUtils.isNotEmpty(value); + public void removeFromCache(Object key, SharedSessionContractImplementor session) { + log.debug("[Eurynome] |- CACHE - SPI remove from cache key is : [{}]", key); + cache.evict(key); } @Override - public void evictData() { - cache.clear(); + public void evictData(Object key) { + log.debug("[Eurynome] |- CACHE - SPI evict key : [{}] from cache.", key); + cache.evict(key); } @Override - public void evictData(Object key) { - cache.evict(key); + public void clearCache(SharedSessionContractImplementor session) { + this.evictData(); + } + + @Override + public void evictData() { + log.trace("[Eurynome] |- CACHE - SPI clear all cache data."); + cache.clear(); } @Override public void release() { + log.trace("[Eurynome] |- CACHE - SPI cache release."); cache.invalidate(); } } diff --git a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java index a6f57c729..98f6c7504 100644 --- a/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java +++ b/packages/eurynome-cloud-oauth-starter/src/main/java/cn/herodotus/eurynome/oauth/autoconfigure/WebSecurityAutoConfiguration.java @@ -36,11 +36,9 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; -import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -77,7 +75,6 @@ */ @Configuration @EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) @Order(2) public class WebSecurityAutoConfiguration extends WebSecurityConfigurerAdapter { diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java index 6275d5136..c4f4462f0 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/base/service/BaseReadableService.java @@ -53,7 +53,7 @@ public E findById(ID id) { writeToCache(domain); } - log.debug("[Herodotus] |- BaseReadableService findById."); + log.debug("[Eurynome] |- BaseReadableService findById."); return domain; } @@ -65,7 +65,7 @@ public Page findByPage(int pageNumber, int pageSize) { writeToCache(pages); } - log.debug("[Herodotus] |- BaseReadableService findByPage."); + log.debug("[Eurynome] |- BaseReadableService findByPage."); return pages; } @@ -77,7 +77,7 @@ public Page findByPage(int pageNumber, int pageSize, Sort.Direction direction writeToCache(pages); } - log.debug("[Herodotus] |- BaseReadableService findByPage."); + log.debug("[Eurynome] |- BaseReadableService findByPage."); return pages; } @@ -88,7 +88,7 @@ public List findByPage() { domains = ReadableService.super.findByPage(); writeToCache(domains); } - log.debug("[Herodotus] |- BaseReadableService findAll."); + log.debug("[Eurynome] |- BaseReadableService findAll."); return domains; } } diff --git a/platform/eurynome-cloud-management/src/main/resources/configs/common/eurynome-cloud-database.yaml b/platform/eurynome-cloud-management/src/main/resources/configs/common/eurynome-cloud-database.yaml index 63ba32eda..7a63d255b 100644 --- a/platform/eurynome-cloud-management/src/main/resources/configs/common/eurynome-cloud-database.yaml +++ b/platform/eurynome-cloud-management/src/main/resources/configs/common/eurynome-cloud-database.yaml @@ -36,7 +36,7 @@ spring: use_jdbc_metadata_defaults: false sql: init: - mode: never + mode: ${herodotus.switch.database.init-mode} platform: ${herodotus.database-information.platform} continue-on-error: true encoding: UTF-8 diff --git a/platform/eurynome-cloud-management/src/main/resources/configs/development/eurynome-cloud-environment.yaml b/platform/eurynome-cloud-management/src/main/resources/configs/development/eurynome-cloud-environment.yaml index 3fed5772f..45976021c 100644 --- a/platform/eurynome-cloud-management/src/main/resources/configs/development/eurynome-cloud-environment.yaml +++ b/platform/eurynome-cloud-management/src/main/resources/configs/development/eurynome-cloud-environment.yaml @@ -17,6 +17,7 @@ herodotus: switch: database: ddl-auto: create + init-mode: never use-second-level-cache: true show-sql: false format-sql: false diff --git a/platform/eurynome-cloud-management/src/main/resources/configs/docker/eurynome-cloud-environment.yaml b/platform/eurynome-cloud-management/src/main/resources/configs/docker/eurynome-cloud-environment.yaml index 13a76ba17..2195e741b 100644 --- a/platform/eurynome-cloud-management/src/main/resources/configs/docker/eurynome-cloud-environment.yaml +++ b/platform/eurynome-cloud-management/src/main/resources/configs/docker/eurynome-cloud-environment.yaml @@ -17,6 +17,7 @@ herodotus: switch: database: ddl-auto: update + init-mode: never use-second-level-cache: true show-sql: false format-sql: false diff --git a/platform/eurynome-cloud-management/src/main/resources/configs/production/eurynome-cloud-environment.yaml b/platform/eurynome-cloud-management/src/main/resources/configs/production/eurynome-cloud-environment.yaml index 092ac264b..d6b04aa4a 100644 --- a/platform/eurynome-cloud-management/src/main/resources/configs/production/eurynome-cloud-environment.yaml +++ b/platform/eurynome-cloud-management/src/main/resources/configs/production/eurynome-cloud-environment.yaml @@ -17,6 +17,7 @@ herodotus: switch: database: ddl-auto: update + init-mode: never use-second-level-cache: true show-sql: false format-sql: false diff --git a/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234519.zip b/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234519.zip deleted file mode 100644 index 627f10843c93fe6dd048229b345b3027cebfd9fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6759 zcmb7I2T;@RmPH7HfT2iHL7IT{78H;sRUnkmo0LdbNHC#GF9L!z>0NpUY0{;4=?J0s zjv&$@u;A{DKKJ?GeK(VtFUicw@4IvEx#wO87z;p(fs2cakyA&fhVfg_UY?EN*4A(s zm#H1X2?n<|Y%~LXE!b-sWxaX>l2g zKJZ!y+(cUV?oNI5)U;L~2zJ;;Povi$1Ti<)Cnz&gJ@^c`gJzRDA2eoJ`-f1iP`C-tcV!_$_S`Xe-Gm2uAxE=o^TuHB)J&t8_a)W z1A3lSKSpJ;LLwFMy9(F*y|>7ytom$<*pKHZ#JMFF2wc5)$H9x{_V+4DS63%nw@ddC zg7_$#2)VvEES%V7C49_nqE{!^Az&O_UC|5R#bv5qV`5-H{+dkAzb4ZJY72c1MVfNh zz>&7*2vg)MtDmV&)YOOHdP?frS9F`jHHEbXk)qz=ib*modoAOkHBG_yZ{;GzLZv-D zOgv;Hx!EbCsthR%K7)V()?BICYXd}HyXLhUM**Mvg-U6H6>%{?k0l8n8uyAE_GZiS zPUi*_BSce|1BsGfjHlq`E|w;b)B1AR=0BT7D&SFLj>0@Et-dcv={!iM^AVkQ3!609 z{A@5jbk z-QKsnZ_8i#R-W&gRM$sYU7XvWno%1$m<#Hoi)x(mYS6S*6(f2smtTu>V1_)rbF_$Q z+aatWg)ffTsAu>-lyhtZ!x8-HhMGyLYEG!kQ*V0oDJ8lcENO0+>am^~I_F2IFHt%a zh+ElQ32Ha0moE!yy zQcqV9`wRgS{U+C77e470HL0z<{aK-~DDyBW>(is~0->odS=y0P<#r~O4*QJc>{a#Q zwbMVnC}Y8V>vi?-MXRf8N=s_&LHha|7q3Btk4c}yVF_=X@J*Amr&M~veCvh(jdHyFU)X+z^rI5`S?$*WW&=cfeQVgE(s@ zpAF&lK$#$QFZZ|3TOUj%6i769?G9QxV{@FXUzn{ASFO=xB07Y^rBqT68ivwvx}v9a zKG=dKwkBc&x=boGsyx6|jj5y}4HMeV~6 zatlwkp~LD8aWQw)ZewM=!#IOZi#ch|hXF=|+GlaUc|=G6RYI!C>em=|(N#me-#_v? zneYnFin0<(N8qyYaiw3l1!BH(vZ@_^w7dyuDt%8znLi1UwG$|d^o;a39WbvqLDJsK zySXxJGUI8c)4uCbgUOE^ev0_cqo6%!OTV`j&|fD-LH;B)myrYhfcsC-!OrV>Zoda*H5(w`Vgy!>) ztYB3w9w@;K8QY0!`X0&HTdioxJ?iL?iXE$ZWVB*K-bVL9+{5w&u;Nb8+MGhdim-T2 z27;KiO%5;36Xw%%K z4sb6)OdFFuB;<~z^|WU7yPWX^!dtauxI<>JHc#cdPqN$mfYR$Y1oK`^I4bc7ABQdn zAP}~>oheluByta&P8;MSAtCcZ8k3xND{3v$M}ev+V(BgvK)4FXztL6?AQ!O&Cd%>O z8oE}}xxGx-X%<3qo%|H9^}zmXQEyFjc9k|=?iyr*t;CECna=)Y^`OKtPHC=G8>Ssds*8<*fk*I9s{QvC z_!4UN68cl83pBpKCS-`}S6FZvv`SPr0q;Bv!qo_+3EjLNR+Z=kJbUi0Dj<%5$}y1( zqo>eZ*R?YeC^l|>$HT#Lj2i1Uj(kf~~t1>Lj zl5oMU7UQ)>oqm}*F|Q`1Cz)U}@y(ejj|@++ktTG(g)UZXX;V&J&l#|s45l9~U^Ghu z-N=P_lz0$@;z;Ir$x)n?QhofP#yjVb@a71XF=>SW=}M#P_B0a_l|cI{;`^&Vd~BY` zB=vH;5?t$h!_A%`P2aZ<03YHm-PsafZ=9l|VGtMyGhL%joz#r;e6Qx&?y3;l_pvv? zJpMgr@D`BB_B}2|_Mjw?=~d~0SBl&{KZ34Bfk*sS(UN$~Z~=^Dr3}^kN?KL71#3;7 zrs{drHK801>|rstHxJI6Zt>%q$NbnZLyYoHx}m0#NJ1zH z<)-{{Qo%&&{^rY;8xpi`yExt*vQnO+2aFOzk5u!PpW{w%0g8ezxblMlssuhU@1nHk z=s@jm@|HAxdUt0}%uiK5Fn~oLhcCQCd3S(d+>Nxx27VrwQ2YDi`sAS;Lrxy`T-TMBkpV4_2nWP$8O_4(> zsK})SpIarA{*TWIV{YZStL`WR+hd9tl^p%L`&)|iZ>9|h*j8Ts{R1U&*Fx2HEZd!~4HY`dU% zsiW^itwP3jch=Q~<8SjR2&hq0Pg3pHd@zd(>)~5?6B|V!y1=%;!uAYlo0$Uzj>}j; zlZC6vWdNgUcQ{bwA;Y~+%wt7fuf1l7t~J}y&zd{Tigg|_?(|qh3Rn>*ayj*ne0aCt z3=gX0Z)k~_@kq7AkHCeGzdZw7m9pLWml;Gq>R#00rIKukBt2taT zxS5u~_fP~o5cOvBb!-^EQn9>^Ns3Bl*VF^CVvCxb%u=k4ht{E@jnUobExE)^DW)kL692`B#t-e-cJ7+%*?%6JK11x*o4bOO6{k{m5Qjk&8&TQ~BTG!0t4vJMCQ%t)RKE1j zl41hpRZWbOizfFGCz%wdD|0-LK#Vve5dYkv z)ywzahX9(ta`4jj+x|@GJ5^;cr8w#5?X24!;>_$)jos5;(bT$Ftg<1cHC!mVQc(BV zz@nzE-p#u#+QjOBJTJdNX8()`K0_uUlned?RN;7xBoqkxaeBC17r@hO=kLkVCyuKf zW78BtMME?W5S!6XkG09cCN=lL#m@#dN+OGvljM*RfSBBD+HQY%H661;_8w&Ei}TV{ z?!vIgFe-)wg6YdWn=iBO%k6XbtGbA!HvOkhbvA)z#j4 zHjo#-;#V=ysTS8muo{;Rvx()Q*0_-DMB-jMYPPRXBe+6H=dj;JjNgwxYL}d!P4_!l zafbKSiVGcR>u|Zu8u-|I+LBuIWUTw-0qWQQ1`QZ#8<#@mmf&TK005dkpyM%;jj~ef z$1~?#u6N>IkhNU*uML*XS=^>gzPT?AC!T-zU|md2oRRO$S>L+0VrTZyS8y%F0etJz zcmC4P8kG?XHV0CHMyIs>sjZF#uqRbO{lu2RR?!bq>@5*+*ws%zIpL}*j+o#ks68YT-jjc9uPU@G z*iJpziBC(CsjZfd2l<|zcwU#j$cl*XT%~_bfp6qV&Vq`-`I_w0aJ0_S3N$WMro$~T zM=|y4S~=j@Y1MDxt=%Fsad#Ie^losGGcgYUCG^t9NAQ|^8SoCWkreIieg9S&UrEl( z*N`o3DF0aEoEV0I!s*D8N+b_Rc;V_zN|#nbjTx7pv{D-lHw;lmTJ%0Jd@FxT{w1%3 z7HiCKj$0o(oBJ`1%E-(L8Z0KNxX1!eNojSMxGkcxuczl+dZY76OfAaIsdC2JCWR*x zxS~*)I3lrS=$Cc$yjScMY)D#D|CLumsf=te$maFFf>(K2n||yW<^sp$^5hKP;n9%| zvn`D)XYf&SsO#GwF!GD^a`C3n_vDg>J%uMO-%(|tFs@mu!Lw`!OvMIX$;=O`(FF>Q zIK))-_Xha<`IgX`5Qb4j_w(|~51LQ2r;)RV^ePZ7Wy>45&{SO(eTr1yRx=wmT@mVU zolhN7OVUe1OP}*$9SfiL6=ta>yzIJ>i_7$pw{i5K%PY`_TsC60831cc)evQQTBkyc zq@KCy#%yoBMR=tRO^k*;SDYyOM@}$ZaRP4q(iHK3(V;+HQEh^osO|@w?QB0a!)6Oz zFx-g$YrH8k|?efpE`f+GEjr~cf8 zcm=We3-OF}%#{dr-4zf?h%>vWf(}*d+=RRqx#UT)7?m|nW0kM;^!Lf;O==5Rfdlo2 zRHa$(Cx=mdl+tMidJT<|KqZrOy!dG5Ng6b(INMD(vsX#PfsF52DJ&ZB+sG_b93O41 zb8^*(1Xn|}LRdEy@bB%ZU?B%a;P%j`9I4o&*&syw5BiD4Qg3hm)CKXu?R)-rquY9= zwN~#wym`E6b+)!Ve|FS9y5VQ*@|yRKRNm5>RPfe|hXbD%b=<dMxSR!ueXC&+O+C9CvpY`5eJYF*Fj>V|uXoW3xf(tbXcJC{5h&QvGuI(M? zdXJ@-#e4PRTWWDk&5*R9T`27fYy+L4V`CA~uBuGP>-ey0yiyoLmG7?arU&erDNC^) z-y7d&f&C;Qa3DY|C0saMBBpSlnO1krBCE4b^_ zXyr+NA9G;d4_gV7B7vn_J|EA_=djzsnex?8*3y7^tq*#rLEI{cdg(mU=ufy)a&{t>@Ask359brYdC43(R~_h ziDQRe(zR8ybSIEnM>*BHt1x#|@rX`6nKA4J>4p{@=tXm9WjwBta+aCE;<4P55uunx zhV;8WswcHscvT8^CWFpYwGunz*sIhJwPCmk``#oS<=lI8pvd8pH0!!dd}-WQ@;fJw zOBReX6I^l&Y(HUdMC_KQt-@Ja#+Drmi z1~UlBCCoZvqFQ1EZ!vVr!ewjwhy3=TAOwerg@;O@x^9KfS@X=Zjzv0}`-$cL!@0c= zWv}tFZZxEIuAAn*Mj!0&2#c$UR1K=%HO%kCSQ%_=DU}ye@^0#{_Q*Z2-!vH75e{#! zPO2rJu{Pe59nsQrF5eySpec2l6t&WvnqkP2FYJAhrso1&p-HH54Aan}Y6Jzxgm9S8 zeiH%R_&Uh@seRvGh-8AK5&MmvK{T@Z)$v~06h$>YXSBtnatG%dOIc*-pf1;kK9xYx z$l*NV`bw+nfDQ@^z4SE*#r3-(OFXg8wQRG($ze8cFgOfGEnUL-mRus4cL!I*}*EbM~o#(MB=^Jhu8(Kp7{UoxWh zr$S%DB*pl(5&wO?OMA(Se~tfZKMn!^E86dChpUzFuTZ@F|9_A6w*~Q^*uT#~w7-Ba zPgs|e(Z9$3wZ`}p?e`hsYIgb+y?B2^`lZ`4Yb@C?blhPyYoD&!HRu diff --git a/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234531.zip b/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.4.90/nacos_config_export_20210901234531.zip deleted file mode 100644 index d93b6fb8c2a01f821870f15c26116744a7c93b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmWIWW@Zs#;Nak3Sie^>m;nhW0@)d=Nxjq<$6OPr&xN+Zn3Zq*`L8Kg5~@_11>C`J@MIDpR_e6rys8n zQu5n+=GEGk14oNB;`dsAFyTtyQT)lM!Rfm5{b-ieY)q5pUhC_1GL~6+X2y=5MY1N* zlQ@D5b5m~TsTf79?NL$Eo%?%2XYm@&%6R>crx3kfw=epZ*~sHYsI}wfF4q2WMBxu>18c^UQQ~=&C^Xx%FM|u zsf7FeumZ^MO-gU0%n}Ulr1f4m>S7k0uhdoZy(V^tx4H7!*)x6Csl~thb|m6Rl-R$p zo}E{N!Cs%7dL+=>)Vd(KU7=SvVM)M(lG~@&T~5|MGx5|DA<@$n?|HcFn%-P&m?Fh! z$|-Q7-E*N-%M$*X8pmhJynU@2r_sP)+;Tnq^tt}lpgADVuZ?&%V;yhnOR-vwvxa;B zT4gQ!Qhro%k1Zp}_vda@sxE{3o{>p}0TJcMAp?qXR6sBR1bCwwhinxnI1%78kcrbc XjKB@>W@Q8EWdg$GK>8yv;ushJ5;F2u diff --git a/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140405.zip b/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140405.zip new file mode 100644 index 0000000000000000000000000000000000000000..0782413506ad32fdb579b77e19aaaa37df825795 GIT binary patch literal 7147 zcmeHMWn7f|)2w6Cp;HM#LK+2TPyrPr58d#B z_r6z;?>Xn5`|bU3_k4NgH}hN1>^*D$_g?GK(Lh5dL&3(zMhSJ7&_nqt7_P4EAZ~6D z@ExF!Clm~E1M=FrLVWCb?QHBoKt8CAn`=U{0Hj+EKjQErmb#T>;t{JJ>l~w^l!2}9 z7L9mw4s$+fbotq#B&rgQu8s7|Lz(=Kw_k_OTW{NIk|Yb_dSWf~^c(Wu`U)(>s2N z+m(KgV|Op~Qb|ZMA0EO~8OUK(?Yu2x>Iqv+e0aj$zEC+vgz>iG?4*6}$z1;g#{A`3 zD%F8Uu0Vjl?Vzu~_*jT6^liiOnbTqKA8_W0EF>ausgrK6J==^C(`Tn$| z_BP%&wl-csUU!I>x1%S}%ft11fg_RxNJ9CE01vfOx-%HuoYnDYwQG{odvQ#VJi-Ki zM$!1J8;HZpb-y?EYJK)v>Lx@W2AhSY)Ml)0GV-b^BDvf4Q*vsOeR~9JUGV(mI8ixu zKsa3j)8-!d+XE5!I-@nWiASe=A_MHw_@n2F$4kRZ$vP2HPySV4_Ph0lGM-WTCYfph ztvt>H3IK$={&coZVhYnXD+!U|u}glPdH4)8BJV1%J6GBNdFFpkCKnqA7n|?7RvNqo zBb13cmpQRnjNrQKWC=c5;}H7`<%Z4b!Z|TLi}-j7@Ectb((vh{RJ}*+fttyqwIeZ(*^_*U8wAAOso3PO z31$K|kGg}$1!}Y^_=BItMa5h*6>&Kr;wbrArMh-nVdn8PmI4e0c#gsf29+r-@mQ~Q z{yIkO!YRS!t%JEQS>Q7@C;(CukHDPK+Vr@#%H^?&ClGV4z(>Ua8f z12&mLT`gCOTTa11#OlpFSTl^w&*!4|w^0xB3HmFrCs`f0vep;o;{4 zVvgi&ALw|FK7WCFzdqc9ro(LG@;+|$A!E_yX43^iSKk8f{YaRDQHD0D)*CR#>fRk| ztrr(2U3aDOtm#zq0Es(L0O5L<7QoUCGd=VK^y1jD`g4#)MjHcL3S*qgIk`%)ZD{2t zEU!Q}zfxu2Hj;%ER8Ff-iaiJ6Y%Zym!hq@T9mse$Ss7ypw%pe^vTtE=At!~Wl{p(U zS{-!|%I{K{9?#x|<@9`6seUh~J|z)SzfgqU;4=$8CNI5DKf7|&fp)oSHxo~7$~Bn! z@ykV_v>Oc1s3QEeA{361jv5Z@Aa879n>15Gnu|U;$G22IL9}drWj`TqsP3sasA&@b z__uIs1S{&s3YTSv-kRkpiwvVxFcO?YBEztDcfAhTUrlmGaYkE;ois~14E0p#ZM!;; z@h=Sf`@4I+8I64Eq%1fYZ{}bscobh9|LleP+wH8fNC^;iaYW$GiZTVUxi+xg-b`9o zY8k65hy+P`mVr%CrFSD~zVK3bDf5-klEGpPz`Ju%-bh9CotQR-2jo!<=OtQf8Sj0j zb`$O$tLsjV!BgG}Ktn-^!1}9B=DzB6d!R4S72@s&1bhEF8-QS6Cr=3Y`lEj|wf;Rl zQhB0|Q|>Z#f(J9K8YJ-bd(YFz4CHj=_H6e@_BIoTwfeJ6YzxGVSye{$q3^TV?|e8C zTI_%6P9n-8k1K8bFe~W%tB>|5f^#gH!D#j~ogIv@l+mKdw>Vh<(Bfkq_o_%ji8O?W z&4!XAZYh9(0E<6In|x$H^)&!Mqc8uC)dRU2{|%L<#Clsdr`96_ppjd%@DiqcYOf4x zn>H^ezRCJvUadmJ^te1TYxC=BSjR?X!*Y@z;nMW^KDf<87`bx0!rObw;7;6IZ<)sQ zskU6pT4Z9L62!ozP3%>bU<6{T;ebkNyGPBZ##c`HOxqw#VJ=u=&$F)1vm?nP0A==u zCYdgiWA39M89yoJ%ooCj%64^V-~3aM;=YXfDCx!F27&oKR2inN1uP3#<>NzI{p)M) z6HGdEhBvS*{S$?z?Vs_2h-So`-%-T_?bY3bmn58pJ6%6jekt*Jj4%nMmCGy65{{$N zjVP*G?jjNXEWSJ*atdk%jwImq8+GD1p3#1=-$*rmwY)QKyp}9b)kB#+h%b^5z|LQ} z!%dPUT_4EolSc{B2!>)6(whTIs4bU0xfFE-_YX;&KiMl*eTMNuKzEY)g(HV~z0E@8 zh}ChuCYKA9mm|eO-{kdqCU~7u0{ZvHQ;m_FYAReIw>?CQmxl)@mcYJ&mOO~o)fZ7{UtG-{EbK20;`zX<>5GT) zSL|iGW-r9f1?c&Ah&v_szr1us7Ci9jrk)S zn`J-Gq4jwybeHDQH?wQD%9GuTmN1qLAD6DKX;i;W&Z?V?L6zO>F_k?=X{_4y+Ync{ zCR}eGvr;E%96V*>OoYMe*XlNU)3oi1x);AtH%LsJ%55*sKw5HjDD$;LD_yoJZ2m)m z@n)oUcaz{89X`}*wR@AWsKc5)XvPrBE)q6-sXv{AvwJ7ga&ynH>QEqtkU=WMkP%Sd z=L~z=l07^B0-bxQHmk6vUKLCuWj7HvXREL}_{AR$kM)HSlNXu+a^Q-&t2+9_sRS8x z7^dQh(>@O;$i(-Csk4&tOPt2>eQ*vS(#x?fM(@1n>bi~P-|}?fGmf@^v%lc#4w&eT zK4Rr~bDU!$vs&~mMM8{^#_G5)U!XNOwO^a+M&?kzotuIJY{yaGSw>guK;dfm+H2x3nrsuEc>TPZ{7%epf* z>H`RTT}eBSZJF7s&8PM9LiTj$91#__J86~w@%-%QqJQ>T+-_Y<94Jpst5Obl_H6Pn z+&W_(8rO#KQ;iuk;2hsE)0)<$0PB|26U~rpc3=vXuYakIb3TlHyZMZMt9$#T*fES; zs`_1{=*fWYU_rm+r&=C@?*(Jgi1V3Z0}cZ$nl;3j-)3iNRI-0|!^hJdoaXTE~oVd6$Dc&lM2i&`)+J z0==FH#ViZ585RxoeJZpe8`z&}tT9uF9}u2~iOwsz)Y8z=bCNJWmEM&4!J7a*dS#k2 zqrpufLZJXO3J?4^diUAVfRiLET**-~aqT%+JmAQMuatL!4_hy;XwKdz@LVI$ zgXVi{Ba+gmnCR_A?T?ow$6AM5smSwU5)H@;0VAfeiOR)HwU^x$dsAx3>5l%QnOu}{ zIqqr;Z@Sl{^Ru{=%VGT0aZrgPaZ^|B%dp>;NkYRyCbpV{*^xEtQ+}fBV zU+`K@-&G-MUA5bfNKRnovz6ajiL>Gk7s?)xd-APZzJp|mFCz_Fwq^Z1=w^R!v1;!- zofH9R_Ze5a*ld8 zR7IJgDI`i7tyH4zg$W9{$#o{@I7;lJ4YfSIQWE*6J74_V*vyS%z;|6_pWMsE?4+e< zj|5uYpyvfEX2PmwXq=F9*!>R0#|fa5248wD*_hiGQ(#{|y6I{y&Ol*9i@8Sd4G z7`!Q#IIE5^rftMWA)^8>md~3{T5HQbZwDrjS_Tfw4d_E)5CGPE(#s58`9J&D&Kg(q~kRU{;^CnUUtpS#=Q zrqR3zw@d0K_v_wv;;p!hN9tcR_FWEH?bvQ@PnuIWNnhR+mKB<&$c?+ru+re}D)H1( zuT^%JtNqaYE{6J>%O@)++@~(1Pb-FIYb7{|IWz$3R-fBi%cskopn$0K2q%H2xIrqs zD(H*3FMhcr`vHhRNk_wyHT$!p;t6N*;n+5Y$ys|nImb3yL@a~xE4_gR30f9pbam0T z$Nr(wkXB+9@Kx?80~*&O`o?*Jc~|(?Ffr9CC>r5SVuA_Jn_fDpM{Cl_n2WvEEZ{422sg%sB zaTC-nMiNAqi@Gk0_%s{cAeFS&7S&q!s!AU_I!k5#6=24LL6f?xnJC#ie7FUbb`9L} zkrW{&K})k98iR6H(sdufSXm>?XCSyStV0wnZt+@iyL^;lm}D<CQ}oELm`UEaTQ#0>zY@PYG-SLbR3_v-Jca_3 zJQ+!X#ZSmX>8^SM6dn@pJ%uYVRXQ=;Jw!4wpE@)+okA>LurNk){|x`hYQAJW*kN81 ztNxzgU|_l1fww|jEu^@Ys$i>rdwaO_EB_*)s!<>5w48Yssfm+hQ?=ANmk7#0;C!mh zqRNgZD%pUUXK&@LY2=N|X!P1Pcuy?9szQ~9a29_Y#muHQ8r|u zr3>FUETkXn{U>q!F#lK^`XE7%+Uj$hIFA)i%xo||am;D(_wjCs{ce;869vVU;ID+` zwJq{@#=D5vKj-^B?H+#o$Su{gC>kBeP$Us5pj@0Eyo53z6q4QQQqT~!q)7$3%-y$Z z+g#~Svg%L^>%Qd@yLr&}1eZ)bS{zTm&b#1|lQBh|i~Pf{ntsuDH?X;J9;RhM82c#Y zqelEU*R5x&%lCXGC{k$)0M#Qku5P62WT*fso6{f;S;HjlArBhu$Mqw7^58e#yT|iZ zURACs2l7uOSsIpC8y8?Ieg=rzmF)+nm$0Qch}1yOYJx);4_BL*Z6oQsj&oOpM=z^cSL~n7GKL?(S6BD0gxnuv|FF7$Mf=&jxMtFiAirYXe_*%$3jDLOy!JkR#5DHb zbwd6M^LnfO5h-~8i9-Dq_vbzO_qg}3TJP^GhhK4j-X4FCt4;W4f7QQe@Y7EIEAGz+ z!}ad@BWj8M9q#u-;8(z(JLC5(;3NNcfV|&-=s!;v9Sw{t+MuA|UcHR29Ni#_>v#VH DzluWt literal 0 HcmV?d00001 diff --git a/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140414.zip b/platform/eurynome-cloud-management/src/main/resources/imports/v2.5.5.0/nacos_config_export_20210925140414.zip new file mode 100644 index 0000000000000000000000000000000000000000..c1c6492d96ef72621ffffc93d7bfbd13b41521ed GIT binary patch literal 2275 zcmb7_2{4;^AIBpk(oh?kwp!E~WtTdlURSB8Gnz)yqN}^E2$qN@Qq_yK?yIPx&aNY> zl?@fGn`#{)#p~Ks8(Q7Px~epcqjsa)S=xDP-u*rE%>193XTCGv&+~nLUo2W!1P*{e zAb{vVLp)&HC=1S>WDTTj`jd;b zxhd*JuS-sUwd-)EOu3_WTjgqP-7rJvg^hu@bm}iHF%*kue6%|utic|ft?{no&Qh(> z^x>}JRt@S)A(_{P&xx&P<_(^NBFHAy$t8OG#k7fM^kbRQBNZ33Xubz1l-Utid^^d^ z?`GsR1<6q0FR~i*%4(5GW?=`T$5-E{uJoL~KOI?SOtOBJw4QPl)4Qz3@6~Q@Exbx- zk4-&aYeW05Mu{sHEeeUz2tm9O@OT6S0I**qrtn2#6fc4=^#iVNj;M8V&=1FOST(zo zYz?pu9FCJhOWlx)$1~vK&Fcy4V^ZIMZcZf(6s)JMr}lX?4AkG}6s*_37^s&zR&I4H zIqTc_x(x zjS0M?N&a9esIPFI<8d1fQYfAGiJC1Gy zI=ehhduh)WPjkO*K{!3fp+!H@QOl{s35Dw!o=~jis|X>KeJS7d%MpEWG88|H?yUVM z?CT&-R+226?%mycKaTV>R%&O~v_BaTVeqph*TtU4$s>^(6=5Y5Nr$JfPJ`r_E zl_+?bK_D_tmmP6HqDJ`XUBDy}HvzpXt*ENj!@E#IK6Tv|jRHovI=;zHXoj_sqWLS) zd~39MFL0lj_0Kuxh$0-z`P{B(+P5<1wrDNep;HGimQw9zEA$<*MQ!_1-QqpfqN; zqOC&{*;&v0a$npdye}Mme`9uo$ozBm<;)wud-dGO-ANbXn9;4>!RWIJyh{PUDRKLF z4WkS~>v+FMXeD$_aGhKIG z5?u<)IL@f945q2H5guD6Y4Y3rXK4?$N}V2r(|cFyv=WzcB6~KjXe?oPenWLNNaZZyOzv$|Q@Memm?k)C(2zElD$WAH#T99HNFAAAJ4x&*%U#7G`5>?aP!`I(8 zDCF-zC)G%_Xv0oiZfpU~S~a5VH;5!MJl;)N9)wy6?uP#{Nh}IM;ybEjr>>f4rXs4o2Ws>r0?D_B2A@CE0q^{65g+ zp`*?LkR1L`QXN&=?-Y?Y2ksY=8t7t{kn?u)t48-4rIzgqan*X;DRd=J z@&U8Zz|0$y;!#>tqlG`O!#gMublo&jJ3pQOqe-#oPX)KHNQF<-bOpr!x8PRMe6F@Vs+((dYa#>z{*v0qCHuM9_D{c= r?ya!{{hO?RuDhM@W^lH~8oZP4#~5MJAi-+@07!7%5HKDescription: 人事归属视图实体

    - * - * @author : gengwei.zheng - * @date : 2021/7/15 14:08 - */ -@Schema(title = "人事归属视图实体") -@Entity -@Immutable -@Table(name = "v_sys_ownership") -public class SysOwnershipView extends BaseEntity { - - @Schema(title = "归属ID") - @Id - @Column(name = "ownership_id") - private String ownershipId; - - @Schema(title = "所属单位ID") - @Column(name = "organization_id") - private String organizationId; - - @Schema(title = "所属单位名称") - @Column(name = "organization_name") - private String organizationName; - - @Schema(title = "所属单位上级代码") - @Column(name = "organization_parent_id") - private String organizationParentId; - - @Schema(title = "所属部门ID") - @Column(name = "department_id") - private String departmentId; - - @Schema(title = "所属部门名称") - @Column(name = "department_name") - private String departmentName; - - @Schema(title = "所属部门上级代码") - @Column(name = "department_parent_id") - private String departmentParentId; - - @Schema(title = "人员ID") - @Column(name = "employee_id") - private String employeeId; - - @Schema(title = "人员姓名") - @Column(name = "employee_name") - private String employeeName; - - @Schema(title = "电子邮件") - @Column(name = "email") - private String email; - - @Schema(title = "PKI电子邮件") - @Column(name = "pki_email") - private String pkiEmail; - - @Schema(title = "手机号码") - @Column(name = "phone_number") - private String phoneNumber; - - @Schema(title = "身份") - @Column(name = "identity") - @Enumerated(EnumType.ORDINAL) - private Identity identity = Identity.STAFF; - - @Override - public String getLinkedProperty() { - return this.getDepartmentId(); - } - - @Override - public String getId() { - return this.getOwnershipId(); - } - - public String getOwnershipId() { - return ownershipId; - } - - public void setOwnershipId(String ownershipId) { - this.ownershipId = ownershipId; - } - - public String getOrganizationId() { - return organizationId; - } - - public void setOrganizationId(String organizationId) { - this.organizationId = organizationId; - } - - public String getOrganizationName() { - return organizationName; - } - - public void setOrganizationName(String organizationName) { - this.organizationName = organizationName; - } - - public String getOrganizationParentId() { - return organizationParentId; - } - - public void setOrganizationParentId(String organizationParentId) { - this.organizationParentId = organizationParentId; - } - - public String getDepartmentId() { - return departmentId; - } - - public void setDepartmentId(String departmentId) { - this.departmentId = departmentId; - } - - public String getDepartmentName() { - return departmentName; - } - - public void setDepartmentName(String departmentName) { - this.departmentName = departmentName; - } - - public String getDepartmentParentId() { - return departmentParentId; - } - - public void setDepartmentParentId(String departmentParentId) { - this.departmentParentId = departmentParentId; - } - - public String getEmployeeId() { - return employeeId; - } - - public void setEmployeeId(String employeeId) { - this.employeeId = employeeId; - } - - public String getEmployeeName() { - return employeeName; - } - - public void setEmployeeName(String employeeName) { - this.employeeName = employeeName; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPkiEmail() { - return pkiEmail; - } - - public void setPkiEmail(String pkiEmail) { - this.pkiEmail = pkiEmail; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public Identity getIdentity() { - return identity; - } - - public void setIdentity(Identity identity) { - this.identity = identity; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("ownershipId", ownershipId) - .add("organizationId", organizationId) - .add("organizationName", organizationName) - .add("organizationParentId", organizationParentId) - .add("departmentId", departmentId) - .add("departmentName", departmentName) - .add("departmentParentId", departmentParentId) - .add("employeeId", employeeId) - .add("employeeName", employeeName) - .add("email", email) - .add("pkiEmail", pkiEmail) - .add("phoneNumber", phoneNumber) - .add("identity", identity) - .toString(); - } -} diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java index cf886625d..fea32c751 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysAuthority.java @@ -51,7 +51,7 @@ public class SysAuthority extends BaseSysEntity { @Id @GeneratedValue(generator = "authority-uuid") - @GenericGenerator(name = "authority-uuid", strategy = "cn.herodotus.cloud.upms.api.generator.SysAuthorityUUIDGenerator") + @GenericGenerator(name = "authority-uuid", strategy = "cn.herodotus.eurynome.upms.api.generator.SysAuthorityUUIDGenerator") @Column(name = "authority_id", length = 64) private String authorityId; diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableDeploy.java similarity index 98% rename from services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java rename to services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableDeploy.java index f5149b2ce..78cb10354 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipConfig.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableDeploy.java @@ -44,7 +44,7 @@ * @date : 2021/9/25 10:24 */ @Schema(description = "增加人员归属参数BO对象") -public class OwnershipConfig extends BaseDTO { +public class AllocatableDeploy extends BaseDTO { @NotNull(message = "单位ID不能为空") @Schema(description = "单位ID") diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableRemove.java similarity index 83% rename from services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java rename to services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableRemove.java index 51a674054..0d44281b6 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/OwnershipRemove.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/dto/AllocatableRemove.java @@ -35,11 +35,11 @@ * @date : 2021/9/25 10:25 */ @Schema(description = "删除人员归属参数BO对象") -public class OwnershipRemove extends BaseDTO { +public class AllocatableRemove extends BaseDTO { - @NotNull(message = "归属ID不能为空") - @Schema(description = "归属ID") - private String ownershipId; + @NotNull(message = "单位ID不能为空") + @Schema(description = "单位ID") + private String organizationId; @NotNull(message = "部门ID不能为空") @Schema(description = "部门ID") @@ -49,12 +49,12 @@ public class OwnershipRemove extends BaseDTO { @Schema(description = "人员ID") private String employeeId; - public String getOwnershipId() { - return ownershipId; + public String getOrganizationId() { + return organizationId; } - public void setOwnershipId(String ownershipId) { - this.ownershipId = ownershipId; + public void setOrganizationId(String organizationId) { + this.organizationId = organizationId; } public String getDepartmentId() { @@ -76,7 +76,7 @@ public void setEmployeeId(String employeeId) { @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("ownershipId", ownershipId) + .add("organizationId", organizationId) .add("departmentId", departmentId) .add("employeeId", employeeId) .toString(); diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java index 0a15b8874..f5a000896 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/repository/hr/SysOwnershipRepository.java @@ -22,8 +22,12 @@ package cn.herodotus.eurynome.upms.logic.repository.hr; +import cn.herodotus.eurynome.assistant.exception.persistence.TransactionRollbackException; import cn.herodotus.eurynome.data.base.repository.BaseRepository; import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; /** *

    Description: 人事归属Repository

    @@ -40,6 +44,9 @@ public interface SysOwnershipRepository extends BaseRepositoryDescription: 人事归属实体Repository

    - * - * @author : gengwei.zheng - * @date : 2021/7/15 16:29 - */ -public interface SysOwnershipViewRepository extends BaseRepository { - - /** - * 根据人员ID,查找该人员的人事归属信息 - * - * @param employeeId 人员ID - * @return 该人员的所有人事归属信息 - */ - List findByEmployeeId(String employeeId); -} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java index 49a51f649..dae5aa1d7 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysDepartmentService.java @@ -81,7 +81,7 @@ public Page findByCondition(int pageNumber, int pageSize, String return criteriaQuery.getRestriction(); }; - log.debug("[Herodotus] |- SysDepartment Service findByCondition."); + log.debug("[Eurynome] |- SysDepartment Service findByCondition."); return this.findByPage(specification, pageable); } @@ -97,6 +97,6 @@ public List findAll(String organizationId) { public void deleteById(String departmentId) { sysOwnershipService.deleteByDepartmentId(departmentId); super.deleteById(departmentId); - log.debug("[Herodotus] |- SysDepartment Service deleteById."); + log.debug("[Eurynome] |- SysDepartment Service deleteById."); } } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java index 9716b350c..ab978531e 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysEmployeeService.java @@ -31,8 +31,8 @@ import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; import cn.herodotus.eurynome.upms.api.entity.system.SysUser; -import cn.herodotus.eurynome.upms.logic.dto.OwnershipConfig; -import cn.herodotus.eurynome.upms.logic.dto.OwnershipRemove; +import cn.herodotus.eurynome.upms.logic.dto.AllocatableDeploy; +import cn.herodotus.eurynome.upms.logic.dto.AllocatableRemove; import cn.herodotus.eurynome.upms.logic.repository.hr.SysEmployeeRepository; import cn.herodotus.eurynome.upms.logic.service.system.SysUserService; import org.apache.commons.collections4.CollectionUtils; @@ -48,9 +48,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import javax.persistence.criteria.Subquery; +import javax.persistence.criteria.*; import java.util.ArrayList; import java.util.List; @@ -141,7 +139,7 @@ public Page findByCondition(int pageNumber, int pageSize, String em return criteriaQuery.getRestriction(); }; - log.debug("[Herodotus] |- SysEmployee Service findByCondition."); + log.debug("[Eurynome] |- SysEmployee Service findByCondition."); return this.findByPage(specification, pageable); } @@ -202,23 +200,23 @@ public Page findAllocatable(int pageNumber, int pageSize, String or List rootPredicates = new ArrayList<>(); rootPredicates.add(criteriaBuilder.not(criteriaBuilder.exists(subQuery))); if (StringUtils.isNotBlank(employeeName)) { - subPredicates.add(criteriaBuilder.like(root.get("employeeName"), like(employeeName))); + rootPredicates.add(criteriaBuilder.like(root.get("employeeName"), like(employeeName))); } if (StringUtils.isNotBlank(mobilePhoneNumber)) { - subPredicates.add(criteriaBuilder.like(root.get("mobilePhoneNumber"), like(mobilePhoneNumber))); + rootPredicates.add(criteriaBuilder.like(root.get("mobilePhoneNumber"), like(mobilePhoneNumber))); } if (StringUtils.isNotBlank(email)) { - subPredicates.add(criteriaBuilder.like(root.get("email"), like(email))); + rootPredicates.add(criteriaBuilder.like(root.get("email"), like(email))); } if (ObjectUtils.isNotEmpty(gender)) { - subPredicates.add(criteriaBuilder.equal(root.get("gender"), gender)); + rootPredicates.add(criteriaBuilder.equal(root.get("gender"), gender)); } if (ObjectUtils.isNotEmpty(identity)) { - subPredicates.add(criteriaBuilder.equal(root.get("identity"), identity)); + rootPredicates.add(criteriaBuilder.equal(root.get("identity"), identity)); } Predicate[] rootPredicateArray = new Predicate[rootPredicates.size()]; @@ -228,7 +226,19 @@ public Page findAllocatable(int pageNumber, int pageSize, String or return criteriaQuery.getRestriction(); }; - log.debug("[Herodotus] |- SysEmployee Service findAllocatable."); + log.debug("[Eurynome] |- SysEmployee Service findAllocatable."); + return this.findByPage(specification, pageable); + } + + public Page findByDeparmentId(int pageNumber, int pageSize, String departmentId) { + Pageable pageable = PageRequest.of(pageNumber, pageSize); + + Specification specification = (root, criteriaQuery, criteriaBuilder) -> { + Join join = root.join("departments", JoinType.LEFT); + return criteriaBuilder.equal(join.get("departmentId"), departmentId); + }; + + log.debug("[Eurynome] |- SysEmployee Service findAllocatable."); return this.findByPage(specification, pageable); } @@ -237,7 +247,7 @@ public SysEmployee authorize(String employeeId) { SysUser sysUser = sysUserService.register(sysEmployee); sysEmployee.setUser(sysUser); - log.debug("[Herodotus] |- SysEmployee Service authorize."); + log.debug("[Eurynome] |- SysEmployee Service authorize."); return this.saveOrUpdate(sysEmployee); } @@ -246,17 +256,18 @@ public SysEmployee authorize(String employeeId) { public void deleteById(String employeeId) { sysOwnershipService.deleteByEmployeeId(employeeId); super.deleteById(employeeId); - log.debug("[Herodotus] |- SysEmployee Service deleteById."); + log.debug("[Eurynome] |- SysEmployee Service deleteById."); } @Transactional(rollbackFor = TransactionRollbackException.class) - public boolean configOwnership(OwnershipConfig ownershipConfig) { - List sysEmployees = ownershipConfig.getAllocatable(); - List sysOwnerships = ownershipConfig.getOwnerships(); + public boolean deployAllocatable(AllocatableDeploy allocatableDeploy) { + List sysEmployees = allocatableDeploy.getAllocatable(); + List sysOwnerships = allocatableDeploy.getOwnerships(); if (CollectionUtils.isNotEmpty(sysEmployees) && CollectionUtils.isNotEmpty(sysOwnerships)) { List result = sysEmployeeRepository.saveAllAndFlush(sysEmployees); if (CollectionUtils.isNotEmpty(result)) { sysOwnershipService.saveAll(sysOwnerships); + log.debug("[Eurynome] |- SysEmployee Service deleteById."); return true; } } @@ -265,15 +276,15 @@ public boolean configOwnership(OwnershipConfig ownershipConfig) { } @Transactional(rollbackFor = TransactionRollbackException.class) - public boolean removeOwnership(OwnershipRemove ownershipRemove) { - SysEmployee sysEmployee = super.findById(ownershipRemove.getEmployeeId()); + public boolean removeAllocatable(AllocatableRemove allocatableRemove) { + SysEmployee sysEmployee = super.findById(allocatableRemove.getEmployeeId()); if (ObjectUtils.isNotEmpty(sysEmployee)) { SysDepartment sysDepartment = new SysDepartment(); - sysDepartment.setDepartmentId(ownershipRemove.getDepartmentId()); + sysDepartment.setDepartmentId(allocatableRemove.getDepartmentId()); sysEmployee.getDepartments().remove(sysDepartment); SysEmployee result = super.save(sysEmployee); if (ObjectUtils.isNotEmpty(result)) { - sysOwnershipService.deleteById(ownershipRemove.getOwnershipId()); + sysOwnershipService.delete(allocatableRemove.getOrganizationId(), allocatableRemove.getDepartmentId(), allocatableRemove.getEmployeeId()); return true; } } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java index b8d646a9e..65596a36d 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOrganizationService.java @@ -96,7 +96,7 @@ public Page findByCondition(int pageNumber, int pageSize, Organ return criteriaQuery.getRestriction(); }; - log.debug("[Herodotus] |- SysOrganization Service findByCondition."); + log.debug("[Eurynome] |- SysOrganization Service findByCondition."); return this.findByPage(specification, pageable); } @@ -117,7 +117,7 @@ public Page findByCondition(int pageNumber, int pageSize, Organ public void deleteById(String organizationId) { sysOwnershipService.deleteByOrganizationId(organizationId); super.deleteById(organizationId); - log.debug("[Herodotus] |- SysOrganization Service deleteById."); + log.debug("[Eurynome] |- SysOrganization Service deleteById."); } /** diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java index 049d92d4c..360929595 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipService.java @@ -22,6 +22,8 @@ package cn.herodotus.eurynome.upms.logic.service.hr; +import cn.herodotus.eurynome.common.constant.enums.Gender; +import cn.herodotus.eurynome.common.constant.enums.Identity; import cn.herodotus.eurynome.data.base.repository.BaseRepository; import cn.herodotus.eurynome.rest.base.service.BaseLayeredService; import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnership; @@ -60,69 +62,23 @@ public BaseRepository getRepository() { return this.sysOwnershipRepository; } - /** - * 根据单位ID删除人事归属 - *

    - * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 - * - * @param organizationId 单位ID - */ public void deleteByOrganizationId(String organizationId) { sysOwnershipRepository.deleteByOrganizationId(organizationId); - log.debug("[Herodotus] |- SysOwnershipService Service deleteByOrganizationId."); + log.debug("[Eurynome] |- SysOwnershipService Service deleteByOrganizationId."); } - /** - * 根据单位ID删除人事归属 - *

    - * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 - * - * @param departmentId 部门ID - */ public void deleteByDepartmentId(String departmentId) { sysOwnershipRepository.deleteByDepartmentId(departmentId); - log.debug("[Herodotus] |- SysOwnershipService Service deleteByDepartmentId."); + log.debug("[Eurynome] |- SysOwnershipService Service deleteByDepartmentId."); } - /** - * 根据单位ID删除人事归属 - *

    - * 从操作的完整性上应该包含该操作,但是这个操作风险很大,会删除较多内容 - * - * @param employeeId 人员ID - */ public void deleteByEmployeeId(String employeeId) { sysOwnershipRepository.deleteByEmployeeId(employeeId); - log.debug("[Herodotus] |- SysOwnershipService Service deleteByEmployeeId."); + log.debug("[Eurynome] |- SysOwnershipService Service deleteByEmployeeId."); } - /** - * 批量设置人事归属关系 - *

    - * 如果是通过{@link SysEmployeeService#findAllocatable(int, int, String, String)}获取未设置人事归属关系的人员列表。 - * 那么本方法逻辑上不会出现重复数据的设置。 - * - * @param organizationId 单位ID - * @param departmentId 部门ID - * @param employeeIds 人员IDs - * @return 已设置的人事归属列表,如果未设置成功,列表size为 0 - */ - public List assign(String organizationId, String departmentId, String[] employeeIds) { - List result = new ArrayList<>(); - - if (ArrayUtils.isNotEmpty(employeeIds)) { - List iterable = Arrays.stream(employeeIds).map(employeeId -> { - SysOwnership sysOwnership = new SysOwnership(); - sysOwnership.setOrganizationId(organizationId); - sysOwnership.setDepartmentId(departmentId); - sysOwnership.setEmployeeId(employeeId); - return sysOwnership; - }).collect(Collectors.toList()); - - result = sysOwnershipRepository.saveAllAndFlush(iterable); - } - - log.debug("[Herodotus] |- SysOwnershipService Service assign."); - return result; + public void delete(String organizationId, String departmentId, String employeeId) { + sysOwnershipRepository.deleteByOrganizationIdAndDepartmentIdAndEmployeeId(organizationId, departmentId, employeeId); + log.debug("[Eurynome] |- SysOwnershipService delete."); } } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java deleted file mode 100644 index 6565d0e29..000000000 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/hr/SysOwnershipViewService.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-logic - * File Name: SysOwnershipViewService.java - * Author: gengwei.zheng - * Date: 2021/09/23 15:07:23 - */ - -package cn.herodotus.eurynome.upms.logic.service.hr; - -import cn.herodotus.eurynome.data.base.repository.BaseRepository; -import cn.herodotus.eurynome.rest.base.service.ReadableService; -import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnershipView; -import cn.herodotus.eurynome.upms.logic.repository.hr.SysOwnershipViewRepository; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Service; - -import javax.persistence.criteria.Predicate; -import java.util.ArrayList; -import java.util.List; - -/** - *

    Description: 人事归属服务视图

    - * - * @author : gengwei.zheng - * @date : 2021/7/15 16:33 - */ -@Service -public class SysOwnershipViewService implements ReadableService { - - private static final Logger log = LoggerFactory.getLogger(SysOwnershipViewService.class); - - @Autowired - private SysOwnershipViewRepository sysOwnershipViewRepository; - - @Override - public BaseRepository getRepository() { - return this.sysOwnershipViewRepository; - } - - public Page findByCondition(int pageNumber, int pageSize, String organizationId, String departmentId) { - Pageable pageable = PageRequest.of(pageNumber, pageSize); - - Specification specification = (root, criteriaQuery, criteriaBuilder) -> { - - List predicates = new ArrayList<>(); - - if (StringUtils.isNotBlank(organizationId)) { - predicates.add(criteriaBuilder.equal(root.get("organizationId"), organizationId)); - } - - if (StringUtils.isNotBlank(departmentId)) { - predicates.add(criteriaBuilder.equal(root.get("departmentId"), departmentId)); - } - - Predicate[] predicateArray = new Predicate[predicates.size()]; - criteriaQuery.where(criteriaBuilder.and(predicates.toArray(predicateArray))); - return criteriaQuery.getRestriction(); - }; - - Page pages = this.findByPage(specification, pageable); - log.debug("[Herodotus] |- SysOwnershipView Service findByCondition."); - return pages; - } -} diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java index 49e040c41..7acc58857 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysAuthorityService.java @@ -62,13 +62,13 @@ public BaseRepository getRepository() { } public List batchSaveOrUpdate(List sysAuthorities) { - log.debug("[Herodotus] |- SysAuthority Service batchSaveOrUpdate."); + log.debug("[Eurynome] |- SysAuthority Service batchSaveOrUpdate."); return sysAuthorityRepository.saveAllAndFlush(sysAuthorities); } public List findAllByAuthorityType(AuthorityType authorityType) { List sysAuthorities = sysAuthorityRepository.findAllByAuthorityType(authorityType); - log.debug("[Herodotus] |- SysAuthority Service findAllByAuthorityType."); + log.debug("[Eurynome] |- SysAuthority Service findAllByAuthorityType."); return sysAuthorities; } } diff --git a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java index a848f7025..0d1e59f71 100644 --- a/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java +++ b/services/eurynome-cloud-upms-logic/src/main/java/cn/herodotus/eurynome/upms/logic/service/system/SysUserService.java @@ -78,7 +78,7 @@ public SysUser findByUserName(String userName) { } public SysUser assign(String userId, String[] roleIds) { - log.debug("[Herodotus] |- SysUser Service assign."); + log.debug("[Eurynome] |- SysUser Service assign."); SysUser sysUser = findById(userId); return this.register(sysUser, roleIds); @@ -102,7 +102,7 @@ public SysUser register(SysUser sysUser, AccountType source) { return this.register(sysUser, sysRole); } } - log.error("[Herodotus] |- Default role for [{}] is not set correct, may case register error!", source); + log.error("[Eurynome] |- Default role for [{}] is not set correct, may case register error!", source); return null; } @@ -115,7 +115,7 @@ public SysUser register(SysUser sysUser, Set sysRoles) { if (CollectionUtils.isNotEmpty(sysRoles)) { sysUser.setRoles(sysRoles); } - log.debug("[Herodotus] |- SysUser Service register."); + log.debug("[Eurynome] |- SysUser Service register."); return saveOrUpdate(sysUser); } @@ -161,7 +161,7 @@ public SysUser register(SocialUserDetails socialUserDetails) { public HerodotusUserDetails registerUserDetails(SocialUserDetails socialUserDetails) { SysUser newSysUser = register(socialUserDetails); - log.debug("[Herodotus] |- SysUser Service register UserDetails."); + log.debug("[Eurynome] |- SysUser Service register UserDetails."); return UpmsHelper.convertSysUserToHerodotusUserDetails(newSysUser); } } diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java index 3551105e7..7c96b6585 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/annotation/EnableUpmsRest.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: EnableUpmsRest.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.annotation; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java index 96360c298..36604ad2b 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/configuration/UpmsRestConfiguration.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: UpmsRestConfiguration.java * Author: gengwei.zheng - * Date: 2021/06/29 15:58:29 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.configuration; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java index 6bfbbae68..2700b426c 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/UpmsConstantsController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: UpmsConstantsController.java * Author: gengwei.zheng - * Date: 2021/09/11 10:08:11 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java index 2162ec33d..5170ef937 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/development/SupplierController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SupplierController.java * Author: gengwei.zheng - * Date: 2021/09/11 10:06:11 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.development; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java index 5f06c0a1d..5570ac768 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysDepartmentController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysDepartmentController.java * Author: gengwei.zheng - * Date: 2021/09/25 10:47:25 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.hr; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java index 8cf2d3a1b..9358871d8 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysEmployeeController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysEmployeeController.java * Author: gengwei.zheng - * Date: 2021/09/25 10:52:25 + * Date: 2021/09/26 10:34:26 */ package cn.herodotus.eurynome.upms.rest.controller.hr; @@ -28,8 +28,8 @@ import cn.herodotus.eurynome.common.constant.enums.Gender; import cn.herodotus.eurynome.common.constant.enums.Identity; import cn.herodotus.eurynome.upms.api.entity.hr.SysEmployee; -import cn.herodotus.eurynome.upms.logic.dto.OwnershipConfig; -import cn.herodotus.eurynome.upms.logic.dto.OwnershipRemove; +import cn.herodotus.eurynome.upms.logic.dto.AllocatableDeploy; +import cn.herodotus.eurynome.upms.logic.dto.AllocatableRemove; import cn.herodotus.eurynome.upms.logic.service.hr.SysEmployeeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -110,6 +110,17 @@ public Result> findByCondition(@NotBlank @RequestParam("page return result(pages); } + @Operation(summary = "给人员分配用户", description = "为人员创建用户,生成默认用户信息,让人员可以进入系统", + responses = {@ApiResponse(description = "已分配用户的人员信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysEmployee.class)))}) + @Parameters({ + @Parameter(name = "employeeId", description = "人员ID") + }) + @PutMapping + public Result authorize(@RequestParam("employeeId") String employeeId) { + SysEmployee sysEmployee = sysEmployeeService.authorize(employeeId); + return result(sysEmployee); + } + @Operation(summary = "查询可设置人事归属的人员", description = "根据输入的单位和部门,分页查询当前部门下未设置人事归属的人员信息,排除了已经设置的人员信息", responses = {@ApiResponse(description = "可配置人员分页列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Map.class)))}) @Parameters({ @@ -137,28 +148,32 @@ public Result> findAllocatable(@NotBlank @RequestParam("page return result(pages); } - @Operation(summary = "给人员分配用户", description = "为人员创建用户,生成默认用户信息,让人员可以进入系统", - responses = {@ApiResponse(description = "已分配用户的人员信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = SysEmployee.class)))}) + @Operation(summary = "查询已设置归属关系的人员", description = "根据输入的部门,分页查询当前部门下已设置人事归属的人员信息", + responses = {@ApiResponse(description = "可配置人员分页列表", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Map.class)))}) @Parameters({ - @Parameter(name = "employeeId", description = "人员ID") + @Parameter(name = "pageNumber", required = true, description = "当前页码"), + @Parameter(name = "pageSize", required = true, description = "每页显示数量"), + @Parameter(name = "departmentId", required = true, description = "部门ID"), }) - @PutMapping - public Result authorize(@RequestParam("employeeId") String employeeId) { - SysEmployee sysEmployee = sysEmployeeService.authorize(employeeId); - return result(sysEmployee); + @GetMapping("/assigned") + public Result> findAssigned(@NotBlank @RequestParam("pageNumber") Integer pageNumber, + @NotBlank @RequestParam("pageSize") Integer pageSize, + @NotBlank @RequestParam("departmentId") String departmentId) { + Page pages = sysEmployeeService.findByDeparmentId(pageNumber, pageSize, departmentId); + return result(pages); } @Operation(summary = "设置人事归属", description = "根据输入的单位和部门,设置当前部门下未设置人事归属的人员信息,排除了已经设置的人员信息", requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), responses = {@ApiResponse(description = "是否设置成功", content = @Content(mediaType = "application/json"))}) @Parameters({ - @Parameter(name = "ownershipConfig", required = true, description = "当前页码", schema = @Schema(implementation = OwnershipConfig.class)), + @Parameter(name = "allocatableDeploy", required = true, description = "当前页码", schema = @Schema(implementation = AllocatableDeploy.class)), }) @PostMapping("/allocatable") - public Result saveAllocatable(@RequestBody OwnershipConfig ownershipConfig) { + public Result saveAllocatable(@RequestBody AllocatableDeploy allocatableDeploy) { boolean isSuccess; - if (ObjectUtils.isNotEmpty(ownershipConfig)) { - isSuccess = sysEmployeeService.configOwnership(ownershipConfig); + if (ObjectUtils.isNotEmpty(allocatableDeploy)) { + isSuccess = sysEmployeeService.deployAllocatable(allocatableDeploy); } else { isSuccess = false; } @@ -170,13 +185,13 @@ public Result saveAllocatable(@RequestBody OwnershipConfig ownershipConf requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(content = @Content(mediaType = "application/json")), responses = {@ApiResponse(description = "是否删除成功", content = @Content(mediaType = "application/json"))}) @Parameters({ - @Parameter(name = "ownershipRemove", required = true, description = "增加人员归属参数BO对象", schema = @Schema(implementation = OwnershipRemove.class)), + @Parameter(name = "allocatableRemove", required = true, description = "增加人员归属参数BO对象", schema = @Schema(implementation = AllocatableRemove.class)), }) @DeleteMapping("/allocatable") - public Result deleteAllocatable(@RequestBody OwnershipRemove ownershipRemove) { + public Result deleteAllocatable(@RequestBody AllocatableRemove allocatableRemove) { boolean isSuccess; - if (ObjectUtils.isNotEmpty(ownershipRemove)) { - isSuccess = sysEmployeeService.removeOwnership(ownershipRemove); + if (ObjectUtils.isNotEmpty(allocatableRemove)) { + isSuccess = sysEmployeeService.removeAllocatable(allocatableRemove); } else { isSuccess = false; } diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java index 27c4acd37..39c1e20e2 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOrganizationController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysOrganizationController.java * Author: gengwei.zheng - * Date: 2021/09/25 10:48:25 + * Date: 2021/09/26 10:36:26 */ package cn.herodotus.eurynome.upms.rest.controller.hr; @@ -41,6 +41,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.validation.annotation.Validated; @@ -125,14 +126,18 @@ public Result>> findTree(@RequestParam(value = "category", req List sysOrganizations = getSysOrganizations(category); if (ObjectUtils.isNotEmpty(sysOrganizations)) { + final String[] rootId = {null}; List> treeNodes = sysOrganizations.stream().map(sysOrganization -> { TreeNode treeNode = new TreeNode<>(); treeNode.setId(sysOrganization.getOrganizationId()); treeNode.setName(sysOrganization.getOrganizationName()); treeNode.setParentId(sysOrganization.getParentId()); + if (StringUtils.isBlank(sysOrganization.getParentId()) || StringUtils.equals(sysOrganization.getParentId(), PlatformConstants.DEFAULT_TREE_ROOT_ID)) { + rootId[0] = sysOrganization.getParentId(); + } return treeNode; }).collect(Collectors.toList()); - return result.ok().message("查询数据成功").data(TreeUtil.build(treeNodes, null)); + return result.ok().message("查询数据成功").data(TreeUtil.build(treeNodes, rootId[0])); } else { return result.failed().message("查询数据失败"); } diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java index ec68c3a86..820be7553 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysOwnershipController.java * Author: gengwei.zheng - * Date: 2021/09/18 16:21:18 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.hr; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java deleted file mode 100644 index 1083ca486..000000000 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/hr/SysOwnershipViewController.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2019-2021 Gengwei Zheng (herodotus@aliyun.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Project Name: eurynome-cloud - * Module Name: eurynome-cloud-upms-rest - * File Name: SysOwnershipViewController.java - * Author: gengwei.zheng - * Date: 2021/09/25 10:48:25 - */ - -package cn.herodotus.eurynome.upms.rest.controller.hr; - -import cn.herodotus.eurynome.common.domain.Result; -import cn.herodotus.eurynome.rest.base.controller.BaseReadableRestController; -import cn.herodotus.eurynome.rest.base.service.ReadableService; -import cn.herodotus.eurynome.upms.api.entity.hr.SysOwnershipView; -import cn.herodotus.eurynome.upms.logic.service.hr.SysOwnershipViewService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - *

    Description: 人事归属视图Controller

    - * - * @author : gengwei.zheng - * @date : 2021/7/15 16:36 - */ -@RestController -@RequestMapping("/ownership-view") -@Tag(name = "人事归属视图接口") -public class SysOwnershipViewController extends BaseReadableRestController { - - @Autowired - private SysOwnershipViewService sysOwnershipViewService; - - @Override - public ReadableService getReadableService() { - return this.sysOwnershipViewService; - } - - @Operation(summary = "人事归属条件查询", description = "根据单位ID和部门ID,查询人事归属分页信息") - @Parameters({ - @Parameter(name = "pageNumber", required = true, description = "当前页码"), - @Parameter(name = "pageSize", required = true, description = "每页显示数量"), - @Parameter(name = "organizationId", description = "单位ID"), - @Parameter(name = "departmentId", required = true, description = "部门ID"), - }) - @GetMapping("/condition") - public Result> findByCondition(@RequestParam("pageNumber") int pageNumber, - @RequestParam("pageSize") int pageSize, - @RequestParam("organizationId") String organizationId, - @RequestParam("departmentId") String departmentId) { - Page pages = sysOwnershipViewService.findByCondition(pageNumber, pageSize, organizationId, departmentId); - return result(pages); - } -} diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java index f56502430..a94739578 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthApplicationsController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: OauthApplicationsController.java * Author: gengwei.zheng - * Date: 2021/09/19 17:43:19 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.oauth; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java index dd7f27e2a..b515045af 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthClientDetailsController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: OauthClientDetailsController.java * Author: gengwei.zheng - * Date: 2021/09/20 07:50:20 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.oauth; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java index 2ad21f8dc..a14714967 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/oauth/OauthScopesController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: OauthScopesController.java * Author: gengwei.zheng - * Date: 2021/09/19 17:43:19 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.oauth; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java index 40bee2253..60ee6e14e 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysAuthorityController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysAuthorityController.java * Author: gengwei.zheng - * Date: 2021/09/23 15:07:23 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.system; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java index d90e429cc..f0af3fcc6 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysRoleController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysRoleController.java * Author: gengwei.zheng - * Date: 2021/09/11 10:08:11 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.system; diff --git a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java index 92cbda967..fef7e959d 100644 --- a/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java +++ b/services/eurynome-cloud-upms-rest/src/main/java/cn/herodotus/eurynome/upms/rest/controller/system/SysUserController.java @@ -17,7 +17,7 @@ * Module Name: eurynome-cloud-upms-rest * File Name: SysUserController.java * Author: gengwei.zheng - * Date: 2021/09/11 10:08:11 + * Date: 2021/09/25 10:52:25 */ package cn.herodotus.eurynome.upms.rest.controller.system;