开源多维表格SmartTable v1.1版本更新啦

开源多维表格SmartTable v1.1版本更新啦


一、v1.1 版本更新内容

v1.1 版本更新,主要围绕团队协作、系统安全和运维部署三个方向进行补强。以下是本次更新的完整清单。

新增功能

实时协作

基于 Flask-SocketIO + Redis 实现的多人实时编辑能力。同一多维表格支持多用户同时在线操作,编辑中的单元格自动锁定,数据变更通过 WebSocket 实时广播到所有在线客户端。冲突场景采用乐观锁机制------比对 updated_at 时间戳,检测到冲突时弹出选择界面由用户决定保留哪个版本。

协作功能默认关闭,需在后端配置中设置 ENABLE_REALTIME=true 并确保 Redis 可用后启用。

邮件服务

完整的邮件系统,覆盖发送、模板、队列、重试四个环节:

  • SMTP 连接池管理,支持主流邮件服务商
  • Jinja2 模板引擎,HTML 和纯文本双格式渲染
  • 队列化发送,避免阻塞主线程
  • 发送失败自动重试,最大重试次数可配置
  • 内置三套默认模板:注册欢迎、密码重置、邮箱验证

管理员可在后台对模板进行可视化编辑,查看发送日志和统计报表。

用户认证体系

v1.1 补全了完整的认证链路:

  • 注册 / 登录 / 登出,登录和注册均支持图形验证码
  • 忘记密码 → 邮件发送重置链接 → 设置新密码
  • 邮箱验证,注册后需点击验证链接激活账号
  • 修改密码,登录状态下可自行修改
  • JWT 双令牌机制(Access Token + Refresh Token),支持令牌刷新和黑名单(登出即失效)

仪表盘

ECharts 驱动的数据可视化面板,支持:

  • 柱状图、折线图、饼图三种基础图表
  • KPI 指标卡、实时时钟、日期组件、跑马灯等辅助组件
  • 网格布局和自由布局两种模式,组件可拖拽调整位置和大小
  • 仪表盘分享:生成独立访问链接,可设置访问密码、过期时间、访问次数上限

管理员面板

面向系统管理者的后台管理界面:

  • 用户管理:列表查询、角色筛选、状态切换、批量删除、重置密码
  • 系统配置:SMTP 邮件参数、系统运行参数
  • 操作日志:记录关键操作,支持按时间和类型筛选,可导出 CSV
  • 邮件管理:模板 CRUD、发送日志查询、统计报表

角色权限

实现了六种角色:owner / admin / workspace_admin / editor / commenter / viewer。不同角色对多维表格的操作权限不同,分享链接也可单独设置"仅查看"或"可编辑"。

Docker 部署

提供生产级 Docker 部署方案:

  • 统一 Dockerfile,三阶段构建(前端编译 → 后端依赖安装 → 生产镜像打包)
  • docker-compose.yml:SQLite 版,适合小团队快速部署
  • docker-compose.full.yml:PostgreSQL + Redis 版,适合生产环境
  • Nginx 反向代理 + Gunicorn WSGI 服务器 + Supervisor 进程管理

一条 docker-compose up -d 即可完成全部部署。

安全加固

v1.1 对安全做了系统性排查和修复,主要涉及以下方面:

项目 措施
XSS 防护 前端引入 DOMPurify,所有 v-htmlinnerHTML 渲染前进行消毒;后端 sanitize_string() 清理 script/style 标签
速率限制 五级限制:登录(5次/15分钟)、通用 API(按用户+IP)、文件上传(20次/小时)、数据查询(200次/分钟)、数据写入(100次/分钟)
安全响应头 X-Content-Type-Options: nosniff、X-Frame-Options: DENY、X-XSS-Protection、Referrer-Policy、Permissions-Policy、HSTS(HTTPS 环境)、CSP(生产环境)
文件上传 Magic Number 文件头验证 + 扩展名白名单 + SVG 等高风险类型黑名单
异常信息 统一异常处理,API 响应仅返回通用错误描述,内部详情只写服务端日志
生产日志 Vite 构建配置 drop: ['console', 'debugger'],生产包不含任何调试输出
密码安全 bcrypt 哈希存储 + 强度校验(大写+小写+数字,≥8位)

Bug 修复

  • 修复仪表盘配置页面刷新报错(loadBase 方法名错误)
  • 修复 ECharts tooltip 中 params.name 未转义导致的潜在 XSS
  • 修复多个 Vue 组件卸载时未清理事件监听器导致的内存泄漏(EmailStats、Home、GanttView、Dashboard、DashboardShare)
  • 修复密码重置路由绕过密码强度校验的问题
  • 修复取消收藏接口使用了错误的 HTTP 方法

二、SmartTable 产品介绍

是什么

SmartTable 是一个开源的多维表格管理系统,功能对标 Airtable 和飞书多维表格。你可以用它来搭建各种结构化的数据管理工具------项目追踪、客户管理、库存盘点、内容日历、需求池,诸如此类。

