WebBlocks Support Protokolü 1.0

WebBlocks CMS ve diğer ürünler, bir kurulumu bağlamak için bu protokolü kullanır kuruluma kuruluş çapında bir imkan vermeden bir destek sağlayıcıya kimlik bilgisi. WebBlocks Workbench tek bir sağlayıcıdır; ajanslar uygulayabilir kendi HTTPS kökenlerinde aynı sözleşme.

Keşif

GET /.well-known/webblocks-support, JSON'u döndürür:

{
  "protocol": "webblocks-support",
  "version": "1.0",
  "name": "Example Support",
  "api_base_url": "https://support.example.com/api/webblocks-support/v1",
  "capabilities": ["ticket.create", "ticket.list", "ticket.read", "ticket.reply", "diagnostics.request", "diagnostics.consent"],
  "activation_methods": ["invitation_code"]
}

Keşif URL'si ve API temel URL'si aynı genel HTTPS kaynağını kullanmalıdır. Yönlendirmelere uyulmuyor. CMS 1.0 dört biletin tümünü gerektirir yetenekleri.

Kurulum aktivasyonu

POST {api_base_url}/activations şunu kabul eder:

{
  "install_ref": "random-install-uuid",
  "product": "webblocks-cms",
  "product_version": "1.74.0",
  "site_url": "https://example.com",
  "environment": "production",
  "invitation_code": "WBS-ABCD-EFGH-IJKL"
}

Davetiye geçerli, kullanılmamış ve talep edilen ürün için düzenlenmiş olmalıdır. o Aktivasyon oluşturulduğunda atomik olarak tüketilir. Sağlayıcı bir Yoklama için etkinleştirme sırrı ve kullanıcıya yönelik bir referans kodu:

{
  "activation_id": "act_123",
  "activation_secret": "one-install-polling-secret",
  "user_code": "ABCD-EFGH",
  "expires_at": "2026-08-28T14:00:00Z"
}

Sağlayıcı oturum açma işlemi veya harici etkinleştirme sayfası gerekmez. sağlayıcı operatör davet destekli isteği ve CMS anketlerini inceler GET {api_base_url}/activations/{activation_id} ile Taşıyıcı belirteci olarak etkinleştirme sırrı. Bekleyen bir yanıt: {"status":"pending"}. Onaylandıktan sonra şunu döndürür:

{
  "status": "active",
  "credential": "installation-scoped-bearer-secret",
  "plan_name": "Support",
  "entitlement_expires_at": "2027-08-28T00:00:00Z"
}

Kimlik bilgisi tek bir ürün ve kurulumla sınırlı olmalıdır. Olmamalı organizasyon, proje, plan veya diğer kurulum yönetimine izin verir.

Biletleri

Tüm bilet aramaları kurulum kimlik bilgileriyle doğrulanır. Uç noktalar api_base_url'ye göredir:

  • POST /tickets
  • GET /tickets?external_user_ref=...&install_ref=...
  • GET /tickets/{ticket}?install_ref=...
  • POST /tickets/{ticket}/comments
  • Kurulum kimlik bilgisini iptal etmek için DELETE /installation

Ticket oluşturma şunları içerir: title, body, type, external_user_ref, external_user_name, install_ref, product, product_version, site_url ve environment. Sağlayıcı, projesini ve yetkisini kimlik bilgisi; müşteri hiçbir zaman bir proje kimliği sağlamaz.

Destek talebi okumaları kimlik bilgisi ve install_ref kapsamıyla sınırlandırılmalıdır. CMS, bir talebi göstermeden önce external_user_ref değerini de kontrol eder; böylece bir yönetici, kimliğini tahmin ederek başka bir yöneticinin talebini okuyamaz.

diagnostics.request desteğini bildiren bir sağlayıcı, bekleyen diagnostic_requests kayıtlarını GET /tickets/{ticket} yanıtına dahil edebilir. Her istek, iç yapısı istemci tarafından yorumlanmayan bir kimlik ve izin verilen kategori kümesi içerir: system_summary, recent_application_errors ve plugin_health.

Kurulum bu kategorileri bilet sahibine göstermeli ve bir herhangi bir şeyi toplamadan veya göndermeden önce açık onay. Şununla yanıt verir: POST /tickets/{ticket}/diagnostics/{diagnostic} ve her ikisi de {"action":"decline"} veya {"action":"submit","snapshot":{...}}. Anlık görüntünün sınırı 64 KiB'dir ve yalnızca istenen kategorileri içerebilir.

Protokol hiçbir zaman dosya sistemi yolunu veya rastgele komutu kabul etmez. Teşhis koleksiyona .env, kimlik bilgileri, çerezler ve tam günlükler dahil değildir; son hata satırlar iletimden önce sınırlanır ve yerel olarak düzenlenir. Sağlayıcılar elinde tutuyor denetim takibi olarak istek, onay ve gönderim zaman damgaları.

Gizli işleme

Etkinleştirme ve yükleme kimlik bilgileri, sunucular arası sırlardır. onlar asla bir tarayıcıya döndürülmemeli, günlüğe kaydedilmemeli, bir site aktarımına yerleştirilmemeli veya ifşa edilmemelidir tekrar kullanıcı arayüzünde. CMS bunları uygulama anahtarıyla şifrelenmiş olarak saklar.