# Changelog ## 2.0.2 - `.env.example` ist nun die vollständige Runtime-Konfigurationsreferenz statt nur eines Minimalbeispiels. - Vertrauenswürdige Reverse-Proxy-Netze über `TRUSTED_PROXY_CIDRS`; weitergereichte Client-IP-Header werden nur von explizit vertrauenswürdigen Peers akzeptiert. - Datenschutzfreundliches Request-Logging mit `LOG_CLIENT_IP=false` als Standard und optionales `ENABLE_HSTS`. - Prometheus ist standardmäßig deaktiviert und kann nur mit Bearer-Token (`METRICS_TOKEN` / `METRICS_TOKEN_FILE`) aktiviert werden. - Mehrsprachige Betreiberseiten `/legal`, `/imprint`, `/privacy` und `/accessibility` mit konfigurierbaren Betreiber-, Datenschutz- und Barrierefreiheitsangaben. - `LEGAL_STRICT` als Fail-Fast-Prüfung für zentrale Betreiber-/Datenschutzfelder und die Konfiguration der Verbraucherstreitbeilegung. - Betreiberseiten und ihre statischen Assets bleiben auch bei einer Runtime-Lizenzstörung erreichbar. - Konfigurations-Regressionstests sowie neue Dokumentation in `docs/CONFIGURATION.md` und `docs/OPERATOR-PAGES.md`. - `SALES_URL` und `PRICE_*` bleiben bewusst entfernt, da Preisübersicht und Pro-Werbung nicht mehr Teil der öffentlichen Anwendung sind. ## 2.0.1 - **Bulk Workspace wiederhergestellt:** Der dedizierte Bulk-Container liefert wieder eine vollständige Weboberfläche unter `/` und `/bulk`. - Visueller Workflow zum Anwenden eines gemeinsamen Artikelprofils auf viele URLs/IDs. - Erweiterter JSON-Modus für heterogene Bulk-Requests bleibt direkt mit `POST /v1/bulk/declarations` kompatibel. - Ergebnisansicht mit Erfolgs-/Fehlerstatus, Artikel-50-Einordnung sowie direkten Links zu Erklärung, Manifest und Badge. - JSON- und CSV-Export der Bulk-Ergebnisse. - API-Key-Eingabe wird ausschließlich im `sessionStorage` des aktuellen Browser-Tabs gehalten; der Schlüssel wird nicht in Ergebnisse geschrieben. - Bulk-Workspace respektiert `bulk_api`, `bulk_items`, `BULK_MAX_ITEMS` und `BULK_REQUIRE_API_KEY`. - Dedizierter Bulk-Container behält Fail-Closed-Lizenzierung, API-Key-Schutz, Read-only-Filesystem und alle 2.0-Härtungen bei. - `LICENSE_TOKEN_FILE` und `BULK_API_KEY_FILE` haben nun Vorrang vor gleichnamigen Environment-Werten; veraltete `.env`-Secrets können Docker-/Kubernetes-Secrets nicht mehr überschreiben. - Bulk-Oberfläche für alle acht unterstützten Sprachen vorbereitet; Deutsch und Englisch vollständig redaktionell ausgearbeitet, weitere Sprachen mit lokalisierten Kerntexten und englischem Fallback für seltene Verwaltungsbegriffe. ## 2.0.0 ### Article 50 decision support - regulatorischer Kontext als strukturierter Bestandteil des Schemas 1.2; - Deepfake-, Public-Interest-Text-, künstlerischer Kontext-, Human-Review-, Editorial-Responsibility-, First-Exposure- und Accessibility-Felder; - nicht bindender `/v1/article50-assessment.json`-Endpunkt; - explizitere Badge-Darstellung für markierte Artikel-50-Szenarien; - zusätzliche Warnung zur angemessenen Offenlegungsform bei künstlerischen/kreativen/satirischen/fiktionalen Deepfake-Kontexten; - `no-ai`-Preset behauptet keine menschliche KI-Prüfung mehr. ### Professional runtime - `SERVICE_MODE=full|api|bulk`; - `REQUIRE_LICENSE` kann offizielle lizenzierte Deployments fail-closed betreiben; - konfigurierbares API-CORS über `API_ALLOWED_ORIGIN`; - White-Label-Capability; - neutralisierte UI-Begriffe für lizenzierte Anpassungen statt Pro-Werbung; - einheitlicher API-Fehler `licensed_feature_required`. ### Bulk & export - lizenzierte Capability `bulk_api`; - lizenzierte Capability `export_bundle`; - dedizierter `Dockerfile.bulk`; - API-Key-Schutz für Bulk über Bearer oder `X-API-Key`; - Secret-Dateien via `BULK_API_KEY_FILE` und `LICENSE_TOKEN_FILE`; - Item-/Body-Limits und optionales Lizenzlimit `bulk_items`; - Bulk-Metriken; - Export-Bundle mit SHA-256-Digest der Deklaration. ### Deployment & supply chain - gehärtete Kubernetes-Vorlage für den internen Bulk-Service; - separates Swarm-Bulk-Stack-Beispiel; - kommerzielles Compose-Beispiel mit Datei-Secrets; - Kubernetes ohne automatisch gemountete ServiceAccount-Tokens; - CI baut Full- und Bulk-Images für amd64/arm64, erzeugt SBOM/Provenance und signiert veröffentlichte Digests keyless mit Sigstore/Cosign; - OCI-Metadaten in beiden Dockerfiles. ### Documentation - neue Dokumentation für Article-50-Decision-Support, Bulk API, kommerzielles Deployment und Lizenzstrategie; - README vollständig auf die 2.0-Produktarchitektur aktualisiert; - OpenAPI auf Version 2.0.0 erweitert. ## 1.6.2 - eigene mehrsprachige Hintergrundseite zu Artikel 50 des EU AI Act; - interne Navigation auf `/background` umgestellt. ## 1.6.1 - professionellere Erklärungstexte; - gerasterte Tabellenansicht; - auswählbare Nachweisgrundlage. ## 1.6.0 - Lizenzprüfung an die eigenständige Universal License Platform angepasst; - sämtliche Lizenz-Erstellungs- und Admin-Funktionen aus dem Projekt entfernt.