# Entitäten

## Projekt

Jedes Projekt hat eine eigene Konfig-Datei im YAML-Format [config.yml](../projektkonfig/config.yml.md) deren Aufbau später beschrieben wird.

Wird der Server als "root" ausgeführt, so werden die individuellen Projekt-Threads mit der Benutzer- und Gruppenberechtigung der [config.yml](../projektkonfig/config.yml.md) Datei ausgeführt. Somit ist ein Multi-Mandanten-Server mit getrennten Dateisystem-Berechtigungen möglich.

Die Projektkonfiguration ist zwingend notwendig und wird beim Anlegen oder Bearbeiten von Projekten über die Rest-API neu eingelesen.

## Benutzer

Im Tibi gibt es 3 Benutzerarten:

-   `admin`: Zugriff auf alle Projekte & alle Berechtigungen auf diesen Projekten.
-   `editor`: Zugrff auf jene Projekte, denen er zugeordnet wird.
-   `user`: Kein Zugriff auf Tibi admin Oberfläche, jedoch über API auf jene Projekte, denen er zu gewiesen wurde und in den jeweiligen Collections jene Berechtigungen, die er über das Permissions Objekt in der Collection erhalten hat.
    ```yaml
    permissions:
        user:
            methods:
                get: true
                post: true
                put: true
                delete: true
    ```
