ente/server/migrations/21_add_two_factor.up.sql
2024-03-01 13:37:01 +05:30

44 lines
1.3 KiB
SQL

ALTER TABLE users ADD COLUMN is_two_factor_enabled boolean;
UPDATE users SET is_two_factor_enabled = 'f';
ALTER TABLE users ALTER COLUMN is_two_factor_enabled SET NOT NULL;
ALTER TABLE users ALTER COLUMN is_two_factor_enabled SET DEFAULT FALSE;
CREATE TABLE IF NOT EXISTS two_factor(
user_id INTEGER NOT NULL UNIQUE,
two_factor_secret_hash TEXT UNIQUE,
encrypted_two_factor_secret BYTEA,
two_factor_secret_decryption_nonce BYTEA,
recovery_encrypted_two_factor_secret TEXT,
recovery_two_factor_secret_decryption_nonce TEXT,
CONSTRAINT fk_two_factor_user_id
FOREIGN KEY(user_id)
REFERENCES users(user_id)
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS temp_two_factor(
user_id INTEGER NOT NULL,
two_factor_secret_hash TEXT UNIQUE,
encrypted_two_factor_secret BYTEA,
two_factor_secret_decryption_nonce BYTEA,
creation_time BIGINT NOT NULL,
expiration_time BIGINT NOT NULL,
CONSTRAINT fk_two_factor_user_id
FOREIGN KEY(user_id)
REFERENCES users(user_id)
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS two_factor_sessions(
user_id INTEGER NOT NULL,
session_id TEXT UNIQUE NOT NULL,
creation_time BIGINT NOT NULL,
expiration_time BIGINT NOT NULL,
CONSTRAINT fk_sessions_user_id
FOREIGN KEY(user_id)
REFERENCES users(user_id)
ON DELETE CASCADE
);