Consultar campos de datos 'sensibles'
El esquema GraphQL debe encontrar un equilibrio entre campos públicos y privados, para evitar exponer información privada en una API pública.
Por defecto, todos los campos del esquema GraphQL solo pueden acceder a datos públicos. Por ejemplo, posts solo puede recuperar entradas con estado "publish".
Además, podemos añadir campos de datos "sensibles" y campos de entrada al esquema, pensados para ser usados únicamente por el administrador, habilitados para un custom endpoint o persisted query específico, que también pueden obtener datos privados.
Por ejemplo, el argumento de campo posts(filter:) contendrá un input field adicional status, que nos permite recuperar entradas no publicadas (p. ej.: entradas con estado "pending", "draft" o "trash") para cualquier usuario. Del mismo modo, el esquema expondrá el campo Post.status, para visualizar este dato.
Lista de elementos de datos "sensibles"
Los elementos siguientes (entre otros) se tratan, por defecto, como datos privados:
User:
emailrolescapabilitiesmetaKeys
Custom Posts:
statuswpAdminEditURLhasPasswordpasswordrawContentrawTitlerawExcerptmetaKeys
Comments:
statusrawContentmetaKeys
Taxonomies:
metaKeys
Custom Post Mutations:
- input
authorBy
Menu Items:
rawTitle
Sobrescribir la configuración por defecto
Los elementos listados arriba pueden hacerse públicos.
En la página de Ajustes, en la pestaña correspondiente para cada uno, hay una casilla para configurar si tratarlos como "sensibles" o "normales":

Inspeccionar los elementos de datos "sensibles" mediante introspección del esquema
La propiedad isSensitiveDataElement se añade al campo extensions al hacer introspección del esquema. Para averiguar cuáles son los elementos de datos "sensibles" del esquema, ejecuta esta consulta:
query ViewSensitiveDataElements {
__schema {
types {
name
fields {
name
extensions {
isSensitiveDataElement
}
args {
name
extensions {
isSensitiveDataElement
}
}
}
inputFields {
name
extensions {
isSensitiveDataElement
}
}
enumValues {
name
extensions {
isSensitiveDataElement
}
}
}
}
}Y luego busca entradas con "isSensitiveDataElement": true en los resultados.
Añadir elementos de datos "sensibles" a los endpoints
La adición de elementos de datos "sensibles" al esquema puede configurarse de la siguiente manera, por orden de prioridad:
Modo específico para el custom endpoint o persisted query, definido en la configuración del esquema

Modo por defecto, definido en los Ajustes
Si la configuración del esquema tiene el valor "Default", utilizará el modo definido en los Ajustes:

Cuándo usar
Úsalo siempre que esté permitido exponer información privada, como cuando construyes un sitio web estático, obteniendo datos de una instancia local de WordPress (es decir, no una API pública).