적절한 정리 및 연쇄 효과와 함께 프로젝트에서 사용자 정의 필드를 제거합니다.
사용자 정의 필드 삭제
프로젝트에서 사용자 정의 필드를 영구적으로 제거하고 모든 관련 데이터, 값 및 구성을 함께 삭제합니다. 이 작업은 실행 취소할 수 없으며 이 필드를 사용하는 모든 기록에 영향을 미칩니다.
기본 예제
mutation DeleteCustomField {
deleteCustomField(id: "field_abc123")
}
고급 예제
mutation DeleteCustomFieldWithResponse {
deleteCustomField(id: "field_abc123")
}
입력 매개변수
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
String! | ✅ 예 | 삭제할 사용자 정의 필드의 고유 식별자 |
응답 필드
필드 | 유형 | 설명 |
---|---|---|
deleteCustomField |
Boolean! | 삭제가 성공하면 항상 true 를 반환합니다. |
필요한 권한
프로젝트 소유자와 관리자만 사용자 정의 필드를 삭제할 수 있습니다.
역할 | 사용자 정의 필드 삭제 가능 |
---|---|
OWNER |
✅ 예 |
ADMIN |
✅ 예 |
MEMBER |
❌ 아니오 |
CLIENT |
❌ 아니오 |
연쇄 효과
사용자 정의 필드가 삭제되면 다음 정리 작업이 자동으로 발생합니다:
데이터 정리
- 사용자 정의 필드 값 - 이 필드의 모든 값이 모든 기록에서 제거됩니다.
- 필드 옵션 - 모든 드롭다운 옵션 및 구성이 삭제됩니다.
- 활동 기록 - 이 필드와 관련된 모든 활동 기록이 제거됩니다.
- 조회 구성 - 모든 조회 필드 참조가 정리됩니다.
버튼 필드에 대한 특별 처리
삭제된 필드가 BUTTON
유형인 경우 추가 정리가 발생합니다:
- 자동화 - 이 버튼에 의해 트리거된 모든 자동화가 삭제됩니다.
- 자동화 기록 - 관련 자동화 활동이 제거됩니다.
실시간 업데이트
- 차트 - 프로젝트 차트가 변경 사항을 반영하도록 업데이트됩니다.
- 수식 - 프로젝트의 모든 수식 필드가 재계산됩니다.
- 시간 추적 - 시간 지속 계산이 업데이트됩니다.
- 구독 - 연결된 클라이언트에 실시간 알림이 전송됩니다.
- 웹후크 - 삭제 이벤트와 함께 통합 웹후크가 트리거됩니다.
오류 응답
사용자 정의 필드를 찾을 수 없음
{
"errors": [{
"message": "Custom field was not found.",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
권한 부족
{
"errors": [{
"message": "You don't have permission to perform this action",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
중요 사항
영구 삭제
- 실행 취소 없음 - 삭제된 사용자 정의 필드는 복구할 수 없습니다.
- 데이터 손실 - 모든 기록의 모든 필드 값이 영구적으로 제거됩니다.
- 즉각적인 효과 - 변경 사항이 모든 프로젝트 사용자에게 즉시 적용됩니다.
성능 고려 사항
- 대규모 프로젝트 - 많은 기록이 있는 프로젝트에서 삭제가 더 오래 걸릴 수 있습니다.
- 수식 재계산 - 복잡한 수식이 있는 프로젝트는 잠시 처리 지연이 발생할 수 있습니다.
- 차트 업데이트 - 대시보드 차트가 변경 사항을 반영하도록 새로 고쳐집니다.
모범 사례
- 데이터 백업 - 삭제 전에 중요한 필드 값을 내보내기
- 변경 사항 알림 - 필드를 삭제하기 전에 팀원에게 알리기
- 종속성 확인 - 자동화나 수식이 필드에 의존하지 않는지 확인
- 보고서 검토 - 삭제된 필드를 참조하는 보고서를 업데이트
관련 작업
- 사용자 정의 필드 목록을 사용하여 필드 ID 찾기
- 유사한 필드를 재생성하기 위해 사용자 정의 필드 생성 고려
- 데이터 영향을 이해하기 위해 사용자 정의 필드 값 검토
일반 사용 사례
사용하지 않는 필드 제거
# First, list fields to identify unused ones
query ListCustomFields {
customFields(projectId: "project_123") {
id
name
type
createdAt
# Check usage in records
}
}
# Then delete the unused field
mutation DeleteUnusedField {
deleteCustomField(id: "field_to_remove")
}
테스트 필드 정리
# Remove fields created during testing
mutation CleanupTestFields {
field1: deleteCustomField(id: "test_field_1")
field2: deleteCustomField(id: "test_field_2")
field3: deleteCustomField(id: "test_field_3")
}
프로젝트 필드 재구성
# When reorganizing field structure
mutation RestructureFields {
# Delete old fields
deleteOldPriorityField: deleteCustomField(id: "old_priority_field")
deleteOldStatusField: deleteCustomField(id: "old_status_field")
# Note: Create new fields in separate mutations
}
웹후크 이벤트
사용자 정의 필드가 삭제되면 다음 웹후크 이벤트가 트리거됩니다:
{
"event": "CUSTOM_FIELD_DELETED",
"projectId": "project_123",
"timestamp": "2024-01-15T10:30:00Z",
"previousValue": {
"id": "field_abc123",
"name": "Priority Level",
"type": "SELECT_SINGLE",
"projectId": "project_123"
},
"currentValue": null
}