스키마 설정
스키마 설정「민감한」 데이터 필드 쿼리하기

「민감한」 데이터 필드 쿼리하기

GraphQL 스키마는 공개 API에서 개인 정보가 노출되지 않도록 공개 필드와 비공개 필드 사이의 균형을 유지해야 합니다.

기본적으로 GraphQL 스키마의 모든 필드는 공개 데이터에만 접근할 수 있습니다. 예를 들어, posts는 상태가 "publish"인 게시물만 가져올 수 있습니다.

또한 스키마에 「민감한」 데이터 필드와 입력 필드를 추가할 수 있습니다. 이는 관리자만 사용하도록 설계되어 있으며, 특정 커스텀 엔드포인트 또는 persisted query에 대해 활성화되고 비공개 데이터도 가져올 수 있습니다.

예를 들어, 필드 인수 posts(filter:)에는 추가 입력 필드 status가 포함되어, 모든 사용자에 대해 미게시 게시물(예: 상태가 "pending", "draft", 또는 "trash"인 게시물)을 가져올 수 있습니다. 마찬가지로, 스키마는 필드 Post.status를 노출하여 이 데이터를 확인할 수 있도록 합니다.

「민감한」 데이터 요소 목록

아래 요소들(외 기타)은 기본적으로 비공개 데이터로 처리됩니다:

User:

  • email
  • roles
  • capabilities
  • metaKeys

Custom Posts:

  • status
  • wpAdminEditURL
  • hasPassword
  • password
  • rawContent
  • rawTitle
  • rawExcerpt
  • metaKeys

Comments:

  • status
  • rawContent
  • metaKeys

Taxonomies:

  • metaKeys

Custom Post Mutations:

  • authorBy 입력

Menu Items:

  • rawTitle

기본 설정 재정의

위에 나열된 요소들은 공개로 변경할 수 있습니다.

설정 페이지의 각 해당 탭에는 각 항목을 「민감한」 데이터 또는 「일반」 데이터로 처리할지 설정하는 체크박스가 있습니다:

사용자 이메일을 「민감한」 데이터로 처리하는 설정
사용자 이메일을 「민감한」 데이터로 처리하는 설정

스키마 인트로스펙션을 통한 「민감한」 데이터 요소 확인

스키마 인트로스펙션을 수행할 때 isSensitiveDataElement 속성이 필드 extensions에 추가됩니다. 스키마에서 「민감한」 데이터 요소를 확인하려면 다음 쿼리를 실행하세요:

query ViewSensitiveDataElements {
  __schema {
    types {
      name
      fields {
        name
        extensions {
          isSensitiveDataElement
        }
        args {
          name
          extensions {
            isSensitiveDataElement
          }
        }
      }
      inputFields {
        name
        extensions {
          isSensitiveDataElement
        }
      }
      enumValues {
        name
        extensions {
          isSensitiveDataElement
        }
      }
    }
  }
}

그런 다음 결과에서 "isSensitiveDataElement": true 항목을 검색하세요.

엔드포인트에 「민감한」 데이터 요소 추가하기

「민감한」 데이터 요소를 스키마에 추가하는 설정은 우선순위 순서로 다음과 같이 구성할 수 있습니다:

✅ 스키마 설정에서 정의된 커스텀 엔드포인트 또는 persisted query의 특정 모드

「민감한」 데이터 요소를 스키마에 추가, 스키마 설정에서 구성

✅ 설정에서 정의된 기본 모드

스키마 설정 값이 "Default"인 경우, 설정에서 정의된 모드가 사용됩니다:

설정 내 스키마 설정에서의 「민감한」 데이터 요소 설정
설정 내 스키마 설정에서의 「민감한」 데이터 요소 설정

사용 시기

정적 웹사이트 구축 시 또는 로컬 WordPress 인스턴스에서 데이터를 가져올 때(즉, 공개 API가 아닌 경우)와 같이 비공개 정보 공개가 허용된 경우에 사용하세요.