Início Rápido de IA

Esse guia guia leva você de uma pasta vazia para um portal em execução onde os clientes fazem login e trabalham com seus próprios casos de suporte — perguntando a um agente de codificação de IA em vez de escrever manualmente. Cada etapa te dá um prompt para colar, o que o agente fará com ele e o que verificar antes de seguir em frente. O exemplo usa a tabela de casos (incident) que vem com o Atendimento ao Cliente do Dynamics 365; com uma tabela própria, todo prompt funciona da mesma forma.

Antes de começar

  • O SDK .NET 10, e Node.js se você escolher o template React.
  • Um ambiente Dataverse no qual você é um Administrador de Sistemas. Use um ambiente de desenvolvimento ou sandbox para este guia.
  • Permissão para criar registros de aplicativos no inquilino Entra daquele ambiente.
  • Um endereço para o e-mail do portal — confirmações de registro e redefinição de senha — com uma caixa de correio compartilhada no Exchange Online, que não precisa de licença. Aprovar o endereço exige um Administrador Global do Office 365 ou Administrador do Exchange.
  • Um agente de codificação de IA que suporta MCP. Os comandos abaixo são para Claude Code; a página do MCP Server tem a configuração para Visual Studio, VS Code e Cursor.

Como isso funciona

Duas coisas permitem que um agente acerte isso em vez de ser apenas plausível: o servidor Power Portals Pro MCP, que lê seu ambiente Dataverse real e faz as mudanças de configuração que um portal precisa, e as instruções que cada projeto gerado envia para os agentes.

1. Instalar o servidor MCP

Instale-a uma vez por máquina, no escopo do usuário, para que esteja disponível em todas as pastas — incluindo a que você está prestes a criar o projeto:

dnxvem com o SDK .NET 10. Reinicie seu agente se ele já estava rodando, depois verifique se o servidor está lá perguntando algo que só ele possa responder, como "usar get_component_api para listar os parâmetros do MainGrid".

2. Crie uma pasta e faça login

Crie a pasta onde seu portal estará e faça login por dentro dela — uma vez no seu ambiente Dataverse e outra vez no Azure, que é por onde os registros do app no passo 4 são feitos:

Ambos os logins pertencem a essa pasta, não à máquina. Eles escrevem .ppp/mcp.json aqui, nomeando o ambiente e o tenant, e mantêm seus tokens no seu perfil de usuário, para que um projeto em outra pasta possa apontar para outro cliente ao mesmo tempo. Ambos usam código de dispositivo, então você pode finalizá-los no seu celular. Se sua conta receber várias assinaturas do Azure, você não precisa escolher uma ainda — isso só importa depois que você for implantado. Depois, inicie seu agente nessa pasta.

3. Criar o projeto

Diga ao agente o que você está construindo — qual stack, React ou Blazor, e quem vai fazer login:

O agente instala os templates do projeto se eles estiverem faltando, pergunta sobre algo que não consegue identificar do seu pedido e executa dotnet new. Cada cliente se torna um contato no Dataverse, e o que eles podem ver é decidido pelos registros de segurança nos arquivos do projeto Program.cs. Esse é o modelo padrão de segurança do template, e o que o restante deste walkthrough usa. Qualquer stack funciona; todos os prompts posteriores são iguais.

Nota

Reinicie seu agente na mesma pasta assim que o projeto existir. O projeto traz seu próprio .mcp.json, que fixa o servidor MCP na versão que corresponde aos seus pacotes, junto com suas habilidades e AGENTS.md — e a maioria dos agentes só lê essas coisas quando começa. Aprove o servidor MCP do projeto se seu agente pedir.

4. Conecte-o ao Dataverse

Um novo projeto só começará quando conseguir chegar ao Dataverse. Peça ao agente para configurar isso:

O agente acompanha a habilidade do set-up-portal projeto, começando por check_setup ver o que está faltando. Espere aprovar cada uma delas:

As configurações de conexão aparecem nos segredos de usuário do projeto à medida que cada etapa é concluída. O agente termina executando check_setup novamente; uma vez limpo, execute o projeto — F5, ou dotnet run no projeto servidor — e você verá a página inicial e as páginas de exemplo do template.

5. Decidir o que os clientes devem ver

Descreva o resultado que você deseja em termos comerciais e deixe o agente encontrar a tabela. Perguntar antes de qualquer coisa ser escrita vale a pena: o agente lê seu ambiente, então ele sugere o que realmente está lá, incluindo suas próprias tabelas e colunas personalizadas.

Espere que ele consulte a tabela com list_tables e describe_table, leia suas visualizações com list_views, e volte com a tabela de casos (incident), a busca que vincula um caso ao cliente (customerid), e as colunas para mostrar e editar. Ajuste essa lista agora: ela decide o que o portal publica.

6. Prenda a mesa

Um portal não mostra nada que não tenha sido instruído a mostrar: até que uma tabela seja registrada, suas páginas retornam 403 ou uma grade vazia. Peça ao agente para abrir a tabela — apenas na medida em que você pretende:

O agente trabalha com a habilidade do secure-a-table projeto, confirmando para quem é o acesso, quais linhas, quais operações e quais colunas. Não pule nenhuma delas: cada resposta altera o que é publicado.

Depois, ele escreve o registro no projeto Program.csdo servidor . Para este exemplo, espere algo como:

RowsOwnedByContact("customerid") Limita cada consulta aos próprios casos do contato logado, e o torna o cliente de um caso que ele cria. Colunas são opt-in: tudo que não for nomeado Reading é retido, e apenas as colunas Writing podem ser alteradas. WritingOnCreate cobre a prioridade — definida quando o caso é registrado, somente leitura a partir de então. A segurança cobre todas as opções.

O próprio papel do usuário da aplicação

O registro decide o que cada cliente pode fazer, mas o portal ainda se comunica com o Dataverse como seu usuário da aplicação, e esse usuário precisa de privilégios na própria mesa. Eles assumem o papel de segurança do seu próprio passo a partir do passo 4, nunca no papel Power Portals Pro. O agente:

  1. Encontra seu papel no usuário da aplicação com get_application_user — e se o passo 4 não criou um, cria com create_security_role e atribui com assign_application_user_role.
  2. Concede o que o registro precisa com add_table_privileges_to_role: Ler, Criar, Escrever e Anexar em incident, e Anexar a em contact, porque cada novo caso está vinculado a um contato. Então executa check_setup, que compara as tabelas que suas páginas usam com as tabelas que seu código registra.

Por que um papel só seu?

O papel Power Portals Pro vem em uma solução gerenciada. O Dataverse permitiria adicionar privilégios a ele, mas a próxima atualização dessa solução pode devolvê-lo ao jeito que foi lançado, levando suas concessões consigo — então o servidor MCP se recusa a adicionar privilégios a qualquer função gerenciada. Um papel próprio também mostra a qualquer pessoa que revise o ambiente depois exatamente o que o portal pode alcançar.

7. Adicionar as páginas

Com a tabela segura, peça as duas páginas de uma vez — a lista no menu e a página em que um caso abre:

O agente segue a habilidade do add-table-pages projeto. Ele adiciona as rotas, uma página de lista com , MainGrida entrada do menu e uma RecordContext página que também abre vazia para registrar um novo caso. Ele lê IDs de visualização real com list_views , em vez de escrever, marcadores de lugar, e mantém cada coluna dentro do que o registro permite que os clientes leiam — as visualizações padrão do Dynamics incluem colunas apenas para agente, então espere que ofereça visualizações próprias. Se você pedir uma coluna que o registro deixa de fora, ele deve parar e perguntar em vez de ampliar o acesso silenciosamente. Registros relacionados podem ir na página do caso como subgrades; nomeie-os, e ele também protegerá essa tabela.

8. Experimente como dois clientes

O agente não pode fazer login como cliente, então essa parte é sua. Também é o teste que mais importa: o objetivo do registro é aquilo que um cliente não consegue ver.

  1. Execute o portal e registre um cliente. O e-mail de confirmação chega assim que a caixa de correio da fila de e-mails passa no Teste & Habilitar na etapa 4.
  2. Abra Casos, registre um novo caso e depois abra novamente pela grade. Mude o título e salve.
  3. Saia da sessão, registre um segundo cliente e abra os Casos. A grade deve estar vazia: o caso do primeiro cliente é só dele. Colar o endereço desse caso nesta sessão também não deve mostrar isso.

Se algum cliente vir algo que não deveria, não ajuste à mão. Diga ao agente o que viu e o que esperava, e deixe a situação funcionar secure-a-table novamente.

Se algo não parecer certo

Para onde ir a seguir