Şemayı yapılandırma
Şemayı yapılandırma"Hassas" veri alanlarını sorgulama

"Hassas" veri alanlarını sorgulama

GraphQL şeması, genel bir API'de özel bilgilerin açığa çıkmasını önlemek amacıyla genel ve özel alanlar arasında bir denge kurmalıdır.

Varsayılan olarak, GraphQL şemasındaki tüm alanlar yalnızca genel verilere erişebilir. Örneğin, posts yalnızca "publish" durumuyla yayımlanmış gönderileri getirebilir.

Bunun yanı sıra, şemaya "hassas" veri alanları ve input alanları eklenebilir; bunlar yalnızca yönetici tarafından kullanılmak üzere tasarlanmış olup belirli bir custom endpoint veya persisted query için etkinleştirilerek özel verileri de getirebilir.

Örneğin, posts(filter:) alan argümanı, yayımlanmamış gönderileri herhangi bir kullanıcı için getirmeye olanak tanıyan ek bir status input alanı içerecektir (örn. "pending", "draft" veya "trash" durumundaki gönderiler). Benzer şekilde, şema bu verinin görselleştirilmesi amacıyla Post.status alanını da sunacaktır.

"Hassas" veri öğelerinin listesi

Aşağıdaki öğeler (diğerleriyle birlikte) varsayılan olarak özel veri şeklinde değerlendirilir:

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 input

Menu Items:

  • rawTitle

Varsayılan yapılandırmayı geçersiz kılma

Yukarıda listelenen öğeler genel hale getirilebilir.

Ayarlar sayfasında, her birine karşılık gelen sekmede, bunların "hassas" mı yoksa "normal" olarak mı değerlendirileceğini yapılandırmak için bir onay kutusu bulunmaktadır:

Kullanıcı e-postasını 'hassas' veri olarak değerlendirme ayarları
Kullanıcı e-postasını 'hassas' veri olarak değerlendirme ayarları

Şema introspection yoluyla "hassas" veri öğelerini inceleme

Şema introspection işlemi yapılırken isSensitiveDataElement özelliği extensions alanına eklenir. Şemadaki "hassas" veri öğelerini belirlemek için şu query'yi çalıştırın:

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

Ardından sonuçlarda "isSensitiveDataElement": true içeren girdileri arayın.

Endpoint'lere "hassas" veri öğeleri ekleme

Şemaya "hassas" veri öğeleri eklenmesi, öncelik sırasına göre aşağıdaki şekilde yapılandırılabilir:

✅ Schema configuration'da tanımlanan custom endpoint veya persisted query için özel mod

Şemaya "hassas" veri öğeleri ekleme, Schema configuration'da ayarlanmış

✅ Ayarlarda tanımlanan varsayılan mod

Schema configuration'ın değeri "Default" ise Ayarlarda tanımlanan mod kullanılır:

Ayarlarda schema configuration için 'hassas' veri öğelerini yapılandırma
Ayarlarda schema configuration için 'hassas' veri öğelerini yapılandırma

Ne zaman kullanılır

Statik bir web sitesi oluştururken veya yerel bir WordPress örneğinden veri getirirken (yani genel bir API değil) olduğu gibi, özel bilgilerin açığa çıkarılmasına izin verilen durumlarda kullanın.