# config.yml

Die Datei "config.yml" ist der Einstieg in die API-Konfiguration eines Projekts. Die Datei kann sich an einem beliebigen Ort befinden. Die einzige Bedingung ist, dass sie durch den tibi-server lesbar ist.

Es hat sich jedoch als günstig erwiesen bei Webprojekten die Datei und alle anderen Datein, die zur API-Konfiguration gehören, im ordner "/api/" unterhalb des eigentlichen Webprojektes anzuordnen. Die Quellen des Frontends und der API können somit in ein Mono-Repo eingecheckt werden.

## Aufbau

```yaml
# Der Namespace legt die eigentliche Projektbezeichnung und
# den Datenbankkontext fest.
# Er sollte nach Projektinitialisierung auf dem tibi-server
# nicht mehr angepasst werden.
# In den Projekteinstellungen im tibi-server kann der Namespace
# durch einen Datenbankeintrag überschrieben werden.
# Über die Bezeichnung des Namespace plus einen Prefix der in
# der globalen Server-Konfig hinterlegt ist, definiert sich der
# Datenbank-Name innerhalb der MongoDB.
namespace: demo

# Das "meta"-Objekt ist frei definierbar, wird aber vom
# tibi-admin in spezieller Form erwartet.
# Mögliche Angaben, die der tibi-admin versteht, sind hier mit
# aufgeführt.
meta:
  # Pfad zu einer Bilddatei die als Projektbild in der Admin-UI
  # verwendet wird
  imageUrl: https://testversion.online/demo.png
    
  # Liste möglicher Berechtigungen, die Benutzern zugeordnet
  # werden können
  permissions:
    - # Name der Berechtigung
      name: news
      # Label für die Anzeige im Admin
      # (kann string oder object mit Sprachen als keys sein)
      label:
        de: Neuigkeiten
        en: News
            
    - name: pages
      label:
        de: Seiten
        en: Pages
    
# "collections" ist eine Auflistung von
# Kollektions-Konfigurationen. 
# Hier bietet sich eine Auslagerung und Einbidnung via
# YAML-Tag "!include" an.
collections:
  - !include collections/democol.yml
```