41 lines
2.1 KiB
SQL
41 lines
2.1 KiB
SQL
-- Wave 2 Track 1 auth/OIDC schema (PostgreSQL)
|
|
|
|
CREATE TABLE IF NOT EXISTS auth_external_identities (
|
|
id SERIAL PRIMARY KEY,
|
|
provider VARCHAR(64) NOT NULL,
|
|
external_subject VARCHAR(256) NOT NULL,
|
|
username VARCHAR(128) NOT NULL,
|
|
email VARCHAR(256),
|
|
full_name VARCHAR(256),
|
|
role VARCHAR(32) NOT NULL,
|
|
linked_user_id VARCHAR(64),
|
|
created_at VARCHAR(64) NOT NULL,
|
|
updated_at VARCHAR(64) NOT NULL,
|
|
last_login_at VARCHAR(64) NOT NULL
|
|
);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_provider ON auth_external_identities (provider);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_external_subject ON auth_external_identities (external_subject);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_username ON auth_external_identities (username);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_email ON auth_external_identities (email);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_role ON auth_external_identities (role);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_linked_user_id ON auth_external_identities (linked_user_id);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_created_at ON auth_external_identities (created_at);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_updated_at ON auth_external_identities (updated_at);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_external_identities_last_login_at ON auth_external_identities (last_login_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS auth_oidc_states (
|
|
id SERIAL PRIMARY KEY,
|
|
state VARCHAR(128) NOT NULL UNIQUE,
|
|
nonce VARCHAR(128) NOT NULL,
|
|
code_verifier VARCHAR(256) NOT NULL,
|
|
redirect_uri VARCHAR(512) NOT NULL,
|
|
return_mode VARCHAR(32) NOT NULL DEFAULT 'popup',
|
|
created_at VARCHAR(64) NOT NULL,
|
|
expires_at VARCHAR(64) NOT NULL,
|
|
consumed_at VARCHAR(64)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_oidc_states_state ON auth_oidc_states (state);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_oidc_states_created_at ON auth_oidc_states (created_at);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_oidc_states_expires_at ON auth_oidc_states (expires_at);
|
|
CREATE INDEX IF NOT EXISTS ix_auth_oidc_states_consumed_at ON auth_oidc_states (consumed_at);
|