Skip to content

Commit 4fe4d9c

Browse files
authored
[AAWF-456] Add support for version files and inject user-agent headers (#2314)
* generate version files * generate * generate * generate * generate
1 parent af79cdb commit 4fe4d9c

File tree

189 files changed

+4994
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+4994
-87
lines changed

packages/datadog-api-client/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@
2424
"main": "./dist/index.js",
2525
"typings": "./dist/index.d.ts",
2626
"scripts": {
27-
"prepack": "yarn build",
28-
"build": "tsc"
27+
"prepack": "yarn workspace @datadog/datadog-api-client build && yarn build",
28+
"build": "yarn generate-version-files && tsc",
29+
"generate-version-files": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts"
2930
},
3031
"dependencies": {
3132
"@types/buffer-from": "^1.1.0",

packages/datadog-api-client/src/util.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { version } from "./version";
2+
13
export class UnparsedObject {
24
_data: any;
35
constructor(data: any) {
@@ -51,3 +53,20 @@ export function dateToRFC3339String(date: Date | DDate): string {
5153
}
5254
return date.toISOString().split(".")[0] + "Z";
5355
}
56+
57+
export function buildUserAgent(
58+
clientName: string,
59+
clientVersion: string,
60+
): string {
61+
let userAgent = `datadog-api-client-${clientName}/${clientVersion} (datadog-api-client ${version}; typescript; runtime unknown)`;
62+
63+
if (
64+
typeof process !== "undefined" &&
65+
process.release &&
66+
process.release.name === "node"
67+
) {
68+
userAgent = `datadog-api-client-${clientName}/${clientVersion} (datadog-api-client ${version}; typescript; node ${process.versions.node}; os ${process.platform}; arch ${process.arch})`;
69+
}
70+
71+
return userAgent;
72+
}

run-tests.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ else
1515
yarn workspace @datadog/datadog-api-client build
1616
fi
1717

18+
# Generate version files
19+
yarn workspaces foreach -Ap run generate-version-files
20+
1821
# Check licenses
1922
yarn run check-licenses || exit 1
2023

services/action_connection/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"typings": "./dist/index.d.ts",
2727
"scripts": {
2828
"prepack": "yarn workspace @datadog/datadog-api-client build && yarn build",
29-
"build": "tsc"
29+
"build": "yarn generate-version-files && tsc",
30+
"generate-version-files": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts"
3031
},
3132
"dependencies": {
3233
"@datadog/datadog-api-client": "^2.0.0-beta.0"

services/action_connection/src/v2/ActionConnectionApi.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import {
1515
deserialize,
1616
parse,
1717
normalizeMediaType,
18+
buildUserAgent,
19+
isBrowser,
1820
} from "@datadog/datadog-api-client";
1921

2022
import { TypingInfo } from "./models/TypingInfo";
@@ -24,8 +26,17 @@ import { GetActionConnectionResponse } from "./models/GetActionConnectionRespons
2426
import { JSONAPIErrorResponse } from "./models/JSONAPIErrorResponse";
2527
import { UpdateActionConnectionRequest } from "./models/UpdateActionConnectionRequest";
2628
import { UpdateActionConnectionResponse } from "./models/UpdateActionConnectionResponse";
29+
import { version } from "../version";
2730

2831
export class ActionConnectionApiRequestFactory extends BaseAPIRequestFactory {
32+
public userAgent: string | undefined;
33+
34+
public constructor(configuration: Configuration) {
35+
super(configuration);
36+
if (!isBrowser) {
37+
this.userAgent = buildUserAgent("action-connection", version);
38+
}
39+
}
2940
public async createActionConnection(
3041
body: CreateActionConnectionRequest,
3142
_options?: Configuration,
@@ -47,6 +58,11 @@ export class ActionConnectionApiRequestFactory extends BaseAPIRequestFactory {
4758
requestContext.setHeaderParam("Accept", "application/json");
4859
requestContext.setHttpConfig(_config.httpConfig);
4960

61+
// Set User-Agent
62+
if (this.userAgent) {
63+
requestContext.setHeaderParam("User-Agent", this.userAgent);
64+
}
65+
5066
// Body Params
5167
const contentType = getPreferredMediaType(["application/json"]);
5268
requestContext.setHeaderParam("Content-Type", contentType);
@@ -89,6 +105,11 @@ export class ActionConnectionApiRequestFactory extends BaseAPIRequestFactory {
89105
requestContext.setHeaderParam("Accept", "*/*");
90106
requestContext.setHttpConfig(_config.httpConfig);
91107

108+
// Set User-Agent
109+
if (this.userAgent) {
110+
requestContext.setHeaderParam("User-Agent", this.userAgent);
111+
}
112+
92113
// Apply auth methods
93114
applySecurityAuthentication(_config, requestContext, [
94115
"apiKeyAuth",
@@ -122,6 +143,11 @@ export class ActionConnectionApiRequestFactory extends BaseAPIRequestFactory {
122143
requestContext.setHeaderParam("Accept", "application/json");
123144
requestContext.setHttpConfig(_config.httpConfig);
124145

146+
// Set User-Agent
147+
if (this.userAgent) {
148+
requestContext.setHeaderParam("User-Agent", this.userAgent);
149+
}
150+
125151
// Apply auth methods
126152
applySecurityAuthentication(_config, requestContext, [
127153
"apiKeyAuth",
@@ -161,6 +187,11 @@ export class ActionConnectionApiRequestFactory extends BaseAPIRequestFactory {
161187
requestContext.setHeaderParam("Accept", "application/json");
162188
requestContext.setHttpConfig(_config.httpConfig);
163189

190+
// Set User-Agent
191+
if (this.userAgent) {
192+
requestContext.setHeaderParam("User-Agent", this.userAgent);
193+
}
194+
164195
// Body Params
165196
const contentType = getPreferredMediaType(["application/json"]);
166197
requestContext.setHeaderParam("Content-Type", contentType);

services/agentless_scanning/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"typings": "./dist/index.d.ts",
2727
"scripts": {
2828
"prepack": "yarn workspace @datadog/datadog-api-client build && yarn build",
29-
"build": "tsc"
29+
"build": "yarn generate-version-files && tsc",
30+
"generate-version-files": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts"
3031
},
3132
"dependencies": {
3233
"@datadog/datadog-api-client": "^2.0.0-beta.0"

services/agentless_scanning/src/v2/AgentlessScanningApi.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import {
1515
deserialize,
1616
parse,
1717
normalizeMediaType,
18+
buildUserAgent,
19+
isBrowser,
1820
} from "@datadog/datadog-api-client";
1921

2022
import { TypingInfo } from "./models/TypingInfo";
@@ -26,8 +28,17 @@ import { AwsScanOptionsCreateRequest } from "./models/AwsScanOptionsCreateReques
2628
import { AwsScanOptionsListResponse } from "./models/AwsScanOptionsListResponse";
2729
import { AwsScanOptionsResponse } from "./models/AwsScanOptionsResponse";
2830
import { AwsScanOptionsUpdateRequest } from "./models/AwsScanOptionsUpdateRequest";
31+
import { version } from "../version";
2932

3033
export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
34+
public userAgent: string | undefined;
35+
36+
public constructor(configuration: Configuration) {
37+
super(configuration);
38+
if (!isBrowser) {
39+
this.userAgent = buildUserAgent("agentless-scanning", version);
40+
}
41+
}
3142
public async createAwsOnDemandTask(
3243
body: AwsOnDemandCreateRequest,
3344
_options?: Configuration,
@@ -49,6 +60,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
4960
requestContext.setHeaderParam("Accept", "application/json");
5061
requestContext.setHttpConfig(_config.httpConfig);
5162

63+
// Set User-Agent
64+
if (this.userAgent) {
65+
requestContext.setHeaderParam("User-Agent", this.userAgent);
66+
}
67+
5268
// Body Params
5369
const contentType = getPreferredMediaType(["application/json"]);
5470
requestContext.setHeaderParam("Content-Type", contentType);
@@ -88,6 +104,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
88104
requestContext.setHeaderParam("Accept", "application/json");
89105
requestContext.setHttpConfig(_config.httpConfig);
90106

107+
// Set User-Agent
108+
if (this.userAgent) {
109+
requestContext.setHeaderParam("User-Agent", this.userAgent);
110+
}
111+
91112
// Body Params
92113
const contentType = getPreferredMediaType(["application/json"]);
93114
requestContext.setHeaderParam("Content-Type", contentType);
@@ -131,6 +152,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
131152
requestContext.setHeaderParam("Accept", "*/*");
132153
requestContext.setHttpConfig(_config.httpConfig);
133154

155+
// Set User-Agent
156+
if (this.userAgent) {
157+
requestContext.setHeaderParam("User-Agent", this.userAgent);
158+
}
159+
134160
// Apply auth methods
135161
applySecurityAuthentication(_config, requestContext, [
136162
"apiKeyAuth",
@@ -165,6 +191,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
165191
requestContext.setHeaderParam("Accept", "application/json");
166192
requestContext.setHttpConfig(_config.httpConfig);
167193

194+
// Set User-Agent
195+
if (this.userAgent) {
196+
requestContext.setHeaderParam("User-Agent", this.userAgent);
197+
}
198+
168199
// Apply auth methods
169200
applySecurityAuthentication(_config, requestContext, [
170201
"apiKeyAuth",
@@ -189,6 +220,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
189220
requestContext.setHeaderParam("Accept", "application/json");
190221
requestContext.setHttpConfig(_config.httpConfig);
191222

223+
// Set User-Agent
224+
if (this.userAgent) {
225+
requestContext.setHeaderParam("User-Agent", this.userAgent);
226+
}
227+
192228
// Apply auth methods
193229
applySecurityAuthentication(_config, requestContext, [
194230
"apiKeyAuth",
@@ -213,6 +249,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
213249
requestContext.setHeaderParam("Accept", "application/json");
214250
requestContext.setHttpConfig(_config.httpConfig);
215251

252+
// Set User-Agent
253+
if (this.userAgent) {
254+
requestContext.setHeaderParam("User-Agent", this.userAgent);
255+
}
256+
216257
// Apply auth methods
217258
applySecurityAuthentication(_config, requestContext, [
218259
"apiKeyAuth",
@@ -253,6 +294,11 @@ export class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
253294
requestContext.setHeaderParam("Accept", "*/*");
254295
requestContext.setHttpConfig(_config.httpConfig);
255296

297+
// Set User-Agent
298+
if (this.userAgent) {
299+
requestContext.setHeaderParam("User-Agent", this.userAgent);
300+
}
301+
256302
// Body Params
257303
const contentType = getPreferredMediaType(["application/json"]);
258304
requestContext.setHeaderParam("Content-Type", contentType);

services/api_management/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"typings": "./dist/index.d.ts",
2727
"scripts": {
2828
"prepack": "yarn workspace @datadog/datadog-api-client build && yarn build",
29-
"build": "tsc"
29+
"build": "yarn generate-version-files && tsc",
30+
"generate-version-files": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts"
3031
},
3132
"dependencies": {
3233
"@datadog/datadog-api-client": "^2.0.0-beta.0"

services/api_management/src/v2/APIManagementApi.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import {
1515
deserialize,
1616
parse,
1717
normalizeMediaType,
18+
buildUserAgent,
19+
isBrowser,
1820
HttpFile,
1921
} from "@datadog/datadog-api-client";
2022

@@ -26,8 +28,17 @@ import { CreateOpenAPIResponse } from "./models/CreateOpenAPIResponse";
2628
import { JSONAPIErrorResponse } from "./models/JSONAPIErrorResponse";
2729
import { ListAPIsResponse } from "./models/ListAPIsResponse";
2830
import { UpdateOpenAPIResponse } from "./models/UpdateOpenAPIResponse";
31+
import { version } from "../version";
2932

3033
export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
34+
public userAgent: string | undefined;
35+
36+
public constructor(configuration: Configuration) {
37+
super(configuration);
38+
if (!isBrowser) {
39+
this.userAgent = buildUserAgent("api-management", version);
40+
}
41+
}
3142
public async createOpenAPI(
3243
openapiSpecFile?: HttpFile,
3344
_options?: Configuration,
@@ -49,6 +60,11 @@ export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
4960
requestContext.setHeaderParam("Accept", "application/json");
5061
requestContext.setHttpConfig(_config.httpConfig);
5162

63+
// Set User-Agent
64+
if (this.userAgent) {
65+
requestContext.setHeaderParam("User-Agent", this.userAgent);
66+
}
67+
5268
// Form Params
5369
const localVarFormParams = new FormData();
5470
if (openapiSpecFile !== undefined) {
@@ -96,6 +112,11 @@ export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
96112
requestContext.setHeaderParam("Accept", "*/*");
97113
requestContext.setHttpConfig(_config.httpConfig);
98114

115+
// Set User-Agent
116+
if (this.userAgent) {
117+
requestContext.setHeaderParam("User-Agent", this.userAgent);
118+
}
119+
99120
// Apply auth methods
100121
applySecurityAuthentication(_config, requestContext, [
101122
"AuthZ",
@@ -138,6 +159,11 @@ export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
138159
);
139160
requestContext.setHttpConfig(_config.httpConfig);
140161

162+
// Set User-Agent
163+
if (this.userAgent) {
164+
requestContext.setHeaderParam("User-Agent", this.userAgent);
165+
}
166+
141167
// Apply auth methods
142168
applySecurityAuthentication(_config, requestContext, [
143169
"AuthZ",
@@ -171,6 +197,11 @@ export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
171197
requestContext.setHeaderParam("Accept", "application/json");
172198
requestContext.setHttpConfig(_config.httpConfig);
173199

200+
// Set User-Agent
201+
if (this.userAgent) {
202+
requestContext.setHeaderParam("User-Agent", this.userAgent);
203+
}
204+
174205
// Query Params
175206
if (query !== undefined) {
176207
requestContext.setQueryParam(
@@ -234,6 +265,11 @@ export class APIManagementApiRequestFactory extends BaseAPIRequestFactory {
234265
requestContext.setHeaderParam("Accept", "application/json");
235266
requestContext.setHttpConfig(_config.httpConfig);
236267

268+
// Set User-Agent
269+
if (this.userAgent) {
270+
requestContext.setHeaderParam("User-Agent", this.userAgent);
271+
}
272+
237273
// Form Params
238274
const localVarFormParams = new FormData();
239275
if (openapiSpecFile !== undefined) {

services/apm_retention_filters/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"typings": "./dist/index.d.ts",
2727
"scripts": {
2828
"prepack": "yarn workspace @datadog/datadog-api-client build && yarn build",
29-
"build": "tsc"
29+
"build": "yarn generate-version-files && tsc",
30+
"generate-version-files": "node -p \"'export const version = ' + JSON.stringify(require('./package.json').version)\" > src/version.ts"
3031
},
3132
"dependencies": {
3233
"@datadog/datadog-api-client": "^2.0.0-beta.0"

0 commit comments

Comments
 (0)