Taskserver (big picture) ...
So, nach der zweiten Beta von Taskwarrior 2.3.0 und Taskserver 1.0.0 ist es einmal an der Zeit, die Ideen hinter der Software zu erklären. Ich werde eine kleine Artikelreihe starten, in der ich auch das Aufsetzen eines eigenen Servers näher beleuchten werde.
Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.
Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.
Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.
Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.
Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:
Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...
Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.
Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.
Um das mal in "Datenbank-Relationen" aufzulösen:
Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.
Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.
Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.
Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.
Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.
Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:
- Username in einer für Menschen lesbaren Form, zum Beispiel "Dirk Deimeke".
- Das Passswort ist eine UUID (Unique User ID), so dass auch mehrere User gleichen Namens angelegt werden können.
- Datei: client.cert.pem zur Identifiation als valider Client.
- Datei: client.key.pem für die Verschlüsselung des Datentransfers.
- Um die Verbindung aufzubauen sind noch server:port nötig.
Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...
Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.
Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.
Um das mal in "Datenbank-Relationen" aufzulösen:
- 1:n host:server (auf einem Host können mehrere Serverinstanzen laufen).
- 1:n server:clients (gegen einen Server können sich viele Klienten verbinden).
- 1:n server:organisations (ein Server kann mehrere Organisationen verwalten, hier wäre n:m aus Hochverfügbarkeitsgründen prima)
- 1:n clients:users (das ist noch etwas schwierig, es gibt derzeit nur ein Client-Zertifikat, eventuell wird das mal 1:1 der n:1)
- 1:n organisations:users (eine Organisation kann mehrere User beherbergen, später kann vielleicht ein User auch in mehreren Organisationen sein (n:m), das geht momentan nur mit verschiedenen Konfigurationsoptionen)
- Später: 1:n users:groups (e
- Später: 1:n orgs:groups
Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.