Client-Error-Endpoint POST /api/vitec/client-error (0072-FE / 0077-BE)
Neue PSR-15-Middleware ClientErrorMiddleware: nimmt Browser-Fehler des
React-Frontends als JSON {url, message, stack, release, userAgent}
entgegen und antwortet 204 ohne Body. Schutz: 30 Meldungen pro Minute
und IP (Sliding Window ueber TYPO3-RateLimiter, 429 + Retry-After),
8-KB-Body-Limit (413, Content-Length und tatsaechliche Bytes), kein
JSON-Objekt oder leere message = 400, GET = 405. Keine Session, keine
Cookies; der /_json-Praefix funktioniert ebenfalls.
Speicherung in der neuen Tabelle tx_vitec_clienterrorlog mit
anonymisierter IP (IPv4 letztes Oktett 0, IPv6 /48). Sichtbar als
Tabelle "Client errors (last 24 h)" im Modul VITEC SSR (mit Stack als
Aufklapper) und als Zeile "Client errors reported (24 h / 7 d)" in der
Dashboard-Kachel VITEC: SSR statistics.
CLI vitec:client-error-cleanup [--days=30] loescht Eintraege aelter als
30 Tage (taeglich per Cron).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
ff6f86b829
commit
5121eaa000
7 files changed
+360
No files matched your search
@@ -499,3 +499,22 @@ CREATE TABLE tx_vitec_ssrhealthlog (
|
||||
PRIMARY KEY (uid),
|
||||
KEY crdate (crdate)
|
||||
);
|
||||
|
||||
#
|
||||
# Client error reports from the React frontend
|
||||
# (POST /api/vitec/client-error, ClientErrorMiddleware; 30-day retention
|
||||
# via vitec:client-error-cleanup; shown in the VITEC SSR module)
|
||||
#
|
||||
CREATE TABLE tx_vitec_clienterrorlog (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
url varchar(1024) DEFAULT '' NOT NULL,
|
||||
message text,
|
||||
stack text,
|
||||
release varchar(100) DEFAULT '' NOT NULL,
|
||||
user_agent varchar(500) DEFAULT '' NOT NULL,
|
||||
ip varchar(64) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY (uid),
|
||||
KEY crdate (crdate)
|
||||
);
|
||||
Reference in new issue
Block a user