SSR control center: auto-purge webhook, dashboard tiles, backend module

Package 1: SsrPurgeService posts to the node /__purge (endpoint+secret in var/vitec-ssr-purge.env, outside git) and logs every attempt to tx_vitec_ssrpurgelog. DataHandler hooks queue per request and flush once: pages with nav-relevant field changes and all tx_news_/tx_vitec_ records purge everything, other page/content edits purge the hosting page path. Gated by the routing flag and the new Site Set switch vitec.ssr.autoPurge. Flipping the SSR switch ON purges everything once. CLI: vitec:ssr-purge, vitec:ssr-health (samples /__health into tx_vitec_ssrhealthlog, 14 days kept, scheduler-ready). Package 2: dashboard widgets vitecSsrStatus (live health, release, switch, last purge) and vitecSsrStats (purge counts, failures, uptime, response time). Package 3: backend module web_vitecssr with manual purge (paths or everything) and both protocols. Tested end to end against the running node (purge single/all 200, health sample logged).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
orascheandClaude Fable 5 committed 2026-11-09 20:46:16 +01:00
1 parent d52d49974f
commit 63f950f9db
14 files changed
+1003

No files matched your search

+33
View File
@@ -460,3 +460,36 @@ CREATE TABLE tx_vitec_domain_model_searchcard (
link varchar(1024) DEFAULT '' NOT NULL,
link_label varchar(80) DEFAULT '' NOT NULL
);
#
# SSR purge protocol (auto-purge webhook + backend module, 2026-11-09)
#
CREATE TABLE tx_vitec_ssrpurgelog (
uid int(11) NOT NULL auto_increment,
pid int(11) DEFAULT '0' NOT NULL,
crdate int(11) DEFAULT '0' NOT NULL,
trigger_source varchar(100) DEFAULT '' NOT NULL,
paths text,
success tinyint(1) DEFAULT '0' NOT NULL,
http_code int(11) DEFAULT '0' NOT NULL,
message varchar(255) DEFAULT '' NOT NULL,
duration_ms int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (uid),
KEY crdate (crdate)
);
#
# SSR health history (vitec:ssr-health via scheduler, dashboard widgets)
#
CREATE TABLE tx_vitec_ssrhealthlog (
uid int(11) NOT NULL auto_increment,
pid int(11) DEFAULT '0' NOT NULL,
crdate int(11) DEFAULT '0' NOT NULL,
ok tinyint(1) DEFAULT '0' NOT NULL,
release_id varchar(100) DEFAULT '' NOT NULL,
cached_pages int(11) DEFAULT '0' NOT NULL,
cache_mb int(11) DEFAULT '0' NOT NULL,
response_ms int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (uid),
KEY crdate (crdate)
);