Importer VCF
Der VCF Importer kann Kontakt Daten aus VCard Dateien oder via CardDAV / CVF via HTTP lesen und in einer Importer HTTP Schnittstelle bereit stellen.
Konfiguration mit t2core
Die Konfiguration erfolgt über Environment Variablen im Container. Diese werden über t2core entsprechend gesetzt beim Starten der Container.
VCF aus Datei lesen
Liest Kontakte aus einer lokalen Datei /trizwo-vcf-exporter/examples/support.vcf
.
Diese wird mit dem Importer Container ausgeliefert als Beispiel und ist daher bereits vorhanden.
Externe Dateien müssen dem Importer Container in das Dateisystem gemountet werden.
Die Konfiguration beschränkt sich auf die Angabe der VCF Datei:
# File to read from. In this case a example file shiped inside to t2core Container.
file: /trizwo-vcf-exporter/examples/support.vcf
VCF via HTTP lesen
Liest Kontakte von einem VCard/CardDAV Server via HTTP. Die Konfiguration beschränkt sich auf die Angabe der VCF Datei:
# url to read from.
url: https://intranet.trizwo.de/remote.php/dav/addressbooks/users/rico/rico/?export
# Login on Request to CardDAV Server. Used, if username is set and not empty
username: user1
# Login Password
password: passowrd_user1
# Login method used. Options are digest or basic, default is basic
auth: basic
# Check TLS Certificate on Requests to CardDAV Server. Options are true/false, default is set to true
verify: true
# HTTP Request Method. Only GET supported. default is GET ^^
method: "GET"
Bemerkung
Wenn der CardDAV Server eine Nextcloud Installation ist, dann wird die URL zum Laden der Kontakte aus der Contacts Apps vermutlich dem Schema https://< hostname >/remote.php/dav/addressbooks/users/< username> >/< addressbookname >/?export
folgen.
Konfiguration als externer Importer
Greifen mehrere t2core Instanzen auf einen Importer zu, kann dieser als sog. ‚externer Importer‘ laufen.
Dabei werden die Importer über docker-compose konfiguriert und gestartet.
Die diese Importer nutzenden t2core Instanzen verbinden sich dann über HTTP, statt die Importer lokal zu starten.
In einer entsprechenden docker-compose Datei werden die zum Betrieb nötigen Parameter wie file
oder url
oder username
und password
werden als Environment Variablen gesetzt.
1version: "3.7"
2services:
3 import_user1:
4 image: docker.io/tri2/t2-core-importer-vcf:latest
5 restart: always
6 ports:
7 - 7777:8000
8 environment:
9 URL: http://192.168.178.24:7778/remote.php/dav/addressbooks/users/user1/contacts?export
10 USERNAME: user1
11 PASSWORD: password1
12
13 import_user2:
14 image: docker.io/tri2/t2-core-importer-vcf:latest
15 restart: always
16 ports:
17 - 7776:8000
18 environment:
19 URL: https://web.example.com/remote.php/dav/addressbooks/users/user2/contacts?export
20 USERNAME: user2
21 PASSWORD: password2
22 VERIFY: true
23 AUTH: digest
In diesem Beispiel werden die Kontakte von zwei Usern abgeholt und auf den jeweiligen Importern als JSON/YAML auf HTTP Ports erreichbar gemacht.
Im t2core können dann externe Importer
angelegt werden, die die Daten von http://<host>:7777/json
bzw. http://<host>:7776/json
abrufen.
Konfiguration Import von Dateien
In Abwandlung des vorstehenden Beispiel ẁerden hier zwei Importer konfiguriert, die Dateien zum Importieren gemountet bekommen und anschließend via Port 7777 und 7776 angerufen werden können.
1version: "3.7"
2services:
3 import_file1:
4 image: docker.io/tri2/t2-core-importer-vcf:latest
5 restart: always
6 ports:
7 - 7777:8000
8 environment:
9 FILE: /data/file_import.vcf
10 volumes:
11 - /path/on/the/host/file_support.vcf:/data/file_import.vcf:ro
12
13 import_file2:
14 image: docker.io/tri2/t2-core-importer-vcf:latest
15 restart: always
16 ports:
17 - 7776:8000
18 environment:
19 FILE: /data/file_import.vcf
20 volumes:
21 - /path/on/the/host/file_internal.vcf:/data/file_import.vcf:ro
In diesem Beispiel werden die Dateien /path/on/the/host/file_internal.vcf
und /path/on/the/host/file_support.vcf
auf den jeweiligen Importern als JSON/YAML auf HTTP Ports erreichbar gemacht.
Im t2core können dann externe Importer
angelegt werden, die die Daten von http://<host>:7777/json
bzw. http://<host>:7776/json
abrufen.
CLI Tool
Im Container ist ein Tool installiert, mit dem das Abholen und das Umwandeln zu JSON getestet werden kann:
root@a5a5adf29a6e:/trizwo-vcf-importer# ./reader.py --help
usage: reader.py [-h] [--file FILE] [--url URL] [--username USERNAME]
[--password PASSWORD] [--output OUTPUT] [--verify VERIFY]
[--auth AUTH]
convert VCF to JSON
optional arguments:
-h, --help show this help message and exit
--file FILE read VCF Data from file
--url URL read VCF Data from HTTP. maybe requires setting
connection Parameters like User/Pass.
--username USERNAME HTTP Username
--password PASSWORD HTTP Password
--output OUTPUT Outfile to write JSON Data
--verify VERIFY check TLS Certificate at HTTP Request
--auth AUTH used HTTP Auth Method. digest/basic (default)
Beispiel Abruf via Url mit Login per Digest Auth und Ausgabe per contacts.json
:
./reader.py --output contacts.json --auth digest --username user1 --password password2 --url "http://192.168.178.24:7778/remote.php/dav/addressbooks/users/user1/contacts?export"