모든 차트, 세그먼트 및 권한을 포함하여 기존 대시보드의 완전한 복사본을 생성합니다.
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 - 개별 차트 작업