ctRestClient - Benutzerhandbuch¶
Ăśberblick¶
ctRestClient ist ein Kommandozeilen-Tool, das den Export von Gruppen aus ChurchTools als CSV-Dateien ermöglicht. Dies ist besonders nützlich für die Erstellung von Serienbriefen mit Tools wie Microsoft Word oder Adobe InDesign.
Hauptfunktionen¶
- Export von ChurchTools-Gruppen: Exportiert Mitgliederdaten aus dynamischen Gruppen
- CSV-Format: Ausgabe in standardisierten CSV-Dateien
- Sichere Token-Verwaltung: Verwendung von KeePass-Datenbanken fĂĽr API-Token
- Multi-Instanz-UnterstĂĽtzung: Gleichzeitiger Export von mehreren ChurchTools-Instanzen
- Konfigurierbare Datenfelder: Flexible Auswahl der zu exportierenden Felder
- PlattformĂĽbergreifend: VerfĂĽgbar fĂĽr Windows, macOS und Linux
Voraussetzungen¶
Software-Anforderungen¶
- KeePassXC: KeePassXC muss installiert sein und das Kommandozeilen-Tool
keepassxc-climuss im System-PATH verfĂĽgbar sein - Windows:
keepassxc-cli.exebefindet sich meist unterProgram Files/KeePassXC - macOS:
keepassxc-clibefindet sich meist unter/Applications/KeePassXC.app/Contents/MacOS - Linux:
keepassxc-clibefindet sich meist unter/usr/binoder/usr/local/bin
Wichtig: Ohne keepassxc-cli im PATH kann ctRestClient nicht auf die Token-Datenbank zugreifen!
- ChurchTools-Zugang:
- GĂĽltiger API-Token fĂĽr jede ChurchTools-Instanz
- Berechtigung zum Lesen der entsprechenden Gruppen
Hardware-Anforderungen¶
- Minimal: Beliebiges System mit ausreichend Speicher fĂĽr die zu exportierenden Daten
Installation¶
1. Executable herunterladen¶
Laden Sie die Software von GitHub herunter.
Das herunterzuladende Archiv trägt den Namen ctRestClient_<version>.tar.gz. In diesem Archiv befinden sich die ausführbaren Binaries für Windows, Linux, und MacOs.
2. KeePass-Datenbank einrichten¶
Erstellen Sie eine KeePass-Datenbank (.kdbx-Datei) und speichern Sie Ihre ChurchTools-API-Token:
- Ă–ffnen Sie KeePassXC
- Erstellen Sie eine neue Datenbank
- FĂĽr jede ChurchTools-Instanz erstellen Sie einen Eintrag:
- Titel: Ein eindeutiger Name (z.B.
meineKirche) - Passwort: Ihr ChurchTools-API-Token
- Speichern Sie die Datenbank als
churchtools-tokens.kdbx(empfohlener Name)
3. Ordnerstruktur¶
Erstellen Sie folgende Ordnerstruktur:
mein-projekt/
├── ctRestClient-[platform] # Die Executable
├── config.yml # Konfigurationsdatei
├── churchtools-tokens.kdbx # KeePass-Datenbank
├── data/ # ggf. Daten für Wertumwandlungen
└── exports/ # Ausgabeverzeichnis (wird automatisch erstellt)
Konfiguration¶
Grundlegende Konfiguration¶
Die Konfiguration erfolgt ĂĽber eine YAML-Datei. Hier ein Beispiel (config.yml):
instances:
- hostname: meineKirche.de
token_name: meineKirche
groups:
- name: Konfirmanden
fields: [id, firstName, lastName, sexId, street, zip, city]
- name: Eltern von Konfirmanden
fields: [id, firstName, lastName, sexId, email]
Konfigurationsparameter¶
Instanzen (instances)¶
- hostname: Die Domäne Ihrer ChurchTools-Instanz (ohne https://)
- token_name: Name des Token-Eintrags in der KeePass-Datenbank
- groups: Liste der zu exportierenden Gruppen
Gruppen (groups)¶
- name: Exakter Name der Gruppe in ChurchTools
- fields: Liste der zu exportierenden Datenfelder
Erweiterte Feldkonfiguration¶
Wertumwandlung mit benutzerdefinierten Spaltennamen¶
ctRestClient unterstützt die automatische Umwandlung von ChurchTools-Werten in benutzerfreundlichere Ausgaben. Gleichzeitig können Sie dabei auch die Spaltennamen in der CSV-Ausgabe anpassen.
Funktionsweise:
- Werte werden aus YAML-Dateien im data/-Verzeichnis gelesen
- Der Pfad folgt dem Schema: data/<modul>/<feldname>.yml
- FĂĽr das Feld sexId im Modul persons: data/persons/sexId.yml
- Spaltennamen können mit columnname angepasst werden
Beispiel fĂĽr die Umwandlung der sexId-Werte:
Erstellen Sie die Datei data/persons/sexId.yml:
1: männlich
2: weiblich
3: divers
Konfiguration:
fields:
- id
- firstName
- lastName
- {fieldname: sexId, columnname: "geschlecht"}
- birthday
Beispielkonfigurationen¶
Geburtstagslisten¶
instances:
- hostname: meineKirche.de
token_name: meineKirche
groups:
- name: Konfirmanden
fields: [id, firstName, lastName, sexId, street, zip, city]
- name: Eltern von Konfirmanden
fields: [id, firstName, lastName, sexId, email]
Multi-Instanz-Setup¶
instances:
- hostname: kumulus.meineKirche.de
token_name: kumulus
groups:
- name: Kindergottesdienst
fields: [id, firstName, lastName]
- hostname: stratus.meineKirche.de
token_name: stratus
groups:
- name: Jugendgruppe
fields: [id, firstName, lastName, email]
Verwendung¶
Kommandozeilen-Parameter¶
ctRestClient [OPTIONS]
VerfĂĽgbare Optionen:¶
-c <pfad>: Pfad zur Konfigurationsdatei- Standard:
config.ymlim Verzeichnis der Executable -k <pfad>: Pfad zur KeePass-Datenbank- Standard:
passwords.kdbxim Verzeichnis der Executable -o <pfad>: Ausgabeverzeichnis fĂĽr CSV-Dateien- Standard:
exports/im Verzeichnis der Executable -d <pfad>: Pfad zum Datenverzeichnis fĂĽr Wertumwandlungen- Standard:
data/im Verzeichnis der Executable
Grundlegende AusfĂĽhrung¶
Windows¶
ctRestClient-windows-amd64.exe
macOS¶
./ctRestClient-darwin-arm64 # FĂĽr Apple Silicon
./ctRestClient-darwin-amd64 # FĂĽr Intel-Macs
Linux¶
./ctRestClient-linux-amd64
AusfĂĽhrung mit benutzerdefinierten Pfaden¶
# Mit spezifischer Konfiguration
./ctRestClient-linux-amd64 -c /pfad/zu/meiner/config.yml
# Mit spezifischer KeePass-Datenbank
./ctRestClient-linux-amd64 -k /pfad/zu/tokens.kdbx
# Mit spezifischem Ausgabeverzeichnis
./ctRestClient-linux-amd64 -o /pfad/zu/exports/
# Mit spezifischem Datenverzeichnis
./ctRestClient-linux-amd64 -d /pfad/zu/data/
# Kombination aller Parameter
./ctRestClient-linux-amd64 -c config.yml -k tokens.kdbx -o exports/ -d data/
Automatisierung mit Skripten¶
Bash-Skript fĂĽr Linux/macOS (export.sh)¶
#!/usr/bin/env bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Plattform erkennen
OS=$(uname -s)
ARCH=$(uname -m)
case "$OS" in
"Darwin")
export PATH=$PATH:/Applications/KeePassXC.app/Contents/MacOS
case "$ARCH" in
"arm64")
EXECUTABLE="$SCRIPT_DIR/ctRestClient-darwin-arm64"
;;
"x86_64")
EXECUTABLE="$SCRIPT_DIR/ctRestClient-darwin-amd64"
;;
esac
;;
"Linux")
export PATH=$PATH:/usr/bin:/usr/local/bin
EXECUTABLE="$SCRIPT_DIR/ctRestClient-linux-amd64"
;;
esac
# AusfĂĽhrung
chmod +x "$EXECUTABLE"
"$EXECUTABLE" -k "$HOME/churchtools-tokens.kdbx" -c "$SCRIPT_DIR/config.yml"
Batch-Skript fĂĽr Windows (export.bat)¶
@echo off
set SCRIPT_DIR=%~dp0
set EXECUTABLE=%SCRIPT_DIR%ctRestClient-windows-amd64.exe
"%EXECUTABLE%" -k "%USERPROFILE%\churchtools-tokens.kdbx" -c "%SCRIPT_DIR%config.yml"
pause
Ausgabe¶
Dateistruktur¶
Der Export erstellt folgende Struktur:
exports/
└── [DATUM]_[ZEIT]/
├── ctRestClient.log
└── [HOSTNAME]/
├── [Gruppenname_1].csv
├── [Gruppenname_2].csv
└── ...
Beispiel:
exports/
└── 2025.08.06_14-30-15/
├── ctRestClient.log
└── ihre-kirche.krz.tools/
├── Konfirmanden.csv
└── Eltern_von_Konfirmanden.csv
CSV-Format¶
Die CSV-Dateien verwenden:
- Trennzeichen: Semikolon (;)
- Kodierung: UTF-16 Little Endian mit BOM
- Erste Zeile: SpaltenĂĽberschriften
Beispiel-Inhalt:
id;firstName;lastName;street;zip;city
123;Max;Mustermann;MusterstraĂźe 1;12345;Musterstadt
124;Maria;Musterfrau;Beispielweg 2;54321;Beispielort
Logging¶
Detaillierte Informationen über die Ausführung finden Sie in der ctRestClient.log-Datei im Ausgabeverzeichnis. Diese enthält:
- Zeitstempel aller Aktionen
- Erfolgreiche Exports
- Fehlermeldungen mit Details
- Performance-Informationen
Best Practices¶
Sicherheit¶
- KeePass-Datenbank schĂĽtzen: Verwenden Sie ein starkes Master-Passwort
- API-Token rotieren: Erneuern Sie regelmäßig Ihre ChurchTools-Token
- KeePassXC aktuell halten: Installieren Sie regelmäßig Updates für KeePassXC, um Sicherheitslücken zu schließen
- Dateiberechtigungen: Beschränken Sie den Zugriff auf Konfigurationsdateien
- Sichere Ăśbertragung: Stellen Sie sicher, dass ChurchTools ĂĽber HTTPS erreichbar ist
Performance¶
- Feldauswahl optimieren: Exportieren Sie nur benötigte Felder
- Gruppengröße beachten: Bei sehr großen Gruppen kann der Export länger dauern
- Netzwerkverbindung: Verwenden Sie eine stabile Internetverbindung
Organisation¶
- Sinnvolle Dateinamen: Verwenden Sie aussagekräftige Konfigurationsdateinamen
- Konfigurations-Backups: Erstellen Sie regelmäßig Backups Ihrer Konfigurationsdateien
- Dokumentation: Dokumentieren Sie spezielle Konfigurationen fĂĽr Ihr Team
- Automatisierung: Nutzen Sie Skripte fĂĽr wiederkehrende Exporte
Lizenz¶
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE-Datei fĂĽr Details.