@datadog/datadog-ci 2.40.3 → 2.41.0

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.
Files changed (252) hide show
  1. package/README.md +1 -0
  2. package/dist/commands/deployment/cli.js +2 -1
  3. package/dist/commands/deployment/cli.js.map +1 -1
  4. package/dist/commands/deployment/correlate.d.ts +18 -0
  5. package/dist/commands/deployment/correlate.js +154 -0
  6. package/dist/commands/deployment/correlate.js.map +1 -0
  7. package/dist/commands/dsyms/utils.js +2 -4
  8. package/dist/commands/dsyms/utils.js.map +1 -1
  9. package/dist/helpers/git/get-git-data.d.ts +2 -0
  10. package/dist/helpers/git/get-git-data.js +11 -1
  11. package/dist/helpers/git/get-git-data.js.map +1 -1
  12. package/package.json +3 -2
  13. package/dist/__tests__/cli.test.d.ts +0 -1
  14. package/dist/__tests__/cli.test.js +0 -41
  15. package/dist/__tests__/cli.test.js.map +0 -1
  16. package/dist/commands/cloud-run/__tests__/fixtures.d.ts +0 -2
  17. package/dist/commands/cloud-run/__tests__/fixtures.js +0 -12
  18. package/dist/commands/cloud-run/__tests__/fixtures.js.map +0 -1
  19. package/dist/commands/cloud-run/__tests__/flare.test.d.ts +0 -1
  20. package/dist/commands/cloud-run/__tests__/flare.test.js +0 -557
  21. package/dist/commands/cloud-run/__tests__/flare.test.js.map +0 -1
  22. package/dist/commands/deployment/__tests__/mark.test.d.ts +0 -1
  23. package/dist/commands/deployment/__tests__/mark.test.js +0 -47
  24. package/dist/commands/deployment/__tests__/mark.test.js.map +0 -1
  25. package/dist/commands/dora/__tests__/deployment.test.d.ts +0 -1
  26. package/dist/commands/dora/__tests__/deployment.test.js +0 -201
  27. package/dist/commands/dora/__tests__/deployment.test.js.map +0 -1
  28. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  29. package/dist/commands/dsyms/__tests__/upload.test.js +0 -346
  30. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  31. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  32. package/dist/commands/dsyms/__tests__/utils.test.js +0 -103
  33. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  34. package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +0 -1
  35. package/dist/commands/elf-symbols/__tests__/elf.test.js +0 -813
  36. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +0 -1
  37. package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +0 -1
  38. package/dist/commands/elf-symbols/__tests__/upload.test.js +0 -249
  39. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +0 -1
  40. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  41. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -617
  42. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  43. package/dist/commands/gate/__tests__/evaluate.test.d.ts +0 -1
  44. package/dist/commands/gate/__tests__/evaluate.test.js +0 -398
  45. package/dist/commands/gate/__tests__/evaluate.test.js.map +0 -1
  46. package/dist/commands/gate/__tests__/scope.test.d.ts +0 -1
  47. package/dist/commands/gate/__tests__/scope.test.js +0 -29
  48. package/dist/commands/gate/__tests__/scope.test.js.map +0 -1
  49. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  50. package/dist/commands/git-metadata/__tests__/git.test.js +0 -132
  51. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  52. package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +0 -1
  53. package/dist/commands/git-metadata/__tests__/gitdb.test.js +0 -1386
  54. package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +0 -1
  55. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  56. package/dist/commands/git-metadata/__tests__/library.test.js +0 -118
  57. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  58. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  59. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -52
  60. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  61. package/dist/commands/junit/__tests__/id.test.d.ts +0 -1
  62. package/dist/commands/junit/__tests__/id.test.js +0 -24
  63. package/dist/commands/junit/__tests__/id.test.js.map +0 -1
  64. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  65. package/dist/commands/junit/__tests__/upload.test.js +0 -495
  66. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  67. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -51
  68. package/dist/commands/lambda/__tests__/fixtures.js +0 -146
  69. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  70. package/dist/commands/lambda/__tests__/flare.test.d.ts +0 -1
  71. package/dist/commands/lambda/__tests__/flare.test.js +0 -730
  72. package/dist/commands/lambda/__tests__/flare.test.js.map +0 -1
  73. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  74. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -791
  75. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  76. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  77. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -386
  78. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  79. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  80. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -721
  81. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  82. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  83. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -513
  84. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  85. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  86. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  87. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  88. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  89. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1511
  90. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  91. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  92. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -340
  93. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  94. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  95. package/dist/commands/lambda/__tests__/prompt.test.js +0 -206
  96. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  97. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  98. package/dist/commands/lambda/__tests__/tags.test.js +0 -305
  99. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  100. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  101. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -722
  102. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  103. package/dist/commands/measure/__tests__/measure.test.d.ts +0 -1
  104. package/dist/commands/measure/__tests__/measure.test.js +0 -110
  105. package/dist/commands/measure/__tests__/measure.test.js.map +0 -1
  106. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  107. package/dist/commands/react-native/__tests__/codepush.test.js +0 -161
  108. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  109. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  110. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -33
  111. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  112. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  113. package/dist/commands/react-native/__tests__/upload.test.js +0 -238
  114. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  115. package/dist/commands/react-native/__tests__/utils.test.d.ts +0 -1
  116. package/dist/commands/react-native/__tests__/utils.test.js +0 -27
  117. package/dist/commands/react-native/__tests__/utils.test.js.map +0 -1
  118. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  119. package/dist/commands/react-native/__tests__/xcode.test.js +0 -465
  120. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  121. package/dist/commands/sarif/__tests__/upload.test.d.ts +0 -1
  122. package/dist/commands/sarif/__tests__/upload.test.js +0 -228
  123. package/dist/commands/sarif/__tests__/upload.test.js.map +0 -1
  124. package/dist/commands/sbom/__tests__/payload.test.d.ts +0 -1
  125. package/dist/commands/sbom/__tests__/payload.test.js +0 -262
  126. package/dist/commands/sbom/__tests__/payload.test.js.map +0 -1
  127. package/dist/commands/sbom/__tests__/validation.test.d.ts +0 -1
  128. package/dist/commands/sbom/__tests__/validation.test.js +0 -41
  129. package/dist/commands/sbom/__tests__/validation.test.js.map +0 -1
  130. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  131. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  132. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  133. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  134. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  135. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  136. package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +0 -1
  137. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +0 -192
  138. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +0 -1
  139. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +0 -6
  140. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +0 -45
  141. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +0 -1
  142. package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +0 -5
  143. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +0 -19
  144. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +0 -1
  145. package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +0 -1
  146. package/dist/commands/stepfunctions/__tests__/helpers.test.js +0 -205
  147. package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +0 -1
  148. package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +0 -1
  149. package/dist/commands/stepfunctions/__tests__/instrument.test.js +0 -431
  150. package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +0 -1
  151. package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +0 -1
  152. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +0 -166
  153. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +0 -1
  154. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  155. package/dist/commands/synthetics/__tests__/api.test.js +0 -422
  156. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  157. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  158. package/dist/commands/synthetics/__tests__/cli.test.js +0 -1325
  159. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  160. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -149
  161. package/dist/commands/synthetics/__tests__/fixtures.js +0 -507
  162. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  163. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  164. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -376
  165. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  166. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  167. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -354
  168. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  169. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  170. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -353
  171. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  172. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +0 -1
  173. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +0 -232
  174. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +0 -1
  175. package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +0 -1
  176. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +0 -735
  177. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +0 -1
  178. package/dist/commands/synthetics/__tests__/test.test.d.ts +0 -1
  179. package/dist/commands/synthetics/__tests__/test.test.js +0 -33
  180. package/dist/commands/synthetics/__tests__/test.test.js.map +0 -1
  181. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  182. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  183. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  184. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  185. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  186. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  187. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  188. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -109
  189. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  190. package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +0 -1
  191. package/dist/commands/synthetics/__tests__/utils/internal.test.js +0 -186
  192. package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +0 -1
  193. package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +0 -1
  194. package/dist/commands/synthetics/__tests__/utils/public.test.js +0 -1526
  195. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +0 -1
  196. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  197. package/dist/commands/tag/__tests__/tag.test.js +0 -75
  198. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  199. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  200. package/dist/commands/trace/__tests__/trace.test.js +0 -145
  201. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  202. package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +0 -1
  203. package/dist/commands/unity-symbols/__tests__/upload.test.js +0 -369
  204. package/dist/commands/unity-symbols/__tests__/upload.test.js.map +0 -1
  205. package/dist/helpers/__tests__/app.test.d.ts +0 -1
  206. package/dist/helpers/__tests__/app.test.js +0 -31
  207. package/dist/helpers/__tests__/app.test.js.map +0 -1
  208. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  209. package/dist/helpers/__tests__/ci.test.js +0 -252
  210. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  211. package/dist/helpers/__tests__/fixtures.d.ts +0 -33
  212. package/dist/helpers/__tests__/fixtures.js +0 -71
  213. package/dist/helpers/__tests__/fixtures.js.map +0 -1
  214. package/dist/helpers/__tests__/flare.test.d.ts +0 -1
  215. package/dist/helpers/__tests__/flare.test.js +0 -226
  216. package/dist/helpers/__tests__/flare.test.js.map +0 -1
  217. package/dist/helpers/__tests__/fs.test.d.ts +0 -1
  218. package/dist/helpers/__tests__/fs.test.js +0 -189
  219. package/dist/helpers/__tests__/fs.test.js.map +0 -1
  220. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  221. package/dist/helpers/__tests__/plist.test.js +0 -43
  222. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  223. package/dist/helpers/__tests__/prompt.test.d.ts +0 -1
  224. package/dist/helpers/__tests__/prompt.test.js +0 -71
  225. package/dist/helpers/__tests__/prompt.test.js.map +0 -1
  226. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  227. package/dist/helpers/__tests__/retry.test.js +0 -99
  228. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  229. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  230. package/dist/helpers/__tests__/tags.test.js +0 -71
  231. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  232. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  233. package/dist/helpers/__tests__/upload.test.js +0 -231
  234. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  235. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  236. package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
  237. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  238. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  239. package/dist/helpers/__tests__/utils.test.js +0 -429
  240. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  241. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  242. package/dist/helpers/__tests__/validation.test.js +0 -25
  243. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  244. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  245. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -103
  246. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  247. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  248. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -121
  249. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  250. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  251. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -72
  252. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1,721 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- jest.mock('../../loggroup');
