This commit is contained in:
gru committed 2026-10-03 00:27:09 +01:00
commit 5e23e9af02
240 files changed
+99957

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
-- Additive migration from 0.0.1. The configuration table is never cleared.
CREATE TABLE IF NOT EXISTS configuration (
id INTEGER PRIMARY KEY CHECK (id = 1),
revision INTEGER NOT NULL CHECK (revision >= 0),
document TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS administrator (
id INTEGER PRIMARY KEY CHECK (id = 1),
username TEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
generation INTEGER NOT NULL DEFAULT 1 CHECK (generation > 0),
created_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS admin_sessions (
token_hash TEXT PRIMARY KEY CHECK (length(token_hash) = 64),
csrf_token TEXT NOT NULL CHECK (length(csrf_token) = 64),
generation INTEGER NOT NULL,
created_at INTEGER NOT NULL,
last_seen INTEGER NOT NULL,
expires_at INTEGER NOT NULL,
kind TEXT NOT NULL CHECK (kind IN ('browser', 'cli'))
);
CREATE INDEX IF NOT EXISTS admin_sessions_expiry ON admin_sessions(expires_at);
CREATE TABLE IF NOT EXISTS admin_audit (
id INTEGER PRIMARY KEY AUTOINCREMENT,
time INTEGER NOT NULL,
actor TEXT NOT NULL,
action TEXT NOT NULL,
detail TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS auth_throttle (
id INTEGER PRIMARY KEY CHECK (id = 1),
window_start INTEGER NOT NULL DEFAULT 0,
attempts INTEGER NOT NULL DEFAULT 0
);
INSERT OR IGNORE INTO auth_throttle(id) VALUES(1);
+12
View File
@@ -0,0 +1,12 @@
-- Persist non-secret ACME renewal observations so the dashboard is populated
-- immediately after a restart. Provider credentials remain outside SQLite.
CREATE TABLE IF NOT EXISTS certificate_renewals (
certificate_id TEXT PRIMARY KEY,
last_checked INTEGER NOT NULL DEFAULT 0,
next_check INTEGER NOT NULL DEFAULT 0,
last_renewed INTEGER,
not_after INTEGER,
failures INTEGER NOT NULL DEFAULT 0 CHECK (failures >= 0),
status TEXT NOT NULL DEFAULT '',
message TEXT NOT NULL DEFAULT ''
);
+7
View File
@@ -0,0 +1,7 @@
-- Account-scoped administration UI preferences. These are control-plane view state,
-- separate from the revisioned proxy configuration document.
CREATE TABLE IF NOT EXISTS admin_preferences (
administrator_id INTEGER PRIMARY KEY CHECK (administrator_id = 1),
document TEXT NOT NULL CHECK (length(document) BETWEEN 2 AND 4096),
FOREIGN KEY (administrator_id) REFERENCES administrator(id) ON DELETE CASCADE
);
+9
View File
@@ -0,0 +1,9 @@
-- Scoped credential for externally managed certificate deployment. The cleartext
-- token is never persisted; only a SHA-256 digest and non-secret key id are stored.
CREATE TABLE IF NOT EXISTS certificate_api_credential (
id INTEGER PRIMARY KEY CHECK (id = 1),
key_id TEXT NOT NULL UNIQUE CHECK (length(key_id) BETWEEN 3 AND 64),
token_hash TEXT NOT NULL CHECK (length(token_hash) = 64),
created_at INTEGER NOT NULL,
last_used_at INTEGER
);
@@ -0,0 +1,16 @@
-- Multiple scoped credentials for external certificate automation. Existing
-- 0.23/0.24 singleton credentials are copied once and the legacy row is cleared
-- so this idempotent migration can run safely on every startup.
CREATE TABLE IF NOT EXISTS certificate_api_credentials (
key_id TEXT PRIMARY KEY CHECK (length(key_id) BETWEEN 3 AND 64),
token_hash TEXT NOT NULL CHECK (length(token_hash) = 64),
comment TEXT NOT NULL DEFAULT '' CHECK (length(comment) <= 256),
created_at INTEGER NOT NULL,
last_used_at INTEGER
);
INSERT OR IGNORE INTO certificate_api_credentials(key_id, token_hash, comment, created_at, last_used_at)
SELECT key_id, token_hash, '', created_at, last_used_at
FROM certificate_api_credential;
DELETE FROM certificate_api_credential;