This repository was archived by the owner on Oct 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathinit-core.mariadb.sql
163 lines (149 loc) · 6.11 KB
/
init-core.mariadb.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
-- ----------------------------------------------------- --
-- Mariadb/Mysql Database --
-- Initialize Glewlwyd Database for the backend server --
-- The administration client app --
-- Copyright 2020 Nicolas Mora <[email protected]> --
-- License: MIT --
-- ----------------------------------------------------- --
DROP TABLE IF EXISTS g_misc_config;
DROP TABLE IF EXISTS g_api_key;
DROP TABLE IF EXISTS g_client_user_scope;
DROP TABLE IF EXISTS g_scope_group_auth_scheme_module_instance;
DROP TABLE IF EXISTS g_scope_group;
DROP TABLE IF EXISTS g_user_session_scheme;
DROP TABLE IF EXISTS g_scope;
DROP TABLE IF EXISTS g_plugin_module_instance;
DROP TABLE IF EXISTS g_user_module_instance;
DROP TABLE IF EXISTS g_user_middleware_module_instance;
DROP TABLE IF EXISTS g_user_auth_scheme_module_instance;
DROP TABLE IF EXISTS g_client_module_instance;
DROP TABLE IF EXISTS g_user_session;
CREATE TABLE g_user_module_instance (
gumi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gumi_module VARCHAR(128) NOT NULL,
gumi_order INT(11) NOT NULL,
gumi_name VARCHAR(128) NOT NULL,
gumi_display_name VARCHAR(256) DEFAULT '',
gumi_parameters MEDIUMBLOB,
gumi_readonly TINYINT(1) DEFAULT 0,
gumi_multiple_passwords TINYINT(1) DEFAULT 0,
gumi_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_user_middleware_module_instance (
gummi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gummi_module VARCHAR(128) NOT NULL,
gummi_order INT(11) NOT NULL,
gummi_name VARCHAR(128) NOT NULL,
gummi_display_name VARCHAR(256) DEFAULT '',
gummi_parameters MEDIUMBLOB,
gummi_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_user_auth_scheme_module_instance (
guasmi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
guasmi_module VARCHAR(128) NOT NULL,
guasmi_expiration INT(11) NOT NULL DEFAULT 0,
guasmi_max_use INT(11) DEFAULT 0, -- 0: unlimited
guasmi_allow_user_register TINYINT(1) DEFAULT 1,
guasmi_name VARCHAR(128) NOT NULL,
guasmi_display_name VARCHAR(256) DEFAULT '',
guasmi_parameters MEDIUMBLOB,
guasmi_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_client_module_instance (
gcmi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gcmi_module VARCHAR(128) NOT NULL,
gcmi_order INT(11) NOT NULL,
gcmi_name VARCHAR(128) NOT NULL,
gcmi_display_name VARCHAR(256) DEFAULT '',
gcmi_parameters MEDIUMBLOB,
gcmi_readonly TINYINT(1) DEFAULT 0,
gcmi_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_plugin_module_instance (
gpmi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gpmi_module VARCHAR(128) NOT NULL,
gpmi_name VARCHAR(128) NOT NULL,
gpmi_display_name VARCHAR(256) DEFAULT '',
gpmi_parameters MEDIUMBLOB,
gpmi_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_user_session (
gus_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gus_session_hash VARCHAR(128) NOT NULL,
gus_user_agent VARCHAR(256),
gus_issued_for VARCHAR(256), -- IP address or hostname
gus_username VARCHAR(256) NOT NULL,
gus_expiration TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
gus_last_login TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
gus_current TINYINT(1),
gus_enabled TINYINT(1) DEFAULT 1
);
CREATE INDEX i_g_user_session_username ON g_user_session(gus_username);
CREATE INDEX i_g_user_session_last_login ON g_user_session(gus_last_login);
CREATE INDEX i_g_user_session_expiration ON g_user_session(gus_expiration);
CREATE TABLE g_user_session_scheme (
guss_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gus_id INT(11) NOT NULL,
guasmi_id INT(11) DEFAULT NULL, -- NULL means scheme 'password'
guss_expiration TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
guss_last_login TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
guss_use_counter INT(11) DEFAULT 0,
guss_enabled TINYINT(1) DEFAULT 1,
FOREIGN KEY(gus_id) REFERENCES g_user_session(gus_id) ON DELETE CASCADE,
FOREIGN KEY(guasmi_id) REFERENCES g_user_auth_scheme_module_instance(guasmi_id) ON DELETE CASCADE
);
CREATE INDEX i_g_user_session_scheme_last_login ON g_user_session_scheme(guss_last_login);
CREATE INDEX i_g_user_session_scheme_expiration ON g_user_session_scheme(guss_expiration);
CREATE TABLE g_scope (
gs_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gs_name VARCHAR(128) NOT NULL UNIQUE,
gs_display_name VARCHAR(256) DEFAULT '',
gs_description VARCHAR(512),
gs_password_required TINYINT(1) DEFAULT 1,
gs_password_max_age INT(11) DEFAULT 0,
gs_enabled TINYINT(1) DEFAULT 1
);
CREATE TABLE g_scope_group (
gsg_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gs_id INT(11),
gsg_name VARCHAR(128) NOT NULL,
gsg_scheme_required INT(11) DEFAULT 1,
FOREIGN KEY(gs_id) REFERENCES g_scope(gs_id) ON DELETE CASCADE
);
CREATE TABLE g_scope_group_auth_scheme_module_instance (
gsgasmi_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gsg_id INT(11) NOT NULL,
guasmi_id INT(11) NOT NULL,
FOREIGN KEY(gsg_id) REFERENCES g_scope_group(gsg_id) ON DELETE CASCADE,
FOREIGN KEY(guasmi_id) REFERENCES g_user_auth_scheme_module_instance(guasmi_id) ON DELETE CASCADE
);
CREATE TABLE g_client_user_scope (
gcus_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gs_id INT(11) NOT NULL,
gcus_username VARCHAR(256) NOT NULL,
gcus_client_id VARCHAR(256) NOT NULL,
gcus_granted TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
gcus_enabled TINYINT(1) DEFAULT 1,
FOREIGN KEY(gs_id) REFERENCES g_scope(gs_id) ON DELETE CASCADE
);
CREATE INDEX i_g_client_user_scope_username ON g_client_user_scope(gcus_username);
CREATE INDEX i_g_client_user_scope_client_id ON g_client_user_scope(gcus_client_id);
CREATE TABLE g_api_key (
gak_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gak_token_hash VARCHAR(512) NOT NULL,
gak_counter INT(11) DEFAULT 0,
gak_username VARCHAR(256) NOT NULL,
gak_issued_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
gak_issued_for VARCHAR(256), -- IP address or hostname
gak_user_agent VARCHAR(256),
gak_enabled TINYINT(1) DEFAULT 1
);
CREATE INDEX i_gak_token_hash ON g_api_key(gak_token_hash);
CREATE TABLE g_misc_config (
gmc_id INT(11) PRIMARY KEY AUTO_INCREMENT,
gmc_type VARCHAR(128) NOT NULL,
gmc_name VARCHAR(128),
gmc_value MEDIUMBLOB
);
CREATE INDEX i_gmc_type ON g_misc_config(gmc_type);
CREATE INDEX i_gmc_name ON g_misc_config(gmc_name);