C cenaly.com
Começar grátis

Editores Personalizados

Minieditores próprios dentro do painel em sandbox: para o proprietário ou desenvolvedores terceiros, acesso aos dados da conta por permissões

On this page 14

Editores personalizados

Existe trabalho que não está em nenhum painel, porque é só seu: um recálculo próprio de preços pela fórmula do fornecedor, a conferência do catálogo com um sistema de contabilidade externo, uma tela "preencher as características do lote de uma só vez". A seção "Editores personalizados" permite escrever esse mini-editor você mesmo (ou encomendá-lo) e executá-lo dentro do painel administrativo — em uma sandbox, com acesso exatamente aos dados que você autorizou.

Abrir: Painel administrativo → Editores personalizados (admin.cenaly.com/custom-editors). A seção é ativada pelo cartão "Editores personalizados (SDK)" na loja de aplicativos — por padrão, ela fica oculta. O botão "📌 Na barra lateral" na própria página o coloca no menu lateral, quando ele é usado com frequência.


O que é esta seção#

Um plugin é um script compilado (index.js) e sua descrição (manifest.json). O painel carrega o script em um frame isolado: ele não tem acesso à sua sessão, nem ao código do painel administrativo, nem à rede. Ele só pode conversar com os dados através da ponte — um conjunto de requisições permitidas, cada uma delas verificada conforme as permissões concedidas.

A página é composta por blocos:

Bloco O que contém
Editores instalados cartão do plugin: nome, "Versão", "Permissões", "Posicionamento", "Hosts de rede permitidos", "Atualizado", origem (repositório e tag como link). Ações: "Abrir", "Ativar" / "Desativar", verificação de atualizações, "Excluir"
Instalar editor instalação a partir de arquivos do disco
Instalação do GitHub instalação pelo endereço de um repositório público e pela tag
🤖 Desenvolvimento com IA (vibe coding) modelo de projeto, prompt para o agente de IA e um snapshot do catálogo como dados de teste
👩‍💻 Acesso do desenvolvedor concessões temporárias ao contratado para o modo de desenvolvedor
🛠️ Modo de desenvolvedor execução do plugin direto do seu computador, sem instalação

O editor aberto ocupa a tela inteira, e o endereço da página recebe a marcação ?app=<identificador> — esse link pode ser compartilhado com quem tem acesso.


O que é necessário para começar#

O quê Para quê
O cartão "Editores personalizados (SDK)" na loja de aplicativos a seção é de nicho e vem desativada por padrão
Você — proprietário da conta instalar, ativar, excluir plugins e conceder permissões só pode ser feito pelo proprietário; os funcionários veem a lista somente para leitura
Plugin compilado: index.js + manifest.json seja seu, seja de um desenvolvedor, seja um release em um repositório público do GitHub
Para desenvolvimento — conta de funcionário para o desenvolvedor o modo de desenvolvedor é concedido pelo e-mail do login de trabalho dele

Etapa 1. Decidir quem vai escrever o editor#

Há três caminhos, e eles diferem em quem mantém o código:

Caminho Para quem serve Como
Agente de IA pelo nosso modelo proprietário que está disposto a explicar a tarefa com palavras bloco "Desenvolvimento com IA": modelo + prompt → o agente monta o release → você o instala
Desenvolvedor próprio ou contratado há um contratado ou desenvolvedor na equipe conceda a ele uma permissão para o modo de desenvolvedor, ele escreve e depura na conta ativa, você instala o release pronto
Release pronto do GitHub o plugin já está escrito (por você ou para você) "Instalação do GitHub": endereço do repositório e tag

Nos três casos, a instalação continua sendo do proprietário: até mesmo um desenvolvedor com permissão só pode executar o próprio código no modo de desenvolvedor, mas não instalá-lo na conta.


Etapa 2. Desenvolvimento com IA (vibe coding)#

