Commit Graph

60 Commits

Author SHA1 Message Date
66e6dc844c fix: 修正租户应用订阅页面恢复版本
All checks were successful
continuous-integration/drone/push Build is passing
修复上次恢复时使用了错误的版本(95a9d3e),缺少后续功能:
- 长文本配置项预览+弹窗编辑功能
- 长文本编辑弹窗接近全屏显示
- 长文本编辑区域高度问题修复
- 弹窗打开时锁定背景页面滚动

现在使用正确的版本(e45fe81,定时任务提交前的最后正确版本)
2026-01-29 17:42:21 +08:00
158481ff75 fix: 恢复租户应用订阅页面被误删的功能
All checks were successful
continuous-integration/drone/push Build is passing
恢复在 104487f 提交中被误删的代码,包括:
- 批量添加应用订阅功能
- 租户标签快速筛选
- 应用配置 Schema 支持
- 自定义配置管理
- 批量 Token 结果显示
2026-01-29 16:24:27 +08:00
b0f7d1ba9e fix: 修复定时任务模块问题
All checks were successful
continuous-integration/drone/push Build is passing
1. 修复 SDK 文档 API 路由顺序问题
   - 将静态路由 /sdk-docs, /test-script, /secrets 移到动态路由 /{task_id} 之前
   - 解决 "请求参数验证失败" 错误

2. 优化错误页面体验
   - 使用 sessionStorage 传递错误信息,URL 保持干净
   - 使用 router.replace 替代 push,浏览器返回不会停留在错误页
   - 记录来源页面,支持正确返回

3. 增强网络错误处理
   - 区分超时、网络错误、服务不可用
   - 后端未启动时显示友好的 "服务暂时不可用" 提示

4. 添加定时任务模块文档
2026-01-28 18:18:04 +08:00
262a1b409f fix: 修复脚本全屏编辑对话框超出屏幕高度问题
All checks were successful
continuous-integration/drone/push Build is passing
使用 CSS calc(80vh - 180px) 控制 textarea 高度
2026-01-28 17:59:13 +08:00
d91119af8a feat: 编辑任务对话框使用 Tab 分类重构
All checks were successful
continuous-integration/drone/push Build is passing
1. 使用 Tabs 分类组织内容:
   - 基本信息:名称、租户、类型、调度
   - 脚本配置:脚本内容、参数
   - 通知与高级:通知渠道、重试、告警

2. 固定对话框高度,内部滚动,避免整体滚动体验差
2026-01-28 17:55:55 +08:00
d57f812513 feat: 定时任务页面 UI 优化
All checks were successful
continuous-integration/drone/push Build is passing
1. 脚本编辑:增加全屏编辑按钮,打开大弹窗编辑
2. 执行时间:改为时间选择器 + 标签方式,支持可视化添加多个时间点
3. 任务参数:改为 Key-Value 表格形式,支持添加/删除,更直观
2026-01-28 17:52:31 +08:00
97d0aac734 feat: 扩展消息类型支持钉钉/企微所有格式
All checks were successful
continuous-integration/drone/push Build is passing
钉钉机器人支持:
- text: 纯文本(支持@人)
- markdown: Markdown格式
- link: 链接消息
- actionCard: 交互卡片(整体跳转/独立跳转按钮)
- feedCard: 信息流卡片

企微机器人支持:
- text: 纯文本(支持@人)
- markdown: Markdown格式
- image: 图片
- news: 图文消息
- template_card: 模板卡片(文本通知/图文展示/按钮交互)

