Files
Aether/crates/aether-data/schema/drivers/sqlite/baseline/003_auth_config.sql
2026-05-06 03:09:53 +08:00

72 lines
2.3 KiB
SQL

CREATE TABLE IF NOT EXISTS system_configs (
id TEXT PRIMARY KEY,
key TEXT NOT NULL UNIQUE,
value TEXT NOT NULL,
description TEXT,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS auth_modules (
id TEXT PRIMARY KEY,
module_type TEXT NOT NULL UNIQUE,
enabled INTEGER NOT NULL DEFAULT 1,
config TEXT NOT NULL,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS oauth_providers (
provider_type TEXT PRIMARY KEY,
display_name TEXT NOT NULL,
client_id TEXT NOT NULL,
client_secret_encrypted TEXT,
authorization_url_override TEXT,
token_url_override TEXT,
userinfo_url_override TEXT,
scopes TEXT,
redirect_uri TEXT NOT NULL,
frontend_callback_url TEXT NOT NULL,
attribute_mapping TEXT,
extra_config TEXT,
is_enabled INTEGER NOT NULL DEFAULT 0,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS ldap_configs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
server_url TEXT NOT NULL,
bind_dn TEXT NOT NULL,
bind_password_encrypted TEXT,
base_dn TEXT NOT NULL,
user_search_filter TEXT DEFAULT '(uid={username})' NOT NULL,
username_attr TEXT DEFAULT 'uid' NOT NULL,
email_attr TEXT DEFAULT 'mail' NOT NULL,
display_name_attr TEXT DEFAULT 'cn' NOT NULL,
is_enabled INTEGER NOT NULL DEFAULT 0,
is_exclusive INTEGER NOT NULL DEFAULT 0,
use_starttls INTEGER NOT NULL DEFAULT 0,
connect_timeout INTEGER NOT NULL DEFAULT 10,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS user_oauth_links (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
provider_type TEXT NOT NULL,
provider_user_id TEXT NOT NULL,
provider_username TEXT,
provider_email TEXT,
extra_data TEXT,
linked_at INTEGER NOT NULL,
last_login_at INTEGER
);
CREATE UNIQUE INDEX IF NOT EXISTS uq_user_oauth_links_provider_user
ON user_oauth_links (provider_type, provider_user_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_user_oauth_links_user_provider
ON user_oauth_links (user_id, provider_type);
CREATE INDEX IF NOT EXISTS user_oauth_links_provider_type_idx ON user_oauth_links (provider_type);
CREATE INDEX IF NOT EXISTS user_oauth_links_user_id_idx ON user_oauth_links (user_id);