Поддерживаемые возможности

Предварительные условия

Перед чтением этой страницы убедитесь, что Вы выполнили подготовку окружения согласно разделу Быстрый старт по разработке плагинов с помощью AI.

Возможности AI-разработки плагинов реализованы на основе Skill nocobase-plugin-development. Если Вы уже инициализировали систему через NocoBase CLI (nb init), этот Skill будет установлен автоматически.

Ниже перечислено всё, что AI на данный момент может для Вас сделать. К каждой возможности приложен пример промпта — Вы можете скопировать его, изменить описание требований и сразу использовать.

Внимание
  • NocoBase сейчас переходит с client (v1) на client-v2, и client-v2 пока находится в разработке. Клиентский код, сгенерированный AI-разработкой, основан на client-v2 и работает только по пути /v/. Это для предварительного ознакомления, не рекомендуется использовать в продакшене.
  • Сгенерированный AI код не всегда корректен на 100%, рекомендуется делать review перед включением. Если в процессе работы возникают ошибки, отправьте сообщение об ошибке AI, чтобы он продолжил диагностику и исправление — обычно проблема решается за несколько итераций диалога.
  • Для разработки рекомендуется использовать большие модели серии GPT или Claude — они дают наилучшие результаты. Другие модели также можно использовать, однако качество генерации может отличаться.

Лучшие практики

  • Чётко скажите AI, что нужно создать или изменить плагин NocoBase, и укажите имя плагина — например, «Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase с именем @my-scope/plugin-rating». Без указания имени плагина AI может не понять, куда генерировать код.
  • В промпте явно укажите использовать skill nocobase-plugin-development — например, «Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase...». Так AI Agent сможет напрямую считать возможности Skills и не уйдёт в режим plan, игнорируя Skills.
  • Запускайте AI Agent в корневом каталоге репозитория исходного кода NocoBase — так AI сможет автоматически найти структуру проекта, зависимости и существующие плагины. Если Вы не находитесь в корне исходного кода, нужно дополнительно сообщить AI Agent путь к репозиторию исходного кода.

Быстрый указатель

Я хочу...AI поможет Вам
Создать новый плагинСгенерировать полный scaffold, включая структуру каталогов front/back
Определить таблицу данныхСгенерировать определение Collection с любыми типами полей и связями
Сделать собственный блокСгенерировать BlockModel + панель настроек + регистрация в меню «Добавить блок»
Сделать собственное полеСгенерировать FieldModel + привязку к интерфейсу поля
Добавить собственную кнопку действияСгенерировать ActionModel + popup/drawer/диалог подтверждения
Сделать страницу настроек плагинаСгенерировать frontend-форму + backend API + хранение
Написать собственный APIСгенерировать Resource Action + регистрацию роутов + ACL
Настроить права доступаСгенерировать правила ACL, контроль доступа по ролям
Поддержка нескольких языковАвтоматически сгенерировать языковые пакеты на китайском и английском
Написать миграциюСгенерировать Migration с поддержкой DDL и миграции данных

Scaffold плагина

AI может на основе Вашего описания требований сгенерировать полноценную структуру каталогов плагина NocoBase, включая входные файлы front/back, определения типов и базовую конфигурацию.

Пример промпта:

Помогите мне создать плагин NocoBase, имя плагина: @my-scope/plugin-todo

AI выполнит yarn pm create @my-scope/plugin-todo и сгенерирует стандартный каталог:

packages/plugins/@my-scope/plugin-todo/
├── src/
│   ├── server/
│   │   └── plugin.ts
│   ├── client-v2/
│   │   └── plugin.tsx
│   └── locale/
│       ├── zh-CN.json
│       └── en-US.json
├── package.json
└── ...

Определение таблицы данных

AI поддерживает генерацию определений Collection для всех типов полей NocoBase, включая связи (один-ко-многим, многие-ко-многим и т.д.).

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-order.
Затем определите в нём таблицу «Заказы», поля: номер заказа (auto-increment), имя клиента (строка),
сумма (десятичное), статус (одиночный выбор: ожидает обработки/в обработке/завершён), время создания.
Заказ и клиент имеют отношение многие-к-одному.

AI сгенерирует определение defineCollection, включая типы полей, значения по умолчанию, конфигурации связей и т.д.

Собственный блок

Блок — основной способ расширения frontend NocoBase. AI может помочь сгенерировать модель блока, панель настроек и регистрацию в меню.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-simple-block.
Сделайте собственный блок отображения (BlockModel): пользователь может в панели настроек ввести HTML-контент,
а блок отрисует этот HTML. Зарегистрируйте этот блок в меню «Добавить блок».

AI сгенерирует BlockModel, через registerFlow + uiSchema создаст панель настроек и зарегистрирует блок в меню «Добавить блок».

Полный пример см. в разделе Создание собственного блока отображения.

Собственный компонент поля

Если встроенные компоненты отрисовки полей NocoBase не удовлетворяют Ваши потребности, AI может помочь Вам сделать собственный компонент отображения, заменяющий стандартный способ отрисовки поля.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-rating.
Сделайте пользовательский компонент отображения поля (FieldModel), который превращает поле типа integer в иконки звёзд.
Поддержка от 1 до 5 баллов, при клике по звезде значение рейтинга должно изменяться и сразу сохраняться в базу данных.

Демонстрация компонента Rating

AI сгенерирует пользовательский FieldModel, заменяющий стандартный компонент отрисовки поля integer.

Собственные действия

Кнопки действий могут отображаться в верхней части блока (на уровне collection), в столбце действий каждой строки таблицы (на уровне record) или одновременно в обоих местах. По клику можно показать уведомление, открыть popup-форму, вызвать API и т.д.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-simple-action.
Сделайте три собственные кнопки действий (ActionModel):
1. Кнопка уровня collection, отображается в верхней части блока, по клику показывает уведомление об успехе
2. Кнопка уровня record, отображается в столбце действий каждой строки таблицы, по клику показывает ID текущей записи
3. Кнопка уровня both, отображается в обоих местах одновременно, по клику показывает информационное уведомление

AI сгенерирует ActionModel, через ActionSceneEnum будет управлять расположением кнопки, а через registerFlow({ on: 'click' }) обрабатывать событие клика.

Полный пример см. в разделе Создание собственной кнопки действия.

Страница настроек плагина

Многим плагинам нужна страница настроек, где пользователь может настраивать параметры — например, API Key стороннего сервиса, адрес Webhook и т.д.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-settings-page.
Сделайте страницу настроек плагина: в меню «Настройки плагина» зарегистрируйте пункт «Настройки внешнего сервиса», содержащий два таба:
1. Таб «Настройки API»: форма с полями API Key (строка, обязательное), API Secret (пароль, обязательное), Endpoint (строка, необязательное), сохраняемая в базу через backend API
2. Таб «О плагине»: показывает имя плагина и информацию о версии
На frontend используйте компоненты форм Ant Design, на backend определите два интерфейса externalApi:get и externalApi:set.

Эффект страницы настроек плагина

AI сгенерирует frontend-компонент страницы настроек, backend Resource Action, определение таблицы данных и конфигурацию ACL.

Полный пример см. в разделе Создание страницы настроек плагина.

Собственный API

Если встроенных CRUD-интерфейсов недостаточно, AI может помочь Вам написать собственный REST API. Ниже полный пример совместной работы front и back: backend определяет таблицу данных и API, frontend создаёт собственный блок для отображения данных.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-todo.
Сделайте плагин управления данными Todo с совместной работой front и back:
1. На backend определите таблицу todoItems с полями title (строка), completed (boolean), priority (строка, по умолчанию medium)
2. На frontend сделайте собственный TableBlock, отображающий только данные из todoItems
3. Поле priority отображайте цветным Tag (high — красный, medium — оранжевый, low — зелёный)
4. Добавьте кнопку «Создать Todo», по клику открывает форму для создания записи
5. Авторизованные пользователи могут выполнять все CRUD-операции

Эффект плагина управления данными Todo

AI сгенерирует серверное определение Collection, Resource Action, конфигурацию ACL, а также клиентский TableBlockModel, пользовательский FieldModel и ActionModel.

Полный пример см. в разделе Создание плагина управления данными с совместной работой front и back.

Настройка прав доступа

AI автоматически настраивает разумные правила ACL для сгенерированных API и ресурсов. Вы также можете в промпте явно указать требования к правам доступа:

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-todo.
Определите таблицу данных todoItems (поля title, completed, priority).
Требования к правам: авторизованные пользователи могут просматривать, создавать и редактировать; удалять может только роль admin.

AI на сервере через this.app.acl.allow() настроит соответствующие правила доступа.

Интернационализация

AI по умолчанию генерирует два языковых пакета — на китайском и английском (zh-CN.json и en-US.json), Вам не нужно дополнительно об этом говорить.

Если нужны другие языки:

Помогите мне с помощью skill nocobase-plugin-development разработать плагин NocoBase, имя плагина: @my-scope/plugin-order.
Нужна поддержка трёх языковых пакетов: китайского, английского и японского.

Скрипты обновления

Когда плагину нужно обновить структуру базы данных или мигрировать данные, AI может помочь Вам сгенерировать скрипт Migration.

Пример промпта:

Помогите мне с помощью skill nocobase-plugin-development написать скрипт обновления для плагина NocoBase @my-scope/plugin-order.
Добавьте в таблицу «Заказы» новое поле «Примечание» (длинный текст, необязательное), и заполните существующие записи значением «Нет» в этом поле по умолчанию.

AI сгенерирует файл Migration с номером версии, содержащий DDL-операции и логику миграции данных.

Связанные ссылки