Solicitar acesso e publicar¶
Acesso de desenvolvedor¶
- Entre em Configurações → Conta e segurança → acesso de desenvolvedor ou na área de desenvolvedores.
- Explique a finalidade, dados utilizados e hospedagem da interface/backend.
- Envie. O estado Em análise mantém sua proposta e remove o formulário de reenvio enquanto aguarda avaliação.
- 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.
- Hospede o plugin em HTTPS público, sem exigir login para ler o manifesto.
- Publique
GET /manifest.jsondentro da URL-base do plugin. Por exemplo,https://plugins.exemplo.com/ataserá consultado emhttps://plugins.exemplo.com/ata/manifest.json. Se o plugin estiver na raiz, usehttps://plugins.exemplo.com. - Informe a URL-base, sem parâmetros, fragmento, credenciais ou porta personalizada.
- 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.
- 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.
- 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.
- Acompanhe
pending,approved,rejectedoususpendedem 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/jsone 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.