Enviar uma versão pela CLI
const url = 'https://api-connect.zoppy.com.br/connectors/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/versions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"baseSeq":1,"code":"example","manifest":{"additionalProperty":"example"},"summary":null}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api-connect.zoppy.com.br/connectors/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/versions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "baseSeq": 1, "code": "example", "manifest": { "additionalProperty": "example" }, "summary": null }'Grava o código e o manifesto de uma pasta como versão nova (origin cli), por cima de baseSeq. Se outra versão entrou depois de baseSeq, recusa com 409 e não grava nada. A versão nova segue o mesmo ciclo: só roda depois de um ensaio limpo e de publicar. Segredos não passam por aqui: os que faltam voltam em missingSecrets, para preencher na tela do conector.
Authorizations
Seção intitulada “Authorizations”Parameters
Seção intitulada “Parameters”Path Parameters
Seção intitulada “Path Parameters”Id do conector
Id do conector
Request Bodyrequired
Seção intitulada “Request Bodyrequired”object
HeadSeq de onde a pasta partiu; uma versão mais nova recusa com 409 connect.version_conflict e nada é gravado
Código TypeScript do conector (connector.ts)
Manifesto da versão (manifest.json); conferido como o de qualquer outra versão
object
O que mudou, em português
Responses
Seção intitulada “Responses”Versão gravada
object
Id do conector
Número da nova versão; mande como baseSeq no próximo push
Versão sobre a qual ela foi escrita
Sempre cli: enviada pela CLI zoppy-connect
O que mudou
Versão que roda de verdade; a nova só roda depois de um ensaio limpo e de publicar
Hosts da nova versão esperando aprovação na tela do conector
Segredos da nova versão sem valor; preenchidos só na tela do conector
A versão chama a Zoppy e o acesso da loja a ela não está ativo
Example
{ "origin": "cli"}Entrada inválida (validation_failed)
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Token ausente, inválido ou expirado (connect.unauthorized)
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Papel sem acesso, Connect não liberado ou token sem connect:build (connect.forbidden_role, connect.feature_disabled, connect.insufficient_scope)
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Conector de outra loja ou inexistente (connect.connector_not_found)
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}Outra versão entrou depois de baseSeq (connect.version_conflict); meta traz baseSeq e headSeq
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example
{ "type": "connect.version_conflict", "title": "O conector mudou enquanto você editava. Abra a versão mais nova e tente de novo.", "status": 409, "meta": { "baseSeq": 1, "headSeq": 2 }}Manifesto inválido, código que não compila ou agente indisponível (connect.invalid_manifest, connect.invalid_code, connect.agent_not_available)
object
Código estável do erro, para máquinas (ex.: connect.connector_not_found)
Nome da classe do erro
Status HTTP
Mensagem em pt-BR, segura para mostrar a quem usa a tela
Id de correlação: passe ao suporte para achar o rastro completo
Detalhes estruturados seguros para a tela (erros de campo, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}