Pular para conteúdo

Solicitar acesso e publicar

Acesso de desenvolvedor

  1. Entre em Configurações → Conta e segurança → acesso de desenvolvedor ou na área de desenvolvedores.
  2. Explique a finalidade, dados utilizados e hospedagem da interface/backend.
  3. Envie. O estado Em análise mantém sua proposta e remove o formulário de reenvio enquanto aguarda avaliação.
  4. Consulte a decisão e a justificativa na mesma área. Aprovar o desenvolvedor não aprova automaticamente um plugin.

Enviar pela URL do plugin

Com acesso aprovado e plugins liberados para sua conta, abra Área de desenvolvedores → Enviar plugin para análise. O formulário fica em uma página própria.

  1. Hospede o plugin em HTTPS público, sem exigir login para ler o manifesto.
  2. Publique GET /manifest.json dentro da URL-base do plugin. Por exemplo, https://plugins.exemplo.com/ata será consultado em https://plugins.exemplo.com/ata/manifest.json. Se o plugin estiver na raiz, use https://plugins.exemplo.com.
  3. Informe a URL-base, sem parâmetros, fragmento, credenciais ou porta personalizada.
  4. Clique Validar manifesto. O servidor consulta a rota, valida o schema do manifesto e mostra nome, versão, descrição e permissões. Nada é submetido nessa etapa.
  5. Escolha a audiência: Privado para sua conta ou um time do qual seja owner/admin; Público para usuários elegíveis após aprovação. Privado também exige revisão.
  6. Clique Enviar para análise. O Elo busca e valida novamente. Se o conteúdo validado mudou, revise a nova prévia antes de reenviar. A submissão guarda o snapshot validado, URL e hash SHA-256; o revisor analisa esse snapshot, sem executar o iframe.
  7. Acompanhe pending, approved, rejected ou suspended em Minhas submissões. Aprovação de desenvolvedor e publicação são decisões separadas.

Contrato da rota do manifesto

  • HTTP 200, Content-Type: application/json e JSON UTF-8 válido.
  • Até 32 KiB de resposta descomprimida, inclusive quando enviada em chunks.
  • Tempo máximo de 8 segundos, incluindo leitura do corpo.
  • Sem redirecionamentos. Aponte a URL-base diretamente para a hospedagem definitiva.
  • uiUrl, configurações, abas e ações devem compartilhar a origem HTTPS da URL informada, em origem separada do painel Elo.
  • O Elo não encaminha cookies, credenciais OAuth ou sessão do usuário ao buscar o manifesto.
  • A mudança da URL no formulário invalida a prévia; uma nova versão exige nova análise.

Requests e responses do painel

Esses endpoints exigem sessão Elo autenticada, desenvolvedor aprovado e feature flag. São endpoints de publicação do painel; não usam o grant do SDK dentro do iframe.

POST /api/developer/plugins/validate:

{ "pluginUrl": "https://plugins.exemplo.com/ata" }

Resposta 200 (o manifesto completo segue em manifest):

{
  "pluginUrl": "https://plugins.exemplo.com/ata",
  "manifestUrl": "https://plugins.exemplo.com/ata/manifest.json",
  "manifestHash": "SHA256_BASE64URL_RETORNADO_PELO_SERVIDOR",
  "manifest": {
    "key": "com.exemplo.ata", "name": "Ata", "version": "1.0.0",
    "description": "Ata para revisão", "uiUrl": "https://plugins.exemplo.com/ata",
    "permissions": ["meeting:read", "transcript:read", "notes:write"]
  }
}

POST /api/developer/plugins, usando o hash real recebido:

{
  "pluginUrl": "https://plugins.exemplo.com/ata",
  "manifestHash": "SHA256_BASE64URL_RETORNADO_PELO_SERVIDOR",
  "visibility": "internal"
}

visibility aceita internal ou public. teamId é opcional somente em internal. Resposta 201:

{ "id": "UUID_DA_SUBMISSAO", "status": "pending", "message": "Plugin enviado para análise. A publicação depende de aprovação no backoffice." }

Erros: 400 URL/JSON/schema/audiência inválidos; 403 acesso ou time não autorizado; 409 versão já enviada ou manifest_changed; 502 manifesto inacessível; 504 tempo excedido. Um erro não cria uma publicação pendente. O endpoint antigo que recebe o manifesto diretamente continua compatível, mas o formulário usa exclusivamente URL e revalidação.

Instalação

Em Meus plugins → Marketplace, o usuário escolhe a publicação aprovada e confirma permissões em modal. Configuração fica em Meus plugins; ações ficam nas reuniões. A remoção exige confirmação e revoga futuras operações da instalação.

Atualizações

Cada nova versão precisa de nova análise. Não conte com ampliação silenciosa de permissões; instalar outra versão exige o consentimento aplicável. Suspender a publicação ou o desenvolvedor pode tornar a instalação indisponível imediatamente.

Teste paginação, grant expirado, escopo ausente, troca de reunião, cancelamento, rede indisponível, teclado, idiomas e largura de 390 px. Nunca registre conteúdo sensível em logs.