Runner: Zeiten-Skript beim Veröffentlichen einsetzen

injectIntoHtml nimmt eine Marke je Tag (geprüft gegen data-wk-[a-z]+),
injectZeiten setzt den data-wk-zeiten-Tag ohne Datenschutzseite ein,
validateJob lässt nur den siteKey durch, ZEITEN_PUBLIC_BASE in der Konfiguration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 03:46:06 +00:00
1 parent a198c472bd
commit a2d11ad6c4
5 files changed
+297 -10

No files matched your search

+9
View File
@@ -64,10 +64,19 @@ export function validateJob(body) {
}
analytics = { siteKey: a.siteKey, color: a.color, privacy };
}
// Öffnungszeiten live: nur der siteKey, Zusatzfelder werden verworfen.
let zeiten;
if (body.zeiten !== undefined && body.zeiten !== null) {
const z = body.zeiten;
if (!z || typeof z !== 'object' || Array.isArray(z)) return { ok: false, error: 'Ungültige Zeiten-Angaben' };
if (typeof z.siteKey !== 'string' || !RE_SITE_KEY.test(z.siteKey)) return { ok: false, error: 'Ungültiger Zeiten-Schlüssel' };
zeiten = { siteKey: z.siteKey };
}
// Whitelist: keine ungeprüften Client-Felder im Job
const job = { sub, repo, sha, branch, mode, env };
if (index !== undefined) job.index = index;
if (displayName !== undefined) job.displayName = displayName;
if (analytics !== undefined) job.analytics = analytics;
if (zeiten !== undefined) job.zeiten = zeiten;
return { ok: true, job };
}