59 lines
1.7 KiB
MySQL
59 lines
1.7 KiB
MySQL
|
CREATE TABLE "backend" (
|
||
|
id TEXT NOT NULL PRIMARY KEY,
|
||
|
name TEXT NOT NULL UNIQUE,
|
||
|
oidc_issuer TEXT NOT NULL,
|
||
|
oidc_client_id TEXT NOT NULL,
|
||
|
oidc_client_secret TEXT NOT NULL,
|
||
|
oidc_redirect_uri TEXT NOT NULL,
|
||
|
oidc_scopes blob NOT NULL DEFAULT '[]' -- list of strings, json-encoded,
|
||
|
);
|
||
|
|
||
|
CREATE TABLE "client" (
|
||
|
id TEXT NOT NULL PRIMARY KEY,
|
||
|
secret TEXT NOT NULL,
|
||
|
redirect_uris blob NOT NULL,
|
||
|
trusted_peers blob NOT NULL,
|
||
|
public integer NOT NULL DEFAULT 0,
|
||
|
name TEXT NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE TABLE "user" (
|
||
|
id TEXT NOT NULL PRIMARY KEY,
|
||
|
name TEXT NOT NULL DEFAULT '',
|
||
|
family_name TEXT NOT NULL DEFAULT '',
|
||
|
given_name TEXT NOT NULL DEFAULT '',
|
||
|
nickname TEXT NOT NULL DEFAULT '',
|
||
|
picture TEXT NOT NULL DEFAULT '',
|
||
|
updated_at timestamp,
|
||
|
email TEXT NOT NULL DEFAULT '',
|
||
|
email_verified INTEGER NOT NULL DEFAULT 0
|
||
|
);
|
||
|
|
||
|
CREATE TABLE "auth_request" (
|
||
|
id TEXT NOT NULL PRIMARY KEY,
|
||
|
client_id TEXT NOT NULL,
|
||
|
backend_id TEXT NOT NULL,
|
||
|
scopes blob NOT NULL, -- list of strings, json-encoded
|
||
|
redirect_uri TEXT NOT NULL,
|
||
|
state TEXT NOT NULL,
|
||
|
nonce TEXT NOT NULL,
|
||
|
response_type TEXT NOT NULL,
|
||
|
creation_time timestamp NOT NULL,
|
||
|
done INTEGER NOT NULL DEFAULT 0,
|
||
|
code_challenge STRING NOT NULL DEFAULT '',
|
||
|
code_challenge_method STRING NOT NULL DEFAULT '',
|
||
|
auth_time timestamp,
|
||
|
user_id TEXT NOT NULL DEFAULT '',
|
||
|
FOREIGN KEY(backend_id) REFERENCES backend(id),
|
||
|
FOREIGN KEY(client_id) REFERENCES client(id),
|
||
|
FOREIGN KEY(user_id) REFERENCES user(id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE "auth_code" (
|
||
|
id TEXT NOT NULL PRIMARY KEY,
|
||
|
code TEXT NOT NULL,
|
||
|
auth_request_id TEXT NOT NULL,
|
||
|
FOREIGN KEY(auth_request_id) REFERENCES auth_request(id)
|
||
|
);
|
||
|
|