Added: more docs in german

This commit is contained in:
TheJoKlLa 2023-01-21 14:29:17 +01:00
parent 2c7bbcf0b2
commit 4a4cc9e7f4
4 changed files with 171 additions and 0 deletions

View File

@ -0,0 +1,90 @@
# Konfigurationsdatei
Um einen FabAccess Server zu starten, muss eine Konfigurationsdatei eingeladen werden.
Diese Datei enthält die Konfigurationen für den Space, Maschienen, Rollen, Aktoren und Initatoren.
Für den Start stellen wir eine vereinfachte Konfigurationsdatei bereit. Diese findet ihr hier.
Für die Konfigurationdatei verwenden wir DHALL, damit können auch in der Datei schon komplexe und sich wiederholende Strukturen abgebildet werden. Der Standardname der Konfigurationsdatei ist `bffh.dhall`.
Die Konfigurationsdatei muss bei jedem Start des Server übergeben werden und stellt die persistenten Daten des Spaces bereit.
Gestartet wird der Server daher beispielsweise mit `cargo run -- -c bffh.dhall`
Die Konfigurationsdatei strukturiert sich in 4 Abschnitte:
- Allgemeine Einstellungen
- Maschinen
- Aktoren
- Initiatoren
# Allgemeine Einstellungen
In den Allgemeinen Einstellungen kann der Domain und der Name des Servers festgelegt werden.
Die diese diehnen dazu, dass Nutzer sich mit euerem Server verbinden könenn. Und spätere Föderation möglich ist.
Um eine sichere Kommunikation zwischen Client und Server aufzubauen, sollte auch ein TLS-Zertifikat eingebunden werden.
Wie ihr ein Zertifikat einbinden könnt, findet ihr hier.
Auch können hier die Speicherorte für die interne Datenbank und das Audit-Log festgelegt werden.
BFFH erstellt aus der Konfigurationsdatei und den eingeladenen Nutzer eine Dateibasierte Datenbank. Diese wird mit jedem Start und somit einladen der Konfigurationsdatei abgeglichen.
Für eine BackUp-Stategie sollte diese Datei miteinbezogen werden.
# Maschinen
Maschinen ist der verwendetet Überbegriff der Geräte, Maschinen oder andere Gegenstände bezeichnet. Teilweise wird die Maschine auch als Resource bezeichnet.
Eine Maschine besitzt einen Namen und eine optionale Beschreibung. Diese Informationen werden dem Nutzer im Client angezeigt.
Auch kann zusätzlich ein externer Link zu einem Wiki eingebunden werden. In dem weitere Informationen hinerlegt sein könnne.
Auch lassen sich Maschinen kategorisieren, um sie im Client zusammenfassen zu können. Hierbei handelt es sich nur um eine optische Konfiguration, die nicht als Datenquelle verwendet werden sollte.
Das Maschinenmodel, dass wir verwenden besitzt 6 Zustände.
- Free:
Eine Maschine ist nicht in Verwendung und kann von berechtigten Nutzern ausgeliehen werden.
- In Use:
Eine Maschine wird von einem Nutzer verwendet. Manager von Maschinen können hierbei sehen, welcher Nutzer die Maschine gerade verwendet hat. Sollte der Nutzer die Maschine zurückgeben, dann wird der Nutzer als letzter Nutzer hinterlegt.
Dieser Nutzer ist durch die Verwendung verpflichtet die Sauberkeit der Maschine wieder herzustellen, welche in der Dokumentation hinterlegt ist.
- Reserved:
Eine Maschine wurde von einem Nutzer für einen bestimmten Zeitraum reserviert und kann nur von diesem Nutzer ausgeliehen werden.
Wir möchten nicht, dass Maschinen permanet oder ohne Nutzungsabsicht reserviert werden können, daher können Maschinen nur für einen definierten Zeitraum auf dem Zeitpunkt der Reservierung reserviert werden. Somit können Maschinen für die Anfahrt zum Space reserviert werden und der Nutzer kann dann die Maschine verwenden.
- Blocked:
Eine Maschine kann von einem Manager blockiert werden. Das ermöglicht eine Blockierung abseits von der Reservierung.
Der Zustand sollte verwendet werden, wenn für eine Lehreinheit kurzfristig die Maschine zur Verfügung stehen soll oder für ein Projekt mehrere Tage in Verwendung ist.
- Disabled:
Eine Maschine kann auch außerbetrieb genommen werden, sollte diese nicht vorhanden oder defekt sein.
Um auch andere Zustände als Free, In Use und Reserved zu erreichen, muss der Nutzer die ´Manage´ Berechtigung besitzten.
Die Berechtigungen für Maschinen sind in 4 Teile aufgeteilt.
- Disclose:
Diese Berechtigung ermöglicht es dem Nutzer die Maschine zu entdecken, also beispielsweise in der Maschinenliste im Client angezeit zu bekommen.
- Read:
Mit dieser Berechtigung kann ein Nutzer Informationen zu der Maschine abrufen, wie zu Beispiel die Beschreibung oder den Zustand.
Sollte ein Nutzer eine Read Berechtigung aber keine Disclose Berechtigung haben, dann kann der Nutzer auch Informationen zu dieser Maschine abrufen. Um die Maschine auswählen zu können muss diese dann aber mit einem QR-Code oder einem NTAG markiert sein.
- Write:
Wenn ein Nutzer diese Berechtigung besitzt, dann kann er die Maschine verwenden, als über den Ausleihprozess nutzten. Oder auch die Maschine reservieren.
- Manage:
Sollte ein Nutzer die Maschine nicht zurückgegeben haben, aber nicht mehr vor Ort sein. Dann kann ein Manager mit der Berechtigung den neuen Status der Maschine festsetzten.
Mit der Berechtigung können auch Zustände wie Blocked oder Disabled erreicht werden.
Um Maschinen eindeutig zu ordnen zu können, muss der Maschine eine ID zugeordnet werden. Mit dieser ID kann in der weiteren Konfiguration dann auch ein Aktor oder Initiator an die Maschine gebunden werden. Der Name der Maschine ist dabei unabhängig und frei wählbar. Auch kann der Name im Gegensatz zur ID mehrmals verwendet werden.
# Rollen
Um auf Maschinen zugreifen zu können, müssen Rollen erstellt werden, die dann Nutzern zu geordnet werden können.
Eine Rolle enthält hierbei eine oder mehrere Berechtigungen. Auch können Rollen andere Rollen enthalten, wodruch diese dann die Berechtigungen der anderen Rollen erhalten.
Ein Nutzer dem eine Rolle zugewiesen wird, erhält dadruch alle Berechtigungen, welche der Rolle zugewiesen sind.
Durch die granuelle Aufteilung der Berechtigungen der Maschinen und der Kombination mit Rollen lassen sich komplexe Struturen in einem Space umsetzten.
Eine Rolle kann auch Wildcard Berechtigung enthalten. Dabei wird mit einem `*` oder einem `+` die Berechtigungen für einen Unterbereich der Rolle diefiniert.
Berechtigungen werden hierbei mit einen `.` unterteilt. Das ist für die Verwendung von Wildcards wichtig, um diese entsprechend nutzten zu können.
# Aktoren
Aktoren sind Scripte oder Module, welche bei einer Statusänderung der Maschine ausgeführt werden.
Die Informationen wie man einen eigenen Actor baut, findest du hier.
Aktoren werden zuerst mit den Parametern definiert und können denn mit der festgelegten ID an eine Maschine gebunden werden.
Die Aktoren können auch an mehrere Maschinen gebunden werden und auch eine Maschine kann mit mehreren Aktoren verbunden werden.
# Initiatoren
Initiatoren sind Scripte oder Module, welche den Status einer Maschine ändern können.
Die Informationen wie man einen eigenen Initiatoren baut, findest du hier.
Initiatoren werden zuerst mit den Parametern definiert und können denn mit der festgelegten ID an eine Maschine gebunden werden.
Die Initiatoren können auch an mehrere Maschinen gebunden werden und auch eine Maschine kann mit mehreren Initiatoren verbunden werden.

