Crie uma cópia completa de um painel existente, incluindo todos os gráficos, segmentos e permissões
A mutação copyDashboard
cria uma cópia completa de um painel existente, incluindo todos os gráficos, segmentos de gráficos, valores e permissões de usuário. Esta operação realiza uma cópia profunda com novos identificadores únicos para todos os elementos copiados.
Exemplo Básico
Crie uma cópia de um painel com um título personalizado:
mutation CopyDashboard {
copyDashboard(input: {
dashboardId: "dashboard_123"
title: "Q4 Sales Dashboard Copy"
}) {
id
title
createdAt
charts {
id
title
chartType
}
dashboardUsers {
id
role
user {
id
email
}
}
}
}
Exemplo Avançado
Copie um painel sem especificar um título (anexa automaticamente "(Cópia)"):
mutation CopyDashboardAuto {
copyDashboard(input: {
dashboardId: "dashboard_456"
}) {
id
uid
title
createdBy {
id
email
}
company {
id
name
}
charts {
id
title
chartType
position
chartSegments {
id
title
formula
chartValues {
id
value
}
}
}
dashboardUsers {
id
role
user {
id
email
fullName
}
}
createdAt
updatedAt
}
}
Parâmetros de Entrada
CopyDashboardInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
dashboardId |
String! | ✅ Sim | ID do painel a ser copiado |
title |
String | Não | Título personalizado para o painel copiado. Se não fornecido, anexa "(Cópia)" ao título original |
Campos de Resposta
Resposta do Painel
A mutação retorna um objeto completo Dashboard
com todos os dados copiados:
Campo | Tipo | Descrição |
---|---|---|
id |
String! | Identificador único para o novo painel |
uid |
String! | Identificador único usado para roteamento de URL |
title |
String! | Título do painel copiado |
createdBy |
User! | O usuário que realizou a operação de cópia |
company |
Company! | A empresa à qual o painel pertence (mesma que o original) |
project |
Project | Associação do projeto (mesma que o original, se houver) |
charts |
[Chart!]! | Todos os gráficos copiados do painel original |
dashboardUsers |
[DashboardUser!]! | Permissões de usuário copiadas do original (excluindo o usuário que copiou) |
createdAt |
DateTime! | Quando a cópia foi criada |
updatedAt |
DateTime! | Quando a cópia foi modificada pela última vez |
Comportamento de Cópia do Painel
Processo de Cópia Profunda
A operação copyDashboard
realiza uma cópia profunda completa incluindo:
-
Metadados do Painel
- Cria um novo painel com um novo ID e UID
- Copia o título (ou anexa "(Cópia)" se não houver título personalizado)
- Define o criador como o usuário que realiza a cópia
- Mantém associações de empresa e projeto
-
Gráficos e Estrutura
- Copia todos os gráficos com novos IDs e UIDs
- Preserva tipos de gráficos, títulos e posições
- Mantém a configuração e metadados do gráfico
-
Segmentos e Valores do Gráfico
- Copia todos os segmentos de gráficos com novos IDs e UIDs
- Preserva títulos de segmentos, fórmulas e configurações
- Copia todos os valores de gráficos e seus dados
-
Referências de Fórmulas
- Atualiza referências de fórmulas para usar novos UIDs
- Mantém a lógica e cálculos das fórmulas
- Garante que fórmulas copiadas referenciem dados copiados
-
Permissões de Usuário
- Copia todas as permissões de usuário do painel original
- Exclui o usuário que copia (ele se torna o criador)
- Preserva atribuições de função de VISUALIZADOR e EDITOR
Operações Pós-Cópia
Após criar a cópia, o sistema automaticamente:
- Publica eventos de criação de painel para atualizações em tempo real
- Aciona o recálculo de resultados de gráficos para todos os gráficos copiados
- Atualiza quaisquer sistemas ou integrações dependentes
Permissões Necessárias
A cópia de painéis requer permissões específicas:
Função | Pode Copiar Painel |
---|---|
Dashboard Creator | ✅ Sim |
Dashboard EDITOR | ✅ Sim |
Dashboard VIEWER | ❌ Não |
Usuário não painel | ❌ Não |
Verificação de Permissão: O usuário deve ter acesso de EDITOR ao painel original através de:
- Ser o criador original do painel
- Ter uma atribuição de função de EDITOR explícita no painel
Respostas de Erro
Painel Não Encontrado
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Permissões Insuficientes
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Entrada Inválida
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Casos de Uso
1. Painéis de Modelo
Crie painéis de modelo que podem ser copiados para novos projetos ou equipes:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Backup e Versionamento
Crie backups antes de fazer alterações significativas:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Compartilhamento entre Equipes
Copie painéis entre equipes mantendo a estrutura de dados:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Melhores Práticas
Convenções de Nomenclatura
- Use títulos descritivos que indiquem o propósito da cópia
- Inclua nomes de equipes, datas ou números de versão para clareza
- Evite nomes genéricos como "Cópia" ou "Novo Painel"
Gerenciamento de Permissões
- Revise as permissões do painel copiado após a criação
- Adicione ou remova usuários conforme necessário para o caso de uso específico
- Considere se os visualizadores precisam se tornar editores na cópia
Integridade dos Dados
- Verifique se fórmulas e cálculos funcionam corretamente após a cópia
- Verifique se as fontes de dados dos gráficos são apropriadas para o novo contexto
- Teste quaisquer relatórios ou integrações automatizadas
Considerações de Desempenho
- Copiar grandes painéis com muitos gráficos pode levar vários segundos
- O recálculo de gráficos acontece de forma assíncrona após a cópia
- Considere copiar durante horários de menor movimento para painéis muito grandes
- Monitore os recursos do sistema ao copiar vários painéis simultaneamente
Limitações
- Não é possível copiar painéis entre diferentes empresas
- Referências de fórmulas são limitadas a dados dentro da mesma empresa
- Algumas integrações externas podem precisar de reconfiguração
- Permissões ou funções personalizadas podem precisar de ajuste manual
- Dados históricos e análises não são preservados na cópia
Recursos Relacionados
- Visão Geral do Painel - Conceitos gerais de painel
- Renomear Painel - Alterar títulos de painéis
- Usuários do Painel - Gerenciar permissões de painel
- API de Gráficos - Trabalhar com gráficos individuais