Implementována portálová část SQLite job queue.

Přidán DB helper pro jobs a job_logs bez ORM.
Přidána idempotentní migrace pro job tabulky včetně created_by_display_name.
Přidány stránky /portal/jobs a /portal/jobs/{id}.
Jobs page zobrazuje status, type, target, source, created_by, created_at, started_at, finished_at.
Job detail zobrazuje payload, result/error a job_logs.
Queued/running joby mají auto-refresh po 5 s.
Navigace portálu obsahuje odkaz na Joby.
App redeploy už nespouští deploy script přímo; vytváří queued job deploy_app s prázdným payloadem.
Po redeploy se uživatel přesměruje na detail jobu.
Přidán audit event app.redeploy.queued s metadata={"job_id": job_id}.
Přidána ochrana proti duplicitnímu aktivnímu deploy jobu pro stejnou appku.
This commit is contained in:
JiriUhlir
2026-05-28 14:02:49 +02:00
parent 17a4d4db1b
commit 88601451dc
6 changed files with 474 additions and 17 deletions
+1
View File
@@ -15,6 +15,7 @@ def page(title: str, body: str, user=None) -> str:
<a href="/portal">Aplikace</a>
<a href="/portal/new-app">Nová aplikace</a>
<a href="/portal/deployments">Nasazení</a>
<a href="/portal/jobs">Joby</a>
<a href="/portal/backups">Zálohy</a>
<a href="/portal/audit">Audit</a>
</nav>