npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

midway-fatcms

v0.0.3

Published

This is a midway component sample

Readme

Midway FatCMS

企业级低代码/零代码开发平台

基于 Midway.js 框架的多租户 SaaS 低代码平台,提供 API 网关、CRUD-Pro 引擎、工作流、文档管理等企业级功能。

项目简介

Midway FatCMS 是一个功能完整的企业级低代码开发平台,旨在通过配置化的方式快速构建企业应用系统。系统核心特性包括:

  • 零代码 CRUD 开发:通过配置自动生成 CRUD 接口
  • 动态 API 管理:支持 SQL 查询、沙箱脚本、自定义代码三种 API 类型
  • API 网关与代理:反向代理、负载均衡、流量控制
  • 多租户架构:基于域名的租户隔离,支持 SaaS 部署
  • 工作流引擎:灵活的业务流程管理
  • 文档管理系统:支持文档库、版本控制、权限管理
  • 文件服务:OSS 对接、上传下载、预览管理

核心功能

1. CRUD-Pro 引擎

智能 CRUD 生成引擎,提供配置化的数据库操作能力:

  • 标准化 CRUD:基于表配置自动生成增删改查接口
  • 复杂查询支持:分页、排序、筛选、关联查询
  • 字段级权限:支持字段可见性、只读、必填等控制
  • 数据验证:内置 20+ 种验证器(邮箱、手机号、日期等)
  • 关联关系:自动处理一对一、一对多、多对多关系
  • 软删除:支持逻辑删除和物理删除
  • 审计日志:自动记录创建人、修改人、时间戳
  • 多数据库支持:MySQL、PostgreSQL、SQL Server

应用场景

  • 快速搭建后台管理系统
  • 数据管理平台
  • 报表查询系统
  • 业务配置中心

2. 动态 API 管理(Any API)

三种 API 创建方式,满足不同复杂度需求:

2.1 SQL 查询 API

  • 直接编写 SQL,自动转换为 REST API
  • 支持参数化查询、防 SQL 注入
  • 适用于复杂报表、数据分析

2.2 沙箱脚本 API

  • 使用 Node.js VM 沙箱执行自定义代码
  • 提供安全的运行环境
  • 内置工具库(axios、lodash、moment 等)
  • 访问数据库、Redis、OSS 等资源

2.3 自定义代码 API

  • 完全自定义的业务逻辑
  • 类似 Serverless Function
  • 热更新,无需重启服务

安全控制

  • 权限验证(登录、角色、功能点)
  • 限流控制(令牌桶算法)
  • 服务降级开关
  • 超时控制
  • IP 黑白名单

应用场景

  • 快速开发业务接口
  • 数据聚合 API
  • 第三方集成
  • 微服务编排

3. API 网关与代理

企业级 API 网关,提供完整的代理转发能力:

负载均衡策略

  • 轮询(Round Robin)
  • 加权轮询(Weighted Round Robin)
  • 随机(Random)
  • 加权随机(Weighted Random)
  • IP Hash(同一 IP 固定路由)
  • 用户 Hash(同一用户固定路由)
  • 会话 Hash(同一会话固定路由)

流量控制

  • 请求限流
  • 超时控制
  • 重试机制
  • 熔断降级

安全特性

  • 真实 IP 透传
  • 用户上下文传递
  • Host/Origin 修改
  • 请求/响应头控制

应用场景

  • 微服务网关
  • 灰度发布
  • A/B 测试
  • 流量分发
  • 服务聚合

4. 多租户架构

工作台(Workbench)系统,实现完整的多租户隔离:

租户隔离机制

  • 域名识别:根据请求域名自动识别租户
  • 数据隔离:租户数据完全隔离
  • 权限隔离:用户、角色、权限独立管理
  • 资源隔离:文件、配置、应用独立

灵活配置

  • 支持主域名 + 2 个备用域名
  • 通配符域名支持
  • 租户模板机制
  • 个性化配置

应用场景

  • SaaS 平台
  • 多品牌运营
  • 集团企业
  • 白标产品

5. 工作流引擎

灵活的业务流程管理

  • 流程定义与配置
  • 流程实例管理
  • 任务分配与审批
  • 流程状态跟踪
  • 流转记录查询

应用场景

  • 审批流程
  • 业务流转
  • 状态机管理

6. 文档管理系统

企业级文档管理

  • 文档库管理:支持多个文档库
  • 目录结构:树形目录组织
  • 版本控制:文档版本管理
  • 访问统计:PV/UV 统计(IP 去重)
  • 权限控制:文档级权限管理

应用场景

  • API 文档
  • 产品文档
  • 知识库
  • 帮助中心

7. 文件服务

完整的文件管理能力

  • 上传下载:支持单文件、多文件上传
  • 存储管理:OSS 对接(公有桶、私有桶)
  • 文件预览:图片、PDF、Office 文档
  • 访问控制:临时链接、权限验证
  • 分类管理:文件分类、标签

8. 系统管理

