Skip to content

Passwortgeschützte Datensätze nicht ernten, CI-Rechte, Abhängigkeiten (v2.47.1) - #150

Merged
daimpad merged 2 commits into
mainfrom
claude/fix-data-prep-errors-kJYpl
Nov 2, 2026
Merged

daimpad merged 2 commits into
mainfrom
claude/fix-data-prep-errors-kJYpl

Conversation

@daimpad

@daimpad daimpad commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Worum es geht

Ein Sicherheits-Patch mit drei Teilen.

1. Passwortgeschützte Datensätze in keinem Harvest-Endpunkt
Der Datenkatalog auf der Website blendete sie schon aus, /catalog lieferte sie aber vollständig aus.

  • /catalog (auch ?full=1 und Turtle) lässt sie weg.
  • /delta lässt sie bei den geänderten Datensätzen weg.
  • /datasets/<id> antwortet mit derselben 404 wie für eine unbekannte ID.
  • Ein nachträglich geschützter Datensatz erscheint in /delta unter odw:removed. So entfernen ihn auch Portale, die nur Änderungen abholen. Das Setzen des Passworts ändert post_modified, der Datensatz fällt also ins Abfragefenster.

2. CodeQL: „Workflow does not contain permissions“ (7 Hinweise in ci.yml)

  • ci.yml setzt permissions: contents: read für alle Jobs.
  • Kein Job schreibt ins Repository; der Release-Workflow hat seine eigenen Rechte und bleibt unverändert.

3. Dependabot und npm audit: Abhängigkeiten der Testumgebung

  • Neue overrides in package.json:
    • qs → 6.17.1
    • body-parser → 1.20.9
    • glob → 14.0.3, dadurch minimatch → 11.0.4
  • Das deckt die beiden offenen Dependabot-Hinweise (minimatch #266, qs #261) ab, dazu weitere Funde von npm audit: body-parser (hoch), glob und zwei weitere qs-Hinweise. npm audit meldet danach 0 Funde.
  • Betroffen sind nur Entwicklungswerkzeuge (wp-env, Playwright, SHACL). Das Plugin-ZIP enthält keine npm-Pakete.

Test plan

  • PHPUnit: 505 Tests grün; neu ist /datasets/<id> → 404 für einen passwortgeschützten Datensatz.
  • PHPCS, PHPStan, Übersetzungen, Paket gebaut und mit verify-package.py geprüft.
  • Im echten WordPress mit dem passwortgeschützten Datensatz der E2E-Saat:
    • nicht in /catalog,
    • /datasets/<id> antwortet mit 404,
    • in /delta nicht unter den geänderten Datensätzen, aber als Löschmeldung.
  • Neuer E2E-Test in api-endpoints.spec.js: Der geschützte Datensatz erscheint in keinem Endpunkt.
  • Nach npm ci mit den Overrides lokal geprüft:
    • rimraf (Glob- und Sync-Modus) funktioniert,
    • wp-env --version läuft,
    • die SHACL-Prüfung besteht.
    • Der E2E-Job der CI startet wp-env damit vollständig.

Generated by Claude Code

…eiten (v2.47.1)

- REST: /catalog und /delta lassen passwortgeschützte Datensätze weg,
  /datasets/<id> antwortet mit 404; ein nachträglich geschützter Datensatz
  erscheint in /delta als Löschmeldung.
- CI: permissions: contents: read (7 CodeQL-Hinweise).
- npm overrides für qs, body-parser, glob/minimatch (Dependabot-Hinweise,
  npm audit 0 Funde); nur Entwicklungswerkzeuge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
….47.1

- CLAUDE.md: Testzahlen, Testdateien, E2E-Specs einzeln in der CI,
  CI-Rechte, Menüstruktur mit Batch-Import und Beispieldaten, REST-
  Antworten wie sie sind (format, full, odw:removed), Harvest-Ausschlüsse,
  npm-overrides, PR-/Release-Ablauf statt „direkt zu main", Erledigt-Liste
  bis 2.47.1, Versionsstellen.
- README: Endpunkte liefern nur Öffentliches, Löschmeldungen, Roadmap.
- DOCUMENTATION: Testbaum, npm-Abhängigkeiten, CI-Abschnitt.
- TECHNICAL-SPEC: Harvest-Umfang im Umsetzungsstand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
@daimpad
daimpad merged commit b619764 into main Nov 2, 2026
22 checks passed
@daimpad
daimpad deleted the claude/fix-data-prep-errors-kJYpl branch November 2, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants