Manifesto do plugin¶
O mesmo contrato valida instalação e revisão. Baixe o exemplo completo e experimente o validador no playground.
{
"key": "com.example.minutes",
"name": "Meeting minutes",
"version": "1.0.0",
"description": "Review decisions and action items.",
"uiUrl": "https://plugins.example.com/minutes",
"configurationUrl": "https://plugins.example.com/settings",
"meetingTabs": [
{
"id": "minutes",
"title": "Meeting minutes",
"url": "https://plugins.example.com/minutes"
}
],
"sidebarActions": [
{
"id": "prepare",
"title": "Prepare minutes",
"url": "https://plugins.example.com/prepare"
}
],
"permissions": [
"meeting:read",
"transcript:read",
"notes:write",
"tags:read",
"identity:read",
"settings:read",
"settings:write"
]
}
| Campo | Regra |
|---|---|
key |
3–80 caracteres; começa com letra minúscula; letras minúsculas, números, ponto e hífen |
name |
1–80 caracteres |
version |
Três grupos numéricos, como 1.0.0 |
description |
Até 1000 caracteres |
uiUrl |
HTTPS público, sem credenciais nem porta personalizada |
configurationUrl |
Opcional; mesma origem de uiUrl |
meetingTabs |
Até 3 abas com id, title, url |
sidebarActions |
Até 3 ações com id, title, url |
permissions |
1–7 permissões |
IDs de superfícies são únicos entre abas e ações, têm até 40 caracteres e obedecem [a-z][a-z0-9-]*. Títulos têm 1–40 caracteres. URLs têm até 2048 caracteres e usam a mesma origem pública do plugin. Campos desconhecidos são rejeitados.
Permissões disponíveis¶
meeting:read, transcript:read, tags:read, notes:write, identity:read, settings:read, settings:write.
Solicite apenas o necessário. session é uma operação do SDK para renovar o grant, não um item do manifesto. O servidor revalida o acesso a cada chamada. Veja os contratos das operações.
Hospedagem do manifesto¶
Sirva GET /manifest.json na URL-base informada na submissão. Consulte o contrato de hospedagem e envio pela URL, incluindo limites, revalidação e audiência privada/pública.