Informationen für Entwickler

OwnYourData wird vom gemeinnützigen Verein zur Förderung der selbstständigen Nutzung von Daten entwickelt. Alle Elemente davon sind unter der MIT-Lizenz veröffentlicht und auf Github verfügbar. Wenn du ebenfalls an OwnYourData mitarbeiten möchtest, findest du auf dieser Seite die notwendigen Informationen.

Inhalt

Architektur Übersicht

Die Architektur strebt eine Trennung zwischen Speicherung und Verarbeitung von Daten an und ist im folgendem Bild schematisch dargestellt.

Datentresor

Das zentrale Element zur Speicherung und Verwaltung von Daten in OwnYourData ist der Datentresor. Er besteht im wesentlichen aus einer Datenbank und einer Zugriffsverwaltung darauf mittels OAuth2. Apps und Services müssen mit einem Manifest registriert werden wodurch eine ID und ein Secret erstellt wird. Eine Client-Anwendung (App) erhält nach Bereitstellung von ID und Secret einen Token mit dem ein Zugriff auf die im Manifest definierten Daten möglich ist.

Source Code des Datentresors: https://github.com/ownyourdata/oyd-pia
Docker Image für Datentresor: https://hub.docker.com/r/oydeu/oyd-pia/
Anmerkung: der interne Name PIA für den Datentresor ist die Abkürzung für Personal Information Archive

Manifest

Ein Manifest beschreibt eine App oder ein Service und definiert auf welche Daten in welcher Form zugegriffen werden darf. Es ist in JSON und enthält folgende Felder:

  • identifier: eindeutiger, interner Name
  • name: angezeigter Name
  • version: Version als Zeichenkette
  • versionNumber: Version als Ganzzahl
  • description: kurze Beschreibung der App / des Services
  • permissionStr: durch Beistriche getrennte Aufzählung der Listen (Repos) auf die zugegriffen werden darf; mögliche Zugriffe sind:
    • read: lesen
    • write: schreiben
    • update: ändern
    • delete: löschen

    der Syntax für jeden Eintrag ist {Liste}:{Zugriff}; bei der Angabe der Liste ist am Ende das Wildcard * möglich

  • appUrl: Link zur gehosteten Version der App
  • mobileUrl: Link zur gehosteten Version der für kleine Bildschirme optimierten App
  • infoUrl: Link zu Informationen über die App
  • picture: base64 enkodiertes Bild das im Datentresor angezeigt wird

App

Apps in OwnYourData stellen die Funktionen zum Sammeln, Auswerten und Anzeigen von Daten zur Verfügung. Dazu müssen sie sich via OAuth2 beim Datentresor anmelden und können dann auf die im angegebenen Manifest definierten Daten zugreifen. Der Zugriff auf den Datentresor ist in Tutorials für folgende Sprachen demonstriert:

Außerdem gibt es für R Templates um Shiny-Apps für Desktop und Mobile Endgeräte zu erstellen.

App Anbieter

Zur einfachen Installation von Apps können Manifeste bei einem App-Anbieter gespeichert werden. Der Datentresor zeigt die verfügbaren Manifeste auf der Startseite an, und mit einem Klick kann ein Manifest dann im Datentresor hinzugefügt werden. Beim Einrichten eines Datentresors wird der OwnYourData App Store (https://sam.datentresor.org) eingerichtet und listet alle Apps auf. Jeder kann selbst auch Apps anbieten und Benutzer tragen die entsprechende URL im Dialog „App-Anbieter hinzufügen“ ein.

Source Code für App-Anbieter: https://github.com/ownyourdata/oyd-sam
Anmerkung: der interne Name SAM für App-Anbieter ist die Abkürzung für Store for AlgorithMs

Deployment Szenarien

OwnYourData Datentresor

Die Verwendung des eigenen Datentresors und Apps gehostet von OwnYourData ist die einfachste Form der Verwendung. Fordere auf der Startseite von OwnYourData.eu einen Datentresor an und füge im App Store die gewünschen Apps mit „Install“ hinzu. Installierte Apps werden durch Klicken auf Öffnen gestartet.

Cloud

Verschiedene Cloud Dienste bieten das Hosting von Docker Containern an, z.B. https://sloppy.io oder https://elastx.se. Datentresor und Apps stehen als Docker-Images auf Dockerhub hier zur Verfügung: https://hub.docker.com/r/oydeu/.

Gehe wie folgt bei der Einrichtung von OwnYourData beim gewünschten Cloud Dienst vor:

  1. starte den Datentresor Container (oydeu/oyd-pia)
  2. installiere die gewünschen Apps im Datentresor
  3. starte die zugehörigen Container beim gewählten Cloud Dienst
  4. verbinde dich von einer App zum Datentresor mit den Credentails die im Details-Dialog der App im Datentresor angegeben sind

Laptop/PC

Um OwnYourData am eigenen PC zu betreiben benötigst du Docker, installiere zuerst eine aktuelle Version für dein Betriebssystem.

Führe dann der Reihe nach die folgenden Schritte aus:

  1. starte den Datentresor:
    docker run -d -p 8080:8080 oydeu/oyd-pia
  2. öffne den Datentresor im Browser unter folgender Adresse: http://192.168.99.100:8080
    Anmerkung: abhängig vom Betriebssystem kann die verwendete IP-Adresse unterschiedlich sein, verwende docker-machine ip um die korrekte Adresse herauszufinden
  3. starte die gewünschte App:
    docker run -d -p {freier Port}:3838 oydeu/app-{gewünschte App}
    (unter https://hub.docker.com/r/oydeu/ sind alle verfügbaren Apps aufgelistet)
  4. öffne die App im Browser unter folgender Adresse:
    http://192.168.99.100:{gewählter Port}
  5. Verbinde dich über den Dialog Konfiguration in der App mit dem zuerst gestarteten Datentresor

Ein-Platinen-Computer

Alle Docker Images stehen auf für die Architektur armhf zur Verfügung. Die Installation erfolgt dann wie am Computer/Laptop jedoch unter Verwendung der Docker Images oydeu/*_armhf.

Anmerkung: zur einfachen Installation von Docker am Raspberry empfehlen wir die SD-Card Images von Hypriot: http://blog.hypriot.com/downloads/

Mobiler Zugriff

Der Datentresor steht dir als App auf folgenden Plattformen zur Verfügung:

Source Code für den mobilen Datentresor (entwickelt mit react-native): https://github.com/OwnYourData/oyd-mobile