和 Excel 不一样的地方在于,SmartTable 的每一列都有明确的字段类型。文本就是文本,日期就是日期,单选就是单选,关联就是关联。类型约束让数据更干净,也让筛选、排序、分组、公式这些操作变得可靠。

核心功能

22 种字段类型

文本、数字、日期、单选、多选、复选框、成员、电话、邮箱、链接、附件、公式、关联、查找引用、创建人、创建时间、更新人、更新时间、自动编号、评分、进度、URL。

6 种视图

  • 表格视图:传统行列展示,支持虚拟滚动和列冻结
  • 看板视图:按分组字段展示卡片,支持拖拽排序
  • 日历视图:按日期展示,月/周/日三种粒度
  • 甘特视图:时间轴展示项目进度
  • 画廊视图:以图片为主的卡片展示
  • 表单视图:生成可分享的数据收集表单

43 个公式函数

数学类(SUM、AVG、ROUND 等 11 个)、文本类(CONCAT、LEFT、FIND 等 10 个)、日期类(TODAY、DATEDIF、DATEADD 等 10 个)、逻辑类(IF、AND、OR 等 7 个)、统计类(COUNTIF、SUMIF 等 5 个)。

数据操作

多条件组合筛选(AND/OR)、多字段排序、多级分组(支持折叠/展开和分组统计)、全局搜索、字段显隐控制、列冻结、批量操作。

导入导出

Excel(.xlsx/.xls)、CSV、JSON 三种格式,导入导出均支持。

仪表盘

ECharts 图表 + 拖拽布局 + 分享功能,上文已介绍。

实时协作

WebSocket 多人编辑 + 单元格锁定 + 冲突检测,上文已介绍。

技术栈

前端:Vue 3 / TypeScript / Pinia / Element Plus / VXE Table / ECharts / Vite

后端:Flask / SQLAlchemy / Flask-JWT-Extended / Flask-SocketIO / bcrypt / Gunicorn

数据库:PostgreSQL(生产推荐)或 SQLite(轻量部署),Redis(协作功能,可选)

部署:Docker / Nginx / Supervisor

适合谁用

  • 小团队需要一个灵活的数据管理工具,不想为每个业务场景单独买 SaaS
  • 创业公司需要快速搭建内部管理系统,又不想从零开发
  • 开发者想基于多维表格做二次开发或集成到自己的产品里
  • 任何需要结构化数据管理但觉得 Excel 不够用的个人或团队

和同类产品的区别

  • 完全开源,MIT 协议,可以自己部署,数据在自己手里
  • 不按行数或用户数收费,没有使用限制
  • 前后端分离架构,API 完整,方便集成和扩展
  • Docker 一键部署,运维成本低

功能预览





三、代码仓库

仓库地址

平台 地址
GitHub https://github.com/ldbinac/smart_table.git
Gitee https://gitee.com/binac/smart_table.git

两个仓库内容同步,国内用户访问 Gitee 速度更快。

为什么值得关注

  • 功能完整度高:22 种字段、6 种视图、公式引擎、仪表盘、协作、邮件
  • 代码质量有保障:TypeScript 全覆盖、统一异常处理、安全加固、单元测试
  • 部署简单:Docker Compose 一条命令启动,不需要复杂的运维知识
  • 持续迭代:v1.0 到 v1.1 间隔不到一个周,活跃维护中

如何参与

反馈问题

在 GitHub Issues 提交 Bug 报告或功能建议,尽量附上复现步骤和环境信息。

提交代码

  1. Fork 仓库
  2. 创建功能分支(git checkout -b feature/your-feature
  3. 提交代码(git commit -m 'Add some feature'
  4. 推送分支(git push origin feature/your-feature
  5. 发起 Pull Request

获取帮助

如果觉得项目有用,给个 Star 是最直接的支持方式。

本文同步发布与同名知乎、同名微信公众号,欢迎关注!

相关推荐
OpenTiny社区3 小时前
WebSkill —— 运行在浏览器的 Agent 技能
前端·开源·ai编程
xudong_984 小时前
开源移动端性能测试测试工具推荐-perfara
开源
倔强的胖蚂蚁5 小时前
Ollama Modelfile 配置文件 全指南
云原生·开源
小陈工6 小时前
数据库Operator开发实战:以PostgreSQL为例
开发语言·数据库·人工智能·python·安全·postgresql·开源
GGBond今天继续上班7 小时前
只需要一条命令,让所有 AI 应用工具共享 skills
前端·人工智能·开源
猫头虎7 小时前
一个插件,国内直接用Claude Opus 4.7
人工智能·langchain·开源·prompt·aigc·ai编程·agi
Meya11278 小时前
U位资产管理系统:数据中心“最后一公里“的精细化治理
设计模式·开源·交互
摘星编程8 小时前
当一个开源模型能连续自主工作8小时——拆解2026年Agentic AI的技术密码
开源
LitchiCheng9 小时前
一起读《大模型驱动的具身智能:架构、设计与实现》- 注意力机制Attension Mechanism
人工智能·python·开源