v1/plugins da API pública recebem o pacote e publicam
a versão, e a CLI novus-plugin empacota a pasta e chama esses endpoints por
você.
A CLI (
@novuscrm/plugin) e o SDK do protocolo (@novuscrm/wlclient) não
estão publicados no npm. Publique pela
API com curl, como mostra API pública de publicação.Credenciais
A publicação usa a chave da API pública da conta, a mesma de Autenticação.
Na pipeline, cadastre as duas primeiras como variáveis secretas. Nunca grave a
chave no repositório.
CLI
O template
vanilla fala com o host direto por postMessage, sem
biblioteca. O react-vite é um projeto Vite com React. No projeto com Vite,
novus-plugin dev só orienta a rodar npm run dev, porque o servidor do Vite
já cuida do CORS e do recarregamento.
validar, pack e publish usam as mesmas extensões, limites e mensagens
descritos em Estrutura do pacote,
então um pacote aceito pela CLI é aceito pelo Novus CRM. O zip é
determinístico: a mesma pasta gera o mesmo arquivo, e reenviar sem mudança
devolve a versão que já existe.
publish segue estes passos e para no primeiro que falhar:
1
Valida e empacota a pasta
Os erros saem todos de uma vez, e nada é enviado.
2
Envia o pacote
Mostra o número da versão criada e os avisos de possível credencial nos
arquivos.
3
Publica, com --ativar
Sem
--ativar, a versão fica enviada e a versão ativa não muda. Se a
versão pede permissão nova, a CLI lista as permissões, mostra o link de
aprovação e termina com erro.4
Mostra os endereços
A URL ativa,
https://{slug}.novusplugin.com/, e a de pré-visualização
da versão enviada.--plugin recebe o id do plugin no Novus CRM. Para descobrir o id, liste
os plugins da conta com GET v1/plugins.
Pipeline de CI
CadastreNOVUS_CHAVE_API, NOVUS_AMBIENTE e NOVUS_PLUGIN_ID como variáveis
secretas da pipeline. Gere a pasta dist/ com o build do seu projeto e crie o
pacote a partir do conteúdo dessa pasta:
curl -f, a etapa falha se a API recusar o envio ou a publicação.
API pública de publicação
Os endpoints usam os mesmos cabeçalhos de toda a API pública e só enxergam os plugins da conta da chave.
A versão volta com
Numero, VersaoDoManifesto, Situacao, Ativa,
PermissoesNovas, Avisos e UrlDePreVisualizacao, entre outros campos.
ProblemDetails, com a lista completa de
mensagens em erros:
409
permissoesNovas tem o formato tipo:valor: host:,
dominio:, segredo: ou superficie:. Toda operação feita pela API fica
na auditoria da conta, marcada como vinda da API pública.
SDK do protocolo
Enquanto@novuscrm/wlclient não sai no npm, você tem duas opções:
- Protocolo direto. O plugin fala com o host por
postMessageeMessageChannel, sem biblioteca. É o que fazem o templatevanillae o repositório de exemplo. - SDK servido pelo Novus CRM. Baixe o script, inclua-o no projeto e use o objeto global
WlExtension, como nos exemplos de Plugins.
https://app.novuscrm.com.br/libs/wlclient.js. Inclua-o no pacote do plugin. O Studio recusa scripts carregados de outro domínio.