用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Fadil369/Solutions --skill multi-tenant-architecture命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | Multi-Tenant Architecture |
| version | 1.0.0 |
| description | Designs multi-tenant systems with data isolation, tenant-aware routing, and resource quotas. |
| author | workspace |
| activated | false |
Designs multi-tenant systems with data isolation, tenant-aware routing, and resource quotas.
Use when: SaaS applications, white-label solutions, enterprise with divisions, B2B platforms
Don't use when: Single-tenant app, personal projects, consumer apps
// BAD: Any user can access any tenant's data
const orders = await db.query('SELECT * FROM orders WHERE id = ?', [orderId]);
// GOOD: Always scope by tenant
const orders = await db.query('SELECT * FROM orders WHERE id = ? AND tenant_id = ?', [orderId, tenantId]);
Always scope sessions and caches by tenant ID.
const tenantMiddleware = async (req, res, next) => {
const tenantId = req.headers['x-tenant-id'] || extractSubdomain(req.hostname);
if (!tenantId) return res.status(400).json({ error: 'Tenant not specified' });
const tenant = await tenantService.get(tenantId);
if (!tenant || tenant.status !== 'active') return res.status(404).json({ error: 'Tenant not found' });
req.tenant = tenant;
req.db = getTenantConnection(tenant.id);
next();
};
| Model | Isolation | Cost | Complexity |
|---|---|---|---|
| Shared DB + tenant_id | Low | Low | Low |
| Schema per tenant | Medium | Medium | Medium |
| Database per tenant | High | High | High |