View File

@ -0,0 +1,37 @@
# Start Konfigurationsdatei
Diese Datei enthält 5 Maschinen mit 3 grundlegenen Rollen und zwei Testnutzern.
Damit kann eine grundlegendes Verständnis für die Konfiguration von FabAccess geschaffen werden.
Wir empfehlen, dass sich zwei Personen als die jeweiligen Nutzer einloggen und einen Ausleih- oder Einweisungsprozess durchspielen.
# Maschinen
* Maschine: Multimeter
Ein Geräte, welches ausgeliehen werden kann. Es wird nicht elektronisch gesichert und stellt einen einfache Ausleihprozess dar.
* Maschine: 3D-Drucker
Eine Maschine, welche über einen Shelly ein und ausgeschaltet werden kann.
Dieser kann von allen Nutzer verwendet werden und unterliegt keinen Rollen Beschränkungen.
* Maschine: Lasercutter
Ein schon komplexerer Maschine, welche nur von erfahrenen Nutzern verwendet werden darf.
Er kann aber von allen Nutzer erkundet werden und dann kann nach einer Einweisung von einem Admin die Rolle für die Berechtigung zugewiesen werden.
* Maschine: Space
Auch der Komplette Space kann als Maschine hinterlegt werden, um das Licht oder Schlüssel zu verwalten.
Wenn es mehere Admin gibt, dann können die anderen Admins sehen wer gerade im Space verantwortlich ist.
* Maschine: Geheimer Kühlschrank
Nicht alle Maschinen oder Geräte müssen für alle Nutzer sichtbar sein.
So bleiben die geheimen Mate-Voräte auch geheim und nur berechtigten Personen können diese Nutzen.
# Rollen und Nutzer
Der Space besitzt 3 Rollen und 2 Nutzer.
Der erste Nutzer ist ein normaler Nutzer des Spaces, welche noch keine Einweisungen für Maschinen erhalten hat.
Der andere Nutzer stellt einen Betreiber und damit Admin da. Dieser kann alle Maschinen sehen, Nutzer verwalten und Berechtigungen verteilen.
Die Rolle `default` ist eine Rolle die jedem Nutzer zugeordnet werden kann. Damit kann der Nutzer die meisten Maschinen entdecken und auch die Dokumentationen lesen. Auch können ungefährliche Maschinen verwendet werden.
Die Rolle `advanced` ist eine Rolle für einen eingewiesen Nutzer, welche auch gefährlichere Maschinen nutzen darf.
Die letzte Rollen `admin` stellt den Betreiber des Space da, welcher alles in seinem Space darf. Und auch seine Nutzer verwalten kann.

