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>
137 lines
4.5 KiB
YAML
137 lines
4.5 KiB
YAML
categories:
|
|
VITEC:
|
|
label: 'VITEC Settings'
|
|
description: 'Settings for VITEC Stuff'
|
|
seo:
|
|
label: 'SEO Settings'
|
|
description: 'SEO related settings'
|
|
menu:
|
|
label: 'Menu / Navigation'
|
|
description: 'Footer & meta menu page selection'
|
|
|
|
settings:
|
|
vitec.debugMode:
|
|
label: 'Enable Debug Mode'
|
|
description: 'Enable debug mode for VITEC extensions'
|
|
category: VITEC
|
|
type: bool
|
|
default: false
|
|
|
|
vitec.storyDetailPid:
|
|
label: 'Success story detail page'
|
|
description: 'The page that renders a single success story. Used to build story links where no page is configured on the element itself - the story URL is that page''s parent path plus the story slug, which is what SuccessStoryPathRewrite expects. 0 = no fallback.'
|
|
category: VITEC
|
|
type: int
|
|
default: 0
|
|
|
|
menu.footer.pageUids:
|
|
label: 'Footer menu — page UIDs'
|
|
description: 'Comma-separated list of page UIDs to display in the footer menu (in order).'
|
|
category: menu
|
|
type: string
|
|
default: ''
|
|
|
|
menu.meta.pageUids:
|
|
label: 'Meta menu — page UIDs'
|
|
description: 'Comma-separated list of page UIDs to display in the meta menu (e.g. Imprint, Privacy).'
|
|
category: menu
|
|
type: string
|
|
default: ''
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Structured data / schema.org (consumed by StructuredDataService)
|
|
# ---------------------------------------------------------------------------
|
|
seo.site.canonicalBase:
|
|
label: 'Canonical base URL'
|
|
description: 'Absolute public base URL of the live site WITHOUT trailing slash, e.g. https://www.vitec.com. Used to build absolute URLs in JSON-LD. Falls back to the request host if empty.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.site.name:
|
|
label: 'Website name (schema.org WebSite)'
|
|
description: 'Display name for the schema.org WebSite node on the home page. Falls back to the organization name if empty.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.name:
|
|
label: 'Organization name'
|
|
description: 'Public organization name for schema.org/Organization. Leave empty to disable Organization output entirely.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.legalName:
|
|
label: 'Organization legal name'
|
|
description: 'Full legal entity name, e.g. "VITEC GmbH".'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.logoUrl:
|
|
label: 'Organization logo URL'
|
|
description: 'URL of the organization logo (absolute, or root-relative — will be made absolute). Recommended for Google.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.sameAs:
|
|
label: 'Social / sameAs URLs'
|
|
description: 'Comma- or newline-separated list of official profile URLs (LinkedIn, YouTube, X, …) for schema.org sameAs.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.email:
|
|
label: 'Contact email'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.phone:
|
|
label: 'Contact phone'
|
|
description: 'International format, e.g. +49 89 1234567.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.street:
|
|
label: 'Address — street'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.postalCode:
|
|
label: 'Address — postal code'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.locality:
|
|
label: 'Address — city'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
seo.organization.country:
|
|
label: 'Address — country (ISO 3166-1 alpha-2)'
|
|
description: 'Two-letter country code, e.g. DE.'
|
|
category: seo
|
|
type: string
|
|
default: ''
|
|
|
|
vitec.ssr.enabled:
|
|
label: 'SSR delivery (serve pages from the SSR node)'
|
|
description: 'ON: page requests are proxied by .htaccess to the SSR server (React Router SSR on the Solr VPS) - the flag file var/vitec-ssr-on.flag is kept in sync automatically within seconds. OFF: pages are served as today (SPA shell from _frontend/). JSON under /_json, /typo3, /api etc. are never affected. Safe rollback switch.'
|
|
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
|