13
- const client_lambda_1 = require("@aws-sdk/client-lambda");
14
- const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
15
- const constants_1 = require("../../../../constants");
16
- const fixtures_1 = require("../../../../helpers/__tests__/fixtures");
17
- const constants_2 = require("../../constants");
18
- const instrument_1 = require("../../functions/instrument");
19
- const fixtures_2 = require("../fixtures");
20
- describe('instrument', () => {
21
- describe('calculateUpdateRequest', () => {
22
- const OLD_ENV = process.env;
23
- beforeEach(() => {
24
- jest.resetModules();
25
- process.env = {};
26
- });
27
- afterAll(() => {
28
- process.env = OLD_ENV;
29
- });
30
- test('calculates an update request with just lambda library layers', () => __awaiter(void 0, void 0, void 0, function* () {
31
- const runtime = client_lambda_1.Runtime.nodejs20x;
32
- const config = {
33
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
34
- Handler: 'index.handler',
35
- Layers: [],
36
- Runtime: runtime,
37
- };
38
- const settings = {
39
- flushMetricsToLogs: false,
40
- layerAWSAccount: fixtures_2.mockAwsAccount,
41
- layerVersion: 5,
42
- mergeXrayTraces: false,
43
- tracingEnabled: false,
44
- };
45
- const region = 'sa-east-1';
46
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
47
- expect(updateRequest).toMatchInlineSnapshot(`
48
- {
49
- "Environment": {
50
- "Variables": {
51
- "DD_FLUSH_TO_LOG": "false",
52
- "DD_LAMBDA_HANDLER": "index.handler",
53
- "DD_MERGE_XRAY_TRACES": "false",
54
- "DD_SITE": "datadoghq.com",
55
- "DD_TRACE_ENABLED": "false",
56
- },
57
- },
58
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
59
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
60
- "Layers": [
61
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
62
- ],
63
- }
64
- `);
65
- }));
66
- test.each([
67
- [client_lambda_1.Runtime.python310, 'Datadog-Python310'],
68
- [client_lambda_1.Runtime.python311, 'Datadog-Python311'],
69
- [client_lambda_1.Runtime.python312, 'Datadog-Python312'],
70
- ])('calculates an update request for %s', (runtime, layer) => __awaiter(void 0, void 0, void 0, function* () {
71
- const config = {
72
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
73
- Handler: 'index.handler',
74
- Layers: [],
75
- Runtime: runtime,
76
- };
77
- const settings = {
78
- flushMetricsToLogs: false,
79
- layerAWSAccount: fixtures_2.mockAwsAccount,
80
- layerVersion: 71,
81
- mergeXrayTraces: false,
82
- tracingEnabled: false,
83
- };
84
- const region = 'sa-east-1';
85
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
86
- expect(updateRequest).toMatchInlineSnapshot(`
87
- {
88
- "Environment": {
89
- "Variables": {
90
- "DD_FLUSH_TO_LOG": "false",
91
- "DD_LAMBDA_HANDLER": "index.handler",
92
- "DD_MERGE_XRAY_TRACES": "false",
93
- "DD_SITE": "datadoghq.com",
94
- "DD_TRACE_ENABLED": "false",
95
- },
96
- },
97
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
98
- "Handler": "datadog_lambda.handler.handler",
99
- "Layers": [
100
- "arn:aws:lambda:sa-east-1:123456789012:layer:${layer}:71",
101
- ],
102
- }
103
- `);
104
- }));
105
- test('calculates an update request with just lambda library layers in arm architecture', () => __awaiter(void 0, void 0, void 0, function* () {
106
- const runtime = client_lambda_1.Runtime.python39;
107
- const config = {
108
- Architectures: [client_lambda_1.Architecture.arm64],
109
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
110
- Handler: 'handler.hello',
111
- Layers: [],
112
- Runtime: runtime,
113
- };
114
- const settings = {
115
- flushMetricsToLogs: false,
116
- layerAWSAccount: fixtures_2.mockAwsAccount,
117
- layerVersion: 11,
118
- mergeXrayTraces: false,
119
- tracingEnabled: false,
120
- };
121
- const region = 'sa-east-1';
122
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
123
- expect(updateRequest).toMatchInlineSnapshot(`
124
- {
125
- "Environment": {
126
- "Variables": {
127
- "DD_FLUSH_TO_LOG": "false",
128
- "DD_LAMBDA_HANDLER": "handler.hello",
129
- "DD_MERGE_XRAY_TRACES": "false",
130
- "DD_SITE": "datadoghq.com",
131
- "DD_TRACE_ENABLED": "false",
132
- },
133
- },
134
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
135
- "Handler": "datadog_lambda.handler.handler",
136
- "Layers": [
137
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39-ARM:11",
138
- ],
139
- }
140
- `);
141
- }));
142
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
143
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
144
- const runtime = client_lambda_1.Runtime.nodejs20x;
145
- const config = {
146
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
147
- Handler: 'index.handler',
148
- Layers: [],
149
- Runtime: runtime,
150
- };
151
- const settings = {
152
- extensionVersion: 6,
153
- flushMetricsToLogs: false,
154
- layerAWSAccount: fixtures_2.mockAwsAccount,
155
- layerVersion: 5,
156
- mergeXrayTraces: false,
157
- tracingEnabled: false,
158
- };
159
- const region = 'sa-east-1';
160
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
161
- expect(updateRequest).toMatchInlineSnapshot(`
162
- {
163
- "Environment": {
164
- "Variables": {
165
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
166
- "DD_LAMBDA_HANDLER": "index.handler",
167
- "DD_MERGE_XRAY_TRACES": "false",
168
- "DD_SITE": "datadoghq.com",
169
- "DD_TRACE_ENABLED": "false",
170
- },
171
- },
172
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
173
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
174
- "Layers": [
175
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
176
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
177
- ],
178
- }
179
- `);
180
- }));
181
- test('calculates an update request with a lambda library, extension, and DD_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
182
- process.env[constants_1.API_KEY_ENV_VAR] = 'SOME-DD-API-KEY';
183
- const runtime = client_lambda_1.Runtime.nodejs20x;
184
- const config = {
185
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
186
- Handler: 'index.handler',
187
- Layers: [],
188
- Runtime: runtime,
189
- };
190
- const settings = {
191
- extensionVersion: 6,
192
- flushMetricsToLogs: false,
193
- layerAWSAccount: fixtures_2.mockAwsAccount,
194
- layerVersion: 5,
195
- mergeXrayTraces: false,
196
- tracingEnabled: false,
197
- };
198
- const region = 'sa-east-1';
199
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
200
- expect(updateRequest).toMatchInlineSnapshot(`
201
- {
202
- "Environment": {
203
- "Variables": {
204
- "DD_API_KEY": "SOME-DD-API-KEY",
205
- "DD_LAMBDA_HANDLER": "index.handler",
206
- "DD_MERGE_XRAY_TRACES": "false",
207
- "DD_SITE": "datadoghq.com",
208
- "DD_TRACE_ENABLED": "false",
209
- },
210
- },
211
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
212
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
213
- "Layers": [
214
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
215
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
216
- ],
217
- }
218
- `);
219
- }));
220
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY_SECRET_ARN', () => __awaiter(void 0, void 0, void 0, function* () {
221
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
222
- const runtime = client_lambda_1.Runtime.python39;
223
- const config = {
224
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
225
- Handler: 'index.handler',
226
- Layers: [],
227
- Runtime: runtime,
228
- };
229
- const settings = {
230
- extensionVersion: 11,
231
- flushMetricsToLogs: false,
232
- layerAWSAccount: fixtures_2.mockAwsAccount,
233
- layerVersion: 49,
234
- mergeXrayTraces: false,
235
- tracingEnabled: false,
236
- };
237
- const region = 'sa-east-1';
238
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
239
- expect(updateRequest).toMatchInlineSnapshot(`
240
- {
241
- "Environment": {
242
- "Variables": {
243
- "DD_API_KEY_SECRET_ARN": "some-secret:arn:from:aws",
244
- "DD_LAMBDA_HANDLER": "index.handler",
245
- "DD_MERGE_XRAY_TRACES": "false",
246
- "DD_SITE": "datadoghq.com",
247
- "DD_TRACE_ENABLED": "false",
248
- },
249
- },
250
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
251
- "Handler": "datadog_lambda.handler.handler",
252
- "Layers": [
253
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:11",
254
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:49",
255
- ],
256
- }
257
- `);
258
- }));
259
- test('calculates an update request with a lambda library, extension, and DATADOG_KMS_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
260
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
261
- const runtime = client_lambda_1.Runtime.python39;
262
- const config = {
263
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
264
- Handler: 'index.handler',
265
- Layers: [],
266
- Runtime: runtime,
267
- };
268
- const settings = {
269
- extensionVersion: 6,
270
- flushMetricsToLogs: false,
271
- layerAWSAccount: fixtures_2.mockAwsAccount,
272
- layerVersion: 5,
273
- mergeXrayTraces: false,
274
- tracingEnabled: false,
275
- };
276
- const region = 'sa-east-1';
277
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
278
- expect(updateRequest).toMatchInlineSnapshot(`
279
- {
280
- "Environment": {
281
- "Variables": {
282
- "DD_KMS_API_KEY": "5678",
283
- "DD_LAMBDA_HANDLER": "index.handler",
284
- "DD_MERGE_XRAY_TRACES": "false",
285
- "DD_SITE": "datadoghq.com",
286
- "DD_TRACE_ENABLED": "false",
287
- },
288
- },
289
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
290
- "Handler": "datadog_lambda.handler.handler",
291
- "Layers": [
292
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
293
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:5",
294
- ],
295
- }
296
- `);
297
- }));
298
- test('prioritizes the KMS API KEY when all of them are exported', () => __awaiter(void 0, void 0, void 0, function* () {
299
- process.env = {
300
- [constants_1.CI_API_KEY_ENV_VAR]: fixtures_1.MOCK_DATADOG_API_KEY,
301
- [constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR]: '5678',
302
- [constants_2.CI_KMS_API_KEY_ENV_VAR]: 'should-be-selected',
303
- };
304
- const config = {
305
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
306
- Handler: 'index.handler',
307
- Layers: [],
308
- };
309
- const runtime = 'python3.9';
310
- const region = 'sa-east-1';
311
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, {}, region, runtime);
312
- expect(updateRequest).toMatchInlineSnapshot(`
313
- {
314
- "Environment": {
315
- "Variables": {
316
- "DD_KMS_API_KEY": "should-be-selected",
317
- "DD_LAMBDA_HANDLER": "index.handler",
318
- "DD_SITE": "datadoghq.com",
319
- },
320
- },
321
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
322
- }
323
- `);
324
- }));
325
- test("doesn't set DD_FLUSH_TO_LOGS when extension is being used", () => __awaiter(void 0, void 0, void 0, function* () {
326
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
327
- const config = {
328
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
329
- Handler: 'index.handler',
330
- Layers: [],
331
- };
332
- const runtime = 'python3.9';
333
- const region = 'sa-east-1';
334
- const settings = {
335
- extensionVersion: 13,
336
- flushMetricsToLogs: true,
337
- mergeXrayTraces: false,
338
- tracingEnabled: false,
339
- };
340
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
341
- expect(updateRequest).toMatchInlineSnapshot(`
342
- {
343
- "Environment": {
344
- "Variables": {
345
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
346
- "DD_LAMBDA_HANDLER": "index.handler",
347
- "DD_MERGE_XRAY_TRACES": "false",
348
- "DD_SITE": "datadoghq.com",
349
- "DD_TRACE_ENABLED": "false",
350
- },
351
- },
352
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
353
- "Layers": [
354
- "arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:13",
355
- ],
356
- }
357
- `);
358
- }));
359
- test('by default calculates an update request with DATADOG_SITE being set to datadoghq.com', () => __awaiter(void 0, void 0, void 0, function* () {
360
- const runtime = client_lambda_1.Runtime.python39;
361
- const config = {
362
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
363
- Handler: 'index.handler',
364
- Layers: [],
365
- Runtime: runtime,
366
- };
367
- const settings = {
368
- flushMetricsToLogs: false,
369
- layerAWSAccount: fixtures_2.mockAwsAccount,
370
- mergeXrayTraces: false,
371
- tracingEnabled: false,
372
- };
373
- const region = 'sa-east-1';
374
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
375
- expect(updateRequest).toMatchInlineSnapshot(`
376
- {
377
- "Environment": {
378
- "Variables": {
379
- "DD_FLUSH_TO_LOG": "false",
380
- "DD_LAMBDA_HANDLER": "index.handler",
381
- "DD_MERGE_XRAY_TRACES": "false",
382
- "DD_SITE": "datadoghq.com",
383
- "DD_TRACE_ENABLED": "false",
384
- },
385
- },
386
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
387
- }
388
- `);
389
- }));
390
- test('calculates an update request with DATADOG_SITE being set to datadoghq.eu', () => __awaiter(void 0, void 0, void 0, function* () {
391
- process.env.DATADOG_SITE = 'datadoghq.eu';
392
- const config = {
393
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
394
- Handler: 'index.handler',
395
- Layers: [],
396
- };
397
- const settings = {
398
- flushMetricsToLogs: false,
399
- layerAWSAccount: fixtures_2.mockAwsAccount,
400
- mergeXrayTraces: false,
401
- tracingEnabled: false,
402
- };
403
- const region = 'sa-east-1';
404
- const runtime = 'python3.9';
405
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
406
- expect(updateRequest).toMatchInlineSnapshot(`
407
- {
408
- "Environment": {
409
- "Variables": {
410
- "DD_FLUSH_TO_LOG": "false",
411
- "DD_LAMBDA_HANDLER": "index.handler",
412
- "DD_MERGE_XRAY_TRACES": "false",
413
- "DD_SITE": "datadoghq.eu",
414
- "DD_TRACE_ENABLED": "false",
415
- },
416
- },
417
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
418
- }
419
- `);
420
- }));
421
- test('throws an error when an invalid DATADOG_SITE url is given', () => __awaiter(void 0, void 0, void 0, function* () {
422
- process.env.DATADOG_SITE = 'datacathq.eu';
423
- const config = {
424
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
425
- Handler: 'index.handler',
426
- Layers: [],
427
- };
428
- const settings = {
429
- flushMetricsToLogs: false,
430
- interactive: false,
431
- layerAWSAccount: fixtures_2.mockAwsAccount,
432
- layerVersion: 5,
433
- mergeXrayTraces: false,
434
- tracingEnabled: false,
435
- };
436
- const region = 'us-east-1';
437
- const runtime = 'python3.9';
438
- let error;
439
- try {
440
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
441
- }
442
- catch (e) {
443
- if (e instanceof Error) {
444
- error = e;
445
- }
446
- }
447
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Warning: Invalid site URL. Must be either datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com, or ddog-gov.com.');
448
- }));
449
- test('throws an error when neither DATADOG_API_KEY nor DATADOG_KMS_API_KEY are given through the environment while using extensionVersion', () => __awaiter(void 0, void 0, void 0, function* () {
450
- const config = {
451
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
452
- Handler: 'index.handler',
453
- Layers: [],
454
- };
455
- const settings = {
456
- extensionVersion: 6,
457
- flushMetricsToLogs: false,
458
- layerAWSAccount: fixtures_2.mockAwsAccount,
459
- layerVersion: 5,
460
- mergeXrayTraces: false,
461
- tracingEnabled: false,
462
- };
463
- const region = 'us-east-1';
464
- const runtime = 'python3.9';
465
- let error;
466
- try {
467
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
468
- }
469
- catch (e) {
470
- if (e instanceof Error) {
471
- error = e;
472
- }
473
- }
474
- expect(error === null || error === void 0 ? void 0 : error.message).toBe("When 'extensionLayer' is set, DATADOG_API_KEY, DATADOG_KMS_API_KEY, or DATADOG_API_KEY_SECRET_ARN must also be set");
475
- }));
476
- test('throws error when trying to add `DD_API_KEY_SECRET_ARN` while using sync metrics in a node runtime', () => __awaiter(void 0, void 0, void 0, function* () {
477
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
478
- const runtime = client_lambda_1.Runtime.nodejs20x;
479
- const region = 'us-east-1';
480
- const config = {
481
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
482
- Handler: 'index.handler',
483
- Layers: [],
484
- Runtime: runtime,
485
- };
486
- const settings = {
487
- flushMetricsToLogs: false,
488
- layerAWSAccount: fixtures_2.mockAwsAccount,
489
- layerVersion: 13,
490
- mergeXrayTraces: false,
491
- tracingEnabled: false,
492
- };
493
- let error;
494
- try {
495
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
496
- }
497
- catch (e) {
498
- if (e instanceof Error) {
499
- error = e;
500
- }
501
- }
502
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('`apiKeySecretArn` is not supported for Node runtimes when using Synchronous Metrics. Use either `apiKey` or `apiKmsKey`.');
503
- }));
504
- describe('test universal instrumentation workflow for Java and .Net', () => {
505
- const region = 'us-east-1';
506
- const config = {
507
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
508
- Handler: 'index.handler',
509
- Layers: [],
510
- Runtime: 'runtime',
511
- };
512
- const settings = {
513
- flushMetricsToLogs: false,
514
- layerAWSAccount: fixtures_2.mockAwsAccount,
515
- layerVersion: 13,
516
- mergeXrayTraces: false,
517
- tracingEnabled: false,
518
- };
519
- const dotnetRuntime = client_lambda_1.Runtime.dotnet6;
520
- const javaRuntime = client_lambda_1.Runtime.java11;
521
- describe(`test for runtime ${dotnetRuntime}`, () => {
522
- const dotNetConfig = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime });
523
- const dotNetConfigOnArm86 = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime, Architectures: [client_lambda_1.Architecture.arm64] });
524
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
525
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
526
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 3 });
527
- let error;
528
- try {
529
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, badSettings, region, dotnetRuntime);
530
- }
531
- catch (e) {
532
- if (e instanceof Error) {
533
- error = e;
534
- }
535
- }
536
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${dotnetRuntime} runtime, the dd-trace version 3 is not compatible with the dd-extension version 24`);
537
- }));
538
- test('should throw error if it is running on arm64 with an old dd-extension version', () => __awaiter(void 0, void 0, void 0, function* () {
539
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
540
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 23 });
541
- let error;
542
- try {
543
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfigOnArm86, curSettings, region, dotnetRuntime);
544
- }
545
- catch (e) {
546
- if (e instanceof Error) {
547
- error = e;
548
- }
549
- }
550
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Instrumenting arm64 architecture is not supported for the given dd-extension version. Please choose the latest dd-extension version or use x86_64 architecture.');
551
- }));
552
- const baseVariables = {
553
- DD_KMS_API_KEY: '5678',
554
- DD_MERGE_XRAY_TRACES: 'false',
555
- DD_SITE: 'datadoghq.com',
556
- DD_TRACE_ENABLED: 'false',
557
- };
558
- const compatibleTracerAndExtension = {
559
- Environment: {
560
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
561
- },
562
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
563
- Layers: [
564
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
565
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:4',
566
- ],
567
- };
568
- const oldExtensionVersion = {
569
- Environment: {
570
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
571
- },
572
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
573
- Layers: [
574
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
575
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:2',
576
- ],
577
- };
578
- const traceUndefined = {
579
- Environment: {
580
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
581
- },
582
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
583
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
584
- };
585
- test.each `
586
- extensionVersion | traceVersion | outputResult
587
- ${25} | ${4} | ${compatibleTracerAndExtension}
588
- ${23} | ${2} | ${oldExtensionVersion}
589
- ${15} | ${undefined} | ${traceUndefined}
590
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
591
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
592
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
593
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, curSettings, region, dotnetRuntime);
594
- expect(updateRequest).toEqual(outputResult);
595
- }));
596
- });
597
- describe(`test for runtime ${javaRuntime}`, () => {
598
- const javaConfig = Object.assign(Object.assign({}, config), { Runtime: javaRuntime });
599
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
600
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
601
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 4 });
602
- let error;
603
- try {
604
- yield (0, instrument_1.calculateUpdateRequest)(javaConfig, badSettings, region, javaRuntime);
605
- }
606
- catch (e) {
607
- if (e instanceof Error) {
608
- error = e;
609
- }
610
- }
611
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${javaRuntime} runtime, the dd-trace version 4 is not compatible with the dd-extension version 24`);
612
- }));
613
- const baseVariables = {
614
- DD_KMS_API_KEY: '5678',
615
- DD_MERGE_XRAY_TRACES: 'false',
616
- DD_SITE: 'datadoghq.com',
617
- DD_TRACE_ENABLED: 'false',
618
- };
619
- const compatibleTracerAndExtension = {
620
- Environment: {
621
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
622
- },
623
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
624
- Layers: [
625
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
626
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:5',
627
- ],
628
- };
629
- const oldExtensionVersion = {
630
- Environment: {
631
- Variables: Object.assign({}, baseVariables),
632
- },
633
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
634
- Layers: [
635
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
636
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:2',
637
- ],
638
- };
639
- const traceUndefined = {
640
- Environment: {
641
- Variables: Object.assign({}, baseVariables),
642
- },
643
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
644
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
645
- };
646
- test.each `
647
- extensionVersion | traceVersion | outputResult
648
- ${25} | ${5} | ${compatibleTracerAndExtension}
649
- ${23} | ${2} | ${oldExtensionVersion}
650
- ${15} | ${undefined} | ${traceUndefined}
651
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
652
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
653
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
654
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(javaConfig, curSettings, region, javaRuntime);
655
- expect(updateRequest).toEqual(outputResult);
656
- }));
657
- });
658
- });
659
- describe('sets handlers correctly', () => {
660
- const lambdaClientMock = (0, aws_sdk_client_mock_1.mockClient)(client_lambda_1.LambdaClient);
661
- describe('interactive mode', () => {
662
- const extensionLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension`;
663
- beforeAll(() => {
664
- lambdaClientMock.reset();
665
- process.env = {};
666
- (0, fixtures_2.mockLambdaClientCommands)(lambdaClientMock);
667
- });
668
- afterAll(() => {
669
- process.env = OLD_ENV;
670
- });
671
- it.each([
672
- [
673
- 'python',
674
- {
675
- runtime: client_lambda_1.Runtime.python311,
676
- layer: 'Datadog-Python311',
677
- },
678
- 'datadog_lambda.handler.handler',
679
- ],
680
- [
681
- 'node',
682
- {
683
- runtime: client_lambda_1.Runtime.nodejs16x,
684
- layer: 'Datadog-Node16-x',
685
- },
686
- '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
687
- ],
688
- ])('%s', (_, test, expected) => __awaiter(void 0, void 0, void 0, function* () {
689
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
690
- const libraryLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:${test.layer}`;
691
- // Mock Layers for interactive mode.
692
- (0, fixtures_2.mockLambdaLayers)(lambdaClientMock, {
693
- [`${libraryLayer}:1`]: {
694
- LayerName: `${libraryLayer}`,
695
- VersionNumber: 1,
696
- },
697
- [`${extensionLayer}:1`]: {
698
- LayerName: `${extensionLayer}`,
699
- VersionNumber: 1,
700
- },
701
- });
702
- const config = {
703
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
704
- Handler: 'index.handler',
705
- Layers: [],
706
- Runtime: test.runtime,
707
- };
708
- const settings = {
709
- flushMetricsToLogs: false,
710
- interactive: true,
711
- mergeXrayTraces: false,
712
- tracingEnabled: false,
713
- };
714
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, 'us-east-1', test.runtime);
715
- expect(updateRequest === null || updateRequest === void 0 ? void 0 : updateRequest.Handler).toBe(expected);
716
- }));
717
- });
718
- });
719
- });
720
- });
721
- //# sourceMappingURL=instrument.part2.test.js.map