Crear una copia completa de un tablero existente, incluyendo todos los gráficos, segmentos y permisos
La copyDashboard
mutación crea una copia completa de un tablero existente, incluyendo todos los gráficos, segmentos de gráficos, valores y permisos de usuario. Esta operación realiza una copia profunda con nuevos identificadores únicos para todos los elementos copiados.
Ejemplo Básico
Crea una copia de un tablero con un 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
}
}
}
}
Ejemplo Avanzado
Copia un tablero sin especificar un título (se añade automáticamente "(Copia)"):
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 | Requerido | Descripción |
---|---|---|---|
dashboardId |
String! | ✅ Sí | ID del tablero a copiar |
title |
String | No | Título personalizado para el tablero copiado. Si no se proporciona, se añade "(Copia)" al título original |
Campos de Respuesta
Respuesta del Tablero
La mutación devuelve un objeto completo Dashboard
con todos los datos copiados:
Campo | Tipo | Descripción |
---|---|---|
id |
String! | Identificador único para el nuevo tablero |
uid |
String! | Identificador único utilizado para el enrutamiento de URL |
title |
String! | Título del tablero copiado |
createdBy |
User! | El usuario que realizó la operación de copia |
company |
Company! | La empresa a la que pertenece el tablero (igual que el original) |
project |
Project | Asociación de proyecto (igual que el original, si existe) |
charts |
[Chart!]! | Todos los gráficos copiados del tablero original |
dashboardUsers |
[DashboardUser!]! | Permisos de usuario copiados del original (excluyendo al usuario que copia) |
createdAt |
DateTime! | Cuándo se creó la copia |
updatedAt |
DateTime! | Cuándo se modificó por última vez la copia |
Comportamiento de Copiado de Tableros
Proceso de Copia Profunda
La copyDashboard
operación realiza una copia profunda completa que incluye:
-
Metadatos del Tablero
- Crea un nuevo tablero con un nuevo ID y UID
- Copia el título (o añade "(Copia)" si no hay título personalizado)
- Establece el creador como el usuario que realiza la copia
- Mantiene las asociaciones de empresa y proyecto
-
Gráficos y Estructura
- Copia todos los gráficos con nuevos IDs y UIDs
- Preserva los tipos de gráficos, títulos y posiciones
- Mantiene la configuración y metadatos del gráfico
-
Segmentos de Gráficos y Valores
- Copia todos los segmentos de gráficos con nuevos IDs y UIDs
- Preserva los títulos de los segmentos, fórmulas y configuraciones
- Copia todos los valores de los gráficos y sus datos
-
Referencias de Fórmulas
- Actualiza las referencias de fórmulas para usar nuevos UIDs
- Mantiene la lógica y cálculos de las fórmulas
- Asegura que las fórmulas copiadas hagan referencia a los datos copiados
-
Permisos de Usuario
- Copia todos los permisos de usuario del tablero original
- Excluye al usuario que copia (se convierte en el creador)
- Preserva las asignaciones de roles de VISUALIZADOR y EDITOR
Operaciones Posteriores a la Copia
Después de crear la copia, el sistema automáticamente:
- Publica eventos de creación de tableros para actualizaciones en tiempo real
- Dispara el recálculo de resultados de gráficos para todos los gráficos copiados
- Actualiza cualquier sistema o integración dependiente
Permisos Requeridos
La copia de tableros requiere permisos específicos:
Rol | Puede Copiar Tablero |
---|---|
Dashboard Creator | ✅ Sí |
Dashboard EDITOR | ✅ Sí |
Dashboard VIEWER | ❌ No |
Usuario no tablero | ❌ No |
Verificación de Permisos: El usuario debe tener acceso de EDITOR al tablero original a través de:
- Ser el creador del tablero original
- Tener una asignación de rol de EDITOR explícita en el tablero
Respuestas de Error
Tablero No Encontrado
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Permisos 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. Tableros de Plantilla
Crea tableros de plantilla que se puedan copiar para nuevos proyectos o equipos:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Copias de Seguridad y Versionado
Crea copias de seguridad antes de realizar cambios significativos:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Compartición entre Equipos
Copia tableros entre equipos mientras mantienes la estructura de datos:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Mejores Prácticas
Convenciones de Nomenclatura
- Usa títulos descriptivos que indiquen el propósito de la copia
- Incluye nombres de equipos, fechas o números de versión para mayor claridad
- Evita nombres genéricos como "Copia" o "Nuevo Tablero"
Gestión de Permisos
- Revisa los permisos del tablero copiado después de la creación
- Agrega o elimina usuarios según sea necesario para el caso de uso específico
- Considera si los visualizadores necesitan convertirse en editores en la copia
Integridad de Datos
- Verifica que las fórmulas y cálculos funcionen correctamente después de la copia
- Comprueba que las fuentes de datos de los gráficos sean apropiadas para el nuevo contexto
- Prueba cualquier informe o integración automatizada
Consideraciones de Rendimiento
- Copiar tableros grandes con muchos gráficos puede tardar varios segundos
- El recálculo de gráficos ocurre de manera asíncrona después de la copia
- Considera copiar durante horas de menor actividad para tableros muy grandes
- Monitorea los recursos del sistema al copiar múltiples tableros simultáneamente
Limitaciones
- No se pueden copiar tableros entre diferentes empresas
- Las referencias de fórmulas están limitadas a datos dentro de la misma empresa
- Algunas integraciones externas pueden necesitar reconfiguración
- Los permisos o roles personalizados pueden necesitar ajustes manuales
- Los datos históricos y análisis no se preservan en la copia
Recursos Relacionados
- Descripción General del Tablero - Conceptos generales de tableros
- Renombrar Tablero - Cambiar títulos de tableros
- Usuarios del Tablero - Gestionar permisos de tableros
- API de Gráficos - Trabajar con gráficos individuales