Files
Jyotisha/frontend/db/migrations/20260806070000_admin_mfa.sql
2026-08-06 20:15:08 +08:00

23 lines
853 B
SQL

alter table identity.users
add column if not exists two_factor_enabled boolean not null default false;
create table if not exists identity.two_factors (
id uuid primary key default gen_random_uuid(),
user_id uuid not null unique references identity.users(id) on delete cascade,
secret text not null,
backup_codes text not null,
verified boolean not null default false,
failed_verification_count integer not null default 0 check (failed_verification_count >= 0),
locked_until timestamptz
);
create index if not exists identity_two_factors_locked_until_idx
on identity.two_factors (locked_until)
where locked_until is not null;
revoke all on table identity.two_factors
from public, app_runtime, admin_runtime, backup_reader, migration_runner;
grant select, insert, update, delete on table identity.two_factors
to identity_runtime;