Skip to content

[SVLS-8713] build(logs-agent): let users choose the FIPS TLS backend - #190

Draft
litianningdatadog wants to merge 1 commit into
tianning.li/logs-sc-0-characterizationfrom
tianning.li/logs-sc-1-fips-features
Draft

litianningdatadog wants to merge 1 commit into
tianning.li/logs-sc-0-characterizationfrom
tianning.li/logs-sc-1-fips-features

Conversation

@litianningdatadog

@litianningdatadog litianningdatadog commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds two features to datadog-logs-agent: default (today's TLS setup via datadog-fips/default) and fips (selects the FIPS backend). Cargo.toml only.

Motivation

Part of SVLS-8713: bottlecap (the Datadog Lambda Extension) is replacing its own logs aggregator and flusher with this crate. Two rules for the whole stack:

  • Nothing changes for existing users of this crate (for example serverless-compat): every new behavior is opt-in, defaults and public API stay the same (additions only), no new environment variables, no new dependencies.
  • Nothing changes for Lambda users: the options let bottlecap reproduce its current behavior exactly.

bottlecap's FIPS build refuses to link the non-FIPS ring crate. This crate always enabled datadog-fips' default features, which pull in ring, so bottlecap couldn't use it in FIPS builds.

Additional Notes

With default features nothing changes. Builds that turn default features off must now enable default or fips, otherwise the crate doesn't compile (Cargo has no negative features, so this is the only way to let a consumer drop ring).

Describe how to test/QA your changes

All 80 tests pass. cargo tree -e features -i ring --no-default-features --features fips shows no ring; clippy is clean with --no-default-features --features fips.

Stack

Each PR is nested under the PR it builds on (and targets). Review and merge from the top down.

serverless-components (datadog-logs-agent options; merge first)

datadog-lambda-extension (bottlecap)

🤖 Generated with Claude Code

Why: bottlecap's FIPS build refuses to link the non-FIPS "ring" crypto
library. This crate always turned on datadog-fips' default features, which
pull ring in, so bottlecap could not use it in FIPS builds.

What: the crate now has a "default" feature that keeps today's TLS setup and a
"fips" feature that selects the FIPS backend instead. Anyone using the crate
with default features gets exactly the same build as before. Builds that turn
default features off must now enable either "default" or "fips", otherwise the
crate does not compile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@litianningdatadog
litianningdatadog force-pushed the tianning.li/logs-sc-1-fips-features branch from db2d5af to c3f11c2 Compare October 21, 2026 19:50
@litianningdatadog
litianningdatadog force-pushed the tianning.li/logs-sc-0-characterization branch from 8bf6920 to 2c0a3f9 Compare October 21, 2026 19:50

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant