@magda/typescript-common 2.0.0-alpha.0 → 2.0.0-alpha.3
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/BaseApiClient.d.ts +41 -0
- package/dist/BaseApiClient.js +63 -0
- package/dist/BaseApiClient.js.map +1 -0
- package/dist/IndexerApiClient.d.ts +16 -0
- package/dist/IndexerApiClient.js +39 -0
- package/dist/IndexerApiClient.js.map +1 -0
- package/dist/JsonTransformer.js +1 -2
- package/dist/JsonTransformer.js.map +1 -1
- package/dist/OpaCompileResponseParser.d.ts +115 -4
- package/dist/OpaCompileResponseParser.js +233 -19
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/SQLUtils.d.ts +2 -2
- package/dist/SQLUtils.js +1 -1
- package/dist/SQLUtils.js.map +1 -1
- package/dist/Try.d.ts +17 -0
- package/dist/Try.js +68 -0
- package/dist/Try.js.map +1 -0
- package/dist/authorization-api/ApiClient.d.ts +9 -13
- package/dist/authorization-api/ApiClient.js +88 -31
- package/dist/authorization-api/ApiClient.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +7 -7
- package/dist/authorization-api/authMiddleware.js +54 -52
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.d.ts +1 -0
- package/dist/authorization-api/constants.js +2 -1
- package/dist/authorization-api/constants.js.map +1 -1
- package/dist/authorization-api/model.d.ts +61 -23
- package/dist/createNoCacheFetchOptions.d.ts +15 -0
- package/dist/createNoCacheFetchOptions.js +20 -0
- package/dist/createNoCacheFetchOptions.js.map +1 -0
- package/dist/fetchRequest.d.ts +11 -0
- package/dist/fetchRequest.js +62 -0
- package/dist/fetchRequest.js.map +1 -0
- package/dist/generated/registry/api.d.ts +12 -5
- package/dist/generated/registry/api.js +57 -0
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.d.ts +7 -7
- package/dist/getAbsoluteUrl.js +22 -19
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/getRequest.d.ts +1 -0
- package/dist/getRequest.js +28 -0
- package/dist/getRequest.js.map +1 -0
- package/dist/getRequestNoCache.d.ts +1 -0
- package/dist/getRequestNoCache.js +23 -0
- package/dist/getRequestNoCache.js.map +1 -0
- package/dist/getStorageUrl.d.ts +34 -0
- package/dist/getStorageUrl.js +138 -0
- package/dist/getStorageUrl.js.map +1 -0
- package/dist/handleServerError.d.ts +2 -0
- package/dist/handleServerError.js +17 -0
- package/dist/handleServerError.js.map +1 -0
- package/dist/opa/AspectQuery.js +3 -0
- package/dist/opa/AspectQuery.js.map +1 -1
- package/dist/opa/AuthDecision.js +1 -1
- package/dist/opa/AuthDecision.js.map +1 -1
- package/dist/opa/AuthDecisionQueryClient.js +8 -5
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +7 -11
- package/dist/registry/AuthorizedRegistryClient.js +56 -21
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +5 -7
- package/dist/registry/RegistryClient.js +34 -15
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/model.d.ts +5 -0
- package/dist/registry/model.js +3 -0
- package/dist/registry/model.js.map +1 -0
- package/dist/test/arbitraries.js +2 -4
- package/dist/test/arbitraries.js.map +1 -1
- package/dist/test/buildApiClient.spec.js +2 -41
- package/dist/test/buildApiClient.spec.js.map +1 -1
- package/dist/test/db/getTestDBConfig.js +1 -1
- package/dist/test/db/getTestDBConfig.js.map +1 -1
- package/dist/test/getStorageUrl.spec.d.ts +1 -0
- package/dist/test/getStorageUrl.spec.js +95 -0
- package/dist/test/getStorageUrl.spec.js.map +1 -0
- package/dist/test/mockAuthApiHost.js +2 -26
- package/dist/test/mockAuthApiHost.js.map +1 -1
- package/dist/test/mockAuthorization.js +2 -2
- package/dist/test/mockAuthorization.js.map +1 -1
- package/dist/test/registry/buildAuthorizedClient.spec.js +9 -7
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
- package/dist/test/sampleAuthDecisions/datasetPermissionWithOrgUnitConstraint.json +2 -2
- package/dist/test/sampleAuthDecisions/extraLargeResponse.json +2519 -0
- package/dist/test/sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json +2 -2
- package/dist/test/sampleOpaResponses/extraLargeResponse.json +104869 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +19 -2
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/package.json +10 -11
package/dist/getAbsoluteUrl.js
CHANGED
|
@@ -5,32 +5,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const urijs_1 = __importDefault(require("urijs"));
|
|
7
7
|
/**
|
|
8
|
-
* Join `url` with `baseUrl` if `url` is not an absolute url
|
|
8
|
+
* Join `url` with `baseUrl` if `url` is not an absolute (full) url string
|
|
9
9
|
*
|
|
10
10
|
* @export
|
|
11
|
-
* @param {string} url
|
|
12
|
-
* @param {string} baseUrl
|
|
13
|
-
* @param {{ [key: string]:
|
|
14
|
-
*
|
|
11
|
+
* @param {string} url A full url string or a url path string (/a/b/c).
|
|
12
|
+
* @param {string} baseUrl A baseUrl used to generate a full url when a url path string is supplied via the `url` parameter.
|
|
13
|
+
* @param {{ [key: string]: string }} [optionalQueries]
|
|
14
|
+
* @param {string[]} [allowedUrlHosts] Optional; when specify, the host of `url` parameter will only be used if it is included by this list.
|
|
15
15
|
* @returns
|
|
16
16
|
*/
|
|
17
|
-
function getAbsoluteUrl(url, baseUrl, optionalQueries) {
|
|
17
|
+
function getAbsoluteUrl(url, baseUrl, optionalQueries, allowedUrlHosts) {
|
|
18
18
|
const uri = urijs_1.default(url);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
baseUrl = "";
|
|
19
|
+
const urlHost = uri.host();
|
|
20
|
+
if (urlHost) {
|
|
21
|
+
// --- absolute url, return directly only if the urlHost is included by `allowedUrlHosts` (unless `allowedUrlHosts` is not supplied)
|
|
22
|
+
if (!allowedUrlHosts ||
|
|
23
|
+
allowedUrlHosts.findIndex((item) => item === urlHost) !== -1) {
|
|
24
|
+
return url;
|
|
26
25
|
}
|
|
27
|
-
const baseUri = urijs_1.default(baseUrl);
|
|
28
|
-
const query = uri.search(true);
|
|
29
|
-
const mergedUri = baseUri.segmentCoded(baseUri.segmentCoded().concat(uri.segmentCoded()));
|
|
30
|
-
return mergedUri
|
|
31
|
-
.search(Object.assign(Object.assign({}, (query ? query : {})), (optionalQueries ? optionalQueries : {})))
|
|
32
|
-
.toString();
|
|
33
26
|
}
|
|
27
|
+
// ignore url host of `host` if any and use `baseUrl` to create the final full url string
|
|
28
|
+
if (typeof baseUrl !== "string") {
|
|
29
|
+
baseUrl = "";
|
|
30
|
+
}
|
|
31
|
+
const baseUri = urijs_1.default(baseUrl);
|
|
32
|
+
const query = uri.search(true);
|
|
33
|
+
const mergedUri = baseUri.segmentCoded(baseUri.segmentCoded().concat(uri.segmentCoded()));
|
|
34
|
+
return mergedUri
|
|
35
|
+
.search(Object.assign(Object.assign({}, (query ? query : {})), (optionalQueries ? optionalQueries : {})))
|
|
36
|
+
.toString();
|
|
34
37
|
}
|
|
35
38
|
exports.default = getAbsoluteUrl;
|
|
36
39
|
//# sourceMappingURL=getAbsoluteUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAbsoluteUrl.js","sourceRoot":"","sources":["../src/getAbsoluteUrl.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B;;;;;;;;;GASG;AACH,SAAwB,cAAc,CAClC,GAAW,EACX,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"getAbsoluteUrl.js","sourceRoot":"","sources":["../src/getAbsoluteUrl.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B;;;;;;;;;GASG;AACH,SAAwB,cAAc,CAClC,GAAW,EACX,OAAe,EACf,eAA2C,EAC3C,eAA0B;IAE1B,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,EAAE;QACT,oIAAoI;QACpI,IACI,CAAC,eAAe;YAChB,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAC9D;YACE,OAAO,GAAG,CAAC;SACd;KACJ;IACD,yFAAyF;IACzF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,EAAE,CAAC;KAChB;IACD,MAAM,OAAO,GAAG,eAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAClC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CACpD,CAAC;IAEF,OAAO,SAAS;SACX,MAAM,iCACA,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GACpB,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7C;SACD,QAAQ,EAAE,CAAC;AACpB,CAAC;AAjCD,iCAiCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getRequest<T = any, CT = string>(url: string, noCache?: boolean, extraFetchOptions?: RequestInit): Promise<T>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const fetchRequest_1 = __importDefault(require("./fetchRequest"));
|
|
16
|
+
const getRequestNoCache_1 = __importDefault(require("./getRequestNoCache"));
|
|
17
|
+
function getRequest(url, noCache = false, extraFetchOptions = {}) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
if (noCache) {
|
|
20
|
+
return yield getRequestNoCache_1.default(url, extraFetchOptions);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return yield fetchRequest_1.default("GET", url, undefined, undefined, undefined, extraFetchOptions);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.default = getRequest;
|
|
28
|
+
//# sourceMappingURL=getRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRequest.js","sourceRoot":"","sources":["../src/getRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAA0C;AAC1C,4EAAoD;AAEpD,SAA8B,UAAU,CACpC,GAAW,EACX,UAAmB,KAAK,EACxB,oBAAiC,EAAE;;QAEnC,IAAI,OAAO,EAAE;YACT,OAAO,MAAM,2BAAiB,CAAQ,GAAG,EAAE,iBAAiB,CAAC,CAAC;SACjE;aAAM;YACH,OAAO,MAAM,sBAAY,CACrB,KAAK,EACL,GAAG,EACH,SAAS,EACT,SAAS,EACT,SAAS,EACT,iBAAiB,CACpB,CAAC;SACL;IACL,CAAC;CAAA;AAjBD,6BAiBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getRequestNoCache<T = any, CT = string>(url: string, extraFetchOptions?: RequestInit): Promise<T>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const fetchRequest_1 = __importDefault(require("./fetchRequest"));
|
|
16
|
+
const createNoCacheFetchOptions_1 = __importDefault(require("./createNoCacheFetchOptions"));
|
|
17
|
+
function getRequestNoCache(url, extraFetchOptions = {}) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
return yield fetchRequest_1.default("get", url, undefined, undefined, undefined, createNoCacheFetchOptions_1.default(extraFetchOptions));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.default = getRequestNoCache;
|
|
23
|
+
//# sourceMappingURL=getRequestNoCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRequestNoCache.js","sourceRoot":"","sources":["../src/getRequestNoCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAA0C;AAC1C,4FAAoE;AAEpE,SAA8B,iBAAiB,CAC3C,GAAW,EACX,oBAAiC,EAAE;;QAEnC,OAAO,MAAM,sBAAY,CACrB,KAAK,EACL,GAAG,EACH,SAAS,EACT,SAAS,EACT,SAAS,EACT,mCAAyB,CAAC,iBAAiB,CAAC,CAC/C,CAAC;IACN,CAAC;CAAA;AAZD,oCAYC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const InvalidCharsRegEx: RegExp;
|
|
2
|
+
export declare function isValidS3ObjectKey(key: string): boolean;
|
|
3
|
+
export declare function removeInvalidChars(input: string): string;
|
|
4
|
+
/**
|
|
5
|
+
* a valid s3 object key should be no more than 1024 char and only contains char as per:
|
|
6
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
|
7
|
+
* Our goal is to construct a valid s3 object key that:
|
|
8
|
+
* - in `datasetId/distId/fileName` pattern
|
|
9
|
+
* - less than 1024 chars. preserve most of file name information.
|
|
10
|
+
* - both `datasetId`, `distId` & `fileName` will be processed to make sure they doesn't contains invalid chars other than:
|
|
11
|
+
* - a-z, A-Z, 0-9
|
|
12
|
+
* - Exclamation point (!)
|
|
13
|
+
* - Hyphen (-)
|
|
14
|
+
* - Underscore (_)
|
|
15
|
+
* - Period (.), can't be the ending char.
|
|
16
|
+
* - Asterisk (*)
|
|
17
|
+
* - Single quote (')
|
|
18
|
+
* - Open parenthesis (()
|
|
19
|
+
* - Close parenthesis ())
|
|
20
|
+
* - any invalid chars (i.e. any chars are not on the list above) will be removed.
|
|
21
|
+
* - if the processed `datasetId` (i.e. after move all invalid chars) is longer than 72 chars, use md5 hash of the original `datasetId` as the `datasetId`.
|
|
22
|
+
* - if the processed `distId` (i.e. after move all invalid chars) is longer than 72 chars, use md5 hash of the original `distId` as the `distId`.
|
|
23
|
+
* - if the produced object key is still longer than 1024, we will make processed `fileName` (i.e. after move all invalid chars) shorter by:
|
|
24
|
+
* - keep any content after the last period (.) char if the portion is no longer than 32 chars.
|
|
25
|
+
* - for the portion before the last period (.) char, only keep the first a few chars so that the whole object key is less than 1024 chars.
|
|
26
|
+
*
|
|
27
|
+
* @export
|
|
28
|
+
* @param {string} datasetId
|
|
29
|
+
* @param {string} distId
|
|
30
|
+
* @param {string} fileName
|
|
31
|
+
* @return {*} {string}
|
|
32
|
+
*/
|
|
33
|
+
export declare function getValidS3ObjectKey(datasetId: string, distId: string, fileName: string): string;
|
|
34
|
+
export default function getStorageUrl(datasetId: string, distId: string, fileName: string): string;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getValidS3ObjectKey = exports.removeInvalidChars = exports.isValidS3ObjectKey = exports.InvalidCharsRegEx = void 0;
|
|
7
|
+
const urijs_1 = __importDefault(require("urijs"));
|
|
8
|
+
const uuid_1 = require("uuid");
|
|
9
|
+
const md5_1 = __importDefault(require("crypto-js/md5"));
|
|
10
|
+
// max allowed s3 object key length
|
|
11
|
+
// minio implements an s3 alike / compatible API thus the similar limit should apply.
|
|
12
|
+
const MAX_KEY_LENGTH = 1024;
|
|
13
|
+
exports.InvalidCharsRegEx = /[^a-zA-Z0-9!\-_.*'()]/g;
|
|
14
|
+
function isValidS3ObjectKey(key) {
|
|
15
|
+
if (!key || typeof key !== "string") {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (key.length > MAX_KEY_LENGTH) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return (key.split("/").findIndex((segment) => {
|
|
22
|
+
if (!segment) {
|
|
23
|
+
// two forward slashes `//` is invalid
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (removeInvalidChars(segment) !== segment) {
|
|
27
|
+
// has invalid chars
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}) === -1);
|
|
32
|
+
}
|
|
33
|
+
exports.isValidS3ObjectKey = isValidS3ObjectKey;
|
|
34
|
+
function removeInvalidChars(input) {
|
|
35
|
+
if (!input || typeof input !== "string") {
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
return input.replace(exports.InvalidCharsRegEx, "").replace(/\.+$/, "");
|
|
39
|
+
}
|
|
40
|
+
exports.removeInvalidChars = removeInvalidChars;
|
|
41
|
+
/**
|
|
42
|
+
* a valid s3 object key should be no more than 1024 char and only contains char as per:
|
|
43
|
+
* https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
|
44
|
+
* Our goal is to construct a valid s3 object key that:
|
|
45
|
+
* - in `datasetId/distId/fileName` pattern
|
|
46
|
+
* - less than 1024 chars. preserve most of file name information.
|
|
47
|
+
* - both `datasetId`, `distId` & `fileName` will be processed to make sure they doesn't contains invalid chars other than:
|
|
48
|
+
* - a-z, A-Z, 0-9
|
|
49
|
+
* - Exclamation point (!)
|
|
50
|
+
* - Hyphen (-)
|
|
51
|
+
* - Underscore (_)
|
|
52
|
+
* - Period (.), can't be the ending char.
|
|
53
|
+
* - Asterisk (*)
|
|
54
|
+
* - Single quote (')
|
|
55
|
+
* - Open parenthesis (()
|
|
56
|
+
* - Close parenthesis ())
|
|
57
|
+
* - any invalid chars (i.e. any chars are not on the list above) will be removed.
|
|
58
|
+
* - if the processed `datasetId` (i.e. after move all invalid chars) is longer than 72 chars, use md5 hash of the original `datasetId` as the `datasetId`.
|
|
59
|
+
* - if the processed `distId` (i.e. after move all invalid chars) is longer than 72 chars, use md5 hash of the original `distId` as the `distId`.
|
|
60
|
+
* - if the produced object key is still longer than 1024, we will make processed `fileName` (i.e. after move all invalid chars) shorter by:
|
|
61
|
+
* - keep any content after the last period (.) char if the portion is no longer than 32 chars.
|
|
62
|
+
* - for the portion before the last period (.) char, only keep the first a few chars so that the whole object key is less than 1024 chars.
|
|
63
|
+
*
|
|
64
|
+
* @export
|
|
65
|
+
* @param {string} datasetId
|
|
66
|
+
* @param {string} distId
|
|
67
|
+
* @param {string} fileName
|
|
68
|
+
* @return {*} {string}
|
|
69
|
+
*/
|
|
70
|
+
function getValidS3ObjectKey(datasetId, distId, fileName) {
|
|
71
|
+
let processedDatasetId = removeInvalidChars(datasetId);
|
|
72
|
+
let processedDistId = removeInvalidChars(distId);
|
|
73
|
+
let processedFileName = removeInvalidChars(fileName);
|
|
74
|
+
if (!processedDatasetId.length) {
|
|
75
|
+
throw new Error("Failed to create object key: DatasetId after processing is an empty string.");
|
|
76
|
+
}
|
|
77
|
+
if (!processedDistId.length) {
|
|
78
|
+
throw new Error("Failed to create object key: DistId after processing is an empty string.");
|
|
79
|
+
}
|
|
80
|
+
if (!processedFileName.length) {
|
|
81
|
+
// the file name doesn't contain any valid chars.
|
|
82
|
+
// we generate a file name here.
|
|
83
|
+
processedFileName = `untitled_file_${uuid_1.v4()}.dat`;
|
|
84
|
+
}
|
|
85
|
+
// try to shorten the object key as per rules in description above
|
|
86
|
+
if (processedDatasetId.length > 72) {
|
|
87
|
+
processedDatasetId = md5_1.default(processedDatasetId).toString();
|
|
88
|
+
}
|
|
89
|
+
if (processedDistId.length > 72) {
|
|
90
|
+
processedDistId = md5_1.default(processedDistId).toString();
|
|
91
|
+
}
|
|
92
|
+
const totalLength = processedDatasetId.length +
|
|
93
|
+
processedDistId.length +
|
|
94
|
+
processedFileName.length +
|
|
95
|
+
2; // 2 delimiter chars (forward slash)
|
|
96
|
+
if (totalLength < MAX_KEY_LENGTH) {
|
|
97
|
+
// we already got a valid object key
|
|
98
|
+
return `${processedDatasetId}/${processedDistId}/${processedFileName}`;
|
|
99
|
+
}
|
|
100
|
+
// if still too long, we need shorten the file name part.
|
|
101
|
+
const extNameIdx = processedFileName.lastIndexOf(".");
|
|
102
|
+
if (extNameIdx === -1) {
|
|
103
|
+
//there is no extension name, just simply cut the file name to make object key length fall under MAX_KEY_LENGTH
|
|
104
|
+
return `${processedDatasetId}/${processedDistId}/${processedFileName}`.substr(0, MAX_KEY_LENGTH);
|
|
105
|
+
}
|
|
106
|
+
// file extension name length (including `.`)
|
|
107
|
+
const extNameLength = processedFileName.length - extNameIdx;
|
|
108
|
+
const extNameLengthDiff = extNameLength - 32;
|
|
109
|
+
if (extNameLengthDiff > 0) {
|
|
110
|
+
// cut the extName to 32 chars long
|
|
111
|
+
processedFileName = processedFileName.substr(0, processedFileName.length - extNameLengthDiff);
|
|
112
|
+
if (totalLength - extNameLengthDiff < MAX_KEY_LENGTH) {
|
|
113
|
+
return `${processedDatasetId}/${processedDistId}/${processedFileName}`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// still too long after cut file extension name, will have to shorten the portion before `.` of the file name
|
|
117
|
+
const newExtNameIdx = processedFileName.lastIndexOf(".");
|
|
118
|
+
const newExtName = processedFileName.substr(newExtNameIdx);
|
|
119
|
+
const newFileNameNoExtName = processedFileName.substring(0, newExtNameIdx);
|
|
120
|
+
// cut newFileNameNoExtName to make total length fall under MAX_KEY_LENGTH
|
|
121
|
+
const excessLength = processedDatasetId.length +
|
|
122
|
+
processedDistId.length +
|
|
123
|
+
processedFileName.length +
|
|
124
|
+
2 -
|
|
125
|
+
MAX_KEY_LENGTH;
|
|
126
|
+
return `${processedDatasetId}/${processedDistId}/${newFileNameNoExtName.substr(0, newFileNameNoExtName.length - excessLength)}${newExtName}`;
|
|
127
|
+
}
|
|
128
|
+
exports.getValidS3ObjectKey = getValidS3ObjectKey;
|
|
129
|
+
function getStorageUrl(datasetId, distId, fileName) {
|
|
130
|
+
const validObjectKey = getValidS3ObjectKey(datasetId, distId, fileName);
|
|
131
|
+
const parts = validObjectKey.split("/");
|
|
132
|
+
if (parts.length !== 3) {
|
|
133
|
+
throw new Error(`Failed to create storage object download url for a file. Invalid object object key generated: ${validObjectKey}`);
|
|
134
|
+
}
|
|
135
|
+
return urijs_1.default("magda://storage-api").segmentCoded(parts).toString();
|
|
136
|
+
}
|
|
137
|
+
exports.default = getStorageUrl;
|
|
138
|
+
//# sourceMappingURL=getStorageUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStorageUrl.js","sourceRoot":"","sources":["../src/getStorageUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ServerError_1 = __importDefault(require("./ServerError"));
|
|
7
|
+
function handleServerError(req, res, e) {
|
|
8
|
+
if (e instanceof ServerError_1.default) {
|
|
9
|
+
res.status(e.statusCode).send(e.message);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
res.status(500).send("" + e);
|
|
13
|
+
}
|
|
14
|
+
console.log(`Error on request to ${req.originalUrl}: ${e}`);
|
|
15
|
+
}
|
|
16
|
+
exports.default = handleServerError;
|
|
17
|
+
//# sourceMappingURL=handleServerError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleServerError.js","sourceRoot":"","sources":["../src/handleServerError.ts"],"names":[],"mappings":";;;;;AACA,gEAAwC;AAExC,SAAwB,iBAAiB,CAAC,GAAY,EAAE,GAAa,EAAE,CAAM;IACzE,IAAI,CAAC,YAAY,qBAAW,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC5C;SAAM;QACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAChC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAPD,oCAOC"}
|
package/dist/opa/AspectQuery.js
CHANGED
|
@@ -28,10 +28,13 @@ class AspectQueryValue {
|
|
|
28
28
|
switch (typeof value) {
|
|
29
29
|
case "number":
|
|
30
30
|
this.postgresType = sql_syntax_1.sqls `NUMERIC`;
|
|
31
|
+
break;
|
|
31
32
|
case "boolean":
|
|
32
33
|
this.postgresType = sql_syntax_1.sqls `BOOL`;
|
|
34
|
+
break;
|
|
33
35
|
case "string":
|
|
34
36
|
this.postgresType = sql_syntax_1.sqls `TEXT`;
|
|
37
|
+
break;
|
|
35
38
|
default:
|
|
36
39
|
throw new Error("getPostgresValueTypeCastStr: unsupported data type: `${" +
|
|
37
40
|
typeof value +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AspectQuery.js","sourceRoot":"","sources":["../../src/opa/AspectQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA6C;AAC7C,0CAAiD;AAEjD,MAAa,gBAAgB;IAIzB,YAAY,KAAgC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,QAAQ,OAAO,KAAK,EAAE;YAClB,KAAK,QAAQ;gBACT,IAAI,CAAC,YAAY,GAAG,iBAAI,CAAA,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AspectQuery.js","sourceRoot":"","sources":["../../src/opa/AspectQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/opa/AuthDecision.js
CHANGED
|
@@ -56,7 +56,7 @@ class AuthDecision {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
toSql(config) {
|
|
59
|
-
return sql_syntax_1.default.joinWithOr(this.toAspectQueryGroups(config.prefixes).map((item) => item.toSql(config)));
|
|
59
|
+
return sql_syntax_1.default.joinWithOr(this.toAspectQueryGroups(config.prefixes).map((item) => item.toSql(config))).roundBracket();
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
exports.default = AuthDecision;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthDecision.js","sourceRoot":"","sources":["../../src/opa/AuthDecision.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAWuB;AACvB,yDAA6C;AAK7C,MAAqB,YAAY;IAQ7B,YACI,gBAAyB,EACzB,aAA6B,EAC7B,MAAY,EACZ,WAAoB,KAAK,EACzB,QAAkB,EAAE,EACpB,QAAmB;QAEnB,IAAI,OAAO,gBAAgB,KAAK,SAAS,EAAE;YACvC,MAAM,IAAI,KAAK,CACX,8DAA8D,CACjE,CAAC;SACL;QACD,IAAI,gBAAgB,IAAI,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,EAAE;YAC5C,MAAM,IAAI,KAAK,CACX,wGAAwG,CAC3G,CAAC;SACL;QACD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAiB;;QAC7B,OAAO,IAAI,YAAY,CACnB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,QACtB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,0CAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAClE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EACZ,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAC7B,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CACjB,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,QAAkB;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CACpC,CAAC;SACL;aAAM;YACH,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC/B,qBAAqB;gBACrB,OAAO,CAAC,IAAI,8BAAgB,CAAC,CAAC,IAAI,6BAAe,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACH,OAAO,CAAC,IAAI,8BAAgB,CAAC,CAAC,IAAI,8BAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;aAC3D;SACJ;IACL,CAAC;IAED,KAAK,CAAC,MAA8B;QAChC,OAAO,oBAAS,CAAC,UAAU,CACvB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CACrB,CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthDecision.js","sourceRoot":"","sources":["../../src/opa/AuthDecision.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,12 +40,15 @@ class AuthDecisionQueryClient {
|
|
|
40
40
|
this.fetchOptions = {};
|
|
41
41
|
this.authApiBaseUrl = authApiBaseUrl;
|
|
42
42
|
this.skipQuery = skipQuery;
|
|
43
|
+
if (this.skipQuery) {
|
|
44
|
+
console.warn("WARNING: Skip OPA (policy engine) querying option is turned on! This is fine for testing or playing around, but this should NOT BE TURNED ON FOR PRODUCTION!");
|
|
45
|
+
}
|
|
43
46
|
}
|
|
44
47
|
getAuthDecision(config, jwtToken) {
|
|
45
48
|
var _a, _b;
|
|
46
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
50
|
if (this.skipQuery) {
|
|
48
|
-
console.warn("WARNING: Skip OPA (policy engine) querying option is turned on!
|
|
51
|
+
console.warn("WARNING: return unconditional true as Skip OPA (policy engine) querying option is turned on!");
|
|
49
52
|
return AuthDecision_1.UnconditionalTrueDecision;
|
|
50
53
|
}
|
|
51
54
|
const queryParams = {};
|
|
@@ -74,11 +77,9 @@ class AuthDecisionQueryClient {
|
|
|
74
77
|
.concat(["opa", "decision"])
|
|
75
78
|
.concat(urijs_1.default(config.operationUri).segmentCoded());
|
|
76
79
|
const reqUri = baseUri.segmentCoded(urlSegments).search(queryParams);
|
|
77
|
-
const fetchConfig = Object.assign(Object.assign(Object.assign({}, AuthDecisionQueryClient.fetchOptions), this.fetchOptions), { method: usePost ? "POST" : "GET" });
|
|
80
|
+
const fetchConfig = Object.assign(Object.assign(Object.assign({ headers: {} }, AuthDecisionQueryClient.fetchOptions), this.fetchOptions), { method: usePost ? "POST" : "GET" });
|
|
78
81
|
if (jwtToken) {
|
|
79
|
-
fetchConfig.headers =
|
|
80
|
-
"X-Magda-Session": jwtToken
|
|
81
|
-
};
|
|
82
|
+
fetchConfig.headers["X-Magda-Session"] = jwtToken;
|
|
82
83
|
}
|
|
83
84
|
const requestData = {};
|
|
84
85
|
if (config === null || config === void 0 ? void 0 : config.input) {
|
|
@@ -92,6 +93,8 @@ class AuthDecisionQueryClient {
|
|
|
92
93
|
}
|
|
93
94
|
if (usePost) {
|
|
94
95
|
fetchConfig.body = JSON.stringify(requestData);
|
|
96
|
+
fetchConfig.headers["Content-Type"] =
|
|
97
|
+
"application/json";
|
|
95
98
|
}
|
|
96
99
|
const res = yield isomorphic_fetch_1.default(reqUri.toString(), fetchConfig);
|
|
97
100
|
if (res.status != 200) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthDecisionQueryClient.js","sourceRoot":"","sources":["../../src/opa/AuthDecisionQueryClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAqC;AACrC,kDAA0B;AAC1B,+DAAyE;AAgBzE,MAAM,uBAAuB;IAOzB,YAAY,cAAsB,EAAE,YAAqB,KAAK;QAN7C,mBAAc,GAAW,EAAE,CAAC;QAItC,iBAAY,GAAgB,EAAE,CAAC;QAGlC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthDecisionQueryClient.js","sourceRoot":"","sources":["../../src/opa/AuthDecisionQueryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import { AspectDefinition, Record, WebHook, Operation, WebHookAcknowledgementResponse, MultipleDeleteResult, EventsPage } from "../generated/registry/api";
|
|
1
|
+
import { AspectDefinition, Record, WebHook, Operation, WebHookAcknowledgementResponse, MultipleDeleteResult, EventsPage, DeleteResult } from "../generated/registry/api";
|
|
2
2
|
import RegistryClient, { RegistryOptions } from "./RegistryClient";
|
|
3
3
|
import { Maybe } from "tsmonad";
|
|
4
|
-
export interface
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
export interface AuthorizedRegistryOptions extends RegistryOptions {
|
|
5
|
+
jwt?: string;
|
|
6
|
+
userId?: string;
|
|
7
|
+
jwtSecret?: string;
|
|
8
8
|
}
|
|
9
|
-
export interface AuthorizedRegistryJwtOptions extends RegistryOptions {
|
|
10
|
-
jwt: string;
|
|
11
|
-
userId?: never;
|
|
12
|
-
jwtSecret?: never;
|
|
13
|
-
}
|
|
14
|
-
export declare type AuthorizedRegistryOptions = AuthorizedRegistryUserIdAndJwtSecretOptions | AuthorizedRegistryJwtOptions;
|
|
15
9
|
export default class AuthorizedRegistryClient extends RegistryClient {
|
|
16
10
|
protected jwt: string;
|
|
17
11
|
constructor(options: AuthorizedRegistryOptions);
|
|
@@ -23,7 +17,9 @@ export default class AuthorizedRegistryClient extends RegistryClient {
|
|
|
23
17
|
getHooks(): Promise<WebHook[] | Error>;
|
|
24
18
|
resumeHook(webhookId: string, succeeded?: boolean, lastEventIdReceived?: string, active?: boolean): Promise<WebHookAcknowledgementResponse | Error>;
|
|
25
19
|
putRecord(record: Record, tenantId?: number): Promise<Record | Error>;
|
|
20
|
+
patchRecord(recordId: string, recordPatch: Operation[], tenantId?: number): Promise<Record | Error>;
|
|
26
21
|
putRecordAspect(recordId: string, aspectId: string, aspect: any, tenantId?: number): Promise<Record | Error>;
|
|
22
|
+
deleteRecordAspect(recordId: string, aspectId: string, tenantId?: number): Promise<DeleteResult | Error>;
|
|
27
23
|
patchRecordAspect(recordId: string, aspectId: string, aspectPatch: Operation[], tenantId?: number): Promise<Record | Error>;
|
|
28
24
|
deleteBySource(sourceTagToPreserve: string, sourceId: string, tenantId?: number): Promise<MultipleDeleteResult | "Processing" | Error>;
|
|
29
25
|
getRecordHistory(id: string, pageToken?: string, start?: number, limit?: number): Promise<EventsPage | Error>;
|