使用方式: result = {'msg_type': 'actionCard', 'title': '...', 'content': '...', 'buttons': [...]}
2026-01-28 17:44:01 +08:00
3cf5451597 fix: 设置后端容器时区为 Asia/Shanghai
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 17:39:40 +08:00
3ebd8b20a4 fix: 添加受限的 __import__ 函数支持白名单模块导入
All checks were successful
continuous-integration/drone/push Build is passing
解决脚本执行时 KeyError: '__import__' 错误
2026-01-28 17:34:38 +08:00
70fc358d72 fix: 更新脚本示例,说明模块已内置无需 import
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 17:27:43 +08:00
d7380bdc75 fix: 修复定时任务页面租户下拉字段不匹配
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 17:24:55 +08:00
333bbe57eb feat: 钉钉机器人支持加签安全设置
All checks were successful
continuous-integration/drone/push Build is passing
- 通知渠道增加 sign_secret 字段存储加签密钥
- 发送钉钉消息时自动计算签名
- 前端增加加签密钥输入框(仅钉钉机器人显示)
2026-01-28 17:19:53 +08:00
8430f9dbaa fix: 修复通知渠道页面租户下拉字段不匹配
All checks were successful
continuous-integration/drone/push Build is passing
租户 API 返回 code/name,修正前端使用正确字段
2026-01-28 17:13:49 +08:00
b8e19dcde6 fix: 重命名通知渠道模型避免与 alert 模块冲突
All checks were successful
continuous-integration/drone/push Build is passing
- NotificationChannel -> TaskNotifyChannel
- platform_notification_channels -> platform_task_notify_channels
2026-01-28 17:06:28 +08:00
2fbba63884 feat: 实现通知渠道管理功能
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 platform_notification_channels 表管理通知渠道(钉钉/企微机器人)
- 新增通知渠道管理页面,支持创建、编辑、测试、删除
- 定时任务增加通知渠道选择和企微应用选择
- 脚本执行支持返回值(result变量),自动发送到配置的渠道
- 调度器执行脚本后根据配置自动发送通知

