Rechtliches · Legal
Datenschutz / Privacy Policy
Informationen zur Verarbeitung personenbezogener Daten auf wolfgangmoser.eu, blog.wolfgangmoser.eu und tpm.wolfgangmoser.eu · How personal data is processed on these three websites.
Datenschutzerklärung
1. Verantwortlicher
Wolfgang Moser
Theresienhöhe 6B
80339 München
Deutschland
E-Mail: legal@wolfgangmoser.eu
Ich betreibe die drei Websites als Privatperson und nicht kommerziell. Einen Datenschutzbeauftragten habe ich nicht bestellt. Fragen zum Datenschutz richten Sie bitte an die oben genannte E-Mail-Adresse.
2. Geltungsbereich
Diese Datenschutzerklärung gilt für
- die Landingpage wolfgangmoser.eu einschließlich ihrer Fehlerseite,
- den Blog „Public Memory“ unter blog.wolfgangmoser.eu,
- die Web-App „Train Price Monitor“ unter tpm.wolfgangmoser.eu und
- E-Mails, die Sie mir an eine Adresse unter wolfgangmoser.eu schicken.
Für Websites anderer Anbieter, auf die ich verlinke (zum Beispiel GitHub oder LinkedIn), gelten deren eigene Datenschutzerklärungen.
3. Hosting von Landingpage und Blog
Landingpage und Blog sind statische Websites und werden über GitHub Pages ausgeliefert. Anbieter sind die GitHub B.V., Prins Bernhardplein 200, 1097 JB Amsterdam, Niederlande, und die GitHub, Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA („GitHub“).
Beim Aufruf einer Seite überträgt Ihr Browser technisch notwendige Daten an die Server von GitHub, insbesondere Ihre IP-Adresse, die aufgerufene Adresse, Datum und Uhrzeit sowie Angaben zu Browser und Betriebssystem. Nach eigenen Angaben protokolliert und speichert GitHub die IP-Adressen der Besucher von GitHub-Pages-Websites zu Sicherheitszwecken; eine Speicherdauer nennt GitHub dafür nicht. GitHub verarbeitet diese Daten in eigener Verantwortung; Einzelheiten enthält die Datenschutzerklärung von GitHub. Ich selbst habe keinen Zugriff auf diese Protokolle und erstelle keine Zugriffsstatistiken.
Rechtsgrundlage für den Einsatz von GitHub Pages ist Art. 6 Abs. 1 lit. f DSGVO. Mein berechtigtes Interesse liegt in einer zuverlässigen, sicheren und kostenlosen Bereitstellung meiner privaten Websites.
4. Schriftarten
Landingpage und Blog verwenden die Schriftarten Fraunces und IBM Plex Sans, Train Price Monitor verwendet IBM Plex Sans und IBM Plex Mono. Die Schriftdateien werden zusammen mit der jeweiligen Website ausgeliefert. Dabei wird keine Verbindung zu Servern Dritter wie Google Fonts aufgebaut.
5. Train Price Monitor
Train Price Monitor ist eine kostenlose, nicht kommerzielle Web-App, mit der Sie Zugverbindungen beobachten und sich benachrichtigen lassen können, wenn der Preis über einen von Ihnen gewählten Grenzpreis steigt.
Hosting. Die App läuft bei der Amazon Web Services EMEA SARL, 38 Avenue John F. Kennedy, L-1855 Luxemburg („AWS“), die als mein Auftragsverarbeiter tätig ist. Die Daten der App werden in der AWS-Region Frankfurt am Main (eu-central-1) gespeichert. Die Dateien der App liefert Amazon CloudFront aus und verarbeitet dafür Ihre IP-Adresse; Zugriffsprotokolle von CloudFront speichere ich nicht.
Konto. Für die Nutzung benötigen Sie ein Konto. Bei der Registrierung verarbeite ich Ihre E-Mail-Adresse, Ihren Namen und Ihr Passwort. Registrierung und Anmeldung laufen über Amazon Cognito; das Passwort wird nicht im Klartext gespeichert. Zur Bestätigung Ihrer E-Mail-Adresse und zum Zurücksetzen des Passworts sendet Ihnen Amazon Cognito über Amazon SES eine E-Mail vom Absender trainpricemonitor@wolfgangmoser.eu. Außerdem speichere ich Ihre E-Mail-Adresse, Ihren Namen, eine zufällig erzeugte Nutzerkennung und Ihre Einstellungen in der Datenbank der App (Amazon DynamoDB).
Profil und Reiseeinstellungen. Freiwillig können Sie ein Profilbild hochladen (JPEG, PNG oder GIF bis 500 KB) und Reiseeinstellungen hinterlegen: Ermäßigungskarten wie die BahnCard, Ihre Altersgruppe und ob Sie ein Deutschlandticket haben. Das Profilbild wird verschlüsselt in Amazon S3 gespeichert und nur Ihnen über Links angezeigt, die nach einer Stunde ablaufen.
Verbindungssuche. Bei der Suche nach Bahnhöfen gleicht die App Ihre Eingabe mit einer in der App enthaltenen Bahnhofsliste ab; dabei werden keine Daten an Dritte übermittelt. Für die Suche nach Verbindungen und Preisen ruft die App die Fahrplan- und Preisauskunft von bahn.de der DB Fernverkehr AG, Europa-Allee 78–84, 60486 Frankfurt am Main, ab. Übermittelt werden nur die Suchangaben: Start- und Zielbahnhof, Datum und Uhrzeit, Wagenklasse, Suchoptionen wie Verkehrsmittel und Umstiege sowie gegebenenfalls Fahrradmitnahme, Altersgruppe, Ermäßigungskarte und Deutschlandticket. Die Anfragen stellen die Server der App bei AWS; Ihre IP-Adresse, Ihr Name, Ihre E-Mail-Adresse und Ihre Nutzerkennung werden nicht übermittelt. Die DB verarbeitet die Anfragen in eigener Verantwortung.
Weiterleitung über Decodo. Kommt eine Anfrage der App bei bahn.de nicht durch, etwa weil bahn.de sie ablehnt oder nicht rechtzeitig beantwortet, wird dieselbe Anfrage über den Dienst „Decodo“ der UAB „Data troops“, Švitrigailos str. 34, LT-03230 Vilnius, Litauen, an bahn.de gestellt; zeitweise können auch alle Anfragen diesen Weg nehmen. Decodo ist dabei als mein Auftragsverarbeiter tätig, erhält dieselben Suchangaben, ebenfalls ohne Angaben zu Ihrer Person, und leitet die Anfrage über ein weltweites Netz von Proxy-Servern weiter.
Beobachtete Verbindungen und Benachrichtigungen. Wenn Sie eine Verbindung beobachten, speichere ich die Suchangaben, Ihren Grenzpreis, den Ablaufzeitpunkt (eine Stunde vor Abfahrt) und den zuletzt ermittelten Preis mit den Fahrtdaten. Die App prüft die Preise stündlich. Erreicht oder übersteigt ein Preis Ihren Grenzpreis, ist eine Verbindung abgelaufen oder lässt sie sich nicht mehr verfolgen, erhalten Sie eine Benachrichtigung in der App. Sind E-Mail-Benachrichtigungen eingeschaltet (Voreinstellung, im Profil abschaltbar), sende ich Ihnen zusätzlich über Amazon SES eine E-Mail vom Absender trainpricemonitor@wolfgangmoser.eu. Sie enthält Ihren Vornamen, die Bahnhöfe, bei Preisalarmen den aktuellen Preis und Ihren Grenzpreis sowie einen Link zur App. Wird eine E-Mail an Sie dauerhaft unzustellbar zurückgewiesen oder als Spam gemeldet, setzt SES Ihre Adresse auf eine Sperrliste, damit keine weiteren E-Mails an sie gehen.
Rechtsgrundlage. Die beschriebene Verarbeitung ist erforderlich, um Ihnen die App bereitzustellen, die Sie mit Ihrer Registrierung nutzen möchten (Art. 6 Abs. 1 lit. b DSGVO). Das gilt auch für die freiwilligen Angaben im Profil. Rufen Sie die App ohne Konto auf, ist Rechtsgrundlage für ihre Auslieferung über Amazon CloudFront Art. 6 Abs. 1 lit. f DSGVO; mein berechtigtes Interesse liegt in einer sicheren und zuverlässigen Bereitstellung der App.
Protokolle. Zur Fehlersuche und zum Schutz vor Missbrauch protokollieren die Server der App ihre Abläufe in Amazon CloudWatch. Die Protokolle enthalten Zeitpunkte, Art und Ergebnis der Anfragen und pseudonyme Kennungen (Nutzer-, Verbindungs- und Benachrichtigungskennung), aber keine IP-Adressen, Namen, E-Mail-Adressen oder Suchbegriffe. Unabhängig davon zeichnet AWS Aufrufe seiner Programmierschnittstellen im Ereignisverlauf von AWS CloudTrail auf: jede Anfrage Ihres Browsers an Amazon Cognito (etwa Registrierung, Anmeldung, Erneuerung der Anmeldetoken, Passwortänderung, Kontolöschung) mit IP-Adresse, Browserkennung und der Cognito-Kennung Ihres Kontos. Soweit Ihre E-Mail-Adresse in der Zeit des eingeschränkten SES-Modus bei SES ein- oder ausgetragen wurde, ist auch das für 90 Tage im Ereignisverlauf gespeichert. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; mein berechtigtes Interesse liegt im sicheren und fehlerfreien Betrieb der App.
6. Kontakt per E-Mail
Wenn Sie mir eine E-Mail schreiben, zum Beispiel an legal@wolfgangmoser.eu, verarbeite ich Ihre E-Mail-Adresse, Ihren Namen, sofern angegeben, und den Inhalt Ihrer Nachricht, um Ihr Anliegen zu bearbeiten. E-Mails an Adressen unter wolfgangmoser.eu nimmt die NETIM SAS, 264 avenue Arthur Notebart, 59160 Lille, Frankreich, als Anbieter der Domain entgegen und leitet sie an mein Postfach bei der Proton AG, Route de la Galaise 32, 1228 Plan-les-Ouates, Schweiz, weiter.
Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO; mein berechtigtes Interesse liegt darin, Anfragen zu beantworten. Betrifft Ihre Anfrage Ihr Konto bei Train Price Monitor, ist Rechtsgrundlage Art. 6 Abs. 1 lit. b DSGVO; betrifft sie Ihre Rechte nach Abschnitt 11, Art. 6 Abs. 1 lit. c DSGVO in Verbindung mit Art. 12 bis 22 DSGVO.
Ich lösche E-Mails, sobald Ihr Anliegen abschließend bearbeitet ist, es sei denn, die Aufbewahrung ist im Einzelfall zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen erforderlich.
7. Cookies und lokale Speicherung
Keine der drei Websites setzt Cookies. Analyse-, Tracking- oder Werbedienste setze ich nicht ein. Im lokalen Speicher Ihres Browsers (Local Storage) werden nur diese Einträge abgelegt:
- Landingpage:
theme– Ihre Wahl zwischen heller und dunkler Darstellung, sobald Sie den Umschalter benutzen; - Blog:
pref-theme– dasselbe für den Blog; -
Train Price Monitor: Einträge, deren Name mit
CognitoIdentityServiceProvider.beginnt – nach der Anmeldung Ihre Anmeldetoken (ID- und Zugriffstoken sind 60 Minuten gültig, das Aktualisierungstoken 30 Tage), die Kennung des zuletzt angemeldeten Kontos und eine Zeitabweichung. Sie werden beim Abmelden gelöscht.
Die gewählte Darstellung verlässt Ihr Gerät nicht. Die Anmeldetoken sendet die App bei jeder Anfrage an ihre Server, um Sie zu authentifizieren. Speichern und Auslesen dieser Einträge sind nach § 25 Abs. 2 Nr. 2 TDDDG ohne Einwilligung zulässig, weil sie unbedingt erforderlich sind, um die von Ihnen ausdrücklich gewünschte Funktion bereitzustellen: die gewählte Darstellung oder die Anmeldung. Sie können die Einträge jederzeit in den Einstellungen Ihres Browsers löschen.
8. Empfänger
Personenbezogene Daten erhalten außer mir nur:
- GitHub als Anbieter von GitHub Pages für Landingpage und Blog (Abschnitt 3);
- AWS als Auftragsverarbeiter für Train Price Monitor (Abschnitt 5);
- die UAB „Data troops“ (Decodo) als Auftragsverarbeiter für weitergeleitete Anfragen an bahn.de, ohne Angaben zu Ihrer Person (Abschnitt 5);
- die DB Fernverkehr AG als Empfänger der Suchangaben, ebenfalls ohne Angaben zu Ihrer Person (Abschnitt 5);
- die NETIM SAS und die Proton AG für E-Mails an mich (Abschnitt 6).
Mit AWS und Decodo bestehen Verträge zur Auftragsverarbeitung nach Art. 28 DSGVO. Ich verkaufe keine Daten und gebe sie nicht für Werbezwecke weiter.
9. Übermittlung in Drittländer
Die GitHub, Inc. hat ihren Sitz in den USA. Für Übermittlungen dorthin besteht ein Angemessenheitsbeschluss der Europäischen Kommission, der EU-US-Datenschutzrahmen (Durchführungsbeschluss (EU) 2023/1795 vom 10. Juli 2023), unter dem die GitHub, Inc. zertifiziert ist (Data Privacy Framework List). Daneben stützt GitHub Übermittlungen auf die Standardvertragsklauseln der Europäischen Kommission.
AWS kann nach seinem Vertrag zur Auftragsverarbeitung Unterauftragsverarbeiter außerhalb der EU bzw. des EWR einsetzen; außerdem liefert Amazon CloudFront die Dateien der App über Standorte weltweit aus. Solche Übermittlungen stützt AWS auf die Standardvertragsklauseln der Europäischen Kommission (Durchführungsbeschluss (EU) 2021/914), die Teil dieses Vertrags sind, bei US-Gesellschaften zusätzlich auf den EU-US-Datenschutzrahmen; eine Kopie der Klauseln erhalten Sie auf Anfrage bei mir.
Decodo leitet Anfragen über ein weltweites Proxy-Netz weiter; sie können dabei Server außerhalb der EU durchlaufen. Sie enthalten nur die Suchangaben aus Abschnitt 5 und nichts, womit Decodo oder die Betreiber dieser Server Sie identifizieren könnten. Einen Angemessenheitsbeschluss oder Standardvertragsklauseln gibt es für diese Weiterleitung nicht.
Die Proton AG hat ihren Sitz in der Schweiz. Für die Schweiz hat die Europäische Kommission ein angemessenes Datenschutzniveau festgestellt (Entscheidung 2000/518/EG).
10. Speicherdauer
- Landingpage und Blog: Ich speichere keine Daten über Ihren Besuch. Wie lange GitHub seine Sicherheitsprotokolle aufbewahrt, legt GitHub fest (Abschnitt 3).
- Konto: bis Sie Ihr Konto löschen oder mich darum bitten. Registrierungen, die Sie nicht innerhalb von sieben Tagen bestätigen, werden automatisch gelöscht. Mit dem Konto werden Profilbild, beobachtete Verbindungen, Benachrichtigungen und gegebenenfalls ein Eintrag auf der Sperrliste bei SES sofort gelöscht. In der Datensicherung der Datenbank bleiben gelöschte Einträge noch bis zu 35 Tage enthalten; sie wird nur zur Wiederherstellung nach einem Störfall verwendet.
- Beobachtete Verbindungen: bis Sie sie löschen, sonst bis zur ersten stündlichen Prüfung nach ihrem Ablauf; unterbleibt diese, sieben Tage nach Ablauf.
- Benachrichtigungen: 90 Tage nach ihrer Erstellung oder, falls das später ist, sieben Tage nach Ablauf der zugehörigen Verbindung. Preisalarme werden zusammen mit der abgelaufenen Verbindung gelöscht; löschen Sie eine Verbindung, werden auch ihre Benachrichtigungen gelöscht.
- Warteschlange für E-Mail-Benachrichtigungen (Nutzer- und Benachrichtigungskennung): höchstens vier Tage, nach wiederholten Fehlern höchstens 14 Tage.
- Protokolle: 14 Tage; Ereignisverlauf von AWS CloudTrail: 90 Tage.
- Lokale Speicherung: bis Sie die Einträge löschen oder sich abmelden (Abschnitt 7).
- E-Mails: siehe Abschnitt 6.
Fristgebundene Löschungen führt die Datenbank im Hintergrund aus, in der Regel innerhalb weniger Tage nach dem genannten Zeitpunkt.
11. Ihre Rechte
Sie haben mir gegenüber das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16 DSGVO), Löschung (Art. 17 DSGVO), Einschränkung der Verarbeitung (Art. 18 DSGVO) und Datenübertragbarkeit (Art. 20 DSGVO) sowie das Widerspruchsrecht nach Abschnitt 12.
Dafür genügt eine E-Mail an legal@wolfgangmoser.eu. Bei Anfragen zu einem Konto bei Train Price Monitor schreiben Sie bitte von der dort hinterlegten Adresse, damit ich die Anfrage Ihrem Konto zuordnen kann. In Train Price Monitor können Sie außerdem selbst unter „Profile → Your data“ eine Kopie Ihrer Daten herunterladen und unter „Profile → Danger zone“ Ihr Konto löschen.
Sie haben zudem das Recht, sich bei einer Datenschutz-Aufsichtsbehörde zu beschweren (Art. 77 DSGVO), insbesondere in dem Mitgliedstaat Ihres gewöhnlichen Aufenthalts, Ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes. Für mich zuständig ist das Bayerische Landesamt für Datenschutzaufsicht (BayLDA), Promenade 18, 91522 Ansbach, www.lda.bayern.de.
12. Widerspruchsrecht nach Art. 21 DSGVO
Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender personenbezogener Daten Widerspruch einzulegen, die auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO erfolgt. Das betrifft das Hosting über GitHub Pages (Abschnitt 3), die Auslieferung von Train Price Monitor an Besucher ohne Konto und dessen Protokolle (Abschnitt 5) sowie die Bearbeitung von E-Mails (Abschnitt 6). Ich verarbeite die Daten dann nicht mehr, es sei denn, ich kann zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. Der Widerspruch ist formlos möglich, zum Beispiel per E-Mail an legal@wolfgangmoser.eu.
13. Bereitstellung der Daten
Sie sind weder gesetzlich noch vertraglich verpflichtet, mir Daten bereitzustellen. Ohne die technisch notwendigen Verbindungsdaten wie Ihre IP-Adresse können die Websites jedoch nicht ausgeliefert werden. Für ein Konto bei Train Price Monitor sind E-Mail-Adresse, Name und Passwort erforderlich; ohne sie kann ich kein Konto einrichten. Profilbild und Reiseeinstellungen sind freiwillig.
14. Automatisierte Entscheidungsfindung
Eine automatisierte Entscheidungsfindung einschließlich Profiling im Sinne von Art. 22 DSGVO findet nicht statt.
15. Verschlüsselung
Alle drei Websites werden ausschließlich über verschlüsselte Verbindungen (HTTPS/TLS) ausgeliefert; unverschlüsselte Aufrufe werden auf HTTPS umgeleitet. Auch die Verbindungen der App zu ihren Servern sind verschlüsselt.
16. Änderungen und Sprachfassungen
Ich passe diese Datenschutzerklärung an, wenn sich die Websites oder die Rechtslage ändern. Es gilt die jeweils hier veröffentlichte Fassung; ihr Datum steht oben. Diese Datenschutzerklärung liegt auf Deutsch und Englisch vor; bei Abweichungen ist die deutsche Fassung maßgeblich.
Privacy Policy
1. Controller
Wolfgang Moser
Theresienhöhe 6B
80339 München
Germany
Email: legal@wolfgangmoser.eu
I run the three websites as a private individual and not commercially. I have not appointed a data protection officer. Please send any data protection questions to the email address above.
2. Scope
This privacy policy applies to
- the landing page wolfgangmoser.eu, including its error page,
- the blog “Public Memory” at blog.wolfgangmoser.eu,
- the web app “Train Price Monitor” at tpm.wolfgangmoser.eu, and
- emails you send me at an address under wolfgangmoser.eu.
Websites of other providers that I link to (for example GitHub or LinkedIn) are covered by their own privacy policies.
3. Hosting of the landing page and the blog
The landing page and the blog are static websites delivered through GitHub Pages. The providers are GitHub B.V., Prins Bernhardplein 200, 1097 JB Amsterdam, Netherlands, and GitHub, Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA (“GitHub”).
When you open a page, your browser sends technically necessary data to GitHub’s servers, in particular your IP address, the requested address, the date and time, and information about your browser and operating system. According to GitHub, it logs and stores the IP addresses of visitors to GitHub Pages sites for security purposes; GitHub does not state a retention period for this. GitHub processes this data under its own responsibility; details are in GitHub’s privacy statement. I have no access to these logs and do not compile any visitor statistics.
The legal basis for using GitHub Pages is Art. 6(1)(f) GDPR. My legitimate interest is reliable, secure and free hosting of my private websites.
4. Fonts
The landing page and the blog use the typefaces Fraunces and IBM Plex Sans; Train Price Monitor uses IBM Plex Sans and IBM Plex Mono. The font files are delivered together with each website. No connection is made to third-party servers such as Google Fonts.
5. Train Price Monitor
Train Price Monitor is a free, non-commercial web app that lets you watch train connections and get notified when the price rises above a limit you choose.
Hosting. The app runs on Amazon Web Services EMEA SARL, 38 Avenue John F. Kennedy, L-1855 Luxembourg (“AWS”), which acts as my processor. The app’s data is stored in the AWS Frankfurt am Main region (eu-central-1). The app’s files are delivered by Amazon CloudFront, which processes your IP address to do so; I do not store CloudFront access logs.
Account. You need an account to use the app. When you sign up, I process your email address, your name and your password. Sign-up and sign-in run on Amazon Cognito; the password is not stored in plain text. To confirm your email address and to reset your password, Amazon Cognito sends you an email through Amazon SES from trainpricemonitor@wolfgangmoser.eu. I also store your email address, your name, a randomly generated user ID and your settings in the app’s database (Amazon DynamoDB).
Profile and travel preferences. You can optionally upload a profile picture (JPEG, PNG or GIF up to 500 KB) and save travel preferences: discount cards such as the BahnCard, your age group and whether you have a Deutschlandticket. The profile picture is stored encrypted in Amazon S3 and shown only to you through links that expire after one hour.
Connection search. When you search for stations, the app matches your input against a station list built into the app; no data is sent to third parties. To search for connections and prices, the app queries the timetable and fare service of bahn.de operated by DB Fernverkehr AG, Europa-Allee 78–84, 60486 Frankfurt am Main, Germany. Only the search details are sent: departure and arrival station, date and time, travel class, search options such as means of transport and changes, and, where applicable, bicycle, age group, discount card and Deutschlandticket. The requests are made by the app’s servers at AWS; your IP address, name, email address and user ID are not sent. DB processes the requests under its own responsibility.
Forwarding through Decodo. If a request from the app does not get through to bahn.de, for example because bahn.de rejects it or does not answer in time, the same request is sent to bahn.de through the “Decodo” service of UAB “Data troops”, Švitrigailos str. 34, LT-03230 Vilnius, Lithuania; at times, all requests may take this route. Decodo acts as my processor, receives the same search details, again without any information about you, and forwards the request through a worldwide network of proxy servers.
Watched connections and notifications. When you watch a connection, I store the search details, your price limit, the expiry time (one hour before departure) and the most recent price with the journey details. The app checks prices every hour. If a price reaches or exceeds your limit, a connection expires or can no longer be tracked, you get a notification in the app. If email notifications are switched on (the default; you can switch them off in your profile), I also send you an email through Amazon SES from trainpricemonitor@wolfgangmoser.eu. It contains your first name, the stations, for price alerts the current price and your limit, and a link to the app. If an email to you bounces permanently or is reported as spam, SES puts your address on a suppression list so that no further emails are sent to it.
Legal basis. The processing described above is necessary to provide the app you want to use by signing up (Art. 6(1)(b) GDPR). This also applies to the optional details in your profile. If you open the app without an account, the legal basis for delivering it through Amazon CloudFront is Art. 6(1)(f) GDPR; my legitimate interest is secure and reliable delivery of the app.
Logs. To find errors and prevent abuse, the app’s servers log their operations in Amazon CloudWatch. The logs contain timestamps, the type and outcome of requests and pseudonymous identifiers (user, connection and notification IDs), but no IP addresses, names, email addresses or search terms. Separately, AWS records calls to its programming interfaces in the AWS CloudTrail event history: every request your browser makes to Amazon Cognito (such as sign-up, sign-in, renewing the sign-in tokens, changing the password, deleting the account) with the IP address, the browser identifier and the Cognito ID of your account. Where your email address was registered with or removed from SES while it ran in restricted mode, the event history keeps that for 90 days as well. The legal basis is Art. 6(1)(f) GDPR; my legitimate interest is the secure and error-free operation of the app.
6. Contact by email
If you email me, for example at legal@wolfgangmoser.eu, I process your email address, your name if you provide it, and the content of your message to deal with your request. Emails to addresses under wolfgangmoser.eu are received by NETIM SAS, 264 avenue Arthur Notebart, 59160 Lille, France, as the domain provider, and forwarded to my mailbox at Proton AG, Route de la Galaise 32, 1228 Plan-les-Ouates, Switzerland.
The legal basis is Art. 6(1)(f) GDPR; my legitimate interest is answering enquiries. If your request concerns your Train Price Monitor account, the legal basis is Art. 6(1)(b) GDPR; if it concerns your rights under section 11, it is Art. 6(1)(c) GDPR in conjunction with Art. 12 to 22 GDPR.
I delete emails once your request has been fully dealt with, unless keeping them is necessary in the individual case for the establishment, exercise or defence of legal claims.
7. Cookies and local storage
None of the three websites sets cookies. I do not use any analytics, tracking or advertising services. Only these entries are kept in your browser’s local storage:
- Landing page:
theme– your choice between light and dark mode, once you use the switch; - Blog:
pref-theme– the same for the blog; -
Train Price Monitor: entries whose names start with
CognitoIdentityServiceProvider.– after you sign in, your sign-in tokens (the ID and access tokens are valid for 60 minutes, the refresh token for 30 days), the identifier of the account that signed in last and a clock offset. They are deleted when you sign out.
Your colour-scheme choice never leaves your device. The app sends the sign-in tokens to its servers with every request to authenticate you. Storing and reading these entries is permitted without consent under § 25(2) no. 2 TDDDG (German Telecommunications Digital Services Data Protection Act), because it is strictly necessary to provide the function you explicitly asked for: your chosen colour scheme or signing in. You can delete the entries at any time in your browser settings.
8. Recipients
Apart from me, personal data is received only by:
- GitHub as the provider of GitHub Pages for the landing page and the blog (section 3);
- AWS as the processor for Train Price Monitor (section 5);
- UAB “Data troops” (Decodo) as the processor for forwarded requests to bahn.de, without any information about you (section 5);
- DB Fernverkehr AG as the recipient of the search details, also without any information about you (section 5);
- NETIM SAS and Proton AG for emails to me (section 6).
I have data processing agreements under Art. 28 GDPR with AWS and Decodo. I do not sell data or pass it on for advertising.
9. Transfers to third countries
GitHub, Inc. is based in the United States. Transfers there are covered by an adequacy decision of the European Commission, the EU-U.S. Data Privacy Framework (Commission Implementing Decision (EU) 2023/1795 of 10 July 2023), under which GitHub, Inc. is certified (Data Privacy Framework List). GitHub also relies on the European Commission’s standard contractual clauses.
Under its data processing agreement, AWS may use sub-processors outside the EU or the EEA; Amazon CloudFront also delivers the app’s files from locations worldwide. AWS bases such transfers on the European Commission’s standard contractual clauses (Commission Implementing Decision (EU) 2021/914), which are part of that agreement, and for its US companies also on the EU-U.S. Data Privacy Framework; I will send you a copy of the clauses on request.
Decodo forwards requests through a worldwide proxy network, so they may pass through servers outside the EU. They contain only the search details from section 5 and nothing that would let Decodo or the operators of those servers identify you. There is no adequacy decision or standard contractual clauses for this forwarding.
Proton AG is based in Switzerland, for which the European Commission has found an adequate level of data protection (Commission Decision 2000/518/EC).
10. Retention
- Landing page and blog: I do not store any data about your visit. GitHub decides how long it keeps its security logs (section 3).
- Account: until you delete your account or ask me to. Sign-ups that you do not confirm within seven days are deleted automatically. Deleting the account immediately removes the profile picture, watched connections, notifications and, if present, a suppression-list entry at SES as well. Deleted database entries remain in the database backup for up to 35 more days; the backup is only used to recover from an incident.
- Watched connections: until you delete them, otherwise until the first hourly check after they expire; if that check does not happen, seven days after expiry.
- Notifications: 90 days after they are created or, if later, seven days after the related connection expires. Price alerts are deleted together with the expired connection; deleting a connection also deletes its notifications.
- Queue for email notifications (user and notification ID): at most four days, after repeated errors at most 14 days.
- Logs: 14 days; AWS CloudTrail event history: 90 days.
- Local storage: until you delete the entries or sign out (section 7).
- Emails: see section 6.
The database carries out these time-based deletions in the background, usually within a few days of the time stated.
11. Your rights
You have the right of access (Art. 15 GDPR), rectification (Art. 16 GDPR), erasure (Art. 17 GDPR), restriction of processing (Art. 18 GDPR) and data portability (Art. 20 GDPR), as well as the right to object described in section 12.
An email to legal@wolfgangmoser.eu is enough. For requests about a Train Price Monitor account, please write from the address registered there so that I can match the request to your account. In Train Price Monitor you can also download a copy of your data yourself under “Profile → Your data” and delete your account under “Profile → Danger zone”.
You also have the right to lodge a complaint with a data protection supervisory authority (Art. 77 GDPR), in particular in the Member State of your habitual residence, your place of work or the place of the alleged infringement. The authority responsible for me is the Bavarian State Office for Data Protection Supervision (Bayerisches Landesamt für Datenschutzaufsicht, BayLDA), Promenade 18, 91522 Ansbach, Germany, www.lda.bayern.de.
12. Right to object under Art. 21 GDPR
You have the right to object at any time, on grounds relating to your particular situation, to the processing of personal data concerning you that is based on Art. 6(1)(f) GDPR. This covers hosting on GitHub Pages (section 3), delivery of Train Price Monitor to visitors without an account and its logs (section 5), and the handling of emails (section 6). I will then no longer process the data unless I can demonstrate compelling legitimate grounds for the processing which override your interests, rights and freedoms, or the processing serves the establishment, exercise or defence of legal claims. No particular form is required; an email to legal@wolfgangmoser.eu is enough.
13. Provision of data
You are under no statutory or contractual obligation to provide me with any data. Without technically necessary connection data such as your IP address, however, the websites cannot be delivered. A Train Price Monitor account requires your email address, name and a password; without them I cannot set up an account. The profile picture and travel preferences are optional.
14. Automated decision-making
There is no automated decision-making, including profiling, within the meaning of Art. 22 GDPR.
15. Encryption
All three websites are delivered over encrypted connections only (HTTPS/TLS); unencrypted requests are redirected to HTTPS. The app’s connections to its servers are encrypted as well.
16. Changes and language versions
I update this privacy policy when the websites or the law change. The version published here applies; its date is shown at the top. This privacy policy is available in German and English; if they differ, the German version prevails.