feat: add OAuth APIs with scoped permissions (#1542)

Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
Elias Schneider
2026-07-06 12:25:02 -07:00
committed by GitHub
co-authored by Alessandro Segala
parent 0b2706a488
commit 09d196f7c5
68 changed files with 3945 additions and 157 deletions
@@ -0,0 +1,9 @@
PRAGMA foreign_keys=OFF;
BEGIN;
DROP TABLE IF EXISTS oidc_clients_allowed_api_permissions;
DROP TABLE IF EXISTS api_permissions;
DROP TABLE IF EXISTS apis;
COMMIT;
PRAGMA foreign_keys=ON;
@@ -0,0 +1,32 @@
PRAGMA foreign_keys=OFF;
BEGIN;
CREATE TABLE apis (
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME NOT NULL,
updated_at DATETIME,
name TEXT NOT NULL,
audience TEXT NOT NULL UNIQUE
);
CREATE TABLE api_permissions (
id TEXT NOT NULL PRIMARY KEY,
created_at DATETIME NOT NULL,
api_id TEXT NOT NULL REFERENCES apis(id) ON DELETE CASCADE,
key TEXT NOT NULL,
name TEXT NOT NULL,
description TEXT,
UNIQUE (api_id, key)
);
CREATE INDEX idx_api_permissions_api_id ON api_permissions(api_id);
CREATE TABLE oidc_clients_allowed_api_permissions (
oidc_client_id TEXT NOT NULL REFERENCES oidc_clients(id) ON DELETE CASCADE,
api_permission_id TEXT NOT NULL REFERENCES api_permissions(id) ON DELETE CASCADE,
subject_type TEXT NOT NULL CHECK (subject_type IN ('user', 'client')),
PRIMARY KEY (oidc_client_id, api_permission_id, subject_type)
);
COMMIT;
PRAGMA foreign_keys=ON;