Recursos suportados

Pré-requisito

Antes de ler esta página, certifique-se de ter concluído a preparação do ambiente seguindo o Início rápido do desenvolvimento de plugins com IA.

O recurso de desenvolvimento de plugins com IA é baseado na Skill nocobase-plugin-development. Se você já inicializou através do NocoBase CLI (nb init), essa Skill será instalada automaticamente.

A seguir estão listadas todas as coisas que a IA pode fazer por você atualmente. Cada recurso vem acompanhado de um exemplo de prompt que você pode copiar e adaptar à sua necessidade.

Atenção
  • O NocoBase está em processo de migração de client (v1) para client-v2. No momento, o client-v2 ainda está em desenvolvimento. O código cliente gerado pelo desenvolvimento com IA é baseado no client-v2 e só pode ser usado no caminho /v/. É uma prévia experimental e não é recomendado para uso direto em produção.
  • O código gerado pela IA pode não estar 100% correto. Recomenda-se revisá-lo antes de habilitar. Se encontrar problemas em tempo de execução, envie a mensagem de erro para a IA continuar investigando e corrigindo. Geralmente, algumas trocas de mensagens resolvem o problema.
  • Recomenda-se usar modelos da família GPT ou Claude para o desenvolvimento, pois oferecem os melhores resultados. Outros modelos também funcionam, mas a qualidade da geração pode variar.

Boas práticas

  • Diga à IA explicitamente que você quer criar ou modificar um plugin NocoBase, e forneça o nome do plugin — por exemplo, "Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-rating". Sem fornecer o nome do plugin, a IA pode não saber onde gerar o código.
  • No prompt, especifique explicitamente o uso da skill nocobase-plugin-development — por exemplo, "Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase...". Isso permite que o Agent leia diretamente as capacidades das Skills, evitando entrar em modo plan e ignorar as Skills.
  • Execute o Agent de IA no diretório raiz do repositório de código-fonte do NocoBase — assim a IA pode encontrar automaticamente a estrutura do projeto, as dependências e os plugins existentes. Se você não estiver no diretório raiz do código-fonte, será necessário informar adicionalmente o caminho do repositório ao Agent.

Índice rápido

Eu quero...A IA pode fazer
Criar um novo pluginGerar o scaffold completo, incluindo a estrutura de diretórios frontend e backend
Definir uma tabela de dadosGerar a definição da Collection, com suporte a todos os tipos de campo e relacionamentos
Criar um bloco personalizadoGerar BlockModel + painel de configuração + registro no menu "Adicionar bloco"
Criar um campo personalizadoGerar FieldModel + vinculação à interface de campo
Adicionar botões de ação personalizadosGerar ActionModel + popup/drawer/caixa de confirmação
Criar uma página de configurações de pluginGerar formulário no frontend + API no backend + armazenamento
Escrever uma API personalizadaGerar Resource Action + registro de rotas + configuração de ACL
Configurar permissõesGerar regras de ACL, controlando o acesso por papel
Suporte multilíngueGerar automaticamente pacotes de idiomas em chinês e inglês
Escrever scripts de upgradeGerar Migration, com suporte a DDL e migração de dados

Scaffold de plugin

A IA pode gerar a estrutura completa de diretórios de um plugin NocoBase com base na descrição da sua necessidade, incluindo arquivos de entrada de frontend e backend, definições de tipos e configurações básicas.

Exemplo de prompt:

Ajude-me a criar um plugin NocoBase chamado @my-scope/plugin-todo

A IA executará yarn pm create @my-scope/plugin-todo e gerará a estrutura padrão de diretórios:

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

Definição de tabela de dados

A IA suporta a geração de definições de Collection com todos os tipos de campos do NocoBase, incluindo relacionamentos (um para muitos, muitos para muitos, etc.).

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-order,
e dentro dele defina uma tabela "pedidos", com os campos: número do pedido (auto-incremento), nome do cliente (string),
valor (decimal), status (seleção única: pendente/em processamento/concluído), data de criação.
A relação entre pedidos e clientes é muitos-para-um.

A IA gerará uma definição defineCollection, contendo tipos de campos, valores padrão, configurações de relacionamento, etc.

Bloco personalizado

Os blocos são a forma mais central de extensão do frontend do NocoBase. A IA pode ajudar você a gerar o modelo do bloco, o painel de configuração e o registro no menu.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-simple-block,
crie um bloco personalizado de exibição (BlockModel) onde o usuário pode inserir conteúdo HTML no painel de configuração,
e o bloco renderiza esse HTML. Registre este bloco no menu "Adicionar bloco".

A IA gerará o BlockModel, criará o painel de configuração através de registerFlow + uiSchema, e registrará no menu "Adicionar bloco".

Para um exemplo completo, consulte Criar um bloco personalizado de exibição.

Componente de campo personalizado

