@oneuptime/common 7.0.3605 → 7.0.3608
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.
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
} from "../../Server/Utils/Express";
|
|
9
9
|
import TelemetryIngestionKeyService from "../../Server/Services/TelemetryIngestionKeyService";
|
|
10
10
|
import TelemetryIngestionKey from "../../Models/DatabaseModels/TelemetryIngestionKey";
|
|
11
|
+
import Response from "../Utils/Response";
|
|
12
|
+
import logger from "../Utils/Logger";
|
|
11
13
|
|
|
12
14
|
export interface TelemetryRequest extends ExpressRequest {
|
|
13
15
|
projectId: ObjectID; // Project ID
|
|
@@ -17,12 +19,14 @@ export interface TelemetryRequest extends ExpressRequest {
|
|
|
17
19
|
export default class TelemetryIngest {
|
|
18
20
|
public static async isAuthorizedServiceMiddleware(
|
|
19
21
|
req: ExpressRequest,
|
|
20
|
-
|
|
22
|
+
res: ExpressResponse,
|
|
21
23
|
next: NextFunction,
|
|
22
24
|
): Promise<void> {
|
|
23
25
|
try {
|
|
24
26
|
// check header.
|
|
25
27
|
|
|
28
|
+
const isOpenTelemetryAPI: boolean = req.path.includes("/otlp/v1");
|
|
29
|
+
|
|
26
30
|
let oneuptimeToken: string | undefined = req.headers[
|
|
27
31
|
"x-oneuptime-token"
|
|
28
32
|
] as string | undefined;
|
|
@@ -35,6 +39,14 @@ export default class TelemetryIngest {
|
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
if (!oneuptimeToken) {
|
|
42
|
+
logger.error("Missing header: x-oneuptime-token");
|
|
43
|
+
|
|
44
|
+
if (isOpenTelemetryAPI) {
|
|
45
|
+
// then accept the response and return success.
|
|
46
|
+
// do not return error because it causes Otel to retry the request.
|
|
47
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
48
|
+
}
|
|
49
|
+
|
|
38
50
|
throw new BadRequestException("Missing header: x-oneuptime-token");
|
|
39
51
|
}
|
|
40
52
|
|
|
@@ -54,6 +66,14 @@ export default class TelemetryIngest {
|
|
|
54
66
|
});
|
|
55
67
|
|
|
56
68
|
if (!token) {
|
|
69
|
+
logger.error("Invalid service token: " + oneuptimeToken);
|
|
70
|
+
|
|
71
|
+
if (isOpenTelemetryAPI) {
|
|
72
|
+
// then accept the response and return success.
|
|
73
|
+
// do not return error because it causes Otel to retry the request.
|
|
74
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
75
|
+
}
|
|
76
|
+
|
|
57
77
|
throw new BadRequestException(
|
|
58
78
|
"Invalid service token: " + oneuptimeToken,
|
|
59
79
|
);
|
|
@@ -62,6 +82,16 @@ export default class TelemetryIngest {
|
|
|
62
82
|
projectId = token.projectId as ObjectID;
|
|
63
83
|
|
|
64
84
|
if (!projectId) {
|
|
85
|
+
logger.error(
|
|
86
|
+
"Project ID not found for service token: " + oneuptimeToken,
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
if (isOpenTelemetryAPI) {
|
|
90
|
+
// then accept the response and return success.
|
|
91
|
+
// do not return error because it causes Otel to retry the request.
|
|
92
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
93
|
+
}
|
|
94
|
+
|
|
65
95
|
throw new BadRequestException(
|
|
66
96
|
"Project ID not found for service token: " + oneuptimeToken,
|
|
67
97
|
);
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import BadRequestException from "../../Types/Exception/BadRequestException";
|
|
2
2
|
import ObjectID from "../../Types/ObjectID";
|
|
3
3
|
import TelemetryIngestionKeyService from "../../Server/Services/TelemetryIngestionKeyService";
|
|
4
|
+
import Response from "../Utils/Response";
|
|
5
|
+
import logger from "../Utils/Logger";
|
|
4
6
|
export default class TelemetryIngest {
|
|
5
|
-
static async isAuthorizedServiceMiddleware(req,
|
|
7
|
+
static async isAuthorizedServiceMiddleware(req, res, next) {
|
|
6
8
|
try {
|
|
7
9
|
// check header.
|
|
10
|
+
const isOpenTelemetryAPI = req.path.includes("/otlp/v1");
|
|
8
11
|
let oneuptimeToken = req.headers["x-oneuptime-token"];
|
|
9
12
|
// if x-oneuptime-service-token header is present then use that as token.
|
|
10
13
|
if (!oneuptimeToken) {
|
|
11
14
|
oneuptimeToken = req.headers["x-oneuptime-service-token"];
|
|
12
15
|
}
|
|
13
16
|
if (!oneuptimeToken) {
|
|
17
|
+
logger.error("Missing header: x-oneuptime-token");
|
|
18
|
+
if (isOpenTelemetryAPI) {
|
|
19
|
+
// then accept the response and return success.
|
|
20
|
+
// do not return error because it causes Otel to retry the request.
|
|
21
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
22
|
+
}
|
|
14
23
|
throw new BadRequestException("Missing header: x-oneuptime-token");
|
|
15
24
|
}
|
|
16
25
|
let projectId = undefined;
|
|
@@ -26,10 +35,22 @@ export default class TelemetryIngest {
|
|
|
26
35
|
},
|
|
27
36
|
});
|
|
28
37
|
if (!token) {
|
|
38
|
+
logger.error("Invalid service token: " + oneuptimeToken);
|
|
39
|
+
if (isOpenTelemetryAPI) {
|
|
40
|
+
// then accept the response and return success.
|
|
41
|
+
// do not return error because it causes Otel to retry the request.
|
|
42
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
43
|
+
}
|
|
29
44
|
throw new BadRequestException("Invalid service token: " + oneuptimeToken);
|
|
30
45
|
}
|
|
31
46
|
projectId = token.projectId;
|
|
32
47
|
if (!projectId) {
|
|
48
|
+
logger.error("Project ID not found for service token: " + oneuptimeToken);
|
|
49
|
+
if (isOpenTelemetryAPI) {
|
|
50
|
+
// then accept the response and return success.
|
|
51
|
+
// do not return error because it causes Otel to retry the request.
|
|
52
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
53
|
+
}
|
|
33
54
|
throw new BadRequestException("Project ID not found for service token: " + oneuptimeToken);
|
|
34
55
|
}
|
|
35
56
|
req.projectId = projectId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAE5E,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAM5C,OAAO,4BAA4B,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAE5E,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAM5C,OAAO,4BAA4B,MAAM,oDAAoD,CAAC;AAE9F,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAOrC,MAAM,CAAC,OAAO,OAAO,eAAe;IAC3B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAC/C,GAAmB,EACnB,GAAoB,EACpB,IAAkB;QAElB,IAAI,CAAC;YACH,gBAAgB;YAEhB,MAAM,kBAAkB,GAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAElE,IAAI,cAAc,GAAuB,GAAG,CAAC,OAAO,CAClD,mBAAmB,CACE,CAAC;YAExB,yEAAyE;YACzE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAE3C,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAElD,IAAI,kBAAkB,EAAE,CAAC;oBACvB,+CAA+C;oBAC/C,mEAAmE;oBACnE,OAAO,QAAQ,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,SAAS,GAAyB,SAAS,CAAC;YAEhD,MAAM,KAAK,GACT,MAAM,4BAA4B,CAAC,SAAS,CAAC;gBAC3C,KAAK,EAAE;oBACL,SAAS,EAAE,IAAI,QAAQ,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;iBAC1D;gBACD,MAAM,EAAE;oBACN,SAAS,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC;YAEL,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,cAAc,CAAC,CAAC;gBAEzD,IAAI,kBAAkB,EAAE,CAAC;oBACvB,+CAA+C;oBAC/C,mEAAmE;oBACnE,OAAO,QAAQ,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,IAAI,mBAAmB,CAC3B,yBAAyB,GAAG,cAAc,CAC3C,CAAC;YACJ,CAAC;YAED,SAAS,GAAG,KAAK,CAAC,SAAqB,CAAC;YAExC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,0CAA0C,GAAG,cAAc,CAC5D,CAAC;gBAEF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,+CAA+C;oBAC/C,mEAAmE;oBACnE,OAAO,QAAQ,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,IAAI,mBAAmB,CAC3B,0CAA0C,GAAG,cAAc,CAC5D,CAAC;YACJ,CAAC;YAEA,GAAwB,CAAC,SAAS,GAAG,SAAqB,CAAC;YAE5D,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneuptime/common",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.3608",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"airtable": "^0.12.2",
|
|
78
78
|
"axios": "^1.7.2",
|
|
79
79
|
"bullmq": "^5.3.3",
|
|
80
|
-
"Common": "npm:@oneuptime/common@7.0.
|
|
80
|
+
"Common": "npm:@oneuptime/common@7.0.3608",
|
|
81
81
|
"cookie-parser": "^1.4.7",
|
|
82
82
|
"cors": "^2.8.5",
|
|
83
83
|
"cron-parser": "^4.8.1",
|