AI Disclosure Standard 1.6.1
Ein zustandsloser Go-Dienst für sichtbare und maschinenlesbare Erklärungen zur KI-Nutzung in Artikeln, Webseiten und einzelnen Inhaltsbestandteilen.
Funktionen
- einzelne Deklarationen und zusammengefasste Artikel-/Webseiten-Deklarationen;
- SVG-Badges, HTML-Erklärung und JSON-LD unter einem gemeinsamen Link;
- Text, Titelbild, weitere Bilder, Recherche, Übersetzung, Audio, Video und Code getrennt erfassbar;
- automatisch erzeugte, professionell formulierte Zusammenfassung als Fließtext und strukturierte Tabelle;
- frei wählbare Nachweisgrundlage: Selbsterklärung, technisch protokolliert, signiert oder verifiziert;
- Deutsch, Englisch, Französisch, Spanisch, Italienisch, Niederländisch, Portugiesisch und Polnisch;
- Sprachumschalter direkt auf der Ergebnisseite;
- optionale lizenzierte Funktionen für eigene Texte und Badge-Darstellung;
- Offline-, Hybrid- und Online-Prüfung über die eigenständige Universal License Platform;
- Health-, Readiness- und Prometheus-Endpunkte;
- Docker-, Kubernetes- und Docker-Swarm-Deployment.
Start unter Windows
go run .\cmd\server
Danach:
Generator: http://localhost:8080/
Produktseite: http://localhost:8080/product
Healthcheck: http://localhost:8080/healthz
Funktionen: http://localhost:8080/v1/capabilities
Go lädt .env nicht selbst. Unter PowerShell kann die Datei vor dem Start in die Prozessumgebung übernommen werden oder Docker Compose mit --env-file .env verwendet werden.
Docker Compose
Copy-Item .env.example .env
docker compose --env-file .env up -d --build
Lizenzprüfung
Dieses Projekt stellt keine Lizenzen aus und enthält keine Schlüsselgenerierung, privaten Schlüssel, Lizenzverwaltung, Admin-Oberfläche oder eigenen Lizenzserver. Diese Aufgaben gehören ausschließlich in die separat betriebene Universal License Platform.
Der Produktserver enthält nur den Laufzeit-Client und akzeptiert:
LICENSE_TOKEN=...
LICENSE_MODE=offline
LICENSE_SERVER_URL=
LICENSE_INSTANCE_ID=
Der Produktname ist fest verdrahtet:
ai-disclosure-standard
Für die vorhandenen Funktionen verwendet die Plattform diese Feature-IDs:
custom_text
custom_badge
white_label
Vertrauensschlüssel einbetten
Die öffentlichen Issuer- und Lease-Schlüssel werden von der Universal License Platform bereitgestellt. Lade dort den Trust Store herunter und ersetze vor dem Build:
internal/app/trusted_keys.json
PowerShell-Beispiel:
Invoke-WebRequest `
"https://licenses.example.org/api/v1/trust-store" `
-OutFile ".\internal\app\trusted_keys.json"
go build .\cmd\server
Der Trust Store wird mit go:embed fest in das Binary eingebaut. Es gibt absichtlich kein LICENSE_PUBLIC_KEY und keinen zur Laufzeit austauschbaren Trust Store.
Prüfmodi
Offline prüft den signierten Lizenz-Token ausschließlich lokal.
LICENSE_MODE=offline
LICENSE_TOKEN=...
Hybrid fragt die Universal License Platform ab und speichert ein kurzlebiges, signiertes Lease. Bei temporärer Nichterreichbarkeit kann das letzte gültige Lease innerhalb der in der Lizenz festgelegten Grace-Periode verwendet werden.
LICENSE_MODE=hybrid
LICENSE_TOKEN=...
LICENSE_CACHE_FILE=/data/license-lease.json
Online benötigt eine erfolgreiche aktuelle Prüfung durch die Plattform.
LICENSE_MODE=online
LICENSE_TOKEN=...
Bei Hybrid- und Online-Lizenzen übernimmt der Client bevorzugt die von der Plattform signiert in der Lizenz gespeicherte Server-URL. LICENSE_SERVER_URL ist nur ein expliziter Override beziehungsweise Fallback.
Der Client verwendet die Plattform-API:
POST /api/v1/licenses/validate
und unterstützt für bestehende Installationen weiterhin:
POST /v1/introspect
Weitere Einzelheiten stehen in docs/LICENSE-INTEGRATION.md. Für bestehende 1.5-Installationen siehe docs/MIGRATION-1.5-TO-1.6.md.
Konfiguration
| Variable | Standard | Bedeutung |
|---|---|---|
LISTEN_ADDRESS |
:8080 |
HTTP-Adresse |
BASE_URL |
http://localhost:8080 |
öffentliche kanonische URL und Domainprüfung |
PUBLIC_NAME |
AI Usage Disclosure |
sichtbarer Produktname |
CONTACT_URL |
Projektseite | Kontakt-/Informationsseite |
DEFAULT_LANGUAGE |
de |
Standardsprache |
TRUST_PROXY |
false |
Proxy-Header für Client-IP berücksichtigen |
LICENSE_TOKEN |
leer | von der Universal License Platform ausgestellter Token |
LICENSE_MODE |
offline |
Mindestmodus offline, hybrid oder online |
LICENSE_SERVER_URL |
leer | optionaler Prüfserver-Override |
LICENSE_INSTANCE_ID |
leer | optionale Instanzbindung |
LICENSE_CACHE_FILE |
./data/license-lease.json |
signierter Hybrid-Lease-Cache |
LICENSE_REFRESH_INTERVAL |
15m |
Hintergrundaktualisierung |
LICENSE_REQUEST_TIMEOUT |
5s |
Timeout der Onlineprüfung |
API
GET /badge/{preset}.svg
GET /v1/badge.svg
GET /declaration
GET /v1/declaration.json
POST /v1/validate
GET /v1/capabilities
GET /healthz
GET /readyz
GET /metrics
Beispiel für eine Artikelerklärung:
/declaration?mode=article&textExtent=none&textReview=none&imageExtent=full&imageReview=editorial&researchExtent=assisted&researchReview=expert&assurance=technicallyRecorded&lang=de
Nachweisgrundlage
Der Generator bietet vier interoperable Werte. Sie werden über den Query-Parameter assurance an HTML- und JSON-LD-Ausgaben übertragen:
| Wert | Bedeutung |
|---|---|
selfDeclared |
Die veröffentlichende Person oder Organisation stellt die Angaben selbst bereit. |
technicallyRecorded |
Die Angaben wurden im Erstellungs- oder Veröffentlichungsprozess technisch protokolliert. |
signed |
Die Erklärung wurde digital signiert; Herkunft und Unverändertheit können geprüft werden. |
verified |
Die Angaben wurden nach einem dokumentierten Verfahren zusätzlich verifiziert. |
Eine digitale Signatur bestätigt die Herkunft und Integrität der Erklärung, nicht automatisch die inhaltliche Richtigkeit ihrer Angaben. Nicht zutreffende Nachweisstufen sollten nicht ausgewählt werden.
Entwicklung und Prüfung
go test .\...
go vet .\...
Der eingebundene, reine Laufzeit-Client wird separat geprüft:
Set-Location .\third_party\license-platform-client
go test .\...
Gesamtprüfung über Make:
make check
Projektgrenze
Im Hauptprojekt verbleiben ausschließlich:
- ein eingebetteter öffentlicher Trust Store;
- ein verifikationsfähiger Client;
- Feature- und Limit-Abfragen;
- optionaler signierter Lease-Cache.
Nicht enthalten sind:
- private Schlüssel;
- Keygen oder Lizenzsignierung;
- Lizenzportal oder Admin-API;
- Lizenzdatenbank;
- Widerrufsverwaltung oder Lease-Signierung.
Diese Funktionen werden nur in der eigenständigen Universal License Platform betrieben.