Skip to content
Back to skills

Zenstack Helper

ASecurity

Схема БД на ZenStack v3: правка schema.zmodel, relations, политики @@allow/@@deny и полевые @allow/@deny, @meta("form.*") для форм, custom procedures, миграции. Загружай ДО первой правки *.zmodel и когда политика отказывает на записи, поле relation тихо приходит null, падает zenstack:generate или TS2321.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
developmentapidatabasesecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add kamiletar/letar --skill zenstack-helper --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Zenstack Helper?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Zenstack Helper
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kamiletar-zenstack-helper/badge)](https://www.skillsdirectory.com/skills/kamiletar-zenstack-helper)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: zenstack-helper
description: |
  Схема БД на ZenStack v3: правка schema.zmodel, relations, политики @@allow/@@deny и полевые @allow/@deny,
  @meta("form.*") для форм, custom procedures, миграции. Загружай ДО первой правки *.zmodel и когда
  политика отказывает на записи, поле relation тихо приходит null, падает zenstack:generate или TS2321.
paths:
  - "**/*.zmodel"
---

# ZenStack Helper

Помощник по ZenStack schema.zmodel (v3.3.0+). Используй при работе с моделями БД, @meta("form.\*", value) директивами (единственный синтаксис с plugin v4.0.0; legacy @form.\* убран), access control policies (model-level @@allow/@@deny и field-level @allow/@deny), отношениями между моделями, custom procedures.

## Когда использовать

- Редактирование `schema.zmodel`
- Добавление @meta("form.\*", value) директив для генерации форм
- Настройка access control policies:
  - Model-level: `@@allow`/`@@deny`
  - Field-level: `@allow`/`@deny` (v3.3.0+)
- Работа с отношениями между моделями
- Custom Procedures для бизнес-логики (v3.3.0+)
- Миграции базы данных

## Воркфлоу

1. **Редактируй** `apps/<app>/schema.zmodel` (источник истины)
2. **Генерируй** `nx zenstack:generate <app>`
3. **Применяй** — `nx db:push <app>` только на локальной dev-базе, `nx db:migrate <app>`
   создаёт migration file (обязателен для production; полный воркфлоу и запреты —
   [rules/database.md](/.claude/rules/database.md))

## Критичные правила

- **НИКОГДА** не редактируй `src/generated/schema.prisma` напрямую
- **ВСЕГДА** редактируй `schema.zmodel` вместо этого
- `zenstack:generate` автоматически запускает `prisma generate`

## Reference файлы

- `reference/form-directives.md` — @meta("form.\*", value) директивы (@letar/zenstack-form-plugin, v4.0.0+)
- `reference/access-policies.md` — @@allow/@@deny (model) + @allow/@deny (field) паттерны
- `reference/custom-procedures.md` — Custom Procedures для бизнес-логики (v3.3.0+)
- `reference/zenstack-better-auth.md` — интеграция с Better Auth Organizations (мультитенантность)
- `reference/relations.md` — паттерны связей
- `reference/generated-files.md` — структура src/generated/form-schemas/
- `reference/zenstack-v3-orm.md` — особенности ZenStack v3 ORM (включая exists API)
- `reference/advanced-modeling.md` — Mixin, Typed JSON, View, Multi-file, Polymorphism
- `reference/computed-fields.md` — вычисляемые поля на уровне БД
- `reference/tanstack-query.md` — TanStack Query хуки + zenstack-trpc

## Важно

- Используется собственный плагин `@letar/zenstack-form-plugin`, НЕ `@core/zod`
- Генерируется только `form-schemas/`, папки `zod/` нет
- При пересборке плагина: `nx build zenstack-form-plugin --skip-nx-cache`

## Чеклист перед коммитом схемы

- [ ] Model-level `@@allow` настроены; сужение прав — только `@deny` (полевой `@allow` права **добавляет**)
- [ ] Роли в `requireRole` не шире `@@allow` модели; политика по relation учитывает переставленный FK —
      три ловушки: [security.md](/.claude/rules/security.md)
- [ ] Relations и индексы на часто фильтруемых полях; нет N+1 (`include`/`select`)
- [ ] `@meta("form.*", value)` для полей форм
- [ ] `nx zenstack:generate <app>`, для прода — файл миграции (`nx db:migrate <app>`)
- [ ] Zod-схемы входа — с `.strip()`

Files in this skill

  • SKILL.md4.1 KB
  • reference/access-policies.md10.9 KB
  • reference/advanced-modeling.md8.7 KB
  • reference/computed-fields.md12.1 KB
  • reference/custom-procedures.md9.8 KB
  • reference/form-directives.md13.5 KB
  • reference/generated-files.md3.5 KB
  • reference/relations.md4.2 KB
  • reference/tanstack-query.md8 KB
  • reference/zenstack-better-auth.md10.7 KB
  • reference/zenstack-v3-orm.md12.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.