Initial feature-complete implementation of the v1.0 specification (phases 0-11 of `docs/implementation-plan.md`). Added: - Panel (Go, single static binary) with SQLite persistence, one-time - Domain management with per-domain DKIM (RSA-2048, generated in pure Go) and - Application (sender identity) management: SASL credentials via `sasldb2`, - Full Postfix relay config generated from env at container start: SMTPS 465, - Journal milter (pure Go, `go-milter`) recording every send to `send_log`; … (6 more in CHANGELOG) Full detail: CHANGELOG.md (0.1.0).
13 lines
584 B
SQL
13 lines
584 B
SQL
-- Panel login sessions (spec 7.6.6, plan B.1). Persisted so a login survives a
|
|
-- container restart or redeploy; only the SHA-256 of the session token is
|
|
-- stored, never the token itself, so a stolen database file cannot be used to
|
|
-- sign in. expires_at implements the sliding idle timeout: it is pushed
|
|
-- forward on activity rather than being fixed at creation time.
|
|
CREATE TABLE sessions (
|
|
token_hash TEXT PRIMARY KEY,
|
|
username TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
expires_at TEXT NOT NULL
|
|
);
|
|
CREATE INDEX idx_sessions_expires_at ON sessions (expires_at);
|