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:
1 parent
d52d49974f
commit
63f950f9db
14 files changed
+1003
No files matched your search
@@ -127,4 +127,26 @@ return [
|
||||
],
|
||||
],
|
||||
],
|
||||
'web_vitecssr' => [
|
||||
'parent' => 'web',
|
||||
'position' => ['after' => 'web_vitecimport'],
|
||||
'access' => 'user',
|
||||
'workspaces' => 'live',
|
||||
'path' => '/module/web/vitec-ssr',
|
||||
'labels' => [
|
||||
'title' => 'VITEC SSR',
|
||||
'shortDescription' => 'SSR delivery: VPS status, manual purge, purge/health protocol',
|
||||
],
|
||||
'extensionName' => 'Vitec',
|
||||
'iconIdentifier' => 'actions-system-cache-clear-impact-medium',
|
||||
'routes' => [
|
||||
'_default' => [
|
||||
'target' => \Evomedien\Vitec\Controller\Backend\SsrController::class . '::indexAction',
|
||||
],
|
||||
'purge' => [
|
||||
'target' => \Evomedien\Vitec\Controller\Backend\SsrController::class . '::purgeAction',
|
||||
'methods' => ['POST'],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -22,3 +22,32 @@ services:
|
||||
# the final page title (seo.title) into meta.title as well.
|
||||
FriendsOfTYPO3\Headless\Seo\MetaHandlerInterface:
|
||||
alias: Evomedien\Vitec\Seo\VitecMetaHandler
|
||||
|
||||
# The DataHandler hook fetches this via GeneralUtility::makeInstance,
|
||||
# which resolves constructor arguments only for container-public services.
|
||||
Evomedien\Vitec\Service\SsrPurgeService:
|
||||
public: true
|
||||
|
||||
# SSR dashboard tiles (the WidgetConfigurationInterface argument is
|
||||
# injected by the dashboard compiler pass via the tag).
|
||||
Evomedien\Vitec\Widgets\SsrStatusWidget:
|
||||
tags:
|
||||
- name: dashboard.widget
|
||||
identifier: vitecSsrStatus
|
||||
groupNames: systemInformation
|
||||
title: 'VITEC: SSR / VPS-Status'
|
||||
description: 'Live-Zustand des SSR-Servers (Release, Cache, Erreichbarkeit) und der Auslieferungs-Schalter'
|
||||
iconIdentifier: 'content-widget-text'
|
||||
height: 'medium'
|
||||
width: 'medium'
|
||||
|
||||
Evomedien\Vitec\Widgets\SsrStatsWidget:
|
||||
tags:
|
||||
- name: dashboard.widget
|
||||
identifier: vitecSsrStats
|
||||
groupNames: systemInformation
|
||||
title: 'VITEC: SSR-Statistik'
|
||||
description: 'Purge-Protokoll und Verfügbarkeit des SSR-Servers (14 Tage Historie)'
|
||||
iconIdentifier: 'content-widget-number'
|
||||
height: 'medium'
|
||||
width: 'medium'
|
||||
@@ -127,3 +127,10 @@ settings:
|
||||
category: VITEC
|
||||
type: bool
|
||||
default: false
|
||||
|
||||
vitec.ssr.autoPurge:
|
||||
label: 'SSR auto-purge on editor changes'
|
||||
description: 'ON: saving pages/content/news automatically evicts the affected pages from the SSR page cache (menu-relevant changes evict everything). OFF: the SSR cache refreshes only by its TTL (5 min) or manual purge. Only relevant while SSR delivery is ON.'
|
||||
category: VITEC
|
||||
type: bool
|
||||
default: true
|
||||
Reference in new issue
Block a user