feat: federation panel + Dart SDK federation methods (0.70.0)
Some checks failed
Security / Security check (push) Failing after 2s
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>
This commit is contained in:
parent
b35bbc1b12
commit
d0cfa5df05
12 changed files with 815 additions and 4 deletions
48
assets/docs/federation_de.md
Normal file
48
assets/docs/federation_de.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# 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
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue