Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
refactor(saas): 重构认证中间件与限流策略
- 登录限流调整为5次/分钟/IP
- 注册限流调整为3次/小时/IP
- GET请求不计入限流
fix(saas): 修复调度器时间戳处理
- 使用NOW()替代文本时间戳
- 兼容TEXT和TIMESTAMPTZ列类型
feat(saas): 实现环境变量插值
- 支持${ENV_VAR}语法解析
- 数据库密码支持环境变量注入
chore: 新增前端管理界面
- 基于React+Ant Design Pro
- 包含路由守卫/错误边界
- 对接58个API端点
docs: 更新安全加固文档
- 新增密钥管理规范
- 记录P0安全项审计结果
- 补充TLS终止说明
test: 完善配置解析单元测试
- 新增环境变量插值测试用例
53 lines
1.3 KiB
TOML
53 lines
1.3 KiB
TOML
[package]
|
|
name = "zclaw-saas"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "ZCLAW SaaS backend - account, API config, relay, migration"
|
|
|
|
[[bin]]
|
|
name = "zclaw-saas"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
zclaw-types = { workspace = true }
|
|
|
|
tokio = { workspace = true }
|
|
tokio-stream = { workspace = true }
|
|
tokio-util = { workspace = true }
|
|
futures = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
toml = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
uuid = { workspace = true }
|
|
chrono = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
sqlx = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
secrecy = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
rand = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
hex = { workspace = true }
|
|
socket2 = { workspace = true }
|
|
url = "2"
|
|
|
|
axum = { workspace = true }
|
|
axum-extra = { workspace = true }
|
|
tower = { workspace = true }
|
|
tower-http = { workspace = true }
|
|
jsonwebtoken = { workspace = true }
|
|
argon2 = { workspace = true }
|
|
totp-rs = { workspace = true }
|
|
urlencoding = "2"
|
|
data-encoding = "2"
|
|
regex = { workspace = true }
|
|
aes-gcm = { workspace = true }
|
|
bytes = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = { workspace = true }
|