23 lines
853 B
SQL
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;
|