DANGER
本页由 AI 工具参考代码编写,尚未经过人工审核,内容仅供参考。如果无法解决问题或需要协助部署,可邮箱联系:kuohu@getastra.cn
Sys Backend 系统后端
SaaS 版本的系统管理后端,供 Dashboard 调用,负责认证、租户管理、数据管理等系统级操作。
技术栈
- Go 1.26+ + Gin + GORM + JWT
项目结构
API 概览
所有接口前缀 /web,除 /web/health(健康检查,公开)外均需 JWT 认证。
认证
系统用户管理
租户管理
租户用户管理
数据管理
备份与数据库
配置
完整配置请以
sys-backend/config.template.toml为准。[astra]段的internal_secret必须与 usr-backend 的internal.secret一致,token用于系统端签发 JWT。租户 DNS 由 Cloudflare 迁移到阿里云 ESA 后,函数计算的环境变量键名相应改为
ASTRA_ESA_*/ASTRA_MTLS_*(旧的ASTRA_CLOUDFLARE_*已失效)。
安全加固
- 登录失败限流:
/web/auth/login按 IP + 用户名维度做内存限流,连续失败会被暂时拒绝,缓解暴力破解 - 租户创建:
subdomain做格式校验(封堵 DNS 注入 / 通配符劫持);CompleteTenant创建的默认管理员带must_change_pwd,首次登录强制改密 - 出站调用 usr-backend:带
User-Agent: AstraSchedule/System(WAF 第一方标识),响应不是application/json时判为失败——WAF 质询页返回200 + text/html,不能只看状态码 - 数据表操作:
/web/data/*的表名来源收敛到白名单;删除单表依赖上述非 JSON 守卫,避免「数据没删、界面报成功」 - SQLite:
db与sys_db打开前检查库头,WAL 库自动转回 rollback journal,失败才拒绝启动(NFS 跨机共享场景,见数据库维护)
启动
本地开发
- 复制
config.template.toml为config.toml(TOML / YAML / JSON 任选其一,优先级见文件注释) - 初始化
sys_db数据库(首次启动自动建表) - 填写
[astra]段:url指向本地 usr-backend 地址,internal_secret与 usr-backend 的internal.secret保持一致 - 启动 usr-backend 后再启动 sys-backend
接口规范见仓库根目录 SysBackend.openapi.json,修改 API 时必须同步更新。
