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.
Files changed (391) hide show
  1. package/.eslintrc.json +14 -14
  2. package/.prettierrc.js +4 -4
  3. package/README.md +447 -407
  4. package/dist/config/config.default.d.ts +3 -3
  5. package/dist/config/config.default.js +177 -177
  6. package/dist/config/utils.d.ts +1 -1
  7. package/dist/config/utils.js +23 -23
  8. package/dist/configuration.d.ts +7 -7
  9. package/dist/configuration.js +113 -113
  10. package/dist/controller/base/BaseApiController.d.ts +49 -49
  11. package/dist/controller/base/BaseApiController.js +198 -198
  12. package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
  13. package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
  14. package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
  15. package/dist/controller/gateway/AsyncTaskController.js +181 -181
  16. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
  17. package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
  18. package/dist/controller/gateway/CrudStdGatewayController.d.ts +39 -39
  19. package/dist/controller/gateway/CrudStdGatewayController.js +149 -149
  20. package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
  21. package/dist/controller/gateway/DocGatewayController.js +181 -181
  22. package/dist/controller/gateway/FileController.d.ts +32 -32
  23. package/dist/controller/gateway/FileController.js +160 -160
  24. package/dist/controller/gateway/FlowInstanceController.d.ts +16 -16
  25. package/dist/controller/gateway/FlowInstanceController.js +48 -48
  26. package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
  27. package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
  28. package/dist/controller/gateway/PublicApiController.d.ts +33 -33
  29. package/dist/controller/gateway/PublicApiController.js +194 -194
  30. package/dist/controller/gateway/StaticController.d.ts +23 -23
  31. package/dist/controller/gateway/StaticController.js +280 -280
  32. package/dist/controller/helpers.controller.d.ts +36 -36
  33. package/dist/controller/helpers.controller.js +187 -187
  34. package/dist/controller/home.controller.d.ts +9 -9
  35. package/dist/controller/home.controller.js +78 -78
  36. package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
  37. package/dist/controller/manage/AnyApiMangeApi.js +98 -98
  38. package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
  39. package/dist/controller/manage/AppLogMangeApi.js +88 -88
  40. package/dist/controller/manage/AppMangeApi.d.ts +12 -12
  41. package/dist/controller/manage/AppMangeApi.js +101 -101
  42. package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
  43. package/dist/controller/manage/AppPageMangeApi.js +87 -87
  44. package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
  45. package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
  46. package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
  47. package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
  48. package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
  49. package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
  50. package/dist/controller/manage/DataDictManageApi.d.ts +17 -17
  51. package/dist/controller/manage/DataDictManageApi.js +165 -165
  52. package/dist/controller/manage/DeployManageApi.d.ts +21 -21
  53. package/dist/controller/manage/DeployManageApi.js +203 -203
  54. package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
  55. package/dist/controller/manage/DocLibManageApi.js +104 -104
  56. package/dist/controller/manage/DocManageApi.d.ts +11 -11
  57. package/dist/controller/manage/DocManageApi.js +130 -130
  58. package/dist/controller/manage/FileManageApi.d.ts +13 -13
  59. package/dist/controller/manage/FileManageApi.js +77 -77
  60. package/dist/controller/manage/FlowConfigManageApi.d.ts +12 -12
  61. package/dist/controller/manage/FlowConfigManageApi.js +109 -109
  62. package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
  63. package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
  64. package/dist/controller/manage/MenuManageApi.d.ts +11 -11
  65. package/dist/controller/manage/MenuManageApi.js +104 -104
  66. package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
  67. package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
  68. package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
  69. package/dist/controller/manage/SuperAdminManageApi.js +153 -153
  70. package/dist/controller/manage/SysConfigMangeApi.d.ts +12 -12
  71. package/dist/controller/manage/SysConfigMangeApi.js +133 -133
  72. package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
  73. package/dist/controller/manage/SystemInfoManageApi.js +82 -82
  74. package/dist/controller/manage/UserAccountManageApi.d.ts +16 -16
  75. package/dist/controller/manage/UserAccountManageApi.js +153 -153
  76. package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
  77. package/dist/controller/manage/WorkbenchMangeApi.js +106 -106
  78. package/dist/controller/myinfo/AuthController.d.ts +37 -37
  79. package/dist/controller/myinfo/AuthController.js +157 -157
  80. package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
  81. package/dist/controller/myinfo/MyInfoController.js +51 -51
  82. package/dist/controller/render/AppRenderController.d.ts +12 -12
  83. package/dist/controller/render/AppRenderController.js +93 -93
  84. package/dist/controller/test.controller.d.ts +8 -8
  85. package/dist/controller/test.controller.js +51 -51
  86. package/dist/filter/default.filter.d.ts +7 -7
  87. package/dist/filter/default.filter.js +23 -23
  88. package/dist/filter/notfound.filter.d.ts +5 -5
  89. package/dist/filter/notfound.filter.js +20 -20
  90. package/dist/index.d.ts +111 -111
  91. package/dist/index.js +129 -129
  92. package/dist/interface.d.ts +30 -30
  93. package/dist/interface.js +3 -3
  94. package/dist/libs/crud-pro/CrudPro.d.ts +51 -37
  95. package/dist/libs/crud-pro/CrudPro.js +207 -146
  96. package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
  97. package/dist/libs/crud-pro/defaultConfigs.js +15 -15
  98. package/dist/libs/crud-pro/exceptions.d.ts +106 -106
  99. package/dist/libs/crud-pro/exceptions.js +119 -119
  100. package/dist/libs/crud-pro/interfaces.d.ts +195 -175
  101. package/dist/libs/crud-pro/interfaces.js +12 -12
  102. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +50 -50
  103. package/dist/libs/crud-pro/models/ExecuteContext.js +87 -87
  104. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
  105. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
  106. package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
  107. package/dist/libs/crud-pro/models/FuncContext.js +6 -6
  108. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
  109. package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
  110. package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
  111. package/dist/libs/crud-pro/models/RequestModel.js +113 -113
  112. package/dist/libs/crud-pro/models/ResModel.d.ts +20 -20
  113. package/dist/libs/crud-pro/models/ResModel.js +2 -2
  114. package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
  115. package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
  116. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +23 -23
  117. package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
  118. package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
  119. package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
  120. package/dist/libs/crud-pro/models/Transaction.d.ts +50 -50
  121. package/dist/libs/crud-pro/models/Transaction.js +184 -184
  122. package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +19 -19
  123. package/dist/libs/crud-pro/models/TransactionMySQL.js +48 -48
  124. package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +19 -19
  125. package/dist/libs/crud-pro/models/TransactionPostgres.js +64 -64
  126. package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +9 -9
  127. package/dist/libs/crud-pro/models/TransactionSqlServer.js +61 -61
  128. package/dist/libs/crud-pro/models/keys.d.ts +111 -111
  129. package/dist/libs/crud-pro/models/keys.js +156 -156
  130. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
  131. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
  132. package/dist/libs/crud-pro/services/CrudProDataFilterService.d.ts +17 -0
  133. package/dist/libs/crud-pro/services/CrudProDataFilterService.js +53 -0
  134. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
  135. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
  136. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
  137. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +224 -224
  138. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
  139. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
  140. package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
  141. package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
  142. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +25 -25
  143. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +385 -385
  144. package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
  145. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
  146. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
  147. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +345 -339
  148. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
  149. package/dist/libs/crud-pro/services/CrudProServiceBase.js +88 -88
  150. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +12 -9
  151. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +167 -77
  152. package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +34 -32
  153. package/dist/libs/crud-pro/services/CurdProServiceHub.js +69 -64
  154. package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
  155. package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
  156. package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +9 -9
  157. package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -12
  158. package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
  159. package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
  160. package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
  161. package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
  162. package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
  163. package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
  164. package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
  165. package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
  166. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +40 -40
  167. package/dist/libs/crud-pro/utils/MixinUtils.js +259 -259
  168. package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
  169. package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
  170. package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
  171. package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
  172. package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
  173. package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
  174. package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
  175. package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
  176. package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
  177. package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
  178. package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
  179. package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
  180. package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
  181. package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
  182. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
  183. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
  184. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
  185. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +35 -35
  186. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +24 -24
  187. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
  188. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +14 -14
  189. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
  190. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +14 -14
  191. package/dist/libs/global-config/global-config.d.ts +71 -71
  192. package/dist/libs/global-config/global-config.js +38 -38
  193. package/dist/libs/utils/AsymmetricCrypto.d.ts +76 -76
  194. package/dist/libs/utils/AsymmetricCrypto.js +261 -261
  195. package/dist/libs/utils/base64.d.ts +9 -9
  196. package/dist/libs/utils/base64.js +42 -42
  197. package/dist/libs/utils/common-dto.d.ts +18 -18
  198. package/dist/libs/utils/common-dto.js +40 -40
  199. package/dist/libs/utils/crypto-utils.d.ts +3 -3
  200. package/dist/libs/utils/crypto-utils.js +55 -55
  201. package/dist/libs/utils/errorToString.d.ts +20 -20
  202. package/dist/libs/utils/errorToString.js +79 -79
  203. package/dist/libs/utils/fatcms-request.d.ts +45 -45
  204. package/dist/libs/utils/fatcms-request.js +161 -161
  205. package/dist/libs/utils/format-url.d.ts +17 -17
  206. package/dist/libs/utils/format-url.js +30 -30
  207. package/dist/libs/utils/functions.d.ts +11 -11
  208. package/dist/libs/utils/functions.js +99 -99
  209. package/dist/libs/utils/ordernum-utils.d.ts +22 -22
  210. package/dist/libs/utils/ordernum-utils.js +35 -35
  211. package/dist/libs/utils/parseConfig.d.ts +8 -8
  212. package/dist/libs/utils/parseConfig.js +47 -47
  213. package/dist/libs/utils/parseCreateSql.d.ts +10 -10
  214. package/dist/libs/utils/parseCreateSql.js +87 -87
  215. package/dist/libs/utils/render-utils.d.ts +40 -40
  216. package/dist/libs/utils/render-utils.js +158 -158
  217. package/dist/middleware/forbidden.middleware.d.ts +74 -74
  218. package/dist/middleware/forbidden.middleware.js +318 -318
  219. package/dist/middleware/global.middleware.d.ts +40 -40
  220. package/dist/middleware/global.middleware.js +310 -310
  221. package/dist/middleware/permission.middleware.d.ts +88 -88
  222. package/dist/middleware/permission.middleware.js +145 -145
  223. package/dist/middleware/rediscache.middleware.d.ts +28 -28
  224. package/dist/middleware/rediscache.middleware.js +114 -114
  225. package/dist/middleware/redislock.middleware.d.ts +29 -29
  226. package/dist/middleware/redislock.middleware.js +106 -106
  227. package/dist/middleware/tx.middleware.d.ts +55 -55
  228. package/dist/middleware/tx.middleware.js +83 -83
  229. package/dist/models/AsyncTaskModel.d.ts +74 -74
  230. package/dist/models/AsyncTaskModel.js +31 -31
  231. package/dist/models/FlowModel.d.ts +227 -227
  232. package/dist/models/FlowModel.js +53 -53
  233. package/dist/models/RedisKeys.d.ts +15 -15
  234. package/dist/models/RedisKeys.js +18 -18
  235. package/dist/models/SystemEntities.d.ts +118 -118
  236. package/dist/models/SystemEntities.js +18 -18
  237. package/dist/models/SystemPerm.d.ts +96 -96
  238. package/dist/models/SystemPerm.js +101 -101
  239. package/dist/models/SystemTables.d.ts +25 -25
  240. package/dist/models/SystemTables.js +28 -28
  241. package/dist/models/WorkbenchInfoTools.d.ts +7 -7
  242. package/dist/models/WorkbenchInfoTools.js +20 -20
  243. package/dist/models/bizmodels.d.ts +150 -150
  244. package/dist/models/bizmodels.js +62 -62
  245. package/dist/models/contextLogger.d.ts +27 -27
  246. package/dist/models/contextLogger.js +119 -119
  247. package/dist/models/devops.d.ts +12 -12
  248. package/dist/models/devops.js +19 -19
  249. package/dist/models/userSession.d.ts +67 -67
  250. package/dist/models/userSession.js +179 -179
  251. package/dist/schedule/anonymousContext.d.ts +15 -15
  252. package/dist/schedule/anonymousContext.js +74 -74
  253. package/dist/schedule/index.d.ts +4 -4
  254. package/dist/schedule/index.js +10 -10
  255. package/dist/schedule/runSchedule.d.ts +12 -12
  256. package/dist/schedule/runSchedule.js +68 -68
  257. package/dist/schedule/scheduleNames.d.ts +15 -15
  258. package/dist/schedule/scheduleNames.js +19 -19
  259. package/dist/service/AuthService.d.ts +56 -56
  260. package/dist/service/AuthService.js +251 -251
  261. package/dist/service/EnumInfoService.d.ts +30 -30
  262. package/dist/service/EnumInfoService.js +97 -97
  263. package/dist/service/FileCenterService.d.ts +64 -64
  264. package/dist/service/FileCenterService.js +422 -422
  265. package/dist/service/SysAppService.d.ts +15 -15
  266. package/dist/service/SysAppService.js +108 -108
  267. package/dist/service/SysConfigService.d.ts +10 -10
  268. package/dist/service/SysConfigService.js +64 -64
  269. package/dist/service/SysDictDataService.d.ts +9 -9
  270. package/dist/service/SysDictDataService.js +72 -72
  271. package/dist/service/SysMenuService.d.ts +51 -51
  272. package/dist/service/SysMenuService.js +58 -58
  273. package/dist/service/UserAccountService.d.ts +23 -23
  274. package/dist/service/UserAccountService.js +107 -107
  275. package/dist/service/UserSessionService.d.ts +43 -43
  276. package/dist/service/UserSessionService.js +163 -163
  277. package/dist/service/VisitStatService.d.ts +14 -14
  278. package/dist/service/VisitStatService.js +161 -161
  279. package/dist/service/WorkbenchService.d.ts +59 -59
  280. package/dist/service/WorkbenchService.js +249 -249
  281. package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
  282. package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
  283. package/dist/service/anyapi/AnyApiService.d.ts +27 -27
  284. package/dist/service/anyapi/AnyApiService.js +181 -181
  285. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
  286. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
  287. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
  288. package/dist/service/asyncTask/AsyncTaskService.js +34 -34
  289. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
  290. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
  291. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
  292. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
  293. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
  294. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
  295. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
  296. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
  297. package/dist/service/base/ApiBaseService.d.ts +22 -22
  298. package/dist/service/base/ApiBaseService.js +60 -60
  299. package/dist/service/base/ApiRateLimiter.d.ts +10 -10
  300. package/dist/service/base/ApiRateLimiter.js +51 -51
  301. package/dist/service/base/BaseService.d.ts +46 -46
  302. package/dist/service/base/BaseService.js +131 -131
  303. package/dist/service/base/cache/CacheServiceFactory.d.ts +26 -26
  304. package/dist/service/base/cache/CacheServiceFactory.js +122 -122
  305. package/dist/service/base/cache/CtxCache.d.ts +18 -18
  306. package/dist/service/base/cache/CtxCache.js +37 -37
  307. package/dist/service/base/cache/DiskCache.d.ts +19 -19
  308. package/dist/service/base/cache/DiskCache.js +81 -81
  309. package/dist/service/base/cache/MemoryCache.d.ts +12 -12
  310. package/dist/service/base/cache/MemoryCache.js +58 -58
  311. package/dist/service/base/cache/NoneCache.d.ts +10 -10
  312. package/dist/service/base/cache/NoneCache.js +19 -19
  313. package/dist/service/base/cache/RedisCache.d.ts +14 -14
  314. package/dist/service/base/cache/RedisCache.js +31 -31
  315. package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
  316. package/dist/service/crudstd/CrudStdActionService.js +32 -32
  317. package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
  318. package/dist/service/crudstd/CrudStdConstant.js +64 -64
  319. package/dist/service/crudstd/CrudStdRelationService.d.ts +11 -11
  320. package/dist/service/crudstd/CrudStdRelationService.js +179 -179
  321. package/dist/service/crudstd/CrudStdService.d.ts +59 -59
  322. package/dist/service/crudstd/CrudStdService.js +348 -348
  323. package/dist/service/curd/CrudProQuick.d.ts +60 -60
  324. package/dist/service/curd/CrudProQuick.js +167 -167
  325. package/dist/service/curd/CurdMixByAccountService.d.ts +14 -14
  326. package/dist/service/curd/CurdMixByAccountService.js +166 -166
  327. package/dist/service/curd/CurdMixByDictService.d.ts +12 -12
  328. package/dist/service/curd/CurdMixByDictService.js +114 -114
  329. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -30
  330. package/dist/service/curd/CurdMixByLinkToCustomService.js +209 -209
  331. package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -13
  332. package/dist/service/curd/CurdMixBySysConfigService.js +116 -116
  333. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -11
  334. package/dist/service/curd/CurdMixByWorkbenchService.js +80 -80
  335. package/dist/service/curd/CurdMixService.d.ts +28 -28
  336. package/dist/service/curd/CurdMixService.js +100 -100
  337. package/dist/service/curd/CurdMixUtils.d.ts +57 -57
  338. package/dist/service/curd/CurdMixUtils.js +331 -331
  339. package/dist/service/curd/CurdProService.d.ts +32 -32
  340. package/dist/service/curd/CurdProService.js +215 -215
  341. package/dist/service/curd/fixCfgModel.d.ts +3 -3
  342. package/dist/service/curd/fixCfgModel.js +104 -104
  343. package/dist/service/curd/fixSoftDelete.d.ts +6 -6
  344. package/dist/service/curd/fixSoftDelete.js +43 -43
  345. package/dist/service/flow/FlowConfigService.d.ts +41 -41
  346. package/dist/service/flow/FlowConfigService.js +95 -95
  347. package/dist/service/flow/FlowInstanceCrudService.d.ts +35 -35
  348. package/dist/service/flow/FlowInstanceCrudService.js +257 -257
  349. package/dist/service/flow/FlowInstanceService.d.ts +88 -88
  350. package/dist/service/flow/FlowInstanceService.js +451 -451
  351. package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
  352. package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
  353. package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
  354. package/dist/service/proxyapi/ProxyApiService.js +317 -317
  355. package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
  356. package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
  357. package/dist/service/proxyapi/RouteHandler.d.ts +6 -6
  358. package/dist/service/proxyapi/RouteHandler.js +9 -9
  359. package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
  360. package/dist/service/proxyapi/RouteTrie.js +64 -64
  361. package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
  362. package/dist/service/proxyapi/WeightedRandom.js +31 -31
  363. package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
  364. package/dist/service/proxyapi/WeightedRoundRobin.js +33 -33
  365. package/index.d.ts +10 -10
  366. package/package.json +87 -87
  367. package/src/libs/crud-pro/CrudPro.ts +71 -0
  368. package/src/libs/crud-pro/interfaces.ts +22 -0
  369. package/src/libs/crud-pro/models/ServiceHub.ts +2 -2
  370. package/src/libs/crud-pro/services/CrudProDataFilterService.ts +58 -0
  371. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +10 -1
  372. package/src/libs/crud-pro/services/CrudProTableMetaService.ts +145 -40
  373. package/src/libs/crud-pro/services/CurdProServiceHub.ts +10 -3
  374. package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -13
  375. package/src/libs/utils/AsymmetricCrypto.ts +307 -307
  376. package/src/libs/utils/format-url.ts +29 -29
  377. package/src/libs/utils/render-utils.ts +223 -223
  378. package/src/models/WorkbenchInfoTools.ts +19 -19
  379. package/src/service/SysAppService.ts +103 -103
  380. package/src/service/SysDictDataService.ts +63 -63
  381. package/src/service/SysMenuService.ts +87 -87
  382. package/src/service/WorkbenchService.ts +279 -279
  383. package/src/service/base/cache/CacheServiceFactory.ts +135 -135
  384. package/src/service/base/cache/CtxCache.ts +45 -45
  385. package/src/service/base/cache/DiskCache.ts +90 -90
  386. package/src/service/base/cache/MemoryCache.ts +68 -68
  387. package/src/service/base/cache/NoneCache.ts +24 -24
  388. package/src/service/base/cache/RedisCache.ts +41 -41
  389. package/src/service/curd/CurdMixByAccountService.ts +177 -177
  390. package/src/service/curd/fixSoftDelete.ts +58 -58
  391. package/tsconfig.json +32 -32
