Files
threshold/internal/db/schema/migrations/oss/postgres/2/05_authtoken.up.sql
T
Timothy Messier 8caaf3e076 refactor(schema): Add support for migration editions
This refactors the schema package and subpackages to support editions.
An Edition is a collection of sql migrations. A given boundary binary
can have multiple migration editions. The `schema.Manager` is updated to
apply the necessary migrations in the correct order, leveraging an
Edition's priority to determine the order in which the separate Editions
are applied.

The sql migration files are now nested under a directory for the
edition.

This also switches from the generated code to using embed, which
eliminates the need for the `make migrations` target and the generated
code. As such this commit removes the target and generated code.

See:
    https://pkg.go.dev/embed
2021-10-08 06:50:26 -04:00

48 lines
1.2 KiB
PL/PgSQL

begin;
-- auth_token_status_enm entries define the possible auth token
-- states.
create table auth_token_status_enm (
name text primary key
constraint name_only_predefined_auth_token_states_allowed
check (
name in ('auth token pending','token issued', 'authentication failed', 'system error')
)
);
-- populate the values of auth_token_status_enm
insert into auth_token_status_enm(name)
values
('auth token pending'),
('token issued'),
('authentication failed'),
('system error');
-- add the state column with a default to the auth_token table.
alter table auth_token
add column status text
not null
default 'token issued' -- safest default
references auth_token_status_enm(name)
on update cascade
on delete restrict;
create or replace view auth_token_account as
select at.public_id,
at.token,
at.auth_account_id,
at.create_time,
at.update_time,
at.approximate_last_access_time,
at.expiration_time,
aa.scope_id,
aa.iam_user_id,
aa.auth_method_id,
at.status
from auth_token as at
inner join auth_account as aa
on at.auth_account_id = aa.public_id;
commit;