31
source/ger_index.rst Normal file
View File

@ -0,0 +1,31 @@
Wilkommen bei der FabAccess Dokumentation!
======================================
FabAccess ist ein Projekt zur Automatisierung von Abläufen in offenen Werkstätten und anderen Spaces (Makerspace, Hackerspace, etc.).
Wir möchten damit die Sicherheit im Umgang mit Maschinen erhöhen und den Betreibern die Verwaltung der Geräte vereinfachen.
Da wir FabAccess kontinuierlich weiterentwickeln kann es zwischen den Versionen zu Kompatibilitätsproblemen kommen.
FabAccess ist ein OpenSource Projekt und wir veröffentlichen unseren Code auf GitLab.
Sollten Probleme auftreten können Issues auf GitLab erstellt werden.
FabAccess besteht aus einem Server (BFFH geschrieben in Rust) und einem Client (Borepin geschrieben in C#).
Den Server muss jeder Space für sich aufsetzten und betreiben. Unseren Client stellen wir über die Platformspezifischen Stores bereit.
Es steht natürlich jedem frei seinen eigenen Client zu schreiben und über die API (geschrieben in Cap'n Proto) mit dem Server anzubinden.
Da wir als Projekt nicht für jeden Ablauf bei euch im Space einen Prozess einbauen können, sind die Funktionen von FabAccess erweiterbar und anpassbar.
Ihr könnt als eure eigenen Geräte (Actoren) über die Scipting API anschließen.
Wir stellen jedoch für den Einstieg passende Scripte zu den gängsten Actoren bereit.
Wir freuen uns über eure Unterstützung und Rückmeldungen, dazu könnt ihr unserer Community auf Matrix beitreten und euch mit anderen Betreibern austauschen.
In unsere Dokumentation findet Ihr Anleitungen zum Aufsetzten eurer Server, Beispielkonfigurationen, Empfehlungen zur Integration in eueren Space und Informationen zum Schreiben eurer eigener Actoren.
.. toctree::
:maxdepth: 1
:caption: Contents:
installation/installation.rst
configuration/configuration.rst
usage/usage.rst

View File

@ -0,0 +1,13 @@
# Aufsetzten eines eigenen FabAccess Servers (BFFH)
Um FabAccess in euerem Space zu nutzten, müsst ihr einen eigenen Server aufsetzten und konfigurieren.
Unser Server ist geschrieben in Rust und kann mit dem Tool Cargo gebaut werden.
Mehr Informationen zum Bauen des Servers findet ihr hier.
Wenn ihr eine Containierisitert Serverinfrastruktur verwendet, dann stellen wir automatisch gebaute Images bereit.
Mehr Informationen zum Nutzen der Conatiner findet ihr hier.
Um den Server zu starten zu bringen müsst ihr eine Konfigurationsdatei erstellen und anfängliche Nutzer einladen.
Die Informationen zu der Konfigurationsdatei findet ihr hier.
Die Informationen zu der Nutzerdatei findet ihr hier.