# saas-multi-tenant

Скилл помогает спроектировать изоляцию арендаторов в SaaS на PostgreSQL и TypeScript. Настраивает политики RLS, промежуточное ПО для сессий и автофильтрацию запросов в ORM.

- скилл · `type=skill` · Claude Code · 171 установка
- Автор: davila7
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/davila7/claude-code-templates/tree/HEAD/cli-tool/components/skills/development/saas-multi-tenant
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/saas-multi-tenant

## Что делает

Скилл предлагает архитектурные паттерны для разделения данных нескольких клиентов в единой базе. Для проектов до тысячи организаций рекомендуется общая схема с обязательным столбцом `tenant_id` типа UUID или TEXT во всех таблицах и составных индексах. Для разграничения доступа генерируются политики Row-Level Security (RLS) в PostgreSQL, привязанные к переменной конфигурации текущей сессии.

На уровне серверного кода инструкция описывает middleware для Express или маршрутов Next.js, где идентификатор организации извлекается из токена и задаётся через `set_config` внутри транзакции. Для Prisma и Drizzle формируются правила перехвата запросов, автоматически добавляющие условие фильтрации во все операции чтения и записи, кроме глобальных таблиц.

Для маршрутов администрирования со сбором данных по всем организациям требуется отдельная схема авторизации и явный обход RLS через специальную роль базы данных. Без изоляции прав администратора общая сессия клиента рискует открыть доступ к чужим записям.

## Требования
- Работает с: PostgreSQL

## Установка

### Claude Code (родная платформа)

1. **Через claude-code-templates**
```bash
npx claude-code-templates@latest --skill development/saas-multi-tenant
```

2. **Через Skills CLI (Vercel)**
```bash
npx skills add davila7/claude-code-templates --skill saas-multi-tenant -a claude-code
```

3. **Вручную: положить файлы**
- Файл: `~/.claude/skills/saas-multi-tenant/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/saas-multi-tenant/

### Codex

**Вручную: положить файлы**
- Файл: `.agents/skills/saas-multi-tenant/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/skills/saas-multi-tenant/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install davila7/claude-code-templates saas-multi-tenant
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/saas-multi-tenant/SKILL.md`

### Gemini CLI

**Командой платформы**
```bash
gemini skills install https://github.com/davila7/claude-code-templates --path cli-tool/components/skills/development/saas-multi-tenant
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/saas-multi-tenant/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/davila7/claude-code-templates/tree/HEAD/cli-tool/components/skills/development/saas-multi-tenant

## Когда брать
- внедрить Row-Level Security для изоляции клиентов в PostgreSQL
- настроить middleware для фиксации контекста организации в транзакции
- добавить автоматическую фильтрацию по арендаторам в запросы Prisma и Drizzle
- организовать безопасные маршруты для межтенантной аналитики администраторов
- подготовить миграции с обязательным полем идентификатора арендатора

## Примеры запросов агенту
- Настрой политики RLS в PostgreSQL для таблицы projects и сессионной переменной арендатора
- Напиши middleware для Express, который ставит app.current_tenant_id в транзакции базы
- Создай расширение Prisma для автоматической подстановки tenantId во все запросы

## Похожие
- [mcp-builder](https://affpapa.org/nevibecode/skills/mcp-builder.md) — скилл · 130949 установок
- [claude-api](https://affpapa.org/nevibecode/skills/claude-api.md) — скилл · 74198 установок
- [lark-im](https://affpapa.org/nevibecode/skills/lark-im.md) — скилл · 472900 установок
- [lark-event](https://affpapa.org/nevibecode/skills/lark-event.md) — скилл · 466800 установок
- [caveman-discover](https://affpapa.org/nevibecode/skills/caveman-discover.md) — скилл · 104400 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок

Из того же набора: [davila7/claude-code-templates](https://affpapa.org/nevibecode/by/davila7/claude-code-templates.md) — 651 карточка

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
