Create an Account

Register to access your projects or manage users as an admin.

Minimum 8 characters, including at least one uppercase letter, one lowercase letter, one number, and one special character.
Datenschutz- und Atenschutzvereinbarung der 2025 abc energy GmbH (Version 1.4) Stand: 11.03.2025 1. Verantwortlicher und Datenschutzkontakt 2025 abc energy GmbH Musterstraße 1 12345 Musterstadt Deutschland E-Mail: datenschutz@abc-energy.de Telefon: +49 30 123456-0 Der Datenschutzbeauftragte ist unter obiger Anschrift mit dem Zusatz "Datenschutz" erreichbar. Ein dedizierter Incident-Response-Kanal für Sicherheitsereignisse kann über security@abc-energy.de genutzt werden. 2. System-, Infrastruktur- und Cloud-Überblick 2.1 Hosting • Die Webanwendung wird containerisiert (Docker) betrieben und in der Stackhero-Cloud (EU-Region, Rechenzentren in Frankfurt und Paris) ausgeliefert. Stackhero stellt das verwaltete PostgreSQL-Cluster, verwaltet Traefik/TLS-Terminierung sowie Netzwerkinfrastruktur. • Der Applikationsserver läuft als Gunicorn-Worker hinter Flask/WSGI. TLS wird über Stackhero/Traefik bereitgestellt; innerhalb des Clusters gelten strikt verschlüsselte Verbindungen. 2.2 Cloud-Services • Google Cloud Storage (GCS) in einer EU-Region dient als Dokumentenspeicher für Projektunterlagen. Die Authentifizierung erfolgt über ein Dienstkonto, das per Umgebungsvariable GOOGLE_CREDENTIALS_BASE64 geladen wird. Signierte URLs werden über google-cloud-storage erzeugt (Module gcs_client.py & google_helpers.py). • Optional nutzt die Anwendung Google Secret Manager, um den symmetrischen Verschlüsselungsschlüssel (ENCRYPTION_KEY_SECRET_NAME) abzurufen. • SMTP-Versand erfolgt über ein externes, TLS-gesichertes Mail-Gateway (konfigurierbar über MAIL_SERVER / MAIL_PORT). Der Provider verarbeitet ausschließlich transaktionale System-E-Mails (Flask-Mail Integration). • CRM- und Automationsdienste: Über crm_integration.py werden Status-Updates an ein konfigurierbares CRM-WebHook-Ziel (z. B. Salesforce, HubSpot) gesendet. Zusätzlich können per ENABLE_ZAPIER_AUTOMATION E-Mails an ein Zapier-Postfach gehen. Beide Dienste agieren als Auftragsverarbeiter. • Monitoring & Telemetrie: Prometheus-Clients stehen bereit (prometheus_client) zur Aggregation technischer Metriken innerhalb des gleichen Cloud-Kontexts. Externe Transfers sind deaktiviert, solange keine Scrape-URL konfiguriert ist. 3. Softwarekomponenten & Abhängigkeiten Die Plattform basiert auf Python 3.11, Flask 3.0.3 und SQLAlchemy 2.0.31. Sämtliche produktiven Abhängigkeiten (Requirements-Stand vom 11.03.2025) sind nachfolgend aufgeführt, damit die eingesetzten Komponenten nachvollziehbar bleiben: - alembic==1.14.1 - anyio==4.6.0 - argon2-cffi==23.1.0 - argon2-cffi-bindings==21.2.0 - arrow==1.3.0 - asttokens==2.4.1 - async-lru==2.0.4 - attrs==24.2.0 - babel==2.16.0 - beautifulsoup4==4.12.3 - bleach==6.1.0 - blinker==1.9.0 - certifi==2024.8.30 - cffi==1.17.1 - charset-normalizer==3.3.2 - click==8.1.7 - colorama==0.4.6 - comm==0.2.2 - contourpy==1.3.0 - cycler==0.12.1 - debugpy==1.8.6 - decorator==5.1.1 - defusedxml==0.7.1 - executing==2.1.0 - fastjsonschema==2.20.0 - filelock==3.13.1 - Flask==3.0.3 - Flask-Migrate==4.1.0 - Flask-SQLAlchemy==3.0.3 - flask-talisman==1.1.0 - fonttools==4.54.1 - fqdn==1.5.1 - fsspec==2024.2.0 - gitdb==4.0.11 - GitPython==3.1.43 - greenlet==2.0.2 - h11==0.14.0 - httpcore==1.0.5 - httpx==0.27.2 - idna==3.10 - isoduration==20.11.0 - itsdangerous==2.2.0 - jedi==0.19.1 - Jinja2==3.1.4 - joblib==1.4.2 - json5==0.9.25 - jsonpointer==3.0.0 - jsonschema==4.23.0 - jsonschema-specifications==2023.12.1 - kiwisolver==1.4.7 - Mako==1.3.8 - MarkupSafe==2.1.5 - matplotlib==3.9.2 - matplotlib-inline==0.1.7 - migrate==0.3.8 - mistune==3.0.2 - mpmath==1.3.0 - nbclient==0.10.0 - nbconvert==7.16.4 - nbdime==4.0.2 - nbformat==5.10.4 - nest-asyncio==1.6.0 - networkx==3.2.1 - notebook_shim==0.2.4 - numpy==1.26.4 - overrides==7.7.0 - packaging==24.1 - pandas==2.2.3 - pandocfilters==1.5.1 - parso==0.8.4 - pexpect==4.9.0 - pillow==10.4.0 - platformdirs==4.3.6 - plotly==5.24.1 - prometheus_client==0.21.0 - prompt_toolkit==3.0.48 - psutil==6.0.0 - psycopg==3.2.4 - psycopg2==2.9.10 - ptyprocess==0.7.0 - pure_eval==0.2.3 - pycparser==2.22 - Pygments==2.18.0 - pyparsing==3.1.4 - python-dateutil==2.9.0.post0 - python-json-logger==2.0.7 - pytz==2024.2 - PyYAML==6.0.2 - pyzmq==26.2.0 - referencing==0.35.1 - requests==2.32.3 - rfc3339-validator==0.1.4 - rfc3986-validator==0.1.1 - rpds-py==0.20.0 - scikit-learn==1.5.2 - scipy==1.13.1 - seaborn==0.13.2 - Send2Trash==1.8.3 - setuptools==75.1.0 - six==1.16.0 - smmap==5.0.1 - sniffio==1.3.1 - soupsieve==2.6 - SQLAlchemy==2.0.31 - stack-data==0.6.3 - sympy==1.12 - tenacity==9.0.0 - terminado==0.18.1 - threadpoolctl==3.5.0 - tinycss2==1.3.0 - tornado==6.4.1 - traitlets==5.14.3 - types-python-dateutil==2.9.0.20240906 - typing_extensions==4.9.0 - tzdata==2024.2 - uri-template==1.3.0 - urllib3==2.2.3 - wcwidth==0.2.13 - webcolors==24.8.0 - webencodings==0.5.1 - websocket-client==1.8.0 - Werkzeug==3.0.3 - python-dotenv==1.0.1 - bcrypt==3.2.0 - Flask-Mail==0.9.1 - openpyxl==3.1.2 - python-docx==0.8.11 - mammoth==1.6.0 - PyPDF2==3.0.1 - reportlab==3.6.13 - gunicorn==20.1.0 - google-cloud-storage==2.16.0 - Flask-WTF==1.2.1 - cryptography==43.0.1 - python-magic==0.4.27 Die Pakete werden ausschließlich serverseitig genutzt; es findet kein Tracking durch Bibliotheken statt. 4. Zwecke und Verarbeitungstätigkeiten 4.1 Nutzerverwaltung (auth_user.py, mfa.py) • Registrierung, Login, MFA-Validierung, Passwort-Resets. • Daten: Stammdaten (Name, E-Mail, Firma), Hashes (bcrypt), MFA-Codes (zeitlich begrenzt), Audit-Informationen. 4.2 Projekt- und Standortverwaltung (project_routes.py, location_routes.py, models.py) • Erfassung von Förderprojekten, Upload & Download von Dokumenten (via GCS), Standortverknüpfungen, Angebotsbewertung. • Daten: Projektmetadaten, adressbezogene Informationen, Dokumente, Prüferkommentare. 4.3 Kommunikation & Benachrichtigungen (automation_emails.py, data_deletion.py) • Versand von Statusmeldungen, Welcome-Mails, Löschbestätigungen über SMTP. • CRM-Benachrichtigungen (requests) und optionale Zapier-Automation. 4.4 Audit, Sicherheit & Compliance (audit_logging.py, rate_limiter.py, login_security.py, data_retention.py) • Dokumentation von Dateiabrufen, Rate-Limits, Account-Lockouts, Löschprozesse, Retentionsberechnungen. 4.5 Vertrags- und Förderabwicklung • Nutzung der gespeicherten Informationen zur Prüfung, Einreichung und Nachverfolgung von Förderanträgen (inkl. Export als PDF/DOCX mittels PyPDF2, python-docx, reportlab). 5. Rechtsgrundlagen • Art. 6 Abs. 1 lit. b DSGVO – Erfüllung von Förder-, Vertrags- und Kundenbeziehungen. • Art. 6 Abs. 1 lit. c DSGVO – Gesetzliche Aufbewahrungspflichten (z. B. HGB, AO, KfW-Richtlinien) und Dokumentationspflichten. • Art. 6 Abs. 1 lit. f DSGVO – Berechtigtes Interesse an der Absicherung des Portals (MFA, Rate-Limiting, Audit-Logging, Betrugserkennung). • Art. 6 Abs. 1 lit. a DSGVO – Einwilligungen für optionale Benachrichtigungen (PORTAL_PROGRESS_PURPOSE) sowie Automationen an Zapier/CRM, sofern keine Vertragsnotwendigkeit vorliegt. Einwilligungen werden in UserConsentPreference gespeichert und können jederzeit widerrufen werden. 6. Kategorien personenbezogener Daten • Stammdaten: Name, Vorname, Firmenname, Rechnungsadresse, Benutzer-ID, Rollen. • Kontaktdaten: E-Mail, Telefonnummer (optional in Dokumenten), Ansprechpartner. • Projekt- & Standortdaten: Adresse, Vorgangsnummer, Baupläne, technische Spezifikationen, Angebote, Energieaudits. • Authentifizierungsdaten: Passwort-Hashes (bcrypt), MFA-Codes (temporär), API-Key-Hashes (PBKDF2), Session-Tokens. • Kommunikations- & Protokolldaten: Logins, Audit-Logs, CRM-Dispatches, Mail-Zustellungen, DocumentAccessLog, DataSubjectRequest-Einträge. • Bank-/Identdaten: IBAN, Steuer-ID, Geburtsdatum (nur verschlüsselt via Fernet im Feld *_encrypted) sofern für Förderanträge erforderlich. 7. Empfänger, Auftragsverarbeiter und Drittlandtransfers • Stackhero SAS, Paris (EU) – Hosting, PostgreSQL, TLS-Termination. AVV vorhanden, Daten bleiben in EU. • Google Ireland Limited – Google Cloud Storage & Secret Manager (EU-Region). AVV (Data Processing and Security Terms) abgeschlossen. • SMTP-Provider nach Kundenwahl (z. B. Postmark, Sendgrid, Microsoft 365). Versand erfolgt ausschließlich über TLS; Protokolle enthalten Empfänger, Betreff und Zustellstatus. • CRM/Webhook-Empfänger – vom Kunden definierter Cloud-Service (z. B. Salesforce EU). Übertragung ausschließlich über HTTPS inkl. optionalem Bearer-Token. • Zapier Inc. (USA) – nur falls ENABLE_ZAPIER_AUTOMATION aktiviert ist. In diesem Fall erfolgt die Übermittlung basierend auf Art. 49 Abs. 1 lit. a DSGVO (Einwilligung) mit Standardvertragsklauseln. Es finden keine sonstigen Drittlandübermittlungen statt. 8. Speicherorte, Aufbewahrungsfristen und Löschkonzept • PostgreSQL (Stackhero) speichert Kernobjekte (User, Project, Location, Konsent, Requests). Verschlüsselung: Managed Disk Encryption + Applikationsverschlüsselung (Fernet) für sensible Felder. • Google Cloud Storage speichert Dokumente. Zugriff erfolgt über zeitlich begrenzte, signierte URLs; Dateioperationen werden in DocumentAccessLog mit IP, User, Timestamp gespeichert. • Instanzspeicher (instance/location_uploads) nimmt nur temporäre Uploads auf und wird zyklisch bereinigt. • retention_policy.py implementiert folgende Fristen: Finalisierte Projekte 10 Jahre (gesetzliche Pflicht), abgebrochene Vorgänge 24 Monate, Dokumenten- und Audit-Logs 90 Tage (konfigurierbar in SecurityConfig). • DataDeletionRequest & DataSubjectRequest Workflows dokumentieren Eingänge und erfüllen Lösch-, Auskunfts- und Berichtigungsanliegen innerhalb der gesetzlichen Fristen. Löschbestätigungen erfolgen per E-Mail und werden im Audit-Log referenziert. 9. Sicherheit & Atenschutz • Transportverschlüsselung: HSTS + TLS 1.2/1.3 enforced via Flask-Talisman & Stackhero Traefik (ProxyFix konfiguriert). • Zugriffskontrolle: Role-Based Access Control (User vs. Admin), MFA-Pflicht für Admins, Session-Timeouts (SecurityConfig.SESSION_TIMEOUT), Rate-Limits (rate_limiter.py), Account-Lockouts (login_security.py). • Kryptografie: bcrypt für Passwörter, PBKDF2-SHA256 für API-Key-Hashes (SecurityConfig.API_KEY_HASH_ITERATIONS), Fernet-Verschlüsselung für Steuer-ID, IBAN, Geburtsdatum. Schlüsselmanagement über ENCRYPTION_KEY oder Google Secret Manager. • Dateiuploads: Beschränkte MIME-Typen und Dateigrößen, Virenschutz über python-magic & Validierungen; Google Cloud Storage erzwingt serverseitige Verschlüsselung. • Audit & Monitoring: DocumentAccessLog, Audit Logging für API- und Datei-Zugriffe, Prometheus Client Hooks für Betriebsmetriken, Logging via python-json-logger. • Incident Response: SecurityConfig definiert Parametrisierung, Incident-Playbooks referenzieren DEPLOYMENT_READINESS.md. Sicherheitsvorfälle werden dokumentiert und betroffene Personen informiert. 10. Rechte der betroffenen Personen Betroffene können jederzeit ihre Rechte auf Auskunft (Art. 15), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch (Art. 21) geltend machen. Einwilligungen können über das Portal oder per Nachricht an datenschutz@abc-energy.de widerrufen werden. Jede Anfrage wird in DataSubjectRequest gespeichert und mit Status/Fristen dokumentiert. 11. Ausübung der Rechte und Kontaktkanäle • Portal: Selbstbedienungsfunktionen (Download personenbezogener Daten, Löschanträge) sind im Benutzerkonto integriert. • E-Mail: datenschutz@abc-energy.de • Postweg: Verantwortlicher laut Abschnitt 1. Wir bestätigen den Eingang innerhalb von 72 Stunden und bearbeiten reguläre Anfragen innerhalb von 30 Tagen. Komplexe Fälle werden begründet verlängert. 12. Automatisierte Entscheidungen Es erfolgen keine ausschließlich automatisierten Entscheidungen mit Rechtswirkung. Scores und Statusampeln im Portal dienen als Unterstützung und werden vor Versand durch menschliche Sachbearbeitung geprüft. 13. Aktualisierung & Versionierung Änderungen an Infrastrukturen, Bibliotheken oder Dienstleistern führen zu einer Neubewertung dieser Vereinbarung. Nutzerinnen und Nutzer werden proaktiv über wesentliche Anpassungen informiert und müssen substanzielle Änderungen in der Anwendung bestätigen (PrivacyAgreementAcceptance). Der Changelog ist im Git-Repository versioniert (static/Datenschutz/v1.x.txt). 14. Dokumentations- und Nachweispflichten • Alle Deployments referenzieren DEPLOYMENT_READINESS.md und die aktuelle GDPR_STATUS_REVIEW.md. • Audit-, Consent- und Löschnachweise werden revisionssicher gespeichert und stehen Aufsichtsbehörden auf Anfrage zur Verfügung. • Das technische und organisatorische Maßnahmenverzeichnis wird jährlich aktualisiert und baut auf den Modulen security_config.py, database_security.py und secure_file_operations.py auf. Mit Nutzung des Portals bestätigen Sie, diese Datenschutz- und Atenschutzvereinbarung gelesen zu haben und akzeptieren die beschriebenen Verarbeitungen.