- Selbstauskunft
/api/me: listet die Endpunkte, die das aufrufende Token bzw. der Backend-User nutzen darf, auf Wunsch als gefilterte OpenAPI-Spec (?format=openapi). Der Endpunkt braucht keinen eigenen Scope — sonst würde er genau bei den Tokens fehlen, bei denen ein Scope vergessen wurde. - Chunked Upload für große Mediendateien:
media/uploadmit init, chunk, status, finalize und abort. Die zusammengesetzte Datei geht anrex_media_service::addMedia(), damit Endungs-Blockliste, MIME-Allowlist und die Extension PointsMEDIA_ADD_FILE/MEDIA_ADDEDunverändert greifen. Alle fünf Routen teilen sich einen Scope — einzeln vergeben wären sie unbrauchbar. (#39) - Medienliste: Freitextsuche über Dateiname und Titel (
filter[term], inklusivetype:jpg,pngund Gruppierung mit Anführungszeichen), Filter auf Dateiendungen (filter[types]) und rekursive Kategoriesuche über den Kategoriepfad (filter[category_id_path]) — dieselbe Semantik wierex_media_service::getList()(#64) - Tokens können ablaufen: Das Feld Läuft ab bietet Zeitspannen von 3 Stunden bis 1 Jahr an und nennt zu jeder den Zeitpunkt, auf den sie hinausläuft; Benutzerdefiniert schaltet ein Datumsfeld frei, Nie lässt das Token unbegrenzt gültig. Der Zeitpunkt wird aus der Datenbankzeit berechnet, weil der Ablauf gegen
now()geprüft wird. Ein abgelaufenes Token wird wie ein unbekanntes behandelt:401. (#48) - OpenAPI: Der geforderte Scope steht als
x-required-scopeund in der Beschreibung jeder Operation; die Endpunkte sind nach Ressource gruppiert statt nach Registrierungsreihenfolge sortiert. - Slice-Endpunkte kennen
value20(#52)
- Slice-Revisionen: Die Arbeitsversion des Plugins
structure/versionist beim Anlegen über das Body-Feldrevisionerreichbar; Priorität und Extension-Point-Parameter zählen pro Revision. Im Backend-Scope wirdversion[live_version]geprüft, bevor in die Live-Version geschrieben wird — bei Bearer-Tokens ersetzen weiterhin die Scopes die User-Permissions. (#42) filter[revision]bei den Artikel-Endpunkten entfernt:rex_article.revisionwird vom Core nie befüllt und in keiner Artikel-Query ausgewertet, der Filter hat nichts bewirkt außer Erwartungen zu wecken. Revisionen leben ausschließlich inrex_article_slice. Das Feld bleibt in der Response enthalten, damit sich das Antwortschema nicht ändert.- Unique-Index auf
rex_api_token.token: Ein doppelter Wert hätte den zweiten Eintrag samt Scopes unwirksam gemacht. Enthält eine bestehende Installation Duplikate, wird der Index übersprungen und eine Warnung ins System-Log geschrieben, statt das Update abzubrechen. (#26) - Toten Kategorie-Code aus dem Media-RoutePackage entfernt — der auskommentierte Entwurf hätte über
rex_category_serviceArtikelkategorien statt Medienkategorien gelöscht. - Update auf symfony/routing 7.4.17
- Überschrittene PHP-Uploadgrenzen werden als
413mit den geltenden Limits gemeldet statt als generisches400. Ein Body überpost_max_sizeerreicht PHP gar nicht mehr vollständig — dieser Fall wird eigens erkannt. - Metainfo-Werte: Arrays und Objekte auf einfachen Feldern werden mit
400zurückgewiesen statt still verworfen (#66) - Metainfo-Felder: Schlägt das
ALTER TABLEfehl — etwa an der maximalen Zeilengröße —, wird das mit500gemeldet und die bereits geschriebene Feldzeile zurückgenommen. Verwaiste Zeilen aus früheren Fehlschlägen lassen sich löschen, statt dauerhaft404zu liefern. (#67) - Sprachen: Der Versuch, die Startsprache zu löschen, antwortet mit
409statt500—rex_functional_exceptionsteht für einen fachlichen Verstoß, nicht für einen Serverfehler. - Status-Übersetzung in der Token-Liste korrigiert
- README: Chunked Upload, Uploadgrenzen, Medienfilter, Ablaufdatum und die Endpunkt-Tabellen ergänzt
- CLAUDE.md: Konventionen für den OpenAPI-Generator, Slice-Revisionen, Chunked Upload und die Token-Seite festgehalten
Die Notizen zu Version 1.2 und älter stehen bei den GitHub-Releases.