Logotipo Hedhog

Receba novidades do Hedhog no seu e-mail

Novos lançamentos, receitas e breaking changes — sem spam.

Voltar para os módulos CoreIntegrado no CoreModule
Captura de tela do módulo dashboard

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

FieldTypeRequiredNotes
slugstringyes
localeRecord<string, { name: string }>yese.g. {"en": {"name": "..."}}

Atualiza uma definição de dashboard existente.

Params
id (int)

Body

FieldTypeRequiredNotes
slugstringno
localeRecord<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)

Lista os usuários que podem receber o compartilhamento do dashboard especificado.

Params
slug (string)
Query
search, page, pageSize

Lista todos os usuários com quem o dashboard especificado está atualmente compartilhado.

Params
slug (string)

Obtém um dashboard pelo seu slug.

Params
slug (string)

Cria um dashboard pessoal para o usuário atual.

Body

FieldTypeRequiredNotes
namestringyes
slugstringyes
iconstringno
templateSlugstringnoSlug of an existing template to clone

Salva o layout do usuário atual para um dashboard.

Params
slug (string)

Body

FieldTypeRequiredNotes
dashboard_idnumberyes
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)

Compartilha um dashboard com um ou mais usuários.

Params
slug (string)

Body

FieldTypeRequiredNotes
userIdsnumber[]yesIDs of users to share with

Adiciona um widget component ao dashboard especificado.

Params
slug (string)

Body

FieldTypeRequiredNotes
componentSlugstringyesSlug of the component to add

Reordena os dashboards do usuário atual.

Body

FieldTypeRequiredNotes
slugsstring[]yesDashboard slugs in desired order

Atualiza o nome ou o ícone de um dashboard pessoal.

Params
slug (string)

Body

FieldTypeRequiredNotes
namestringno
iconstringno

Exclui um dashboard pessoal.

Params
slug (string)

Revoga o acesso compartilhado de um usuário a um dashboard.

Params
slug (string), sharedUserId (int)

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

FieldTypeRequiredNotes
slugstringyes
widthnumberyesDefault widget width (grid units)
heightnumberyesDefault widget height (grid units)
library_slugstringno
min_widthnumberno
max_widthnumberno
min_heightnumberno
max_heightnumberno
is_resizablebooleanno
localeRecord<string, { name: string, description?: string }>yese.g. {"en": {"name": "..."}}

Atualiza um widget component de dashboard.

Params
id (int)

Body

FieldTypeRequiredNotes
slugstringno
widthnumberno
heightnumberno
library_slugstringno
min_widthnumberno
max_widthnumberno
min_heightnumberno
max_heightnumberno
is_resizablebooleanno
localeRecord<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

FieldTypeRequiredNotes
fileFileyesImage 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

FieldTypeRequiredNotes
component_idnumberyes
dashboard_idnumberyes
widthnumberyes
heightnumberyes
x_axisnumberyes
y_axisnumberyes

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

FieldTypeRequiredNotes
dashboard_idnumberyes
role_idnumberyes

Atribui várias roles a um dashboard em uma única requisição.

Body

FieldTypeRequiredNotes
dashboard_idnumberyes
role_idsnumber[]yesArrayNotEmpty

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

FieldTypeRequiredNotes
component_idnumberyes
role_idnumberyes

Atribui várias roles a um componente em uma única requisição.

Body

FieldTypeRequiredNotes
component_idnumberyes
role_idsnumber[]yesArrayNotEmpty

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

FieldTypeRequiredNotes
dashboard_idnumberyes
user_idnumberyes

Atualiza uma associação usuário-dashboard.

Params
id (int)

Body

FieldTypeRequiredNotes
dashboard_idnumberno
user_idnumberno

Exclui associações usuário-dashboard.

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs 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