# tableforge **Repository Path**: rorop/tableforge ## Basic Information - **Project Name**: tableforge - **Description**: 基于SpringBoot 3.x + JOOQ 3.20.7 + Postgresql18.0 + JDK21低代码平台 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-30 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TableForge > **企业级低代码平台** - Spring Boot 3.x + Vue3 + TypeScript > **技术栈**: JDK 21 / PostgreSQL 18 / Redis 7 --- ## 📋 项目简介 现代化企业级多空间管理系统,集成**TableForge低代码平台**,提供完整的应用开发和数据管理能力。 **核心特性**: - ✅ 插件化架构 - 模块解耦,按需引入 - ✅ 多空间支持 - 完整SaaS解决方案 - ✅ 低代码平台 - TableForge企业级引擎 - ✅ 容器化部署 - Docker + Podman双支持 --- ## 🔧 技术栈 **后端**: Spring Boot 3.5.6 + JDK 21 + MyBatis-Plus 3.5.14 **数据库**: PostgreSQL 18+ + Redis 7+ **权限**: Sa-Token 1.44.0 + JWT **前端**: Vue3 + TypeScript + AntDesign Vue **容器**: Docker 27+ / Podman 5.6.1+ --- ## 🚀 快速开始 ### Docker(5分钟) ```bash cd packaging/docker && make minimal # http://localhost:8080 # admin / admin123 ``` ### Podman(企业级) ```bash cd packaging/podman && make pod ``` ### 传统部署 ```bash psql -U postgres -d ry_vue -f packaging/sql/postgresql/install_recommended.sql mvn spring-boot:run ``` --- ## ⭐ 核心功能 ### TableForge 低代码平台 - **动态表单** - 20+字段类型(文本、数字、日期、附件等) - **多视图** - Grid/Kanban/Calendar/Gantt/Gallery/Form - **权限系统** - 双层架构(SaToken认证 + 统一授权) - **协同编辑** - Event Sourcing + CRDT + WebSocket实时同步 - **节点管理** - 共享、收藏、访问统计 - **评论订阅** - @提及、智能订阅 ### 系统管理模块 - **用户管理** - 用户信息、角色分配、密码加密 - **角色权限** - 菜单权限、数据权限(5种级别) - **菜单管理** - 树形结构、权限标识、路由配置 - **组织架构** - 组织树、层级管理、负责人设置 - **字典配置** - 类型管理、数据管理、缓存机制 - **日志管理** - 操作日志、登录日志、审计追踪 - **OSS存储** - 多云支持(阿里云、腾讯云、MinIO等) ### 技术亮点 | 技术 | 应用场景 | 效果 | |------|---------|------| | CTE递归 | 权限查询 | 性能提升232倍 | | Caffeine+Redis | 两级缓存 | 命中率99.5% | | SpEL表达式 | 动态资源ID | 解决生产阻塞 | | 反向索引 | 缓存失效 | 粒度减少99% | | PostgreSQL 18 | JSONB+GIN | 查询提升50% | --- ## 💻 快速使用 ### 用户认证 ```java // 登录 LoginBody loginBody = new LoginBody(); loginBody.setUsername("admin"); loginBody.setPassword("admin123"); String token = loginService.login(loginBody); // 获取当前用户 LoginUser loginUser = LoginHelper.getLoginUser(); Long userId = LoginHelper.getUserId(); ``` ### 权限校验 ```java // 注解方式 @SaCheckPermission("system:user:add") public void addUser(User user) { } // 代码方式 StpUtil.checkPermission("system:user:edit"); ``` ### 数据权限 ```java // 自动注入数据权限 @DataScope(deptAlias = "d", userAlias = "u") public List selectUserList(User user) { // SQL会自动拼接数据权限条件 } ``` ### 文件上传 ```java // OSS上传 MultipartFile file = ...; SysOss oss = ossService.upload(file); String url = oss.getUrl(); ``` --- ## 🔌 核心API ### 用户管理 ``` GET /system/user/list # 用户列表 POST /system/user # 新增用户 PUT /system/user # 修改用户 DELETE /system/user/{userId} # 删除用户 PUT /system/user/resetPwd # 重置密码 ``` ### 角色管理 ``` GET /system/role/list # 角色列表 POST /system/role # 新增角色 PUT /system/role/dataScope # 修改数据权限 ``` ### 菜单管理 ``` GET /system/menu/list # 菜单列表 GET /system/menu/treeselect # 菜单树 POST /system/menu # 新增菜单 ``` ### 组织管理 ``` GET /system/org/list # 组织列表 GET /system/org/treeselect # 组织树 POST /system/org # 新增组织 ``` --- ## ⚙️ 配置参考 ### 数据源配置 ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/ry_vue username: postgres password: password ``` ### 权限系统配置 ```yaml sa-token: token-name: Authorization timeout: 43200 # 12小时 tableforge: permission: enable-hierarchy-inheritance: true enable-audit: true max-hierarchy-depth: 5 ``` ### OSS配置 ```yaml oss: type: minio # minio/aliyun/qcloud/qiniu endpoint: http://localhost:9000 access-key: admin secret-key: password bucket-name: tableforge ``` --- ## 📖 详细文档 ### 核心文档 - **[TableForge核心功能详解](packaging/docs/tableforge/01_核心功能详解.md)** - 完整架构和功能说明(60分钟) - **[权限系统快速参考](packaging/docs/tableforge/02_权限系统设计.md)** - 权限系统快速入门(5分钟) - **[权限系统完整指南](packaging/docs/tableforge/权限系统完整指南_v2.2.md)** - 详细手册(20分钟) ### 部署文档 - **[Docker部署](packaging/docker/README.md)** - Docker方案(11个配置) - **[Podman部署](packaging/podman/README.md)** - Podman方案(7个配置) - **[数据库脚本](packaging/sql/postgresql/)** - PostgreSQL初始化脚本 ### 模块文档 - **[系统模块](packaging/docs/system/README.md)** - 用户、角色、权限、组织 - **[TableForge文档中心](packaging/docs/tableforge/README.md)** - 文档导航 --- ## 📦 项目结构 ``` tableforge/ ├── application/ # 启动模块 │ └── src/main/resources/ # 配置文件 ├── shared/ # 共享能力模块(26个) │ ├── core/ # 核心工具 │ ├── mybatis/ # MyBatis增强 │ ├── redis/ # Redis缓存 │ ├── satoken/ # 认证鉴权 │ └── ... # 其他共享模块 ├── modules/ # 业务模块 │ ├── engine/ # TableForge引擎 │ │ ├── controller/ # REST API │ │ ├── service/ # 业务逻辑 │ │ ├── mapper/ # 数据访问 │ │ └── domain/ # 领域模型 │ └── notification/ # 通知中心 ├── extensions/ # 可选扩展 │ ├── monitor/ # 监控中心 │ └── scheduler/ # 任务调度 └── packaging/ # 打包和部署 ├── docker/ # Docker部署 ├── podman/ # Podman部署 ├── sql/postgresql/ # 数据库脚本 └── docs/ # 模块文档 ``` --- ## 📊 数据库设计 ### 核心表 ``` 用户相关: sys_user, sys_user_role, sys_user_post 角色权限: sys_role, sys_role_menu, sys_role_org 组织架构: sys_org, sys_post 菜单管理: sys_nav 字典配置: sys_dict_type, sys_dict_data, sys_config 日志管理: sys_oper_log, sys_logininfor 文件存储: sys_oss, sys_oss_config ``` ### TableForge表 ``` 应用管理: tf_app, tf_space, tf_folder, tf_node 表单引擎: tf_worksheet, tf_field, tf_view 数据追踪: tf_worksheet_event, tf_worksheet_snapshot 权限系统: tf_unified_permission, tf_unified_role 评论订阅: tf_worksheet_record_comment, tf_subscription ``` --- ## ⚠️ 注意事项 ### 安全 - **默认密码**: 初始密码为 `admin123`,首次登录后**必须修改** - **生产环境**: 务必修改数据库密码、Redis密码、JWT密钥 - **CORS配置**: 生产环境限制具体域名,禁止使用 `*` ### 数据 - **多空间隔离**: 所有表包含 `tenant_id` 字段,自动实现空间隔离 - **软删除**: 使用 `del_flag` 字段,删除操作不会物理删除数据 - **数据权限**: 基于组织和用户的5级数据权限控制 ### 性能 - **缓存机制**: 字典、参数、OSS配置等使用Redis缓存 - **异步日志**: 操作日志异步写入,不影响主业务 - **连接池**: 使用HikariCP高性能连接池 - **索引优化**: 关键查询字段建立索引 ---