This commit is contained in:
vfs committed 2026-04-28 19:46:06 +02:00
1 parent 173c01b01b
commit 5772a7d855
22 files changed
+731 -149

No files matched your search

+6 -6
View File
@@ -13,18 +13,18 @@ CREATE TABLE IF NOT EXISTS users (
version INT NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS auth_provider (
CREATE TABLE IF NOT EXISTS auth_providers (
id BIGSERIAL PRIMARY KEY, -- e.g., 'local', 'id_austria',
description TEXT NOT NULL,
active BOOLEAN DEFAULT false
);
INSERT INTO auth_provider (description, active) VALUES ('local', true);
INSERT INTO auth_provider (description, active) VALUES ('id_austria', false);
INSERT INTO auth_providers (description, active) VALUES ('local', true);
INSERT INTO auth_providers (description, active) VALUES ('id_austria', false);
CREATE TABLE IF NOT EXISTS user_identities (
id BIGSERIAL PRIMARY KEY,
provider_id BIGINT NOT NULL REFERENCES auth_provider(id),
provider_id BIGINT NOT NULL REFERENCES auth_providers(id),
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
-- For local: the username. For OIDC: the 'sub' (Subject ID)
@@ -33,9 +33,9 @@ CREATE TABLE IF NOT EXISTS user_identities (
-- Nullable because OIDC users won't have a password in your DB
password bytea,
version INT NOT NULL DEFAULT 1,
version INT NOT NULL DEFAULT 1
UNIQUE(provider_id, provider_user_id)
-- UNIQUE(provider_id, provider_user_id)
);
-- INSERT INTO users(
@@ -3,6 +3,7 @@ DROP INDEX IF EXISTS idx_vote_tokens_issue_id;
DROP INDEX IF EXISTS idx_options_issue_id;
DROP TABLE IF EXISTS votes;
DROP TABLE IF EXISTS blind_sign_requests;
DROP TABLE IF EXISTS vote_tokens;
DROP TABLE IF EXISTS options;
DROP TABLE IF EXISTS issues;
@@ -4,6 +4,9 @@ CREATE TABLE IF NOT EXISTS issues (
description TEXT,
start_time TIMESTAMPTZ NOT NULL,
end_time TIMESTAMPTZ NOT NULL,
rsa_n BYTEA,
rsa_e INT,
rsa_private_pem BYTEA,
created TIMESTAMPTZ NOT NULL DEFAULT now(),
version INT NOT NULL DEFAULT 1
);
@@ -25,6 +28,13 @@ CREATE TABLE IF NOT EXISTS vote_tokens (
version INT NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS blind_sign_requests (
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
issue_id BIGINT NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
created TIMESTAMPTZ NOT NULL DEFAULT now(),
PRIMARY KEY (user_id, issue_id)
);
CREATE TABLE IF NOT EXISTS votes (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
token UUID NOT NULL UNIQUE REFERENCES vote_tokens(token) ON DELETE CASCADE,