package/README.md CHANGED
@@ -1,407 +1,447 @@
1
- # Midway FatCMS
2
-
3
- **企业级低代码/零代码开发平台**
4
-
5
- 基于 Midway.js 框架的多租户 SaaS 低代码平台,提供 API 网关、CRUD-Pro 引擎、工作流、文档管理等企业级功能。
6
-
7
- ## 项目简介
8
-
9
- Midway FatCMS 是一个功能完整的企业级低代码开发平台,旨在通过配置化的方式快速构建企业应用系统。系统核心特性包括:
10
-
11
- - **零代码 CRUD 开发**:通过配置自动生成 CRUD 接口
12
- - **动态 API 管理**:支持 SQL 查询、沙箱脚本、自定义代码三种 API 类型
13
- - **API 网关与代理**:反向代理、负载均衡、流量控制
14
- - **多租户架构**:基于域名的租户隔离,支持 SaaS 部署
15
- - **工作流引擎**:灵活的业务流程管理
16
- - **文档管理系统**:支持文档库、版本控制、权限管理
17
- - **文件服务**:OSS 对接、上传下载、预览管理
18
-
19
- ## 核心功能
20
-
21
- ### 1. CRUD-Pro 引擎
22
-
23
- **智能 CRUD 生成引擎**,提供配置化的数据库操作能力:
24
-
25
- - **标准化 CRUD**:基于表配置自动生成增删改查接口
26
- - **复杂查询支持**:分页、排序、筛选、关联查询
27
- - **字段级权限**:支持字段可见性、只读、必填等控制
28
- - **数据验证**:内置 20+ 种验证器(邮箱、手机号、日期等)
29
- - **关联关系**:自动处理一对一、一对多、多对多关系
30
- - **软删除**:支持逻辑删除和物理删除
31
- - **审计日志**:自动记录创建人、修改人、时间戳
32
- - **多数据库支持**:MySQL、PostgreSQL、SQL Server
33
-
34
- **应用场景**:
35
- - 快速搭建后台管理系统
36
- - 数据管理平台
37
- - 报表查询系统
38
- - 业务配置中心
39
-
40
- ### 2. 动态 API 管理(Any API)
41
-
42
- **三种 API 创建方式**,满足不同复杂度需求:
43
-
44
- #### 2.1 SQL 查询 API
45
- - 直接编写 SQL,自动转换为 REST API
46
- - 支持参数化查询、防 SQL 注入
47
- - 适用于复杂报表、数据分析
48
-
49
- #### 2.2 沙箱脚本 API
50
- - 使用 Node.js VM 沙箱执行自定义代码
51
- - 提供安全的运行环境
52
- - 内置工具库(axios、lodash、moment 等)
53
- - 访问数据库、Redis、OSS 等资源
54
-
55
- #### 2.3 自定义代码 API
56
- - 完全自定义的业务逻辑
57
- - 类似 Serverless Function
58
- - 热更新,无需重启服务
59
-
60
- **安全控制**:
61
- - 权限验证(登录、角色、功能点)
62
- - 限流控制(令牌桶算法)
63
- - 服务降级开关
64
- - 超时控制
65
- - IP 黑白名单
66
-
67
- **应用场景**:
68
- - 快速开发业务接口
69
- - 数据聚合 API
70
- - 第三方集成
71
- - 微服务编排
72
-
73
- ### 3. API 网关与代理
74
-
75
- **企业级 API 网关**,提供完整的代理转发能力:
76
-
77
- #### 负载均衡策略
78
- - 轮询(Round Robin)
79
- - 加权轮询(Weighted Round Robin)
80
- - 随机(Random)
81
- - 加权随机(Weighted Random)
82
- - IP Hash(同一 IP 固定路由)
83
- - 用户 Hash(同一用户固定路由)
84
- - 会话 Hash(同一会话固定路由)
85
-
86
- #### 流量控制
87
- - 请求限流
88
- - 超时控制
89
- - 重试机制
90
- - 熔断降级
91
-
92
- #### 安全特性
93
- - 真实 IP 透传
94
- - 用户上下文传递
95
- - Host/Origin 修改
96
- - 请求/响应头控制
97
-
98
- **应用场景**:
99
- - 微服务网关
100
- - 灰度发布
101
- - A/B 测试
102
- - 流量分发
103
- - 服务聚合
104
-
105
- ### 4. 多租户架构
106
-
107
- **工作台(Workbench)系统**,实现完整的多租户隔离:
108
-
109
- #### 租户隔离机制
110
- - **域名识别**:根据请求域名自动识别租户
111
- - **数据隔离**:租户数据完全隔离
112
- - **权限隔离**:用户、角色、权限独立管理
113
- - **资源隔离**:文件、配置、应用独立
114
-
115
- #### 灵活配置
116
- - 支持主域名 + 2 个备用域名
117
- - 通配符域名支持
118
- - 租户模板机制
119
- - 个性化配置
120
-
121
- **应用场景**:
122
- - SaaS 平台
123
- - 多品牌运营
124
- - 集团企业
125
- - 白标产品
126
-
127
- ### 5. 工作流引擎
128
-
129
- **灵活的业务流程管理**:
130
-
131
- - 流程定义与配置
132
- - 流程实例管理
133
- - 任务分配与审批
134
- - 流程状态跟踪
135
- - 流转记录查询
136
-
137
- **应用场景**:
138
- - 审批流程
139
- - 业务流转
140
- - 状态机管理
141
-
142
- ### 6. 文档管理系统
143
-
144
- **企业级文档管理**:
145
-
146
- - **文档库管理**:支持多个文档库
147
- - **目录结构**:树形目录组织
148
- - **版本控制**:文档版本管理
149
- - **访问统计**:PV/UV 统计(IP 去重)
150
- - **权限控制**:文档级权限管理
151
-
152
- **应用场景**:
153
- - API 文档
154
- - 产品文档
155
- - 知识库
156
- - 帮助中心
157
-
158
- ### 7. 文件服务
159
-
160
- **完整的文件管理能力**:
161
-
162
- - **上传下载**:支持单文件、多文件上传
163
- - **存储管理**:OSS 对接(公有桶、私有桶)
164
- - **文件预览**:图片、PDF、Office 文档
165
- - **访问控制**:临时链接、权限验证
166
- - **分类管理**:文件分类、标签
167
-
168
- ### 8. 系统管理
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
- - Midway.js 3.x(企业级 Node.js 框架)
200
- - Koa(Web 框架)
201
- - TypeScript(类型安全)
202
-
203
- **数据存储**
204
- - MySQL 2(主数据库)
205
- - PostgreSQL 8(可选)
206
- - SQL Server 11(可选)
207
- - Redis(缓存、锁、会话)
208
-
209
- **文件存储**
210
- - 阿里云 OSS
211
- - 兼容 S3 协议的对象存储
212
-
213
- **工具库**
214
- - Lodash(工具函数)
215
- - Moment(日期处理)
216
- - Axios(HTTP 客户端)
217
- - EJS(模板引擎)
218
- - Nodemailer(邮件发送)
219
- - LRU Cache(内存缓存)
220
-
221
- ### 核心中间件
222
-
223
- #### 全局中间件
224
- - **用户会话管理**:登录状态、权限信息
225
- - **多租户隔离**:域名识别、数据隔离
226
- - **事务管理**:自动事务控制
227
- - **日志追踪**:请求级日志
228
- - **响应格式化**:统一响应格式
229
- - **调试信息注入**:开发环境调试
230
- - **真实 IP 获取**:代理环境下获取真实 IP
231
-
232
- #### 权限中间件
233
- - **登录检查**(checkLogin)
234
- - **角色检查**(checkRole)
235
- - **权限检查**(checkPermission)
236
-
237
- #### 安全中间件
238
- - **黑名单拦截**(Forbidden):防止路径遍历、敏感文件访问
239
- - **Redis 分布式锁**(RedisLock):防止并发冲突
240
- - **Redis 缓存**(RedisCache):接口级缓存
241
-
242
- #### 事务中间件
243
- - **自动事务**(Transaction):开启、提交、回滚
244
-
245
- ### 安全特性
246
-
247
- #### 访问控制
248
- - JWT Token 认证
249
- - 会话管理
250
- - 超级管理员机制
251
- - 细粒度权限控制
252
-
253
- #### 攻击防护
254
- - SQL 注入防护
255
- - XSS 防护
256
- - CSRF Token
257
- - 路径遍历防护
258
- - User-Agent 黑名单(扫描工具检测)
259
- - IP 限流
260
-
261
- #### 数据安全
262
- - AES-128-CBC 加密
263
- - 非对称加密支持
264
- - 敏感字段加密存储
265
- - 密码加盐存储
266
-
267
- ## 应用场景
268
-
269
- ### 1. 企业后台系统
270
- - 快速搭建管理后台
271
- - 业务系统配置中心
272
- - 内部工具平台
273
-
274
- ### 2. SaaS 平台
275
- - 多租户应用
276
- - 白标产品
277
- - 行业解决方案
278
-
279
- ### 3. API 平台
280
- - API 管理与网关
281
- - 数据开放平台
282
- - 微服务聚合
283
-
284
- ### 4. 低代码平台
285
- - 业务系统快速开发
286
- - 表单驱动应用
287
- - 数据分析平台
288
-
289
- ### 5. 内容管理系统
290
- - 文档管理
291
- - 知识库
292
- - 内容发布平台
293
-
294
- ## 快速开始
295
-
296
- ### 环境要求
297
-
298
- - Node.js >= 10
299
- - MySQL >= 5.7 / PostgreSQL >= 8 / SQL Server >= 11
300
- - Redis >= 3.0
301
-
302
- ### 安装依赖
303
-
304
- ```bash
305
- npm install
306
- ```
307
-
308
- ### 配置
309
-
310
- 1. 配置数据库连接(`src/config/config.default.ts`)
311
- 2. 配置 Redis 连接
312
- 3. 配置 OSS(可选)
313
- 4. 配置工作台信息
314
-
315
- ### 数据库初始化
316
-
317
- ```sql
318
- -- 执行初始化 SQL
319
- source ddl/2025-12-20.sql
320
- ```
321
-
322
- ### 启动服务
323
-
324
- ```bash
325
- # 开发模式
326
- npm run dev
327
-
328
- # 生产构建
329
- npm run build
330
-
331
- # 生产运行
332
- npm start
333
- ```
334
-
335
- ### 代码检查
336
-
337
- ```bash
338
- # 检查代码规范
339
- npm run lint
340
-
341
- # 自动修复
342
- npm run lint:fix
343
- ```
344
-
345
- ### 测试
346
-
347
- ```bash
348
- # 运行测试
349
- npm test
350
-
351
- # 测试覆盖率
352
- npm run cov
353
- ```
354
-
355
- ## 工具接口
356
-
357
- ### 加密工具
358
-
359
- ```
360
- http://127.0.0.1:7002/ns/api/helpers/cryptoAes128CBC?input=123
361
- ```
362
-
363
- ## 项目结构
364
-
365
- ```
366
- midway-fatcms/
367
- ├── src/
368
- │ ├── config/ # 配置文件
369
- │ ├── controller/ # 控制器
370
- │ │ ├── base/ # 基础控制器
371
- │ │ ├── gateway/ # 网关接口
372
- │ │ ├── manage/ # 管理接口
373
- │ │ ├── myinfo/ # 个人信息
374
- │ │ └── render/ # 渲染接口
375
- ├── filter/ # 异常过滤器
376
- ├── libs/ # 核心库
377
- │ │ ├── crud-pro/ # CRUD-Pro 引擎
378
- │ │ ├── global-config/ # 全局配置
379
- │ │ └── utils/ # 工具函数
380
- │ ├── middleware/ # 中间件
381
- │ ├── models/ # 数据模型
382
- │ ├── schedule/ # 定时任务
383
- │ ├── service/ # 业务服务
384
- │ │ ├── anyapi/ # 动态 API
385
- │ │ ├── asyncTask/ # 异步任务
386
- │ │ ├── base/ # 基础服务
387
- │ │ ├── crudstd/ # CRUD 标准
388
- │ │ ├── curd/ # CRUD 服务
389
- │ │ ├── flow/ # 工作流
390
- │ │ └── proxyapi/ # 代理 API
391
- │ └── views/ # 视图模板
392
- ├── ddl/ # 数据库脚本
393
- ├── scripts/ # 脚本工具
394
- └── package.json # 项目配置
395
- ```
396
-
397
- ## 版本
398
-
399
- 当前版本:`0.0.1-beta.82`
400
-
401
- ## 许可证
402
-
403
- MIT License
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>