Skip to content

chore: generate configuration from supported-configurations.json#7734

Draft
BridgeAR wants to merge 4 commits intomasterfrom
BridgeAR/2026-03-10-config-generation
Draft

chore: generate configuration from supported-configurations.json#7734
BridgeAR wants to merge 4 commits intomasterfrom
BridgeAR/2026-03-10-config-generation

Conversation

@BridgeAR
Copy link
Copy Markdown
Member

This completely changes how we handle our configuration. Things are now using the type and transformers as well as validators to guarantee things are working as expected.

This fixes a lot of telemetry issues and other smaller issues.

Booleans are now consistently handled.

A couple more things are included.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 10, 2026

Overall package size

Self size: 5.41 MB
Deduped: 6.25 MB
No deduping: 6.25 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.0.0 | 81.15 kB | 815.98 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@datadog-prod-us1-4
Copy link
Copy Markdown

datadog-prod-us1-4 bot commented Mar 10, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 88.75%
Overall Coverage: 68.57% (-0.13%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: f2b98b8 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback!

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 10, 2026

Benchmarks

Benchmark execution time: 2026-03-27 13:01:17

Comparing candidate commit 016295c in PR branch BridgeAR/2026-03-10-config-generation with baseline commit 64890d7 in branch master.

Found 0 performance improvements and 19 performance regressions! Performance is the same for 204 metrics, 37 unstable metrics.

scenario:appsec-iast-no-vulnerability-iast-enabled-always-active-18

  • 🟥 cpu_user_time [+92.824ms; +110.372ms] or [+6.066%; +7.213%]
  • 🟥 execution_time [+104.363ms; +114.913ms] or [+6.216%; +6.844%]

scenario:appsec-iast-no-vulnerability-iast-enabled-always-active-20

  • 🟥 cpu_user_time [+123.044ms; +140.350ms] or [+8.539%; +9.740%]
  • 🟥 execution_time [+124.270ms; +140.696ms] or [+7.881%; +8.922%]

scenario:appsec-iast-no-vulnerability-iast-enabled-always-active-22

  • 🟥 cpu_user_time [+69.832ms; +85.280ms] or [+6.258%; +7.642%]
  • 🟥 execution_time [+72.523ms; +81.273ms] or [+5.826%; +6.529%]

scenario:appsec-iast-no-vulnerability-iast-enabled-always-active-24

  • 🟥 cpu_user_time [+63.194ms; +80.838ms] or [+6.538%; +8.363%]
  • 🟥 execution_time [+81.736ms; +89.107ms] or [+7.593%; +8.278%]

scenario:appsec-iast-no-vulnerability-iast-enabled-default-config-18

  • 🟥 cpu_user_time [+97.539ms; +114.792ms] or [+6.647%; +7.823%]
  • 🟥 execution_time [+101.405ms; +114.070ms] or [+6.278%; +7.063%]

scenario:appsec-iast-no-vulnerability-iast-enabled-default-config-20

  • 🟥 cpu_user_time [+121.948ms; +143.414ms] or [+8.841%; +10.397%]
  • 🟥 execution_time [+124.431ms; +141.947ms] or [+8.230%; +9.389%]

scenario:appsec-iast-no-vulnerability-iast-enabled-default-config-22

  • 🟥 cpu_user_time [+64.650ms; +80.555ms] or [+6.141%; +7.652%]
  • 🟥 execution_time [+76.954ms; +87.324ms] or [+6.547%; +7.430%]

scenario:appsec-iast-no-vulnerability-iast-enabled-default-config-24

  • 🟥 cpu_user_time [+60.262ms; +72.813ms] or [+6.632%; +8.013%]
  • 🟥 execution_time [+81.620ms; +89.448ms] or [+8.034%; +8.805%]

scenario:net-with-tracer-20

  • 🟥 instructions [+49.8M instructions; +53.1M instructions] or [+5.436%; +5.793%]

scenario:net-with-tracer-22

  • 🟥 instructions [+49.3M instructions; +52.6M instructions] or [+5.466%; +5.830%]

scenario:net-with-tracer-24

  • 🟥 instructions [+43.2M instructions; +46.5M instructions] or [+5.240%; +5.647%]

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 11, 2026

Codecov Report

❌ Patch coverage is 95.07246% with 34 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.17%. Comparing base (f94162c) to head (f2b98b8).

Files with missing lines Patch % Lines
packages/dd-trace/src/config/remote_config.js 47.82% 12 Missing ⚠️
packages/dd-trace/src/config/parsers.js 95.27% 6 Missing ⚠️
packages/dd-trace/src/config/defaults.js 96.74% 4 Missing ⚠️
packages/dd-trace/src/config/index.js 98.49% 4 Missing ⚠️
packages/dd-trace/src/llmobs/sdk.js 25.00% 3 Missing ⚠️
packages/dd-trace/src/profiling/config.js 94.82% 3 Missing ⚠️
packages/datadog-plugin-aws-sdk/src/base.js 66.66% 1 Missing ⚠️
packages/dd-trace/src/proxy.js 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7734      +/-   ##
==========================================
- Coverage   74.25%   74.17%   -0.09%     
==========================================
  Files         765      768       +3     
  Lines       35786    35456     -330     
==========================================
- Hits        26574    26299     -275     
+ Misses       9212     9157      -55     
Flag Coverage Δ
aiguard-macos 36.42% <61.75%> (-3.09%) ⬇️
aiguard-ubuntu 36.53% <61.75%> (-3.11%) ⬇️
aiguard-windows 36.33% <63.41%> (-2.98%) ⬇️
apm-capabilities-tracing-macos 48.55% <84.92%> (-0.60%) ⬇️
apm-capabilities-tracing-ubuntu 48.59% <84.92%> (-0.52%) ⬇️
apm-capabilities-tracing-windows 48.37% <86.08%> (-0.60%) ⬇️
apm-integrations-child-process 36.10% <59.60%> (-2.74%) ⬇️
apm-integrations-couchbase-18 35.04% <59.60%> (-2.58%) ⬇️
apm-integrations-couchbase-eol 35.09% <59.60%> (-3.05%) ⬇️
apm-integrations-oracledb 35.09% <59.60%> (-2.87%) ⬇️
appsec-express 52.96% <62.87%> (-2.50%) ⬇️
appsec-fastify 49.42% <63.36%> (-2.38%) ⬇️
appsec-graphql 49.74% <63.36%> (-2.20%) ⬇️
appsec-kafka 42.09% <62.87%> (-2.48%) ⬇️
appsec-ldapjs 41.48% <62.70%> (-2.71%) ⬇️
appsec-lodash 41.51% <62.70%> (-2.28%) ⬇️
appsec-macos 56.88% <63.95%> (-1.33%) ⬇️
appsec-mongodb-core 46.13% <62.70%> (-2.84%) ⬇️
appsec-mongoose 46.74% <62.70%> (-2.89%) ⬇️
appsec-mysql 48.87% <63.20%> (-2.28%) ⬇️
appsec-node-serialize 40.67% <62.70%> (-2.70%) ⬇️
appsec-passport 44.71% <61.75%> (-3.14%) ⬇️
appsec-postgres 48.45% <62.70%> (-2.33%) ⬇️
appsec-sourcing 40.13% <62.70%> (-2.49%) ⬇️
appsec-stripe 42.40% <62.41%> (-2.42%) ⬇️
appsec-template 40.84% <62.70%> (-2.70%) ⬇️
appsec-ubuntu 56.97% <63.95%> (-1.34%) ⬇️
appsec-windows 56.77% <65.55%> (-1.25%) ⬇️
instrumentations-instrumentation-bluebird 29.95% <59.60%> (-2.48%) ⬇️
instrumentations-instrumentation-body-parser 37.71% <59.60%> (-3.01%) ⬇️
instrumentations-instrumentation-child_process 35.48% <59.60%> (-2.70%) ⬇️
instrumentations-instrumentation-cookie-parser 31.89% <59.60%> (-2.56%) ⬇️
instrumentations-instrumentation-express 32.18% <59.60%> (-2.58%) ⬇️
instrumentations-instrumentation-express-mongo-sanitize 32.01% <59.60%> (-2.57%) ⬇️
instrumentations-instrumentation-express-session 37.38% <59.60%> (-2.99%) ⬇️
instrumentations-instrumentation-fs 29.59% <59.60%> (-2.52%) ⬇️
instrumentations-instrumentation-generic-pool 31.52% <66.08%> (+2.06%) ⬆️
instrumentations-instrumentation-http 36.93% <59.60%> (-3.16%) ⬇️
instrumentations-instrumentation-knex 29.96% <59.60%> (-2.53%) ⬇️
instrumentations-instrumentation-mongoose 31.07% <59.60%> (-2.53%) ⬇️
instrumentations-instrumentation-multer 37.49% <59.60%> (-2.99%) ⬇️
instrumentations-instrumentation-mysql2 35.45% <59.43%> (-3.06%) ⬇️
instrumentations-instrumentation-passport 41.32% <61.09%> (-2.93%) ⬇️
instrumentations-instrumentation-passport-http 41.01% <61.09%> (-2.92%) ⬇️
instrumentations-instrumentation-passport-local 41.51% <61.09%> (-2.95%) ⬇️
instrumentations-instrumentation-pg 34.95% <59.43%> (-2.99%) ⬇️
instrumentations-instrumentation-promise 29.88% <59.60%> (-2.48%) ⬇️
instrumentations-instrumentation-promise-js 29.89% <59.60%> (-2.48%) ⬇️
instrumentations-instrumentation-q 29.93% <59.60%> (-2.48%) ⬇️
instrumentations-instrumentation-url 29.85% <59.60%> (-2.48%) ⬇️
instrumentations-instrumentation-when 29.90% <59.60%> (-2.48%) ⬇️
llmobs-ai 38.52% <61.58%> (-3.18%) ⬇️
llmobs-anthropic 37.67% <61.58%> (-2.98%) ⬇️
llmobs-bedrock 37.21% <61.61%> (-2.19%) ⬇️
llmobs-google-genai 37.61% <61.58%> (-2.35%) ⬇️
llmobs-langchain 37.12% <61.28%> (-2.31%) ⬇️
llmobs-openai 41.27% <62.25%> (-2.90%) ⬇️
llmobs-vertex-ai 37.78% <61.58%> (-2.44%) ⬇️
platform-core 30.82% <8.69%> (-0.65%) ⬇️
platform-esbuild 33.74% <8.69%> (-0.68%) ⬇️
platform-instrumentations-misc 41.10% <66.55%> (+6.98%) ⬆️
platform-shimmer 36.80% <8.69%> (-0.77%) ⬇️
platform-unit-guardrails 32.24% <8.69%> (-0.66%) ⬇️
platform-webpack 21.20% <36.49%> (+1.23%) ⬆️
plugins-azure-durable-functions 25.38% <8.69%> (-0.37%) ⬇️
plugins-azure-event-hubs 25.53% <8.69%> (-0.37%) ⬇️
plugins-azure-service-bus 24.92% <8.69%> (-0.35%) ⬇️
plugins-bullmq 40.79% <59.60%> (-2.92%) ⬇️
plugins-cassandra 35.24% <59.60%> (-2.88%) ⬇️
plugins-cookie 26.56% <8.69%> (-0.41%) ⬇️
plugins-cookie-parser 26.35% <8.69%> (-0.40%) ⬇️
plugins-crypto 26.21% <8.69%> (-0.52%) ⬇️
plugins-dd-trace-api 35.45% <59.76%> (-3.08%) ⬇️
plugins-express-mongo-sanitize 26.50% <8.69%> (-0.40%) ⬇️
plugins-express-session 26.31% <8.69%> (-0.40%) ⬇️
plugins-fastify 39.51% <62.58%> (-2.95%) ⬇️
plugins-fetch 35.75% <59.76%> (-2.85%) ⬇️
plugins-fs 35.70% <59.60%> (-3.16%) ⬇️
plugins-generic-pool 25.57% <8.69%> (-0.38%) ⬇️
plugins-google-cloud-pubsub 43.11% <59.76%> (-2.67%) ⬇️
plugins-grpc 38.11% <59.60%> (-3.00%) ⬇️
plugins-handlebars 26.54% <8.69%> (-0.40%) ⬇️
plugins-hapi 37.43% <59.60%> (-2.94%) ⬇️
plugins-hono 37.59% <59.60%> (-3.12%) ⬇️
plugins-ioredis 35.67% <59.60%> (-3.03%) ⬇️
plugins-knex 26.20% <8.69%> (-0.37%) ⬇️
plugins-langgraph 35.14% <59.60%> (-2.95%) ⬇️
plugins-ldapjs 24.12% <8.69%> (-0.32%) ⬇️
plugins-light-my-request 25.93% <8.69%> (-0.38%) ⬇️
plugins-limitd-client 30.21% <59.60%> (-2.50%) ⬇️
plugins-lodash 25.66% <8.69%> (-0.38%) ⬇️
plugins-mariadb 36.57% <59.60%> (-3.15%) ⬇️
plugins-memcached 35.32% <59.60%> (-3.12%) ⬇️
plugins-microgateway-core 36.43% <59.60%> (-3.01%) ⬇️
plugins-moleculer 38.10% <59.60%> (-2.63%) ⬇️
plugins-mongodb 36.44% <59.76%> (-2.93%) ⬇️
plugins-mongodb-core 36.13% <59.60%> (-3.08%) ⬇️
plugins-mongoose 36.11% <59.60%> (-2.91%) ⬇️
plugins-multer 26.31% <8.69%> (-0.40%) ⬇️
plugins-mysql 36.41% <59.60%> (-3.15%) ⬇️
plugins-mysql2 36.40% <59.60%> (-3.10%) ⬇️
plugins-node-serialize 26.60% <8.69%> (-0.41%) ⬇️
plugins-opensearch 34.99% <59.60%> (-2.85%) ⬇️
plugins-passport-http 26.37% <8.69%> (-0.39%) ⬇️
plugins-postgres 34.39% <59.60%> (-1.29%) ⬇️
plugins-process 26.21% <8.69%> (-0.52%) ⬇️
plugins-pug 26.56% <8.69%> (-0.41%) ⬇️
plugins-redis 35.97% <59.60%> (-3.17%) ⬇️
plugins-router 40.08% <59.60%> (-3.38%) ⬇️
plugins-sequelize 25.19% <8.69%> (-0.37%) ⬇️
plugins-test-and-upstream-amqp10 35.69% <59.60%> (-3.03%) ⬇️
plugins-test-and-upstream-amqplib 40.91% <59.60%> (-3.57%) ⬇️
plugins-test-and-upstream-apollo 36.59% <59.60%> (-2.74%) ⬇️
plugins-test-and-upstream-avsc 35.69% <59.76%> (-3.11%) ⬇️
plugins-test-and-upstream-bunyan 31.32% <59.60%> (-2.71%) ⬇️
plugins-test-and-upstream-connect 37.91% <59.60%> (-3.12%) ⬇️
plugins-test-and-upstream-graphql 37.24% <59.60%> (-3.13%) ⬇️
plugins-test-and-upstream-koa 37.55% <59.60%> (-3.06%) ⬇️
plugins-test-and-upstream-protobufjs 35.91% <59.76%> (-3.11%) ⬇️
plugins-test-and-upstream-rhea 40.99% <59.60%> (-3.48%) ⬇️
plugins-undici 36.65% <59.60%> (-2.80%) ⬇️
plugins-url 26.21% <8.69%> (-0.52%) ⬇️
plugins-valkey 35.35% <59.60%> (-3.07%) ⬇️
plugins-vm 26.21% <8.69%> (-0.52%) ⬇️
plugins-winston 31.77% <59.60%> (-2.59%) ⬇️
plugins-ws 39.00% <59.60%> (-3.21%) ⬇️
profiling-macos 38.00% <61.59%> (-2.75%) ⬇️
profiling-ubuntu 38.17% <61.74%> (-2.71%) ⬇️
profiling-windows 39.46% <66.56%> (-2.93%) ⬇️
serverless-azure-functions-client 25.26% <8.69%> (-0.36%) ⬇️
serverless-azure-functions-eventhubs 25.26% <8.69%> (-0.36%) ⬇️
serverless-azure-functions-servicebus 25.26% <8.69%> (-0.36%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@BridgeAR BridgeAR force-pushed the BridgeAR/2026-03-10-config-generation branch 4 times, most recently from 96c69b1 to cdd5d64 Compare March 20, 2026 05:28
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-03-10-config-generation branch 2 times, most recently from 6b2b530 to 95bcb20 Compare March 26, 2026 21:27
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-03-10-config-generation branch from 016295c to ae99a4e Compare March 31, 2026 21:27
BridgeAR added 2 commits April 1, 2026 22:41
This completely changes how we handle our configuration. Things
are now using the type and transformers as well as validators to
guarantee things are working as expected.

This fixes a lot of telemetry issues and other smaller issues.

Booleans are now consistently handled.

A couple more things are included.

refactor: this roughly finishes the configuration refactoring

Everything is now auto generated and the telemetry is mostly
generated using the canonical env key. This is not yet the case
for remote config and calculated entries. Tracking is also not
yet perfectly handled for remote config, that needs some small
adjustments.

This simplifies the profiler config, exposes more programmatic keys
in index.d.ts that were already exposed, marks internal keys as
such and multiple other smaller fixes.

chore: add eslint rule

chore: generate config types and lint against index.d.ts

This finishes telemetry and config types

chore: add config types across the board

This also fixes minor issues around major versions that were not
detected before.

refactor: this fixes a couple TODO entries and fixes a RC issue

It also makes things easier to reason and simpler from the overall
implementation.

A lot of code has become more explicit over former implicit behavior.
This is for example the case with the error handling.
@BridgeAR BridgeAR force-pushed the BridgeAR/2026-03-10-config-generation branch from 56f63ba to 4123886 Compare April 1, 2026 21:31
redactionNamePattern: 'REDACTION_NAME_PATTERN',
redactionValuePattern: 'REDACTION_VALUE_PATTERN',
securityControlsConfiguration: 'SANITIZER:CODE_INJECTION:sanitizer.js:method2',
securityControlsConfiguration: 'SANITIZER:CODE_INJECTION:sanitizer.js:method' + (DD_MAJOR < 6 ? '2' : '1'),
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ask Appsec for clarification

"experimental.appsec.stackTrace.maxStackTraces"
],
"aliases": [
"DD_APPSEC_MAX_STACKTRACES"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These aliases are used elsewhere, so I also added them here for consistency. The same with the other stack aliases.

"dogstatsd.hostname"
],
"default": "localhost",
"default": "127.0.0.1",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I learned that the former default was actually wrong.

"type": "string",
"default": null
"type": "boolean",
"default": "false"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It turned out to be the wrong type

}
],
"DD_LOG_LEVEL": [
"DD_TRACE_LOG_LEVEL": [
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now consistent across the code. That was handled different in different areas. Now these are aliases.

{
"implementation": "A",
"type": "boolean",
"internalPropertyName": "stats.enabled",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stats is exposed while we safe it in another property.

]
}
],
"DD_TRACING_ENABLED": [
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now an alias

"default": "7500"
}
],
"OTEL_PROPAGATORS": [
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now an alias

"default": "true"
}
],
"OTEL_SERVICE_NAME": [
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now an alias

: String(getValueFromEnvSources('OTEL_TRACES_EXPORTER')).toLowerCase() === 'none'
const shouldUseProxyWhenTracingDisabled =
isTrue(getValueFromEnvSources('DD_DYNAMIC_INSTRUMENTATION_ENABLED')) ||
isTrue(getValueFromEnvSources('DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED'))
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should be correctness fixes. Before we handled things a bit different, while it is now important to not get into the noop proxy, if not needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant