Basics of auth

This commit is contained in:
2026-01-01 10:32:17 -05:00
parent 23f2b6432b
commit 9f895bbb85
66 changed files with 5967 additions and 156 deletions

View File

@@ -1,3 +1,63 @@
create table clients
(
id uuid default gen_random_uuid()
constraint client_pk
primary key,
client_id varchar not null
constraint client_client_id_key
unique,
client_secret varchar not null,
name varchar not null,
description varchar default '',
private_key text not null,
encryption_key text not null,
grant_types jsonb not null default '[]'::jsonb,
capabilities jsonb not null default '[]'::jsonb,
confidential boolean not null default true,
created_at timestamp default now(),
updated_at timestamp default now()
);
create table client_redirect_uris
(
id uuid default gen_random_uuid()
constraint client_redirect_uris_pk
primary key,
client_id uuid not null
constraint client_redirect_uris_client_id_fk
references clients
on delete cascade,
redirect_uri varchar not null
);
create table scopes
(
id uuid default gen_random_uuid()
constraint scopes_pk
primary key,
name varchar not null
constraint scopes_name_key
unique,
description varchar
);
create table client_scopes
(
id uuid default gen_random_uuid()
constraint client_scopes_pk
primary key,
client_id uuid not null
constraint client_scopes_client_id_fk
references clients
on delete cascade,
scope_id uuid not null
constraint client_scopes_scope_id_fk
references scopes
on delete cascade,
constraint client_scopes_client_id_scope_id_key
unique (client_id, scope_id)
);
create table users
(
id uuid default gen_random_uuid()
@@ -9,5 +69,23 @@ create table users
constraint users_email_key
unique,
password varchar not null,
created_at timestamp default now()
created_at timestamp default now(),
updated_at timestamp default now()
);
create table client_users
(
id uuid default gen_random_uuid()
constraint client_users_pk
primary key,
client_id uuid not null
constraint client_users_client_id_fk
references clients
on delete cascade,
user_id uuid not null
constraint client_users_user_id_fk
references users
on delete cascade,
constraint client_users_client_id_user_id_key
unique (client_id, user_id)
);