Shipped GHub Ersteller und Maintainer Open core

GPlatform Control

Die obere Hälfte: die Instanz, in die sich GControl-Installationen einschreiben.

Der Dienst, den wir betreiben. Er stellt Lizenzen aus, führt Katalog und signierten Artefaktspeicher, verwahrt Lockdown-Schlüssel, steuert den Support-Ablauf und verwaltet die Cloud-Deployments. GControl ist die Hälfte, die Sie betreiben; dies ist die, die wir betreiben.

Die andere Hälfte

GPlatform Control ist die Hälfte, die wir betreiben. GControl ist der Broker, den Sie auf eigener Infrastruktur betreiben; beide werden getrennt lizenziert und geregelt.

GControl ansehen →

Was es ist

Die obere Instanz hinter der G-App-Reihe und das, worin sich eine GControl-Installation einschreibt.

Sie ist die alleinige Wahrheitsquelle für beide Seiten des Lizenzmodells: Lizenzausstellung, App-Katalog, signierter Artefaktspeicher, Verwahrung der Lockdown-Schlüssel, Support-Ablauf und die Verwaltungsebene für die Anwendungen, die wir selbst hosten.

Drei Oberflächen, drei Türen

Die Weboberfläche trägt drei, jede auf eigenem Pfad und hinter eigener Tür.

Mitarbeitende verwalten Katalog, Artefakte, Releases, Konten, API-Token und das Audit-Log und übernehmen Instanzen.

Das Kundenportal zeigt einer Organisation ihre Instanzen, ihre Lizenzen samt Downloads, ihre Anwendungen, ihre Zugriffseinstellungen und ihre Support-Vorgänge; hier wird auch eine Instanz gekoppelt.

Cloud ist die Verwaltungsebene für die von uns gehosteten Anwendungen: deren Mandanten, Deployments und Audit-Spur.

Die Abhängigkeit läuft nur in eine Richtung

GControl enthält keine Spur der Cloud. Es nutzt die veröffentlichten @ghub/*-Pakete, nie umgekehrt.

Das ist ausdrücklich festzuhalten, denn es ist die Eigenschaft, die Self-Hosting echt und nicht nur nominell macht. Müsste der selbst betriebene Broker von der Cloud wissen, ließe sich die Cloud später jederzeit unverzichtbar machen. Das geht nicht, weil der Code, der das täte, auf jener Seite nicht existiert.

Jeder Aufruf geht vom Kunden aus

Es gibt keine eingehenden Verbindungen in ein Kundennetz. Ein Kommando wird als Feld in der Antwort auf einen Heartbeat ausgeliefert, den die Instanz gesendet hat — weshalb eine Instanz hinter einer Firewall ohne eingehende Route genauso gut funktioniert wie eine ohne.

Was es hält, wonach ein Kunde fragen würde

Die private Hälfte des Lockdown-Schlüssels jeder Instanz, in Vault, damit eine versiegelte Instanz wiederhergestellt werden kann — und nie das Schlüsselmaterial in der Datenbank, die die öffentliche Hälfte und einen Pfad hält.

Die Kopf-Hashes der Audit- und Stempelketten, die ihre Instanzen verankern; sie belegen, dass eine Kette nicht umgeschrieben wurde, ohne offenzulegen, was darin steht.

Health-Werte 90 Tage, Verbrauchsaggregate als Nutzungsnachweis und den Lizenzdatensatz für die Dauer der Lizenz und danach als deren Beleg.

Aufbau

Die API ist NestJS mit zod-gestützten Verträgen und generierter Swagger-Dokumentation. Ein Temporal-Worker führt aus, was einen Neustart überstehen muss: Lizenzlebenszyklus, Artefaktveröffentlichung, Unseal, Aufbewahrung und Cloud-Deployments. Die Weboberfläche ist Next.js.

Status

Ausgeliefert, gemeinsam mit GControl; die beiden bewegen sich zusammen.