feat(admin): render-engine kill switch (block renders + show message)

Lets an admin disable rendering when no render node is available — users can't
start new renders and see a localized "service unavailable until <date>" message.

- Admin → فارم رندر → موتور رندر (RenderEngineAdmin): on/off toggle + fa/en message
  + optional Jalali "until" date; saved as one `render_service` Website Setting
  (jsonb) via /v1/settings — no backend change, no migration.
- lib/render-service.ts: fetchRenderServiceStatus (fail-open) + renderServiceMessage
  (locale + appends the date).
- Enforcement: POST /api/render returns 503 {code:render_disabled, messages} when off;
  studio render page reads GET /api/render/service on mount → disables "شروع رندر"
  and shows the banner, and handles the 503 on click.
- i18n: appAdminLayout.renderEngine (fa+en, parity 1045/1045). tsc + next build clean.
  Verified: disabled setting → /api/render/service returns enabled:false.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-12 09:47:42 +03:30
parent a1414f06f6
commit 61ba526122
9 changed files with 325 additions and 4 deletions
+1
View File
@@ -369,6 +369,7 @@
"auto": {
"appAdminLayout": {
"brand": "FlatRender",
"renderEngine": "Render Engine",
"nodes": "Nodes",
"renderQueue": "Render Queue",
"backToDashboard": "← Back to Dashboard",