Compartilhar abas
Publica uma aba para usuários, grupos, sellers ou todos, lista com quem ela foi compartilhada e remove um compartilhamento.
Uma aba nova é privada. Publicar concede acesso a outras pessoas por meio de compartilhamentos, cada um com um destinatário e uma permissão: R (só leitura, pode abrir, executar e duplicar) ou W (também edita). Abas do administrador podem ser publicadas para sellers (lojistas), sempre em leitura: o seller vê a aba com os próprios números, porque os cards são recalculados no escopo dele.
Publicar
/api/v1/admin/dashboards/{id}/publishAdminPublicar uma aba
Parâmetros de caminho
iduuidobrigatórioId da aba (UUID).
Corpo da requisição
principalsarrayobrigatórioDestinatários. Publicar de novo para o mesmo destinatário apenas atualiza a permissão.
typestringobrigatórioUGVASU um usuário, G um grupo de usuários, V um seller, A todos os administradores (só em aba do administrador), S todos os sellers.iduuidId do usuário, grupo ou seller. Obrigatório em
U, G e V; omitido em A e S.permissionstringpadrão: RRWR (padrão) ou W. Publicar uma aba do administrador para S ou V grava sempre R, qualquer que seja o valor enviado.Exemplo de requisição (publicar)
bash
curl -X POST "$BASE_URL/api/v1/admin/dashboards/8da0f9c1-b05b-4809-b07d-0b36573489e7/publish" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"principals": [{"type": "S"}, {"type": "A", "permission": "R"}]}'Resposta (publicar)
200Publicada
json
{
"message": "dashboard published",
"vendor_incompatible_cards": []
}Campos da resposta
messagestringTexto fixo de confirmação, em inglês.
vendor_incompatible_cardsarraySó aparece ao publicar uma aba do administrador para sellers: títulos dos cards que o seller verá como erro, porque a entidade deles não tem escopo de seller. A publicação acontece mesmo assim.
Erros (publicar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio exigido. | {"error":"insufficient privileges","required":"publish_dashboards"} |
| 400 | Corpo inválido: não é JSON, tem campo desconhecido (a leitura rejeita campos que a API não conhece) ou passa de 1 MB. | {"error":"invalid request body","detail":"json: unknown field \"foo\""} |
| 404 | A aba não existe, não é sua ou não está visível para você. A API responde 404 em vez de 403 para não revelar que o id existe. | {"error":"dashboard not found"} |
| 400 | Tipo de destinatário desconhecido, id ausente onde é obrigatório, ou A em aba do seller. | {"error":"failed to publish dashboard","detail":"invalid principal type \"X\""} |
Listar compartilhamentos
/api/v1/admin/dashboards/{id}/sharesAdminListar os compartilhamentos de uma aba
Parâmetros de caminho
iduuidobrigatórioId da aba (UUID).
Exemplo de requisição (listar)
bash
curl "$BASE_URL/api/v1/admin/dashboards/8da0f9c1-b05b-4809-b07d-0b36573489e7/shares" \
-H "Authorization: Bearer $TOKEN"Resposta (listar)
200Compartilhamentos
json
{
"shares": [
{
"id": "57ac6f6c-a3c4-4130-8353-de44b0888c0f",
"dashboard_id": "8da0f9c1-b05b-4809-b07d-0b36573489e7",
"principal_type": "S",
"permission": "R",
"shared_by": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"created_at": "2026-10-11T21:10:47.048373Z"
}
]
}Campos da resposta
sharesarray|nullCompartilhamentos. Quando não há nenhum, vem
null e não []: trate os dois.shares[].iduuidId do compartilhamento, usado para removê-lo.
shares[].dashboard_iduuidAba.
shares[].principal_typestringUGVASTipo do destinatário (
U, G, V, A, S).shares[].principal_iduuidId do destinatário. Ausente em
A e S.shares[].permissionstringRWR ou W.shares[].shared_byuuidQuem publicou.
shares[].created_atstringQuando foi compartilhado, RFC 3339.
Erros (listar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_dashboards"} |
| 404 | A aba não existe, não é sua ou não está visível para você. A API responde 404 em vez de 403 para não revelar que o id existe. | {"error":"dashboard not found"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Remover compartilhamento
/api/v1/admin/dashboards/{id}/shares/{shareId}AdminRemover um compartilhamento
Parâmetros de caminho
iduuidobrigatórioId da aba (UUID).
shareIduuidobrigatórioId do compartilhamento (de Listar compartilhamentos).
Exemplo de requisição (remover)
bash
curl -X DELETE "$BASE_URL/api/v1/admin/dashboards/8da0f9c1-b05b-4809-b07d-0b36573489e7/shares/57ac6f6c-a3c4-4130-8353-de44b0888c0f" \
-H "Authorization: Bearer $TOKEN"Resposta (remover)
200Removido
json
{
"message": "share removed"
}Campos da resposta
messagestringTexto fixo de confirmação, em inglês.
Erros (remover)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio exigido. | {"error":"insufficient privileges","required":"publish_dashboards"} |
| 404 | A aba não existe, não é sua ou não está visível para você. A API responde 404 em vez de 403 para não revelar que o id existe. | {"error":"dashboard not found"} |
| 404 | O compartilhamento não existe nesta aba. | {"error":"share not found"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |