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` => Permission `bffh.machine.create.<namespace>.*` * Tags - Key / Value * Key: Position - Value: Map Kind $Value <!-- * Key: High Precision - Value: struct GNSS-Positon --> * 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 * 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 Authorisierung passiert auf Interface Level. Über das Bootstrap Interface können mehrer Verbindungen aufgemacht werden. Föderated Sachen sind immer authentifiziert über ein Zertifikat. # Audit Log *