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>
48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# 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
|
|
|
|
1. **Satellit hinzufügen** drücken und einen Namen vergeben
|
|
(z.B. `satellite-a`).
|
|
2. Der Hub stellt ein einmaliges **Bootstrap-Token** aus und legt sein
|
|
**CA-Zertifikat** bei. Kopiere die gezeigte Konfiguration in die
|
|
`config.yaml` des Satelliten (ein Einfügen) und exportiere das
|
|
Token als `FAI_BOOTSTRAP_TOKEN`.
|
|
3. 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:
|
|
|
|
```yaml
|
|
- id: extract
|
|
use: text.extract@^1
|
|
on: region=berlin # oder pin=satellite-a, auto:healthiest, auto:lowest_rtt
|
|
with:
|
|
input: $inputs.doc
|
|
```
|