Files
Wegwichtel/docs/MODERATION-MEDIEN.md
Florian Zumpe 74090723c4
Sonarqube Scanner / Prepare environment (push) Successful in 13s
Sonarqube Scanner / Build and test (push) Successful in 33s
Sonarqube Scanner / SonarQube analysis (push) Successful in 1m38s
Sonarqube Scanner / Deploy to Server (push) Successful in 7s
sorted markdown and added favicon
2026-10-04 09:06:48 +02:00

3.1 KiB

Stationen und Medien prüfen

npm run moderate zeigt unter jeder Strecke eine Tabelle mit Stations-ID, Platz (ab 1, sortiert nach sequence, id), Beschreibung und Erstelldatum. Bei leerer Beschreibung erscheint der Titel. Zeilenumbrüche werden nur für die Tabellenanzeige zusammengefasst. Die Datenbank wird lesend geöffnet.

In .env ergänzen:

MODERATION_REVIEW_URL=https://wegwichtel.de/moderation/api

Die Tabelle zeigt für jedes Bild und jede Tonaufnahme einen eigenen Link. Gelöschte Strecken erhalten keine Links. Ohne diese Einstellung bleibt die Linkspalte leer. Zugangsdaten gehören nicht in URLs oder .env. Es gibt keine Einmal-Tokens, keine zusätzliche Datenbanktabelle und kein PHP. Eine Datenbank-Neuinitialisierung ist für diese Änderung nicht nötig.

Anmeldung mit Nginx und htpasswd

nginx/moderation-review.location.conf in den bestehenden HTTPS-server-Block aufnehmen. Der geschützte Pfad /moderation/api/ nutzt die vorhandene Node-API. GET und HEAD sind erlaubt; schreibende Methoden sind gesperrt. Nginx prüft Benutzername und Passwort und leitet die Zugangsdaten nicht an Node weiter. Die Vorlage verweigert HTTP; die Anmeldung muss über HTTPS erfolgen.

Auf Debian/Ubuntu beispielsweise:

sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/wegwichtel-moderation.htpasswd moderator
sudo chown root:www-data /etc/nginx/wegwichtel-moderation.htpasswd
sudo chmod 640 /etc/nginx/wegwichtel-moderation.htpasswd
sudo nginx -t
sudo systemctl reload nginx

www-data gegebenenfalls an den Nginx-Benutzer anpassen. -c nur beim ersten Anlegen benutzen, damit bestehende Benutzer nicht überschrieben werden. Beim Öffnen eines Prüflinks erscheint die Anmeldeabfrage des Internetbrowsers. Bilder und Audio nutzen die bestehenden Datei-Endpunkte einschließlich Range-Requests. Die Vorlage ersetzt nicht die vorhandene Server-Konfiguration.

Wichtig für den Umfang: Die Authentifizierung schützt den Moderationspfad. Die bisherigen /api/-Endpunkte bleiben entsprechend dem bisherigen Verhalten zugänglich, auch für noch nicht freigegebene aktive Strecken. Das entspricht bereits online verfügbaren Daten; es ist keine Zugriffssperre für unveröffentlichte Inhalte. Eine solche Sperre müsste separat für die öffentliche API umgesetzt werden.

Falls das vorherige Archiv bereits eingebaut wurde

Die Dateien tools/php/moderation-review.php und test/php/test_moderation_review.py sowie den alten PHP-Location-Block entfernen. Den npm-Eintrag test:php entfernen und MODERATION_TOKEN_TTL_SECONDS aus .env löschen. Eine bereits angelegte Tabelle moderation_review_tokens wird nicht mehr benutzt; sie kann bestehen bleiben. Die neuen Dateien ersetzen keine Datenbank und löschen keine Strecken.

Tests

Python-Tests prüfen Tabellenreihenfolge, stabile Bild-/Audiolinks, gelöschte Strecken, URL-Konfiguration und dass die Anzeige die SQLite-Datei nicht verändert. Nginx muss auf dem Zielserver mit nginx -t und anschließend über HTTP geprüft werden: ohne oder mit falschem Passwort 401, mit gültigem Passwort Dateiabruf; schreibende Methoden dürfen keine Änderung auslösen.