midway-fatcms 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +14 -14
- package/.prettierrc.js +4 -4
- package/README.md +447 -407
- package/dist/config/config.default.d.ts +3 -3
- package/dist/config/config.default.js +177 -177
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +23 -23
- package/dist/configuration.d.ts +7 -7
- package/dist/configuration.js +113 -113
- package/dist/controller/base/BaseApiController.d.ts +49 -49
- package/dist/controller/base/BaseApiController.js +198 -198
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
- package/dist/controller/gateway/AsyncTaskController.js +181 -181
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
- package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +39 -39
- package/dist/controller/gateway/CrudStdGatewayController.js +149 -149
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
- package/dist/controller/gateway/DocGatewayController.js +181 -181
- package/dist/controller/gateway/FileController.d.ts +32 -32
- package/dist/controller/gateway/FileController.js +160 -160
- package/dist/controller/gateway/FlowInstanceController.d.ts +16 -16
- package/dist/controller/gateway/FlowInstanceController.js +48 -48
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
- package/dist/controller/gateway/PublicApiController.d.ts +33 -33
- package/dist/controller/gateway/PublicApiController.js +194 -194
- package/dist/controller/gateway/StaticController.d.ts +23 -23
- package/dist/controller/gateway/StaticController.js +280 -280
- package/dist/controller/helpers.controller.d.ts +36 -36
- package/dist/controller/helpers.controller.js +187 -187
- package/dist/controller/home.controller.d.ts +9 -9
- package/dist/controller/home.controller.js +78 -78
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/AnyApiMangeApi.js +98 -98
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppLogMangeApi.js +88 -88
- package/dist/controller/manage/AppMangeApi.d.ts +12 -12
- package/dist/controller/manage/AppMangeApi.js +101 -101
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppPageMangeApi.js +87 -87
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
- package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
- package/dist/controller/manage/DataDictManageApi.d.ts +17 -17
- package/dist/controller/manage/DataDictManageApi.js +165 -165
- package/dist/controller/manage/DeployManageApi.d.ts +21 -21
- package/dist/controller/manage/DeployManageApi.js +203 -203
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
- package/dist/controller/manage/DocLibManageApi.js +104 -104
- package/dist/controller/manage/DocManageApi.d.ts +11 -11
- package/dist/controller/manage/DocManageApi.js +130 -130
- package/dist/controller/manage/FileManageApi.d.ts +13 -13
- package/dist/controller/manage/FileManageApi.js +77 -77
- package/dist/controller/manage/FlowConfigManageApi.d.ts +12 -12
- package/dist/controller/manage/FlowConfigManageApi.js +109 -109
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
- package/dist/controller/manage/MenuManageApi.d.ts +11 -11
- package/dist/controller/manage/MenuManageApi.js +104 -104
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
- package/dist/controller/manage/SuperAdminManageApi.js +153 -153
- package/dist/controller/manage/SysConfigMangeApi.d.ts +12 -12
- package/dist/controller/manage/SysConfigMangeApi.js +133 -133
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
- package/dist/controller/manage/SystemInfoManageApi.js +82 -82
- package/dist/controller/manage/UserAccountManageApi.d.ts +16 -16
- package/dist/controller/manage/UserAccountManageApi.js +153 -153
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
- package/dist/controller/manage/WorkbenchMangeApi.js +106 -106
- package/dist/controller/myinfo/AuthController.d.ts +37 -37
- package/dist/controller/myinfo/AuthController.js +157 -157
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
- package/dist/controller/myinfo/MyInfoController.js +51 -51
- package/dist/controller/render/AppRenderController.d.ts +12 -12
- package/dist/controller/render/AppRenderController.js +93 -93
- package/dist/controller/test.controller.d.ts +8 -8
- package/dist/controller/test.controller.js +51 -51
- package/dist/filter/default.filter.d.ts +7 -7
- package/dist/filter/default.filter.js +23 -23
- package/dist/filter/notfound.filter.d.ts +5 -5
- package/dist/filter/notfound.filter.js +20 -20
- package/dist/index.d.ts +111 -111
- package/dist/index.js +129 -129
- package/dist/interface.d.ts +30 -30
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +51 -37
- package/dist/libs/crud-pro/CrudPro.js +207 -146
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
- package/dist/libs/crud-pro/defaultConfigs.js +15 -15
- package/dist/libs/crud-pro/exceptions.d.ts +106 -106
- package/dist/libs/crud-pro/exceptions.js +119 -119
- package/dist/libs/crud-pro/interfaces.d.ts +195 -175
- package/dist/libs/crud-pro/interfaces.js +12 -12
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +50 -50
- package/dist/libs/crud-pro/models/ExecuteContext.js +87 -87
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
- package/dist/libs/crud-pro/models/FuncContext.js +6 -6
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
- package/dist/libs/crud-pro/models/RequestModel.js +113 -113
- package/dist/libs/crud-pro/models/ResModel.d.ts +20 -20
- package/dist/libs/crud-pro/models/ResModel.js +2 -2
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +23 -23
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
- package/dist/libs/crud-pro/models/Transaction.d.ts +50 -50
- package/dist/libs/crud-pro/models/Transaction.js +184 -184
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionMySQL.js +48 -48
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionPostgres.js +64 -64
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +9 -9
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +61 -61
- package/dist/libs/crud-pro/models/keys.d.ts +111 -111
- package/dist/libs/crud-pro/models/keys.js +156 -156
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
- package/dist/libs/crud-pro/services/CrudProDataFilterService.d.ts +17 -0
- package/dist/libs/crud-pro/services/CrudProDataFilterService.js +53 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +224 -224
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +385 -385
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +345 -339
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +88 -88
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +12 -9
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +167 -77
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +34 -32
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +69 -64
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
- package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -12
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
- package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/MixinUtils.js +259 -259
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
- package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +35 -35
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +24 -24
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +14 -14
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +14 -14
- package/dist/libs/global-config/global-config.d.ts +71 -71
- package/dist/libs/global-config/global-config.js +38 -38
- package/dist/libs/utils/AsymmetricCrypto.d.ts +76 -76
- package/dist/libs/utils/AsymmetricCrypto.js +261 -261
- package/dist/libs/utils/base64.d.ts +9 -9
- package/dist/libs/utils/base64.js +42 -42
- package/dist/libs/utils/common-dto.d.ts +18 -18
- package/dist/libs/utils/common-dto.js +40 -40
- package/dist/libs/utils/crypto-utils.d.ts +3 -3
- package/dist/libs/utils/crypto-utils.js +55 -55
- package/dist/libs/utils/errorToString.d.ts +20 -20
- package/dist/libs/utils/errorToString.js +79 -79
- package/dist/libs/utils/fatcms-request.d.ts +45 -45
- package/dist/libs/utils/fatcms-request.js +161 -161
- package/dist/libs/utils/format-url.d.ts +17 -17
- package/dist/libs/utils/format-url.js +30 -30
- package/dist/libs/utils/functions.d.ts +11 -11
- package/dist/libs/utils/functions.js +99 -99
- package/dist/libs/utils/ordernum-utils.d.ts +22 -22
- package/dist/libs/utils/ordernum-utils.js +35 -35
- package/dist/libs/utils/parseConfig.d.ts +8 -8
- package/dist/libs/utils/parseConfig.js +47 -47
- package/dist/libs/utils/parseCreateSql.d.ts +10 -10
- package/dist/libs/utils/parseCreateSql.js +87 -87
- package/dist/libs/utils/render-utils.d.ts +40 -40
- package/dist/libs/utils/render-utils.js +158 -158
- package/dist/middleware/forbidden.middleware.d.ts +74 -74
- package/dist/middleware/forbidden.middleware.js +318 -318
- package/dist/middleware/global.middleware.d.ts +40 -40
- package/dist/middleware/global.middleware.js +310 -310
- package/dist/middleware/permission.middleware.d.ts +88 -88
- package/dist/middleware/permission.middleware.js +145 -145
- package/dist/middleware/rediscache.middleware.d.ts +28 -28
- package/dist/middleware/rediscache.middleware.js +114 -114
- package/dist/middleware/redislock.middleware.d.ts +29 -29
- package/dist/middleware/redislock.middleware.js +106 -106
- package/dist/middleware/tx.middleware.d.ts +55 -55
- package/dist/middleware/tx.middleware.js +83 -83
- package/dist/models/AsyncTaskModel.d.ts +74 -74
- package/dist/models/AsyncTaskModel.js +31 -31
- package/dist/models/FlowModel.d.ts +227 -227
- package/dist/models/FlowModel.js +53 -53
- package/dist/models/RedisKeys.d.ts +15 -15
- package/dist/models/RedisKeys.js +18 -18
- package/dist/models/SystemEntities.d.ts +118 -118
- package/dist/models/SystemEntities.js +18 -18
- package/dist/models/SystemPerm.d.ts +96 -96
- package/dist/models/SystemPerm.js +101 -101
- package/dist/models/SystemTables.d.ts +25 -25
- package/dist/models/SystemTables.js +28 -28
- package/dist/models/WorkbenchInfoTools.d.ts +7 -7
- package/dist/models/WorkbenchInfoTools.js +20 -20
- package/dist/models/bizmodels.d.ts +150 -150
- package/dist/models/bizmodels.js +62 -62
- package/dist/models/contextLogger.d.ts +27 -27
- package/dist/models/contextLogger.js +119 -119
- package/dist/models/devops.d.ts +12 -12
- package/dist/models/devops.js +19 -19
- package/dist/models/userSession.d.ts +67 -67
- package/dist/models/userSession.js +179 -179
- package/dist/schedule/anonymousContext.d.ts +15 -15
- package/dist/schedule/anonymousContext.js +74 -74
- package/dist/schedule/index.d.ts +4 -4
- package/dist/schedule/index.js +10 -10
- package/dist/schedule/runSchedule.d.ts +12 -12
- package/dist/schedule/runSchedule.js +68 -68
- package/dist/schedule/scheduleNames.d.ts +15 -15
- package/dist/schedule/scheduleNames.js +19 -19
- package/dist/service/AuthService.d.ts +56 -56
- package/dist/service/AuthService.js +251 -251
- package/dist/service/EnumInfoService.d.ts +30 -30
- package/dist/service/EnumInfoService.js +97 -97
- package/dist/service/FileCenterService.d.ts +64 -64
- package/dist/service/FileCenterService.js +422 -422
- package/dist/service/SysAppService.d.ts +15 -15
- package/dist/service/SysAppService.js +108 -108
- package/dist/service/SysConfigService.d.ts +10 -10
- package/dist/service/SysConfigService.js +64 -64
- package/dist/service/SysDictDataService.d.ts +9 -9
- package/dist/service/SysDictDataService.js +72 -72
- package/dist/service/SysMenuService.d.ts +51 -51
- package/dist/service/SysMenuService.js +58 -58
- package/dist/service/UserAccountService.d.ts +23 -23
- package/dist/service/UserAccountService.js +107 -107
- package/dist/service/UserSessionService.d.ts +43 -43
- package/dist/service/UserSessionService.js +163 -163
- package/dist/service/VisitStatService.d.ts +14 -14
- package/dist/service/VisitStatService.js +161 -161
- package/dist/service/WorkbenchService.d.ts +59 -59
- package/dist/service/WorkbenchService.js +249 -249
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
- package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
- package/dist/service/anyapi/AnyApiService.d.ts +27 -27
- package/dist/service/anyapi/AnyApiService.js +181 -181
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
- package/dist/service/asyncTask/AsyncTaskService.js +34 -34
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
- package/dist/service/base/ApiBaseService.d.ts +22 -22
- package/dist/service/base/ApiBaseService.js +60 -60
- package/dist/service/base/ApiRateLimiter.d.ts +10 -10
- package/dist/service/base/ApiRateLimiter.js +51 -51
- package/dist/service/base/BaseService.d.ts +46 -46
- package/dist/service/base/BaseService.js +131 -131
- package/dist/service/base/cache/CacheServiceFactory.d.ts +26 -26
- package/dist/service/base/cache/CacheServiceFactory.js +122 -122
- package/dist/service/base/cache/CtxCache.d.ts +18 -18
- package/dist/service/base/cache/CtxCache.js +37 -37
- package/dist/service/base/cache/DiskCache.d.ts +19 -19
- package/dist/service/base/cache/DiskCache.js +81 -81
- package/dist/service/base/cache/MemoryCache.d.ts +12 -12
- package/dist/service/base/cache/MemoryCache.js +58 -58
- package/dist/service/base/cache/NoneCache.d.ts +10 -10
- package/dist/service/base/cache/NoneCache.js +19 -19
- package/dist/service/base/cache/RedisCache.d.ts +14 -14
- package/dist/service/base/cache/RedisCache.js +31 -31
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
- package/dist/service/crudstd/CrudStdActionService.js +32 -32
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
- package/dist/service/crudstd/CrudStdConstant.js +64 -64
- package/dist/service/crudstd/CrudStdRelationService.d.ts +11 -11
- package/dist/service/crudstd/CrudStdRelationService.js +179 -179
- package/dist/service/crudstd/CrudStdService.d.ts +59 -59
- package/dist/service/crudstd/CrudStdService.js +348 -348
- package/dist/service/curd/CrudProQuick.d.ts +60 -60
- package/dist/service/curd/CrudProQuick.js +167 -167
- package/dist/service/curd/CurdMixByAccountService.d.ts +14 -14
- package/dist/service/curd/CurdMixByAccountService.js +166 -166
- package/dist/service/curd/CurdMixByDictService.d.ts +12 -12
- package/dist/service/curd/CurdMixByDictService.js +114 -114
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -30
- package/dist/service/curd/CurdMixByLinkToCustomService.js +209 -209
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -13
- package/dist/service/curd/CurdMixBySysConfigService.js +116 -116
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -11
- package/dist/service/curd/CurdMixByWorkbenchService.js +80 -80
- package/dist/service/curd/CurdMixService.d.ts +28 -28
- package/dist/service/curd/CurdMixService.js +100 -100
- package/dist/service/curd/CurdMixUtils.d.ts +57 -57
- package/dist/service/curd/CurdMixUtils.js +331 -331
- package/dist/service/curd/CurdProService.d.ts +32 -32
- package/dist/service/curd/CurdProService.js +215 -215
- package/dist/service/curd/fixCfgModel.d.ts +3 -3
- package/dist/service/curd/fixCfgModel.js +104 -104
- package/dist/service/curd/fixSoftDelete.d.ts +6 -6
- package/dist/service/curd/fixSoftDelete.js +43 -43
- package/dist/service/flow/FlowConfigService.d.ts +41 -41
- package/dist/service/flow/FlowConfigService.js +95 -95
- package/dist/service/flow/FlowInstanceCrudService.d.ts +35 -35
- package/dist/service/flow/FlowInstanceCrudService.js +257 -257
- package/dist/service/flow/FlowInstanceService.d.ts +88 -88
- package/dist/service/flow/FlowInstanceService.js +451 -451
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
- package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
- package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
- package/dist/service/proxyapi/ProxyApiService.js +317 -317
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
- package/dist/service/proxyapi/RouteHandler.d.ts +6 -6
- package/dist/service/proxyapi/RouteHandler.js +9 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
- package/dist/service/proxyapi/RouteTrie.js +64 -64
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
- package/dist/service/proxyapi/WeightedRandom.js +31 -31
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
- package/dist/service/proxyapi/WeightedRoundRobin.js +33 -33
- package/index.d.ts +10 -10
- package/package.json +87 -87
- package/src/libs/crud-pro/CrudPro.ts +71 -0
- package/src/libs/crud-pro/interfaces.ts +22 -0
- package/src/libs/crud-pro/models/ServiceHub.ts +2 -2
- package/src/libs/crud-pro/services/CrudProDataFilterService.ts +58 -0
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +10 -1
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +145 -40
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +10 -3
- package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -13
- package/src/libs/utils/AsymmetricCrypto.ts +307 -307
- package/src/libs/utils/format-url.ts +29 -29
- package/src/libs/utils/render-utils.ts +223 -223
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/service/SysAppService.ts +103 -103
- package/src/service/SysDictDataService.ts +63 -63
- package/src/service/SysMenuService.ts +87 -87
- package/src/service/WorkbenchService.ts +279 -279
- package/src/service/base/cache/CacheServiceFactory.ts +135 -135
- package/src/service/base/cache/CtxCache.ts +45 -45
- package/src/service/base/cache/DiskCache.ts +90 -90
- package/src/service/base/cache/MemoryCache.ts +68 -68
- package/src/service/base/cache/NoneCache.ts +24 -24
- package/src/service/base/cache/RedisCache.ts +41 -41
- package/src/service/curd/CurdMixByAccountService.ts +177 -177
- package/src/service/curd/fixSoftDelete.ts +58 -58
- package/tsconfig.json +32 -32
package/README.md
CHANGED
|
@@ -1,407 +1,447 @@
|
|
|
1
|
-
# Midway FatCMS
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
- SaaS
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
├──
|
|
368
|
-
│ ├──
|
|
369
|
-
│ ├──
|
|
370
|
-
│ │ ├──
|
|
371
|
-
│ │ ├──
|
|
372
|
-
│ │ ├──
|
|
373
|
-
│ │ ├──
|
|
374
|
-
│ │
|
|
375
|
-
│
|
|
376
|
-
│
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
1
|
+
# Midway FatCMS
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>🚀 Enterprise-Grade Low-Code / Zero-Code Development Platform</strong>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Build production-ready enterprise applications in minutes, not months.
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ✨ Why Midway FatCMS?
|
|
14
|
+
|
|
15
|
+
Stop writing repetitive CRUD boilerplate. Stop struggling with API versioning. Stop worrying about multi-tenant data isolation.
|
|
16
|
+
|
|
17
|
+
**Midway FatCMS** is a battle-tested, enterprise-grade low-code platform that transforms weeks of development into hours of configuration. Built on top of the robust Midway.js framework, it empowers teams to ship faster without sacrificing security, scalability, or control.
|
|
18
|
+
|
|
19
|
+
### The Problem We Solve
|
|
20
|
+
|
|
21
|
+
| Traditional Development | With Midway FatCMS |
|
|
22
|
+
|------------------------|-------------------|
|
|
23
|
+
| 2 weeks to build a CRUD module | 15 minutes of configuration |
|
|
24
|
+
| Manual API documentation | Auto-generated, always in sync |
|
|
25
|
+
| Complex multi-tenant logic | Built-in tenant isolation |
|
|
26
|
+
| Reinventing the wheel | Production-ready building blocks |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🎯 What You Get
|
|
31
|
+
|
|
32
|
+
### 🏗️ CRUD-Pro Engine — Zero-Code Data Operations
|
|
33
|
+
|
|
34
|
+
Transform database tables into fully functional REST APIs with zero code.
|
|
35
|
+
|
|
36
|
+
**Features:**
|
|
37
|
+
- ⚡ **Instant CRUD** — Auto-generated Create, Read, Update, Delete endpoints
|
|
38
|
+
- 🔍 **Advanced Querying** — Pagination, sorting, filtering, and joins out of the box
|
|
39
|
+
- 🔐 **Field-Level Security** — Granular control over visibility, read-only, and mandatory fields
|
|
40
|
+
- ✅ **Built-in Validation** — 20+ validators (email, phone, date, regex, etc.)
|
|
41
|
+
- 🔗 **Smart Relations** — Automatic handling of one-to-one, one-to-many, many-to-many
|
|
42
|
+
- 🗑️ **Soft Delete** — Logical deletion with recovery support
|
|
43
|
+
- 📊 **Audit Trail** — Automatic tracking of creators, modifiers, and timestamps
|
|
44
|
+
- 🌐 **Multi-Database** — MySQL, PostgreSQL, SQL Server support
|
|
45
|
+
|
|
46
|
+
**Perfect for:**
|
|
47
|
+
- Admin dashboards and back-office systems
|
|
48
|
+
- Data management platforms
|
|
49
|
+
- Reporting and analytics systems
|
|
50
|
+
- Business configuration centers
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 🌟 Any API — Three Ways to Build APIs
|
|
55
|
+
|
|
56
|
+
Whether you need a simple query or complex business logic, we've got you covered.
|
|
57
|
+
|
|
58
|
+
#### 1. SQL Query API
|
|
59
|
+
Write SQL, get REST. It's that simple.
|
|
60
|
+
- Native SQL with automatic parameter binding
|
|
61
|
+
- SQL injection protection built-in
|
|
62
|
+
- Ideal for complex reports and data analytics
|
|
63
|
+
|
|
64
|
+
#### 2. Sandbox Script API
|
|
65
|
+
Safe, sandboxed Node.js execution.
|
|
66
|
+
- Isolated VM environment for secure code execution
|
|
67
|
+
- Pre-loaded utilities (axios, lodash, moment)
|
|
68
|
+
- Direct access to database, Redis, and OSS
|
|
69
|
+
|
|
70
|
+
#### 3. Custom Code API
|
|
71
|
+
Full control when you need it.
|
|
72
|
+
- Serverless-like function deployment
|
|
73
|
+
- Hot-reload without service restart
|
|
74
|
+
- Complete business logic freedom
|
|
75
|
+
|
|
76
|
+
**Enterprise Security:**
|
|
77
|
+
- JWT authentication & role-based access control
|
|
78
|
+
- Token bucket rate limiting
|
|
79
|
+
- Circuit breaker & timeout protection
|
|
80
|
+
- IP whitelist/blacklist
|
|
81
|
+
|
|
82
|
+
**Perfect for:**
|
|
83
|
+
- Rapid API prototyping
|
|
84
|
+
- Data aggregation services
|
|
85
|
+
- Third-party integrations
|
|
86
|
+
- Microservice orchestration
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### 🚪 API Gateway & Proxy — Enterprise-Grade Traffic Management
|
|
91
|
+
|
|
92
|
+
A full-featured API gateway that handles the complexity so you don't have to.
|
|
93
|
+
|
|
94
|
+
#### Load Balancing Strategies
|
|
95
|
+
- Round Robin
|
|
96
|
+
- Weighted Round Robin
|
|
97
|
+
- Random & Weighted Random
|
|
98
|
+
- IP Hash (sticky sessions by IP)
|
|
99
|
+
- User Hash (sticky sessions by user)
|
|
100
|
+
- Session Hash (sticky sessions by session)
|
|
101
|
+
|
|
102
|
+
#### Traffic Control
|
|
103
|
+
- Request rate limiting
|
|
104
|
+
- Configurable timeouts
|
|
105
|
+
- Automatic retry mechanisms
|
|
106
|
+
- Circuit breaker & fallback
|
|
107
|
+
|
|
108
|
+
#### Security & Context
|
|
109
|
+
- Real IP forwarding through proxies
|
|
110
|
+
- User context propagation
|
|
111
|
+
- Customizable headers (Host, Origin)
|
|
112
|
+
- Request/response header manipulation
|
|
113
|
+
|
|
114
|
+
**Perfect for:**
|
|
115
|
+
- Microservices gateway
|
|
116
|
+
- Canary deployments
|
|
117
|
+
- A/B testing
|
|
118
|
+
- Traffic splitting & aggregation
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 🏢 Multi-Tenant Architecture — True SaaS-Ready
|
|
123
|
+
|
|
124
|
+
Deploy once, serve unlimited customers. Complete tenant isolation without the complexity.
|
|
125
|
+
|
|
126
|
+
**Tenant Isolation:**
|
|
127
|
+
- **Domain Recognition** — Automatic tenant detection by domain
|
|
128
|
+
- **Data Separation** — Complete data isolation between tenants
|
|
129
|
+
- **Permission Boundaries** — Independent user, role, and permission management
|
|
130
|
+
- **Resource Isolation** — Files, configurations, and apps are tenant-scoped
|
|
131
|
+
|
|
132
|
+
**Flexible Configuration:**
|
|
133
|
+
- Primary domain + 2 backup domains per tenant
|
|
134
|
+
- Wildcard domain support
|
|
135
|
+
- Tenant templates for rapid onboarding
|
|
136
|
+
- Customizable tenant branding
|
|
137
|
+
|
|
138
|
+
**Perfect for:**
|
|
139
|
+
- SaaS platforms
|
|
140
|
+
- Multi-brand operations
|
|
141
|
+
- Enterprise groups
|
|
142
|
+
- White-label products
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### 🔄 Workflow Engine — Automate Business Processes
|
|
147
|
+
|
|
148
|
+
Streamline approvals and business flows with a flexible workflow engine.
|
|
149
|
+
|
|
150
|
+
- Visual process definition
|
|
151
|
+
- Process instance tracking
|
|
152
|
+
- Task assignment and approval workflows
|
|
153
|
+
- Real-time status monitoring
|
|
154
|
+
- Historical flow records
|
|
155
|
+
|
|
156
|
+
**Perfect for:**
|
|
157
|
+
- Approval workflows (expenses, leaves, purchases)
|
|
158
|
+
- Business process automation
|
|
159
|
+
- State machine management
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### 📚 Document Management System — Enterprise Knowledge Base
|
|
164
|
+
|
|
165
|
+
A complete document management solution with version control and analytics.
|
|
166
|
+
|
|
167
|
+
- **Document Libraries** — Multiple document repositories
|
|
168
|
+
- **Hierarchical Structure** — Tree-based organization
|
|
169
|
+
- **Version Control** — Full document versioning
|
|
170
|
+
- **Analytics** — PV/UV tracking with IP deduplication
|
|
171
|
+
- **Access Control** — Document-level permissions
|
|
172
|
+
|
|
173
|
+
**Perfect for:**
|
|
174
|
+
- API documentation
|
|
175
|
+
- Product documentation
|
|
176
|
+
- Internal knowledge bases
|
|
177
|
+
- Help centers
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 📁 File Service — Complete File Management
|
|
182
|
+
|
|
183
|
+
Enterprise file handling with cloud storage integration.
|
|
184
|
+
|
|
185
|
+
- **Upload & Download** — Single and batch file uploads
|
|
186
|
+
- **Cloud Storage** — Alibaba Cloud OSS integration (public & private buckets)
|
|
187
|
+
- **File Preview** — Images, PDFs, Office documents
|
|
188
|
+
- **Access Control** — Time-limited secure URLs
|
|
189
|
+
- **Organization** — Categories and tags
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### ⚙️ System Management — Everything You Need
|
|
194
|
+
|
|
195
|
+
**User & Permissions:**
|
|
196
|
+
- User account management
|
|
197
|
+
- Role-based access control
|
|
198
|
+
- Feature-level permissions
|
|
199
|
+
- Permission allocation workflows
|
|
200
|
+
|
|
201
|
+
**Application Management:**
|
|
202
|
+
- Application registry
|
|
203
|
+
- Page management
|
|
204
|
+
- Menu configuration
|
|
205
|
+
- Low-code templates
|
|
206
|
+
|
|
207
|
+
**System Configuration:**
|
|
208
|
+
- Data dictionaries
|
|
209
|
+
- System parameters
|
|
210
|
+
- Enumeration management
|
|
211
|
+
- Scheduled tasks
|
|
212
|
+
|
|
213
|
+
**Monitoring & Operations:**
|
|
214
|
+
- Access statistics
|
|
215
|
+
- Operation logs
|
|
216
|
+
- System health info
|
|
217
|
+
- Deployment management
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 🛡️ Security First
|
|
222
|
+
|
|
223
|
+
We take security seriously. Built-in protection at every layer:
|
|
224
|
+
|
|
225
|
+
### Access Control
|
|
226
|
+
- JWT Token authentication
|
|
227
|
+
- Session management with Redis
|
|
228
|
+
- Super admin mechanism
|
|
229
|
+
- Granular permission control
|
|
230
|
+
|
|
231
|
+
### Attack Prevention
|
|
232
|
+
- SQL injection protection
|
|
233
|
+
- XSS protection
|
|
234
|
+
- CSRF token validation
|
|
235
|
+
- Path traversal prevention
|
|
236
|
+
- User-Agent blacklisting (scanner detection)
|
|
237
|
+
- IP-based rate limiting
|
|
238
|
+
|
|
239
|
+
### Data Protection
|
|
240
|
+
- AES-128-CBC encryption
|
|
241
|
+
- Asymmetric encryption support
|
|
242
|
+
- Sensitive field encryption
|
|
243
|
+
- Salted password hashing
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🚀 Quick Start
|
|
248
|
+
|
|
249
|
+
### Prerequisites
|
|
250
|
+
|
|
251
|
+
- Node.js >= 10
|
|
252
|
+
- MySQL >= 5.7 / PostgreSQL >= 8 / SQL Server >= 11
|
|
253
|
+
- Redis >= 3.0
|
|
254
|
+
|
|
255
|
+
### Installation
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Clone the repository
|
|
259
|
+
git clone <repository-url>
|
|
260
|
+
cd midway-fatcms
|
|
261
|
+
|
|
262
|
+
# Install dependencies
|
|
263
|
+
npm install
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Configuration
|
|
267
|
+
|
|
268
|
+
1. Configure database connection in `src/config/config.default.ts`
|
|
269
|
+
2. Set up Redis connection
|
|
270
|
+
3. Configure OSS (optional)
|
|
271
|
+
4. Configure workbench information
|
|
272
|
+
|
|
273
|
+
### Database Setup
|
|
274
|
+
|
|
275
|
+
```sql
|
|
276
|
+
-- Run initialization SQL
|
|
277
|
+
source ddl/2025-12-20.sql
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Start Development
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# Development mode with hot reload
|
|
284
|
+
npm run dev
|
|
285
|
+
|
|
286
|
+
# Build for production
|
|
287
|
+
npm run build
|
|
288
|
+
|
|
289
|
+
# Start production server
|
|
290
|
+
npm start
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Code Quality
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
# Check code style
|
|
297
|
+
npm run lint
|
|
298
|
+
|
|
299
|
+
# Auto-fix issues
|
|
300
|
+
npm run lint:fix
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Testing
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# Run tests
|
|
307
|
+
npm test
|
|
308
|
+
|
|
309
|
+
# Generate coverage report
|
|
310
|
+
npm run cov
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 🏛️ Architecture
|
|
316
|
+
|
|
317
|
+
### Technology Stack
|
|
318
|
+
|
|
319
|
+
| Layer | Technology |
|
|
320
|
+
|-------|-----------|
|
|
321
|
+
| **Framework** | Midway.js 3.x (Enterprise Node.js) |
|
|
322
|
+
| **Web Server** | Koa |
|
|
323
|
+
| **Language** | TypeScript |
|
|
324
|
+
| **Database** | MySQL / PostgreSQL / SQL Server |
|
|
325
|
+
| **Cache** | Redis |
|
|
326
|
+
| **File Storage** | Alibaba Cloud OSS / S3-compatible |
|
|
327
|
+
|
|
328
|
+
### Core Middleware
|
|
329
|
+
|
|
330
|
+
**Global Middleware:**
|
|
331
|
+
- User session management
|
|
332
|
+
- Multi-tenant isolation
|
|
333
|
+
- Transaction management
|
|
334
|
+
- Request-level logging
|
|
335
|
+
- Unified response formatting
|
|
336
|
+
- Real IP extraction
|
|
337
|
+
|
|
338
|
+
**Security Middleware:**
|
|
339
|
+
- Login verification (`checkLogin`)
|
|
340
|
+
- Role verification (`checkRole`)
|
|
341
|
+
- Permission verification (`checkPermission`)
|
|
342
|
+
- Path blacklist (`Forbidden`)
|
|
343
|
+
- Distributed locking (`RedisLock`)
|
|
344
|
+
- Response caching (`RedisCache`)
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## 📁 Project Structure
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
midway-fatcms/
|
|
352
|
+
├── src/
|
|
353
|
+
│ ├── config/ # Configuration files
|
|
354
|
+
│ ├── controller/ # Controllers
|
|
355
|
+
│ │ ├── base/ # Base controllers
|
|
356
|
+
│ │ ├── gateway/ # Gateway APIs
|
|
357
|
+
│ │ ├── manage/ # Management APIs
|
|
358
|
+
│ │ ├── myinfo/ # Personal info APIs
|
|
359
|
+
│ │ └── render/ # Rendering APIs
|
|
360
|
+
│ ├── filter/ # Exception filters
|
|
361
|
+
│ ├── libs/ # Core libraries
|
|
362
|
+
│ │ ├── crud-pro/ # CRUD-Pro engine
|
|
363
|
+
│ │ ├── global-config/ # Global configuration
|
|
364
|
+
│ │ └── utils/ # Utilities
|
|
365
|
+
│ ├── middleware/ # Middleware
|
|
366
|
+
│ ├── models/ # Data models
|
|
367
|
+
│ ├── schedule/ # Scheduled tasks
|
|
368
|
+
│ ├── service/ # Business services
|
|
369
|
+
│ │ ├── anyapi/ # Dynamic API
|
|
370
|
+
│ │ ├── asyncTask/ # Async tasks
|
|
371
|
+
│ │ ├── base/ # Base services
|
|
372
|
+
│ │ ├── crudstd/ # Standard CRUD
|
|
373
|
+
│ │ ├── curd/ # CRUD services
|
|
374
|
+
│ │ ├── flow/ # Workflow
|
|
375
|
+
│ │ └── proxyapi/ # Proxy API
|
|
376
|
+
│ └── views/ # View templates
|
|
377
|
+
├── ddl/ # Database scripts
|
|
378
|
+
├── scripts/ # Utility scripts
|
|
379
|
+
└── package.json # Project configuration
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 🎯 Use Cases
|
|
385
|
+
|
|
386
|
+
### Enterprise Back-Office Systems
|
|
387
|
+
- Rapid admin dashboard creation
|
|
388
|
+
- Business system configuration hubs
|
|
389
|
+
- Internal tool platforms
|
|
390
|
+
|
|
391
|
+
### SaaS Platforms
|
|
392
|
+
- Multi-tenant applications
|
|
393
|
+
- White-label products
|
|
394
|
+
- Industry-specific solutions
|
|
395
|
+
|
|
396
|
+
### API Platforms
|
|
397
|
+
- API management & gateways
|
|
398
|
+
- Data open platforms
|
|
399
|
+
- Microservice aggregation
|
|
400
|
+
|
|
401
|
+
### Low-Code Development
|
|
402
|
+
- Rapid business system development
|
|
403
|
+
- Form-driven applications
|
|
404
|
+
- Data analysis platforms
|
|
405
|
+
|
|
406
|
+
### Content Management
|
|
407
|
+
- Document repositories
|
|
408
|
+
- Knowledge bases
|
|
409
|
+
- Content publishing platforms
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## 🛠️ Utility Endpoints
|
|
414
|
+
|
|
415
|
+
### Encryption Helper
|
|
416
|
+
|
|
417
|
+
```
|
|
418
|
+
http://127.0.0.1:7002/ns/api/helpers/cryptoAes128CBC?input=123
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 📌 Version
|
|
424
|
+
|
|
425
|
+
Current Version: `0.0.1-beta.82`
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 📄 License
|
|
430
|
+
|
|
431
|
+
MIT License — Use it freely, contribute often.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## 👥 Contributing
|
|
436
|
+
|
|
437
|
+
We welcome contributions! Whether it's bug reports, feature requests, or pull requests, your input helps make Midway FatCMS better for everyone.
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
<p align="center">
|
|
442
|
+
<strong>Built with ❤️ by the Enterprise Low-Code Development Team</strong>
|
|
443
|
+
</p>
|
|
444
|
+
|
|
445
|
+
<p align="center">
|
|
446
|
+
Ready to ship faster? Let's build something amazing together.
|
|
447
|
+
</p>
|