serverless-plugin-datadog 5.35.0 → 5.37.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +48 -37
- package/dist/package.json +1 -1
- package/dist/src/env.d.ts +1 -0
- package/dist/src/env.d.ts.map +1 -1
- package/dist/src/env.js +1 -0
- package/dist/src/env.js.map +1 -1
- package/dist/src/forwarder.d.ts +2 -2
- package/dist/src/forwarder.d.ts.map +1 -1
- package/dist/src/forwarder.js.map +1 -1
- package/dist/src/git.js +5 -1
- package/dist/src/git.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/layers-gov.json +22 -22
- package/dist/src/layers.json +253 -253
- package/dist/src/span-link.d.ts +6 -0
- package/dist/src/span-link.d.ts.map +1 -0
- package/dist/src/span-link.js +18 -0
- package/dist/src/span-link.js.map +1 -0
- package/dist/src/step-functions-helper.d.ts +29 -0
- package/dist/src/step-functions-helper.d.ts.map +1 -0
- package/dist/src/step-functions-helper.js +63 -0
- package/dist/src/step-functions-helper.js.map +1 -0
- package/package.json +1 -1
@@ -0,0 +1,6 @@
|
|
1
|
+
import { GeneralResource } from "./step-functions-helper";
|
2
|
+
import * as Serverless from "serverless";
|
3
|
+
export declare function mergeStepFunctionAndLambdaTraces(resources: {
|
4
|
+
[key: string]: GeneralResource;
|
5
|
+
}, serverless: Serverless): void;
|
6
|
+
//# sourceMappingURL=span-link.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"span-link.d.ts","sourceRoot":"","sources":["../../src/span-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0B,MAAM,yBAAyB,CAAC;AAClF,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AAEzC,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,EAC7C,UAAU,EAAE,UAAU,QAWvB"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.mergeStepFunctionAndLambdaTraces = void 0;
|
4
|
+
const step_functions_helper_1 = require("./step-functions-helper");
|
5
|
+
function mergeStepFunctionAndLambdaTraces(resources, serverless) {
|
6
|
+
var _a;
|
7
|
+
for (const resourceName in resources) {
|
8
|
+
if (resources.hasOwnProperty(resourceName)) {
|
9
|
+
const resourceObj = resources[resourceName];
|
10
|
+
if (resourceObj.Type === "AWS::StepFunctions::StateMachine") {
|
11
|
+
const definitionString = (_a = resourceObj.Properties) === null || _a === void 0 ? void 0 : _a.DefinitionString;
|
12
|
+
(0, step_functions_helper_1.updateDefinitionString)(definitionString, serverless, resourceName);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
exports.mergeStepFunctionAndLambdaTraces = mergeStepFunctionAndLambdaTraces;
|
18
|
+
//# sourceMappingURL=span-link.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"span-link.js","sourceRoot":"","sources":["../../src/span-link.ts"],"names":[],"mappings":";;;AAAA,mEAAkF;AAGlF,SAAgB,gCAAgC,CAC9C,SAA6C,EAC7C,UAAsB;;IAEtB,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE;QACpC,IAAI,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;YAC1C,MAAM,WAAW,GAAoB,SAAS,CAAC,YAAY,CAAC,CAAC;YAC7D,IAAI,WAAW,CAAC,IAAI,KAAK,kCAAkC,EAAE;gBAC3D,MAAM,gBAAgB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,gBAAiB,CAAC;gBACnE,IAAA,8CAAsB,EAAC,gBAAgB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;aACpE;SACF;KACF;AACH,CAAC;AAbD,4EAaC"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import Serverless from "serverless";
|
2
|
+
export declare function isSafeToModifyStepFunctionsDefinition(parameters: any): boolean;
|
3
|
+
export interface GeneralResource {
|
4
|
+
Type: string;
|
5
|
+
Properties?: {
|
6
|
+
DefinitionString?: {
|
7
|
+
"Fn::Sub": any[];
|
8
|
+
};
|
9
|
+
};
|
10
|
+
}
|
11
|
+
export interface StateMachineDefinition {
|
12
|
+
States: {
|
13
|
+
[key: string]: StateMachineStep;
|
14
|
+
};
|
15
|
+
}
|
16
|
+
export interface StateMachineStep {
|
17
|
+
Resource: string;
|
18
|
+
Parameters?: {
|
19
|
+
FunctionName?: string;
|
20
|
+
"Payload.$"?: string;
|
21
|
+
};
|
22
|
+
Next?: string;
|
23
|
+
End?: boolean;
|
24
|
+
}
|
25
|
+
export declare function isDefaultLambdaApiStep(resource: string | null): boolean;
|
26
|
+
export declare function updateDefinitionString(definitionString: {
|
27
|
+
"Fn::Sub": (string | object)[];
|
28
|
+
}, serverless: Serverless, stateMachineName: string): void;
|
29
|
+
//# sourceMappingURL=step-functions-helper.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"step-functions-helper.d.ts","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,wBAAgB,qCAAqC,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAc9E;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE;YACjB,SAAS,EAAE,GAAG,EAAE,CAAC;SAClB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAUvE;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE;IAAE,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EACpD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,MAAM,GACvB,IAAI,CAmCN"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.updateDefinitionString = exports.isDefaultLambdaApiStep = exports.isSafeToModifyStepFunctionsDefinition = void 0;
|
4
|
+
function isSafeToModifyStepFunctionsDefinition(parameters) {
|
5
|
+
if (typeof parameters !== "object") {
|
6
|
+
return false;
|
7
|
+
}
|
8
|
+
if (!parameters.hasOwnProperty("Payload.$")) {
|
9
|
+
return true;
|
10
|
+
}
|
11
|
+
else {
|
12
|
+
if (parameters["Payload.$"] === "$") {
|
13
|
+
// $ % is the default original unchanged payload
|
14
|
+
return true;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
return false;
|
18
|
+
}
|
19
|
+
exports.isSafeToModifyStepFunctionsDefinition = isSafeToModifyStepFunctionsDefinition;
|
20
|
+
function isDefaultLambdaApiStep(resource) {
|
21
|
+
// default means not legacy lambda api
|
22
|
+
if (resource == null) {
|
23
|
+
return false;
|
24
|
+
}
|
25
|
+
if (resource === "arn:aws:states:::lambda:invoke") {
|
26
|
+
// Legacy Lambda API resource.startsWith("arn:aws:lambda"), but it cannot inject context obj.
|
27
|
+
return true;
|
28
|
+
}
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
exports.isDefaultLambdaApiStep = isDefaultLambdaApiStep;
|
32
|
+
function updateDefinitionString(definitionString, serverless, stateMachineName) {
|
33
|
+
if (!(typeof definitionString === "object" && "Fn::Sub" in definitionString && definitionString["Fn::Sub"].length > 0)) {
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
const unparsedDefinition = definitionString["Fn::Sub"] ? definitionString["Fn::Sub"][0] : ""; // index 0 should always be a string of step functions definition
|
37
|
+
if (unparsedDefinition === "") {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
const definitionObj = JSON.parse(unparsedDefinition);
|
41
|
+
const states = definitionObj.States;
|
42
|
+
for (const stepName in states) {
|
43
|
+
if (states.hasOwnProperty(stepName)) {
|
44
|
+
const step = states[stepName];
|
45
|
+
if (!isDefaultLambdaApiStep(step.Resource)) {
|
46
|
+
// only default lambda api allows context injection
|
47
|
+
continue;
|
48
|
+
}
|
49
|
+
if (typeof step.Parameters === "object") {
|
50
|
+
if (isSafeToModifyStepFunctionsDefinition(step.Parameters)) {
|
51
|
+
step.Parameters["Payload.$"] = "States.JsonMerge($$, $, false)";
|
52
|
+
serverless.cli.log(`JsonMerge Step Functions context object with payload in step: ${stepName} of state machine: ${stateMachineName}.`);
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
serverless.cli.log(`[Warn] Parameters.Payload has been set. Merging traces failed for step: ${stepName} of state machine: ${stateMachineName}`);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
definitionString["Fn::Sub"][0] = JSON.stringify(definitionObj); // writing back to the original JSON created by Serverless framework
|
61
|
+
}
|
62
|
+
exports.updateDefinitionString = updateDefinitionString;
|
63
|
+
//# sourceMappingURL=step-functions-helper.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"step-functions-helper.js","sourceRoot":"","sources":["../../src/step-functions-helper.ts"],"names":[],"mappings":";;;AAEA,SAAgB,qCAAqC,CAAC,UAAe;IACnE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;SAAM;QACL,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE;YACnC,gDAAgD;YAChD,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAdD,sFAcC;AAyBD,SAAgB,sBAAsB,CAAC,QAAuB;IAC5D,sCAAsC;IACtC,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,QAAQ,KAAK,gCAAgC,EAAE;QACjD,6FAA6F;QAC7F,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAVD,wDAUC;AAED,SAAgB,sBAAsB,CACpC,gBAAoD,EACpD,UAAsB,EACtB,gBAAwB;IAExB,IACE,CAAC,CAAC,OAAO,gBAAgB,KAAK,QAAQ,IAAI,SAAS,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAClH;QACA,OAAO;KACR;IACD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iEAAiE;IAC/J,IAAI,kBAAkB,KAAK,EAAE,EAAE;QAC7B,OAAO;KACR;IACD,MAAM,aAAa,GAA2B,IAAI,CAAC,KAAK,CAAC,kBAA4B,CAAC,CAAC;IAEvF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE;QAC7B,IAAI,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YACnC,MAAM,IAAI,GAAqB,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC1C,mDAAmD;gBACnD,SAAS;aACV;YACD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;gBACvC,IAAI,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBAC1D,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,GAAG,gCAAgC,CAAC;oBACjE,UAAU,CAAC,GAAG,CAAC,GAAG,CAChB,iEAAiE,QAAQ,sBAAsB,gBAAgB,GAAG,CACnH,CAAC;iBACH;qBAAM;oBACL,UAAU,CAAC,GAAG,CAAC,GAAG,CAChB,2EAA2E,QAAQ,sBAAsB,gBAAgB,EAAE,CAC5H,CAAC;iBACH;aACF;SACF;KACF;IACD,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,oEAAoE;AACtI,CAAC;AAvCD,wDAuCC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "serverless-plugin-datadog",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.37.0",
|
4
4
|
"description": "Serverless plugin to automatically instrument python and node functions with datadog tracing",
|
5
5
|
"main": "dist/src/index.js",
|
6
6
|
"repository": "https://github.com/DataDog/serverless-plugin-datadog",
|