用途
该技能面向需要构建订阅制 SaaS 产品的开发者,提供一套完整的订阅分级与数据治理框架。其核心目标是在同一套系统中,根据用户所处的订阅层级(Free、Pro、Enterprise)控制字段可见性、功能可用性、API 调用频率以及数据保留与合规要求。
主要能力
订阅层级体系
技能定义了三级订阅层级结构:
- Free 层级:基础功能、有限数据访问、仅公开数据、速率限制为每天 100 次请求。
- Pro 层级:包含 Free 全部功能、扩展数据字段、私有数据访问、速率限制为每天 10,000 次请求、数据保留 90 天。
- Enterprise 层级:包含 Pro 全部功能、完整数据访问、敏感 PII 字段、无限制 API 调用、自定义保留策略、支持 SOC 2 / HIPAA 合规。
字段级访问控制
同一实体在不同层级下可见的字段不同。技能提供了字段访问策略表(field_access_policies)的设计,用于定义每个表、每个字段所需的最低层级、字段分类(public、private、sensitive、pii)以及合规要求。示例中 users 表的 id、username 为公开字段,email、phone 为 Pro 及以上可见,ip_address、payment_method 为 Enterprise 专属。
功能门控
通过 feature_gates 表定义功能键、所需最低层级、每日/每小时速率限制等。示例功能包括 CSV 导出、API 访问、自定义报告(Pro 及以上),以及 SSO 集成、专属支持、审计日志(Enterprise 专属)。
API 速率限制
技能提供了基于 Redis 的速率限制实现,按用户和层级检查每日请求配额,返回剩余次数与重置时间,并设置 X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset 响应头。同时通过 api_usage 表记录每次请求的端点、方法、响应时间、是否触发限制等信息,并建立物化视图用于快速检查当日用量。
审计追踪
包含两类审计表:tier_change_audit 记录层级变更(升级、降级、试用、取消、过期)的原因、发起方、计费影响等;feature_access_audit 记录功能访问尝试,尤其是拒绝访问的情况,包含拒绝原因(层级不足、速率限制、已过期)、所需层级、用户实际层级、IP 与 User-Agent 等上下文。
层级迁移处理
changeTier 函数在事务中完成审计记录创建、订阅更新、降级时的数据保留处理、升级时的功能解锁以及速率限制缓存清理。降级时会根据新层级的数据保留天数,将超期数据归档。
使用方式
技能以数据库 Schema 设计、TypeScript 接口与函数实现的形式提供。开发者需要:
- 创建 subscription_tiers、user_subscriptions、field_access_policies、feature_gates、api_usage、tier_change_audit、feature_access_audit 等表。
- 插入层级、字段策略与功能门控的初始数据。
- 在应用中使用 filterFieldsByTier 过滤返回字段,使用 requireFeature 中间件保护路由,使用 rateLimitMiddleware 实施速率限制,使用 changeTier 处理层级变更。
适用场景
- 构建具有 Free/Pro/Enterprise 分级的 SaaS 产品。
- 需要根据订阅层级实施字段级访问控制。
- 需要按层级执行 API 速率限制。
- 需要按层级管理数据保留策略。
- 需要按层级追踪 SOC 2、HIPAA、GDPR 等合规要求。
- 需要审计层级变更与功能访问。
- 需要在订阅层级之间迁移用户。
限制
资料中未提供该技能的具体安装命令、依赖版本、运行环境要求、收费信息或实际部署效果。部分代码示例(如 getUserComplianceLevel 函数)在资料中未完整展示。