21.01.2021 // API Meeting
Bootstrap Interface, für Informationen ohne Authentifizierung Von dort aus kann man sich dann Authentifizieren
Bootstrap Interface:
- Serverinformationen
- sich authentifizieren
- Ping
- (Post Prototype) Server-Module auslesen
Maschine Subsystem:
-
Maschinen lesen
-
Maschinen reservieren
-
Maschinen editieren
-
Maschinen (als Dummy / ohne weitere Informationen) erstellen (Nur fuer 3rd party client)
- QR-Code
TIS-23D
=> Maschine ID<namespace>/TIS-23D
=> Permissionbffh.machine.create.<namespace>.*
- QR-Code
-
Tags - Key / Value
- Key: Position - Value: Map Kind $Value
- Key: Static - Value: struct Position on a map
- Key: Preise - value: ??
- Super wichtig fuer foederierte Aktionen wo Preise von $zuhause zu $foederiertemVerein unterschiedlich sind.
- Key: Stromverbrauch - Value: Ampere-Wert
- Key: Custom(String) - Value: Leaf Bytes (Tree Bytes)
Good:
- Key: "https://lastenrad.de/fabaccess-ns/kilometerstand" - Value: Varint
Bad:
- Key: "varint" - Value: Bool
- Key: Position - Value: Map Kind $Value
-
Metadaten
Permission Subsystem (Admin):
- Berechtigungen lesen
- Berechtigungen erstellen
- Berechtigungen editieren
- Nutzer lesen
- Nutzer erstellen
- Nutzer editieren
Interaction Subsystem:
- Mapping Initiator => Machine (Event)
- kommt ungefragt und asynchron rein
- FabAccess weiß vorher was kommt
- .. um einen Wert einer Maschine (z.B. aus/an) zu ändern
- Mapping Machine => Actor (Actor)
- Mapping Sensor => Machine (Behaviour)
- wird von FabAccess regelmäßig abgefragt
- oder kommt ungefragt und asynchron rein
- .. Wert der draussen aktuell ist und zur weiteren Verarbeitung zur Verfügung steht.
- Effekte / Rule (Effect) (Event / Behaviour -> Event / Behaviour)
- Kann (wenn das gut ist) NodeRed verwenden.
- Oder ähnlich wie in OpenHAB.
- ... gerne textbasiert & funktioniert
- wenn web/app/...-basiert gerne auch, Hauptsache funktioniert.
Föderation Subsystem:
- Nutzer validieren
- Rollen eines Nutzer auslesen koennen
- Alle (fuer den jeweiligen Server sichtbaren) Rollenbeschreibungen auslesen koennen
- Rollen sind immer lokal, koennen aber auf eine remote gruppe gemapt werden, i.e. als diese equivalent gesetzt werden
- Remote user die in einer remote role sind kriegen damit trotzdem lokale roles
Über das Bootstrap Interface können mehrer Verbindungen aufgemacht werden.
Föderated Sachen sind immer authentifiziert über ein Zertifikat.