O bloco "🤖 Desenvolvimento com IA (vibe coding)" oferece quatro coisas para entregar a tarefa a um agente de IA (Claude Code, Cursor e similares) sem explicar o contrato a ele do zero:

  1. "⬇️ Baixar modelo de projeto (zip)" — uma estrutura pronta de plugin: manifesto, ponto de entrada, descrição do contrato (GUIDE.en.md) e instruções para o agente. O arquivo é montado direto no navegador, não é preciso baixar nada externo.
  2. "📋 Copiar prompt para o agente" — o texto da tarefa em inglês: começar pelo modelo, conferir com o guia, como verificar o resultado.
  3. Configuração do conjunto de ferramentas para o agente — com ele, o agente monta o plugin, sobe um stand local — cópia da sandbox, faz capturas de tela e snapshots de estado e, no final, monta o release: zip para instalação manual ou release no GitHub.
  4. "⬇️ Baixar snapshot do catálogo (fixture de teste)" — suas categorias e itens em um arquivo, para que o agente teste com dados reais, e não inventados.

⚠️ Do snapshot são removidos por completo os campos personalizados de outros plugins: os dados que uma extensão de terceiros armazena nos seus cartões não saem da conta junto com a fixture.


Etapa 3. Instalar o editor#

A partir de arquivos. Bloco "Instalar editor": selecione "Bundle (index.js)" e "Manifesto (manifest.json)" → "Verificar e instalar". O painel primeiro verifica o manifesto — identificador, nome localizado, versão, versão mínima do SDK, posicionamentos, permissões e a lista de hosts de rede — e depois mostra o consentimento: "Este editor solicita:" e a lista de permissões em linguagem humana. Enquanto você não clicar em "Instalar", nada é instalado.

Do GitHub. Bloco "Instalação do GitHub": campo "Repositório (URL ou owner/repo)", campo "Tag (vazio = último release)" e o botão "Verificar repositório". A convenção é simples: manifest.json na raiz do repositório, o dist/index.js compilado na tag, tag no formato v{versão}. O manifesto e o bundle são baixados direto do seu navegador. Nos dois casos, na instalação é calculada e memorizada a impressão digital do bundle (sha256): se o arquivo for substituído depois, a execução será bloqueada, e o painel pedirá para reinstalar o editor.


Direitos e locais de exibição#

Os direitos (também chamados de escopos) o plugin solicita no manifesto, e você os confirma na instalação. A lista completa é esta, a Ponte não consegue fazer nada além disso:

Direito O que é aberto
Ler o catálogo categorias, itens, características e campos personalizados dos cards
Criar e alterar itens do catálogo criação e edição de itens, importação de lote, campos próprios e definições de características
Alterar preços, disponibilidade e listas de bloqueio por unidade o mesmo que o painel faz no menu da unidade
Ler o cadastro de produtos do estoque nomenclatura do estoque para leitura
Armazenar suas próprias configurações no seu armazenamento chaves próprias do plugin na sua conta (até 1 MB por chave)
Parte do servidor da extensão chamadas ao código do plugin no nosso servidor — a única forma de ele acessar a internet

O que não está na lista de forma alguma, o plugin não receberá com nenhuma configuração: hóspedes e clientes, pedidos, recibos, finanças, funcionários, conversas e ligações a Ponte não fornece.

Os locais de exibição (slots) são três:

Slot Onde aparece
Página própria item dentro da seção «Editores personalizados», abre em tela cheia
Botão na página do catálogo ferramenta ao lado do catálogo de itens
Aba da seção «Estoque» o plugin é exibido como uma aba do estoque — é assim que nossa extensão integrada «ВетИС» está empacotada

Modo de desenvolvedor e acesso para o contratado#

O modo de desenvolvedor (bloco «🛠️ Modo de desenvolvedor») monta o plugin ao vivo a partir do seu computador: o campo «URL do bundle» aceita apenas endereços localhost / 127.0.0.1, ao lado há o «JSON do manifesto» e o botão «Iniciar sessão de dev». Nesse caso, a impressão digital não é fixada, e a sessão dura até a aba ser fechada; «Parar sessão de dev» a desliga imediatamente.

Os grants para o desenvolvedor (bloco «👩‍💻 Acesso do desenvolvedor») são necessários quando quem escreve não é o proprietário. Para o desenvolvedor é criada uma conta de funcionário comum, e então o proprietário concede o grant: «Email do desenvolvedor (seu login de staff)», «Direitos permitidos», «Prazo de validade (dias)» e uma observação opcional → «Conceder acesso». É possível revogar a qualquer momento com o botão «Revogar».

O que o grant concede e o que não concede:

  • concede — apenas o modo de desenvolvedor com os direitos que você marcou (por padrão, prazo de 14 dias, máximo de 90);
  • os direitos são limitados pela interseção: o que o manifesto solicita e o que foi concedido pelo grant; o plugin não receberá nada além disso, mesmo que solicite no manifesto;
  • não concede — instalação, ativação e remoção de plugins: isso permanece com o proprietário.

Atualização, ativação e remoção#

Ação Como
Abrir botão «Abrir» no card (ou link com ?app=…)
Desativar temporariamente «Desativar» — o plugin permanece instalado, mas não é executado nem exibido em seus locais
Atualizar para plugins do GitHub — «Verificar atualizações» e depois «Atualizar para …»; se a versão estiver atualizada, o painel dirá «A versão mais recente está instalada». Plugins de arquivos são atualizados com uma nova instalação
Remover «Remover» com confirmação: as configurações e o item são removidos, os releases baixados permanecem no armazenamento

Não há atualização automática de propósito: uma nova versão de código de terceiros é uma nova impressão digital e, possivelmente, novos direitos, por isso a atualização é sempre uma ação consciente do proprietário.


Extensões integradas#

Parte dos nossos próprios módulos está empacotada no mesmo formato — isso é visível pelo comportamento, mas não é preciso instalá-los: eles vêm junto com o painel e são ativados por um card na loja de aplicativos, e não nesta seção.

Atualmente, esse módulo é um só — «Меркурий/ВетИС» para a Rússia: ele fica em uma aba da seção «Estoque», é executado na mesma sandbox e com as mesmas verificações de impressão digital. As extensões integradas não entram na lista de editores instalados.


O que o editor pode e o que não pode#

Pode Não pode
Ler e alterar o catálogo dentro dos direitos concedidos descobrir sua senha ou usar sua sessão
Exibir sua própria interface, notificações e solicitações de confirmação abrir o código ou os dados do admin ao seu redor
Abrir o editor de item nativo do painel acessar a internet diretamente da janela do plugin
Armazenar suas próprias configurações na sua conta ver dados de outro plugin nos seus cards
Acessar a internet pela parte do servidor — e apenas pelos endereços https listados no manifesto (no máximo oito) ser executado após a substituição do arquivo: a divergência de impressão digital bloqueia a inicialização

Plugins de terceiros são marcados no card com um aviso: «Aplicativo de terceiros em sandbox — ele nunca pede senha». Se um plugin pedir o login do painel, dados de pagamento ou código de SMS — isso é fraude, e não o funcionamento da extensão.


Limitações#

  • A seção vem desativada por padrão e é destinada a quem escreve código (ou contrata alguém para escrevê-lo): o proprietário comum não tem o que fazer aqui.
  • Tudo, exceto a visualização, é exclusivo do proprietário da conta. O funcionário vê o hub em modo somente leitura; o modo desenvolvedor só funciona com uma concessão ativa.
  • Repositórios privados do GitHub não são suportados — o repositório precisa ser público e a instalação é feita por tag.
  • Não há atualização automática: a atualização do plugin é sempre iniciada pelo proprietário.
  • Não há loja de plugins de terceiros. Extensões prontas não são publicadas nem vendidas pelo painel — a fonte é apenas o seu arquivo ou o seu repositório.
  • São três slots (página própria, botão do catálogo, aba do estoque) — o plugin não pode se encaixar em uma tela qualquer do painel.
  • A ponte não entrega hóspedes, pedidos, finanças, funcionários nem conversas — não dá para contornar isso com permissões, pois essas consultas simplesmente não existem.
  • Não há um log separado do tipo “o plugin fez tal coisa”. As permissões aparecem no cartão, e as alterações no catálogo entram no histórico comum de itens; se você precisa de controle, comece com um plugin que tenha apenas permissão de leitura.
  • Tetos técnicos: bundle de até 4 MB, até 8 endereços de rede no manifesto, até 1 MB por chave de armazenamento; execução no servidor — até 30 segundos e até 50 acessos à internet por vez.
  • Os dados do plugin permanecem na nuvem da sua marca: em uma conta no cenaly.ru, o estado da parte de servidor fica no contorno russo.

Solução de problemas#

Sintoma Verifique
A seção não aparece no menu se o cartão “Editores personalizados (SDK)” está ativado na loja de aplicativos; se a seção foi movida para a barra lateral com o botão “📌 Na barra lateral”
O funcionário não vê os botões de instalação é assim mesmo: instalação, remoção e concessões são exclusivas do proprietário da conta
“O bundle no armazenamento não corresponde à impressão digital instalada. Execução bloqueada” o arquivo do plugin foi substituído após a instalação — reinstale o editor para gravar a nova impressão digital
“O editor não iniciou a tempo (sem connect() em 10 s)” o plugin não se conectou: erro no código dele ou o arquivo compilado está errado
“Não foi possível carregar o bundle do editor” a versão está indisponível ou o arquivo está corrompido — reinstale
“Editor não encontrado ou desativado” ao acessar o link ?app=… o plugin foi removido ou desativado no cartão
“Não foi possível obter o editor do GitHub” o repositório é privado, não há manifest.json na raiz, não há dist/index.js na tag ou a tag não segue a convenção v{versão}
“Somente endereços localhost / 127.0.0.1 são aceitos” o modo desenvolvedor propositalmente não aceita endereços externos — suba a compilação localmente
O plugin não vê os dados necessários confira as “Permissões” no cartão; para um desenvolvedor com concessão, as permissões ainda são reduzidas pela interseção com a concessão
O plugin não consegue acessar um serviço de terceiros não há rede direta na sandbox: o acesso é feito pela parte de servidor, e o endereço precisa estar no manifesto
“O editor informa alterações não salvas. Fechar mesmo assim?” o plugin avisou que há um rascunho — salve o trabalho dentro dele antes de fechar

Perguntas frequentes#

É preciso saber programar?#

Para instalar uma versão pronta — não. Para obter a própria versão — sim: ela é escrita por um desenvolvedor ou por um agente de IA seguindo o nosso modelo do bloco “Desenvolvimento com IA”. A seção é uma ferramenta para código, não um construtor “com o mouse”.

Um plugin de terceiros pode ver meus clientes ou meu faturamento?#

Não. O plugin roda em uma sandbox e recebe dados apenas pela ponte, e a ponte faz exatamente seis coisas: catálogo, preços e stop-lists, cadastro do estoque, seu próprio armazenamento, chamada da sua própria parte de servidor e elementos de interface. Hóspedes, pedidos, recibos, finanças, funcionários e conversas não existem ali em absoluto. O que exatamente é permitido a um plugin específico sempre aparece no cartão dele, na linha “Permissões”.

Como entregar o desenvolvimento a um terceiro sem dar a ele acesso total à conta?#

Crie para ele uma conta de funcionário e depois conceda uma concessão no bloco “Acesso do desenvolvedor”: marque apenas as permissões necessárias e defina um prazo (por padrão, 14 dias; no máximo, 90). Ele receberá o modo desenvolvedor e nada mais; a instalação do plugin continuará sendo sua. A concessão é revogada com um clique.

O plugin se atualiza sozinho quando o autor lança uma nova versão?#

Não. A atualização é iniciada pelo proprietário: “Verificar atualizações” → “Atualizar para …”. Assim, uma nova versão não aparece na conta sem o conhecimento da pessoa — junto com a versão, as permissões solicitadas também podem ter mudado.

Onde o plugin armazena suas configurações e seus dados?#

Na sua conta, em um armazenamento separado sob o identificador dele (até 1 MB por chave) e, se ele os usar, nos campos personalizados dos seus cartões — cada plugin vê apenas o próprio espaço. Em uma conta no cenaly.ru, a parte de servidor e seu estado permanecem no contorno russo.

Qual é a diferença em relação à API e ao MCP?#

A API para desenvolvedores e o MCP da sua central telefônica são necessários quando o programa funciona por fora: seu site, um sistema de terceiros, um agente de IA. O editor personalizado é o contrário, uma interface dentro do painel: o funcionário o abre como uma página comum do admin e não sai da janela de trabalho.


Seções relacionadas#

Was this article helpful?