# FabAccess
![](https://pad.ccc-p.org/uploads/33b7b25a-c72d-45d1-a687-5d454f596380.png =x300)
----
# FabAccess v0.4
~ digging^Stuttgart ~
<!-- .slide: data-background="https://pad.ccc-p.org/uploads/02d3b469-0f81-47c2-90f1-89d297bc0542.png" data-background-repeat="repeat" data-background-size="100px" --></div>
---
## What is FabAccess?
A machine access system for open workshops.
<span>Sounds easy, doesn't it .. set 1 bit - machine on, reset 1 bit - machine off. Done.
<!-- .element: class="fragment" data-fragment-index="1" --></span>
<span>Well, turn's out .. not that easy.
<!-- .element: class="fragment" data-fragment-index="2" --></span>
----
### Why do we need it anyway?
- There are two kinds of machines
- those who hurt people
- and the others.
- There are two kinds of workspace users
- those who clean up
- and the others.
<span style="font-size:32pt;color:#FF0000;">***If you need to get along with all four of them .. gl,hf - or use FabAccess.***
<!-- .element: class="fragment" data-fragment-index="1" --></span>
Note:
[^first]: The machines that hurt people are the most interesting (in most cases).
[^second]: Normally - without Fabaccess - in open workshops, those who like to clean up are punished and those who leave the machines messy are rewarded.
I work in a university - that's not an incentive I want to put in place.
----
### Why wasn't it that easy?
| role based access | federation | safety |
| security | attribute based access | stability |
| easy to install | modularity | different machines |
| accessibility | time&money | different workshops |
| complex activation schemes |
<span style="font-size:32pt;color:#FF0000;">***We wanted (and needed) a lot
more than "works for me"
(TRL9)***
<!-- .element: class="fragment" data-fragment-index="2" --></span>
Note:
Lots and lots of requirements.
----
![](https://pad.ccc-p.org/uploads/f53ace38-c401-4edc-a119-627c2b72d69d.png)
----
![](https://pad.ccc-p.org/uploads/af17fb22-4871-4258-bc51-58ef9dd44f77.png =x900)
----
![](https://pad.ccc-p.org/uploads/09ff193d-fb9e-4cee-9e60-44cdbca8bfe1.png)
---
## Perspectives
* for the workspace manager, the system should ...
* ensure safe operation
* enforce some social guidelines
* ... and ...
* be easy to install & configure
* be stable to operate
* be maintained with little to no effort
<span style="font-size:20pt;color:#DD0000;">***... fit into the workspace - not make the workspace fit into FabAccess.***
<!-- .element: class="fragment" data-fragment-index="1" --></span>
----
## Perspectives
* for the workspace user the system should...
* be easy to access
* be fast & clear to use
* reduce effort
---
### Ease of installation & configuration
* Installation is actively documented @ readthedocs.
* Configuration via dhall / toml-files
* GUI would be great
* the files are well documented - and you only touch them once.
* Attaching new machines is easy via python / bash / ...
* growing nr. of examples are @ gitlab
----
### Stability
* selected programming languages / Frameworks
* backend: rust
* API: Cap'n Proto
* reference client: C# / Xamarin
* actively thinking about AvaloniaUI to address GTK / Linux
----
### Maintenance
* backward-compatible config & API as of version 1.0
* structured log files of events
-----
### Accessibility
* App is in most app-stores (including FDroid)
* Free apk available
----
### Usage
* Sensible messages via OLED / ePaper display
* Federation
-----
### Effort / speed of usage
* Machines can be activated via NFC card
----
## Supported hardware devices
### Out of the box
* DESfire EV2
* FabReader
* Shelly Plugs (v1 & v2)
* RasPi / LXC / Proxmox
-----
### Easily extendable
* Python, Bash, everything that connects to Cap'nProto
---
## What next?
* [x] ~~0.1 historic Alpha~~
* [x] ~~0.2 Joris-Alpha (*01/2022*)~~
* [x] ~~0.3 public Alpha (41/2022)~~
* [x] **0.4 Beta** (*now*)
* [ ] 1.0 Stable (*Q1 2023*)
-----
Primarily talking about the API-Version!
server-/reference-client versioning can differ.
Clients in the AppStores need to fit the version of the server until 1.0
----
### 1.0 ~ layover@BB ~
#### the more abstraction, the better.
#### OpenID Connect (keycloak)
#### even more complex states
"Switch on only when cooling/ventilation is on."
"Switch off, when the last one has left."
----
### 1.x ~ tbd. ~
#### Federation
"Workshops have the technical basis for contracts that make life easier for everyone & save plastic cards."
#### Blink, colorful, stable & fancy (with glitter)
---
## Team
\> 64, growing community
##### Berlin / Potsdam:
@dequbed (Backend)
@TheJoKlLa (Reference & Client)
@rand0mu5eR (Deployment & NFC)
@Knurps (confusion and other things)
##### Bocholt:
@JorBi (hardware, pain, documentation & more)
nobody: ~~Blockchain~~
----
### Organizations
* Verbund offener Werkstätten (VOW) (https://www.offene-werkstaetten.org/)
* Fab:UNIverse (https://fab101.de/fabuniverse/)
* Berlin university of applied science (BHT) (http://www.bht-berlin.de/)
* RKLM UG
-----
### Supported by ...
* Prototype-Fund (https://prototypefund.de/)
* FabCity HH (https://www.fabcity.hamburg/)
---
## Give it a try / get involved...
* https://gitlab.com/fabinfra/
* https://fab-access.readthedocs.io/
-----
* https://www.fab-access.org/
![](https://pad.ccc-p.org/uploads/3a6ffa7a-5401-4808-a0f4-46ba93f06e0c.png =300x300)