Some checks failed
Security / Security check (push) Failing after 2s
A new 'Föderation' destination (primary side) lists connected satellites — name, region, version, wire version, advertised capabilities — and adds them in one step: 'Add satellite' issues a single-use bootstrap token bundled with the primary CA as a ready-to-paste satellite config (the bundled CA makes the first connect tamper-proof). Localized EN + DE, in-app help doc. Uses the new HubService.listSatellites / issueSatelliteToken wrapping the SDK's federation methods. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
1.9 KiB
1.9 KiB
Föderation
Föderation lässt einen Hub (den Primary) Capabilities auf einem
anderen Hub (einem Satelliten) ausführen — etwa um eine GPU-Maschine
zu erreichen oder Daten an einem bestimmten Ort zu halten. Ein
Flow-Schritt entscheidet sich per on:-Selektor dafür; alles andere
bleibt wie bei einem lokalen Schritt.
Dieses Panel ist die Primary-Seite: Es zeigt die aktuell verbundenen Satelliten und richtet neue ein.
Satellit hinzufügen
- Satellit hinzufügen drücken und einen Namen vergeben
(z.B.
satellite-a). - Der Hub stellt ein einmaliges Bootstrap-Token aus und legt sein
CA-Zertifikat bei. Kopiere die gezeigte Konfiguration in die
config.yamldes Satelliten (ein Einfügen) und exportiere das Token alsFAI_BOOTSTRAP_TOKEN. - Starte den Satelliten. Er wählt sich beim Primary ein, der CA-Pin macht den ersten Connect manipulationssicher, und der Primary signiert ihm ein kurzlebiges Zertifikat. Danach erscheint er in dieser Liste.
Warum es sicher bleibt
- Der Satellit wählt sich nach außen ein — keine eingehende Firewall-Änderung nötig.
- Jede Verbindung ist mTLS. Der erste Connect wird gegen die beigelegte CA verifiziert; spätere Connects authentifizieren sich mit dem eigenen Zertifikat des Satelliten (kein Token nötig).
- Der Satellit löst auf und führt die Capability in seiner eigenen Sandbox aus — nur Eingaben gehen über die Leitung, niemals Code.
- Jeder hub-übergreifende Aufruf wird auf beiden Seiten protokolliert
(
dispatched_to), sodass Audit-Trail und Replay-Determinismus die Föderation überstehen.
Satellit in einem Flow nutzen
Ergänze einen on:-Selektor an einem Schritt:
- id: extract
use: text.extract@^1
on: region=berlin # oder pin=satellite-a, auto:healthiest, auto:lowest_rtt
with:
input: $inputs.doc