@balena/pinejs 17.1.0-build-joshbwlng-tasks-0e1e17c7d0be1ee7977c72ee5f1cafb04d93b900-1 → 17.1.0-build-model-based-typings-437bb06f44567532aec78e550f3d545732466411-1
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/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +242 -4
- package/CHANGELOG.md +71 -2
- package/out/config-loader/env.d.ts +0 -4
- package/out/config-loader/env.js +1 -5
- package/out/config-loader/env.js.map +1 -1
- package/out/data-server/sbvr-server.js +3 -2
- package/out/data-server/sbvr-server.js.map +1 -1
- package/out/database-layer/db.d.ts +0 -3
- package/out/database-layer/db.js +0 -17
- package/out/database-layer/db.js.map +1 -1
- package/out/migrator/migrations.d.ts +58 -0
- package/out/migrator/migrations.js +3 -0
- package/out/migrator/migrations.js.map +1 -0
- package/out/migrator/sync.d.ts +17 -0
- package/out/migrator/sync.js +39 -40
- package/out/migrator/sync.js.map +1 -1
- package/out/sbvr-api/dev.d.ts +22 -0
- package/out/sbvr-api/dev.js +3 -0
- package/out/sbvr-api/dev.js.map +1 -0
- package/out/sbvr-api/hooks.d.ts +26 -26
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/permissions.d.ts +26 -2
- package/out/sbvr-api/permissions.js +39 -40
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +46 -6
- package/out/sbvr-api/sbvr-utils.js +44 -44
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/user.d.ts +236 -0
- package/out/sbvr-api/user.js +3 -0
- package/out/sbvr-api/user.js.map +1 -0
- package/out/server-glue/module.d.ts +0 -1
- package/out/server-glue/module.js +1 -4
- package/out/server-glue/module.js.map +1 -1
- package/package.json +19 -20
- package/src/config-loader/env.ts +1 -6
- package/src/data-server/sbvr-server.js +3 -2
- package/src/database-layer/db.ts +0 -25
- package/src/migrator/migrations.ts +64 -0
- package/src/migrator/sync.ts +46 -41
- package/src/sbvr-api/dev.ts +26 -0
- package/src/sbvr-api/hooks.ts +21 -18
- package/src/sbvr-api/permissions.ts +54 -48
- package/src/sbvr-api/sbvr-utils.ts +93 -53
- package/src/sbvr-api/user.ts +216 -0
- package/src/server-glue/module.ts +0 -3
- package/out/tasks/common.d.ts +0 -4
- package/out/tasks/common.js +0 -13
- package/out/tasks/common.js.map +0 -1
- package/out/tasks/index.d.ts +0 -8
- package/out/tasks/index.js +0 -142
- package/out/tasks/index.js.map +0 -1
- package/out/tasks/tasks.sbvr +0 -60
- package/out/tasks/types.d.ts +0 -38
- package/out/tasks/types.js +0 -10
- package/out/tasks/types.js.map +0 -1
- package/out/tasks/worker.d.ts +0 -16
- package/out/tasks/worker.js +0 -228
- package/out/tasks/worker.js.map +0 -1
- package/src/tasks/common.ts +0 -14
- package/src/tasks/index.ts +0 -158
- package/src/tasks/tasks.sbvr +0 -60
- package/src/tasks/types.ts +0 -58
- package/src/tasks/worker.ts +0 -280
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrator/migrations.ts"],"names":[],"mappings":""}
|
package/out/migrator/sync.d.ts
CHANGED
@@ -1,10 +1,27 @@
|
|
1
|
+
import type MigrationsModel from './migrations';
|
1
2
|
import { type MigrationExecutionResult } from './utils';
|
2
3
|
import type { Tx } from '../database-layer/db';
|
3
4
|
import type { Config, Model } from '../config-loader/config-loader';
|
5
|
+
import * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
4
6
|
type ApiRootModel = Model & {
|
5
7
|
apiRoot: string;
|
6
8
|
};
|
7
9
|
export declare const postRun: (tx: Tx, model: ApiRootModel) => Promise<void>;
|
8
10
|
export declare const run: (tx: Tx, model: ApiRootModel) => Promise<MigrationExecutionResult>;
|
11
|
+
declare module '../sbvr-api/sbvr-utils' {
|
12
|
+
interface API {
|
13
|
+
[migrationModelConfig.apiRoot]: PinejsClient<MigrationsModel>;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
declare const migrationModelConfig: {
|
17
|
+
readonly modelName: "migrations";
|
18
|
+
readonly apiRoot: "migrations";
|
19
|
+
readonly modelText: any;
|
20
|
+
readonly migrations: {
|
21
|
+
readonly '11.0.0-modified-at': "\n\t\t\tALTER TABLE \"migration\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
22
|
+
readonly '11.0.1-modified-at': "\n\t\t\tALTER TABLE \"migration lock\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
23
|
+
readonly '15.0.0-data-types': (tx: Tx, { db }: typeof sbvrUtils) => Promise<void>;
|
24
|
+
};
|
25
|
+
};
|
9
26
|
export declare const config: Config;
|
10
27
|
export {};
|
package/out/migrator/sync.js
CHANGED
@@ -30,7 +30,7 @@ exports.config = exports.run = exports.postRun = void 0;
|
|
30
30
|
const utils_1 = require("./utils");
|
31
31
|
const lodash_1 = __importDefault(require("lodash"));
|
32
32
|
const sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
|
33
|
-
const
|
33
|
+
const migrationsModel = require('./migrations.sbvr');
|
34
34
|
const postRun = async (tx, model) => {
|
35
35
|
const { initSql } = model;
|
36
36
|
if (initSql == null) {
|
@@ -111,45 +111,44 @@ const executeMigration = async (tx, [key, migration]) => {
|
|
111
111
|
throw new utils_1.MigrationError(`Invalid migration type: ${typeof migration}`);
|
112
112
|
}
|
113
113
|
};
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
'
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
break;
|
149
|
-
}
|
150
|
-
},
|
151
|
-
},
|
114
|
+
const migrationModelConfig = {
|
115
|
+
modelName: 'migrations',
|
116
|
+
apiRoot: 'migrations',
|
117
|
+
modelText: migrationsModel,
|
118
|
+
migrations: {
|
119
|
+
'11.0.0-modified-at': `
|
120
|
+
ALTER TABLE "migration"
|
121
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
122
|
+
`,
|
123
|
+
'11.0.1-modified-at': `
|
124
|
+
ALTER TABLE "migration lock"
|
125
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
126
|
+
`,
|
127
|
+
'15.0.0-data-types': async (tx, { db }) => {
|
128
|
+
switch (db.engine) {
|
129
|
+
case 'mysql':
|
130
|
+
await tx.executeSql(`\
|
131
|
+
ALTER TABLE "migration"
|
132
|
+
MODIFY "executed migrations" JSON NOT NULL;`);
|
133
|
+
await tx.executeSql(`\
|
134
|
+
ALTER TABLE "migration status"
|
135
|
+
MODIFY "is backing off" BOOLEAN NOT NULL;`);
|
136
|
+
break;
|
137
|
+
case 'postgres':
|
138
|
+
await tx.executeSql(`\
|
139
|
+
ALTER TABLE "migration"
|
140
|
+
ALTER COLUMN "executed migrations" SET DATA TYPE JSONB USING "executed migrations"::JSONB;`);
|
141
|
+
await tx.executeSql(`\
|
142
|
+
ALTER TABLE "migration status"
|
143
|
+
ALTER COLUMN "is backing off" DROP DEFAULT,
|
144
|
+
ALTER COLUMN "is backing off" SET DATA TYPE BOOLEAN USING "is backing off"::BOOLEAN,
|
145
|
+
ALTER COLUMN "is backing off" SET DEFAULT FALSE;`);
|
146
|
+
break;
|
147
|
+
}
|
152
148
|
},
|
153
|
-
|
149
|
+
},
|
150
|
+
};
|
151
|
+
exports.config = {
|
152
|
+
models: [migrationModelConfig],
|
154
153
|
};
|
155
154
|
//# sourceMappingURL=sync.js.map
|
package/out/migrator/sync.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/migrator/sync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/migrator/sync.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import type { Types } from '@balena/abstract-sql-to-typescript';
|
2
|
+
export interface Model {
|
3
|
+
Read: {
|
4
|
+
created_at: Types['Date Time']['Read'];
|
5
|
+
modified_at: Types['Date Time']['Read'];
|
6
|
+
id: Types['Serial']['Read'];
|
7
|
+
is_of__vocabulary: Types['Short Text']['Read'];
|
8
|
+
model_type: Types['Short Text']['Read'];
|
9
|
+
model_value: Types['JSON']['Read'];
|
10
|
+
};
|
11
|
+
Write: {
|
12
|
+
created_at: Types['Date Time']['Write'];
|
13
|
+
modified_at: Types['Date Time']['Write'];
|
14
|
+
id: Types['Serial']['Write'];
|
15
|
+
is_of__vocabulary: Types['Short Text']['Write'];
|
16
|
+
model_type: Types['Short Text']['Write'];
|
17
|
+
model_value: Types['JSON']['Write'];
|
18
|
+
};
|
19
|
+
}
|
20
|
+
export default interface $Model {
|
21
|
+
model: Model;
|
22
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/sbvr-api/dev.ts"],"names":[],"mappings":""}
|
package/out/sbvr-api/hooks.d.ts
CHANGED
@@ -3,7 +3,7 @@ import type { Tx } from '../database-layer/db';
|
|
3
3
|
import type { ODataRequest, ParsedODataRequest } from './uri-parser';
|
4
4
|
import type { AnyObject } from 'pinejs-client-core';
|
5
5
|
import type { TypedError } from 'typed-error';
|
6
|
-
import { type
|
6
|
+
import { type User, type ApiKey, api, type Response } from './sbvr-utils';
|
7
7
|
export interface HookReq {
|
8
8
|
user?: User;
|
9
9
|
apiKey?: ApiKey;
|
@@ -17,29 +17,29 @@ export interface HookReq {
|
|
17
17
|
hooks?: InstantiatedHooks;
|
18
18
|
is?: (type: string | string[]) => string | false | null;
|
19
19
|
}
|
20
|
-
export interface HookArgs {
|
20
|
+
export interface HookArgs<Vocab extends string = string> {
|
21
21
|
req: HookReq;
|
22
22
|
request: ODataRequest;
|
23
|
-
api:
|
23
|
+
api: (typeof api)[Vocab];
|
24
24
|
tx?: Tx | undefined;
|
25
25
|
}
|
26
26
|
export type HookResponse = PromiseLike<any> | null | void;
|
27
|
-
export interface Hooks {
|
28
|
-
PREPARSE?: (options: Omit<HookArgs
|
29
|
-
POSTPARSE?: (options: HookArgs) => HookResponse;
|
30
|
-
PRERUN?: (options: HookArgs & {
|
27
|
+
export interface Hooks<Vocab extends string = string> {
|
28
|
+
PREPARSE?: (options: Omit<HookArgs<Vocab>, 'request' | 'api'>) => HookResponse;
|
29
|
+
POSTPARSE?: (options: HookArgs<Vocab>) => HookResponse;
|
30
|
+
PRERUN?: (options: HookArgs<Vocab> & {
|
31
31
|
tx: Tx;
|
32
32
|
}) => HookResponse;
|
33
|
-
POSTRUN?: (options: HookArgs & {
|
33
|
+
POSTRUN?: (options: HookArgs<Vocab> & {
|
34
34
|
tx: Tx;
|
35
35
|
result: any;
|
36
36
|
}) => HookResponse;
|
37
|
-
PRERESPOND?: (options: HookArgs & {
|
37
|
+
PRERESPOND?: (options: HookArgs<Vocab> & {
|
38
38
|
tx: Tx;
|
39
39
|
result: any;
|
40
40
|
response: Response;
|
41
41
|
}) => HookResponse;
|
42
|
-
'POSTRUN-ERROR'?: (options: HookArgs & {
|
42
|
+
'POSTRUN-ERROR'?: (options: HookArgs<Vocab> & {
|
43
43
|
tx: Tx;
|
44
44
|
error: TypedError | any;
|
45
45
|
}) => HookResponse;
|
@@ -85,41 +85,41 @@ declare const apiHooks: {
|
|
85
85
|
DELETE: MethodHooks;
|
86
86
|
OPTIONS: MethodHooks;
|
87
87
|
};
|
88
|
-
export declare const addHook: (method: keyof typeof apiHooks, vocabulary:
|
89
|
-
PREPARSE?: HookBlueprint<(options: Omit<HookArgs
|
90
|
-
POSTPARSE?: HookBlueprint<(options: HookArgs) => HookResponse> | undefined;
|
91
|
-
PRERUN?: HookBlueprint<(options: HookArgs & {
|
88
|
+
export declare const addHook: <Vocab extends string>(method: keyof typeof apiHooks, vocabulary: Vocab, resourceName: string, hooks: {
|
89
|
+
PREPARSE?: HookBlueprint<(options: Omit<HookArgs<string>, "request" | "api">) => HookResponse> | undefined;
|
90
|
+
POSTPARSE?: HookBlueprint<(options: HookArgs<string>) => HookResponse> | undefined;
|
91
|
+
PRERUN?: HookBlueprint<(options: HookArgs<string> & {
|
92
92
|
tx: Tx;
|
93
93
|
}) => HookResponse> | undefined;
|
94
|
-
POSTRUN?: HookBlueprint<(options: HookArgs & {
|
94
|
+
POSTRUN?: HookBlueprint<(options: HookArgs<string> & {
|
95
95
|
tx: Tx;
|
96
96
|
result: any;
|
97
97
|
}) => HookResponse> | undefined;
|
98
|
-
PRERESPOND?: HookBlueprint<(options: HookArgs & {
|
98
|
+
PRERESPOND?: HookBlueprint<(options: HookArgs<string> & {
|
99
99
|
tx: Tx;
|
100
100
|
result: any;
|
101
101
|
response: Response;
|
102
102
|
}) => HookResponse> | undefined;
|
103
|
-
'POSTRUN-ERROR'?: HookBlueprint<(options: HookArgs & {
|
103
|
+
'POSTRUN-ERROR'?: HookBlueprint<(options: HookArgs<string> & {
|
104
104
|
tx: Tx;
|
105
105
|
error: TypedError | any;
|
106
106
|
}) => HookResponse> | undefined;
|
107
107
|
} | ({
|
108
|
-
PREPARSE?: ((options: Omit<HookArgs
|
109
|
-
POSTPARSE?: ((options: HookArgs) => HookResponse) | undefined;
|
110
|
-
PRERUN?: ((options: HookArgs & {
|
108
|
+
PREPARSE?: ((options: Omit<HookArgs<string>, "request" | "api">) => HookResponse) | undefined;
|
109
|
+
POSTPARSE?: ((options: HookArgs<string>) => HookResponse) | undefined;
|
110
|
+
PRERUN?: ((options: HookArgs<string> & {
|
111
111
|
tx: Tx;
|
112
112
|
}) => HookResponse) | undefined;
|
113
|
-
POSTRUN?: ((options: HookArgs & {
|
113
|
+
POSTRUN?: ((options: HookArgs<string> & {
|
114
114
|
tx: Tx;
|
115
115
|
result: any;
|
116
116
|
}) => HookResponse) | undefined;
|
117
|
-
PRERESPOND?: ((options: HookArgs & {
|
117
|
+
PRERESPOND?: ((options: HookArgs<string> & {
|
118
118
|
tx: Tx;
|
119
119
|
result: any;
|
120
120
|
response: Response;
|
121
121
|
}) => HookResponse) | undefined;
|
122
|
-
'POSTRUN-ERROR'?: ((options: HookArgs & {
|
122
|
+
'POSTRUN-ERROR'?: ((options: HookArgs<string> & {
|
123
123
|
tx: Tx;
|
124
124
|
error: TypedError | any;
|
125
125
|
}) => HookResponse) | undefined;
|
@@ -127,8 +127,8 @@ export declare const addHook: (method: keyof typeof apiHooks, vocabulary: string
|
|
127
127
|
sideEffects: HookBlueprint<HookFn>['sideEffects'];
|
128
128
|
readOnlyTx: HookBlueprint<HookFn>['readOnlyTx'];
|
129
129
|
})) => void;
|
130
|
-
export declare const addSideEffectHook: (method: HookMethod, apiRoot:
|
131
|
-
export declare const addPureHook: (method: HookMethod, apiRoot:
|
130
|
+
export declare const addSideEffectHook: <Vocab extends string>(method: HookMethod, apiRoot: Vocab, resourceName: string, hooks: Hooks<NoInfer<Vocab>>) => void;
|
131
|
+
export declare const addPureHook: <Vocab extends string>(method: HookMethod, apiRoot: Vocab, resourceName: string, hooks: Hooks<NoInfer<Vocab>>) => void;
|
132
132
|
type RunHookArgs<T extends keyof Hooks> = Omit<Parameters<NonNullable<Hooks[T]>>[0], 'api'>;
|
133
|
-
export declare const runHooks: <T extends keyof Hooks
|
133
|
+
export declare const runHooks: <T extends keyof Hooks<string>>(hookName: T, hooksList: Array<[modelName: string, hooks: InstantiatedHooks]> | undefined, args: RunHookArgs<T>) => Promise<void>;
|
134
134
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":";;;;;;AAOA,oDAAuB;AACvB,iDAAiD;AACjD,wDAA+B;AAC/B,
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":";;;;;;AAOA,oDAAuB;AACvB,iDAAiD;AACjD,wDAA+B;AAC/B,6CAOsB;AAkDtB,MAAM,SAAS,GAAuB;IACrC,UAAU;IACV,WAAW;IACX,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,eAAe;CACf,CAAC;AACF,MAAM,WAAW,GAAG,CAAC,CAAM,EAAoB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAaxE,MAAM,IAAI;IACD,MAAM,CAA6B;IACpC,UAAU,CAAiC;IAClD,YAAY,IAAsB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAW;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;CACD;AAED,MAAM,cAAiC,SAAQ,IAAO;IAC7C,WAAW,GAAqB,EAAE,CAAC;IACnC,UAAU,GAAY,KAAK,CAAC;IAE7B,gBAAgB,CAAC,EAAkB;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC;oBACJ,MAAM,EAAE,EAAE,CAAC;gBACZ,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACF,CAAC,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,QAAQ;QAEpB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QAGD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,IAAA,8BAAe,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACD;AAGM,MAAM,oBAAoB,GAAG,CACnC,SAA2D,EACpD,EAAE;IACT,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IACD,MAAM,eAAe,GAAG,SAAS;SAC/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAuB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAChE,MAAM,CACN,CAAC,IAAI,EAAkC,EAAE,CAAC,IAAI,YAAY,cAAc,CACxE,CAAC;IACH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;IACR,CAAC;IACD,KAAK,IAAA,8BAAe,EAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAqB,EAAE,CACrE,gBAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,SAAuC,EAAE,EAAE;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAkB,EAAE;IAC3E,OAAO,gBAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAE,YAAqB,EAAE,EAAE;IAC1E,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CACrB,WAAwB,EACxB,UAAkB,EAClB,YAAgC,EAChC,eAAwB,EACvB,EAAE;IACH,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3E,IAAI,CAAC,eAAe,EAAE,CAAC;QAEtB,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAChB,UAAU,EACV,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAClD,CAAC;AACH,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,IAAA,kBAAO,EAC7B,CACC,MAAuB,EACvB,UAAkB,EAClB,YAAgC,EAChC,eAAwB,EACvB,EAAE,CACH,UAAU,CACT,aAAa,CACZ,QAAQ,CAAC,MAAM,CAAC,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,CACf,EACD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CACzE,EACF,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,CAAC;AACK,MAAM,QAAQ,GAAG,CACvB,OAGC,EACD,eAAwB,EACJ,EAAE;IACtB,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QAC1B,YAAY,GAAG,IAAA,2BAAc,EAC5B,OAGC,CACD;aAEC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,gBAAgB,CACtB,cAAc,CACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,UAAU,EAClB,YAAY,EACZ,eAAe,CACf,CACD,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,QAAQ,YA0BnB;AACF,gBAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAQ9C,MAAM,QAAQ,GAAG;IAChB,GAAG,EAAE,EAAiB;IACtB,GAAG,EAAE,EAAiB;IACtB,GAAG,EAAE,EAAiB;IACtB,IAAI,EAAE,EAAiB;IACvB,KAAK,EAAE,EAAiB;IACxB,KAAK,EAAE,EAAiB;IACxB,MAAM,EAAE,EAAiB;IACzB,OAAO,EAAE,EAAiB;CAC1B,CAAC;AAIF,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzB,MAAM,OAAO,GAAG,CACtB,MAA6B,EAC7B,UAAiB,EACjB,YAAoB,EACpB,KAKK,EACJ,EAAE;IACH,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACd,sFAAsF,YAAY,GAAG,CACrG,CAAC;QACH,CAAC;IACF,CAAC;SAAM,CAAC;QACP,IAAI,gBAAgB,CAAC;QACrB,IAAI,CAAC;YACJ,gBAAgB,GAAG,IAAA,gCAAmB,EAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,gBAAgB,GAAG,YAAY,CAAC;YACtC,YAAY,GAAG,IAAA,2BAAc,EAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5D,IAAI,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CACd,iCAAiC;oBAChC,gBAAgB;oBAChB,IAAI;oBACJ,UAAU,CACX,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAElC,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAEjD,IAAI,aAAa,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QACrD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC1C,MAAM,gBAAgB,GAElB,EAAE,CAAC;QACP,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAuB,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACpB,gBAAgB,CAAC,QAAQ,CAAC,GAAG;oBAC5B,MAAM;oBACN,WAAW;oBACX,UAAU;iBACV,CAAC;YACH,CAAC;QACF,CAAC;QACD,KAAK,GAAG,gBAAgB,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,aAAa,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,gBAAQ,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC;AA/EW,QAAA,OAAO,WA+ElB;AAEK,MAAM,iBAAiB,GAAG,CAChC,MAAkB,EAClB,OAAc,EACd,YAAoB,EACpB,KAA4B,EACrB,EAAE;IACT,IAAA,eAAO,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;QACtC,GAAG,KAAK;QACR,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,KAAK;KACjB,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B;AAEK,MAAM,WAAW,GAAG,CAC1B,MAAkB,EAClB,OAAc,EACd,YAAoB,EACpB,KAA4B,EACrB,EAAE;IACT,IAAA,eAAO,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;QACtC,GAAG,KAAK;QACR,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,KAAK;KACjB,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB;AAEF,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,IAAc,EAAE,EAAE;IACvD,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;QAClC,GAAG,EAAE,gBAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAChB,gBAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YACpB,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;SACxB,CAAC,CACF;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,eAAe,GAAG,CACvB,SAAiB,EACjB,IAAoB,EACH,EAAE;IACnB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;QAE7C,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,YAAY,GAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;IACxE,IAAK,IAAiB,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QACxC,SAAS,CAAC,SAAS,EAAE,YAAwB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,KAAK,EAC5B,QAAW,EAKX,SAA2E,EAC3E,IAAoB,EACnB,EAAE;IACH,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IACD,MAAM,KAAK,GAAG,SAAS;SACrB,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAA8C,EAAE,CAAC;QACzE,SAAS;QACT,MAAM,CAAC,QAAQ,CAAC;KAChB,CAAC;SACD,MAAM,CACN,CAAC,CAAC,EAAuC,EAAE,CAC1C,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAChC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;IACR,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAInE,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,iBAAmC,CAAC;QACxC,IAAK,IAAiB,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACxC,SAAS,CAAC,SAAS,EAAE,SAAqB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,UAAkC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,iBAAiB,KAAK,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC,CAAC,CACF,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAjDW,QAAA,QAAQ,YAiDnB"}
|
@@ -1,8 +1,8 @@
|
|
1
|
+
import type AuthModel from './user';
|
1
2
|
import './express-extension';
|
2
3
|
import type * as Express from 'express';
|
3
4
|
import type { Tx } from '../database-layer/db';
|
4
5
|
import type { ApiKey, User } from '../sbvr-api/sbvr-utils';
|
5
|
-
import * as sbvrUtils from '../sbvr-api/sbvr-utils';
|
6
6
|
import { type HookReq } from './hooks';
|
7
7
|
import { PermissionError, PermissionParsingError } from './errors';
|
8
8
|
import { type ODataRequest } from './uri-parser';
|
@@ -46,7 +46,31 @@ export declare const checkPermissionsMiddleware: (action: PermissionCheck) => Ex
|
|
46
46
|
export declare const addPermissions: (req: PermissionReq, request: ODataRequest & {
|
47
47
|
permissionType?: PermissionCheck;
|
48
48
|
}) => Promise<void>;
|
49
|
+
declare module './sbvr-utils' {
|
50
|
+
interface API {
|
51
|
+
[authModelConfig.apiRoot]: PinejsClient<AuthModel>;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
declare const authModelConfig: {
|
55
|
+
readonly apiRoot: "Auth";
|
56
|
+
readonly modelText: string;
|
57
|
+
readonly customServerCode: any;
|
58
|
+
readonly migrations: {
|
59
|
+
readonly '11.0.0-modified-at': "\n\t\t\tALTER TABLE \"actor\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"api key\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"api key-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"api key-has-role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"user\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"user-has-role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"user-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
60
|
+
readonly '11.0.1-modified-at': "\n\t\t\tALTER TABLE \"role-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
61
|
+
readonly '14.42.0-api-key-expiry-date': "\n\t\t\tALTER TABLE \"api key\"\n\t\t\tADD COLUMN IF NOT EXISTS \"expiry date\" TIMESTAMP NULL;\n\t\t";
|
62
|
+
};
|
63
|
+
};
|
49
64
|
export declare const config: {
|
50
|
-
models:
|
65
|
+
models: {
|
66
|
+
readonly apiRoot: "Auth";
|
67
|
+
readonly modelText: string;
|
68
|
+
readonly customServerCode: any;
|
69
|
+
readonly migrations: {
|
70
|
+
readonly '11.0.0-modified-at': "\n\t\t\tALTER TABLE \"actor\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"api key\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"api key-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"api key-has-role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\n\t\t\tALTER TABLE \"user\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"user-has-role\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t\tALTER TABLE \"user-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
71
|
+
readonly '11.0.1-modified-at': "\n\t\t\tALTER TABLE \"role-has-permission\"\n\t\t\tADD COLUMN IF NOT EXISTS \"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\n\t\t";
|
72
|
+
readonly '14.42.0-api-key-expiry-date': "\n\t\t\tALTER TABLE \"api key\"\n\t\t\tADD COLUMN IF NOT EXISTS \"expiry date\" TIMESTAMP NULL;\n\t\t";
|
73
|
+
};
|
74
|
+
}[];
|
51
75
|
};
|
52
76
|
export declare const setup: () => void;
|
@@ -1032,7 +1032,7 @@ const checkPermissionsMiddleware = (action) => async (req, res, next) => {
|
|
1032
1032
|
exports.checkPermissionsMiddleware = checkPermissionsMiddleware;
|
1033
1033
|
let guestPermissionsInitialized = false;
|
1034
1034
|
const getGuestPermissions = (0, memoizee_1.default)(async () => {
|
1035
|
-
const result =
|
1035
|
+
const result = await sbvrUtils.api.Auth.get({
|
1036
1036
|
resource: 'user',
|
1037
1037
|
passthrough: {
|
1038
1038
|
req: exports.rootRead,
|
@@ -1043,7 +1043,7 @@ const getGuestPermissions = (0, memoizee_1.default)(async () => {
|
|
1043
1043
|
options: {
|
1044
1044
|
$select: 'id',
|
1045
1045
|
},
|
1046
|
-
})
|
1046
|
+
});
|
1047
1047
|
if (result == null) {
|
1048
1048
|
throw new Error('No guest user');
|
1049
1049
|
}
|
@@ -1105,48 +1105,47 @@ const addPermissions = async (req, request) => {
|
|
1105
1105
|
}
|
1106
1106
|
};
|
1107
1107
|
exports.addPermissions = addPermissions;
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
ALTER TABLE "actor"
|
1117
|
-
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1108
|
+
const authModelConfig = {
|
1109
|
+
apiRoot: 'Auth',
|
1110
|
+
modelText: userModel,
|
1111
|
+
customServerCode: exports,
|
1112
|
+
migrations: {
|
1113
|
+
'11.0.0-modified-at': `
|
1114
|
+
ALTER TABLE "actor"
|
1115
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1118
1116
|
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1117
|
+
ALTER TABLE "api key"
|
1118
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1119
|
+
ALTER TABLE "api key-has-permission"
|
1120
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1121
|
+
ALTER TABLE "api key-has-role"
|
1122
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1125
1123
|
|
1126
|
-
|
1127
|
-
|
1124
|
+
ALTER TABLE "permission"
|
1125
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1128
1126
|
|
1129
|
-
|
1130
|
-
|
1127
|
+
ALTER TABLE "role"
|
1128
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1131
1129
|
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1130
|
+
ALTER TABLE "user"
|
1131
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1132
|
+
ALTER TABLE "user-has-role"
|
1133
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1134
|
+
ALTER TABLE "user-has-permission"
|
1135
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1136
|
+
`,
|
1137
|
+
'11.0.1-modified-at': `
|
1138
|
+
ALTER TABLE "role-has-permission"
|
1139
|
+
ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
|
1140
|
+
`,
|
1141
|
+
'14.42.0-api-key-expiry-date': `
|
1142
|
+
ALTER TABLE "api key"
|
1143
|
+
ADD COLUMN IF NOT EXISTS "expiry date" TIMESTAMP NULL;
|
1144
|
+
`,
|
1145
|
+
},
|
1146
|
+
};
|
1147
|
+
exports.config = {
|
1148
|
+
models: [authModelConfig],
|
1150
1149
|
};
|
1151
1150
|
const setup = () => {
|
1152
1151
|
(0, hooks_1.addHook)('all', 'all', 'all', {
|