Direkt zum Hauptinhalt

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 => Permission bffh.machine.create.<namespace>.*
  • 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
  • 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