用户权限管理

  • 用户账号管理
  • 角色管理
  • 功能点管理
  • 权限分配

应用管理

  • 应用列表
  • 应用页面管理
  • 菜单管理
  • 低代码模板

系统配置

  • 数据字典
  • 系统参数
  • 枚举管理
  • 定时任务

监控运维

  • 访问统计
  • 操作日志
  • 系统信息
  • 部署管理

技术架构

技术栈

后端框架

  • Midway.js 3.x(企业级 Node.js 框架)
  • Koa(Web 框架)
  • TypeScript(类型安全)

数据存储

  • MySQL 2(主数据库)
  • PostgreSQL 8(可选)
  • SQL Server 11(可选)
  • Redis(缓存、锁、会话)

文件存储

  • 阿里云 OSS
  • 兼容 S3 协议的对象存储

工具库

  • Lodash(工具函数)
  • Moment(日期处理)
  • Axios(HTTP 客户端)
  • EJS(模板引擎)
  • Nodemailer(邮件发送)
  • LRU Cache(内存缓存)

核心中间件

全局中间件

  • 用户会话管理:登录状态、权限信息
  • 多租户隔离:域名识别、数据隔离
  • 事务管理:自动事务控制
  • 日志追踪:请求级日志
  • 响应格式化:统一响应格式
  • 调试信息注入:开发环境调试
  • 真实 IP 获取:代理环境下获取真实 IP

权限中间件

  • 登录检查(checkLogin)
  • 角色检查(checkRole)
  • 权限检查(checkPermission)

安全中间件

  • 黑名单拦截(Forbidden):防止路径遍历、敏感文件访问
  • Redis 分布式锁(RedisLock):防止并发冲突
  • Redis 缓存(RedisCache):接口级缓存

事务中间件

  • 自动事务(Transaction):开启、提交、回滚

安全特性

访问控制

  • JWT Token 认证
  • 会话管理
  • 超级管理员机制
  • 细粒度权限控制

攻击防护

  • SQL 注入防护
  • XSS 防护
  • CSRF Token
  • 路径遍历防护
  • User-Agent 黑名单(扫描工具检测)
  • IP 限流

数据安全

  • AES-128-CBC 加密
  • 非对称加密支持
  • 敏感字段加密存储
  • 密码加盐存储

应用场景

1. 企业后台系统

  • 快速搭建管理后台
  • 业务系统配置中心
  • 内部工具平台

2. SaaS 平台

  • 多租户应用
  • 白标产品
  • 行业解决方案

3. API 平台

  • API 管理与网关
  • 数据开放平台
  • 微服务聚合

4. 低代码平台

  • 业务系统快速开发
  • 表单驱动应用
  • 数据分析平台

5. 内容管理系统

  • 文档管理
  • 知识库
  • 内容发布平台

快速开始

环境要求

  • Node.js >= 10
  • MySQL >= 5.7 / PostgreSQL >= 8 / SQL Server >= 11
  • Redis >= 3.0

安装依赖

npm install

配置

  1. 配置数据库连接(src/config/config.default.ts
  2. 配置 Redis 连接
  3. 配置 OSS(可选)
  4. 配置工作台信息

数据库初始化

-- 执行初始化 SQL
source ddl/2025-12-20.sql

启动服务

# 开发模式
npm run dev

# 生产构建
npm run build

# 生产运行
npm start

代码检查

# 检查代码规范
npm run lint

# 自动修复
npm run lint:fix

测试

# 运行测试
npm test

# 测试覆盖率
npm run cov

工具接口

加密工具

http://127.0.0.1:7002/ns/api/helpers/cryptoAes128CBC?input=123

项目结构

midway-fatcms/
├── src/
│   ├── config/              # 配置文件
│   ├── controller/          # 控制器
│   │   ├── base/           # 基础控制器
│   │   ├── gateway/        # 网关接口
│   │   ├── manage/         # 管理接口
│   │   ├── myinfo/         # 个人信息
│   │   └── render/         # 渲染接口
│   ├── filter/             # 异常过滤器
│   ├── libs/               # 核心库
│   │   ├── crud-pro/       # CRUD-Pro 引擎
│   │   ├── global-config/  # 全局配置
│   │   └── utils/          # 工具函数
│   ├── middleware/         # 中间件
│   ├── models/             # 数据模型
│   ├── schedule/           # 定时任务
│   ├── service/            # 业务服务
│   │   ├── anyapi/         # 动态 API
│   │   ├── asyncTask/      # 异步任务
│   │   ├── base/           # 基础服务
│   │   ├── crudstd/        # CRUD 标准
│   │   ├── curd/           # CRUD 服务
│   │   ├── flow/           # 工作流
│   │   └── proxyapi/       # 代理 API
│   └── views/              # 视图模板
├── ddl/                    # 数据库脚本
├── scripts/                # 脚本工具
└── package.json            # 项目配置

版本

当前版本:0.0.1-beta.82

许可证

MIT License

作者

企业级低代码开发团队