Files
threshold/internal/db/schema/migrations/oss/postgres/18/01_nonce.up.sql
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

53 lines
1.4 KiB
PL/PgSQL
Raw Normal View History

2021-10-27 20:32:07 -04:00
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
2023-02-02 17:15:17 -08:00
2021-10-27 20:32:07 -04:00
begin;
-- This migration exists to generalize the nonce behavior since we need it for
-- more than recovery nonces.
create table nonce_type_enm (
name text primary key
constraint only_predefined_nonce_types_allowed
check (
name in (
'recovery',
'worker-auth'
)
)
);
comment on table nonce_type_enm is
'nonce_type_enm is an enumeration table for nonce types. '
'It contains rows for representing nonces as either for recovery or worker authentication purposes.';
insert into nonce_type_enm (name) values
('recovery'),
('worker-auth');
-- Drop existing triggers
drop trigger default_create_time_column on recovery_nonces;
drop trigger immutable_columns on recovery_nonces;
-- Update table name
alter table recovery_nonces rename to nonce;
-- Add purpose field
alter table nonce
2022-08-08 18:17:57 -04:00
add column purpose text not null default 'recovery'
2021-10-27 20:32:07 -04:00
constraint nonce_type_enm_fkey
references nonce_type_enm(name)
on update cascade
on delete restrict;
alter table nonce
alter column purpose drop default;
-- Recreate triggers
2022-08-08 18:17:57 -04:00
create trigger default_create_time_column before insert on nonce
2021-10-27 20:32:07 -04:00
for each row execute procedure default_create_time();
2022-08-08 18:17:57 -04:00
create trigger immutable_columns before update on nonce
2021-10-27 20:32:07 -04:00
for each row execute procedure immutable_columns('nonce', 'create_time', 'purpose');
2022-08-08 18:17:57 -04:00
commit;