Der grobe Aufbau einer Konfigurations-Datei lässt sich in der [Beispiel-Konfiguration](misc/conf-example.dvn.json) sehen.
### Bezüge
_Bezüge_/_Realms_ dienen die Daten-Quellen. Sie sind in der Konfiguration im Knoten `realms` zu erfassen. Jeder Bezug hat:
- einen Namen (`name`),
- eine Zugangs-Definition (`auth`)
- eine Quell-Definition (`source`)
Beispiel:
```json
"realms": [
{
"name": "foo",
"auth": …
"source": …
},
{
"name": "bar",
"auth": …
"source": …
}
]
…
```
### Authentifizierungen
_Authentifizierungen_ steuern wie auf einen Bezug zugegriffen wird.
#### Fest
- es wird ein festes Passwort erwartet
- Beispiel:
```json
"auth": {
"kind": "static",
"data": {
"password": "secret"
}
}
```
#### Durchleiten
- es wird kein bestimmtes Passwort erwartet
- das eingegebene Passwort wird an den Aufruf der Quelle weitergeleitet
- Beispiel:
```json
"auth": {
"kind": "pass_through"
}
```
### Quellen
_Quellen_ sind die Stellen, die aufgerufen werden um die rohen Kalender-Daten zu erhalten.
#### ICS-Feed
Kalender-Daten, welche im [iCalendar](https://de.wikipedia.org/wiki/ICalendar)-Format `ics` vorliegen, können wie folgt eingebunden werden:
```json
"source" :{
"kind": "ics_feed",
"data": {
"url": "https://events.example.org/concerts.ics",
"conflate": true
}
}
```
`url` ist hierbei schlicht die URL zur `ics`-Datei. Diese kann man den Platzhaltern `{{username}}` und `{{password}}` versehen sein. Im Fall einer Authentifizierung mittels Durchleiten, werden diese Platzhalter durch die konkret vorliegenden Werte ersetzt.
Der Schalter `conflate` steuert, ob die erhaltenen Termine in einen Kalender zusammengefasst werden sollen, statt sie gemäß ihrer `VEVENT`-Feld-Werte `CATEGORIES` aufzutrennen. Das hat Auswirkungen auf die URL, die man im CalDAV-Client einstellen muss. Kommen in einer `ics`-Datei bspw. die `CATEGORIES`-Werte `day` und `night` vor und der Bezug hat den Name `music`, dann würden bei `"conflate": false` die Ziel-URL-Pfade `/calendars/-/music-day` und `/calendars/-/music-night` anliegen; bei `"conflate": true` nur `/calendars/-/music`.