mirror of https://github.com/hashicorp/boundary
db: Add credential_sha256 to session_credentials (#2339)
* db: Add credential_sha256 to session_credentialspull/2344/head
parent
02dd28f587
commit
7fafadd70b
@ -0,0 +1,35 @@
|
||||
begin;
|
||||
|
||||
-- Update table from 23/01_session_credential.up.sql
|
||||
alter table session_credential
|
||||
drop constraint session_credential_session_id_credential_uq,
|
||||
add column credential_sha256 bytea; -- digest(credential, 'sha256')
|
||||
|
||||
-- Migrate existing session_credentials to set an sha256 if there are any
|
||||
update session_credential
|
||||
set credential_sha256 = digest(credential, 'sha256');
|
||||
|
||||
alter table session_credential
|
||||
add constraint session_credential_session_id_credential_sha256_uq
|
||||
unique(session_id, credential_sha256);
|
||||
|
||||
-- Replace the immutable columns trigger from 23/01_session_credential.up.sql
|
||||
drop trigger immutable_columns on session_credential;
|
||||
create trigger immutable_columns before update on session_credential
|
||||
for each row execute procedure immutable_columns('session_id', 'credential', 'key_id', 'credential_sha256');
|
||||
|
||||
-- session_credentials_sha256_credential sets the credential_sha256
|
||||
-- to digest(credential, 'sha256')
|
||||
create function session_credentials_sha256_credential()
|
||||
returns trigger
|
||||
as $$
|
||||
begin
|
||||
new.credential_sha256 = digest(new.credential, 'sha256');
|
||||
return new;
|
||||
end;
|
||||
$$ language plpgsql;
|
||||
|
||||
create trigger session_credentials_sha256_credential before insert on session_credential
|
||||
for each row execute procedure session_credentials_sha256_credential();
|
||||
|
||||
commit;
|
||||
Loading…
Reference in new issue