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、执行、日志、密钥管理 - 新增定时任务前端页面,支持脚本编辑、测试运行、日志查看
29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
"""租户应用配置模型"""
|
||
from datetime import datetime
|
||
from sqlalchemy import Column, BigInteger, Integer, String, Text, SmallInteger, TIMESTAMP
|
||
from ..database import Base
|
||
|
||
|
||
class TenantApp(Base):
|
||
"""租户应用配置表"""
|
||
__tablename__ = "platform_tenant_apps"
|
||
|
||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||
tenant_id = Column(String(50), nullable=False)
|
||
app_code = Column(String(50), nullable=False, default='tools')
|
||
app_name = Column(String(100))
|
||
|
||
# 企业微信配置(关联 platform_tenant_wechat_apps)
|
||
wechat_app_id = Column(Integer) # 关联的企微应用ID
|
||
|
||
# 鉴权配置
|
||
access_token = Column(String(64)) # 访问令牌(长期有效)
|
||
allowed_origins = Column(Text) # JSON 数组
|
||
|
||
# 功能权限
|
||
allowed_tools = Column(Text) # JSON 数组
|
||
|
||
status = Column(SmallInteger, default=1)
|
||
created_at = Column(TIMESTAMP, default=datetime.now)
|
||
updated_at = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)
|