fix: продакшен-фиксы install-flow и шаблонов

- исправлен рендер post-install.env: прокинут HYSTERIA_API_SECRET

- добавлен fail-fast при неразрешенных {{...}} в renderTemplate

- HY2XS_FORCE_PASSWORD_CHANGE приведён к production default=false

- docs синхронизированы: sudo bootstrap на deps-стадии

- builder: VERIFY_TOOLCHAIN_CHECKSUMS=true по умолчанию

- acceptance расширен новыми инвариантами
This commit is contained in:
2026-05-09 03:03:46 +05:00
parent 78da898ba5
commit 8de1719aa4
10 changed files with 29 additions and 8 deletions
+7
View File
@@ -87,5 +87,12 @@ export function renderTemplate(template: string, values: Record<string, string |
for (const [key, value] of Object.entries(values)) {
rendered = rendered.replaceAll(`{{${key}}}`, String(value));
}
const unresolved = rendered.match(/\{\{\s*[A-Z0-9_]+\s*\}\}/g) ?? [];
if (unresolved.length > 0) {
const unique = [...new Set(unresolved.map((item) => item.replace(/\s+/g, "")))].sort();
throw new Error(`template render failed: unresolved placeholders: ${unique.join(", ")}`);
}
return rendered;
}