Consultando campos de dados 'sensíveis'
O schema GraphQL deve encontrar um equilíbrio entre campos públicos e privados, a fim de evitar expor informações privadas em uma API pública.
Por padrão, todos os campos do schema GraphQL só podem acessar dados públicos. Por exemplo, posts só pode recuperar posts com status "publish".
Além disso, podemos adicionar campos de dados "sensíveis" e campos de input ao schema, destinados a ser usados apenas pelo administrador, habilitados para um custom endpoint ou persisted query específico, que também podem buscar dados privados.
Por exemplo, o argumento do campo posts(filter:) conterá um input field adicional status, que nos permite recuperar posts não publicados (ex.: posts com status "pending", "draft" ou "trash") para qualquer usuário. Da mesma forma, o schema exporá o campo Post.status, para visualizar esse dado.
Lista de elementos de dados "sensíveis"
Os elementos abaixo (entre outros) são, por padrão, tratados como dados privados:
User:
emailrolescapabilitiesmetaKeys
Custom Posts:
statuswpAdminEditURLhasPasswordpasswordrawContentrawTitlerawExcerptmetaKeys
Comments:
statusrawContentmetaKeys
Taxonomies:
metaKeys
Custom Post Mutations:
- input
authorBy
Menu Items:
rawTitle
Substituindo a configuração padrão
Os elementos listados acima podem ser tornados públicos.
Na página de Configurações, na aba correspondente a cada um, há uma caixa de seleção para configurar se tratá-los como "sensíveis" ou "normais":

Inspecionando os elementos de dados "sensíveis" via introspecção do schema
A propriedade isSensitiveDataElement é adicionada ao campo extensions durante a introspecção do schema. Para descobrir quais são os elementos de dados "sensíveis" do schema, execute esta query:
query ViewSensitiveDataElements {
__schema {
types {
name
fields {
name
extensions {
isSensitiveDataElement
}
args {
name
extensions {
isSensitiveDataElement
}
}
}
inputFields {
name
extensions {
isSensitiveDataElement
}
}
enumValues {
name
extensions {
isSensitiveDataElement
}
}
}
}
}Em seguida, procure por entradas com "isSensitiveDataElement": true nos resultados.
Adicionando elementos de dados "sensíveis" aos endpoints
A adição de elementos de dados "sensíveis" ao schema pode ser configurada da seguinte forma, em ordem de prioridade:
Modo específico para o custom endpoint ou persisted query, definido na configuração do schema

Modo padrão, definido nas Configurações
Se a configuração do schema tiver o valor "Default", ele usará o modo definido nas Configurações:

Quando usar
Use sempre que for permitido expor informações privadas, como ao construir um site estático, buscando dados de uma instância WordPress local (ou seja, não uma API pública).