Se os componentes nativos de renderização de campo do NocoBase não atenderem às suas necessidades, a IA pode ajudar a criar um componente de exibição personalizado, substituindo a forma padrão de renderização de campo.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-rating,
crie um componente de exibição de campo personalizado (FieldModel) que renderize campos do tipo integer como ícones de estrela,
suportando notas de 1 a 5. Clicar nas estrelas deve modificar o valor da avaliação diretamente e salvá-lo no banco de dados.

Demonstração do componente Rating

A IA gerará um FieldModel personalizado, substituindo o componente padrão de renderização do campo integer.

Ações personalizadas

Os botões de ação podem aparecer no topo do bloco (nível collection), na coluna de ações de cada linha da tabela (nível record), ou em ambas as posições simultaneamente. Ao clicar, podem exibir um aviso, abrir um popup com formulário, chamar uma API, etc.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-simple-action,
crie três botões de ação personalizados (ActionModel):
1. Um botão de nível collection, que aparece no topo do bloco e, ao ser clicado, exibe um aviso de sucesso
2. Um botão de nível record, que aparece na coluna de ações de cada linha da tabela e, ao ser clicado, exibe o ID do registro atual
3. Um botão de nível both, que aparece em ambas as posições e, ao ser clicado, exibe um aviso informativo

A IA gerará o ActionModel, controlando a posição de exibição dos botões através de ActionSceneEnum, e tratando o evento de clique através de registerFlow({ on: 'click' }).

Para um exemplo completo, consulte Criar um botão de ação personalizado.

Página de configurações do plugin

Muitos plugins precisam de uma página de configurações para que o usuário possa configurar parâmetros — por exemplo, a API Key de um serviço de terceiros, o endereço de Webhook, etc.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-settings-page,
crie uma página de configurações que registre uma entrada "Configuração de serviço externo" no menu "Configurações de plugin", contendo duas Tabs:
1. Tab "Configuração da API": formulário com API Key (string, obrigatório), API Secret (senha, obrigatório), Endpoint (string, opcional), salvando no banco de dados via API do backend
2. Tab "Sobre": exibe o nome do plugin e a versão
Use componentes de formulário do Ant Design no frontend, e defina as duas interfaces externalApi:get e externalApi:set no backend.

Efeito da página de configurações do plugin

A IA gerará o componente da página de configurações no frontend, Resource Action no backend, definição da tabela de dados e configuração de ACL.

Para um exemplo completo, consulte Criar uma página de configurações de plugin.

API personalizada

Se as interfaces CRUD nativas não forem suficientes, a IA pode ajudar você a escrever uma REST API personalizada. Abaixo está um exemplo completo de integração frontend-backend — o backend define a tabela de dados e a API, e o frontend cria um bloco personalizado para exibir os dados.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-todo,
crie um plugin de gerenciamento de dados de Todo com integração entre frontend e backend:
1. No backend, defina uma tabela todoItems com os campos title (string), completed (boolean), priority (string, padrão medium)
2. No frontend, crie um TableBlock personalizado que exiba apenas os dados de todoItems
3. O campo priority deve ser exibido com Tags coloridas (high vermelho, medium laranja, low verde)
4. Adicione um botão "Novo Todo" que, ao ser clicado, abre um formulário para criar registros
5. Usuários autenticados podem realizar todas as operações de CRUD

Efeito do plugin de gerenciamento de dados Todo

A IA gerará a definição de Collection do servidor, Resource Action, configuração de ACL, bem como o TableBlockModel do cliente, FieldModel personalizado e ActionModel.

Para um exemplo completo, consulte Criar um plugin de gerenciamento de dados com integração frontend-backend.

Configuração de permissões

A IA configurará automaticamente regras de ACL razoáveis para a API e os recursos gerados. Você também pode especificar explicitamente os requisitos de permissão no prompt:

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-todo,
defina uma tabela de dados todoItems (campos title, completed, priority),
requisitos de permissão: usuários autenticados podem visualizar, criar e editar; somente o papel admin pode excluir.

A IA configurará as regras de acesso correspondentes no servidor através de this.app.acl.allow().

Internacionalização

Por padrão, a IA gera dois pacotes de idiomas, em chinês e inglês (zh-CN.json e en-US.json), sem que você precise mencionar isso explicitamente.

Se houver necessidade de outros idiomas:

Por favor, use a skill nocobase-plugin-development para me ajudar a desenvolver um plugin NocoBase chamado @my-scope/plugin-order,
preciso de suporte para três pacotes de idiomas: chinês, inglês e japonês

Scripts de upgrade

Quando o plugin precisa atualizar a estrutura do banco de dados ou migrar dados, a IA pode ajudar a gerar um script de Migration.

Exemplo de prompt:

Por favor, use a skill nocobase-plugin-development para me ajudar a escrever um script de upgrade para o plugin NocoBase @my-scope/plugin-order,
adicione um campo "observação" à tabela "pedidos" (texto longo, opcional) e preencha o valor padrão "nenhum" no campo de observação dos pedidos existentes.

A IA gerará um arquivo de Migration com número de versão, contendo operações DDL e lógica de migração de dados.