Files
pocket-id-pocket-id-2/backend/migrations/20240731203656_init.up.sql
2024-08-24 00:49:08 +02:00

80 lines
2.1 KiB
SQL

CREATE TABLE users
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
first_name TEXT,
last_name TEXT,
is_admin NUMERIC DEFAULT FALSE NOT NULL
);
CREATE TABLE oidc_authorization_codes
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
code TEXT NOT NULL UNIQUE,
scope TEXT NOT NULL,
nonce TEXT,
expires_at DATETIME NOT NULL,
user_id TEXT NOT NULL REFERENCES users,
client_id TEXT NOT NULL
);
CREATE TABLE oidc_clients
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
name TEXT,
secret TEXT,
callback_url TEXT,
image_type TEXT,
created_by_id TEXT REFERENCES users
);
CREATE TABLE one_time_access_tokens
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
token TEXT NOT NULL UNIQUE,
expires_at DATETIME NOT NULL,
user_id TEXT NOT NULL REFERENCES users
);
CREATE TABLE user_authorized_oidc_clients
(
scope TEXT,
user_id TEXT,
client_id TEXT REFERENCES oidc_clients,
PRIMARY KEY (user_id, client_id)
);
CREATE TABLE webauthn_credentials
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
name TEXT NOT NULL,
credential_id TEXT NOT NULL UNIQUE,
public_key BLOB NOT NULL,
attestation_type TEXT NOT NULL,
transport BLOB NOT NULL,
user_id TEXT REFERENCES users
);
CREATE TABLE webauthn_sessions
(
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME,
challenge TEXT NOT NULL UNIQUE,
expires_at DATETIME NOT NULL,
user_verification TEXT NOT NULL
);
CREATE TABLE application_configuration_variables
(
key TEXT NOT NULL PRIMARY KEY,
value TEXT NOT NULL,
type TEXT NOT NULL,
is_public NUMERIC DEFAULT FALSE NOT NULL,
is_internal NUMERIC DEFAULT FALSE NOT NULL
);