Datenschutz Team-Dashboard
1. Was ist das Team-Dashboard?
Das Team-Dashboard ist ein optionales Modul innerhalb des NRW Systems Dashboards. Es unterstützt Discord-Serverbetreiber bei der internen Teamverwaltung und bei der Bearbeitung von Bewerbungen. Der jeweilige Serverbetreiber entscheidet, ob und für welche Zwecke das Modul aktiviert wird.
- Mitgliederverwaltung: Übersicht über aktive, inaktive und urlaubende Teammitglieder.
- Stellenausschreibungen: Erstellen und Verwalten offener Positionen im Team.
- Bewerbungsverwaltung: Eingehende Bewerbungen annehmen oder ablehnen.
- Ankündigungen: Interne Mitteilungen an das Team (info, Warnung, Erfolg etc.).
- Interne Beiträge: Teaminternes schwarzes Brett für Posts und Neuigkeiten.
- Aufgaben: Erstellen, Zuweisen und Verfolgen von Team-Aufgaben.
- Events: Planung teaminterner Veranstaltungen, Meetings und Deadlines.
- Urlaubs-/Abwesenheitsanträge: Verwaltung und Genehmigung von Abwesenheiten.
- Webhook-Benachrichtigungen: Optionale Übermittlung ausgewählter Ereignisse an einen vom Serverbetreiber konfigurierten Discord-Kanal.
- Öffentliche Bewerbungsseite: Externe Bewerber können sich über eine öffentliche URL bewerben.
Das Modul ist standardmäßig nicht aktiviert und muss von einem berechtigten Server-Administrator eingerichtet werden. Die konkrete Konfiguration, die Eingabefelder und die Berechtigungsvergabe werden vom jeweiligen Serverbetreiber festgelegt. Eine vollständige öffentliche Zugänglichkeit der Daten ist nicht vorgesehen; der tatsächliche Zugriff hängt jedoch von der Konfiguration und den vergebenen Discord-/Dashboard-Berechtigungen ab.
2. Verantwortlicher und Rechtsgrundlagen
Für den technischen Betrieb der Plattform und die Bereitstellung des Team-Dashboards ist verantwortlich:
Lukas Seifert
Medebacher Weg 13
E-Mail: lukas@nrw-roleplay.de
Für serverbezogene Team- und Bewerbungsdaten bestimmt der jeweilige Discord-Serverbetreiber die Zwecke und wesentlichen Mittel der Verarbeitung. Er ist deshalb regelmäßig eigener Verantwortlicher oder gemeinsam mit dem Plattformbetreiber verantwortlich. Die jeweils passende Rechtsgrundlage muss der Serverbetreiber für seinen konkreten Zweck prüfen und den betroffenen Personen mitteilen. In Betracht kommen insbesondere:
- Art. 6 Abs. 1 lit. b DSGVO – Verarbeitung zur Erfüllung eines Vertrags bzw. vorvertraglicher Maßnahmen (z. B. Bewerbungsverfahren).
- Art. 6 Abs. 1 lit. f DSGVO – Berechtigtes Interesse an der sicheren und effizienten Teamverwaltung innerhalb des Discord-Servers.
- Art. 6 Abs. 1 lit. a DSGVO – Einwilligung, soweit sie wirksam und freiwillig für einen bestimmten Zweck eingeholt wird.
- Art. 6 Abs. 1 lit. c DSGVO – Erfüllung gesetzlicher Pflichten, soweit eine solche Pflicht besteht.
3. Verarbeitete Daten nach Funktionsbereich
3.1. Teammitglieder
Wird ein Nutzer anhand zugewiesener Discord-Rollen erkannt oder durch den Serverbetreiber eingetragen, können folgende Daten verarbeitet werden:
- Discord User-ID und Benutzername
- Profilbild (Avatar-URL zum Zeitpunkt der letzten Synchronisation)
- Mitgliedsstatus (
active,inactive,vacation) - Beitrittsdatum, Abgangsdatum (sofern eingetragen)
- Zugewiesene interne Ränge (Team-Rang-ID)
- Optionale Notizen (freitextlich, durch Administratoren eingetragen)
- Warn-Punkte (sofern das System genutzt wird)
Zweck und Rechtsgrundlage: Teamverwaltung, Rollen- und Berechtigungsprüfung sowie interne Organisation. Die Rechtsgrundlage ist vom jeweiligen Serverbetreiber festzulegen; regelmäßig kommt Art. 6 Abs. 1 lit. f DSGVO in Betracht.
3.2. Stellenausschreibungen
Stellenausschreibungen enthalten überwiegend Sach- und Konfigurationsdaten. Personenbezug kann durch Erstellerdaten und individuell eingegebene Inhalte entstehen. Gespeichert werden:
- Titel, Beschreibung, Anforderungen
- Status (
open,closed), Bewerbungslimit - Ersteller-ID und -name (Discord, des angemeldeten Dashboard-Nutzers)
- Benutzerdefinierte Felder und Einstellungen zur Bewerbungsseite
3.3. Bewerbungen
Über die öffentliche Bewerbungsseite oder intern eingereichte Bewerbungen werden folgende Daten gespeichert:
- Name des Bewerbers (freitextlich oder aus Discord-Login)
- Discord User-ID zur Zuordnung der Bewerbung
- Bewerbungstext und Antworten auf benutzerdefinierte Felder
- Bewerbungsstatus (
new,review,accepted,rejected) - Prüfer-ID, Bearbeitungszeitpunkt und interne Notiz
- Einreichungszeitpunkt, technische Quell-IP-Adresse und Statusereignisse
Speicherdauer: Bewerbungen mit dem Status accepted oder rejected werden 60 Tage nach dem gespeicherten Entscheidungszeitpunkt automatisiert gelöscht. Antworten und Statusereignisse werden dabei mitgelöscht. Bewerbungen mit dem Status new oder review bleiben bis zur Entscheidung oder manuellen Löschung bestehen.
Rechtsgrundlage: Abhängig vom konkreten Bewerbungsverfahren insbesondere Art. 6 Abs. 1 lit. a oder b DSGVO. Eine Bewerbung allein ersetzt keine transparente Information über Zweck, Rechtsgrundlage und Speicherdauer.
3.4. Ankündigungen und interne Beiträge
Teammitglieder und Administratoren können Ankündigungen und interne Posts verfassen. Gespeichert werden:
- Titel und Inhalt des Beitrags
- Autor-ID und Autorenname (Discord, des erstellenden Nutzers)
- Erstellungszeitpunkt, Pin-Status, Typ (Info, Warnung, Erfolg etc.)
Speicherdauer: Für Ankündigungen und Beiträge ist im derzeit dokumentierten Code keine einheitliche automatische Löschfrist belegt. Der Serverbetreiber muss eine angemessene Frist festlegen und nicht mehr erforderliche Inhalte löschen.
3.5. Aufgaben (Tasks)
Für die interne Aufgabenverwaltung werden folgende Daten gespeichert:
- Titel, Beschreibung, Priorität, Status (
open,in_progress,done) - Ersteller-ID und -name sowie Fälligkeitsdatum (optional)
- Zugewiesene Nutzer-IDs (sofern eine Zuweisung vorgenommen wird)
3.6. Team-Events
Geplante Ereignisse (Meetings, Trainings, Deadlines) werden gespeichert mit:
- Titel, Beschreibung, Typ, Datum, Uhrzeit, Ort/Link
- Ersteller-ID und -name
3.7. Urlaubs- und Abwesenheitsanträge
Anträge auf Urlaub oder Abwesenheit enthalten:
- Discord User-ID und Benutzername des Antragstellers
- Start- und Enddatum, Begründung (freitextlich)
- Status (
pending,approved,rejected), Reviewer-ID
3.8. Ränge und Berechtigungen
Das interne Rang-System speichert vor allem Konfigurationsdaten. Über die Verknüpfung mit Discord-Rollen und die Berechtigungsvergabe kann ein Personenbezug entstehen:
- Rang-Name, Farbe, Icon, Berechtigungssatz (
JSON) - Optionale Verknüpfung mit einer Discord-Rollen-ID
3.9. Team-Einstellungen und Konfiguration
Serverseitige Konfigurationsdaten werden unter der Server-ID gespeichert und können einem Serverbetreiber zugeordnet werden:
- Team-Name, aktivierte Rollen-IDs (zur Erkennung von Teammitgliedern)
- Einstellungen zur Bewerbungsseite (Titel, Untertitel, Login-Pflicht, Passwortschutz-Hash)
- Webhook-URL (verschlüsselt, siehe Abschnitt 4)
- Webhook-Ereignistypen und Aktivierungsstatus
4. Webhook-Benachrichtigungen
Das Team-Dashboard kann bei bestimmten Ereignissen eine Nachricht an einen vom Serverbetreiber ausgewählten Discord-Kanal senden. Die Funktion ist optional und wird nur bei hinterlegter Konfiguration ausgeführt.
4.1. Speicherung der Webhook-URL
Über das aktuelle Server-Webhook-System wird die URL mit AES-256-CBC verschlüsselt in der Datenbank gespeichert. Der Schlüssel wird serverseitig verwaltet. Ältere oder modulinterne Konfigurationswege können davon abweichen; für sensible Webhooks darf deshalb ausschließlich der verschlüsselte Server-Webhook-Speicher verwendet werden.
4.2. Übermittelte Daten
Beim Versand einer Webhook-Nachricht werden folgende Daten an den Discord-Kanal des jeweiligen Servers übertragen:
- Team-Name (Konfigurationsdatum des jeweiligen Servers)
- Ereignis-spezifische Informationen (z. B. Name des neuen Mitglieds, Titel einer Ankündigung, Name des Bewerbers)
Die Daten werden an Discord, Inc. als Betreiberin des konfigurierten Zielkanals übermittelt. Discord verarbeitet diese Daten nach eigenen Datenschutzbestimmungen und ist für die Verarbeitung innerhalb seines Dienstes grundsätzlich eigener Verantwortlicher. Der Serverbetreiber muss vor Aktivierung prüfen, welche Inhalte übermittelt werden dürfen.
4.3. Fehlerprotokollierung
Fehler bei der Zustellung können je nach Modul protokolliert werden. Solche Protokolle dürfen nur zur Fehleranalyse verwendet, auf den notwendigen Umfang beschränkt und nach Wegfall des Zwecks gelöscht werden.
5. Öffentliche Bewerbungsseite
Jeder Server, der das Bewerbungsmodul aktiviert hat, kann eine öffentlich erreichbare Bewerbungsseite bereitstellen. Die Seite kann aufgerufen werden, die Einreichung einer Bewerbung erfordert im aktuellen Ablauf jedoch eine Anmeldung über Discord.
5.1. Verarbeitete Daten bei Einreichung
- Name des Bewerbers: Freitextlich oder automatisch aus einem Discord-Login befüllt.
- Discord-ID und Konto-Zuordnung: Die Discord-ID ist für die Einreichung erforderlich; zusätzlich kann eine interne Nutzer-ID gespeichert werden.
- Antworten: Freitext- und gegebenenfalls Zahlenantworten auf die vom Serverbetreiber konfigurierten Fragen, einschließlich freiwillig eingegebener besonderer oder sensibler Informationen.
- Antworten auf benutzerdefinierte Felder: Sofern der Server-Administrator individuelle Felder konfiguriert hat (z. B. Alter, Erfahrung).
5.2. Discord-Login auf der Bewerbungsseite
Für die Einreichung wird eine Authentifizierung über Discord verwendet. Dabei können folgende Daten aus dem OAuth-Prozess und der Session verarbeitet werden:
- Discord User-ID, Benutzername, Anzeigename (Global Name)
Die Session dient der Authentifizierung, der Zuordnung der Bewerbung und der Weiterleitung nach dem Login. Session-Daten werden nach Ablauf der Session gelöscht; serverseitige Bewerbungsdaten bleiben davon unberührt.
5.3. Passwortschutz
Der Administrator kann die öffentliche Bewerbungsseite mit einem Passwort schützen. Das Passwort selbst wird nicht im Klartext gespeichert – lediglich ein bcrypt-Hash ist in der Datenbank hinterlegt.
5.4. Einwilligung des Bewerbers
Vor dem Absenden muss der Serverbetreiber die betroffene Person über Verantwortlichen, Zwecke, Rechtsgrundlage, Empfänger, Speicherdauer und Rechte informieren. Eine Einwilligung ist nur wirksam, wenn sie freiwillig, informiert und nachweisbar erteilt wird. Die Löschung bereits eingereichter Bewerbungsdaten kann bei den oben genannten Verantwortlichen beantragt werden.
6. Technische Speicherung und Speicherdauer
Die folgenden technischen Kategorien dienen der Einordnung der im Team-Dashboard verwendeten Daten. Die konkrete Verarbeitung hängt von den aktivierten Modulen und der Konfiguration des jeweiligen Servers ab. Bewerbungen und bestimmte Modul-Daten werden durch die jeweils dokumentierten Bereinigungsroutinen gelöscht; für nicht aufgeführte Inhalte ist der Serverbetreiber für ein angemessenes Löschkonzept verantwortlich.
| Technische Kategorie | Verarbeitete Daten | Zweck | Speicherdauer |
|---|---|---|---|
server_trainers |
server_id, guild_id, user_id, created_at | Mitgliederverwaltung und Übersicht | Bis zur manuellen Löschung oder Server-Entfernung |
server_roles |
server_id, role_key, discord_role_id, role_name, created_at | Erkennung von Teammitgliedern anhand Discord-Rollen | Bis zur manuellen Entfernung |
guild_application_settings / guild_application_questions |
Seiteneinstellungen, Bewerbungsstatus, konfigurierbare Fragen und Antworttypen | Verwaltung offener Stellen und Bewerbungsseite | Nach Wegfall des Zwecks durch den Serverbetreiber löschen |
guild_application_submissions / guild_application_answers |
guild_id, user_id, discord_user_id, status, Zeitpunkte, Prüfer, Notiz, Quell-IP und Antworten | Verwaltung eingehender Bewerbungen | Entscheidungen: 60 Tage nach reviewed_at; offene Bewerbungen bis Entscheidung |
| Aktivierte Modul-Tabellen | Je nach Modul: Inhalte, Autor-/Nutzer-IDs, Status, Zeitpunkte und freie Texte | Interne Teamkommunikation | Frist durch den Serverbetreiber festlegen; nicht erforderliche Inhalte löschen |
| Aktivierte Modul-Tabellen | Je nach Modul: interne Beiträge, Autor-/Nutzer-IDs, Status, Zeitpunkte und freie Texte | Interne Beiträge (schwarzes Brett) | Frist durch den Serverbetreiber festlegen; nicht erforderliche Inhalte löschen |
| Aktivierte Modul-Tabellen | Je nach Modul: Aufgaben, Zuweisungen, Prioritäten, Status und Fälligkeiten | Aufgabenverwaltung im Team | Bis zur manuellen Löschung |
| Aktivierte Modul-Tabellen | Je nach Modul: Termine, Beschreibungen, Orte/Links, Ersteller und Zeitpunkte | Planung und Ankündigung von Team-Events | Bis zur manuellen Löschung |
absences und weitere Modul-Tabellen |
user_id, guild_id, Grund, Zeitraum, Art, Status und Erstellungszeitpunkt | Verwaltung von Urlaubs-/Abwesenheitsanträgen | Bis zur manuellen Löschung |
server_modules |
server_id, module_key, Aktivierungsstatus und Erstellungszeitpunkt | Internes Rang- und Berechtigungssystem | Bis zur manuellen Löschung |
server_webhooks |
server_id, module_key, verschlüsselte Webhook-URL und Erstellungszeitpunkt | Konfiguration des Team-Moduls je Server | Bis zur manuellen Änderung oder Server-Entfernung |
7. Empfänger, Hosting und Protokolle
Die Daten werden auf dem vom Betreiber eingesetzten Webserver und in der angebundenen Datenbank verarbeitet. Der konkrete Hostinganbieter und gegebenenfalls eingesetzte Auftragsverarbeiter müssen in den allgemeinen Datenschutzhinweisen mit Name, Sitz, Zweck und Rechtsgrundlage benannt werden. Eine Auftragsverarbeitung ist, soweit erforderlich, vertraglich nach Art. 28 DSGVO abzusichern.
Bei Discord-Login, Discord-Rollenabfragen und Webhook-Versand ist Discord, Inc. Empfängerin der jeweils erforderlichen Daten. Dabei kann eine Verarbeitung außerhalb der Europäischen Union oder des Europäischen Wirtschaftsraums stattfinden. Die dafür verwendete Übermittlungsgrundlage, insbesondere ein Angemessenheitsbeschluss oder geeignete Garantien, ist in den allgemeinen Datenschutzhinweisen aktuell zu benennen.
Beim Absenden einer Bewerbung wird außerdem die Quell-IP-Adresse zur technischen Übermittlung und gegebenenfalls zur Missbrauchs- und Sicherheitsprävention gespeichert. Server- und Fehlerprotokolle dürfen nur so lange aufbewahrt werden, wie sie für Sicherheit, Fehleranalyse oder gesetzliche Pflichten erforderlich sind. Der konkrete Log-Aufbewahrungszeitraum muss vom Betreiber festgelegt und hier ergänzt werden.
Die Bereitstellung der für eine Funktion als erforderlich gekennzeichneten Daten ist notwendig, um diese Funktion zu nutzen. Freiwillige Angaben können ausgelassen werden; freie Texte dürfen keine Daten Dritter oder besonderen Kategorien personenbezogener Daten enthalten.
8. Zugriff, Berechtigungen und Datensicherheit
8.1. Zugangssteuerung
Der Zugriff auf das Team-Dashboard ist ausschließlich auf Nutzer beschränkt, die im Dashboard angemeldet sind und die für den jeweiligen Discord-Server notwendigen Berechtigungen besitzen. Innerhalb des Moduls gelten granulare Berechtigungen je Rang-Stufe (z. B. manage_applications, manage_jobs, manage_members).
8.2. Technische Schutzmaßnahmen
Zum Schutz der Daten werden unter anderem serverseitige Zugriffskontrollen, Sitzungen, vorbereitete Datenbankabfragen und eine rollenabhängige Berechtigungsprüfung eingesetzt. Schreibende Aktionen müssen zusätzlich gegen CSRF-Angriffe abgesichert sein; die konkrete Umsetzung ist für jedes Modul regelmäßig zu prüfen.
8.3. Verschlüsselung sensibler Konfigurationsdaten
Discord-Webhook-URLs werden mit AES-256-CBC verschlüsselt gespeichert. Der Schlüssel wird serverseitig vorgehalten und verlässt den Server nicht. Passwörter für die Bewerbungsseite werden ausschließlich als bcrypt-Hash gespeichert.
8.4. Bereinigungsroutine
Der zentrale Bereinigungslauf beim Dashboard-Aufruf löscht entschiedene Bewerbungen nach 60 Tagen, Abwesenheiten entsprechend der Modul-Einstellung (14 oder 30 Tage nach dem Abwesenheitsende), Schichten entsprechend ihrer Einstellung (7 oder 14 Tage) und erledigte Todos nach 10 Tagen. Der Lauf wird aus Sicherheits- und Performancegründen höchstens einmal innerhalb von 15 Minuten tatsächlich ausgeführt.
9. Löschung bei Server-Entfernung
Wird der Bot von einem Discord-Server entfernt, markiert der zentrale Bereinigungslauf den Server zunächst als vermisst. Bleibt er 7 Tage lang in keiner erfolgreichen Discord-Guild-Abfrage enthalten, werden serverbezogene Daten aus Tabellen mit guild_id sowie die zugehörige Serverkonfiguration gelöscht. Eine fehlgeschlagene Discord-Abfrage löst keine Löschung aus. Bestehen gesetzliche Aufbewahrungspflichten oder laufende Rechtsstreitigkeiten, muss der Bereinigungslauf vor dem produktiven Einsatz um eine entsprechende Sperr- oder Ausnahmeregelung ergänzt werden.
10. Deine Rechte als betroffene Person
Als Person, deren Daten im Team-Dashboard verarbeitet werden (z. B. als Teammitglied oder als Bewerber), stehen dir folgende Rechte gemäß DSGVO zu:
- Auskunftsrecht (Art. 15 DSGVO): Du kannst Auskunft darüber verlangen, welche Daten von dir gespeichert sind.
- Recht auf Berichtigung (Art. 16 DSGVO): Fehlerhafte Daten können auf Antrag korrigiert werden.
- Recht auf Löschung (Art. 17 DSGVO): Du kannst unter den gesetzlichen Voraussetzungen die Löschung verlangen. Eine Löschung kann insbesondere bei gesetzlichen Aufbewahrungspflichten, zur Geltendmachung von Rechtsansprüchen oder wegen anderer gesetzlicher Ausnahmen eingeschränkt sein.
- Recht auf Einschränkung (Art. 18 DSGVO) sowie Datenübertragbarkeit (Art. 20 DSGVO).
- Widerspruchsrecht (Art. 21 DSGVO): Gegen die Verarbeitung auf Basis berechtigter Interessen.
- Widerrufsrecht (Art. 7 Abs. 3 DSGVO): Eine erteilte Einwilligung (z. B. durch Einreichung einer Bewerbung) kann jederzeit ohne Angabe von Gründen mit Wirkung für die Zukunft widerrufen werden.
Zur Ausübung deiner Rechte kontaktiere uns bitte per E-Mail an lukas@nrw-roleplay.de. Bitte gib, soweit möglich, die betreffende Server-ID, deinen Discord-Namen oder deine Discord-ID und die Art deiner Anfrage an. Du hast außerdem das Recht, dich bei einer Datenschutzaufsichtsbehörde zu beschweren, insbesondere in dem Mitgliedstaat deines gewöhnlichen Aufenthalts, Arbeitsplatzes oder des mutmaßlichen Verstoßes.