Pular para o conteúdo principal

Compartilhamento e Embed

Esta referencia cobre os endpoints publicos e autenticados do sistema de compartilhamento.

Grupos de Endpoints

GrupoBase
Contextos de compartilhamento/api/v1/share-contexts
Shares de dashboard/api/v1/dashboards/:id/shares, /api/v1/dashboard-shares
Autenticacao externa por email/api/v1/share-auth
Portal externo autenticado/api/v1/share-portal
Shares publicos por token/api/v1/public/shares/:token
Geracao de embed (autenticado)/api/v1/embed
Consumo de embed (publico)/api/embed
Auditoria/analytics de compartilhamento/api/v1/share-events, /api/v1/share-analytics

1) Contextos de Compartilhamento

Todos exigem JWT interno (Authorization: Bearer <access_token>).

MetodoEndpointDescricao
GET/api/v1/share-contextsLista contextos da empresa
GET/api/v1/share-contexts/:idDetalha um contexto
POST/api/v1/share-contextsCria contexto
PUT/api/v1/share-contexts/:idAtualiza contexto
PUT/api/v1/share-contexts/:id/grantsAtualiza grants do contexto
DELETE/api/v1/share-contexts/:idRemove contexto
GET/api/v1/share-contexts/:id/membersLista membros
POST/api/v1/share-contexts/:id/membersAdiciona membro (internal_user, group, external_email)
DELETE/api/v1/share-contexts/:id/members/:memberIdRemove membro

Exemplo: adicionar membro externo por email

{
"member_type": "external_email",
"email": "cliente@empresa.com"
}

2) Shares de Dashboard

Tambem exigem JWT interno.

MetodoEndpointDescricao
GET/api/v1/dashboards/:id/sharesLista shares do dashboard
POST/api/v1/dashboards/:id/sharesCria share (link ou embed)
GET/api/v1/dashboard-sharesLista shares da empresa (paginado)
PUT/api/v1/dashboard-shares/:shareIdAtualiza share
DELETE/api/v1/dashboard-shares/:shareIdRevoga share
GET/api/v1/dashboards/:id/share-filter-candidatesLista filtros candidatos para politicas
GET/api/v1/dashboards/:id/embed-parameter-candidatesLista parametros candidatos para embed

Payload de criacao (POST /api/v1/dashboards/:id/shares)

{
"name": "Clientes externos",
"share_type": "link",
"share_context_id": "65f0f4d7b3f0b902f7f7e123",
"expires_at": "2026-12-31T23:59:59.000Z",
"embed_options": {
"allowed_origins": ["https://portal.cliente.com"],
"hide_header": true,
"hide_controls": false
},
"share_filter_policies": [
{
"filter_slug": "status",
"filter_kind": "multi_select",
"mode": "selectable",
"allowed_values": ["Ativo", "Pendente"]
}
]
}

3) Autenticacao Externa por Email (share-auth)

Publico (sem JWT interno).

MetodoEndpointDescricao
POST/api/v1/share-auth/requestSolicita codigo de login por email
POST/api/v1/share-auth/verifyVerifica codigo e retorna tokens share_access / share_refresh
POST/api/v1/share-auth/refreshRenova tokens externos
POST/api/v1/share-auth/logoutLogout stateless

Request de codigo

{
"company_slug": "acme",
"email": "cliente@empresa.com"
}

Verify de codigo

{
"company_slug": "acme",
"email": "cliente@empresa.com",
"code": "1234-5678"
}

Resposta de verify

{
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"access_token_expires_in": 600,
"refresh_token_expires_in": 604800,
"user": {
"id": "...",
"email": "cliente@empresa.com",
"status": "active"
}
}

4) Portal Externo Autenticado (share-portal)

Exige token externo (share_access) em Authorization: Bearer ....

