Receba novidades do Hedhog no seu e-mail
Novos lançamentos, receitas e breaking changes — sem spam.

Submódulo Core
dashboard
Gerencia definições de dashboards, itens, templates, compartilhamento e vínculo de roles.
Caminho de origem: libraries/core/src/dashboard
Arquivo do módulo: dashboard.module.ts
Introdução
O submódulo Dashboard alimenta um motor de dashboards flexível e multiusuário, no qual cada dashboard é composto por widget components posicionados e redimensionados de forma independente, organizados em um grid configurável. Dashboards são contêineres nomeados identificados por um slug; widget components são definições de componentes de UI registradas que declaram tamanhos de grid padrão, mínimo e máximo, além de um escopo de biblioteca opcional e uma captura de tela de pré-visualização.
As instâncias de widget vinculam um componente a um dashboard com uma posição explícita (x_axis, y_axis) e tamanho (width, height), permitindo que o mesmo tipo de componente apareça em vários dashboards com tamanhos e posições diferentes. As alterações de layout feitas por um usuário via drag-and-drop são persistidas por POST /dashboard-core/layout/:slug, que recebe o conjunto completo de itens posicionados e sobrescreve o arranjo anterior — o servidor é sempre a fonte da verdade para o estado do grid.
Cada usuário pode manter dashboards pessoais e designar um deles como seu dashboard inicial. Os dashboards podem ser compartilhados com usuários específicos, dando aos colaboradores acesso de visualização sem conceder acesso de administrador à configuração subjacente. O acesso compartilhado pode ser revogado por usuário a qualquer momento. Os templates de dashboard oferecem layouts iniciais pré-configurados que os usuários podem clonar ao criar um novo dashboard, reduzindo a barreira de onboarding.
Tanto os dashboards quanto os widget components individuais suportam vínculos de role. Quando uma role é atribuída a um dashboard ou componente, apenas os usuários que possuem essa role podem vê-lo. Isso viabiliza superfícies de dashboard específicas por tenant ou controladas por feature flag dentro da mesma implantação, sem manter instalações separadas.
O dashboard de visão geral é alimentado por três endpoints de estatísticas dedicados: estatísticas de usuários (contas ativas, cadastros recentes), estatísticas de e-mail (volume enviado, taxas de erro, taxas de leitura) e estatísticas de sistema (uptime, uso de memória, versão do Node.js). Cada endpoint de estatísticas é protegido por role separadamente, de modo que os operadores possam expor apenas as métricas relevantes para cada role.
Endpoints HTTP
53 endpoints
Lista todas as definições de dashboard com paginação.
- Query
- page, pageSize, search
Obtém uma definição de dashboard pelo ID.
- Params
- id (int)
Cria uma nova definição de dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| locale | Record<string, { name: string }> | yes | e.g. {"en": {"name": "..."}} |
Atualiza uma definição de dashboard existente.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| slug | string | no | — |
| locale | Record<string, { name: string }> | no | — |
Exclui uma definição de dashboard.
- Params
- id (int)
Obtém o dashboard inicial do usuário atual.
Lista todos os dashboards acessíveis ao usuário atual.
Lista os templates de dashboard disponíveis para a criação de novos dashboards.
Verifica se o usuário atual tem acesso a um dashboard pelo slug.
- Params
- slug (string)
Retorna as estatísticas relacionadas a usuários para o dashboard de visão geral.
Retorna as estatísticas relacionadas a e-mail para o dashboard de visão geral.
Retorna as estatísticas em nível de sistema para o dashboard de visão geral.
Retorna os dados de configuração usados pelo dashboard de visão geral.
Retorna os dados de widget pertencentes ao usuário atual.
Obtém o layout salvo do usuário atual em um dashboard específico.
- Params
- slug (string)
Obtém um dashboard pelo seu slug.
- Params
- slug (string)
Cria um dashboard pessoal para o usuário atual.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| slug | string | yes | — |
| icon | string | no | — |
| templateSlug | string | no | Slug of an existing template to clone |
Salva o layout do usuário atual para um dashboard.
- Params
- slug (string)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| dashboard_id | number | yes | — |
| items | { id: number, width: number, height: number, x_axis: number, y_axis: number }[] | yes | — |
Define o dashboard especificado como o dashboard inicial do usuário atual.
- Params
- slug (string)
Adiciona um widget component ao dashboard especificado.
- Params
- slug (string)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| componentSlug | string | yes | Slug of the component to add |
Reordena os dashboards do usuário atual.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| slugs | string[] | yes | Dashboard slugs in desired order |
Atualiza o nome ou o ícone de um dashboard pessoal.
- Params
- slug (string)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| icon | string | no | — |
Exclui um dashboard pessoal.
- Params
- slug (string)
Remove um widget do dashboard especificado.
- Params
- slug (string), widgetId (int)
Lista todos os widget components de dashboard registrados.
- Query
- page, pageSize, search
Lista os widget components acessíveis ao usuário atual, opcionalmente filtrados por biblioteca.
- Query
- page, pageSize, librarySlug?, exclude?
Obtém um dashboard component pelo ID.
- Params
- id (int)
Registra um novo widget component de dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| width | number | yes | Default widget width (grid units) |
| height | number | yes | Default widget height (grid units) |
| library_slug | string | no | — |
| min_width | number | no | — |
| max_width | number | no | — |
| min_height | number | no | — |
| max_height | number | no | — |
| is_resizable | boolean | no | — |
| locale | Record<string, { name: string, description?: string }> | yes | e.g. {"en": {"name": "..."}} |
Atualiza um widget component de dashboard.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| slug | string | no | — |
| width | number | no | — |
| height | number | no | — |
| library_slug | string | no | — |
| min_width | number | no | — |
| max_width | number | no | — |
| min_height | number | no | — |
| max_height | number | no | — |
| is_resizable | boolean | no | — |
| locale | Record<string, { name: string, description?: string }> | no | — |
Faz upload de uma captura de tela de pré-visualização para um dashboard component.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| file | File | yes | Image file, multipart/form-data |
Exclui um widget component de dashboard.
- Params
- id (int)
Lista as instâncias de widget pertencentes a um dashboard.
- Query
- dashboardId (int), page, pageSize
Adiciona uma instância de widget a um dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| component_id | number | yes | — |
| dashboard_id | number | yes | — |
| width | number | yes | — |
| height | number | yes | — |
| x_axis | number | yes | — |
| y_axis | number | yes | — |
Remove uma instância de widget de um dashboard.
- Params
- id (int)
Lista as atribuições de role de um dashboard.
- Query
- dashboardId (int), page, pageSize
Atribui uma role a um dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| dashboard_id | number | yes | — |
| role_id | number | yes | — |
Atribui várias roles a um dashboard em uma única requisição.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| dashboard_id | number | yes | — |
| role_ids | number[] | yes | ArrayNotEmpty |
Remove uma atribuição de role pelo ID do registro.
- Params
- id (int)
Remove uma role específica de um dashboard específico.
- Params
- dashboardId (int), roleId (int)
Lista as atribuições de role de um dashboard component.
- Query
- componentId (int), page, pageSize
Atribui uma role a um dashboard component.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| component_id | number | yes | — |
| role_id | number | yes | — |
Atribui várias roles a um componente em uma única requisição.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| component_id | number | yes | — |
| role_ids | number[] | yes | ArrayNotEmpty |
Remove uma atribuição de role de componente pelo ID do registro.
- Params
- id (int)
Remove uma role específica de um componente específico.
- Params
- componentId (int), roleId (int)
Lista as associações usuário-dashboard.
- Query
- page, pageSize, search
Obtém uma associação usuário-dashboard pelo ID.
- Params
- id (int)
Cria uma associação usuário-dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| dashboard_id | number | yes | — |
| user_id | number | yes | — |
Atualiza uma associação usuário-dashboard.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| dashboard_id | number | no | — |
| user_id | number | no | — |
Exclui associações usuário-dashboard.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Ferramentas MCP
Ferramentas nomeadas que podem ser chamadas por modelos de IA através do Model Context Protocol (MCP).
core.dashboard.*Operações completas de CRUD e compartilhamento para definições de dashboard
core.dashboard-items.*Operações completas de CRUD para itens de widget de dashboard