使用方式:
1. 在「通知渠道」页面为租户配置钉钉/企微机器人
2. 创建定时任务时选择通知渠道
3. 脚本中设置 result = {'content': '内容', 'title': '标题'}
4. 任务执行后自动发送到配置的渠道
2026-01-28 17:02:20 +08:00
d9fa9708ce fix: 修复定时任务模型字段与数据库表不匹配的问题
All checks were successful
continuous-integration/drone/push Build is passing
- task_type -> execution_type
- status -> is_enabled
- 移除不存在的字段 webhook_method, webhook_headers, script_timeout
- time_points/input_params 适配 JSON 类型
2026-01-28 16:45:58 +08:00
104487f082 feat: 实现定时任务系统
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 platform_scheduled_tasks, platform_task_logs, platform_script_vars, platform_secrets 数据库表
- 实现 ScriptSDK 提供 AI/通知/DB/HTTP/变量存储/参数获取等功能
- 实现安全的脚本执行器,支持沙箱环境和禁止危险操作
- 实现 APScheduler 调度服务,支持简单时间点和 CRON 表达式
- 新增定时任务 API 路由,包含 CRUD、执行、日志、密钥管理
- 新增定时任务前端页面,支持脚本编辑、测试运行、日志查看
2026-01-28 16:38:19 +08:00
7806072b17 fix: 删除冲突的 codemirror 依赖,只保留 monaco-editor
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 14:57:23 +08:00
2f9d85edb6 feat: 脚本管理页面(类似青龙面板)
Some checks failed
continuous-integration/drone/push Build is failing
- 新增脚本管理页面,左右分栏布局
- 集成 Monaco Editor 代码编辑器(语法高亮、行号、快捷键)
- 支持脚本 CRUD、运行、复制等操作
- 定时任务支持从脚本库导入脚本
- 新增 platform_scripts 表存储脚本
2026-01-28 13:13:08 +08:00
9b72e6127f feat: 脚本执行平台增强功能
Some checks failed
continuous-integration/drone/push Build is failing
- 新增重试和失败告警功能(支持自动重试N次,失败后钉钉/企微通知)
- 新增密钥管理(安全存储API Key等敏感信息)
- 新增脚本模板库(预置常用脚本模板)
- 新增脚本版本管理(自动保存历史版本,支持回滚)
- 新增执行统计(成功率、平均耗时、7日趋势)
- SDK 新增多租户遍历能力(get_tenants/get_tenant_config/get_all_tenant_configs)
- SDK 新增密钥读取方法(get_secret)
2026-01-28 11:59:50 +08:00
644255891e feat: 脚本执行平台功能
Some checks failed
continuous-integration/drone/push Build is failing
- 支持 Python 脚本定时执行(类似青龙面板)
- 内置 SDK:AI大模型、钉钉/企微通知、数据库查询、HTTP请求、变量存储
- 安全沙箱执行,禁用危险模块
- 前端脚本编辑器,支持测试执行
- SDK 文档查看
- 日志通过 TraceID 与 platform_logs 关联
2026-01-28 11:45:02 +08:00
ed88099cf0 feat: 定时任务调度功能
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 platform_scheduled_tasks 和 platform_task_logs 数据表
- 实现 APScheduler 调度器服务(支持简单模式和CRON表达式)
- 添加定时任务 CRUD API
- 支持手动触发执行和查看执行日志
- 前端任务管理页面
2026-01-28 11:27:42 +08:00
e45fe8128c fix: 弹窗打开时锁定背景页面滚动
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 11:14:16 +08:00
29f031ca61 fix: 修复长文本编辑区域高度问题
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 11:11:57 +08:00
c67ace3576 fix: 长文本编辑弹窗改为接近全屏显示
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 11:10:16 +08:00
3c7903078c feat: 优化长文本配置项显示 - 预览+弹窗编辑
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 11:05:16 +08:00
95a9d3e15d feat: 租户应用订阅支持批量添加全部应用
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 11:01:43 +08:00
22cc89a6bd feat: 租户应用订阅页面优化 - 标签筛选、中文显示、快捷复制链接
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-28 10:28:37 +08:00
cf4d6afbc8 feat: 应用配置项定义功能
All checks were successful
continuous-integration/drone/push Build is passing
- 后端: App 模型添加 config_schema 字段,支持配置项定义
- 后端: apps API 支持 config_schema 的增删改查
- 前端: 应用管理页面支持定义配置项(text/radio/select/switch类型)
- 前端: 租户订阅页面根据应用 schema 动态渲染对应表单控件
- 支持设置选项、默认值、必填等属性
2026-01-27 17:26:49 +08:00
e37466a7cc feat: 租户应用配置支持自定义参数
All checks were successful
continuous-integration/drone/push Build is passing
- 后端: TenantApp 模型添加 custom_configs 字段 (LONGTEXT)
- 后端: tenant_apps API 支持自定义配置的增删改查
- 前端: 应用订阅编辑对话框增加自定义配置编辑区域
- 支持 key-value-备注 三字段结构
- value 使用 textarea 支持超长文本(如提示词)
2026-01-27 17:15:19 +08:00
7134947c0c feat: 添加租户工具配置系统
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 platform_tool_configs 表和 ToolConfig Model
- 新增工具配置 CRUD API (/api/tool-configs)
- 租户详情页添加工具配置管理 Tab
- 修复查看 Token 显示问题,添加专用获取接口
2026-01-27 11:30:02 +08:00
8e675c207d feat: 添加 /api/stats/daily 每日统计接口
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 18:19:23 +08:00
90d10537c2 fix: 增加列表接口 size 参数限制到 1000
All checks were successful
continuous-integration/drone/push Build is passing
修复下拉列表请求 size=1000 导致 422 验证错误的问题
2026-01-24 18:01:09 +08:00
9f10b373aa chore: 触发生产环境重新部署
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 17:59:00 +08:00
88dc9fef53 docs: 更新数据库配置文档
All checks were successful
continuous-integration/drone/push Build is passing
- 添加生产数据库 new_platform_prod 配置
- 添加 Drone API Token
- 更新 README 环境地址
2026-01-24 17:53:29 +08:00
82ac147762 feat: 生产环境使用独立数据库
All checks were successful
continuous-integration/drone/push Build is passing
- 创建生产数据库 new_platform_prod
- 配置使用 database_url_prod secret
2026-01-24 17:50:23 +08:00
cc3a6ab0c7 fix: 修复认证 422 错误和生产环境部署配置
All checks were successful
continuous-integration/drone/push Build is passing
- HTTPBearer 使用 auto_error=False 避免 422 错误
- 生产环境使用与测试相同的数据库密钥配置
2026-01-24 17:43:21 +08:00
aa3f5f6108 fix: 修复 HTTPBearer 返回 422 错误的问题
All checks were successful
continuous-integration/drone/push Build is passing
- 设置 HTTPBearer(auto_error=False) 避免验证错误
- 在 get_current_user 中手动检查并返回 401
2026-01-24 17:39:04 +08:00
9ff89f4a7d fix: 修复日志查询接口访问不存在字段的问题
All checks were successful
continuous-integration/drone/push Build is passing
- ip_address 从 context.ip 获取
- 移除不存在的 extra_data 字段
- 修复 CSV/Excel 导出中的同样问题
2026-01-24 17:25:17 +08:00
b04ee51020 chore: 触发 CI/CD 部署
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 17:18:53 +08:00
b6b5ac61af fix: 修复 Drone 配置和 nginx 多环境支持
All checks were successful
continuous-integration/drone/push Build is passing
- 分离测试/生产环境的前端镜像构建
- nginx 配置使用 BACKEND_HOST 变量区分环境
- 生产环境添加独立的 Docker network
- 生产环境使用独立的密钥配置 (xxx_prod)
- 修复前端空白问题:确保前后端在同一 network
2026-01-24 17:15:12 +08:00
111
6c6c48cf71 feat: 新增告警、成本、配额、微信模块及缓存服务
All checks were successful
continuous-integration/drone/push Build is passing
- 新增告警模块 (alerts): 告警规则配置与触发
- 新增成本管理模块 (cost): 成本统计与分析
- 新增配额模块 (quota): 配额管理与限制
- 新增微信模块 (wechat): 微信相关功能接口
- 新增缓存服务 (cache): Redis 缓存封装
- 新增请求日志中间件 (request_logger)
- 新增异常处理和链路追踪中间件
- 更新 dashboard 前端展示
- 更新 SDK stats_client 功能
2026-01-24 16:53:47 +08:00
111
eab2533c36 fix: 修复 nginx 代理地址,解决页面空白问题
All checks were successful
continuous-integration/drone/push Build is passing
Docker 网桥地址从 172.17 变为 172.18,导致 API 代理失败
2026-01-24 15:53:32 +08:00
111
b055be1bb6 feat: 所有租户选择改为下拉列表
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 10:31:57 +08:00
111
1c95fef01a fix: health 路由加上 /api 前缀
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 10:24:59 +08:00
111
63e38ceb60 fix: 兼容 corp_id 字段不存在 + 添加迁移 API
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-24 10:23:19 +08:00
111
ab84f6b87d feat: 企微应用租户下拉选择 + corp_id 自动填入
All checks were successful
continuous-integration/drone/push Build is passing
- 租户表增加 corp_id 字段(企业微信企业ID)
- 租户管理页面支持配置 corp_id
- 企微应用页面租户从下拉选择
- 选择租户后自动填入 corp_id 并禁用编辑
- 提示用户如租户未配置 corp_id 需先去配置
2026-01-24 10:20:02 +08:00
111
0a799ee276 fix: 完善菜单和应用验证
All checks were successful
continuous-integration/drone/push Build is passing
- 侧边栏菜单增加「应用管理」和「企微应用」
- 租户订阅页面应用选择增加前端验证
- 后端增加 app_code 存在性验证
2026-01-24 10:10:56 +08:00
111
6a93e05ec3 feat: 应用扁平化与 Token 验证 API
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 /api/auth/verify 接口供外部应用验证 token
- 简化应用管理:移除 tools 字段,每个应用独立存在
- 简化应用配置:移除 allowed_tools,专注于租户订阅
- 优化 Token 展示和复制功能
2026-01-24 10:05:24 +08:00
111
c4bd7c8251 feat: 租户级企微配置改造
All checks were successful
continuous-integration/drone/push Build is passing
- 新增 platform_tenant_wechat_apps 表(租户企微应用配置)
- platform_apps 增加 require_jssdk 字段
- platform_tenant_apps 增加 wechat_app_id 关联字段
- 新增企微应用管理 API 和页面
- 应用管理页面增加 JS-SDK 开关
- 应用配置页面增加企微应用选择
2026-01-23 19:05:00 +08:00