@spytecgps/nova-orm 1.4.81 → 1.4.83

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.
@@ -3,44 +3,46 @@
3
3
  class updateSecurityUserViews1684483705000 {
4
4
  async up(queryRunner) {
5
5
  await queryRunner.query(`
6
- CREATE OR REPLACE VIEW \`user_authorized_device_security_view\` AS
6
+ CREATE OR REPLACE VIEW \`user_authorized_device_security_view_v2\` AS
7
7
  (
8
8
  SELECT
9
9
  d.clientId AS clientId,
10
10
  d.imei AS imei,
11
11
  usr.userId AS userId
12
- FROM userSecurityRole usr
12
+ FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
13
13
  JOIN device d
14
14
  ON d.clientId = usr.clientId
15
15
  WHERE usr.access = 'full'
16
16
  AND NOT EXISTS (
17
17
  SELECT 1
18
- FROM entityTag ut
19
- WHERE ut.userId = usr.userId
18
+ FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)
19
+ WHERE ut.clientId = usr.clientId
20
+ AND ut.userId = usr.userId
20
21
  AND ut.entityType = 'User'
21
22
  AND ut.isSecurityGroup = 1
22
23
  )
23
24
  )
24
- UNION
25
+ UNION ALL
25
26
  (
26
27
  SELECT
27
28
  d.clientId AS clientId,
28
29
  d.imei AS imei,
29
30
  usr.userId AS userId
30
- FROM entityTag ut
31
- JOIN entityTag rt
31
+ FROM entityTag ut
32
+ JOIN entityTag rt USE INDEX (ixEntityTagImeiIsSecurityGroupTagId)
32
33
  ON rt.tagId = ut.tagId
33
34
  AND rt.entityType = 'Device'
34
35
  AND rt.isSecurityGroup = 1
35
- JOIN device d
36
+ JOIN device d USE INDEX (ixDeviceImei)
36
37
  ON d.imei = rt.imei
37
- JOIN userSecurityRole usr
38
- ON usr.userId = ut.userId
39
- AND usr.clientId = d.clientId
38
+ JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
39
+ ON usr.clientId = d.clientId
40
+ AND usr.userId = ut.userId
40
41
  WHERE ut.entityType = 'User'
41
42
  AND ut.isSecurityGroup = 1
42
43
  )
43
- UNION (
44
+ UNION ALL
45
+ (
44
46
  SELECT
45
47
  uad.clientId AS clientId,
46
48
  uad.imei AS imei,
@@ -48,14 +50,14 @@ class updateSecurityUserViews1684483705000 {
48
50
  FROM userAuthorizedDevice uad
49
51
  WHERE NOT EXISTS (
50
52
  SELECT 1
51
- FROM userSecurityRole usr
53
+ FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
52
54
  WHERE usr.clientId = uad.clientId
53
55
  AND usr.userId = uad.userId
54
56
  AND usr.access = 'full'
55
57
  )
56
58
  AND NOT EXISTS (
57
59
  SELECT 1
58
- FROM entityTag ut
60
+ FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)
59
61
  WHERE ut.clientId = uad.clientId
60
62
  AND ut.userId = uad.userId
61
63
  AND ut.entityType = 'User'
@@ -64,44 +66,45 @@ class updateSecurityUserViews1684483705000 {
64
66
  );
65
67
  `);
66
68
  await queryRunner.query(`
67
- CREATE OR REPLACE VIEW \`user_authorized_boundary_security_view\` AS
69
+ CREATE OR REPLACE VIEW \`user_authorized_boundary_security_view_v2\` AS
68
70
  (
69
71
  SELECT
70
72
  b.clientId AS clientId,
71
73
  usr.userId AS userId,
72
74
  b.id AS boundaryId
73
- FROM userSecurityRole usr
75
+ FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
74
76
  JOIN boundary b
75
77
  ON b.clientId = usr.clientId
76
78
  WHERE usr.boundariesAccess = 'full'
77
79
  AND NOT EXISTS (
78
80
  SELECT 1
79
- FROM entityTag ut
80
- WHERE ut.userId = usr.userId
81
+ FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)
82
+ WHERE ut.clientId = usr.clientId
83
+ AND ut.userId = usr.userId
81
84
  AND ut.entityType = 'User'
82
85
  AND ut.isSecurityGroup = 1
83
86
  )
84
87
  )
85
- UNION
88
+ UNION ALL
86
89
  (
87
90
  SELECT
88
91
  b.clientId AS clientId,
89
92
  usr.userId AS userId,
90
93
  b.id AS boundaryId
91
94
  FROM entityTag ut
92
- JOIN entityTag rt
95
+ JOIN entityTag rt USE INDEX (ixEntityTagImeiIsSecurityGroupTagId)
93
96
  ON rt.tagId = ut.tagId
94
97
  AND rt.entityType = 'Boundary'
95
98
  AND rt.isSecurityGroup = 1
96
99
  JOIN boundary b
97
100
  ON b.id = rt.entityId
98
- JOIN userSecurityRole usr
101
+ JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
99
102
  ON usr.userId = ut.userId
100
103
  AND usr.clientId = b.clientId
101
104
  WHERE ut.entityType = 'User'
102
105
  AND ut.isSecurityGroup = 1
103
106
  )
104
- UNION
107
+ UNION ALL
105
108
  (
106
109
  SELECT
107
110
  uab.clientId AS clientId,
@@ -110,14 +113,14 @@ class updateSecurityUserViews1684483705000 {
110
113
  FROM userAuthorizedBoundary uab
111
114
  WHERE NOT EXISTS (
112
115
  SELECT 1
113
- FROM userSecurityRole usr
116
+ FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)
114
117
  WHERE usr.clientId = uab.clientId
115
118
  AND usr.userId = uab.userId
116
119
  AND usr.boundariesAccess = 'full'
117
120
  )
118
121
  AND NOT EXISTS (
119
122
  SELECT 1
120
- FROM entityTag ut
123
+ FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)
121
124
  WHERE ut.clientId = uab.clientId
122
125
  AND ut.userId = uab.userId
123
126
  AND ut.entityType = 'User'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.4.81",
3
+ "version": "1.4.83",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",