Crea una copia completa di un dashboard esistente, inclusi tutti i grafici, segmenti e permessi
La mutazione copyDashboard
crea una copia completa di un dashboard esistente, inclusi tutti i grafici, segmenti dei grafici, valori e permessi degli utenti. Questa operazione esegue una copia profonda con nuovi identificatori unici per tutti gli elementi copiati.
Esempio di Base
Crea una copia di un dashboard con un titolo personalizzato:
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
}
}
}
}
Esempio Avanzato
Copia un dashboard senza specificare un titolo (aggiunge automaticamente "(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
}
}
Parametri di Input
CopyDashboardInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
dashboardId |
String! | ✅ Sì | ID del dashboard da copiare |
title |
String | No | Titolo personalizzato per il dashboard copiato. Se non fornito, aggiunge "(Copia)" al titolo originale |
Campi di Risposta
Risposta del Dashboard
La mutazione restituisce un oggetto Dashboard
completo con tutti i dati copiati:
Campo | Tipo | Descrizione |
---|---|---|
id |
String! | Identificatore unico per il nuovo dashboard |
uid |
String! | Identificatore unico utilizzato per il routing URL |
title |
String! | Titolo del dashboard copiato |
createdBy |
User! | L'utente che ha eseguito l'operazione di copia |
company |
Company! | L'azienda a cui appartiene il dashboard (stesso dell'originale) |
project |
Project | Associazione al progetto (stesso dell'originale, se presente) |
charts |
[Chart!]! | Tutti i grafici copiati dal dashboard originale |
dashboardUsers |
[DashboardUser!]! | Permessi utente copiati dall'originale (escludendo l'utente che copia) |
createdAt |
DateTime! | Quando è stata creata la copia |
updatedAt |
DateTime! | Quando è stata modificata l'ultima volta la copia |
Comportamento di Copia del Dashboard
Processo di Copia Profonda
L'operazione copyDashboard
esegue una copia profonda completa, inclusi:
-
Metadati del Dashboard
- Crea un nuovo dashboard con un nuovo ID e UID
- Copia il titolo (o aggiunge "(Copia)" se non c'è un titolo personalizzato)
- Imposta il creatore sull'utente che esegue la copia
- Mantiene le associazioni aziendali e di progetto
-
Grafici e Struttura
- Copia tutti i grafici con nuovi ID e UID
- Preserva i tipi di grafico, titoli e posizioni
- Mantiene la configurazione e i metadati del grafico
-
Segmenti e Valori dei Grafici
- Copia tutti i segmenti dei grafici con nuovi ID e UID
- Preserva i titoli dei segmenti, formule e configurazioni
- Copia tutti i valori dei grafici e i loro dati
-
Riferimenti alle Formule
- Aggiorna i riferimenti alle formule per utilizzare nuovi UID
- Mantiene la logica e i calcoli delle formule
- Garantisce che le formule copiate facciano riferimento ai dati copiati
-
Permessi Utente
- Copia tutti i permessi utente del dashboard dall'originale
- Esclude l'utente che copia (diventa il creatore)
- Preserva le assegnazioni di ruolo VIEWER e EDITOR
Operazioni Post-Copia
Dopo aver creato la copia, il sistema automaticamente:
- Pubblica eventi di creazione del dashboard per aggiornamenti in tempo reale
- Attiva il ricalcolo dei risultati dei grafici per tutti i grafici copiati
- Aggiorna eventuali sistemi o integrazioni dipendenti
Permessi Richiesti
La copia del dashboard richiede permessi specifici:
Ruolo | Può Copiare il Dashboard |
---|---|
Dashboard Creator | ✅ Sì |
Dashboard EDITOR | ✅ Sì |
Dashboard VIEWER | ❌ No |
Utente non-dashboard | ❌ No |
Controllo dei Permessi: L'utente deve avere accesso EDITOR al dashboard originale attraverso:
- Essere il creatore originale del dashboard
- Avere un'assegnazione di ruolo EDITOR esplicita sul dashboard
Risposte di Errore
Dashboard Non Trovato
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Permessi Insufficienti
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Input Non Valido
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Casi d'Uso
1. Dashboard Template
Crea dashboard template che possono essere copiati per nuovi progetti o team:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Backup e Versioning
Crea backup prima di apportare modifiche significative:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Condivisione tra Team
Copia dashboard tra team mantenendo la struttura dei dati:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Migliori Pratiche
Convenzioni di Nominazione
- Usa titoli descrittivi che indicano lo scopo della copia
- Includi nomi dei team, date o numeri di versione per chiarezza
- Evita nomi generici come "Copia" o "Nuovo Dashboard"
Gestione dei Permessi
- Rivedi i permessi del dashboard copiato dopo la creazione
- Aggiungi o rimuovi utenti secondo necessità per il caso d'uso specifico
- Considera se i visualizzatori devono diventare editor sulla copia
Integrità dei Dati
- Verifica che formule e calcoli funzionino correttamente dopo la copia
- Controlla che le fonti dati dei grafici siano appropriate per il nuovo contesto
- Testa eventuali report o integrazioni automatizzate
Considerazioni sulle Prestazioni
- Copiare grandi dashboard con molti grafici può richiedere diversi secondi
- Il ricalcolo dei grafici avviene in modo asincrono dopo la copia
- Considera di copiare durante le ore non di punta per dashboard molto grandi
- Monitora le risorse di sistema quando copi più dashboard contemporaneamente
Limitazioni
- Non è possibile copiare dashboard tra aziende diverse
- I riferimenti alle formule sono limitati ai dati all'interno della stessa azienda
- Alcune integrazioni esterne potrebbero necessitare di riconfigurazione
- Permessi o ruoli personalizzati potrebbero necessitare di regolazioni manuali
- I dati storici e le analisi non vengono preservati nella copia
Risorse Correlate
- Panoramica del Dashboard - Concetti generali del dashboard
- Rinomina Dashboard - Cambia i titoli dei dashboard
- Utenti del Dashboard - Gestisci i permessi del dashboard
- API Grafici - Lavora con grafici individuali