diff --git a/modules/oidc/mysql.schema.sql b/modules/oidc/mysql.schema.sql new file mode 100644 index 0000000..4c0833a --- /dev/null +++ b/modules/oidc/mysql.schema.sql @@ -0,0 +1,90 @@ +DROP TABLE IF EXISTS tbl_group_membership; +DROP TABLE IF EXISTS tbl_group; +DROP TABLE IF EXISTS tbl_user; +DROP TABLE IF EXISTS tbl_provider; +DROP TABLE IF EXISTS tbl_schema; + +CREATE TABLE tbl_provider ( + id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + url varchar(255) NOT NULL, + secret varchar(255) NOT NULL, + appname varchar(255) NOT NULL, + logo varchar(255) NOT NULL, + syncgroups LONGTEXT DEFAULT NULL, + defaultgroup TEXT DEFAULT NULL, + required_groups TEXT DEFAULT NULL, + nooidcgroups enum ('y', 'n') DEFAULT 'n' NOT NULL, + usernameblacklist TEXT DEFAULT NULL, + buttoncolor varchar(255) NOT NULL, + textcolor varchar(255) NOT NULL, + caption varchar(255) NOT NULL, + enforce_scheme_https enum ('y', 'n') DEFAULT 'n' NOT NULL, + enabled enum ('y', 'n') DEFAULT 'n' NOT NULL, + ctime bigint unsigned DEFAULT NULL, + mtime bigint unsigned DEFAULT NULL, + UNIQUE uq_oidc_provider_name (name) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE tbl_user ( + id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + email varchar(255) DEFAULT NULL, + provider_id int(10) unsigned NOT NULL, + mapped_local_user varchar(255) DEFAULT NULL, + mapped_backend varchar(255) DEFAULT NULL, + active int(10) unsigned NOT NULL, + lastlogin bigint unsigned DEFAULT NULL, + ctime bigint unsigned DEFAULT NULL, + mtime bigint unsigned DEFAULT NULL, + UNIQUE uq_oidc_user_name (name) USING BTREE, + FOREIGN KEY (provider_id) + REFERENCES tbl_provider (id) + ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE tbl_group ( + id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + name varchar(255) NOT NULL, + provider_id int(10) unsigned NOT NULL, + parent int(10) DEFAULT NULL, + ctime bigint unsigned DEFAULT NULL, + mtime bigint unsigned DEFAULT NULL, + UNIQUE uq_oidc_group_name (name) USING BTREE, + FOREIGN KEY (provider_id) + REFERENCES tbl_provider (id) + ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE tbl_group_membership ( + id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + group_id int(10) unsigned NOT NULL, + provider_id int(10) unsigned NOT NULL, + username varchar(255) NOT NULL, + ctime bigint unsigned DEFAULT NULL, + mtime bigint unsigned DEFAULT NULL, + FOREIGN KEY (provider_id) + REFERENCES tbl_provider (id) + ON DELETE CASCADE, + FOREIGN KEY (group_id) + REFERENCES tbl_group (id) + ON DELETE CASCADE, + FOREIGN KEY (username) + REFERENCES tbl_user (name) + ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE tbl_schema ( + id int unsigned NOT NULL AUTO_INCREMENT, + version varchar(64) NOT NULL, + timestamp bigint unsigned NOT NULL, + success enum ('n', 'y') DEFAULT NULL, + reason text DEFAULT NULL, + + PRIMARY KEY (id), + CONSTRAINT idx_tbl_schema_version UNIQUE (version) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; + + +INSERT INTO tbl_schema (version, timestamp, success, reason) +VALUES ('0.5.8', UNIX_TIMESTAMP() * 1000, 'y', NULL); \ No newline at end of file diff --git a/modules/oidc/sqlite.schema.sql b/modules/oidc/sqlite.schema.sql deleted file mode 100644 index 8cc191c..0000000 --- a/modules/oidc/sqlite.schema.sql +++ /dev/null @@ -1,65 +0,0 @@ -CREATE TABLE tbl_provider -( - id INTEGER PRIMARY KEY, - name TEXT, - url TEXT, - secret TEXT, - appname TEXT, - logo TEXT, - syncgroups TEXT DEFAULT NULL, - defaultgroup TEXT DEFAULT NULL, - required_groups TEXT DEFAULT NULL, - usernameblacklist TEXT DEFAULT NULL, - buttoncolor TEXT, - textcolor TEXT, - caption TEXT, - enabled TEXT, - ctime REAL, - mtime REAL -); - -CREATE TABLE tbl_user -( - id INTEGER PRIMARY KEY, - name TEXT, - email TEXT, - provider_id INTEGER, - mapped_local_user TEXT, - mapped_backend TEXT, - active INTEGER, - lastlogin REAL, - ctime REAL, - mtime REAL -); - -CREATE TABLE tbl_group -( - id INTEGER PRIMARY KEY, - name TEXT, - parent INTEGER, - provider_id INTEGER, - ctime REAL, - mtime REAL -); - -CREATE TABLE tbl_group_membership -( - id INTEGER PRIMARY KEY, - group_id INTEGER, - provider_id INTEGER, - username TEXT, - ctime REAL, - mtime REAL -); -CREATE TABLE tbl_schema -( - id INTEGER PRIMARY KEY, - version TEXT UNIQUE NOT NULL, - timestamp REAL NOT NULL, - success TEXT, - reason TEXT - -); - -INSERT INTO tbl_schema (version, timestamp, success, reason) -VALUES ('0.5.7', strftime('%s', 'now') * 1000, 'y', NULL); \ No newline at end of file