すべてのチャート、セグメント、および権限を含む既存のダッシュボードの完全なコピーを作成します
copyDashboard
ミューテーションは、すべてのチャート、チャートセグメント、値、およびユーザー権限を含む既存のダッシュボードの完全なコピーを作成します。この操作は、すべてのコピーされた要素に新しい一意の識別子を持つ深いコピーを実行します。
基本的な例
カスタムタイトルでダッシュボードのコピーを作成します:
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
}
}
}
}
高度な例
タイトルを指定せずにダッシュボードをコピーします(自動的に「(Copy)」を追加):
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
}
}
入力パラメータ
CopyDashboardInput
パラメータ | 型 | 必須 | 説明 |
---|---|---|---|
dashboardId |
String! | ✅ はい | コピーするダッシュボードのID |
title |
String | いいえ | コピーされたダッシュボードのカスタムタイトル。提供されない場合は、元のタイトルに「(Copy)」を追加します |
レスポンスフィールド
ダッシュボードレスポンス
ミューテーションは、すべてのコピーされたデータを含む完全な Dashboard
オブジェクトを返します:
フィールド | 型 | 説明 |
---|---|---|
id |
String! | 新しいダッシュボードの一意の識別子 |
uid |
String! | URLルーティングに使用される一意の識別子 |
title |
String! | コピーされたダッシュボードのタイトル |
createdBy |
User! | コピー操作を実行したユーザー |
company |
Company! | ダッシュボードが属する会社(元と同じ) |
project |
Project | プロジェクトの関連付け(元と同じ、あれば) |
charts |
[Chart!]! | 元のダッシュボードからコピーされたすべてのチャート |
dashboardUsers |
[DashboardUser!]! | 元からコピーされたユーザー権限(コピーしたユーザーを除く) |
createdAt |
DateTime! | コピーが作成された日時 |
updatedAt |
DateTime! | コピーが最後に修正された日時 |
ダッシュボードコピーの動作
深いコピーのプロセス
copyDashboard
操作は、次の内容を含む完全な深いコピーを実行します:
-
ダッシュボードメタデータ
- 新しいIDとUIDを持つ新しいダッシュボードを作成
- タイトルをコピー(カスタムタイトルがない場合は「(Copy)」を追加)
- コピーを実行したユーザーを作成者として設定
- 会社とプロジェクトの関連付けを維持
-
チャートと構造
- 新しいIDとUIDを持つすべてのチャートをコピー
- チャートの種類、タイトル、および位置を保持
- チャートの設定とメタデータを維持
-
チャートセグメントと値
- 新しいIDとUIDを持つすべてのチャートセグメントをコピー
- セグメントのタイトル、数式、および設定を保持
- すべてのチャート値とそのデータをコピー
-
数式参照
- 数式参照を新しいUIDを使用するように更新
- 数式のロジックと計算を維持
- コピーされた数式がコピーされたデータを参照することを保証
-
ユーザー権限
- 元からすべてのダッシュボードユーザー権限をコピー
- コピーしたユーザーを除外(彼らが作成者になる)
- VIEWERおよびEDITORの役割の割り当てを維持
コピー後の操作
コピーを作成した後、システムは自動的に:
- リアルタイム更新のためにダッシュボード作成イベントを公開
- すべてのコピーされたチャートの結果再計算をトリガー
- 依存するシステムや統合を更新
必要な権限
ダッシュボードのコピーには特定の権限が必要です:
役割 | ダッシュボードをコピーできる |
---|---|
Dashboard Creator | ✅ はい |
Dashboard EDITOR | ✅ はい |
Dashboard VIEWER | ❌ いいえ |
非ダッシュボードユーザー | ❌ いいえ |
権限チェック: ユーザーは、次のいずれかを通じて元のダッシュボードに対してEDITORアクセスを持っている必要があります:
- 元のダッシュボードの作成者であること
- ダッシュボードに対する明示的なEDITOR役割の割り当てを持っていること
エラー応答
ダッシュボードが見つかりません
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
権限不足
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
無効な入力
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
ユースケース
1. テンプレートダッシュボード
新しいプロジェクトやチームのためにコピーできるテンプレートダッシュボードを作成します:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. バックアップとバージョニング
重要な変更を行う前にバックアップを作成します:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. チーム間の共有
データ構造を維持しながらチーム間でダッシュボードをコピーします:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
ベストプラクティス
命名規則
- コピーの目的を示す説明的なタイトルを使用します
- 明確さのためにチーム名、日付、またはバージョン番号を含めます
- 「Copy」や「New Dashboard」などの一般的な名前は避けます
権限管理
- 作成後にコピーされたダッシュボードの権限を確認します
- 特定のユースケースに応じてユーザーを追加または削除します
- ビューアがコピーの編集者になる必要があるかどうかを検討します
データの整合性
- コピー後に数式と計算が正しく機能することを確認します
- チャートのデータソースが新しいコンテキストに適していることを確認します
- 自動化されたレポートや統合をテストします
パフォーマンスの考慮事項
- 多くのチャートを持つ大規模なダッシュボードのコピーには数秒かかる場合があります
- チャートの再計算はコピー後に非同期で行われます
- 非常に大きなダッシュボードのコピーは、オフピーク時間に行うことを検討してください
- 複数のダッシュボードを同時にコピーする際は、システムリソースを監視します
制限事項
- 異なる会社間でダッシュボードをコピーすることはできません
- 数式参照は同じ会社内のデータに制限されています
- 一部の外部統合は再構成が必要な場合があります
- カスタム権限や役割は手動で調整する必要がある場合があります
- 履歴データや分析はコピーに保持されません
関連リソース
- ダッシュボードの概要 - 一般的なダッシュボードの概念
- ダッシュボードの名前変更 - ダッシュボードのタイトルを変更します
- ダッシュボードユーザー - ダッシュボードの権限を管理します
- チャートAPI - 個々のチャートを操作します