MetodoEndpointDescricao
GET/api/v1/share-portal/contextsLista contextos acessiveis
GET/api/v1/share-portal/:company_slug/contextsLista contextos com escopo da empresa
GET/api/v1/share-portal/dashboards?context_id=...Lista dashboards por contexto
GET/api/v1/share-portal/:company_slug/dashboardsLista dashboards da empresa (agregado por contextos)
GET/api/v1/share-portal/dashboards/:id?context_id=...Detalha dashboard
GET/api/v1/share-portal/:company_slug/dashboards/:dashboard_slug?context_id=...Detalha dashboard por slug
GET/api/v1/share-portal/dashboards/:id/filters/:filter_slug/options?context_id=...&search=...Resolve opcoes de filtro
GET/api/v1/share-portal/:company_slug/dashboards/:dashboard_slug/filters/:filter_slug/options?context_id=...&search=...Resolve opcoes de filtro por slug
POST/api/v1/share-portal/dashboards/:id/executeExecuta dashboard
POST/api/v1/share-portal/:company_slug/dashboards/:dashboard_slug/executeExecuta dashboard por slug

Execute (POST)

{
"context_id": "65f0f4d7b3f0b902f7f7e123",
"parameters": {
"status": ["Ativo"]
}
}

5) Shares Publicos por Token (/api/v1/public)

Sem autenticacao.

MetodoEndpointDescricao
GET/api/v1/public/shares/:token/resolveResolve token e informa requires_auth
GET/api/v1/public/shares/:token/filters/:filter_slug/options?search=...Resolve opcoes de filtro (select/multi_select)
POST/api/v1/public/shares/:token/executeExecuta share quando requires_auth=false

Execute (POST) body

{
"parameters": {
"periodo_start": "2025-01-01",
"periodo_end": "2025-12-31"
}
}

6) Embed

6.1 Geracao de token/embed URL (JWT interno)

MetodoEndpointDescricao
POST/api/v1/embed/dashboards/:idGera embed de dashboard
POST/api/v1/embed/visualizations/:idGera embed de visualizacao

Body suportado:

{
"fixed_params": { "region": "sul" },
"allowed_params": ["seller_id"],
"required_params": ["region"],
"expires_in": 3600
}

6.2 Consumo publico (stateless)

MetodoEndpointDescricao
GET/api/embed/d/:token/infoMetadados do dashboard
GET/api/embed/d/:token/filters/:filter_slug/options?search=...Opcoes de filtro dinamico no embed
POST/api/embed/d/:token/executeExecuta dashboard
GET/api/embed/v/:token/infoMetadados da visualizacao
POST/api/embed/v/:token/executeExecuta visualizacao

7) Auditoria e Analytics de Compartilhamento

JWT interno.

MetodoEndpointDescricao
GET/api/v1/share-eventsLista eventos de compartilhamento/autenticacao
GET/api/v1/share-events/:idDetalha evento
GET/api/v1/share-analyticsRetorna agregados de analytics

Opcoes Dinamicas para multi_select

Os 3 modos (publico, portal e embed) suportam endpoint de opcoes para filtros select e multi_select.

Resposta:

{
"filter_slug": "status",
"options": [
{ "label": "Ativo", "value": "Ativo" }
],
"source": "dynamic"
}
  • source=static: opcoes estaticas do filtro.
  • source=dynamic: opcoes de consulta SQL do filtro.
  • source=policy: opcoes restringidas por politica do share.

Erros Mais Frequentes

error_codeOnde apareceSignificado
AUTH_REQUIREDpublic/shares/:token/*Share exige login externo
INVALID_CONTEXT_IDshare-portal/*context_id ausente/invalido
FILTER_DISABLED_BY_POLICY*/filters/:filter_slug/optionsFiltro indisponivel pelas regras do share
DB_QUERY_ERROR*/filters/:filter_slug/optionsFalha na SQL de opcoes dinamicas
SHARE_FILTER_POLICY_VIOLATIONshare-portal .../executeParametros violaram politica
TOKEN_INVALIDfluxos publicos/embed/portalToken invalido ou expirado

Guias Relacionados