多租户隔离
每一行、每次查询、每个资源都恰好属于一个组织。隔离在查询 planner 层强制:执行前会把org_id 谓词改写进每一个 SQL 计划。构造的恶意查询无法触及其他组织的数据,因为该约束位于
查询文本之下。
每组织的配额限制接入 QPS、查询 QPS 与存储。超限返回 429(限流)或 413(存储),并附审计
记录与告警。
认证
JWT
从
POST /api/v1/auth/login 获取 JWT,并在每个请求上以 Authorization: Bearer <jwt> 发送。
仅 /api/v1/healthz、/api/v1/auth/login、/metrics 免认证。API token
形如
ms_<prefix>_<secret> 的长期 token,各自带角色、过期时间、最近使用时间。在
/api/v1/auth/tokens 下管理。JWT 签名密钥
JWT 签名密钥在首次启动时自动写入数据库 —— 配置文件里没有密钥。Owner 可通过POST /api/v1/auth/jwt/rotate 轮换,并有 24 小时宽限期让在途 token 继续可用。
审计日志
每个写操作都被记录。在GET /api/v1/audit 查询审计轨迹。
字段级加密
MoleSignal 支持用 cipher keys 加密敏感字段:- AES-256-GCM,配 cipher 根密钥信封。
- 根密钥来自
MS_CIPHER_KEY(32 字节,base64)。 - VRL 的
encrypt()/decrypt()内置函数让你在接入路径按字段加密、在查询时解密。
/api/v1/cipher_keys 下管理具名密钥,在 /api/v1/cipher_keys/{name}/rotate 轮换。
API token 格式
Authorization: Bearer 头里。