@datadog/datadog-ci 3.12.0 → 3.13.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.
- package/README.md +1 -1
- package/dist/commands/aas/common.d.ts +3 -4
- package/dist/commands/aas/common.js +28 -10
- package/dist/commands/aas/common.js.map +1 -1
- package/dist/commands/aas/instrument.d.ts +7 -2
- package/dist/commands/aas/instrument.js +51 -10
- package/dist/commands/aas/instrument.js.map +1 -1
- package/dist/commands/aas/interfaces.d.ts +3 -0
- package/dist/commands/cloud-run/constants.d.ts +2 -0
- package/dist/commands/cloud-run/constants.js +3 -1
- package/dist/commands/cloud-run/constants.js.map +1 -1
- package/dist/commands/cloud-run/flare.js +1 -0
- package/dist/commands/cloud-run/flare.js.map +1 -1
- package/dist/commands/cloud-run/instrument.d.ts +15 -8
- package/dist/commands/cloud-run/instrument.js +260 -138
- package/dist/commands/cloud-run/instrument.js.map +1 -1
- package/dist/commands/cloud-run/interfaces.d.ts +0 -19
- package/dist/commands/cloud-run/prompt.d.ts +5 -0
- package/dist/commands/cloud-run/prompt.js +86 -0
- package/dist/commands/cloud-run/prompt.js.map +1 -0
- package/dist/commands/cloud-run/renderer.d.ts +1 -2
- package/dist/commands/cloud-run/renderer.js +3 -11
- package/dist/commands/cloud-run/renderer.js.map +1 -1
- package/dist/commands/cloud-run/types.d.ts +3 -2
- package/dist/commands/cloud-run/uninstrument.d.ts +21 -0
- package/dist/commands/cloud-run/uninstrument.js +187 -0
- package/dist/commands/cloud-run/uninstrument.js.map +1 -0
- package/dist/commands/cloud-run/utils.d.ts +10 -0
- package/dist/commands/cloud-run/utils.js +81 -1
- package/dist/commands/cloud-run/utils.js.map +1 -1
- package/dist/commands/coverage/renderer.d.ts +2 -1
- package/dist/commands/coverage/renderer.js +12 -7
- package/dist/commands/coverage/renderer.js.map +1 -1
- package/dist/commands/coverage/upload.js +6 -6
- package/dist/commands/coverage/upload.js.map +1 -1
- package/dist/commands/coverage/utils.d.ts +8 -2
- package/dist/commands/coverage/utils.js +119 -4
- package/dist/commands/coverage/utils.js.map +1 -1
- package/dist/commands/dsyms/interfaces.d.ts +5 -5
- package/dist/commands/dsyms/interfaces.js +1 -1
- package/dist/commands/dsyms/interfaces.js.map +1 -1
- package/dist/commands/dsyms/renderer.d.ts +2 -2
- package/dist/commands/dsyms/renderer.js +6 -6
- package/dist/commands/dsyms/renderer.js.map +1 -1
- package/dist/commands/dsyms/upload.d.ts +17 -12
- package/dist/commands/dsyms/upload.js +177 -145
- package/dist/commands/dsyms/upload.js.map +1 -1
- package/dist/commands/junit/utils.d.ts +2 -2
- package/dist/commands/junit/utils.js +9 -11
- package/dist/commands/junit/utils.js.map +1 -1
- package/dist/commands/lambda/constants.d.ts +0 -7
- package/dist/commands/lambda/constants.js +3 -15
- package/dist/commands/lambda/constants.js.map +1 -1
- package/dist/commands/lambda/flare.js +1 -0
- package/dist/commands/lambda/flare.js.map +1 -1
- package/dist/commands/lambda/functions/instrument.js +9 -9
- package/dist/commands/lambda/functions/instrument.js.map +1 -1
- package/dist/commands/lambda/functions/uninstrument.js +6 -6
- package/dist/commands/lambda/functions/uninstrument.js.map +1 -1
- package/dist/commands/lambda/instrument.d.ts +0 -3
- package/dist/commands/lambda/instrument.js +4 -51
- package/dist/commands/lambda/instrument.js.map +1 -1
- package/dist/commands/react-native/xcode.d.ts +23 -0
- package/dist/commands/react-native/xcode.js +166 -10
- package/dist/commands/react-native/xcode.js.map +1 -1
- package/dist/commands/sarif/renderer.js +2 -2
- package/dist/commands/sarif/renderer.js.map +1 -1
- package/dist/commands/sbom/api.js +2 -2
- package/dist/commands/sbom/api.js.map +1 -1
- package/dist/commands/sbom/renderer.js +3 -3
- package/dist/commands/sbom/renderer.js.map +1 -1
- package/dist/commands/synthetics/api.d.ts +7 -3
- package/dist/commands/synthetics/api.js +20 -3
- package/dist/commands/synthetics/api.js.map +1 -1
- package/dist/commands/synthetics/base-command.d.ts +8 -2
- package/dist/commands/synthetics/base-command.js +34 -32
- package/dist/commands/synthetics/base-command.js.map +1 -1
- package/dist/commands/synthetics/batch.d.ts +4 -3
- package/dist/commands/synthetics/batch.js +27 -14
- package/dist/commands/synthetics/batch.js.map +1 -1
- package/dist/commands/synthetics/errors.d.ts +1 -1
- package/dist/commands/synthetics/errors.js +1 -1
- package/dist/commands/synthetics/errors.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +13 -2
- package/dist/commands/synthetics/interfaces.js.map +1 -1
- package/dist/commands/synthetics/reporters/default.js +16 -2
- package/dist/commands/synthetics/reporters/default.js.map +1 -1
- package/dist/commands/synthetics/reporters/junit.d.ts +1 -0
- package/dist/commands/synthetics/reporters/junit.js +2 -0
- package/dist/commands/synthetics/reporters/junit.js.map +1 -1
- package/dist/commands/synthetics/run-tests-lib.js +17 -3
- package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
- package/dist/commands/synthetics/test.d.ts +2 -2
- package/dist/commands/synthetics/test.js +15 -2
- package/dist/commands/synthetics/test.js.map +1 -1
- package/dist/commands/synthetics/utils/internal.d.ts +2 -2
- package/dist/commands/synthetics/utils/internal.js.map +1 -1
- package/dist/commands/synthetics/utils/public.js +9 -2
- package/dist/commands/synthetics/utils/public.js.map +1 -1
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +14 -1
- package/dist/constants.js.map +1 -1
- package/dist/helpers/app.d.ts +1 -0
- package/dist/helpers/app.js +7 -1
- package/dist/helpers/app.js.map +1 -1
- package/dist/helpers/flare.d.ts +2 -0
- package/dist/helpers/flare.js +13 -1
- package/dist/helpers/flare.js.map +1 -1
- package/dist/helpers/git/instrument-helpers.d.ts +13 -0
- package/dist/helpers/git/instrument-helpers.js +60 -0
- package/dist/helpers/git/instrument-helpers.js.map +1 -0
- package/dist/helpers/version.d.ts +1 -0
- package/dist/helpers/version.js +17 -1
- package/dist/helpers/version.js.map +1 -1
- package/package.json +4 -1
|
@@ -74,111 +74,47 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
74
74
|
this.config = {
|
|
75
75
|
datadogSite: 'datadoghq.com',
|
|
76
76
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
77
|
+
}
|
|
78
|
+
execute() {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
(0, fips_1.enableFips)(this.fips || this.fipsConfig.fips, this.fipsIgnoreError || this.fipsConfig.fipsIgnoreError);
|
|
81
|
+
this.basePath = upath_1.default.normalize(this.basePath);
|
|
82
|
+
this.context.stdout.write((0, renderer_1.renderCommandInfo)(this.basePath, this.maxConcurrency, this.dryRun));
|
|
83
|
+
yield this.loadConfig();
|
|
84
|
+
const { metricsLogger, apiKeyValidator } = this.createServices();
|
|
85
|
+
const initialTime = Date.now();
|
|
86
|
+
try {
|
|
87
|
+
const tmpDirectory = yield (0, utils_2.createUniqueTmpDirectory)();
|
|
88
88
|
try {
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
|
|
89
|
+
const results = yield this.processAndUploadDsyms(tmpDirectory, metricsLogger, apiKeyValidator);
|
|
90
|
+
const totalTime = (Date.now() - initialTime) / 1000;
|
|
91
|
+
this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(results, totalTime, this.dryRun));
|
|
92
|
+
metricsLogger.logger.gauge('duration', totalTime);
|
|
93
|
+
return 0;
|
|
92
94
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
finally {
|
|
96
|
+
yield (0, utils_2.deleteDirectory)(tmpDirectory);
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
* It returns one or many arch slices read from the output.
|
|
102
|
-
*
|
|
103
|
-
* Example `dwarfdump --uuid` output:
|
|
104
|
-
* ```
|
|
105
|
-
* $ dwarfdump --uuid DDTest.framework.dSYM
|
|
106
|
-
* UUID: C8469F85-B060-3085-B69D-E46C645560EA (armv7) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
|
|
107
|
-
* UUID: 06EE3D68-D605-3E92-B92D-2F48C02A505E (arm64) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
|
|
108
|
-
* ```
|
|
109
|
-
*/
|
|
110
|
-
this.parseDwarfdumpOutput = (output) => {
|
|
111
|
-
const lineRegexp = /UUID: ([0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}) \(([a-z0-9_]+)\) (.+)/;
|
|
112
|
-
return output
|
|
113
|
-
.split('\n')
|
|
114
|
-
.map((line) => {
|
|
115
|
-
const match = line.match(lineRegexp);
|
|
116
|
-
return match ? [{ arch: match[2], objectPath: match[3], uuid: match[1] }] : [];
|
|
117
|
-
})
|
|
118
|
-
.reduce((acc, nextSlice) => acc.concat(nextSlice), []);
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* It takes fat dSYM as input and returns multiple dSYMs by extracting **each arch**
|
|
122
|
-
* to separate dSYM file. New files are saved to `intermediatePath` and named by their object uuid (`<uuid>.dSYM`).
|
|
123
|
-
*
|
|
124
|
-
* For example, given `<source path>/Foo.dSYM/Contents/Resources/DWARF/Foo` dSYM with two arch slices: `arm64` (uuid1)
|
|
125
|
-
* and `x86_64` (uuid2), it will:
|
|
126
|
-
* - create `<intermediate path>/<uuid1>.dSYM/Contents/Resources/DWARF/Foo` for `arm64`,
|
|
127
|
-
* - create `<intermediate path>/<uuid2>.dSYM/Contents/Resources/DWARF/Foo` for `x86_64`.
|
|
128
|
-
*/
|
|
129
|
-
this.thinDSYM = (dsym, intermediatePath) => __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const slimmedDSYMs = [];
|
|
131
|
-
for (const slice of dsym.slices) {
|
|
132
|
-
try {
|
|
133
|
-
const newDSYMBundleName = `${slice.uuid}.dSYM`;
|
|
134
|
-
const newDSYMBundlePath = (0, utils_1.buildPath)(intermediatePath, newDSYMBundleName);
|
|
135
|
-
const newObjectPath = (0, utils_1.buildPath)(newDSYMBundlePath, upath_1.default.relative(dsym.bundlePath, slice.objectPath));
|
|
136
|
-
// Extract arch slice:
|
|
137
|
-
yield fs_1.promises.mkdir(upath_1.default.dirname(newObjectPath), { recursive: true });
|
|
138
|
-
yield (0, utils_2.executeLipo)(slice.objectPath, slice.arch, newObjectPath);
|
|
139
|
-
// The original dSYM bundle can also include `Info.plist` file, so copy it to the `<uuid>.dSYM` as well.
|
|
140
|
-
// Ref.: https://opensource.apple.com/source/lldb/lldb-179.1/www/symbols.html
|
|
141
|
-
const infoPlistPath = (0, glob_1.globSync)((0, utils_1.buildPath)(dsym.bundlePath, '**/Info.plist'))[0];
|
|
142
|
-
if (infoPlistPath) {
|
|
143
|
-
const newInfoPlistPath = (0, utils_1.buildPath)(newDSYMBundlePath, upath_1.default.relative(dsym.bundlePath, infoPlistPath));
|
|
144
|
-
yield fs_1.promises.mkdir(upath_1.default.dirname(newInfoPlistPath), { recursive: true });
|
|
145
|
-
yield fs_1.promises.copyFile(infoPlistPath, newInfoPlistPath);
|
|
146
|
-
}
|
|
147
|
-
slimmedDSYMs.push({
|
|
148
|
-
bundlePath: newDSYMBundlePath,
|
|
149
|
-
slices: [{ arch: slice.arch, uuid: slice.uuid, objectPath: newObjectPath }],
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
catch (_d) {
|
|
153
|
-
this.context.stdout.write((0, renderer_1.renderDSYMSlimmingFailure)(dsym, slice));
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (error instanceof errors_1.InvalidConfigurationError) {
|
|
101
|
+
this.context.stdout.write((0, renderer_1.renderConfigurationError)(error));
|
|
102
|
+
return 1;
|
|
154
103
|
}
|
|
104
|
+
throw error;
|
|
155
105
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
* It takes `N` dSYMs and returns `N` or more dSYMs. If a dSYM includes more than one arch slice,
|
|
160
|
-
* it will be thinned by extracting each arch to a new dSYM in `intermediatePath`.
|
|
161
|
-
*/
|
|
162
|
-
this.thinDSYMs = (dsyms, intermediatePath) => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
yield fs_1.promises.mkdir(intermediatePath, { recursive: true });
|
|
164
|
-
let slimDSYMs = [];
|
|
165
|
-
for (const dsym of dsyms) {
|
|
166
|
-
if (dsym.slices.length > 1) {
|
|
167
|
-
slimDSYMs = slimDSYMs.concat(yield this.thinDSYM(dsym, intermediatePath));
|
|
106
|
+
finally {
|
|
107
|
+
try {
|
|
108
|
+
yield metricsLogger.flush();
|
|
168
109
|
}
|
|
169
|
-
|
|
170
|
-
|
|
110
|
+
catch (err) {
|
|
111
|
+
this.context.stdout.write(`WARN: ${err}\n`);
|
|
171
112
|
}
|
|
172
113
|
}
|
|
173
|
-
return Promise.all(slimDSYMs);
|
|
174
114
|
});
|
|
175
115
|
}
|
|
176
|
-
|
|
116
|
+
loadConfig() {
|
|
177
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
-
(0, fips_1.enableFips)(this.fips || this.fipsConfig.fips, this.fipsIgnoreError || this.fipsConfig.fipsIgnoreError);
|
|
179
|
-
// Normalizing the basePath to resolve .. and .
|
|
180
|
-
this.basePath = upath_1.default.normalize(this.basePath);
|
|
181
|
-
this.context.stdout.write((0, renderer_1.renderCommandInfo)(this.basePath, this.maxConcurrency, this.dryRun));
|
|
182
118
|
this.config = yield (0, utils_1.resolveConfigFromFileAndEnvironment)(this.config, {
|
|
183
119
|
apiKey: process.env.DATADOG_API_KEY,
|
|
184
120
|
datadogSite: process.env.DATADOG_SITE,
|
|
@@ -189,64 +125,160 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
189
125
|
(0, validation_1.checkAPIKeyOverride)(process.env.DATADOG_API_KEY, configFromFile.apiKey, this.context.stdout);
|
|
190
126
|
},
|
|
191
127
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
createServices() {
|
|
131
|
+
const metricsLogger = (0, metrics_1.getMetricsLogger)({
|
|
132
|
+
apiKey: this.config.apiKey,
|
|
133
|
+
datadogSite: this.config.datadogSite,
|
|
134
|
+
defaultTags: [`cli_version:${this.cliVersion}`],
|
|
135
|
+
prefix: 'datadog.ci.dsyms.',
|
|
136
|
+
});
|
|
137
|
+
const apiKeyValidator = (0, apikey_1.newApiKeyValidator)({
|
|
138
|
+
apiKey: this.config.apiKey,
|
|
139
|
+
datadogSite: this.config.datadogSite,
|
|
140
|
+
metricsLogger: metricsLogger.logger,
|
|
141
|
+
});
|
|
142
|
+
return { metricsLogger, apiKeyValidator };
|
|
143
|
+
}
|
|
144
|
+
processAndUploadDsyms(tmpDirectory, metricsLogger, apiKeyValidator) {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
146
|
const intermediateDirectory = (0, utils_1.buildPath)(tmpDirectory, 'datadog-ci', 'dsyms', 'intermediate');
|
|
206
147
|
const uploadDirectory = (0, utils_1.buildPath)(tmpDirectory, 'datadog-ci', 'dsyms', 'upload');
|
|
207
148
|
this.context.stdout.write((0, renderer_1.renderCommandDetail)(intermediateDirectory, uploadDirectory));
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
149
|
+
const searchDirectory = yield this.prepareSearchDirectory(tmpDirectory);
|
|
150
|
+
const dsyms = yield this.findDsyms(searchDirectory);
|
|
151
|
+
const thinDsyms = yield this.processDsyms(dsyms, intermediateDirectory);
|
|
152
|
+
const compressedDsyms = yield this.compressDsyms(thinDsyms, uploadDirectory);
|
|
153
|
+
const requestBuilder = this.createRequestBuilder();
|
|
154
|
+
const uploadFunction = this.createUploadFunction(requestBuilder, metricsLogger, apiKeyValidator);
|
|
155
|
+
return (0, concurrency_1.doWithMaxConcurrency)(this.maxConcurrency, compressedDsyms, uploadFunction);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
prepareSearchDirectory(tmpDirectory) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
160
|
if (yield (0, utils_2.isZipFile)(this.basePath)) {
|
|
212
161
|
yield (0, utils_2.unzipArchiveToDirectory)(this.basePath, tmpDirectory);
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
const dsyms = yield this.findDSYMsInDirectory(dSYMsSearchDirectory);
|
|
216
|
-
// Reduce dSYMs size by extracting arch slices from fat dSYMs to separate single-arch dSYMs in intermediate location.
|
|
217
|
-
// This is to avoid exceeding intake limit whenever possible.
|
|
218
|
-
const slimDSYMs = yield this.thinDSYMs(dsyms, intermediateDirectory);
|
|
219
|
-
// Compress each dSYM into single `.zip` archive.
|
|
220
|
-
const compressedDSYMs = yield this.compressDSYMsToDirectory(slimDSYMs, uploadDirectory);
|
|
221
|
-
const requestBuilder = this.getRequestBuilder();
|
|
222
|
-
const uploadDSYM = this.uploadDSYM(requestBuilder, metricsLogger, apiKeyValidator);
|
|
223
|
-
try {
|
|
224
|
-
const results = yield (0, concurrency_1.doWithMaxConcurrency)(this.maxConcurrency, compressedDSYMs, uploadDSYM);
|
|
225
|
-
const totalTime = (Date.now() - initialTime) / 1000;
|
|
226
|
-
this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(results, totalTime, this.dryRun));
|
|
227
|
-
metricsLogger.logger.gauge('duration', totalTime);
|
|
228
|
-
return 0;
|
|
162
|
+
return tmpDirectory;
|
|
229
163
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
164
|
+
return this.basePath;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
findDsyms(directoryPath) {
|
|
168
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
const dsymPaths = (0, glob_1.globSync)((0, utils_1.buildPath)(directoryPath, '**/*.dSYM'));
|
|
170
|
+
const results = yield Promise.all(dsymPaths.map((bundle) => __awaiter(this, void 0, void 0, function* () {
|
|
171
|
+
try {
|
|
172
|
+
const { stdout } = yield (0, utils_2.executeDwarfdump)(bundle);
|
|
173
|
+
const dwarf = this.parseDwarfdumpOutput(stdout);
|
|
174
|
+
return [{ bundle, dwarf }];
|
|
234
175
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
176
|
+
catch (_a) {
|
|
177
|
+
this.context.stdout.write((0, renderer_1.renderInvalidDsymWarning)(bundle));
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
})));
|
|
181
|
+
return results.flat();
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Parses the output of `dwarfdump --uuid` command (ref.: https://www.unix.com/man-page/osx/1/dwarfdump/).
|
|
186
|
+
* It returns one or many DWARF UUID and arch read from the output.
|
|
187
|
+
*
|
|
188
|
+
* Example `dwarfdump --uuid` output:
|
|
189
|
+
* ```
|
|
190
|
+
* $ dwarfdump --uuid DDTest.framework.dSYM
|
|
191
|
+
* UUID: C8469F85-B060-3085-B69D-E46C645560EA (armv7) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
|
|
192
|
+
* UUID: 06EE3D68-D605-3E92-B92D-2F48C02A505E (arm64) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
parseDwarfdumpOutput(output) {
|
|
196
|
+
const lineRegexp = /UUID: ([0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}) \(([a-z0-9_]+)\) (.+)/;
|
|
197
|
+
return output
|
|
198
|
+
.split('\n')
|
|
199
|
+
.map((line) => {
|
|
200
|
+
const match = line.match(lineRegexp);
|
|
201
|
+
return match ? [{ uuid: match[1], arch: match[2], object: match[3] }] : [];
|
|
202
|
+
})
|
|
203
|
+
.flat();
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* It takes `N` dSYMs and returns `N` or more dSYMs. If a dSYM includes more than one arch slice,
|
|
207
|
+
* it will be thinned by extracting each arch to a new dSYM in `output`.
|
|
208
|
+
*/
|
|
209
|
+
processDsyms(dsyms, output) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
yield fs_1.promises.mkdir(output, { recursive: true });
|
|
212
|
+
const results = yield Promise.all(dsyms.map((dsym) => __awaiter(this, void 0, void 0, function* () {
|
|
213
|
+
// Reduce dSYMs size by extracting single UUIDs and arch slices from fat dSYMs to separate
|
|
214
|
+
// single-arch dSYMs in intermediate location. This is to avoid exceeding intake limit whenever possible.
|
|
215
|
+
return dsym.dwarf.length > 1 ? this.thinDsym(dsym, output) : [dsym];
|
|
216
|
+
})));
|
|
217
|
+
return results.flat();
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* It takes fat dSYM as input and returns multiple dSYMs by extracting **each arch**
|
|
222
|
+
* to separate dSYM file. New files are saved to `output` and named by their object uuid (`<uuid>.dSYM`).
|
|
223
|
+
*
|
|
224
|
+
* For example, given `<source path>/Foo.dSYM/Contents/Resources/DWARF/Foo` dSYM with two arch slices: `arm64` (uuid1)
|
|
225
|
+
* and `x86_64` (uuid2), it will:
|
|
226
|
+
* - create `<intermediate path>/<uuid1>.dSYM/Contents/Resources/DWARF/Foo` for `arm64`,
|
|
227
|
+
* - create `<intermediate path>/<uuid2>.dSYM/Contents/Resources/DWARF/Foo` for `x86_64`.
|
|
228
|
+
*/
|
|
229
|
+
thinDsym(dsym, output) {
|
|
230
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
231
|
+
const results = yield Promise.all(dsym.dwarf.map((dwarf) => __awaiter(this, void 0, void 0, function* () {
|
|
240
232
|
try {
|
|
241
|
-
|
|
233
|
+
const bundle = (0, utils_1.buildPath)(output, `${dwarf.uuid}.dSYM`);
|
|
234
|
+
const object = (0, utils_1.buildPath)(bundle, upath_1.default.relative(dsym.bundle, dwarf.object));
|
|
235
|
+
yield fs_1.promises.mkdir(upath_1.default.dirname(object), { recursive: true });
|
|
236
|
+
try {
|
|
237
|
+
// Attempt to extract the single arch object file.
|
|
238
|
+
// We could use the `lipo -archs` command to get the list of archs,
|
|
239
|
+
// but it's more straightforward to just attempt to extract
|
|
240
|
+
// the single arch.
|
|
241
|
+
yield (0, utils_2.executeLipo)(dwarf.object, dwarf.arch, object);
|
|
242
|
+
}
|
|
243
|
+
catch (_a) {
|
|
244
|
+
// The thinning using `lipo` failed, meaning the dSYM is already
|
|
245
|
+
// a single arch dSYM. Copy the object file to the new dSYM.
|
|
246
|
+
yield fs_1.promises.copyFile(dwarf.object, object);
|
|
247
|
+
}
|
|
248
|
+
yield this.copyInfoPlist(dsym.bundle, bundle);
|
|
249
|
+
return [{ bundle, dwarf: [Object.assign(Object.assign({}, dwarf), { object })] }];
|
|
242
250
|
}
|
|
243
|
-
catch (
|
|
244
|
-
this.context.stdout.write(
|
|
251
|
+
catch (error) {
|
|
252
|
+
this.context.stdout.write((0, renderer_1.renderDSYMSlimmingFailure)(dsym, dwarf, error));
|
|
253
|
+
return [];
|
|
245
254
|
}
|
|
255
|
+
})));
|
|
256
|
+
return results.flat();
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
copyInfoPlist(src, dst) {
|
|
260
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
+
const infoPlistPaths = (0, glob_1.globSync)((0, utils_1.buildPath)(src, '**/Info.plist'));
|
|
262
|
+
if (infoPlistPaths.length === 0) {
|
|
263
|
+
return;
|
|
246
264
|
}
|
|
265
|
+
const infoPlistPath = infoPlistPaths[0];
|
|
266
|
+
const newInfoPlistPath = (0, utils_1.buildPath)(dst, upath_1.default.relative(src, infoPlistPath));
|
|
267
|
+
yield fs_1.promises.mkdir(upath_1.default.dirname(newInfoPlistPath), { recursive: true });
|
|
268
|
+
yield fs_1.promises.copyFile(infoPlistPath, newInfoPlistPath);
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
compressDsyms(dsyms, output) {
|
|
272
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
273
|
+
yield fs_1.promises.mkdir(output, { recursive: true });
|
|
274
|
+
return Promise.all(dsyms.map((dsym) => __awaiter(this, void 0, void 0, function* () {
|
|
275
|
+
const archivePath = (0, utils_1.buildPath)(output, `${dsym.dwarf[0].uuid}.zip`);
|
|
276
|
+
yield (0, utils_2.zipDirectoryToArchive)(dsym.bundle, archivePath);
|
|
277
|
+
return new interfaces_1.CompressedDsym(archivePath, dsym);
|
|
278
|
+
})));
|
|
247
279
|
});
|
|
248
280
|
}
|
|
249
|
-
|
|
281
|
+
createRequestBuilder() {
|
|
250
282
|
if (!this.config.apiKey) {
|
|
251
283
|
throw new errors_1.InvalidConfigurationError(`Missing ${chalk_1.default.bold('DATADOG_API_KEY')} in your environment.`);
|
|
252
284
|
}
|
|
@@ -260,25 +292,25 @@ class UploadCommand extends clipanion_1.Command {
|
|
|
260
292
|
overrideUrl: 'api/v2/srcmap',
|
|
261
293
|
});
|
|
262
294
|
}
|
|
263
|
-
|
|
264
|
-
return (
|
|
265
|
-
const payload =
|
|
295
|
+
createUploadFunction(requestBuilder, metricsLogger, apiKeyValidator) {
|
|
296
|
+
return (dsym) => __awaiter(this, void 0, void 0, function* () {
|
|
297
|
+
const payload = dsym.asMultipartPayload();
|
|
266
298
|
if (this.dryRun) {
|
|
267
|
-
this.context.stdout.write(`[DRYRUN] ${(0, renderer_1.renderUpload)(
|
|
299
|
+
this.context.stdout.write(`[DRYRUN] ${(0, renderer_1.renderUpload)(dsym)}`);
|
|
268
300
|
return upload_1.UploadStatus.Success;
|
|
269
301
|
}
|
|
270
302
|
return (0, upload_1.upload)(requestBuilder)(payload, {
|
|
271
303
|
apiKeyValidator,
|
|
272
304
|
onError: (e) => {
|
|
273
|
-
this.context.stdout.write((0, renderer_1.renderFailedUpload)(
|
|
305
|
+
this.context.stdout.write((0, renderer_1.renderFailedUpload)(dsym, e.message));
|
|
274
306
|
metricsLogger.logger.increment('failed', 1);
|
|
275
307
|
},
|
|
276
308
|
onRetry: (e, attempts) => {
|
|
277
|
-
this.context.stdout.write((0, renderer_1.renderRetriedUpload)(
|
|
309
|
+
this.context.stdout.write((0, renderer_1.renderRetriedUpload)(dsym, e.message, attempts));
|
|
278
310
|
metricsLogger.logger.increment('retries', 1);
|
|
279
311
|
},
|
|
280
312
|
onUpload: () => {
|
|
281
|
-
this.context.stdout.write((0, renderer_1.renderUpload)(
|
|
313
|
+
this.context.stdout.write((0, renderer_1.renderUpload)(dsym));
|
|
282
314
|
},
|
|
283
315
|
retries: 5,
|
|
284
316
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/dsyms/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA2B;AAE3B,kDAAyB;AACzB,yCAAyC;AACzC,kDAAyB;AAEzB,+CAAuE;AACvE,iDAAwE;AACxE,2DAA8D;AAC9D,2CAA2C;AAC3C,iDAA8D;AAC9D,6CAA6C;AAC7C,6CAA2C;AAE3C,mDAAqE;AACrE,iDAAyD;AACzD,+CAAqG;AACrG,qEAAsD;AACtD,yDAA4D;AAC5D,mDAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/dsyms/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { SpanTags } from '../../helpers/interfaces';
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const getTestRunsUrl: (spanTags: SpanTags) => string;
|
|
2
|
+
export declare const getTestRunsUrlPath: (spanTags: SpanTags, queryPrefix?: string) => string;
|
|
3
|
+
export declare const getTestRunsUrl: (spanTags: SpanTags, queryPrefix?: string) => string;
|
|
4
4
|
export declare const getTestCommitRedirectURL: (spanTags: SpanTags, service?: string, env?: string) => string;
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTestCommitRedirectURL = exports.getTestRunsUrl = exports.
|
|
3
|
+
exports.getTestCommitRedirectURL = exports.getTestRunsUrl = exports.getTestRunsUrlPath = void 0;
|
|
4
4
|
const app_1 = require("../../helpers/app");
|
|
5
5
|
const tags_1 = require("../../helpers/tags");
|
|
6
|
-
const
|
|
7
|
-
const site = process.env.DATADOG_SITE || process.env.DD_SITE || 'datadoghq.com';
|
|
8
|
-
const subdomain = process.env.DD_SUBDOMAIN || '';
|
|
9
|
-
return (0, app_1.getCommonAppBaseURL)(site, subdomain);
|
|
10
|
-
};
|
|
11
|
-
exports.getBaseUrl = getBaseUrl;
|
|
12
|
-
const getTestRunsUrl = (spanTags) => {
|
|
6
|
+
const getTestRunsUrlPath = (spanTags, queryPrefix = '') => {
|
|
13
7
|
if (!spanTags[tags_1.CI_PIPELINE_URL] && !spanTags[tags_1.CI_JOB_URL]) {
|
|
14
8
|
return '';
|
|
15
9
|
}
|
|
16
|
-
let query =
|
|
10
|
+
let query = queryPrefix;
|
|
17
11
|
if (spanTags[tags_1.CI_JOB_URL]) {
|
|
18
12
|
query += ` @ci.job.url:"${spanTags[tags_1.CI_JOB_URL]}"`;
|
|
19
13
|
}
|
|
20
14
|
else if (spanTags[tags_1.CI_PIPELINE_URL]) {
|
|
21
15
|
query += ` @ci.pipeline.url:"${spanTags[tags_1.CI_PIPELINE_URL]}"`;
|
|
22
16
|
}
|
|
23
|
-
return
|
|
17
|
+
return `ci/test-runs?query=${encodeURIComponent(query)}`;
|
|
18
|
+
};
|
|
19
|
+
exports.getTestRunsUrlPath = getTestRunsUrlPath;
|
|
20
|
+
const getTestRunsUrl = (spanTags, queryPrefix = '') => {
|
|
21
|
+
return `${(0, app_1.getBaseUrl)()}/${(0, exports.getTestRunsUrlPath)(spanTags, queryPrefix)}`;
|
|
24
22
|
};
|
|
25
23
|
exports.getTestRunsUrl = getTestRunsUrl;
|
|
26
24
|
const getTestCommitRedirectURL = (spanTags, service, env) => {
|
|
@@ -31,7 +29,7 @@ const getTestCommitRedirectURL = (spanTags, service, env) => {
|
|
|
31
29
|
const encodedService = encodeURIComponent(service);
|
|
32
30
|
const encodedBranch = encodeURIComponent(`${spanTags[tags_1.GIT_BRANCH]}`);
|
|
33
31
|
const commitSha = `${spanTags[tags_1.GIT_SHA]}`;
|
|
34
|
-
let url = `${(0,
|
|
32
|
+
let url = `${(0, app_1.getBaseUrl)()}ci/redirect/tests/${encodedRepoUrl}/-/${encodedService}/-/${encodedBranch}/-/${commitSha}`;
|
|
35
33
|
if (env) {
|
|
36
34
|
url += `?env=${encodeURIComponent(env)}`;
|
|
37
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/junit/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/junit/utils.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAE5C,6CAAuG;AAEhG,MAAM,kBAAkB,GAAG,CAAC,QAAkB,EAAE,WAAW,GAAG,EAAE,EAAU,EAAE;IACjF,IAAI,CAAC,QAAQ,CAAC,sBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAU,CAAC,EAAE;QACvD,OAAO,EAAE,CAAA;KACV;IAED,IAAI,KAAK,GAAG,WAAW,CAAA;IACvB,IAAI,QAAQ,CAAC,iBAAU,CAAC,EAAE;QACxB,KAAK,IAAI,iBAAiB,QAAQ,CAAC,iBAAU,CAAC,GAAG,CAAA;KAClD;SAAM,IAAI,QAAQ,CAAC,sBAAe,CAAC,EAAE;QACpC,KAAK,IAAI,sBAAsB,QAAQ,CAAC,sBAAe,CAAC,GAAG,CAAA;KAC5D;IAED,OAAO,sBAAsB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;AAC1D,CAAC,CAAA;AAbY,QAAA,kBAAkB,sBAa9B;AAEM,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,WAAW,GAAG,EAAE,EAAU,EAAE;IAC7E,OAAO,GAAG,IAAA,gBAAU,GAAE,IAAI,IAAA,0BAAkB,EAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAA;AACvE,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAEM,MAAM,wBAAwB,GAAG,CAAC,QAAkB,EAAE,OAAgB,EAAE,GAAY,EAAU,EAAE;IACrG,IAAI,CAAC,QAAQ,CAAC,yBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAO,CAAC,IAAI,CAAC,OAAO,EAAE;QAC5F,OAAO,EAAE,CAAA;KACV;IAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,QAAQ,CAAC,yBAAkB,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,QAAQ,CAAC,iBAAU,CAAC,EAAE,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,GAAG,QAAQ,CAAC,cAAO,CAAC,EAAE,CAAA;IAExC,IAAI,GAAG,GAAG,GAAG,IAAA,gBAAU,GAAE,qBAAqB,cAAc,MAAM,cAAc,MAAM,aAAa,MAAM,SAAS,EAAE,CAAA;IACpH,IAAI,GAAG,EAAE;QACP,GAAG,IAAI,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAA;KACzC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAhBY,QAAA,wBAAwB,4BAgBpC"}
|
|
@@ -50,13 +50,10 @@ export declare const CORECLR_PROFILER_PATH = "/opt/datadog/Datadog.Trace.ClrProf
|
|
|
50
50
|
export declare const DD_DOTNET_TRACER_HOME = "/opt/datadog";
|
|
51
51
|
export declare const API_KEY_SECRET_ARN_ENV_VAR = "DD_API_KEY_SECRET_ARN";
|
|
52
52
|
export declare const KMS_API_KEY_ENV_VAR = "DD_KMS_API_KEY";
|
|
53
|
-
export declare const TRACE_ENABLED_ENV_VAR = "DD_TRACE_ENABLED";
|
|
54
53
|
export declare const MERGE_XRAY_TRACES_ENV_VAR = "DD_MERGE_XRAY_TRACES";
|
|
55
54
|
export declare const FLUSH_TO_LOG_ENV_VAR = "DD_FLUSH_TO_LOG";
|
|
56
|
-
export declare const LOG_LEVEL_ENV_VAR = "DD_LOG_LEVEL";
|
|
57
55
|
export declare const LOG_ENABLED_ENV_VAR = "DD_SERVERLESS_LOGS_ENABLED";
|
|
58
56
|
export declare const LAMBDA_HANDLER_ENV_VAR = "DD_LAMBDA_HANDLER";
|
|
59
|
-
export declare const EXTRA_TAGS_ENV_VAR = "DD_TAGS";
|
|
60
57
|
export declare const CAPTURE_LAMBDA_PAYLOAD_ENV_VAR = "DD_CAPTURE_LAMBDA_PAYLOAD";
|
|
61
58
|
export declare const APM_FLUSH_DEADLINE_MILLISECONDS_ENV_VAR = "DD_APM_FLUSH_DEADLINE_MILLISECONDS";
|
|
62
59
|
export declare const APPSEC_ENABLED_ENV_VAR = "DD_SERVERLESS_APPSEC_ENABLED";
|
|
@@ -64,9 +61,6 @@ export declare const ENABLE_PROFILING_ENV_VAR = "CORECLR_ENABLE_PROFILING";
|
|
|
64
61
|
export declare const PROFILER_ENV_VAR = "CORECLR_PROFILER";
|
|
65
62
|
export declare const PROFILER_PATH_ENV_VAR = "CORECLR_PROFILER_PATH";
|
|
66
63
|
export declare const DOTNET_TRACER_HOME_ENV_VAR = "DD_DOTNET_TRACER_HOME";
|
|
67
|
-
export declare const DD_LLMOBS_ENABLED_ENV_VAR = "DD_LLMOBS_ENABLED";
|
|
68
|
-
export declare const DD_LLMOBS_ML_APP_ENV_VAR = "DD_LLMOBS_ML_APP";
|
|
69
|
-
export declare const DD_LLMOBS_AGENTLESS_ENABLED_ENV_VAR = "DD_LLMOBS_AGENTLESS_ENABLED";
|
|
70
64
|
export declare const CI_API_KEY_SECRET_ARN_ENV_VAR = "DATADOG_API_KEY_SECRET_ARN";
|
|
71
65
|
export declare const CI_KMS_API_KEY_ENV_VAR = "DATADOG_KMS_API_KEY";
|
|
72
66
|
export declare const AWS_ACCESS_KEY_ID_ENV_VAR = "AWS_ACCESS_KEY_ID";
|
|
@@ -74,7 +68,6 @@ export declare const AWS_SECRET_ACCESS_KEY_ENV_VAR = "AWS_SECRET_ACCESS_KEY";
|
|
|
74
68
|
export declare const AWS_DEFAULT_REGION_ENV_VAR = "AWS_DEFAULT_REGION";
|
|
75
69
|
export declare const AWS_SESSION_TOKEN_ENV_VAR = "AWS_SESSION_TOKEN";
|
|
76
70
|
export declare const AWS_SHARED_CREDENTIALS_FILE_ENV_VAR = "AWS_SHARED_CREDENTIALS_FILE";
|
|
77
|
-
export declare const EXTRA_TAGS_REG_EXP: RegExp;
|
|
78
71
|
export declare const AWS_ACCESS_KEY_ID_REG_EXP: RegExp;
|
|
79
72
|
export declare const AWS_SECRET_ACCESS_KEY_REG_EXP: RegExp;
|
|
80
73
|
export declare const AWS_SECRET_ARN_REG_EXP: RegExp;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.EXPONENTIAL_BACKOFF_RETRY_STRATEGY = exports.LAMBDA_PROJECT_FILES = exports.FRAMEWORK_FILES_MAPPING = exports.DeploymentFrameworks = exports.SKIP_MASKING_LAMBDA_ENV_VARS = exports.DATADOG_APP_KEY_REG_EXP = exports.DATADOG_API_KEY_REG_EXP = void 0;
|
|
3
|
+
exports.EXPONENTIAL_BACKOFF_RETRY_STRATEGY = exports.LAMBDA_PROJECT_FILES = exports.FRAMEWORK_FILES_MAPPING = exports.DeploymentFrameworks = exports.SKIP_MASKING_LAMBDA_ENV_VARS = exports.DATADOG_APP_KEY_REG_EXP = exports.DATADOG_API_KEY_REG_EXP = exports.AWS_SECRET_ARN_REG_EXP = exports.AWS_SECRET_ACCESS_KEY_REG_EXP = exports.AWS_ACCESS_KEY_ID_REG_EXP = exports.AWS_SHARED_CREDENTIALS_FILE_ENV_VAR = exports.AWS_SESSION_TOKEN_ENV_VAR = exports.AWS_DEFAULT_REGION_ENV_VAR = exports.AWS_SECRET_ACCESS_KEY_ENV_VAR = exports.AWS_ACCESS_KEY_ID_ENV_VAR = exports.CI_KMS_API_KEY_ENV_VAR = exports.CI_API_KEY_SECRET_ARN_ENV_VAR = exports.DOTNET_TRACER_HOME_ENV_VAR = exports.PROFILER_PATH_ENV_VAR = exports.PROFILER_ENV_VAR = exports.ENABLE_PROFILING_ENV_VAR = exports.APPSEC_ENABLED_ENV_VAR = exports.APM_FLUSH_DEADLINE_MILLISECONDS_ENV_VAR = exports.CAPTURE_LAMBDA_PAYLOAD_ENV_VAR = exports.LAMBDA_HANDLER_ENV_VAR = exports.LOG_ENABLED_ENV_VAR = exports.FLUSH_TO_LOG_ENV_VAR = exports.MERGE_XRAY_TRACES_ENV_VAR = exports.KMS_API_KEY_ENV_VAR = exports.API_KEY_SECRET_ARN_ENV_VAR = exports.DD_DOTNET_TRACER_HOME = exports.CORECLR_PROFILER_PATH = exports.CORECLR_PROFILER = exports.CORECLR_ENABLE_PROFILING = exports.AWS_LAMBDA_EXEC_WRAPPER = exports.AWS_LAMBDA_EXEC_WRAPPER_VAR = exports.TAG_VERSION_NAME = exports.SUBSCRIPTION_FILTER_NAME = exports.GOVCLOUD_LAYER_AWS_ACCOUNT = exports.DEFAULT_LAYER_AWS_ACCOUNT = exports.NODE_HANDLER_LOCATION = exports.PYTHON_HANDLER_LOCATION = exports.ARM_LAYER_SUFFIX = exports.ARM64_ARCHITECTURE = exports.ARM_LAYERS = exports.RUNTIME_LOOKUP = exports.RuntimeType = exports.LAYER_LOOKUP = exports.EXTENSION_LAYER_KEY = exports.DD_LAMBDA_EXTENSION_LAYER_NAME = void 0;
|
|
5
4
|
const util_retry_1 = require("@smithy/util-retry");
|
|
6
5
|
const constants_1 = require("../../constants");
|
|
7
6
|
exports.DD_LAMBDA_EXTENSION_LAYER_NAME = 'Datadog-Extension';
|
|
@@ -91,13 +90,10 @@ exports.DD_DOTNET_TRACER_HOME = '/opt/datadog';
|
|
|
91
90
|
// Environment variables used in the Lambda environment
|
|
92
91
|
exports.API_KEY_SECRET_ARN_ENV_VAR = 'DD_API_KEY_SECRET_ARN';
|
|
93
92
|
exports.KMS_API_KEY_ENV_VAR = 'DD_KMS_API_KEY';
|
|
94
|
-
exports.TRACE_ENABLED_ENV_VAR = 'DD_TRACE_ENABLED';
|
|
95
93
|
exports.MERGE_XRAY_TRACES_ENV_VAR = 'DD_MERGE_XRAY_TRACES';
|
|
96
94
|
exports.FLUSH_TO_LOG_ENV_VAR = 'DD_FLUSH_TO_LOG';
|
|
97
|
-
exports.LOG_LEVEL_ENV_VAR = 'DD_LOG_LEVEL';
|
|
98
95
|
exports.LOG_ENABLED_ENV_VAR = 'DD_SERVERLESS_LOGS_ENABLED';
|
|
99
96
|
exports.LAMBDA_HANDLER_ENV_VAR = 'DD_LAMBDA_HANDLER';
|
|
100
|
-
exports.EXTRA_TAGS_ENV_VAR = 'DD_TAGS';
|
|
101
97
|
exports.CAPTURE_LAMBDA_PAYLOAD_ENV_VAR = 'DD_CAPTURE_LAMBDA_PAYLOAD';
|
|
102
98
|
exports.APM_FLUSH_DEADLINE_MILLISECONDS_ENV_VAR = 'DD_APM_FLUSH_DEADLINE_MILLISECONDS';
|
|
103
99
|
exports.APPSEC_ENABLED_ENV_VAR = 'DD_SERVERLESS_APPSEC_ENABLED';
|
|
@@ -105,9 +101,6 @@ exports.ENABLE_PROFILING_ENV_VAR = 'CORECLR_ENABLE_PROFILING';
|
|
|
105
101
|
exports.PROFILER_ENV_VAR = 'CORECLR_PROFILER';
|
|
106
102
|
exports.PROFILER_PATH_ENV_VAR = 'CORECLR_PROFILER_PATH';
|
|
107
103
|
exports.DOTNET_TRACER_HOME_ENV_VAR = 'DD_DOTNET_TRACER_HOME';
|
|
108
|
-
exports.DD_LLMOBS_ENABLED_ENV_VAR = 'DD_LLMOBS_ENABLED';
|
|
109
|
-
exports.DD_LLMOBS_ML_APP_ENV_VAR = 'DD_LLMOBS_ML_APP';
|
|
110
|
-
exports.DD_LLMOBS_AGENTLESS_ENABLED_ENV_VAR = 'DD_LLMOBS_AGENTLESS_ENABLED';
|
|
111
104
|
// Environment variables used by Datadog CI
|
|
112
105
|
exports.CI_API_KEY_SECRET_ARN_ENV_VAR = 'DATADOG_API_KEY_SECRET_ARN';
|
|
113
106
|
exports.CI_KMS_API_KEY_ENV_VAR = 'DATADOG_KMS_API_KEY';
|
|
@@ -116,11 +109,6 @@ exports.AWS_SECRET_ACCESS_KEY_ENV_VAR = 'AWS_SECRET_ACCESS_KEY';
|
|
|
116
109
|
exports.AWS_DEFAULT_REGION_ENV_VAR = 'AWS_DEFAULT_REGION';
|
|
117
110
|
exports.AWS_SESSION_TOKEN_ENV_VAR = 'AWS_SESSION_TOKEN';
|
|
118
111
|
exports.AWS_SHARED_CREDENTIALS_FILE_ENV_VAR = 'AWS_SHARED_CREDENTIALS_FILE';
|
|
119
|
-
// DD_TAGS Regular Expression
|
|
120
|
-
// This RegExp ensures that the --extra-tags string
|
|
121
|
-
// matches a list of <key>:<value> separated by commas
|
|
122
|
-
// such as: layer:api,team:intake
|
|
123
|
-
exports.EXTRA_TAGS_REG_EXP = /^(([a-zA-Z]+)[\w\-/\.]*:[^,]+)+((\,)([a-zA-Z]+)[\w\-/\.]*:[^,]+)*$/g;
|
|
124
112
|
exports.AWS_ACCESS_KEY_ID_REG_EXP = /(?<![A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9])/g;
|
|
125
113
|
exports.AWS_SECRET_ACCESS_KEY_REG_EXP = /(?<![A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=])/g;
|
|
126
114
|
exports.AWS_SECRET_ARN_REG_EXP = /arn:aws:secretsmanager:[\w-]+:\d{12}:secret:.+/;
|
|
@@ -132,9 +120,9 @@ exports.SKIP_MASKING_LAMBDA_ENV_VARS = new Set([
|
|
|
132
120
|
exports.API_KEY_SECRET_ARN_ENV_VAR,
|
|
133
121
|
exports.DOTNET_TRACER_HOME_ENV_VAR,
|
|
134
122
|
constants_1.ENVIRONMENT_ENV_VAR,
|
|
135
|
-
|
|
123
|
+
constants_1.DD_TAGS_ENV_VAR,
|
|
136
124
|
exports.LAMBDA_HANDLER_ENV_VAR,
|
|
137
|
-
|
|
125
|
+
constants_1.DD_LOG_LEVEL_ENV_VAR,
|
|
138
126
|
exports.KMS_API_KEY_ENV_VAR,
|
|
139
127
|
exports.PROFILER_ENV_VAR,
|
|
140
128
|
exports.PROFILER_PATH_ENV_VAR,
|