WebBlocks Support-Protokoll 1.0

WebBlocks CMS und andere Produkte verwenden dieses Protokoll, um eine Installation zu verbinden an einen Support-Anbieter, ohne dass die Installation organisationsweit erfolgt Berechtigung. WebBlocks Workbench ist ein Anbieter; Agenturen können dies umsetzen gleichen Vertrag auf ihrem eigenen HTTPS-Ursprung.

Entdeckung

GET /.well-known/webblocks-support gibt JSON zurück:

{
  "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"]
}

Die Erkennungs-URL und die API-Basis-URL müssen denselben öffentlichen HTTPS-Ursprung verwenden. Weiterleitungen werden nicht befolgt. CMS 1.0 erfordert alle vier Tickets Fähigkeiten.

Installationsaktivierung

POST {api_base_url}/activations akzeptiert:

{
  "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"
}

Die Einladung muss gültig, unbenutzt und für das angeforderte Produkt ausgestellt sein. Es wird atomar verbraucht, wenn die Aktivierung erstellt wird. Der Anbieter gibt eine zurück Aktivierungsgeheimnis für die Abfrage und einen benutzerseitigen Referenzcode:

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

Kein Provider-Login oder eine externe Aktivierungsseite ist erforderlich. Der Anbieter Der Betreiber überprüft die durch Einladung unterstützte Anfrage und die CMS-Umfragen GET {api_base_url}/activations/{activation_id} mit dem Aktivierungsgeheimnis als Inhabertoken. Eine ausstehende Antwort ist {"status":"pending"}. Nach der Genehmigung wird Folgendes zurückgegeben:

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

Die Anmeldeinformationen müssen auf ein Produkt und eine Installation beschränkt sein. Es darf nicht Organisation, Projekt, Plan oder andere Installationsverwaltung ermöglichen.

Tickets

Alle Ticketaufrufe werden mit den Installationsberechtigungsnachweisen authentifiziert. Die Endpunkte sind relativ zu api_base_url:

  • POST /tickets
  • GET /tickets?external_user_ref=...&install_ref=...
  • GET /tickets/{ticket}?install_ref=...
  • POST /tickets/{ticket}/comments
  • DELETE /installation zum Widerrufen der Installationsberechtigung

Ticketerstellung umfasst title, body, type, external_user_ref, external_user_name, install_ref, product, product_version, site_url und environment. Der Anbieter leitet sein Projekt und seine Berechtigung daraus ab Berechtigung; Der Kunde liefert niemals eine Projekt-ID.

Ticket-Lesezugriffe müssen durch Zugangsdaten und install_ref begrenzt werden. Vor der Anzeige prüft das CMS außerdem external_user_ref, sodass ein Administrator durch Erraten der ID kein Ticket eines anderen Administrators lesen kann.

A Anbieterwerbung diagnostics.request kann ausstehende Informationen enthalten diagnostic_requests in GET /tickets/{ticket}. Jede Anfrage enthält eine undurchsichtige ID und eine Gruppe von Kategorien auf der Zulassungsliste: system_summary, recent_application_errors und plugin_health.

Die Installation muss diese Kategorien dem Ticketeigentümer anzeigen und eine erhalten ausdrückliche Genehmigung einholen, bevor Sie etwas abholen oder versenden. Es antwortet mit POST /tickets/{ticket}/diagnostics/{diagnostic} und entweder {"action":"decline"} oder {"action":"submit","snapshot":{...}}. Der Snapshot ist auf 64 KiB begrenzt und darf nur die angeforderten Kategorien enthalten.

Das Protokoll akzeptiert niemals einen Dateisystempfad oder einen beliebigen Befehl. Diagnose Die Sammlung schließt .env, Anmeldeinformationen, Cookies und vollständige Protokolle aus. aktueller Fehler Zeilen werden vor der Übertragung lokal begrenzt und geschwärzt. Anbieter behalten die Zeitstempel der Anfrage, Einwilligung und Übermittlung als Audit-Trail.

Geheime Handhabung

Aktivierungs- und Installationsanmeldeinformationen sind Server-zu-Server-Geheimnisse. Sie Sie dürfen niemals an einen Browser zurückgegeben, protokolliert, in einen Site-Export eingefügt oder offengelegt werden wieder in der Benutzeroberfläche. CMS speichert sie verschlüsselt mit seinem Anwendungsschlüssel.