@balena/pinejs 15.0.0-delete-state-default-user-permissions-981931563dc47b2a8b873bc787d7dacfcc6c52e3 → 15.0.0-deprecate-node12-8a99d72ae66d7708293afc56c5d7eb19b39081cd
Sign up to get free protection for your applications and to get access to all the features.
- package/.resinci.yml +0 -1
- package/.versionbot/CHANGELOG.yml +226 -8
- package/CHANGELOG.md +85 -1
- package/out/bin/utils.js +1 -1
- package/out/bin/utils.js.map +1 -1
- package/out/config-loader/config-loader.d.ts +3 -5
- package/out/config-loader/config-loader.js +35 -31
- package/out/config-loader/config-loader.js.map +1 -1
- package/out/data-server/sbvr-server.js +8 -8
- package/out/data-server/sbvr-server.js.map +1 -1
- package/out/database-layer/db.d.ts +1 -1
- package/out/database-layer/db.js +3 -3
- package/out/database-layer/db.js.map +1 -1
- package/out/express-emulator/express.js +1 -1
- package/out/express-emulator/express.js.map +1 -1
- package/out/http-transactions/transactions.js +4 -4
- package/out/http-transactions/transactions.js.map +1 -1
- package/out/migrator/sync.d.ts +9 -0
- package/out/migrator/sync.js +121 -0
- package/out/migrator/sync.js.map +1 -0
- package/out/migrator/utils.d.ts +28 -0
- package/out/migrator/utils.js +104 -0
- package/out/migrator/utils.js.map +1 -0
- package/out/odata-metadata/odata-metadata-generator.js +6 -9
- package/out/odata-metadata/odata-metadata-generator.js.map +1 -1
- package/out/passport-pinejs/passport-pinejs.js +4 -3
- package/out/passport-pinejs/passport-pinejs.js.map +1 -1
- package/out/pinejs-session-store/pinejs-session-store.js +1 -1
- package/out/pinejs-session-store/pinejs-session-store.js.map +1 -1
- package/out/sbvr-api/abstract-sql.d.ts +1 -1
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/control-flow.js.map +1 -1
- package/out/sbvr-api/hooks.d.ts +6 -3
- package/out/sbvr-api/hooks.js +3 -3
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/odata-response.js +5 -5
- package/out/sbvr-api/odata-response.js.map +1 -1
- package/out/sbvr-api/permissions.js +25 -20
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +4 -3
- package/out/sbvr-api/sbvr-utils.js +71 -48
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/uri-parser.d.ts +13 -11
- package/out/sbvr-api/uri-parser.js +4 -4
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/out/server-glue/module.d.ts +2 -2
- package/out/server-glue/module.js +2 -1
- package/out/server-glue/module.js.map +1 -1
- package/package.json +19 -19
- package/src/bin/utils.ts +1 -1
- package/src/config-loader/config-loader.ts +69 -44
- package/src/data-server/sbvr-server.js +8 -8
- package/src/database-layer/db.ts +11 -11
- package/src/express-emulator/express.js +1 -1
- package/src/http-transactions/transactions.js +4 -4
- package/src/migrator/sync.ts +169 -0
- package/src/migrator/utils.ts +154 -0
- package/src/odata-metadata/odata-metadata-generator.ts +8 -11
- package/src/passport-pinejs/passport-pinejs.ts +3 -2
- package/src/sbvr-api/abstract-sql.ts +6 -3
- package/src/sbvr-api/control-flow.ts +2 -2
- package/src/sbvr-api/hooks.ts +18 -8
- package/src/sbvr-api/odata-response.ts +4 -4
- package/src/sbvr-api/permissions.ts +42 -36
- package/src/sbvr-api/sbvr-utils.ts +121 -58
- package/src/sbvr-api/uri-parser.ts +29 -21
- package/src/server-glue/module.ts +4 -3
- package/tsconfig.json +1 -3
- package/typings/lf-to-abstract-sql.d.ts +6 -9
- package/out/migrator/migrator.d.ts +0 -17
- package/out/migrator/migrator.js +0 -185
- package/out/migrator/migrator.js.map +0 -1
- package/src/migrator/migrator.ts +0 -278
package/.resinci.yml
CHANGED
@@ -1,19 +1,237 @@
|
|
1
1
|
- commits:
|
2
|
-
- subject:
|
3
|
-
hash:
|
4
|
-
body:
|
2
|
+
- subject: Deprecate node 12
|
3
|
+
hash: 8a99d72ae66d7708293afc56c5d7eb19b39081cd
|
4
|
+
body: |
|
5
|
+
node 12 is EOL version
|
5
6
|
footer:
|
6
7
|
Change-type: major
|
7
8
|
change-type: major
|
8
|
-
|
9
|
-
|
9
|
+
Signed-off-by: Harald Fischer <harald@balena.io>
|
10
|
+
signed-off-by: Harald Fischer <harald@balena.io>
|
11
|
+
author: Harald Fischer
|
12
|
+
nested: []
|
13
|
+
- subject: Differentiate typings between parsed and processed odata requests
|
14
|
+
hash: af632f0cc0968b25d9acebca0d83bf22f84f617f
|
15
|
+
body: |
|
16
|
+
This allows us to make properties on the process odata request required
|
17
|
+
whereas previously they had to be optional in order to be compatible,
|
18
|
+
as of now this only affects the `engine` property but in future further
|
19
|
+
properties of the processed request could be made required. And even at
|
20
|
+
this point it will block passing a parsed only request object to a
|
21
|
+
function expecting a processed request object
|
22
|
+
footer:
|
23
|
+
Change-type: patch
|
24
|
+
change-type: patch
|
25
|
+
author: Pagan Gazzard
|
26
|
+
nested: []
|
27
|
+
version: 15.0.0
|
28
|
+
title: "'Deprecate node 12'"
|
29
|
+
date: 2022-08-02T12:27:59.494Z
|
30
|
+
- commits:
|
31
|
+
- subject: Refactur checkModelExists to isModelNew
|
32
|
+
hash: 28725993f36edb2f372145addb3841b9a899d880
|
33
|
+
body: >
|
34
|
+
Modules may need to know if a model existed before initialisation of the
|
35
|
+
instance.
|
36
|
+
|
37
|
+
Eg. migrations need to know if a model is freshly generated / executed
|
38
|
+
|
39
|
+
of if this model already existed and can be target for migrations.
|
40
|
+
footer:
|
41
|
+
Change-type: minor
|
42
|
+
change-type: minor
|
43
|
+
Signed-off-by: Harald Fischer <harald@balena.io>
|
44
|
+
signed-off-by: Harald Fischer <harald@balena.io>
|
45
|
+
author: Harald Fischer
|
46
|
+
nested: []
|
47
|
+
version: 14.48.0
|
48
|
+
title: "'Refactor checkModelExists to isModelNew'"
|
49
|
+
date: 2022-07-26T17:59:52.601Z
|
50
|
+
- commits:
|
51
|
+
- subject: Fix synonyms iteration
|
52
|
+
hash: a13857c71696aff92e01d5beab88f19470f57f08
|
53
|
+
body: ""
|
54
|
+
footer:
|
55
|
+
Change-type: patch
|
56
|
+
change-type: patch
|
57
|
+
author: Pagan Gazzard
|
58
|
+
nested: []
|
59
|
+
version: 14.47.6
|
60
|
+
title: "'Fix synonyms iteration'"
|
61
|
+
date: 2022-07-26T15:21:52.695Z
|
62
|
+
- commits:
|
63
|
+
- subject: Prefer for..of over forEach
|
64
|
+
hash: 71449d9e0eccc52209e8639f3146d0a672408000
|
65
|
+
body: ""
|
66
|
+
footer:
|
67
|
+
Change-type: patch
|
68
|
+
change-type: patch
|
69
|
+
author: Pagan Gazzard
|
70
|
+
nested: []
|
71
|
+
version: 14.47.5
|
72
|
+
title: "'Prefer for..of over forEach'"
|
73
|
+
date: 2022-07-26T14:28:43.972Z
|
74
|
+
- commits:
|
75
|
+
- subject: Convert lodash flatMap/flatten to native versions
|
76
|
+
hash: 84d66b7adad29cafdfe80fcdc62d396c7ff5640e
|
77
|
+
body: ""
|
78
|
+
footer:
|
79
|
+
Change-type: patch
|
80
|
+
change-type: patch
|
81
|
+
author: Pagan Gazzard
|
82
|
+
nested: []
|
83
|
+
version: 14.47.4
|
84
|
+
title: "'Convert lodash flatMap/flatten to native versions'"
|
85
|
+
date: 2022-07-25T14:28:40.196Z
|
86
|
+
- commits:
|
87
|
+
- subject: Convert lodash `isObject` usage to native versions
|
88
|
+
hash: 878e484788dc9f74d7c8d88b136694943e6ae592
|
89
|
+
body: ""
|
90
|
+
footer:
|
91
|
+
Change-type: patch
|
92
|
+
change-type: patch
|
93
|
+
author: Pagan Gazzard
|
94
|
+
nested: []
|
95
|
+
version: 14.47.3
|
96
|
+
title: "'Convert lodash usage to native versions'"
|
97
|
+
date: 2022-07-25T12:55:28.636Z
|
98
|
+
- commits:
|
99
|
+
- subject: Narrow the scope of the permissions bypass for root permissions
|
100
|
+
hash: 5b25906b444af997d0cae532d60866479b077c0d
|
101
|
+
body: |
|
102
|
+
This changes the bypass to only occur before guest permissions are
|
103
|
+
initialized, only when specifically using `root` or `rootRead`
|
104
|
+
permissions, and also now constrains the model to the specific
|
105
|
+
permissions passed in rather than bypassing permissions altogether
|
106
|
+
for the root cases
|
107
|
+
footer:
|
108
|
+
Change-type: patch
|
109
|
+
change-type: patch
|
110
|
+
author: Pagan Gazzard
|
111
|
+
nested: []
|
112
|
+
version: 14.47.2
|
113
|
+
title: "'Narrow the scope of the permissions bypass for root permissions'"
|
114
|
+
date: 2022-07-21T14:18:44.358Z
|
115
|
+
- commits:
|
116
|
+
- subject: Increase strictness of typings
|
117
|
+
hash: b375427a135f9194cc1fbe93afe9e1b627173a52
|
118
|
+
body: ""
|
119
|
+
footer:
|
120
|
+
Change-type: patch
|
121
|
+
change-type: patch
|
122
|
+
author: Pagan Gazzard
|
123
|
+
nested: []
|
124
|
+
version: 14.47.1
|
125
|
+
title: "'Increase strictness of typings'"
|
126
|
+
date: 2022-07-21T13:24:04.688Z
|
127
|
+
- commits:
|
128
|
+
- subject: Allow PRERESPOND hooks to modify the response
|
129
|
+
hash: 5281c05f32f80133dc2016eb8f7903b76bbba272
|
130
|
+
body: ""
|
131
|
+
footer:
|
132
|
+
Change-type: minor
|
133
|
+
change-type: minor
|
134
|
+
author: Pagan Gazzard
|
135
|
+
nested: []
|
136
|
+
version: 14.47.0
|
137
|
+
title: "'Allow PRERESPOND hooks to modify the response'"
|
138
|
+
date: 2022-07-14T16:01:21.648Z
|
139
|
+
- commits:
|
140
|
+
- subject: Update @balena/odata-to-abstract-sql to 5.4.12
|
141
|
+
hash: 2e7f668d79b8d0120d9b63c49521bdf3afd83a2f
|
142
|
+
body: |
|
143
|
+
Update @balena/odata-to-abstract-sql from 5.4.11 to 5.4.12
|
144
|
+
footer:
|
145
|
+
Change-type: patch
|
146
|
+
change-type: patch
|
10
147
|
Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
|
11
148
|
signed-off-by: Thodoris Greasidis <thodoris@balena.io>
|
12
149
|
author: Thodoris Greasidis
|
150
|
+
nested:
|
151
|
+
- commits:
|
152
|
+
- subject: Use nullish coalescing when sensible
|
153
|
+
hash: c69dff4d46792c4c858f869646adca9272210364
|
154
|
+
body: ""
|
155
|
+
footer:
|
156
|
+
Change-type: patch
|
157
|
+
change-type: patch
|
158
|
+
author: Pagan Gazzard
|
159
|
+
nested: []
|
160
|
+
version: odata-to-abstract-sql-5.4.12
|
161
|
+
title: "'Use nullish coalescing when sensible'"
|
162
|
+
date: 2022-06-03T15:45:18.251Z
|
163
|
+
version: 14.46.1
|
164
|
+
title: "'Update @balena/odata-to-abstract-sql to 5.4.12'"
|
165
|
+
date: 2022-07-08T15:16:38.671Z
|
166
|
+
- commits:
|
167
|
+
- subject: Fix for passport.js update 0.6.0
|
168
|
+
hash: c26d33dd13e4139b970e5bd594982786a1c56cea
|
169
|
+
body: |
|
170
|
+
passport.js 0.6.0 introduces a mandatory callback done function.
|
171
|
+
Updated logout argument which should remain backwards compatible
|
172
|
+
footer:
|
173
|
+
Change-type: minor
|
174
|
+
change-type: minor
|
175
|
+
Signed-off-by: Harald Fischer <harald@balena.io>
|
176
|
+
signed-off-by: Harald Fischer <harald@balena.io>
|
177
|
+
author: Harald Fischer
|
13
178
|
nested: []
|
14
|
-
version:
|
15
|
-
title: "'
|
16
|
-
date: 2022-06-
|
179
|
+
version: 14.46.0
|
180
|
+
title: "'Fix for passport.js update 0.6.0'"
|
181
|
+
date: 2022-06-21T23:27:28.468Z
|
182
|
+
- commits:
|
183
|
+
- subject: Update dependencies
|
184
|
+
hash: fb47772d628789b77288e7e0e90f3740f6cd27d8
|
185
|
+
body: |
|
186
|
+
Update @balena/odata-parser from 2.2.9 to 2.3.0
|
187
|
+
Update @balena/odata-to-abstract-sql from 5.4.11 to 5.4.12
|
188
|
+
footer:
|
189
|
+
Change-type: patch
|
190
|
+
change-type: patch
|
191
|
+
author: Pagan Gazzard
|
192
|
+
nested:
|
193
|
+
- commits:
|
194
|
+
- subject: Add source map
|
195
|
+
hash: a6bb5e67fac1cdcc69491800ad042f003fa13556
|
196
|
+
body: ""
|
197
|
+
footer:
|
198
|
+
Change-type: minor
|
199
|
+
change-type: minor
|
200
|
+
author: Pagan Gazzard
|
201
|
+
version: odata-parser-2.3.0
|
202
|
+
title: "'Add source map'"
|
203
|
+
date: 2022-06-06T15:59:20.389Z
|
204
|
+
- commits:
|
205
|
+
- subject: Use nullish coalescing when sensible
|
206
|
+
hash: c69dff4d46792c4c858f869646adca9272210364
|
207
|
+
body: ""
|
208
|
+
footer:
|
209
|
+
Change-type: patch
|
210
|
+
change-type: patch
|
211
|
+
author: Pagan Gazzard
|
212
|
+
nested: []
|
213
|
+
version: odata-to-abstract-sql-5.4.12
|
214
|
+
title: "'Use nullish coalescing when sensible'"
|
215
|
+
date: 2022-06-03T15:45:18.251Z
|
216
|
+
version: 14.45.1
|
217
|
+
title: "'Update dependencies'"
|
218
|
+
date: 2022-06-08T08:16:26.230Z
|
219
|
+
- commits:
|
220
|
+
- subject: Generalisation and decouple migrator functions. Prepare for migration
|
221
|
+
categories.
|
222
|
+
hash: 0184e6119088170f6990996a3afcfbd78a2497fc
|
223
|
+
body: |
|
224
|
+
Add basic test for sync migrator
|
225
|
+
footer:
|
226
|
+
Change-type: minor
|
227
|
+
change-type: minor
|
228
|
+
Signed-off-by: Harald Fischer <harald@balena.io>
|
229
|
+
signed-off-by: Harald Fischer <harald@balena.io>
|
230
|
+
author: Harald Fischer
|
231
|
+
nested: []
|
232
|
+
version: 14.45.0
|
233
|
+
title: "'Generalisation of migrator'"
|
234
|
+
date: 2022-06-03T17:08:40.433Z
|
17
235
|
- commits:
|
18
236
|
- subject: "permissions: Add optional transaction param to user & api key methods"
|
19
237
|
hash: 42253a2928a8cb7c4356bec3960bb4555321f859
|
package/CHANGELOG.md
CHANGED
@@ -5,9 +5,93 @@ automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
7
|
# v15.0.0
|
8
|
+
## (2022-08-02)
|
9
|
+
|
10
|
+
* Deprecate node 12 [Harald Fischer]
|
11
|
+
* Differentiate typings between parsed and processed odata requests [Pagan Gazzard]
|
12
|
+
|
13
|
+
# v14.48.0
|
14
|
+
## (2022-07-26)
|
15
|
+
|
16
|
+
* Refactur checkModelExists to isModelNew [Harald Fischer]
|
17
|
+
|
18
|
+
# v14.47.6
|
19
|
+
## (2022-07-26)
|
20
|
+
|
21
|
+
* Fix synonyms iteration [Pagan Gazzard]
|
22
|
+
|
23
|
+
# v14.47.5
|
24
|
+
## (2022-07-26)
|
25
|
+
|
26
|
+
* Prefer for..of over forEach [Pagan Gazzard]
|
27
|
+
|
28
|
+
# v14.47.4
|
29
|
+
## (2022-07-25)
|
30
|
+
|
31
|
+
* Convert lodash flatMap/flatten to native versions [Pagan Gazzard]
|
32
|
+
|
33
|
+
# v14.47.3
|
34
|
+
## (2022-07-25)
|
35
|
+
|
36
|
+
* Convert lodash `isObject` usage to native versions [Pagan Gazzard]
|
37
|
+
|
38
|
+
# v14.47.2
|
39
|
+
## (2022-07-21)
|
40
|
+
|
41
|
+
* Narrow the scope of the permissions bypass for root permissions [Pagan Gazzard]
|
42
|
+
|
43
|
+
# v14.47.1
|
44
|
+
## (2022-07-21)
|
45
|
+
|
46
|
+
* Increase strictness of typings [Pagan Gazzard]
|
47
|
+
|
48
|
+
# v14.47.0
|
49
|
+
## (2022-07-14)
|
50
|
+
|
51
|
+
* Allow PRERESPOND hooks to modify the response [Pagan Gazzard]
|
52
|
+
|
53
|
+
# v14.46.1
|
54
|
+
## (2022-07-08)
|
55
|
+
|
56
|
+
|
57
|
+
<details>
|
58
|
+
<summary> Update @balena/odata-to-abstract-sql to 5.4.12 [Thodoris Greasidis] </summary>
|
59
|
+
|
60
|
+
> ## odata-to-abstract-sql-5.4.12
|
61
|
+
> ### (2022-06-03)
|
62
|
+
>
|
63
|
+
> * Use nullish coalescing when sensible [Pagan Gazzard]
|
64
|
+
>
|
65
|
+
</details>
|
66
|
+
|
67
|
+
# v14.46.0
|
68
|
+
## (2022-06-21)
|
69
|
+
|
70
|
+
* Fix for passport.js update 0.6.0 [Harald Fischer]
|
71
|
+
|
72
|
+
# v14.45.1
|
73
|
+
## (2022-06-08)
|
74
|
+
|
75
|
+
|
76
|
+
<details>
|
77
|
+
<summary> Update dependencies [Pagan Gazzard] </summary>
|
78
|
+
|
79
|
+
> ## odata-parser-2.3.0
|
80
|
+
> ### (2022-06-06)
|
81
|
+
>
|
82
|
+
> * Add source map [Pagan Gazzard]
|
83
|
+
>
|
84
|
+
> ## odata-to-abstract-sql-5.4.12
|
85
|
+
> ### (2022-06-03)
|
86
|
+
>
|
87
|
+
> * Use nullish coalescing when sensible [Pagan Gazzard]
|
88
|
+
>
|
89
|
+
</details>
|
90
|
+
|
91
|
+
# v14.45.0
|
8
92
|
## (2022-06-03)
|
9
93
|
|
10
|
-
*
|
94
|
+
* Generalisation and decouple migrator functions. Prepare for migration categories. [Harald Fischer]
|
11
95
|
|
12
96
|
# v14.44.0
|
13
97
|
## (2022-05-30)
|
package/out/bin/utils.js
CHANGED
package/out/bin/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":";;;AAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS,GAAG,qBAAqB,CAAC;AAOpE,yBAAyB;AACzB,6BAA6B;AAC7B,sCAAoC;AAGrB,eAAO,GAAK,IAAI,CAAC,KAAK,CACpC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAC9D,SAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,UAAmB,EAAQ,EAAE;IACrE,IAAI,UAAU,EAAE;QACf,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KACrC;SAAM;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACpB;AACF,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB;AAEK,MAAM,aAAa,GAAG,CAC5B,QAAkB,EAClB,UAAmB,EACZ,EAAE;IACT,MAAM,MAAM,GAAG;;;;;EAKd,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;EAMlC,QAAQ,CAAC,KAAK;SACd,GAAG,CACH,CAAC,IAAI,EAAE,EAAE,CAAC;KACP,IAAI,CAAC,iBAAiB;EACzB,IAAI,CAAC,GAAG,EAAE,CACV;SACA,IAAI,CAAC,MAAM,CAAC;CACb,CAAC;IACD,IAAA,gBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9B,CAAC,CAAC;AAxBW,QAAA,aAAa,iBAwBxB;AAEK,MAAM,2BAA2B,GAAG,CAC1C,SAAiB,EACE,EAAE;IACrB,IAAI,YAAwD,CAAC;IAC7D,IAAI;QACH,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;KAChD;IAAC,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bin/utils.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import type * as Express from 'express';
|
2
2
|
import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
|
3
3
|
import type { Database } from '../database-layer/db';
|
4
|
-
import type { Migration } from '../migrator/migrator';
|
5
4
|
import type { Resolvable } from '../sbvr-api/common-types';
|
5
|
+
import { Migrations } from '../migrator/utils';
|
6
6
|
import * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
7
7
|
export declare type SetupFunction = (app: Express.Application, sbvrUtilsInstance: typeof sbvrUtils, db: Database) => Resolvable<void>;
|
8
8
|
export interface Model {
|
@@ -12,9 +12,7 @@ export interface Model {
|
|
12
12
|
modelText?: string;
|
13
13
|
abstractSql?: AbstractSqlModel;
|
14
14
|
migrationsPath?: string;
|
15
|
-
migrations?:
|
16
|
-
[index: string]: Migration;
|
17
|
-
};
|
15
|
+
migrations?: Migrations;
|
18
16
|
initSqlPath?: string;
|
19
17
|
initSql?: string;
|
20
18
|
customServerCode?: string | {
|
@@ -27,7 +25,7 @@ export interface Model {
|
|
27
25
|
export interface User {
|
28
26
|
username: string;
|
29
27
|
password: string;
|
30
|
-
permissions
|
28
|
+
permissions?: string[];
|
31
29
|
}
|
32
30
|
export interface Config {
|
33
31
|
models: Model[];
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.setup = void 0;
|
4
|
+
const utils_1 = require("../migrator/utils");
|
4
5
|
const fs = require("fs");
|
5
6
|
const _ = require("lodash");
|
6
7
|
const path = require("path");
|
@@ -35,6 +36,7 @@ const getOrCreatePermission = async (authApiTx, permissionName) => {
|
|
35
36
|
};
|
36
37
|
const setup = (app) => {
|
37
38
|
const loadConfig = (data) => sbvrUtils.db.transaction(async (tx) => {
|
39
|
+
var _a;
|
38
40
|
const authApiTx = sbvrUtils.api.Auth.clone({
|
39
41
|
passthrough: {
|
40
42
|
tx,
|
@@ -44,17 +46,14 @@ const setup = (app) => {
|
|
44
46
|
const { users } = data;
|
45
47
|
if (users != null) {
|
46
48
|
const permissionsCache = {};
|
47
|
-
|
49
|
+
for (const user of users) {
|
48
50
|
if (user.permissions == null) {
|
49
|
-
|
51
|
+
continue;
|
50
52
|
}
|
51
|
-
user.permissions
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
permissionsCache[permissionName] = getOrCreatePermission(authApiTx, permissionName);
|
56
|
-
});
|
57
|
-
});
|
53
|
+
for (const permissionName of user.permissions) {
|
54
|
+
(_a = permissionsCache[permissionName]) !== null && _a !== void 0 ? _a : (permissionsCache[permissionName] = getOrCreatePermission(authApiTx, permissionName));
|
55
|
+
}
|
56
|
+
}
|
58
57
|
await Promise.all(users.map(async (user) => {
|
59
58
|
try {
|
60
59
|
const userID = await getOrCreate(authApiTx, 'user', {
|
@@ -63,29 +62,13 @@ const setup = (app) => {
|
|
63
62
|
password: user.password,
|
64
63
|
});
|
65
64
|
if (user.permissions != null) {
|
66
|
-
|
65
|
+
await Promise.all(user.permissions.map(async (permissionName) => {
|
67
66
|
const permissionID = await permissionsCache[permissionName];
|
68
67
|
await getOrCreate(authApiTx, 'user__has__permission', {
|
69
68
|
user: userID,
|
70
69
|
permission: permissionID,
|
71
70
|
});
|
72
|
-
return permissionID;
|
73
71
|
}));
|
74
|
-
await authApiTx.delete({
|
75
|
-
resource: 'user__has__permission',
|
76
|
-
options: {
|
77
|
-
$filter: {
|
78
|
-
user: userID,
|
79
|
-
...(permissionIds.length > 0 && {
|
80
|
-
$not: {
|
81
|
-
permission: {
|
82
|
-
$in: permissionIds,
|
83
|
-
},
|
84
|
-
},
|
85
|
-
}),
|
86
|
-
},
|
87
|
-
},
|
88
|
-
});
|
89
72
|
}
|
90
73
|
}
|
91
74
|
catch (e) {
|
@@ -124,7 +107,7 @@ const setup = (app) => {
|
|
124
107
|
throw e;
|
125
108
|
}
|
126
109
|
}
|
127
|
-
else if (
|
110
|
+
else if (typeof model.customServerCode === 'object') {
|
128
111
|
customCode = model.customServerCode.setup;
|
129
112
|
}
|
130
113
|
else {
|
@@ -154,7 +137,7 @@ const setup = (app) => {
|
|
154
137
|
root = path.dirname(config);
|
155
138
|
configObj = await loadConfigFile(config);
|
156
139
|
}
|
157
|
-
else if (
|
140
|
+
else if (typeof config === 'object') {
|
158
141
|
root = process.cwd();
|
159
142
|
configObj = config;
|
160
143
|
}
|
@@ -182,15 +165,36 @@ const setup = (app) => {
|
|
182
165
|
const fileNames = await fs.promises.readdir(migrationsPath);
|
183
166
|
await Promise.all(fileNames.map(async (filename) => {
|
184
167
|
const filePath = path.join(migrationsPath, filename);
|
168
|
+
const fileNameParts = filename.split('.', 3);
|
169
|
+
const fileExtension = path.extname(filename);
|
185
170
|
const [migrationKey] = filename.split('-', 1);
|
186
|
-
|
171
|
+
let migrationCategory = utils_1.defaultMigrationCategory;
|
172
|
+
if (fileNameParts.length === 3) {
|
173
|
+
if (fileNameParts[1] in utils_1.MigrationCategories) {
|
174
|
+
migrationCategory = fileNameParts[1];
|
175
|
+
}
|
176
|
+
else {
|
177
|
+
console.error(`Unrecognised migration file category ${fileNameParts[1]}, skipping: ${path.extname(filename)}`);
|
178
|
+
return;
|
179
|
+
}
|
180
|
+
}
|
181
|
+
const assignMigrationWithCategory = (newMigrationKey, newMigration) => {
|
182
|
+
const catMigrations = migrations[migrationCategory] || {};
|
183
|
+
if (typeof catMigrations === 'object') {
|
184
|
+
migrations[migrationCategory] = {
|
185
|
+
[newMigrationKey]: newMigration,
|
186
|
+
...catMigrations,
|
187
|
+
};
|
188
|
+
}
|
189
|
+
};
|
190
|
+
switch (fileExtension) {
|
187
191
|
case '.coffee':
|
188
192
|
case '.ts':
|
189
193
|
case '.js':
|
190
|
-
|
194
|
+
assignMigrationWithCategory(migrationKey, nodeRequire(filePath));
|
191
195
|
break;
|
192
196
|
case '.sql':
|
193
|
-
|
197
|
+
assignMigrationWithCategory(migrationKey, await fs.promises.readFile(filePath, 'utf8'));
|
194
198
|
break;
|
195
199
|
default:
|
196
200
|
console.error(`Unrecognised migration file extension, skipping: ${path.extname(filename)}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":"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"}
|
@@ -228,7 +228,7 @@ export async function setup(app, sbvrUtils, db) {
|
|
228
228
|
await setupModels(tx);
|
229
229
|
});
|
230
230
|
res.status(200).end();
|
231
|
-
} catch (err) {
|
231
|
+
} catch (/** @type any */ err) {
|
232
232
|
console.error('Error clearing db', err, err.stack);
|
233
233
|
res.status(503).end();
|
234
234
|
}
|
@@ -255,7 +255,7 @@ export async function setup(app, sbvrUtils, db) {
|
|
255
255
|
}
|
256
256
|
});
|
257
257
|
res.status(200).end();
|
258
|
-
} catch (err) {
|
258
|
+
} catch (/** @type any */ err) {
|
259
259
|
console.error('Error importing db', err, err.stack);
|
260
260
|
res.status(404).end();
|
261
261
|
}
|
@@ -278,11 +278,11 @@ export async function setup(app, sbvrUtils, db) {
|
|
278
278
|
'SELECT * FROM "' + tableName + '";',
|
279
279
|
);
|
280
280
|
let insQuery = '';
|
281
|
-
result.rows
|
281
|
+
for (const currRow of result.rows) {
|
282
282
|
let notFirst = false;
|
283
283
|
insQuery += 'INSERT INTO "' + tableName + '" (';
|
284
284
|
let valQuery = '';
|
285
|
-
for (
|
285
|
+
for (const propName of Object.keys(currRow)) {
|
286
286
|
if (notFirst) {
|
287
287
|
insQuery += ',';
|
288
288
|
valQuery += ',';
|
@@ -293,13 +293,13 @@ export async function setup(app, sbvrUtils, db) {
|
|
293
293
|
valQuery += "'" + currRow[propName] + "'";
|
294
294
|
}
|
295
295
|
insQuery += ') values (' + valQuery + ');\n';
|
296
|
-
}
|
296
|
+
}
|
297
297
|
exported += insQuery;
|
298
298
|
}),
|
299
299
|
);
|
300
300
|
});
|
301
301
|
res.json(exported);
|
302
|
-
} catch (err) {
|
302
|
+
} catch (/** @type any */ err) {
|
303
303
|
console.error('Error exporting db', err, err.stack);
|
304
304
|
res.status(503).end();
|
305
305
|
}
|
@@ -329,7 +329,7 @@ export async function setup(app, sbvrUtils, db) {
|
|
329
329
|
);
|
330
330
|
});
|
331
331
|
res.status(200).end();
|
332
|
-
} catch (err) {
|
332
|
+
} catch (/** @type any */ err) {
|
333
333
|
console.error('Error backing up db', err, err.stack);
|
334
334
|
res.status(404).end();
|
335
335
|
}
|
@@ -358,7 +358,7 @@ export async function setup(app, sbvrUtils, db) {
|
|
358
358
|
);
|
359
359
|
});
|
360
360
|
res.status(200).end();
|
361
|
-
} catch (err) {
|
361
|
+
} catch (/** @type any */ err) {
|
362
362
|
console.error('Error restoring db', err, err.stack);
|
363
363
|
res.status(404).end();
|
364
364
|
}
|