@magda/typescript-common 2.0.0-alpha.4 → 2.0.0-alpha.7
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/dist/SQLUtils.d.ts +6 -5
- package/dist/SQLUtils.js +10 -6
- package/dist/SQLUtils.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +11 -5
- package/dist/authorization-api/authMiddleware.js +19 -6
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/model.d.ts +33 -0
- package/dist/generated/registry/api.d.ts +61 -5
- package/dist/generated/registry/api.js +233 -6
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +19 -13
- package/dist/registry/AuthorizedRegistryClient.js +36 -7
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +5 -4
- package/dist/registry/RegistryClient.js +15 -4
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/model.d.ts +5 -0
- package/dist/util/unionToThrowable.d.ts +2 -1
- package/dist/util/unionToThrowable.js +8 -1
- package/dist/util/unionToThrowable.js.map +1 -1
- package/package.json +5 -5
package/dist/SQLUtils.d.ts
CHANGED
|
@@ -43,16 +43,16 @@ export declare function getTableColumnName(columnName: String, tableRef?: String
|
|
|
43
43
|
* @param {{ [key: string]: Value }} data
|
|
44
44
|
* @return {*}
|
|
45
45
|
*/
|
|
46
|
-
export declare function createTableRecord(poolOrClient: pg.PoolClient | pg.Pool, table: string, data: {
|
|
46
|
+
export declare function createTableRecord(poolOrClient: pg.PoolClient | pg.Pool | pg.Client, table: string, data: {
|
|
47
47
|
[key: string]: RawValue;
|
|
48
48
|
}, allowFieldList?: string[], autoGenerateUuid?: boolean): Promise<any>;
|
|
49
49
|
export declare function updateTableRecord(poolOrClient: pg.PoolClient | pg.Pool, table: string, id: string, data: {
|
|
50
50
|
[key: string]: Value;
|
|
51
51
|
}, allowFieldList?: string[]): Promise<any>;
|
|
52
|
-
export declare function deleteTableRecord(poolOrClient: pg.Client | pg.Pool, table: string, id: string): Promise<void>;
|
|
52
|
+
export declare function deleteTableRecord(poolOrClient: pg.Client | pg.Pool | pg.PoolClient, table: string, id: string): Promise<void>;
|
|
53
53
|
export declare function parseIntParam(p: number | string | undefined): number;
|
|
54
54
|
export declare const MAX_PAGE_RECORD_NUMBER = 500;
|
|
55
|
-
export declare function searchTableRecord<T = any>(poolOrClient: pg.Client | pg.Pool, table: string,
|
|
55
|
+
export declare function searchTableRecord<T = any>(poolOrClient: pg.Client | pg.Pool | pg.PoolClient, table: string, conditions?: SQLSyntax[], queryConfig?: {
|
|
56
56
|
offset?: number | string;
|
|
57
57
|
limit?: number | string;
|
|
58
58
|
authDecision?: AuthDecision;
|
|
@@ -64,7 +64,8 @@ export declare function searchTableRecord<T = any>(poolOrClient: pg.Client | pg.
|
|
|
64
64
|
joinCondition: SQLSyntax;
|
|
65
65
|
}[];
|
|
66
66
|
groupBy?: SQLSyntax | SQLSyntax[];
|
|
67
|
+
orderBy?: SQLSyntax | SQLSyntax[];
|
|
67
68
|
}): Promise<T[]>;
|
|
68
|
-
export declare function getTableRecord<T = any>(poolOrClient: pg.Client | pg.Pool, table: string, id: string, authDecision?: AuthDecision, objectKind?: PossibleObjectKind, toSqlConfig?: AspectQueryToSqlConfig): Promise<T | null>;
|
|
69
|
-
export declare function countTableRecord(poolOrClient: pg.Client | pg.Pool, table: string,
|
|
69
|
+
export declare function getTableRecord<T = any>(poolOrClient: pg.Client | pg.Pool | pg.PoolClient, table: string, id: string, authDecision?: AuthDecision, objectKind?: PossibleObjectKind, toSqlConfig?: AspectQueryToSqlConfig): Promise<T | null>;
|
|
70
|
+
export declare function countTableRecord(poolOrClient: pg.Client | pg.Pool | pg.PoolClient, table: string, conditions?: SQLSyntax[], authDecision?: AuthDecision, objectKind?: PossibleObjectKind, toSqlConfig?: AspectQueryToSqlConfig): Promise<number>;
|
|
70
71
|
export {};
|
package/dist/SQLUtils.js
CHANGED
|
@@ -181,8 +181,8 @@ function parseIntParam(p) {
|
|
|
181
181
|
}
|
|
182
182
|
exports.parseIntParam = parseIntParam;
|
|
183
183
|
exports.MAX_PAGE_RECORD_NUMBER = 500;
|
|
184
|
-
function searchTableRecord(poolOrClient, table,
|
|
185
|
-
var _a, _b, _c;
|
|
184
|
+
function searchTableRecord(poolOrClient, table, conditions = [], queryConfig) {
|
|
185
|
+
var _a, _b, _c, _d;
|
|
186
186
|
return __awaiter(this, void 0, void 0, function* () {
|
|
187
187
|
if (!table.trim()) {
|
|
188
188
|
throw new ServerError_1.default("invalid empty table name is supplied.");
|
|
@@ -203,7 +203,7 @@ function searchTableRecord(poolOrClient, table, contiditions = [], queryConfig)
|
|
|
203
203
|
]
|
|
204
204
|
};
|
|
205
205
|
const authConditions = authDecision.toSql(config);
|
|
206
|
-
const where = sql_syntax_1.default.where(sql_syntax_1.default.joinWithAnd([...
|
|
206
|
+
const where = sql_syntax_1.default.where(sql_syntax_1.default.joinWithAnd([...conditions, authConditions]));
|
|
207
207
|
const sqlSyntax = sql_syntax_1.sqls `SELECT ${(queryConfig === null || queryConfig === void 0 ? void 0 : queryConfig.selectedFields) ? sql_syntax_1.default.csv(...queryConfig.selectedFields)
|
|
208
208
|
: sql_syntax_1.sqls `*`}
|
|
209
209
|
FROM ${escapeIdentifier(table)}
|
|
@@ -214,11 +214,15 @@ function searchTableRecord(poolOrClient, table, contiditions = [], queryConfig)
|
|
|
214
214
|
? sql_syntax_1.default.csv(...queryConfig.groupBy)
|
|
215
215
|
: queryConfig.groupBy}`
|
|
216
216
|
: sql_syntax_1.default.empty}
|
|
217
|
+
${(queryConfig === null || queryConfig === void 0 ? void 0 : queryConfig.orderBy) ? sql_syntax_1.sqls `ORDER BY ${typeof ((_c = queryConfig.orderBy) === null || _c === void 0 ? void 0 : _c.length) === "number"
|
|
218
|
+
? sql_syntax_1.default.csv(...queryConfig.orderBy)
|
|
219
|
+
: queryConfig.orderBy}`
|
|
220
|
+
: sql_syntax_1.default.empty}
|
|
217
221
|
${offset ? sql_syntax_1.sqls `OFFSET ${offset}` : sql_syntax_1.default.empty}
|
|
218
222
|
${limit ? sql_syntax_1.sqls `LIMIT ${limit}` : sql_syntax_1.default.empty}
|
|
219
223
|
`;
|
|
220
224
|
const result = yield poolOrClient.query(...sqlSyntax.toQuery());
|
|
221
|
-
if (!((
|
|
225
|
+
if (!((_d = result === null || result === void 0 ? void 0 : result.rows) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
222
226
|
return [];
|
|
223
227
|
}
|
|
224
228
|
else {
|
|
@@ -243,9 +247,9 @@ function getTableRecord(poolOrClient, table, id, authDecision = AuthDecision_1.U
|
|
|
243
247
|
});
|
|
244
248
|
}
|
|
245
249
|
exports.getTableRecord = getTableRecord;
|
|
246
|
-
function countTableRecord(poolOrClient, table,
|
|
250
|
+
function countTableRecord(poolOrClient, table, conditions = [], authDecision, objectKind, toSqlConfig) {
|
|
247
251
|
return __awaiter(this, void 0, void 0, function* () {
|
|
248
|
-
const records = yield searchTableRecord(poolOrClient, table,
|
|
252
|
+
const records = yield searchTableRecord(poolOrClient, table, conditions, {
|
|
249
253
|
authDecision,
|
|
250
254
|
objectKind,
|
|
251
255
|
toSqlConfig,
|
package/dist/SQLUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLUtils.js","sourceRoot":"","sources":["../src/SQLUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA8D;AAE9D,qDAA6E;AAE7E,mCAA+C;AAC/C,gEAAwC;AAIxC;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC7C,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/E,CAAC;AAFD,kDAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAAC,EAAU;IACvC,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,YAAY,GACd,KAAK,CAAC,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1D,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,oBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AARD,4CAQC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAC9B,UAAkB,EAClB,WAAmB,EAAE,EACrB,yBAAkC,KAAK;IAEvC,MAAM,EAAE,GAAG;QACP,QAAQ;QACR,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU;KACjE;SACI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAZD,gDAYC;AAED;;;;;;;;;;GAUG;AACH,SAAsB,iBAAiB,CACnC,
|
|
1
|
+
{"version":3,"file":"SQLUtils.js","sourceRoot":"","sources":["../src/SQLUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Request, Response } from "express";
|
|
1
|
+
import { Request, Response, NextFunction } from "express";
|
|
2
2
|
import AuthDecisionQueryClient, { AuthDecisionReqConfig } from "../opa/AuthDecisionQueryClient";
|
|
3
3
|
/**
|
|
4
4
|
* Find the user making the request. Assign it to req passport style.
|
|
@@ -6,6 +6,7 @@ import AuthDecisionQueryClient, { AuthDecisionReqConfig } from "../opa/AuthDecis
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const getUser: (baseAuthUrl: string, jwtSecret: string, actionUserId?: string) => (req: Request, res: Response, next: () => void) => void;
|
|
8
8
|
export declare const mustBeAdmin: (baseAuthUrl: string, jwtSecret: string) => (req: Request, res: Response, next: () => void) => void;
|
|
9
|
+
export declare type AuthDecisionReqConfigOrConfigFuncParam = AuthDecisionReqConfig | ((req: Request, res: Response, next: NextFunction) => AuthDecisionReqConfig | null | Promise<AuthDecisionReqConfig | null>);
|
|
9
10
|
/**
|
|
10
11
|
* Make auth decision based on auth decision request config.
|
|
11
12
|
* Depends on the config provided, either partial eval (conditional decision on a set of records/objects)
|
|
@@ -13,10 +14,15 @@ export declare const mustBeAdmin: (baseAuthUrl: string, jwtSecret: string) => (r
|
|
|
13
14
|
*
|
|
14
15
|
* @export
|
|
15
16
|
* @param {AuthDecisionQueryClient} authDecisionClient
|
|
16
|
-
* @param {
|
|
17
|
+
* @param {AuthDecisionReqConfigOrConfigFuncParam} configOrConfigFunc An auth decision config object or a function returns an auth decision config object.
|
|
18
|
+
* When a function is supplied, the function can opt to:
|
|
19
|
+
* - return an auth decision object based on incoming request.
|
|
20
|
+
* - throw an Error
|
|
21
|
+
* - send the response and return a `null` value to skip the rest of request processing.
|
|
22
|
+
* - call `next` function and return a `null` value to skip the rest of processing of current middleware
|
|
17
23
|
* @return {*}
|
|
18
24
|
*/
|
|
19
|
-
export declare function withAuthDecision(authDecisionClient: AuthDecisionQueryClient,
|
|
25
|
+
export declare function withAuthDecision(authDecisionClient: AuthDecisionQueryClient, configOrConfigFunc: AuthDecisionReqConfigOrConfigFuncParam): (req: Request, res: Response, next: () => void) => Promise<void>;
|
|
20
26
|
/**
|
|
21
27
|
* Require unconditional auth decision based on auth decision request config.
|
|
22
28
|
* When making decision on a group of records/objects, this method makes sure
|
|
@@ -24,11 +30,11 @@ export declare function withAuthDecision(authDecisionClient: AuthDecisionQueryCl
|
|
|
24
30
|
*
|
|
25
31
|
* @export
|
|
26
32
|
* @param {AuthDecisionQueryClient} authDecisionClient
|
|
27
|
-
* @param {
|
|
33
|
+
* @param {AuthDecisionReqConfigOrConfigFuncParam} configOrConfigFunc
|
|
28
34
|
* @param {boolean} [requiredDecision=true]
|
|
29
35
|
* @return {*}
|
|
30
36
|
*/
|
|
31
|
-
export declare function requireUnconditionalAuthDecision(authDecisionClient: AuthDecisionQueryClient,
|
|
37
|
+
export declare function requireUnconditionalAuthDecision(authDecisionClient: AuthDecisionQueryClient, configOrConfigFunc: AuthDecisionReqConfigOrConfigFuncParam, requiredDecision?: boolean): (req: Request, res: Response, next: () => void) => void;
|
|
32
38
|
declare type InputDataOrFuncType = ((req: Request, res: Response) => Record<string, any>) | Record<string, any>;
|
|
33
39
|
/**
|
|
34
40
|
* require permission based on input data provided.
|
|
@@ -93,15 +93,27 @@ exports.mustBeAdmin = (baseAuthUrl, jwtSecret) => {
|
|
|
93
93
|
*
|
|
94
94
|
* @export
|
|
95
95
|
* @param {AuthDecisionQueryClient} authDecisionClient
|
|
96
|
-
* @param {
|
|
96
|
+
* @param {AuthDecisionReqConfigOrConfigFuncParam} configOrConfigFunc An auth decision config object or a function returns an auth decision config object.
|
|
97
|
+
* When a function is supplied, the function can opt to:
|
|
98
|
+
* - return an auth decision object based on incoming request.
|
|
99
|
+
* - throw an Error
|
|
100
|
+
* - send the response and return a `null` value to skip the rest of request processing.
|
|
101
|
+
* - call `next` function and return a `null` value to skip the rest of processing of current middleware
|
|
97
102
|
* @return {*}
|
|
98
103
|
*/
|
|
99
|
-
function withAuthDecision(authDecisionClient,
|
|
104
|
+
function withAuthDecision(authDecisionClient, configOrConfigFunc) {
|
|
100
105
|
return (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
101
106
|
try {
|
|
107
|
+
const config = typeof configOrConfigFunc === "function"
|
|
108
|
+
? yield configOrConfigFunc(req, res, next)
|
|
109
|
+
: configOrConfigFunc;
|
|
110
|
+
if (!config) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
102
113
|
const jwtToken = req.get("X-Magda-Session");
|
|
103
114
|
const authDecision = yield authDecisionClient.getAuthDecision(config, jwtToken);
|
|
104
115
|
res.locals.authDecision = authDecision;
|
|
116
|
+
res.locals.authDecisionConfig = config;
|
|
105
117
|
next();
|
|
106
118
|
}
|
|
107
119
|
catch (e) {
|
|
@@ -123,20 +135,21 @@ exports.withAuthDecision = withAuthDecision;
|
|
|
123
135
|
*
|
|
124
136
|
* @export
|
|
125
137
|
* @param {AuthDecisionQueryClient} authDecisionClient
|
|
126
|
-
* @param {
|
|
138
|
+
* @param {AuthDecisionReqConfigOrConfigFuncParam} configOrConfigFunc
|
|
127
139
|
* @param {boolean} [requiredDecision=true]
|
|
128
140
|
* @return {*}
|
|
129
141
|
*/
|
|
130
|
-
function requireUnconditionalAuthDecision(authDecisionClient,
|
|
142
|
+
function requireUnconditionalAuthDecision(authDecisionClient, configOrConfigFunc, requiredDecision = true) {
|
|
131
143
|
return (req, res, next) => {
|
|
132
|
-
withAuthDecision(authDecisionClient,
|
|
144
|
+
withAuthDecision(authDecisionClient, configOrConfigFunc)(req, res, () => {
|
|
145
|
+
var _a, _b;
|
|
133
146
|
const authDecision = res.locals.authDecision;
|
|
134
147
|
if ((authDecision === null || authDecision === void 0 ? void 0 : authDecision.hasResidualRules) === false &&
|
|
135
148
|
AuthDecision_1.isTrueEquivalent(authDecision === null || authDecision === void 0 ? void 0 : authDecision.result) == requiredDecision) {
|
|
136
149
|
return next();
|
|
137
150
|
}
|
|
138
151
|
else {
|
|
139
|
-
res.status(403).send(`you are not permitted to perform \`${
|
|
152
|
+
res.status(403).send(`you are not permitted to perform \`${(_b = (_a = res === null || res === void 0 ? void 0 : res.locals) === null || _a === void 0 ? void 0 : _a.authDecisionConfig) === null || _b === void 0 ? void 0 : _b.operationUri}\` on required resources.`);
|
|
140
153
|
}
|
|
141
154
|
});
|
|
142
155
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authMiddleware.js","sourceRoot":"","sources":["../../src/authorization-api/authMiddleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authMiddleware.js","sourceRoot":"","sources":["../../src/authorization-api/authMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -130,3 +130,36 @@ export interface AccessControlMetaData {
|
|
|
130
130
|
preAuthorisedPermissionIds?: string[];
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
+
export interface CreateAccessGroupRequestBodyType {
|
|
134
|
+
name: string;
|
|
135
|
+
resourceUri: string;
|
|
136
|
+
description?: string;
|
|
137
|
+
keywords?: string[];
|
|
138
|
+
operationUris: string[];
|
|
139
|
+
ownerId?: string;
|
|
140
|
+
orgUnitId?: string;
|
|
141
|
+
}
|
|
142
|
+
export interface UpdateAccessGroupRequestBodyType {
|
|
143
|
+
name?: string;
|
|
144
|
+
description?: string;
|
|
145
|
+
keywords?: string[];
|
|
146
|
+
operationUris?: string[];
|
|
147
|
+
ownerId?: string;
|
|
148
|
+
orgUnitId?: string;
|
|
149
|
+
}
|
|
150
|
+
export interface AccessGroup {
|
|
151
|
+
id: string;
|
|
152
|
+
name: string;
|
|
153
|
+
resourceUri: string;
|
|
154
|
+
operationUris: string[];
|
|
155
|
+
description?: string;
|
|
156
|
+
keywords?: string[];
|
|
157
|
+
permissionId: string;
|
|
158
|
+
roleId: string;
|
|
159
|
+
ownerId?: string;
|
|
160
|
+
orgUnit?: string;
|
|
161
|
+
createTime?: Date;
|
|
162
|
+
createBy?: string;
|
|
163
|
+
editTime?: Date;
|
|
164
|
+
editBy?: string;
|
|
165
|
+
}
|
|
@@ -35,6 +35,11 @@ export declare class AspectDefinition {
|
|
|
35
35
|
export declare class CountResponse {
|
|
36
36
|
'count': number;
|
|
37
37
|
}
|
|
38
|
+
export declare class DeleteRecordsAspectArrayItemsRequest {
|
|
39
|
+
'recordIds': Array<string>;
|
|
40
|
+
'jsonPath': string;
|
|
41
|
+
'items': Array<JsValue>;
|
|
42
|
+
}
|
|
38
43
|
export declare class DeleteResult {
|
|
39
44
|
'deleted': boolean;
|
|
40
45
|
}
|
|
@@ -66,11 +71,22 @@ export declare class JsObject {
|
|
|
66
71
|
}
|
|
67
72
|
export declare class JsValue {
|
|
68
73
|
}
|
|
74
|
+
export declare class JsonPatch {
|
|
75
|
+
'ops': Array<Operation>;
|
|
76
|
+
}
|
|
69
77
|
export declare class MultipleDeleteResult {
|
|
70
78
|
'count': number;
|
|
71
79
|
}
|
|
72
80
|
export declare class Operation {
|
|
73
81
|
}
|
|
82
|
+
export declare class PatchRecordsRequest {
|
|
83
|
+
'recordIds': Array<string>;
|
|
84
|
+
'jsonPath': JsonPatch;
|
|
85
|
+
}
|
|
86
|
+
export declare class PutRecordsAspectRequest {
|
|
87
|
+
'recordIds': Array<string>;
|
|
88
|
+
'data': JsObject;
|
|
89
|
+
}
|
|
74
90
|
/**
|
|
75
91
|
* A record in the registry, usually including data for one or more aspects, unique for a tenant.
|
|
76
92
|
*/
|
|
@@ -355,8 +371,9 @@ export declare class RecordAspectsApi {
|
|
|
355
371
|
* @param aspect The record aspect to save.
|
|
356
372
|
* @param xMagdaSession Magda internal session id
|
|
357
373
|
* @param xMagdaTenantId 0
|
|
374
|
+
* @param merge Whether merge the supplied aspect data to existing aspect data or replace it
|
|
358
375
|
*/
|
|
359
|
-
putById(recordId: string, aspectId: string, aspect: any, xMagdaSession: string, xMagdaTenantId: number): Promise<{
|
|
376
|
+
putById(recordId: string, aspectId: string, aspect: any, xMagdaSession: string, xMagdaTenantId: number, merge?: boolean): Promise<{
|
|
360
377
|
response: http.IncomingMessage;
|
|
361
378
|
body: any;
|
|
362
379
|
}>;
|
|
@@ -382,8 +399,9 @@ export declare class RecordHistoryApi {
|
|
|
382
399
|
* @param limit The maximum number of events to receive. The response will include a token that can be passed as the pageToken parameter to a future request to continue receiving results where this query leaves off.
|
|
383
400
|
* @param aspect The aspects for which to included in event history, specified as multiple occurrences of this query parameter.
|
|
384
401
|
* @param dereference true to automatically dereference links to other records; false to leave them as links. Dereferencing a link means including the record itself where the link would be. Dereferencing only happens one level deep, regardless of the value of this parameter.
|
|
402
|
+
* @param reversePageTokenOrder When pagination via pageToken, by default, records with smaller pageToken (i.e. older records) will be returned first. When this parameter is set to `true`, higher pageToken records (newer records) will be returned.
|
|
385
403
|
*/
|
|
386
|
-
history(xMagdaTenantId: number, recordId: string, xMagdaSession: string, pageToken?: string, start?: number, limit?: number, aspect?: Array<string>, dereference?: boolean): Promise<{
|
|
404
|
+
history(xMagdaTenantId: number, recordId: string, xMagdaSession: string, pageToken?: string, start?: number, limit?: number, aspect?: Array<string>, dereference?: boolean, reversePageTokenOrder?: boolean): Promise<{
|
|
387
405
|
response: http.IncomingMessage;
|
|
388
406
|
body: EventsPage;
|
|
389
407
|
}>;
|
|
@@ -431,6 +449,18 @@ export declare class RecordsApi {
|
|
|
431
449
|
response: http.IncomingMessage;
|
|
432
450
|
body: DeleteResult;
|
|
433
451
|
}>;
|
|
452
|
+
/**
|
|
453
|
+
* Remove items from records' aspect data
|
|
454
|
+
* Remove items from records' aspect data
|
|
455
|
+
* @param xMagdaTenantId 0
|
|
456
|
+
* @param aspectId ID of the aspect to update.
|
|
457
|
+
* @param requestData An json object has key 'recordIds', 'jsonPath', 'items'
|
|
458
|
+
* @param xMagdaSession Magda internal session id
|
|
459
|
+
*/
|
|
460
|
+
deleteRecordsAspectArrayItems(xMagdaTenantId: number, aspectId: string, requestData: DeleteRecordsAspectArrayItemsRequest, xMagdaSession: string): Promise<{
|
|
461
|
+
response: http.IncomingMessage;
|
|
462
|
+
body: Array<any>;
|
|
463
|
+
}>;
|
|
434
464
|
/**
|
|
435
465
|
* Get a list of all records
|
|
436
466
|
*
|
|
@@ -446,9 +476,10 @@ export declare class RecordsApi {
|
|
|
446
476
|
* @param orderBy Specify the field to sort the result. Aspect field can be supported in a format like aspectId.path.to.field
|
|
447
477
|
* @param orderByDir Specify the order by direction. Either `asc` or `desc`
|
|
448
478
|
* @param orderNullFirst Specify whether nulls appear before (`true`) or after (`false`) non-null values in the sort ordering.
|
|
479
|
+
* @param reversePageTokenOrder When pagination via pageToken, by default, records with smaller pageToken (i.e. older records) will be returned first. When this parameter is set to `true`, higher pageToken records (newer records) will be returned.
|
|
449
480
|
* @param xMagdaSession Magda internal session id
|
|
450
481
|
*/
|
|
451
|
-
getAll(xMagdaTenantId: number, aspect?: Array<string>, optionalAspect?: Array<string>, pageToken?: string, start?: number, limit?: number, dereference?: boolean, aspectQuery?: Array<string>, aspectOrQuery?: Array<string>, orderBy?: string, orderByDir?: string, orderNullFirst?: boolean, xMagdaSession?: string): Promise<{
|
|
482
|
+
getAll(xMagdaTenantId: number, aspect?: Array<string>, optionalAspect?: Array<string>, pageToken?: string, start?: number, limit?: number, dereference?: boolean, aspectQuery?: Array<string>, aspectOrQuery?: Array<string>, orderBy?: string, orderByDir?: string, orderNullFirst?: boolean, reversePageTokenOrder?: boolean, xMagdaSession?: string): Promise<{
|
|
452
483
|
response: http.IncomingMessage;
|
|
453
484
|
body: Array<Record>;
|
|
454
485
|
}>;
|
|
@@ -459,9 +490,10 @@ export declare class RecordsApi {
|
|
|
459
490
|
* @param pageToken A token that identifies the start of a page of results. This token should not be interpreted as having any meaning, but it can be obtained from a previous page of results.
|
|
460
491
|
* @param start The index of the first record to retrieve. When possible, specify pageToken instead as it will result in better performance. If this parameter and pageToken are both specified, this parameter is interpreted as the index after the pageToken of the first record to retrieve.
|
|
461
492
|
* @param limit The maximum number of records to receive. The response will include a token that can be passed as the pageToken parameter to a future request to continue receiving results where this query leaves off.
|
|
493
|
+
* @param reversePageTokenOrder When pagination via pageToken, by default, records with smaller pageToken (i.e. older records) will be returned first. When this parameter is set to `true`, higher pageToken records (newer records) will be returned.
|
|
462
494
|
* @param xMagdaSession Magda internal session id
|
|
463
495
|
*/
|
|
464
|
-
getAllSummary(xMagdaTenantId: number, pageToken?: string, start?: number, limit?: number, xMagdaSession?: string): Promise<{
|
|
496
|
+
getAllSummary(xMagdaTenantId: number, pageToken?: string, start?: number, limit?: number, reversePageTokenOrder?: boolean, xMagdaSession?: string): Promise<{
|
|
465
497
|
response: http.IncomingMessage;
|
|
466
498
|
body: Array<RecordSummary>;
|
|
467
499
|
}>;
|
|
@@ -530,7 +562,7 @@ export declare class RecordsApi {
|
|
|
530
562
|
* Modify a record by applying a JSON Patch
|
|
531
563
|
* The patch should follow IETF RFC 6902 (https://tools.ietf.org/html/rfc6902).
|
|
532
564
|
* @param xMagdaTenantId 0
|
|
533
|
-
* @param id ID of the
|
|
565
|
+
* @param id ID of the record to be pacthed.
|
|
534
566
|
* @param recordPatch The RFC 6902 patch to apply to the aspect.
|
|
535
567
|
* @param xMagdaSession Magda internal session id
|
|
536
568
|
*/
|
|
@@ -538,6 +570,17 @@ export declare class RecordsApi {
|
|
|
538
570
|
response: http.IncomingMessage;
|
|
539
571
|
body: Record;
|
|
540
572
|
}>;
|
|
573
|
+
/**
|
|
574
|
+
* Modify a list of records by applying the same JSON Patch
|
|
575
|
+
* The patch should follow IETF RFC 6902 (https://tools.ietf.org/html/rfc6902).
|
|
576
|
+
* @param xMagdaTenantId 0
|
|
577
|
+
* @param requestData An json object has key 'recordIds' & 'jsonPath'
|
|
578
|
+
* @param xMagdaSession Magda internal session id
|
|
579
|
+
*/
|
|
580
|
+
patchRecords(xMagdaTenantId: number, requestData: PatchRecordsRequest, xMagdaSession: string): Promise<{
|
|
581
|
+
response: http.IncomingMessage;
|
|
582
|
+
body: Array<any>;
|
|
583
|
+
}>;
|
|
541
584
|
/**
|
|
542
585
|
* Modify a record by ID
|
|
543
586
|
* Modifies a record. Aspects included in the request are created or updated, but missing aspects are not removed.
|
|
@@ -550,6 +593,19 @@ export declare class RecordsApi {
|
|
|
550
593
|
response: http.IncomingMessage;
|
|
551
594
|
body: Record;
|
|
552
595
|
}>;
|
|
596
|
+
/**
|
|
597
|
+
* Modify a list of records's aspect with same new data
|
|
598
|
+
* Modify a list of records's aspect with same new data
|
|
599
|
+
* @param xMagdaTenantId 0
|
|
600
|
+
* @param aspectId ID of the aspect to update.
|
|
601
|
+
* @param requestData An json object has key 'recordIds' & 'data'
|
|
602
|
+
* @param xMagdaSession Magda internal session id
|
|
603
|
+
* @param merge Whether merge the supplied aspect data to existing aspect data or replace it
|
|
604
|
+
*/
|
|
605
|
+
putRecordsAspect(xMagdaTenantId: number, aspectId: string, requestData: PutRecordsAspectRequest, xMagdaSession: string, merge?: boolean): Promise<{
|
|
606
|
+
response: http.IncomingMessage;
|
|
607
|
+
body: Array<any>;
|
|
608
|
+
}>;
|
|
553
609
|
/**
|
|
554
610
|
* Trim by source tag
|
|
555
611
|
* Trims records with the provided source that DON'T have the supplied source tag
|