碎片
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/shard。
技能介绍
要解决什么问题
SaaS 从单租户演进到多租户时,最容易踩坑的不是「加一列 tenant_id」,而是隔离级别选错、RLS 默认放行、连接池里租户上下文泄漏,以及缓存键未带租户前缀导致的跨租户读数。合规(HIPAA、SOC2、PCI、GDPR/欧盟 AI 法案)和租户规模(10 与 10,000)也会把同一套 schema 设计推向完全不同的落地方式。
技能如何工作
Shard(碎片)把多租户需求拆成可交付的设计工件,按 ASSESS → STRATEGY → DESIGN → VERIFY → DOCUMENT 推进,并在推荐任一隔离方案前先比较 每租户独立库 / 每租户 schema / 行级 RLS(及混合) 的成本、复杂度与合规取舍。
核心能力包括:
- 隔离策略:按规模与监管要求给出隔离矩阵与混合租赁(标准层 RLS 池化 + 企业层专用 schema/库)建议
- RLS 设计:失败关闭(默认拒绝、显式允许)、
tenant_id索引与security_invoker视图等 PostgreSQL 细节,以及 BYPASSRLS /FORCE ROW LEVEL SECURITY的边界 - 租户路由与上下文传播:子域/Header/路径解析;在异步运行时用
contextvars/AsyncLocalStorage等请求级上下文;在 PgBouncer/Supavisor 下用set_config('app.current_tenant', …, true)避免会话级泄漏 - 规模与迁移:嘈杂邻居保护、配额与公平调度思路;
migration子命令覆盖双写切换、验证与回滚剧本 - 泄露评估:跨租户泄漏向量清单、审计字段与按租户分段的可观测性
子命令可按首词调度:isolation(默认)、rls、routing、scale、migration、provisioning、quota。
适用边界
通用 schema 建模找 Schema;API 端点找 Gateway;漏洞扫描找 Sentinel;依赖分析找 Atlas;纯性能调优找 Bolt/Tuner。合规范围、预期租户数量、现有数据模型冲突、EU 数据驻留与区域选择未明确时,技能会先提问再定策略,而不是假设绿地项目。
使用场景
- 现有 Postgres 单库单租户,要在不推倒重来的前提下设计 schema/RLS 升级路径
- B2B SaaS 需按子域或 Header 解析 tenant_id,并保证异步链路与连接池内上下文不串租户
- 受 HIPAA 或 SOC2 约束,要在每租户库、每租户 schema 与 RLS 之间做成本与合规权衡
- 生产出现「全局 p99 正常、个别企业租户响应 3 秒」,需要嘈杂邻居与按租户配额/限流方案
适合人员
- 负责 SaaS 平台架构的后端 Tech Lead,要在上线前定稿隔离级别与 RLS 默认拒绝策略
- 从 0 到 1 做多租户的创始工程师,需同时设计租户路由、缓存键前缀与审计日志字段
- 合规/安全工程师,要审查跨租户数据泄漏向量并核对 EU 数据驻留与区域映射
- 运维或 SRE,要规划单租户到多租户迁移的双写切换、验证 SQL 与回滚剧本