Créez une copie complète d'un tableau de bord existant, y compris tous les graphiques, segments et autorisations
La mutation copyDashboard
crée une copie complète d'un tableau de bord existant, y compris tous les graphiques, segments de graphiques, valeurs et autorisations des utilisateurs. Cette opération effectue une copie complète avec de nouveaux identifiants uniques pour tous les éléments copiés.
Exemple de base
Créez une copie d'un tableau de bord avec un titre personnalisé :
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
}
}
}
}
Exemple avancé
Copiez un tableau de bord sans spécifier de titre (ajoute automatiquement "(Copie)") :
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
}
}
Paramètres d'entrée
CopyDashboardInput
Paramètre | Type | Requis | Description |
---|---|---|---|
dashboardId |
String! | ✅ Oui | ID du tableau de bord à copier |
title |
String | Non | Titre personnalisé pour le tableau de bord copié. S'il n'est pas fourni, "(Copie)" est ajouté au titre original |
Champs de réponse
Réponse du tableau de bord
La mutation retourne un objet complet Dashboard
avec toutes les données copiées :
Champ | Type | Description |
---|---|---|
id |
String! | Identifiant unique pour le nouveau tableau de bord |
uid |
String! | Identifiant unique utilisé pour le routage URL |
title |
String! | Titre du tableau de bord copié |
createdBy |
User! | L'utilisateur qui a effectué l'opération de copie |
company |
Company! | L'entreprise à laquelle appartient le tableau de bord (identique à l'original) |
project |
Project | Association de projet (identique à l'original, le cas échéant) |
charts |
[Chart!]! | Tous les graphiques copiés depuis le tableau de bord original |
dashboardUsers |
[DashboardUser!]! | Autorisations utilisateur copiées de l'original (excluant l'utilisateur copieur) |
createdAt |
DateTime! | Date de création de la copie |
updatedAt |
DateTime! | Date de dernière modification de la copie |
Comportement de copie du tableau de bord
Processus de copie complète
L'opération copyDashboard
effectue une copie complète incluant :
-
Métadonnées du tableau de bord
- Crée un nouveau tableau de bord avec un nouvel ID et UID
- Copie le titre (ou ajoute "(Copie)" si aucun titre personnalisé)
- Définit le créateur comme l'utilisateur effectuant la copie
- Maintient les associations d'entreprise et de projet
-
Graphiques et structure
- Copie tous les graphiques avec de nouveaux IDs et UIDs
- Préserve les types de graphiques, titres et positions
- Maintient la configuration et les métadonnées des graphiques
-
Segments de graphiques et valeurs
- Copie tous les segments de graphiques avec de nouveaux IDs et UIDs
- Préserve les titres de segments, formules et configurations
- Copie toutes les valeurs de graphiques et leurs données
-
Références de formules
- Met à jour les références de formules pour utiliser de nouveaux UIDs
- Maintient la logique et les calculs des formules
- S'assure que les formules copiées font référence aux données copiées
-
Autorisations utilisateur
- Copie toutes les autorisations des utilisateurs du tableau de bord original
- Exclut l'utilisateur copieur (il devient le créateur)
- Préserve les affectations de rôle de CONSULTANT et ÉDITEUR
Opérations post-copie
Après la création de la copie, le système effectue automatiquement :
- Publie des événements de création de tableau de bord pour des mises à jour en temps réel
- Déclenche le recalcul des résultats des graphiques pour tous les graphiques copiés
- Met à jour tous les systèmes ou intégrations dépendants
Autorisations requises
La copie de tableau de bord nécessite des autorisations spécifiques :
Rôle | Peut copier le tableau de bord |
---|---|
Dashboard Creator | ✅ Oui |
Dashboard EDITOR | ✅ Oui |
Dashboard VIEWER | ❌ Non |
Utilisateur non tableau de bord | ❌ Non |
Vérification des autorisations : L'utilisateur doit avoir un accès ÉDITEUR au tableau de bord original par l'une des méthodes suivantes :
- Être le créateur du tableau de bord original
- Avoir une affectation de rôle ÉDITEUR explicite sur le tableau de bord
Réponses d'erreur
Tableau de bord non trouvé
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Autorisations insuffisantes
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Entrée invalide
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Cas d'utilisation
1. Tableaux de bord modèles
Créez des tableaux de bord modèles qui peuvent être copiés pour de nouveaux projets ou équipes :
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Sauvegarde et versionnage
Créez des sauvegardes avant d'apporter des modifications significatives :
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Partage inter-équipes
Copiez des tableaux de bord entre équipes tout en maintenant la structure des données :
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Meilleures pratiques
Conventions de nommage
- Utilisez des titres descriptifs qui indiquent l'objectif de la copie
- Incluez des noms d'équipe, des dates ou des numéros de version pour plus de clarté
- Évitez les noms génériques comme "Copie" ou "Nouveau tableau de bord"
Gestion des autorisations
- Examinez les autorisations du tableau de bord copié après sa création
- Ajoutez ou retirez des utilisateurs selon les besoins pour le cas d'utilisation spécifique
- Considérez si les visionneurs doivent devenir éditeurs sur la copie
Intégrité des données
- Vérifiez que les formules et calculs fonctionnent correctement après la copie
- Assurez-vous que les sources de données des graphiques sont appropriées pour le nouveau contexte
- Testez tous les rapports automatisés ou intégrations
Considérations de performance
- Copier de grands tableaux de bord avec de nombreux graphiques peut prendre plusieurs secondes
- Le recalcul des graphiques se produit de manière asynchrone après la copie
- Envisagez de copier pendant les heures creuses pour les très grands tableaux de bord
- Surveillez les ressources système lors de la copie de plusieurs tableaux de bord simultanément
Limitations
- Impossible de copier des tableaux de bord entre différentes entreprises
- Les références de formules sont limitées aux données au sein de la même entreprise
- Certaines intégrations externes peuvent nécessiter une reconfiguration
- Les autorisations ou rôles personnalisés peuvent nécessiter un ajustement manuel
- Les données historiques et les analyses ne sont pas préservées dans la copie
Ressources connexes
- Aperçu du tableau de bord - Concepts généraux des tableaux de bord
- Renommer le tableau de bord - Modifier les titres des tableaux de bord
- Utilisateurs du tableau de bord - Gérer les autorisations des tableaux de bord
- API des graphiques - Travailler avec des graphiques individuels