@cryptexlabs/codex-nodejs-common 0.16.0 → 0.16.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/lib/package.json +1 -1
- package/lib/src/auth/authf.guard.js +6 -5
- package/lib/src/auth/authf.guard.js.map +1 -1
- package/lib/src/decorator/api-meta-headers.d.ts +1 -1
- package/lib/src/decorator/api-meta-headers.js +31 -11
- package/lib/src/decorator/api-meta-headers.js.map +1 -1
- package/lib/src/middleware/api-headers-validation.middleware.js +8 -0
- package/lib/src/middleware/api-headers-validation.middleware.js.map +1 -1
- package/lib/src/middleware/index.d.ts +1 -0
- package/lib/src/middleware/index.js +1 -0
- package/lib/src/middleware/index.js.map +1 -1
- package/lib/src/middleware/query-authorization.middleware.d.ts +4 -0
- package/lib/src/middleware/query-authorization.middleware.js +25 -0
- package/lib/src/middleware/query-authorization.middleware.js.map +1 -0
- package/package.json +1 -1
- package/src/auth/authf.guard.ts +2 -1
- package/src/decorator/api-meta-headers.ts +41 -11
- package/src/middleware/api-headers-validation.middleware.ts +10 -0
- package/src/middleware/index.ts +1 -0
- package/src/middleware/query-authorization.middleware.ts +19 -0
package/lib/package.json
CHANGED
|
@@ -126,7 +126,7 @@ let AuthfGuard = class AuthfGuard {
|
|
|
126
126
|
}, this.config.blacklistRefreshIntervalInSeconds * 1000);
|
|
127
127
|
}
|
|
128
128
|
async _updateBlacklist(context) {
|
|
129
|
-
var _a, _b, _c, _d, _e, _f;
|
|
129
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
130
130
|
const headers = this._getApiHeaders(context);
|
|
131
131
|
context.logger.verbose(`Fetching blacklist`);
|
|
132
132
|
const subjectBlacklistResponse = await axios_1.default.get(`/api/v1/blacklisted-subjects`, {
|
|
@@ -136,16 +136,17 @@ let AuthfGuard = class AuthfGuard {
|
|
|
136
136
|
context.logger.verbose(`Blacklist response`, subjectBlacklistResponse.data);
|
|
137
137
|
if (((_a = subjectBlacklistResponse.data) === null || _a === void 0 ? void 0 : _a.data) !== undefined &&
|
|
138
138
|
Array.isArray((_b = subjectBlacklistResponse.data) === null || _b === void 0 ? void 0 : _b.data)) {
|
|
139
|
-
if (this._blacklistedSubjects.length !==
|
|
139
|
+
if (this._blacklistedSubjects.length !==
|
|
140
|
+
((_d = (_c = subjectBlacklistResponse.data) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
140
141
|
context.logger.debug(`Got change in blacklist`, {
|
|
141
142
|
old: this._blacklistedSubjects,
|
|
142
|
-
new: (
|
|
143
|
+
new: (_e = subjectBlacklistResponse.data) === null || _e === void 0 ? void 0 : _e.data,
|
|
143
144
|
});
|
|
144
145
|
}
|
|
145
146
|
else if (this._blacklistedSubjects.length > 0) {
|
|
146
|
-
context.logger.verbose(`Got blacklist`, (
|
|
147
|
+
context.logger.verbose(`Got blacklist`, (_f = subjectBlacklistResponse.data) === null || _f === void 0 ? void 0 : _f.data);
|
|
147
148
|
}
|
|
148
|
-
this._blacklistedSubjects = (
|
|
149
|
+
this._blacklistedSubjects = (_g = subjectBlacklistResponse.data) === null || _g === void 0 ? void 0 : _g.data;
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authf.guard.js","sourceRoot":"","sources":["../../../src/auth/authf.guard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authf.guard.js","sourceRoot":"","sources":["../../../src/auth/authf.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function ApiMetaHeaders(): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
1
|
+
export declare function ApiMetaHeaders(required?: boolean): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -4,18 +4,22 @@ exports.ApiMetaHeaders = ApiMetaHeaders;
|
|
|
4
4
|
const swagger_1 = require("@nestjs/swagger");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
|
-
function ApiMetaHeaders() {
|
|
7
|
+
function ApiMetaHeaders(required = undefined) {
|
|
8
8
|
return (0, common_1.applyDecorators)(...[
|
|
9
9
|
(0, swagger_1.ApiHeader)({
|
|
10
10
|
name: "X-Correlation-Id",
|
|
11
|
-
required:
|
|
11
|
+
required: required !== undefined
|
|
12
|
+
? required
|
|
13
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
12
14
|
schema: {
|
|
13
15
|
example: (0, uuid_1.v4)(),
|
|
14
16
|
},
|
|
15
17
|
}),
|
|
16
18
|
(0, swagger_1.ApiHeader)({
|
|
17
19
|
name: "Accept-Language",
|
|
18
|
-
required:
|
|
20
|
+
required: required !== undefined
|
|
21
|
+
? required
|
|
22
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
19
23
|
schema: {
|
|
20
24
|
example: "en-US",
|
|
21
25
|
},
|
|
@@ -23,7 +27,9 @@ function ApiMetaHeaders() {
|
|
|
23
27
|
(0, swagger_1.ApiHeader)({
|
|
24
28
|
name: "X-Started",
|
|
25
29
|
description: "The time that the very first user initiated or time initiated event that eventually lead to this api being called was created",
|
|
26
|
-
required:
|
|
30
|
+
required: required !== undefined
|
|
31
|
+
? required
|
|
32
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
27
33
|
schema: {
|
|
28
34
|
example: new Date().toISOString(),
|
|
29
35
|
},
|
|
@@ -31,7 +37,9 @@ function ApiMetaHeaders() {
|
|
|
31
37
|
(0, swagger_1.ApiHeader)({
|
|
32
38
|
name: "X-Context-Category",
|
|
33
39
|
description: "A category for the context of the request. For example 'test' or 'performance test'",
|
|
34
|
-
required:
|
|
40
|
+
required: required !== undefined
|
|
41
|
+
? required
|
|
42
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
35
43
|
schema: {
|
|
36
44
|
example: "default",
|
|
37
45
|
},
|
|
@@ -39,7 +47,9 @@ function ApiMetaHeaders() {
|
|
|
39
47
|
(0, swagger_1.ApiHeader)({
|
|
40
48
|
name: "X-Context-Id",
|
|
41
49
|
description: "A unique context identifier used for correlating logs and metrics usually for performance or experimental testing",
|
|
42
|
-
required:
|
|
50
|
+
required: required !== undefined
|
|
51
|
+
? required
|
|
52
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
43
53
|
schema: {
|
|
44
54
|
example: "none",
|
|
45
55
|
},
|
|
@@ -47,7 +57,9 @@ function ApiMetaHeaders() {
|
|
|
47
57
|
(0, swagger_1.ApiHeader)({
|
|
48
58
|
name: "X-Client-Id",
|
|
49
59
|
description: "A unique identifier for the client to help identify exactly which application or third party is making the requests",
|
|
50
|
-
required:
|
|
60
|
+
required: required !== undefined
|
|
61
|
+
? required
|
|
62
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
51
63
|
schema: {},
|
|
52
64
|
examples: {
|
|
53
65
|
UUIDV4: {
|
|
@@ -61,7 +73,9 @@ function ApiMetaHeaders() {
|
|
|
61
73
|
(0, swagger_1.ApiHeader)({
|
|
62
74
|
name: "X-Client-Name",
|
|
63
75
|
description: "The name of the client",
|
|
64
|
-
required:
|
|
76
|
+
required: required !== undefined
|
|
77
|
+
? required
|
|
78
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
65
79
|
schema: {
|
|
66
80
|
example: "swagger",
|
|
67
81
|
},
|
|
@@ -70,7 +84,9 @@ function ApiMetaHeaders() {
|
|
|
70
84
|
name: "X-Client-Version",
|
|
71
85
|
description: "The version of the client. If the client is making bad requests this helps " +
|
|
72
86
|
"identify which version of the client is making the bad requests",
|
|
73
|
-
required:
|
|
87
|
+
required: required !== undefined
|
|
88
|
+
? required
|
|
89
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
74
90
|
schema: {
|
|
75
91
|
example: "0.3.6",
|
|
76
92
|
},
|
|
@@ -78,7 +94,9 @@ function ApiMetaHeaders() {
|
|
|
78
94
|
(0, swagger_1.ApiHeader)({
|
|
79
95
|
name: "X-Client-Variant",
|
|
80
96
|
description: "Usually an environment or build type such as dev, test, or prod",
|
|
81
|
-
required:
|
|
97
|
+
required: required !== undefined
|
|
98
|
+
? required
|
|
99
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
82
100
|
schema: {
|
|
83
101
|
example: "dev",
|
|
84
102
|
},
|
|
@@ -86,7 +104,9 @@ function ApiMetaHeaders() {
|
|
|
86
104
|
(0, swagger_1.ApiHeader)({
|
|
87
105
|
name: "X-Created",
|
|
88
106
|
description: "The time the client initiated the http request",
|
|
89
|
-
required:
|
|
107
|
+
required: required !== undefined
|
|
108
|
+
? required
|
|
109
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
90
110
|
schema: {
|
|
91
111
|
example: new Date().toISOString(),
|
|
92
112
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-meta-headers.js","sourceRoot":"","sources":["../../../src/decorator/api-meta-headers.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"api-meta-headers.js","sourceRoot":"","sources":["../../../src/decorator/api-meta-headers.ts"],"names":[],"mappings":";;AAIA,wCA+IC;AAnJD,6CAA4C;AAC5C,2CAAiD;AACjD,+BAAoC;AAEpC,SAAgB,cAAc,CAAC,WAAoB,SAAS;IAC1D,OAAO,IAAA,wBAAe,EACpB,GAAG;QACD,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAA,SAAM,GAAE;aAClB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,+HAA+H;YACjI,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,qFAAqF;YACvF,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,mHAAmH;YACrH,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;aAChB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,aAAa;YACnB,WAAW,EACT,qHAAqH;YACvH,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,KAAK,EAAE,sCAAsC;iBAC9C;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC;iBACT;aACF;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,6EAA6E;gBAC7E,iEAAiE;YACnE,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,iEAAiE;YACnE,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK;aACf;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EACN,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;YACrD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,yEAAyE;YAC3E,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC3B;SACF,CAAC;KACH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -24,6 +24,7 @@ let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
|
24
24
|
this.contextBuilder = contextBuilder;
|
|
25
25
|
}
|
|
26
26
|
use(req, res, next) {
|
|
27
|
+
var _a, _b, _c;
|
|
27
28
|
const requiredHeaders = {
|
|
28
29
|
"x-correlation-id": (context, correlationId) => {
|
|
29
30
|
if (correlationId.trim() === "") {
|
|
@@ -123,6 +124,13 @@ let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
|
123
124
|
if (this.config.apiPrefixes.some((prefix) => {
|
|
124
125
|
return req.path.startsWith(`/${prefix}`);
|
|
125
126
|
})) {
|
|
127
|
+
const outputParam = (_b = (_a = req === null || req === void 0 ? void 0 : req.query) === null || _a === void 0 ? void 0 : _a.output) !== null && _b !== void 0 ? _b : (_c = req === null || req === void 0 ? void 0 : req.query) === null || _c === void 0 ? void 0 : _c.output;
|
|
128
|
+
const isGetNonJson = ((req === null || req === void 0 ? void 0 : req.method) || "").toUpperCase() === "GET" &&
|
|
129
|
+
outputParam !== undefined &&
|
|
130
|
+
String(outputParam).toLowerCase() !== "json";
|
|
131
|
+
if (isGetNonJson) {
|
|
132
|
+
return next();
|
|
133
|
+
}
|
|
126
134
|
const missingHeaders = Object.keys(requiredHeaders).filter((header) => !req.headers[header.toLowerCase()]);
|
|
127
135
|
if (missingHeaders.length > 0) {
|
|
128
136
|
throw new common_1.BadRequestException(`Missing required headers: ${missingHeaders.join(", ")}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-headers-validation.middleware.js","sourceRoot":"","sources":["../../../src/middleware/api-headers-validation.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,sCAA0C;AAC1C,kCAAiD;AACjD,wCAAqD;AACrD,iDAA6C;AAGtC,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IACzC,YACqC,MAAqB,EACZ,cAA8B;QADvC,WAAM,GAAN,MAAM,CAAe;QACZ,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB
|
|
1
|
+
{"version":3,"file":"api-headers-validation.middleware.js","sourceRoot":"","sources":["../../../src/middleware/api-headers-validation.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,sCAA0C;AAC1C,kCAAiD;AACjD,wCAAqD;AACrD,iDAA6C;AAGtC,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IACzC,YACqC,MAAqB,EACZ,cAA8B;QADvC,WAAM,GAAN,MAAM,CAAe;QACZ,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB;;QACtC,MAAM,eAAe,GAAG;YAOtB,kBAAkB,EAAE,CAAC,OAAgB,EAAE,aAAqB,EAAQ,EAAE;gBACpE,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAChC,MAAM,IAAI,4BAAmB,CAC3B,0UAA0U,CAC3U,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,iBAAU,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,4BAAmB,CAC3B,uGAAuG,CACxG,CAAC;gBACJ,CAAC;YACH,CAAC;YAMD,iBAAiB,EAAE,CAAC,OAAgB,EAAE,cAAsB,EAAQ,EAAE;gBACpE,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjC,MAAM,IAAI,4BAAmB,CAC3B,sDAAsD,CACvD,CAAC;gBACJ,CAAC;gBACD,MAAM,cAAc,GAAG,iBAAU,CAAC,iCAAiC,CACjE,OAAO,EACP,cAAc,CACf,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,4BAAmB,CAC3B,kKAAkK,CACnK,CAAC;gBACJ,CAAC;YACH,CAAC;YAMD,WAAW,EAAE,CAAC,OAAgB,EAAE,OAAe,EAAQ,EAAE;gBACvD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1B,MAAM,IAAI,4BAAmB,CAAC,2BAA2B,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,CAAC,oBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,4BAAmB,CAC3B,2GAA2G,CAC5G,CAAC;gBACJ,CAAC;YACH,CAAC;YAKD,WAAW,EAAE,CAAC,OAAgB,EAAE,OAAe,EAAQ,EAAE;gBACvD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1B,MAAM,IAAI,4BAAmB,CAAC,2BAA2B,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,CAAC,oBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,4BAAmB,CAC3B,2GAA2G,CAC5G,CAAC;gBACJ,CAAC;YACH,CAAC;YAKD,oBAAoB,EAAE,CACpB,OAAgB,EAChB,eAAuB,EACjB,EAAE;gBACR,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAClC,MAAM,IAAI,4BAAmB,CAC3B,kIAAkI,CACnI,CAAC;gBACJ,CAAC;YACH,CAAC;YAMD,cAAc,EAAE,CAAC,OAAgB,EAAE,SAAiB,EAAQ,EAAE;gBAC5D,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,4BAAmB,CAAC,8BAA8B,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,CAAC,iBAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBACjE,MAAM,IAAI,4BAAmB,CAC3B,2KAA2K,CAC5K,CAAC;gBACJ,CAAC;YACH,CAAC;YAMD,aAAa,EAAE,CAAC,OAAgB,EAAE,QAAgB,EAAQ,EAAE;gBAC1D,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC3B,MAAM,IAAI,4BAAmB,CAC3B,yUAAyU,CAC1U,CAAC;gBACJ,CAAC;gBACD,IACE,CAAC,iBAAU,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACnC,CAAC,iBAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC/B,CAAC;oBACD,MAAM,IAAI,4BAAmB,CAC3B,+DAA+D,CAChE,CAAC;gBACJ,CAAC;YACH,CAAC;YAKD,eAAe,EAAE,CAAC,OAAgB,EAAE,UAAkB,EAAQ,EAAE;gBAC9D,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC7B,MAAM,IAAI,4BAAmB,CAC3B,yHAAyH,CAC1H,CAAC;gBACJ,CAAC;YACH,CAAC;YAKD,kBAAkB,EAAE,CAAC,OAAgB,EAAE,aAAqB,EAAQ,EAAE;gBACpE,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAChC,MAAM,IAAI,4BAAmB,CAC3B,sGAAsG,CACvG,CAAC;gBACJ,CAAC;YACH,CAAC;YAMD,kBAAkB,EAAE,CAAC,OAAgB,EAAE,aAAqB,EAAQ,EAAE;gBACpE,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAChC,MAAM,IAAI,4BAAmB,CAC3B,wRAAwR,CACzR,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;QAEF,MAAM,eAAe,GAAG;YAKtB,OAAO,EAAE,CAAC,OAAgB,EAAE,GAAW,EAAQ,EAAE;gBAC/C,IAAI,CAAC;oBACH,IAAI,GAAG,EAAE,CAAC;wBACR,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,IAAI,4BAAmB,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YACD,YAAY,EAAE,CAAC,OAAgB,EAAE,QAAgB,EAAQ,EAAE;gBAEzD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAK,IAAY,CAAC,iBAAiB,EAAE,CAAC;wBACpC,IACE,CAAE,IAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC/D,CAAC;4BACD,MAAM,IAAI,4BAAmB,CAC3B,kCAAkC,QAAQ,GAAG,CAC9C,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,wEAAwE,CACzE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;QAEF,IACE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACtC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,EACF,CAAC;YAED,MAAM,WAAW,GAAG,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,MAAM,mCAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,MAAM,CAAC;YAC7D,MAAM,YAAY,GAChB,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,KAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;gBAC3C,WAAW,KAAK,SAAS;gBACzB,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YAE/C,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CACxD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC/C,CAAC;YAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,4BAAmB,CAC3B,6BAA6B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc;iBAC1C,KAAK,EAAE;iBACP,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;iBAC/B,SAAS,EAAE,CAAC;YAEf,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACvC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;YAED,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACvC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AAhPY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCADiB,sBAAa;QACI,wBAAc;GAHjE,8BAA8B,CAgP1C"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./api-headers-validation.middleware"), exports);
|
|
18
18
|
__exportStar(require("./forwarded-uri.middleware"), exports);
|
|
19
|
+
__exportStar(require("./query-authorization.middleware"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,6DAA2C;AAC3C,mEAAiD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.QueryAuthorizationMiddleware = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let QueryAuthorizationMiddleware = class QueryAuthorizationMiddleware {
|
|
12
|
+
use(req, res, next) {
|
|
13
|
+
var _a;
|
|
14
|
+
const queryAuth = (_a = req === null || req === void 0 ? void 0 : req.query) === null || _a === void 0 ? void 0 : _a.authorization;
|
|
15
|
+
if (typeof queryAuth === "string" && queryAuth.length > 0) {
|
|
16
|
+
req.headers.authorization = queryAuth;
|
|
17
|
+
}
|
|
18
|
+
next();
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.QueryAuthorizationMiddleware = QueryAuthorizationMiddleware;
|
|
22
|
+
exports.QueryAuthorizationMiddleware = QueryAuthorizationMiddleware = __decorate([
|
|
23
|
+
(0, common_1.Injectable)()
|
|
24
|
+
], QueryAuthorizationMiddleware);
|
|
25
|
+
//# sourceMappingURL=query-authorization.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-authorization.middleware.js","sourceRoot":"","sources":["../../../src/middleware/query-authorization.middleware.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4D;AASrD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB;;QACtC,MAAM,SAAS,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,aAAa,CAAC;QAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;QACxC,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AATY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;GACA,4BAA4B,CASxC"}
|
package/package.json
CHANGED
package/src/auth/authf.guard.ts
CHANGED
|
@@ -161,7 +161,8 @@ export class AuthfGuard implements CanActivate {
|
|
|
161
161
|
Array.isArray(subjectBlacklistResponse.data?.data)
|
|
162
162
|
) {
|
|
163
163
|
if (
|
|
164
|
-
this._blacklistedSubjects.length !==
|
|
164
|
+
this._blacklistedSubjects.length !==
|
|
165
|
+
subjectBlacklistResponse.data?.data?.length
|
|
165
166
|
) {
|
|
166
167
|
context.logger.debug(`Got change in blacklist`, {
|
|
167
168
|
old: this._blacklistedSubjects,
|
|
@@ -2,19 +2,25 @@ import { ApiHeader } from "@nestjs/swagger";
|
|
|
2
2
|
import { applyDecorators } from "@nestjs/common";
|
|
3
3
|
import { v4 as uuidV4 } from "uuid";
|
|
4
4
|
|
|
5
|
-
export function ApiMetaHeaders() {
|
|
5
|
+
export function ApiMetaHeaders(required: boolean = undefined) {
|
|
6
6
|
return applyDecorators(
|
|
7
7
|
...[
|
|
8
8
|
ApiHeader({
|
|
9
9
|
name: "X-Correlation-Id",
|
|
10
|
-
required:
|
|
10
|
+
required:
|
|
11
|
+
required !== undefined
|
|
12
|
+
? required
|
|
13
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
11
14
|
schema: {
|
|
12
15
|
example: uuidV4(),
|
|
13
16
|
},
|
|
14
17
|
}),
|
|
15
18
|
ApiHeader({
|
|
16
19
|
name: "Accept-Language",
|
|
17
|
-
required:
|
|
20
|
+
required:
|
|
21
|
+
required !== undefined
|
|
22
|
+
? required
|
|
23
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
18
24
|
schema: {
|
|
19
25
|
example: "en-US",
|
|
20
26
|
},
|
|
@@ -23,7 +29,10 @@ export function ApiMetaHeaders() {
|
|
|
23
29
|
name: "X-Started",
|
|
24
30
|
description:
|
|
25
31
|
"The time that the very first user initiated or time initiated event that eventually lead to this api being called was created",
|
|
26
|
-
required:
|
|
32
|
+
required:
|
|
33
|
+
required !== undefined
|
|
34
|
+
? required
|
|
35
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
27
36
|
schema: {
|
|
28
37
|
example: new Date().toISOString(),
|
|
29
38
|
},
|
|
@@ -32,7 +41,10 @@ export function ApiMetaHeaders() {
|
|
|
32
41
|
name: "X-Context-Category",
|
|
33
42
|
description:
|
|
34
43
|
"A category for the context of the request. For example 'test' or 'performance test'",
|
|
35
|
-
required:
|
|
44
|
+
required:
|
|
45
|
+
required !== undefined
|
|
46
|
+
? required
|
|
47
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
36
48
|
schema: {
|
|
37
49
|
example: "default",
|
|
38
50
|
},
|
|
@@ -41,7 +53,10 @@ export function ApiMetaHeaders() {
|
|
|
41
53
|
name: "X-Context-Id",
|
|
42
54
|
description:
|
|
43
55
|
"A unique context identifier used for correlating logs and metrics usually for performance or experimental testing",
|
|
44
|
-
required:
|
|
56
|
+
required:
|
|
57
|
+
required !== undefined
|
|
58
|
+
? required
|
|
59
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
45
60
|
schema: {
|
|
46
61
|
example: "none",
|
|
47
62
|
},
|
|
@@ -50,7 +65,10 @@ export function ApiMetaHeaders() {
|
|
|
50
65
|
name: "X-Client-Id",
|
|
51
66
|
description:
|
|
52
67
|
"A unique identifier for the client to help identify exactly which application or third party is making the requests",
|
|
53
|
-
required:
|
|
68
|
+
required:
|
|
69
|
+
required !== undefined
|
|
70
|
+
? required
|
|
71
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
54
72
|
schema: {},
|
|
55
73
|
examples: {
|
|
56
74
|
UUIDV4: {
|
|
@@ -64,7 +82,10 @@ export function ApiMetaHeaders() {
|
|
|
64
82
|
ApiHeader({
|
|
65
83
|
name: "X-Client-Name",
|
|
66
84
|
description: "The name of the client",
|
|
67
|
-
required:
|
|
85
|
+
required:
|
|
86
|
+
required !== undefined
|
|
87
|
+
? required
|
|
88
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
68
89
|
schema: {
|
|
69
90
|
example: "swagger",
|
|
70
91
|
},
|
|
@@ -74,7 +95,10 @@ export function ApiMetaHeaders() {
|
|
|
74
95
|
description:
|
|
75
96
|
"The version of the client. If the client is making bad requests this helps " +
|
|
76
97
|
"identify which version of the client is making the bad requests",
|
|
77
|
-
required:
|
|
98
|
+
required:
|
|
99
|
+
required !== undefined
|
|
100
|
+
? required
|
|
101
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
78
102
|
schema: {
|
|
79
103
|
example: "0.3.6",
|
|
80
104
|
},
|
|
@@ -83,7 +107,10 @@ export function ApiMetaHeaders() {
|
|
|
83
107
|
name: "X-Client-Variant",
|
|
84
108
|
description:
|
|
85
109
|
"Usually an environment or build type such as dev, test, or prod",
|
|
86
|
-
required:
|
|
110
|
+
required:
|
|
111
|
+
required !== undefined
|
|
112
|
+
? required
|
|
113
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
87
114
|
schema: {
|
|
88
115
|
example: "dev",
|
|
89
116
|
},
|
|
@@ -91,7 +118,10 @@ export function ApiMetaHeaders() {
|
|
|
91
118
|
ApiHeader({
|
|
92
119
|
name: "X-Created",
|
|
93
120
|
description: "The time the client initiated the http request",
|
|
94
|
-
required:
|
|
121
|
+
required:
|
|
122
|
+
required !== undefined
|
|
123
|
+
? required
|
|
124
|
+
: process.env.X_META_HEADERS_REQUIRED !== "false",
|
|
95
125
|
schema: {
|
|
96
126
|
example: new Date().toISOString(),
|
|
97
127
|
},
|
|
@@ -210,6 +210,16 @@ export class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
|
210
210
|
return req.path.startsWith(`/${prefix}`);
|
|
211
211
|
})
|
|
212
212
|
) {
|
|
213
|
+
// Ignore header validation for GET requests with non-JSON output
|
|
214
|
+
const outputParam = req?.query?.output ?? req?.query?.output;
|
|
215
|
+
const isGetNonJson =
|
|
216
|
+
(req?.method || "").toUpperCase() === "GET" &&
|
|
217
|
+
outputParam !== undefined &&
|
|
218
|
+
String(outputParam).toLowerCase() !== "json";
|
|
219
|
+
|
|
220
|
+
if (isGetNonJson) {
|
|
221
|
+
return next();
|
|
222
|
+
}
|
|
213
223
|
const missingHeaders = Object.keys(requiredHeaders).filter(
|
|
214
224
|
(header) => !req.headers[header.toLowerCase()]
|
|
215
225
|
);
|
package/src/middleware/index.ts
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable, NestMiddleware } from "@nestjs/common";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* QueryAuthorizationMiddleware
|
|
5
|
+
* If a request contains a query parameter `authorization`, copy its value
|
|
6
|
+
* into the `authorization` header so downstream guards/interceptors can
|
|
7
|
+
* rely on a standard header location.
|
|
8
|
+
*/
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class QueryAuthorizationMiddleware implements NestMiddleware {
|
|
11
|
+
use(req: any, res: any, next: () => void): any {
|
|
12
|
+
const queryAuth = req?.query?.authorization;
|
|
13
|
+
if (typeof queryAuth === "string" && queryAuth.length > 0) {
|
|
14
|
+
req.headers.authorization = queryAuth;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
next();
|
|
18
|
+
}
|
|
19
|
+
}
|