Skip to content

Installations-Statusmeldung

FG Core 1.1.3 enthält eine automatische technische Installations-Statusmeldung. Sie wird per WP-Cron geplant und sendet einen zusammengefassten Status der erkannten FUNCKGROUP-Plugins an einen konfigurierbaren HTTPS-Endpunkt.

Es gibt im Referenz-Plugin keine manuelle Sende-Schaltfläche.

Wenn die Statusmeldung aktiviert ist und noch kein Ereignis für fg_core_send_installation_status existiert, plant FG Core auf init:

  • den ersten Lauf zufällig 120 bis 900 Sekunden später
  • danach eine tägliche Wiederholung über den WordPress-Zeitplan daily

Die tatsächliche Ausführung von WP-Cron hängt davon ab, dass WordPress-Cron auf der Installation ausgelöst wird.

https://lizenz.funckgroup-server.com/wp-json/fg-lizenz/v1/status

Der Endpunkt kann über FG_CORE_STATUS_ENDPOINT oder den Filter fg_core_status_endpoint geändert werden. Die Statusmeldung kann über FG_CORE_STATUS_REPORTING oder den Filter fg_core_status_reporting_enabled deaktiviert werden.

Weitere Informationen stehen unter Konfiguration.

Der JSON-Body enthält im aktuellen Code folgende Felder:

Bereich Übertragene Daten
Schema schema_version
Installation zufällige installation_id
Website Domain, site_url, home_url
Umgebung WordPress-Environment-Type
Multisite Multisite-Status, network_id, blog_id
WordPress Version, Locale, Zeitzone
PHP PHP-Version
FG Core Runtime-Version, API-Version, Provider
FUNCKGROUP-Plugins Slug, Name, Version, relative Plugin-Hauptdatei, Aktivstatus, Netzwerk-Aktivstatus, Core-Registrierungsstatus, eingebettete Core-Version
Zeit UTC-Zeitpunkt reported_at

Zusätzlich werden folgende HTTP-Header gesendet:

  • X-FG-Install-ID mit der Installations-ID
  • X-FG-Install-Token mit einem zufällig erzeugten Installationstoken
  • X-FG-Core-Version mit der aktiven Core-Version

Der User-Agent enthält die FG-Core-Version und die WordPress-Home-URL.

Ein installiertes WordPress-Plugin wird für die Statusmeldung berücksichtigt, wenn mindestens eines der folgenden Kriterien erfüllt ist:

  • das Plugin enthält ein lesbares includes/fg-core/manifest.php
  • das Plugin ist bei der aktiven Core-Runtime registriert
  • der WordPress-Plugin-Header Author enthält FUNCKGROUP

Die Plugin-Liste wird alphabetisch nach dem Plugin-Namen sortiert.

FG Core speichert eine UUID als Installations-ID und bindet sie an die normalisierte home_url().

Wenn die gespeicherte Home-URL von der aktuellen Home-URL abweicht, verwirft FG Core die bisherige Installations-ID und den Installationstoken und erzeugt neue Werte. Damit erhält beispielsweise eine auf eine andere Domain kopierte WordPress-Datenbank eine neue Installationskennung.

FG Core verwendet folgende WordPress-Optionen:

Option Inhalt
fg_core_installation_id zufällige UUID
fg_core_installation_token zufälliger Token mit 64 Zeichen
fg_core_installation_home_url normalisierte Home-URL
fg_core_status_last_report Zeitpunkt, Plugin-Anzahl und Endpunkt des letzten erfolgreichen Versands
fg_core_status_last_error letzter gespeicherter Versandfehler
fg_core_status_last_http_code letzter gespeicherter HTTP-Statuscode

Diese Optionen werden mit deaktiviertem Autoload angelegt beziehungsweise aktualisiert.

Der Versand erfolgt mit wp_remote_post() als JSON-Request. Konfiguriert sind:

  • Timeout: 15 Sekunden
  • maximal 2 Weiterleitungen
  • Content-Type: application/json; charset=utf-8
  • Accept: application/json

Der Code liest keine IP-Adresse aus WordPress aus und fügt keine IP-Adresse als eigenes Payload- oder Header-Feld hinzu.

Im Projektcode sind keine Cookies, kein localStorage und keine Dateiübertragung an externe Dienste vorhanden.

Bei einem WordPress-HTTP-Fehler oder einer Nicht-2xx-Antwort speichert FG Core den letzten Fehler und den HTTP-Statuscode. Bei erfolgreichem Versand wird der Fehler gelöscht und der erfolgreiche Status mit Zeitstempel gespeichert.

Nach Erfolg wird fg_core_status_report_sent ausgelöst. Nach einem gespeicherten Fehler wird fg_core_status_report_failed ausgelöst.

Die Runtime überträgt technische Installations- und Website-Metadaten an den konfigurierten Endpunkt. Der vorliegende Projektcode enthält keine Übertragung von Benutzerdatensätzen, Beitragsinhalten, Passwörtern oder vollständigen Datenbankinhalten. Eine rechtliche Bewertung der Verarbeitung oder des Zielsystems ist nicht Bestandteil dieses Repositories.