add oidc sqlite

This commit is contained in:
2025-02-13 04:51:17 -06:00
parent 4e61d7714e
commit 28bfbb84ad
7 changed files with 490 additions and 6 deletions

View File

@@ -63,4 +63,63 @@ CREATE TABLE IF NOT EXISTS user_permission (
,permission TEXT NOT NULL
,FOREIGN KEY (user_id) REFERENCES user(id)
,UNIQUE(user_id, permission)
);
);
---- go-oidc
CREATE TABLE IF NOT EXISTS clients (
id TEXT PRIMARY KEY
,name TEXT NOT NULL
,owner TEXT NOT NULL
,created_at DATETIME DEFAULT CURRENT_TIMESTAMP
,FOREIGN KEY (owner) REFERENCES user (id)
,UNIQUE(name, owner)
);
CREATE TABLE IF NOT EXISTS client_redirects (
id INTEGER PRIMARY KEY AUTOINCREMENT
,uri TEXT NOT NULL
,client_id TEXT NOT NULL
,created_at DATETIME DEFAULT CURRENT_TIMESTAMP
,FOREIGN KEY (client_id) REFERENCES clients (id)
,UNIQUE(uri, client_id)
);
CREATE TABLE IF NOT EXISTS authorization_codes (
id INTEGER PRIMARY KEY AUTOINCREMENT
,code TEXT NOT NULL UNIQUE
,code_challenge TEXT NOT NULL UNIQUE
,code_challenge_method TEXT NOT NULL CHECK (code_challenge_method IN ('S256', 'plain'))
,user_id TEXT NOT NULL
,client_id TEXT NOT NULL
,scope TEXT
,redirect_uri TEXT NOT NULL
,created_at DATETIME DEFAULT CURRENT_TIMESTAMP
,expires_at DATETIME NOT NULL
,used_at DATETIME
,FOREIGN KEY (user_id) REFERENCES user (id)
,FOREIGN KEY (client_id) REFERENCES client (id)
);
CREATE TABLE IF NOT EXISTS tokens (
id INTEGER PRIMARY KEY AUTOINCREMENT
,token_type TEXT NOT NULL CHECK (token_type IN ('access', 'refresh'))
,token_value TEXT NOT NULL UNIQUE
,user_id TEXT NOT NULL
,client_id TEXT NOT NULL
,scope TEXT
,created_at DATETIME DEFAULT CURRENT_TIMESTAMP
,expires_at DATETIME NOT NULL
,FOREIGN KEY (user_id) REFERENCES user (id)
,FOREIGN KEY (client_id) REFERENCES clients (id)
);
CREATE TABLE IF NOT EXISTS client_approvals (
id INTEGER PRIMARY KEY AUTOINCREMENT
,user_id TEXT NOT NULL
,client_id TEXT NOT NULL
,UNIQUE(user_id, client_id)
,FOREIGN KEY (user_id) REFERENCES users (id)
,FOREIGN KEY (client_id) REFERENCES clients (id)
);