@tomei/sso 0.0.2 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.commitlintrc.json +22 -0
- package/.eslintignore +1 -0
- package/.eslintrc +16 -0
- package/.eslintrc.js +35 -0
- package/.husky/pre-commit +7 -0
- package/.prettierrc +5 -0
- package/README.md +15 -3
- package/create-sso-user.sql +39 -0
- package/package.json +1 -4
- package/prisma/migrations/0_init/migration.sql +513 -0
- package/prisma/migrations/20230528161352_create_user_user_group_and_add_new_column/migration.sql +35 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +506 -0
- package/src/index.ts +0 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +22 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"extends": [
|
3
|
+
"@commitlint/config-conventional"
|
4
|
+
],
|
5
|
+
"rules": {
|
6
|
+
"header-max-length": [ 2, "always", 120 ],
|
7
|
+
"type-enum": [
|
8
|
+
2,
|
9
|
+
"always",
|
10
|
+
[
|
11
|
+
"breaking",
|
12
|
+
"feat",
|
13
|
+
"fix",
|
14
|
+
"refactor",
|
15
|
+
"config",
|
16
|
+
"test",
|
17
|
+
"docs",
|
18
|
+
"chore"
|
19
|
+
]
|
20
|
+
]
|
21
|
+
}
|
22
|
+
}
|
package/.eslintignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
dist
|
package/.eslintrc
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"parser": "@typescript-eslint/parser",
|
3
|
+
"parserOptions": {
|
4
|
+
"ecmaVersion": "latest",
|
5
|
+
"sourceType": "module" // Allows for the use of imports
|
6
|
+
},
|
7
|
+
"extends": ["plugin:@typescript-eslint/recommended"],
|
8
|
+
"env": {
|
9
|
+
"node": true // Enable Node.js global variables
|
10
|
+
},
|
11
|
+
"rules": {
|
12
|
+
"no-console": "off",
|
13
|
+
"import/prefer-default-export": "off",
|
14
|
+
"@typescript-eslint/no-unused-vars": "warn"
|
15
|
+
}
|
16
|
+
}
|
package/.eslintrc.js
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
module.exports = {
|
2
|
+
parser: "@typescript-eslint/parser",
|
3
|
+
plugins: ["@typescript-eslint"],
|
4
|
+
|
5
|
+
parserOptions: {
|
6
|
+
ecmaVersion: "latest", // Allows the use of modern ECMAScript features
|
7
|
+
sourceType: "module", // Allows for the use of imports
|
8
|
+
},
|
9
|
+
|
10
|
+
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
|
11
|
+
env: {
|
12
|
+
node: true, // Enable Node.js global variables
|
13
|
+
},
|
14
|
+
rules: {
|
15
|
+
"no-console": "off",
|
16
|
+
"@typescript-eslint/no-explicit-any": "off",
|
17
|
+
"@typescript-eslint/no-var-requires": "off",
|
18
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
19
|
+
"import/prefer-default-export": "off",
|
20
|
+
"@typescript-eslint/no-unused-vars": "warn",
|
21
|
+
"no-useless-catch": "off",
|
22
|
+
"@typescript-eslint/no-non-null-assertion": "off",
|
23
|
+
"@typescript-eslint/no-empty-function": "off",
|
24
|
+
"@typescript-eslint/no-empty-interface": "off",
|
25
|
+
"@typescript-eslint/no-inferrable-types": "off",
|
26
|
+
"@typescript-eslint/no-namespace": "off",
|
27
|
+
"@typescript-eslint/no-use-before-define": "off",
|
28
|
+
"@typescript-eslint/no-unsafe-assignment": "off",
|
29
|
+
"@typescript-eslint/no-unsafe-call": "off",
|
30
|
+
"@typescript-eslint/no-unsafe-member-access": "off",
|
31
|
+
"@typescript-eslint/no-unsafe-return": "off",
|
32
|
+
"@typescript-eslint/restrict-template-expressions": "off",
|
33
|
+
"no-useless-escape": "off",
|
34
|
+
},
|
35
|
+
};
|
package/.prettierrc
ADDED
package/README.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
## SSO Package
|
2
2
|
|
3
3
|
### How to use
|
4
|
-
- run npm i
|
5
|
-
- Make sure you set the `DATABASE_URL` in your project `.env` file
|
6
|
-
- run
|
4
|
+
- run `npm i`
|
5
|
+
- Make sure you set the `DATABASE_URL` and `SHADOW_DATABASE_URL` in your project `.env` file
|
6
|
+
- run `npm run start:dev`
|
7
|
+
|
8
|
+
### How create a new migration
|
9
|
+
- Make sure you have `DATABASE_URL` and `SHADOW_DATABASE_URL` in your project `.env` file
|
10
|
+
- create a new empty database. dont do migration on it and set the `SHADOW_DATABASE_URL` to it
|
11
|
+
- Create a database user
|
12
|
+
- Grant the above user privileges to alter sso tables and shadow database. The user should have access to the sso table and shadow database only. Use `create-sso-user.sql` as an example to create the user and grant privileges
|
13
|
+
- Make changes to the `schema.prisma` file
|
14
|
+
- Run `npx prisma migrate dev --name <migration-name> --preview-feature --create-only` to create the migration. The migration will be created in the `migrations` folder. Review the migration and make changes if necessary.
|
15
|
+
|
16
|
+
### How to run migration
|
17
|
+
- run `npx prisma migrate deploy` to run the migration
|
18
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
-- example to create sso-user
|
3
|
+
CREATE USER 'sso_user'@'environment' IDENTIFIED BY 'password';
|
4
|
+
|
5
|
+
-- example to grant neccesary access to run migration
|
6
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_authorization_codes TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
7
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_bearer_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
8
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_building_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
9
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_buildings TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
10
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_cities TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
11
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_companies TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
12
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_countries TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
13
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_departments TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
14
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_grouproleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
15
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemaccess TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
16
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
17
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
18
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_oauth_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
19
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
20
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_sequelize_meta TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
21
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staff_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
22
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staffs TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
23
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_states TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
24
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_system_accesses TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
25
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
26
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
27
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemroleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
28
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systems TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
29
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_updated_history TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
30
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_user_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
31
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usergroup TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
32
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_users TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
33
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
34
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
35
|
+
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production._prisma_migrations TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
36
|
+
|
37
|
+
|
38
|
+
-- Grant user to create, alter, drop, references on the database (required for creating shadow tables)
|
39
|
+
GRANT CREATE, ALTER, DROP, REFERENCES ON shadow_database.* TO 'sso_user'@'localhost' WITH GRANT OPTION;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tomei/sso",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1.2",
|
4
4
|
"description": "Tomei SSO Package",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"scripts": {
|
@@ -24,9 +24,6 @@
|
|
24
24
|
"url": "https://gitlab.com/tomei-package/sso/issues"
|
25
25
|
},
|
26
26
|
"homepage": "https://gitlab.com/tomei-package/sso#readme",
|
27
|
-
"files": [
|
28
|
-
"dist"
|
29
|
-
],
|
30
27
|
"devDependencies": {
|
31
28
|
"@commitlint/cli": "^17.6.3",
|
32
29
|
"@commitlint/config-conventional": "^17.6.3",
|
@@ -0,0 +1,513 @@
|
|
1
|
+
-- CreateTable
|
2
|
+
CREATE TABLE `sso_authorization_codes` (
|
3
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
4
|
+
`user_id` INTEGER NOT NULL,
|
5
|
+
`system_id` INTEGER NOT NULL,
|
6
|
+
`code` VARCHAR(255) NOT NULL,
|
7
|
+
`expired_at` DATETIME(0) NOT NULL,
|
8
|
+
`created_at` DATETIME(0) NOT NULL,
|
9
|
+
`updated_at` DATETIME(0) NOT NULL,
|
10
|
+
`status` VARCHAR(255) NULL DEFAULT 'unused',
|
11
|
+
|
12
|
+
UNIQUE INDEX `code`(`code`),
|
13
|
+
PRIMARY KEY (`id`)
|
14
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
15
|
+
|
16
|
+
-- CreateTable
|
17
|
+
CREATE TABLE `sso_bearer_tokens` (
|
18
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
19
|
+
`user_id` INTEGER NOT NULL,
|
20
|
+
`token` VARCHAR(255) NOT NULL,
|
21
|
+
`expired_at` DATETIME(0) NOT NULL,
|
22
|
+
`created_at` DATETIME(0) NOT NULL,
|
23
|
+
`updated_at` DATETIME(0) NOT NULL,
|
24
|
+
|
25
|
+
UNIQUE INDEX `token`(`token`),
|
26
|
+
PRIMARY KEY (`id`)
|
27
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
28
|
+
|
29
|
+
-- CreateTable
|
30
|
+
CREATE TABLE `sso_building_types` (
|
31
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
32
|
+
`name` VARCHAR(50) NOT NULL,
|
33
|
+
`created_at` DATETIME(0) NOT NULL,
|
34
|
+
`updated_at` DATETIME(0) NOT NULL,
|
35
|
+
|
36
|
+
PRIMARY KEY (`id`)
|
37
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
38
|
+
|
39
|
+
-- CreateTable
|
40
|
+
CREATE TABLE `sso_buildings` (
|
41
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
42
|
+
`name` VARCHAR(200) NULL,
|
43
|
+
`code` VARCHAR(10) NOT NULL,
|
44
|
+
`building_type_id` INTEGER NOT NULL,
|
45
|
+
`status` VARCHAR(10) NOT NULL,
|
46
|
+
`email` VARCHAR(200) NULL,
|
47
|
+
`mobile` VARCHAR(20) NULL,
|
48
|
+
`phone` VARCHAR(20) NOT NULL,
|
49
|
+
`address` VARCHAR(1000) NOT NULL,
|
50
|
+
`postcode` VARCHAR(10) NOT NULL,
|
51
|
+
`longitude` DECIMAL(11, 8) NULL,
|
52
|
+
`latitude` DECIMAL(10, 8) NULL,
|
53
|
+
`country_id` INTEGER NOT NULL,
|
54
|
+
`state` VARCHAR(50) NOT NULL,
|
55
|
+
`city` VARCHAR(50) NOT NULL,
|
56
|
+
`created_by_id` INTEGER NULL,
|
57
|
+
`updated_by_id` INTEGER NULL,
|
58
|
+
`created_at` DATETIME(0) NOT NULL,
|
59
|
+
`updated_at` DATETIME(0) NOT NULL,
|
60
|
+
`brand` VARCHAR(100) NULL,
|
61
|
+
`area_staff_id` INTEGER NULL,
|
62
|
+
`opening_date` DATETIME(0) NULL,
|
63
|
+
`ceased_date` DATETIME(0) NULL,
|
64
|
+
`opening_hours` VARCHAR(200) NULL,
|
65
|
+
`image` VARCHAR(200) NULL,
|
66
|
+
|
67
|
+
UNIQUE INDEX `code`(`code`),
|
68
|
+
PRIMARY KEY (`id`)
|
69
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
70
|
+
|
71
|
+
-- CreateTable
|
72
|
+
CREATE TABLE `sso_cities` (
|
73
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
74
|
+
`name` VARCHAR(255) NULL,
|
75
|
+
`state_id` INTEGER NULL,
|
76
|
+
`postcode` VARCHAR(255) NULL,
|
77
|
+
`created_at` DATETIME(0) NOT NULL,
|
78
|
+
`updated_at` DATETIME(0) NOT NULL,
|
79
|
+
|
80
|
+
PRIMARY KEY (`id`)
|
81
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
82
|
+
|
83
|
+
-- CreateTable
|
84
|
+
CREATE TABLE `sso_companies` (
|
85
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
86
|
+
`code` VARCHAR(10) NOT NULL,
|
87
|
+
`name` VARCHAR(200) NOT NULL,
|
88
|
+
`description` VARCHAR(3000) NULL,
|
89
|
+
`logo` TEXT NULL,
|
90
|
+
`status` VARCHAR(10) NOT NULL,
|
91
|
+
`created_by_id` INTEGER NULL,
|
92
|
+
`updated_by_id` INTEGER NULL,
|
93
|
+
`created_at` DATETIME(0) NOT NULL,
|
94
|
+
`updated_at` DATETIME(0) NOT NULL,
|
95
|
+
|
96
|
+
UNIQUE INDEX `code`(`code`),
|
97
|
+
PRIMARY KEY (`id`)
|
98
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
99
|
+
|
100
|
+
-- CreateTable
|
101
|
+
CREATE TABLE `sso_countries` (
|
102
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
103
|
+
`code` VARCHAR(255) NOT NULL,
|
104
|
+
`name` VARCHAR(100) NOT NULL,
|
105
|
+
`phonecode` VARCHAR(255) NULL,
|
106
|
+
`created_at` DATETIME(0) NOT NULL,
|
107
|
+
`updated_at` DATETIME(0) NOT NULL,
|
108
|
+
|
109
|
+
UNIQUE INDEX `code`(`code`),
|
110
|
+
PRIMARY KEY (`id`)
|
111
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
112
|
+
|
113
|
+
-- CreateTable
|
114
|
+
CREATE TABLE `sso_departments` (
|
115
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
116
|
+
`code` VARCHAR(10) NOT NULL,
|
117
|
+
`building_id` INTEGER NULL,
|
118
|
+
`status` VARCHAR(10) NOT NULL,
|
119
|
+
`name` VARCHAR(100) NOT NULL,
|
120
|
+
`created_by_id` INTEGER NULL,
|
121
|
+
`updated_by_id` INTEGER NULL,
|
122
|
+
`created_at` DATETIME(0) NOT NULL,
|
123
|
+
`updated_at` DATETIME(0) NOT NULL,
|
124
|
+
|
125
|
+
UNIQUE INDEX `code`(`code`),
|
126
|
+
INDEX `fk_departments_building_id`(`building_id`),
|
127
|
+
INDEX `fk_departments_created_by_id`(`created_by_id`),
|
128
|
+
INDEX `fk_departments_updated_by_id`(`updated_by_id`),
|
129
|
+
PRIMARY KEY (`id`)
|
130
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
131
|
+
|
132
|
+
-- CreateTable
|
133
|
+
CREATE TABLE `sso_grouproleprivilege` (
|
134
|
+
`GroupCode` VARCHAR(10) NOT NULL,
|
135
|
+
`RoleId` VARCHAR(30) NOT NULL,
|
136
|
+
`PrivilegeId` VARCHAR(30) NOT NULL,
|
137
|
+
`CreatedById` INTEGER NOT NULL,
|
138
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2023-01-03 17:13:45'),
|
139
|
+
`SystemId` INTEGER NOT NULL DEFAULT 1,
|
140
|
+
|
141
|
+
INDEX `PrivilegeId`(`PrivilegeId`),
|
142
|
+
INDEX `RoleId`(`RoleId`),
|
143
|
+
INDEX `sso_GroupRolePrivilege_SystemId_foreign_idx`(`SystemId`),
|
144
|
+
PRIMARY KEY (`GroupCode`, `RoleId`, `PrivilegeId`, `SystemId`)
|
145
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
146
|
+
|
147
|
+
-- CreateTable
|
148
|
+
CREATE TABLE `sso_groupsystemaccess` (
|
149
|
+
`SystemId` INTEGER NOT NULL,
|
150
|
+
`GroupCode` VARCHAR(10) NOT NULL,
|
151
|
+
`CreatedById` INTEGER NOT NULL,
|
152
|
+
`createdAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:41'),
|
153
|
+
|
154
|
+
INDEX `GroupCode`(`GroupCode`),
|
155
|
+
PRIMARY KEY (`SystemId`, `GroupCode`)
|
156
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
157
|
+
|
158
|
+
-- CreateTable
|
159
|
+
CREATE TABLE `sso_groupsystemprivilege` (
|
160
|
+
`GroupCode` VARCHAR(10) NOT NULL,
|
161
|
+
`PrivilegeId` VARCHAR(30) NOT NULL,
|
162
|
+
`CreatedById` VARCHAR(30) NOT NULL,
|
163
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:40'),
|
164
|
+
|
165
|
+
INDEX `PrivilegeId`(`PrivilegeId`),
|
166
|
+
PRIMARY KEY (`GroupCode`, `PrivilegeId`)
|
167
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
168
|
+
|
169
|
+
-- CreateTable
|
170
|
+
CREATE TABLE `sso_groupsystemrole` (
|
171
|
+
`RoleId` VARCHAR(30) NOT NULL,
|
172
|
+
`GroupCode` VARCHAR(10) NOT NULL,
|
173
|
+
`CreatedById` VARCHAR(30) NOT NULL,
|
174
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:39'),
|
175
|
+
|
176
|
+
INDEX `GroupCode`(`GroupCode`),
|
177
|
+
PRIMARY KEY (`RoleId`, `GroupCode`)
|
178
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
179
|
+
|
180
|
+
-- CreateTable
|
181
|
+
CREATE TABLE `sso_oauth_tokens` (
|
182
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
183
|
+
`user_id` INTEGER NOT NULL,
|
184
|
+
`token` TEXT NOT NULL,
|
185
|
+
`expired_at` DATETIME(0) NOT NULL,
|
186
|
+
`created_at` DATETIME(0) NOT NULL,
|
187
|
+
`updated_at` DATETIME(0) NOT NULL,
|
188
|
+
`system_id` INTEGER NOT NULL DEFAULT 1,
|
189
|
+
|
190
|
+
INDEX `sso_oauth_tokens_system_id_foreign_idx`(`system_id`),
|
191
|
+
PRIMARY KEY (`id`)
|
192
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
193
|
+
|
194
|
+
-- CreateTable
|
195
|
+
CREATE TABLE `sso_roles` (
|
196
|
+
`ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
197
|
+
`name` VARCHAR(255) NOT NULL,
|
198
|
+
`description` TEXT NULL,
|
199
|
+
`default_to_on` BOOLEAN NOT NULL,
|
200
|
+
`parent_id` INTEGER NULL,
|
201
|
+
`created_at` DATETIME(0) NOT NULL,
|
202
|
+
`updated_at` DATETIME(0) NOT NULL,
|
203
|
+
|
204
|
+
PRIMARY KEY (`ID`)
|
205
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
206
|
+
|
207
|
+
-- CreateTable
|
208
|
+
CREATE TABLE `sso_staff_types` (
|
209
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
210
|
+
`name` VARCHAR(20) NOT NULL,
|
211
|
+
`created_at` DATETIME(0) NOT NULL,
|
212
|
+
`updated_at` DATETIME(0) NOT NULL,
|
213
|
+
|
214
|
+
PRIMARY KEY (`id`)
|
215
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
216
|
+
|
217
|
+
-- CreateTable
|
218
|
+
CREATE TABLE `sso_staffs` (
|
219
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
220
|
+
`staff_id` VARCHAR(10) NOT NULL,
|
221
|
+
`full_name` VARCHAR(200) NOT NULL,
|
222
|
+
`preferred_name` VARCHAR(200) NOT NULL,
|
223
|
+
`email` VARCHAR(200) NOT NULL,
|
224
|
+
`staff_type_id` INTEGER NOT NULL,
|
225
|
+
`job_title` VARCHAR(100) NOT NULL,
|
226
|
+
`car_plate` VARCHAR(20) NOT NULL DEFAULT '',
|
227
|
+
`mobile` VARCHAR(20) NULL,
|
228
|
+
`floor` VARCHAR(15) NULL,
|
229
|
+
`extension` INTEGER NULL,
|
230
|
+
`is_charge` BOOLEAN NOT NULL DEFAULT false,
|
231
|
+
`status` VARCHAR(10) NOT NULL,
|
232
|
+
`user_id` INTEGER NOT NULL,
|
233
|
+
`building_id` INTEGER NOT NULL,
|
234
|
+
`department_id` INTEGER NOT NULL,
|
235
|
+
`company_id` INTEGER NULL,
|
236
|
+
`created_by_id` INTEGER NULL,
|
237
|
+
`updated_by_id` INTEGER NULL,
|
238
|
+
`created_at` DATETIME(0) NOT NULL,
|
239
|
+
`updated_at` DATETIME(0) NOT NULL,
|
240
|
+
`image` VARCHAR(255) NULL,
|
241
|
+
`IdNo` VARCHAR(20) NULL,
|
242
|
+
`FullAddress` VARCHAR(1000) NULL,
|
243
|
+
|
244
|
+
UNIQUE INDEX `staff_id`(`staff_id`),
|
245
|
+
INDEX `fk_staffs_building_id`(`building_id`),
|
246
|
+
INDEX `fk_staffs_company_id`(`company_id`),
|
247
|
+
INDEX `fk_staffs_created_by_id`(`created_by_id`),
|
248
|
+
INDEX `fk_staffs_department_id`(`department_id`),
|
249
|
+
INDEX `fk_staffs_staff_type_id`(`staff_type_id`),
|
250
|
+
INDEX `fk_staffs_updated_by_id`(`updated_by_id`),
|
251
|
+
INDEX `fk_staffs_user_id`(`user_id`),
|
252
|
+
PRIMARY KEY (`id`)
|
253
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
254
|
+
|
255
|
+
-- CreateTable
|
256
|
+
CREATE TABLE `sso_states` (
|
257
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
258
|
+
`name` VARCHAR(50) NOT NULL,
|
259
|
+
`country_id` INTEGER NULL,
|
260
|
+
`created_at` DATETIME(0) NOT NULL,
|
261
|
+
`updated_at` DATETIME(0) NOT NULL,
|
262
|
+
|
263
|
+
PRIMARY KEY (`id`)
|
264
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
265
|
+
|
266
|
+
-- CreateTable
|
267
|
+
CREATE TABLE `sso_system_accesses` (
|
268
|
+
`user_id` INTEGER NOT NULL,
|
269
|
+
`system_id` INTEGER NOT NULL,
|
270
|
+
`updated_at` DATETIME(0) NOT NULL,
|
271
|
+
|
272
|
+
INDEX `fk_system_access_system`(`system_id`),
|
273
|
+
PRIMARY KEY (`user_id`, `system_id`)
|
274
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
275
|
+
|
276
|
+
-- CreateTable
|
277
|
+
CREATE TABLE `sso_systemprivilege` (
|
278
|
+
`PrivilegeId` VARCHAR(30) NOT NULL,
|
279
|
+
`SystemId` INTEGER NOT NULL,
|
280
|
+
`Code` VARCHAR(200) NOT NULL,
|
281
|
+
`Description` VARCHAR(3000) NULL,
|
282
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
|
283
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
|
284
|
+
|
285
|
+
INDEX `SystemId`(`SystemId`),
|
286
|
+
PRIMARY KEY (`PrivilegeId`)
|
287
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
288
|
+
|
289
|
+
-- CreateTable
|
290
|
+
CREATE TABLE `sso_systemrole` (
|
291
|
+
`RoleId` VARCHAR(30) NOT NULL,
|
292
|
+
`SystemId` INTEGER NOT NULL,
|
293
|
+
`Name` VARCHAR(100) NOT NULL,
|
294
|
+
`Description` VARCHAR(3000) NULL,
|
295
|
+
`CreatedById` INTEGER NOT NULL,
|
296
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
297
|
+
`UpdatedById` INTEGER NOT NULL,
|
298
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
299
|
+
|
300
|
+
INDEX `SystemId`(`SystemId`),
|
301
|
+
PRIMARY KEY (`RoleId`)
|
302
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
303
|
+
|
304
|
+
-- CreateTable
|
305
|
+
CREATE TABLE `sso_systemroleprivilege` (
|
306
|
+
`RoleId` VARCHAR(30) NOT NULL,
|
307
|
+
`PrivilegeId` VARCHAR(30) NOT NULL,
|
308
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
309
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
310
|
+
|
311
|
+
INDEX `PrivilegeId`(`PrivilegeId`),
|
312
|
+
PRIMARY KEY (`RoleId`, `PrivilegeId`)
|
313
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
314
|
+
|
315
|
+
-- CreateTable
|
316
|
+
CREATE TABLE `sso_systems` (
|
317
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
318
|
+
`code` VARCHAR(10) NOT NULL,
|
319
|
+
`name` VARCHAR(200) NOT NULL,
|
320
|
+
`description` VARCHAR(500) NOT NULL,
|
321
|
+
`access_url` VARCHAR(2000) NULL,
|
322
|
+
`google_play_url` VARCHAR(2000) NULL,
|
323
|
+
`apple_store_url` VARCHAR(2000) NULL,
|
324
|
+
`api_key` VARCHAR(255) NULL,
|
325
|
+
`logo` VARCHAR(255) NULL,
|
326
|
+
`status` VARCHAR(10) NOT NULL,
|
327
|
+
`visible` BOOLEAN NOT NULL DEFAULT true,
|
328
|
+
`created_at` DATETIME(0) NOT NULL,
|
329
|
+
`updated_at` DATETIME(0) NOT NULL,
|
330
|
+
`api_secret` VARCHAR(255) NULL,
|
331
|
+
`updated_by_id` INTEGER NULL,
|
332
|
+
`created_by_id` INTEGER NULL,
|
333
|
+
|
334
|
+
UNIQUE INDEX `code`(`code`),
|
335
|
+
PRIMARY KEY (`id`)
|
336
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
337
|
+
|
338
|
+
-- CreateTable
|
339
|
+
CREATE TABLE `sso_updated_history` (
|
340
|
+
`HistoryId` BIGINT NOT NULL AUTO_INCREMENT,
|
341
|
+
`BatchId` VARCHAR(30) NULL,
|
342
|
+
`ObjectType` VARCHAR(50) NOT NULL,
|
343
|
+
`ObjectValue` VARCHAR(50) NOT NULL,
|
344
|
+
`ActionType` ENUM('Add', 'Update', 'Delete') NOT NULL,
|
345
|
+
`UpdatedFieldName` VARCHAR(100) NOT NULL,
|
346
|
+
`OldValue` VARCHAR(1000) NULL,
|
347
|
+
`NewValue` VARCHAR(1000) NULL,
|
348
|
+
`UpdatedById` INTEGER NOT NULL,
|
349
|
+
`UpdatedAt` DATETIME(0) NOT NULL,
|
350
|
+
|
351
|
+
PRIMARY KEY (`HistoryId`)
|
352
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
353
|
+
|
354
|
+
-- CreateTable
|
355
|
+
CREATE TABLE `sso_user_roles` (
|
356
|
+
`user_id` INTEGER NOT NULL,
|
357
|
+
`role_id` INTEGER NOT NULL,
|
358
|
+
`updated_by_id` INTEGER NULL,
|
359
|
+
`updated_at` DATETIME(0) NOT NULL,
|
360
|
+
|
361
|
+
PRIMARY KEY (`user_id`, `role_id`)
|
362
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
363
|
+
|
364
|
+
-- CreateTable
|
365
|
+
CREATE TABLE `sso_usergroup` (
|
366
|
+
`GroupCode` VARCHAR(10) NOT NULL,
|
367
|
+
`GroupDescription` VARCHAR(100) NULL,
|
368
|
+
`Status` ENUM('Active', 'Inactive') NULL,
|
369
|
+
`CreatedById` VARCHAR(30) NULL,
|
370
|
+
`CreatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
|
371
|
+
`UpdatedById` VARCHAR(30) NULL,
|
372
|
+
`UpdatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
|
373
|
+
`DepartmentId` INTEGER NULL,
|
374
|
+
|
375
|
+
INDEX `sso_UserGroup_DepartmentId_foreign_idx`(`DepartmentId`),
|
376
|
+
PRIMARY KEY (`GroupCode`)
|
377
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
378
|
+
|
379
|
+
-- CreateTable
|
380
|
+
CREATE TABLE `sso_users` (
|
381
|
+
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
382
|
+
`email` VARCHAR(255) NOT NULL,
|
383
|
+
`password` VARCHAR(255) NOT NULL,
|
384
|
+
`status` VARCHAR(255) NULL,
|
385
|
+
`default_password_changed` BOOLEAN NULL DEFAULT false,
|
386
|
+
`first_login_at` DATETIME(0) NULL,
|
387
|
+
`created_at` DATETIME(0) NOT NULL,
|
388
|
+
`updated_at` DATETIME(0) NOT NULL,
|
389
|
+
`GroupCode` VARCHAR(10) NULL,
|
390
|
+
|
391
|
+
UNIQUE INDEX `email`(`email`),
|
392
|
+
INDEX `sso_users_GroupCode_foreign_idx`(`GroupCode`),
|
393
|
+
PRIMARY KEY (`id`)
|
394
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
395
|
+
|
396
|
+
-- CreateTable
|
397
|
+
CREATE TABLE `sso_usersystemprivilege` (
|
398
|
+
`UserId` INTEGER NOT NULL,
|
399
|
+
`PrivilegeId` VARCHAR(30) NOT NULL,
|
400
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
401
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
402
|
+
|
403
|
+
INDEX `PrivilegeId`(`PrivilegeId`),
|
404
|
+
PRIMARY KEY (`UserId`, `PrivilegeId`)
|
405
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
406
|
+
|
407
|
+
-- CreateTable
|
408
|
+
CREATE TABLE `sso_usersystemrole` (
|
409
|
+
`UserId` INTEGER NOT NULL,
|
410
|
+
`RoleId` VARCHAR(30) NOT NULL,
|
411
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
412
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
413
|
+
|
414
|
+
INDEX `RoleId`(`RoleId`),
|
415
|
+
PRIMARY KEY (`UserId`, `RoleId`)
|
416
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
417
|
+
|
418
|
+
-- AddForeignKey
|
419
|
+
ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
420
|
+
|
421
|
+
-- AddForeignKey
|
422
|
+
ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
423
|
+
|
424
|
+
-- AddForeignKey
|
425
|
+
ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
426
|
+
|
427
|
+
-- AddForeignKey
|
428
|
+
ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_GroupRolePrivilege_SystemId_foreign_idx` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
429
|
+
|
430
|
+
-- AddForeignKey
|
431
|
+
ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
|
432
|
+
|
433
|
+
-- AddForeignKey
|
434
|
+
ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
435
|
+
|
436
|
+
-- AddForeignKey
|
437
|
+
ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_3` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
438
|
+
|
439
|
+
-- AddForeignKey
|
440
|
+
ALTER TABLE `sso_groupsystemaccess` ADD CONSTRAINT `sso_groupsystemaccess_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
|
441
|
+
|
442
|
+
-- AddForeignKey
|
443
|
+
ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
|
444
|
+
|
445
|
+
-- AddForeignKey
|
446
|
+
ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
447
|
+
|
448
|
+
-- AddForeignKey
|
449
|
+
ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
450
|
+
|
451
|
+
-- AddForeignKey
|
452
|
+
ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_2` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
453
|
+
|
454
|
+
-- AddForeignKey
|
455
|
+
ALTER TABLE `sso_oauth_tokens` ADD CONSTRAINT `sso_oauth_tokens_system_id_foreign_idx` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
456
|
+
|
457
|
+
-- AddForeignKey
|
458
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
459
|
+
|
460
|
+
-- AddForeignKey
|
461
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_company_id` FOREIGN KEY (`company_id`) REFERENCES `sso_companies`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
462
|
+
|
463
|
+
-- AddForeignKey
|
464
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
465
|
+
|
466
|
+
-- AddForeignKey
|
467
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_department_id` FOREIGN KEY (`department_id`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
468
|
+
|
469
|
+
-- AddForeignKey
|
470
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_staff_type_id` FOREIGN KEY (`staff_type_id`) REFERENCES `sso_staff_types`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
471
|
+
|
472
|
+
-- AddForeignKey
|
473
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
474
|
+
|
475
|
+
-- AddForeignKey
|
476
|
+
ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_user_id` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
477
|
+
|
478
|
+
-- AddForeignKey
|
479
|
+
ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_system` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
480
|
+
|
481
|
+
-- AddForeignKey
|
482
|
+
ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_user` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
483
|
+
|
484
|
+
-- AddForeignKey
|
485
|
+
ALTER TABLE `sso_systemprivilege` ADD CONSTRAINT `sso_systemprivilege_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
486
|
+
|
487
|
+
-- AddForeignKey
|
488
|
+
ALTER TABLE `sso_systemrole` ADD CONSTRAINT `sso_systemrole_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
489
|
+
|
490
|
+
-- AddForeignKey
|
491
|
+
ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
492
|
+
|
493
|
+
-- AddForeignKey
|
494
|
+
ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
495
|
+
|
496
|
+
-- AddForeignKey
|
497
|
+
ALTER TABLE `sso_usergroup` ADD CONSTRAINT `sso_UserGroup_DepartmentId_foreign_idx` FOREIGN KEY (`DepartmentId`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
498
|
+
|
499
|
+
-- AddForeignKey
|
500
|
+
ALTER TABLE `sso_users` ADD CONSTRAINT `sso_users_GroupCode_foreign_idx` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
|
501
|
+
|
502
|
+
-- AddForeignKey
|
503
|
+
ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
504
|
+
|
505
|
+
-- AddForeignKey
|
506
|
+
ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
507
|
+
|
508
|
+
-- AddForeignKey
|
509
|
+
ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
510
|
+
|
511
|
+
-- AddForeignKey
|
512
|
+
ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
|
513
|
+
|
package/prisma/migrations/20230528161352_create_user_user_group_and_add_new_column/migration.sql
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
-- AlterTable
|
2
|
+
ALTER TABLE `sso_systemprivilege` ADD COLUMN `Module` VARCHAR(200) NULL;
|
3
|
+
|
4
|
+
-- AlterTable
|
5
|
+
ALTER TABLE `sso_usergroup` ADD COLUMN `AllowInheritFromParentYN` ENUM('Y', 'N') NULL DEFAULT 'N',
|
6
|
+
ADD COLUMN `FullPath` VARCHAR(1000) NULL,
|
7
|
+
ADD COLUMN `GroupLevel` INTEGER NOT NULL DEFAULT 0,
|
8
|
+
ADD COLUMN `GroupType` VARCHAR(10) NULL,
|
9
|
+
ADD COLUMN `ParentGroupCode` VARCHAR(10) NULL,
|
10
|
+
ADD COLUMN `PersonInCharge` VARCHAR(100) NULL;
|
11
|
+
|
12
|
+
-- AlterTable
|
13
|
+
ALTER TABLE `sso_usersystemprivilege` ADD COLUMN `IsInheritedYN` ENUM('Y', 'N') NOT NULL DEFAULT 'N',
|
14
|
+
ADD COLUMN `IsRevokedYN` ENUM('Y', 'N') NOT NULL DEFAULT 'N';
|
15
|
+
|
16
|
+
-- CreateTable
|
17
|
+
CREATE TABLE `sso_UserUserGroup` (
|
18
|
+
`UserId` INTEGER NOT NULL,
|
19
|
+
`GroupCode` VARCHAR(191) NOT NULL,
|
20
|
+
`SystemId` INTEGER NULL,
|
21
|
+
`CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
22
|
+
`UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
|
23
|
+
|
24
|
+
INDEX `GroupCode`(`GroupCode`),
|
25
|
+
PRIMARY KEY (`UserId`, `GroupCode`)
|
26
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
27
|
+
|
28
|
+
-- AddForeignKey
|
29
|
+
ALTER TABLE `sso_UserUserGroup` ADD CONSTRAINT `sso_UserUserGroup_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
30
|
+
|
31
|
+
-- AddForeignKey
|
32
|
+
ALTER TABLE `sso_UserUserGroup` ADD CONSTRAINT `sso_UserUserGroup_ibfk_3` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
33
|
+
|
34
|
+
-- AddForeignKey
|
35
|
+
ALTER TABLE `sso_UserUserGroup` ADD CONSTRAINT `sso_UserUserGroup_ibfk_2` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
|
@@ -0,0 +1,506 @@
|
|
1
|
+
generator client {
|
2
|
+
provider = "prisma-client-js"
|
3
|
+
}
|
4
|
+
|
5
|
+
datasource db {
|
6
|
+
provider = "mysql"
|
7
|
+
url = env("DATABASE_URL")
|
8
|
+
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
|
9
|
+
}
|
10
|
+
|
11
|
+
model AuthorizationCode {
|
12
|
+
id Int @id @default(autoincrement())
|
13
|
+
userId Int @map("user_id")
|
14
|
+
systemId Int @map("system_id")
|
15
|
+
code String @unique(map: "code") @db.VarChar(255)
|
16
|
+
expiredAt DateTime @db.DateTime(0) @map("expired_at")
|
17
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
18
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
19
|
+
status String? @default("unused") @db.VarChar(255)
|
20
|
+
|
21
|
+
@@map("sso_authorization_codes")
|
22
|
+
}
|
23
|
+
|
24
|
+
model BearerToken {
|
25
|
+
id Int @id @default(autoincrement())
|
26
|
+
userId Int @map("user_id")
|
27
|
+
token String @unique(map: "token") @db.VarChar(255)
|
28
|
+
expiredAt DateTime @db.DateTime(0) @map("expired_at")
|
29
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
30
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
31
|
+
|
32
|
+
@@map("sso_bearer_tokens")
|
33
|
+
}
|
34
|
+
|
35
|
+
model BuildingTypes {
|
36
|
+
id Int @id @default(autoincrement())
|
37
|
+
name String @db.VarChar(50)
|
38
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
39
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
40
|
+
|
41
|
+
@@map("sso_building_types")
|
42
|
+
}
|
43
|
+
|
44
|
+
model Building {
|
45
|
+
id Int @id @default(autoincrement())
|
46
|
+
name String? @db.VarChar(200)
|
47
|
+
code String @unique(map: "code") @db.VarChar(10)
|
48
|
+
buildindTypeId Int @map("building_type_id")
|
49
|
+
status String @db.VarChar(10)
|
50
|
+
email String? @db.VarChar(200)
|
51
|
+
mobile String? @db.VarChar(20)
|
52
|
+
phone String @db.VarChar(20)
|
53
|
+
address String @db.VarChar(1000)
|
54
|
+
postcode String @db.VarChar(10)
|
55
|
+
longitude Decimal? @db.Decimal(11, 8)
|
56
|
+
latitude Decimal? @db.Decimal(10, 8)
|
57
|
+
countryId Int @map("country_id")
|
58
|
+
state String @db.VarChar(50)
|
59
|
+
city String @db.VarChar(50)
|
60
|
+
createdById Int? @map("created_by_id")
|
61
|
+
updatedById Int? @map("updated_by_id")
|
62
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
63
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
64
|
+
brand String? @db.VarChar(100)
|
65
|
+
areaStaffId Int? @map("area_staff_id")
|
66
|
+
openingDate DateTime? @db.DateTime(0) @map("opening_date")
|
67
|
+
ceasedDate DateTime? @db.DateTime(0) @map("ceased_date")
|
68
|
+
opening_hours String? @db.VarChar(200) @map("opening_hours")
|
69
|
+
image String? @db.VarChar(200)
|
70
|
+
departments Departement[]
|
71
|
+
staffs Staff[]
|
72
|
+
|
73
|
+
@@map("sso_buildings")
|
74
|
+
}
|
75
|
+
|
76
|
+
model City {
|
77
|
+
id Int @id @default(autoincrement())
|
78
|
+
name String? @db.VarChar(255)
|
79
|
+
stateId Int? @map("state_id")
|
80
|
+
postCode String? @db.VarChar(255) @map("postcode")
|
81
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
82
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
83
|
+
|
84
|
+
@@map("sso_cities")
|
85
|
+
}
|
86
|
+
|
87
|
+
model Company {
|
88
|
+
id Int @id @default(autoincrement())
|
89
|
+
code String @unique(map: "code") @db.VarChar(10)
|
90
|
+
name String @db.VarChar(200)
|
91
|
+
description String? @db.VarChar(3000)
|
92
|
+
logo String? @db.Text
|
93
|
+
status String @db.VarChar(10)
|
94
|
+
createdById Int? @map("created_by_id")
|
95
|
+
updatedById Int? @map("updated_by_id")
|
96
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
97
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
98
|
+
staffs Staff[]
|
99
|
+
|
100
|
+
@@map("sso_companies")
|
101
|
+
}
|
102
|
+
|
103
|
+
model Country {
|
104
|
+
id Int @id @default(autoincrement())
|
105
|
+
code String @unique(map: "code") @db.VarChar(255)
|
106
|
+
name String @db.VarChar(100)
|
107
|
+
phoneCode String? @db.VarChar(255) @map("phonecode")
|
108
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
109
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
110
|
+
|
111
|
+
@@map("sso_countries")
|
112
|
+
}
|
113
|
+
|
114
|
+
model Departement {
|
115
|
+
id Int @id @default(autoincrement())
|
116
|
+
code String @unique(map: "code") @db.VarChar(10)
|
117
|
+
buildingId Int? @map("building_id")
|
118
|
+
status String @db.VarChar(10)
|
119
|
+
name String @db.VarChar(100)
|
120
|
+
createdById Int? @map("created_by_id")
|
121
|
+
updatedById Int? @map("updated_by_id")
|
122
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
123
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
124
|
+
building Building? @relation(fields: [buildingId], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_departments_building_id")
|
125
|
+
createdBy User? @relation("sso_departments_created_by_idTosso_users", fields: [createdById], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_departments_created_by_id")
|
126
|
+
updatedBy User? @relation("sso_departments_updated_by_idTosso_users", fields: [updatedById], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_departments_updated_by_id")
|
127
|
+
Staffs Staff[]
|
128
|
+
UserGroup UserGroup[]
|
129
|
+
|
130
|
+
@@index([buildingId], map: "fk_departments_building_id")
|
131
|
+
@@index([createdById], map: "fk_departments_created_by_id")
|
132
|
+
@@index([updatedById], map: "fk_departments_updated_by_id")
|
133
|
+
@@map("sso_departments")
|
134
|
+
}
|
135
|
+
|
136
|
+
model GroupRolePrivilege {
|
137
|
+
groupCode String @db.VarChar(10) @map("GroupCode")
|
138
|
+
roleId String @db.VarChar(30) @map("RoleId")
|
139
|
+
privilegeId String @db.VarChar(30) @map("PrivilegeId")
|
140
|
+
createdById Int @map("CreatedById")
|
141
|
+
createdAt DateTime @default(dbgenerated("('2023-01-03 17:13:45')")) @db.DateTime(0) @map("CreatedAt")
|
142
|
+
systemId Int @default(1) @map("SystemId")
|
143
|
+
system System @relation(fields: [systemId], references: [id], onDelete: Cascade, map: "sso_GroupRolePrivilege_SystemId_foreign_idx")
|
144
|
+
userGroup UserGroup @relation(fields: [groupCode], references: [groupCode], onDelete: Cascade, map: "sso_grouproleprivilege_ibfk_1")
|
145
|
+
systemRole SystemRole @relation(fields: [roleId], references: [roleId], onDelete: Cascade, map: "sso_grouproleprivilege_ibfk_2")
|
146
|
+
systemPrivilege SystemPrivilege @relation(fields: [privilegeId], references: [privilegeId], onDelete: Cascade, map: "sso_grouproleprivilege_ibfk_3")
|
147
|
+
|
148
|
+
@@id([groupCode, roleId, privilegeId, systemId])
|
149
|
+
@@index([privilegeId], map: "privilegeId")
|
150
|
+
@@index([roleId], map: "roleId")
|
151
|
+
@@index([systemId], map: "sso_GroupRolePrivilege_SystemId_foreign_idx")
|
152
|
+
@@map("sso_grouproleprivilege")
|
153
|
+
}
|
154
|
+
|
155
|
+
model GroupSystemAccess {
|
156
|
+
systemId Int @map("SystemId")
|
157
|
+
groupCode String @db.VarChar(10) @map("GroupCode")
|
158
|
+
createdById Int @map("CreatedById")
|
159
|
+
createdAt DateTime @default(dbgenerated("('2022-06-29 01:16:41')")) @db.DateTime(0)
|
160
|
+
userGroup UserGroup @relation(fields: [groupCode], references: [groupCode], onDelete: Cascade, map: "sso_groupsystemaccess_ibfk_1")
|
161
|
+
|
162
|
+
@@id([systemId, groupCode])
|
163
|
+
@@index([groupCode], map: "groupCode")
|
164
|
+
@@map("sso_groupsystemaccess")
|
165
|
+
}
|
166
|
+
|
167
|
+
model GroupSystemPrivilege {
|
168
|
+
groupCode String @db.VarChar(10) @map("GroupCode")
|
169
|
+
privilegeId String @db.VarChar(30) @map("PrivilegeId")
|
170
|
+
createdById String @db.VarChar(30) @map("CreatedById")
|
171
|
+
createdAt DateTime @default(dbgenerated("('2022-06-29 01:16:40')")) @db.DateTime(0) @map("CreatedAt")
|
172
|
+
userGroup UserGroup @relation(fields: [groupCode], references: [groupCode], onDelete: Cascade, map: "sso_groupsystemprivilege_ibfk_1")
|
173
|
+
systemPrivilege SystemPrivilege @relation(fields: [privilegeId], references: [privilegeId], onDelete: Cascade, map: "sso_groupsystemprivilege_ibfk_2")
|
174
|
+
|
175
|
+
@@id([groupCode, privilegeId])
|
176
|
+
@@index([privilegeId], map: "privilegeId")
|
177
|
+
@@map("sso_groupsystemprivilege")
|
178
|
+
}
|
179
|
+
|
180
|
+
model GroupSystemRole {
|
181
|
+
roleId String @db.VarChar(30) @map("RoleId")
|
182
|
+
groupCode String @db.VarChar(10) @map("GroupCode")
|
183
|
+
createdById String @db.VarChar(30) @map("CreatedById")
|
184
|
+
createdAt DateTime @default(dbgenerated("('2022-06-29 01:16:39')")) @db.DateTime(0) @map("CreatedAt")
|
185
|
+
systemRole SystemRole @relation(fields: [roleId], references: [roleId], onUpdate: Restrict, map: "sso_groupsystemrole_ibfk_1")
|
186
|
+
userGroup UserGroup @relation(fields: [groupCode], references: [groupCode], onUpdate: Restrict, map: "sso_groupsystemrole_ibfk_2")
|
187
|
+
|
188
|
+
@@id([roleId, groupCode])
|
189
|
+
@@index([groupCode], map: "groupCode")
|
190
|
+
@@map("sso_groupsystemrole")
|
191
|
+
}
|
192
|
+
|
193
|
+
model OAuthToken {
|
194
|
+
id Int @id @default(autoincrement())
|
195
|
+
userId Int @map("user_id")
|
196
|
+
token String @db.Text
|
197
|
+
expiredAt DateTime @db.DateTime(0) @map("expired_at")
|
198
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
199
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
200
|
+
systemId Int @default(1) @map("system_id")
|
201
|
+
system System @relation(fields: [systemId], references: [id], onDelete: Cascade, map: "sso_oauth_tokens_system_id_foreign_idx")
|
202
|
+
|
203
|
+
@@index([systemId], map: "sso_oauth_tokens_system_id_foreign_idx")
|
204
|
+
@@map("sso_oauth_tokens")
|
205
|
+
}
|
206
|
+
|
207
|
+
model Roles {
|
208
|
+
id Int @id @default(autoincrement()) @db.UnsignedInt @map("ID")
|
209
|
+
name String @db.VarChar(255)
|
210
|
+
description String? @db.Text
|
211
|
+
defaultToOn Boolean @map("default_to_on")
|
212
|
+
parentId Int? @map("parent_id")
|
213
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
214
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
215
|
+
|
216
|
+
@@map("sso_roles")
|
217
|
+
}
|
218
|
+
|
219
|
+
model StaffTypes {
|
220
|
+
id Int @id @default(autoincrement())
|
221
|
+
name String @db.VarChar(20)
|
222
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
223
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
224
|
+
staffs Staff[]
|
225
|
+
|
226
|
+
@@map("sso_staff_types")
|
227
|
+
}
|
228
|
+
|
229
|
+
model Staff {
|
230
|
+
id Int @id @default(autoincrement())
|
231
|
+
staffId String @unique(map: "staff_id") @db.VarChar(10) @map("staff_id")
|
232
|
+
fullName String @db.VarChar(200) @map("full_name")
|
233
|
+
preferredName String @db.VarChar(200) @map("preferred_name")
|
234
|
+
email String @db.VarChar(200)
|
235
|
+
staffTypeId Int @map("staff_type_id")
|
236
|
+
jobTitle String @db.VarChar(100) @map("job_title")
|
237
|
+
carPlate String @default("") @db.VarChar(20) @map("car_plate")
|
238
|
+
mobile String? @db.VarChar(20)
|
239
|
+
floor String? @db.VarChar(15)
|
240
|
+
extension Int?
|
241
|
+
isCharge Boolean @default(false) @map("is_charge")
|
242
|
+
status String @db.VarChar(10)
|
243
|
+
userId Int @map("user_id")
|
244
|
+
buildingId Int @map("building_id")
|
245
|
+
departmentId Int @map("department_id")
|
246
|
+
companyId Int? @map("company_id")
|
247
|
+
createdById Int? @map("created_by_id")
|
248
|
+
updatedById Int? @map("updated_by_id")
|
249
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
250
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
251
|
+
image String? @db.VarChar(255)
|
252
|
+
IdNo String? @db.VarChar(20) @map("IdNo")
|
253
|
+
fullAddress String? @db.VarChar(1000) @map("FullAddress")
|
254
|
+
Building Building @relation(fields: [buildingId], references: [id], onUpdate: Restrict, map: "fk_staffs_building_id")
|
255
|
+
company Company? @relation(fields: [companyId], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_staffs_company_id")
|
256
|
+
createdBy User? @relation("sso_staffs_created_by_idTosso_users", fields: [createdById], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_staffs_created_by_id")
|
257
|
+
department Departement @relation(fields: [departmentId], references: [id], onUpdate: Restrict, map: "fk_staffs_department_id")
|
258
|
+
staffType StaffTypes @relation(fields: [staffTypeId], references: [id], onUpdate: Restrict, map: "fk_staffs_staff_type_id")
|
259
|
+
updatedBy User? @relation("sso_staffs_updated_by_idTosso_users", fields: [updatedById], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "fk_staffs_updated_by_id")
|
260
|
+
user User @relation("sso_staffs_user_idTosso_users", fields: [userId], references: [id], onUpdate: Restrict, map: "fk_staffs_user_id")
|
261
|
+
|
262
|
+
@@index([buildingId], map: "fk_staffs_building_id")
|
263
|
+
@@index([companyId], map: "fk_staffs_company_id")
|
264
|
+
@@index([createdById], map: "fk_staffs_created_by_id")
|
265
|
+
@@index([departmentId], map: "fk_staffs_department_id")
|
266
|
+
@@index([staffTypeId], map: "fk_staffs_staff_type_id")
|
267
|
+
@@index([updatedById], map: "fk_staffs_updated_by_id")
|
268
|
+
@@index([userId], map: "fk_staffs_user_id")
|
269
|
+
@@map("sso_staffs")
|
270
|
+
}
|
271
|
+
|
272
|
+
model States {
|
273
|
+
id Int @id @default(autoincrement())
|
274
|
+
name String @db.VarChar(50)
|
275
|
+
countryId Int? @map("country_id")
|
276
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
277
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
278
|
+
|
279
|
+
@@map("sso_states")
|
280
|
+
}
|
281
|
+
|
282
|
+
model SystemAccess {
|
283
|
+
userId Int @map("user_id")
|
284
|
+
systemId Int @map("system_id")
|
285
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
286
|
+
system System @relation(fields: [systemId], references: [id], onUpdate: Restrict, map: "fk_system_access_system")
|
287
|
+
user User @relation(fields: [userId], references: [id], onUpdate: Restrict, map: "fk_system_access_user")
|
288
|
+
|
289
|
+
@@id([userId, systemId])
|
290
|
+
@@index([systemId], map: "fk_system_access_system")
|
291
|
+
|
292
|
+
@@map("sso_system_access")
|
293
|
+
}
|
294
|
+
|
295
|
+
model SystemPrivilege {
|
296
|
+
privilegeId String @id @db.VarChar(30) @map("PrivilegeId")
|
297
|
+
systemId Int @map("SystemId")
|
298
|
+
code String @db.VarChar(200) @map("Code")
|
299
|
+
module String? @db.VarChar(200) @map("Module")
|
300
|
+
description String? @db.VarChar(3000) @map("Description")
|
301
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:19')")) @db.DateTime(0) @map("CreatedAt")
|
302
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:19')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
303
|
+
groupRolePrivileges GroupRolePrivilege[]
|
304
|
+
groupSystemPrivileges GroupSystemPrivilege[]
|
305
|
+
system System @relation(fields: [systemId], references: [id], onDelete: Cascade, map: "sso_systemprivilege_ibfk_1")
|
306
|
+
systemRolePrivileges SystemRolePrivilege[]
|
307
|
+
userSystemPrivileges UserSystemPrivilege[]
|
308
|
+
|
309
|
+
@@index([systemId], map: "systemId")
|
310
|
+
@@map("sso_systemprivilege")
|
311
|
+
}
|
312
|
+
|
313
|
+
model SystemRole {
|
314
|
+
roleId String @id @db.VarChar(30) @map("RoleId")
|
315
|
+
systemId Int @map("SystemId")
|
316
|
+
name String @db.VarChar(100) @map("Name")
|
317
|
+
description String? @db.VarChar(3000) @map("Description")
|
318
|
+
createdById Int @map("CreatedById")
|
319
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @db.DateTime(0) @map("CreatedAt")
|
320
|
+
updatedById Int @map("UpdatedById")
|
321
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
322
|
+
groupRolePrivileges GroupRolePrivilege[]
|
323
|
+
groupSystemRoles GroupSystemRole[]
|
324
|
+
system System @relation(fields: [systemId], references: [id], onDelete: Cascade, map: "sso_systemrole_ibfk_1")
|
325
|
+
systemRolePrivileges SystemRolePrivilege[]
|
326
|
+
userSystemRoles UserSystemRole[]
|
327
|
+
|
328
|
+
@@index([systemId], map: "systemId")
|
329
|
+
@@map("sso_systemrole")
|
330
|
+
}
|
331
|
+
|
332
|
+
model SystemRolePrivilege {
|
333
|
+
roleId String @db.VarChar(30) @map("RoleId")
|
334
|
+
privilegeId String @db.VarChar(30) @map("PrivilegeId")
|
335
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @db.DateTime(0) @map("CreatedAt")
|
336
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
337
|
+
systemRole SystemRole @relation(fields: [roleId], references: [roleId], onDelete: Cascade, map: "sso_systemroleprivilege_ibfk_1")
|
338
|
+
systemPrivilege SystemPrivilege @relation(fields: [privilegeId], references: [privilegeId], onDelete: Cascade, map: "sso_systemroleprivilege_ibfk_2")
|
339
|
+
|
340
|
+
@@id([roleId, privilegeId])
|
341
|
+
@@index([privilegeId], map: "privilegeId")
|
342
|
+
@@map("sso_systemroleprivilege")
|
343
|
+
}
|
344
|
+
|
345
|
+
model System {
|
346
|
+
id Int @id @default(autoincrement())
|
347
|
+
code String @unique(map: "code") @db.VarChar(10)
|
348
|
+
name String @db.VarChar(200)
|
349
|
+
description String @db.VarChar(500)
|
350
|
+
accessUrl String? @db.VarChar(2000) @map("access_url")
|
351
|
+
googlePlayUrl String? @db.VarChar(2000) @map("google_play_url")
|
352
|
+
appleStoreUrl String? @db.VarChar(2000) @map("apple_store_url")
|
353
|
+
apiKey String? @db.VarChar(255) @map("api_key")
|
354
|
+
logo String? @db.VarChar(255)
|
355
|
+
status String @db.VarChar(10)
|
356
|
+
visible Boolean @default(true)
|
357
|
+
createdAt DateTime @db.DateTime(0) @map("created_at")
|
358
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
359
|
+
apiSecret String? @db.VarChar(255) @map("api_secret")
|
360
|
+
updatedById Int? @map("updated_by_id")
|
361
|
+
createdById Int? @map("created_by_id")
|
362
|
+
groupRolePrivileges GroupRolePrivilege[]
|
363
|
+
oAuthTokens OAuthToken[]
|
364
|
+
systemAccesses SystemAccess[]
|
365
|
+
systemPrivileges SystemPrivilege[]
|
366
|
+
systemRoles SystemRole[]
|
367
|
+
userUserGroups UserUserGroup[]
|
368
|
+
|
369
|
+
@@map("sso_systems")
|
370
|
+
}
|
371
|
+
|
372
|
+
model UpdatedHistory {
|
373
|
+
historyId BigInt @id @default(autoincrement()) @map("HistoryId")
|
374
|
+
batchId String? @db.VarChar(30) @map("BatchId")
|
375
|
+
objectType String @db.VarChar(50) @map("ObjectType")
|
376
|
+
objectValue String @db.VarChar(50) @map("ObjectValue")
|
377
|
+
actionType sso_updated_history_ActionType @map("ActionType")
|
378
|
+
updatedFieldName String @db.VarChar(100) @map("UpdatedFieldName")
|
379
|
+
oldValue String? @db.VarChar(1000) @map("OldValue")
|
380
|
+
newValue String? @db.VarChar(1000) @map("NewValue")
|
381
|
+
updatedById Int
|
382
|
+
updatedAt DateTime @db.DateTime(0)
|
383
|
+
|
384
|
+
@@map("sso_updated_history")
|
385
|
+
}
|
386
|
+
|
387
|
+
model UserRoles {
|
388
|
+
userId Int @map("user_id")
|
389
|
+
roleId Int @map("role_id")
|
390
|
+
updatedById Int? @map("updated_by_id")
|
391
|
+
updatedAt DateTime @updatedAt @db.DateTime(0) @map("updated_at")
|
392
|
+
|
393
|
+
@@id([userId, roleId])
|
394
|
+
@@map("sso_user_roles")
|
395
|
+
}
|
396
|
+
|
397
|
+
model UserGroup {
|
398
|
+
groupCode String @id @db.VarChar(10) @map("GroupCode")
|
399
|
+
groupDescription String? @db.VarChar(100) @map("GroupDescription")
|
400
|
+
status sso_usergroup_Status? @map("Status")
|
401
|
+
personInCharge String? @db.VarChar(100) @map("PersonInCharge")
|
402
|
+
fullPath String? @db.VarChar(1000) @map("FullPath")
|
403
|
+
parentGroupCode String? @db.VarChar(10) @map("ParentGroupCode")
|
404
|
+
groupLevel Int @default(0) @map("GroupLevel")
|
405
|
+
groupType String? @db.VarChar(10) @map("GroupType")
|
406
|
+
allowInheritFromParentYN sso_YN? @default(N) @map("AllowInheritFromParentYN")
|
407
|
+
createdById String? @db.VarChar(30) @map("CreatedById")
|
408
|
+
createdAt DateTime? @default(dbgenerated("('2022-06-29 01:16:39')")) @db.DateTime(0) @map("CreatedAt")
|
409
|
+
updatedById String? @db.VarChar(30) @map("UpdatedById")
|
410
|
+
updatedAt DateTime? @default(dbgenerated("('2022-06-29 01:16:39')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
411
|
+
departmentId Int? @map("DepartmentId")
|
412
|
+
groupRolePrivileges GroupRolePrivilege[]
|
413
|
+
groupSystemAccesses GroupSystemAccess[]
|
414
|
+
groupSystemPrivileges GroupSystemPrivilege[]
|
415
|
+
groupSystemRoles GroupSystemRole[]
|
416
|
+
department Departement? @relation(fields: [departmentId], references: [id], onDelete: Restrict, onUpdate: Restrict, map: "sso_UserGroup_DepartmentId_foreign_idx")
|
417
|
+
users User[]
|
418
|
+
userUserGroups UserUserGroup[]
|
419
|
+
|
420
|
+
@@index([departmentId], map: "sso_UserGroup_DepartmentId_foreign_idx")
|
421
|
+
@@map("sso_usergroup")
|
422
|
+
}
|
423
|
+
|
424
|
+
model User {
|
425
|
+
id Int @id @default(autoincrement())
|
426
|
+
email String @unique(map: "email") @db.VarChar(255)
|
427
|
+
password String @db.VarChar(255)
|
428
|
+
status String? @db.VarChar(255)
|
429
|
+
default_password_changed Boolean? @default(false)
|
430
|
+
first_login_at DateTime? @db.DateTime(0)
|
431
|
+
created_at DateTime @db.DateTime(0)
|
432
|
+
updated_at DateTime @updatedAt @db.DateTime(0)
|
433
|
+
groupCode String? @db.VarChar(10) @map("GroupCode")
|
434
|
+
createdByDepartments Departement[] @relation("sso_departments_created_by_idTosso_users")
|
435
|
+
updatedByDepartments Departement[] @relation("sso_departments_updated_by_idTosso_users")
|
436
|
+
createdByStaff Staff[] @relation("sso_staffs_created_by_idTosso_users")
|
437
|
+
updatedByStaff Staff[] @relation("sso_staffs_updated_by_idTosso_users")
|
438
|
+
staffs Staff[] @relation("sso_staffs_user_idTosso_users")
|
439
|
+
systemAccesses SystemAccess[]
|
440
|
+
userGroup UserGroup? @relation(fields: [groupCode], references: [groupCode], onDelete: Restrict, onUpdate: Restrict, map: "sso_users_GroupCode_foreign_idx")
|
441
|
+
userSystemPrivileges UserSystemPrivilege[]
|
442
|
+
userSystemRoles UserSystemRole[]
|
443
|
+
userUserGroups UserUserGroup[]
|
444
|
+
|
445
|
+
@@index([groupCode], map: "sso_users_GroupCode_foreign_idx")
|
446
|
+
@@map("sso_users")
|
447
|
+
}
|
448
|
+
|
449
|
+
model UserSystemPrivilege {
|
450
|
+
userId Int @map("UserId")
|
451
|
+
privilegeId String @db.VarChar(30) @map("PrivilegeId")
|
452
|
+
isInheritedYN sso_YN @default(N) @map("IsInheritedYN")
|
453
|
+
isRevokedYN sso_YN @default(N) @map("IsRevokedYN")
|
454
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @db.DateTime(0) @map("CreatedAt")
|
455
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
456
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade, map: "sso_usersystemprivilege_ibfk_1")
|
457
|
+
systemPrivilege SystemPrivilege @relation(fields: [privilegeId], references: [privilegeId], onDelete: Cascade, map: "sso_usersystemprivilege_ibfk_2")
|
458
|
+
|
459
|
+
@@id([userId, privilegeId])
|
460
|
+
@@index([privilegeId], map: "privilegeId")
|
461
|
+
@@map("sso_usersystemprivilege")
|
462
|
+
}
|
463
|
+
|
464
|
+
model UserSystemRole {
|
465
|
+
userId Int @map("UserId")
|
466
|
+
roleId String @db.VarChar(30) @map("RoleId")
|
467
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @db.DateTime(0) @map("CreatedAt")
|
468
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
469
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade, map: "sso_usersystemrole_ibfk_1")
|
470
|
+
systemRole SystemRole @relation(fields: [roleId], references: [roleId], onDelete: Cascade, map: "sso_usersystemrole_ibfk_2")
|
471
|
+
|
472
|
+
@@id([userId, roleId])
|
473
|
+
@@index([roleId], map: "roleId")
|
474
|
+
@@map("sso_usersystemrole")
|
475
|
+
}
|
476
|
+
|
477
|
+
model UserUserGroup {
|
478
|
+
userId Int @map("UserId")
|
479
|
+
groupCode String @map("GroupCode")
|
480
|
+
systemId Int? @map("SystemId")
|
481
|
+
createdAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @db.DateTime(0) @map("CreatedAt")
|
482
|
+
updatedAt DateTime @default(dbgenerated("('2021-10-25 02:50:20')")) @updatedAt @db.DateTime(0) @map("UpdatedAt")
|
483
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade, map: "sso_UserUserGroup_ibfk_1")
|
484
|
+
system System? @relation(fields: [systemId], references: [id], onDelete: Cascade, map: "sso_UserUserGroup_ibfk_3")
|
485
|
+
userGroup UserGroup @relation(fields: [groupCode], references: [groupCode], onDelete: Cascade, map: "sso_UserUserGroup_ibfk_2")
|
486
|
+
|
487
|
+
@@id([userId, groupCode])
|
488
|
+
@@index([groupCode], map: "groupCode")
|
489
|
+
@@map("sso_UserUserGroup")
|
490
|
+
}
|
491
|
+
|
492
|
+
enum sso_usergroup_Status {
|
493
|
+
Active
|
494
|
+
Inactive
|
495
|
+
}
|
496
|
+
|
497
|
+
enum sso_updated_history_ActionType {
|
498
|
+
Add
|
499
|
+
Update
|
500
|
+
Delete
|
501
|
+
}
|
502
|
+
|
503
|
+
enum sso_YN {
|
504
|
+
Y
|
505
|
+
N
|
506
|
+
}
|
package/src/index.ts
ADDED
File without changes
|
package/tsconfig.json
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"module": "commonjs",
|
4
|
+
"declaration": true,
|
5
|
+
"removeComments": true,
|
6
|
+
"emitDecoratorMetadata": true,
|
7
|
+
"experimentalDecorators": true,
|
8
|
+
"allowSyntheticDefaultImports": true,
|
9
|
+
"moduleResolution": "node",
|
10
|
+
"target": "es6",
|
11
|
+
"sourceMap": true,
|
12
|
+
"outDir": "./dist",
|
13
|
+
"baseUrl": "./",
|
14
|
+
"incremental": true,
|
15
|
+
"skipLibCheck": true,
|
16
|
+
"strictNullChecks": false,
|
17
|
+
"noImplicitAny": false,
|
18
|
+
"strictBindCallApply": false,
|
19
|
+
"forceConsistentCasingInFileNames": false,
|
20
|
+
"noFallthroughCasesInSwitch": false,
|
21
|
+
}
|
22
|
+
}
|