WP-02: encrypted settings, SMTP mail, job runner and cron scheduler
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / ui (push) Has been cancelled

AES-256-GCM secret storage keyed by MASTER_KEY, SMTP settings with test mail
(lettre), persisted job runs with log and status, JobRunner with per-kind
concurrency guard, 6-field cron schedules with defaults, scheduler loop.
Settings and Jobs pages in the UI. FAKE_HOST mode for dev machines.

Tests: 30 application, 8 infrastructure, 23 API, 16 Vitest, 6 Playwright.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-02 22:16:56 +02:00
parent 6113af0a19
commit fa9ac9a6bc
31 changed files with 1632 additions and 58 deletions

View File

@ -0,0 +1,16 @@
CREATE TABLE settings (
key TEXT PRIMARY KEY,
value TEXT NOT NULL
);
CREATE TABLE job_runs (
id TEXT PRIMARY KEY,
kind TEXT NOT NULL,
params TEXT,
status TEXT NOT NULL CHECK (status IN ('running', 'success', 'failed')),
started_at TEXT NOT NULL,
finished_at TEXT,
log TEXT NOT NULL DEFAULT '',
triggered_by TEXT NOT NULL
);
CREATE INDEX job_runs_kind_started ON job_runs(kind, started_at DESC);