Skip to content

Add fips_compatible flag to multiple packages - #14068

Merged
shmsr merged 7 commits into
elastic:mainfrom
shmsr:add-fips-compatible-flag-infraobs
Jul 3, 2025
Merged

Add fips_compatible flag to multiple packages#14068
shmsr merged 7 commits into
elastic:mainfrom
shmsr:add-fips-compatible-flag-infraobs

Conversation

@shmsr

@shmsr shmsr commented May 29, 2025

Copy link
Copy Markdown
Member

Proposed commit message

Add a fips_compatible flag to some packages that we don't want to allow in FedRAMP env.

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices
@shmsr
shmsr requested a review from a team as a code owner May 29, 2025 18:58
@shmsr shmsr changed the title Add 'fips_compatible' flag to multiple packages May 29, 2025
@shmsr shmsr self-assigned this May 29, 2025
@shmsr

shmsr commented May 29, 2025

Copy link
Copy Markdown
Member Author

sql_input also needs to be disabled but migration to package-spec v3+ is something we tried earlier but we couldn't migrate.

@shmsr
shmsr requested a review from tommyers-elastic May 29, 2025 19:00
@andrewkroh andrewkroh added Integration:mongodb MongoDB Integration:mysql MySQL Integration:oracle Oracle Integration:postgresql PostgreSQL Team:Obs-InfraObs Observability Infrastructure Monitoring team [elastic/obs-infraobs-integrations] labels May 29, 2025
@shmsr

shmsr commented Jun 4, 2025

Copy link
Copy Markdown
Member Author

Although we want to disable sql_input but we can't as of now because of: elastic/package-spec#901

@shmsr

shmsr commented Jun 4, 2025

Copy link
Copy Markdown
Member Author

Also, tests are failing as it's saying GA packages are using unreleased version: v3.4.0 of package-spec.

Error: checking package failed: linting package failed: found 4 validation errors:
  | 1. file "/opt/buildkite-agent/builds/bk-agent-prod-gcp-1748545681270973011/elastic/integrations/packages/mongodb/manifest.yml": package with GA version (1.20.0) is using an unreleased version of the spec (3.4.0-next) (PSR00001)
  | 2. file "/opt/buildkite-agent/builds/bk-agent-prod-gcp-1748545681270973011/elastic/integrations/packages/mongodb/data_stream/log/elasticsearch/ingest_pipeline/pipeline-json.yml" is invalid: field processors.11.remove: if is required
  | 3. file "/opt/buildkite-agent/builds/bk-agent-prod-gcp-1748545681270973011/elastic/integrations/packages/mongodb/data_stream/log/elasticsearch/ingest_pipeline/pipeline-json.yml" is invalid: field processors.11.remove.field: rename "message" to "event.original" processor requires remove "message" processor (JSE00001)
  | 4. file "/opt/buildkite-agent/builds/bk-agent-prod-gcp-1748545681270973011/elastic/integrations/packages/mongodb/manifest.yml" is invalid: field (root): Additional property fips_compatible is not allowed
  |  
Comment thread packages/oracle/manifest.yml Outdated
version: "^8.13.0 || ^9.0.0"
elastic:
subscription: basic
fips_compatible: false

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

From which stack version onwards are we claiming FIPS compatibility?

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 a package-spec thing. For stacks, versions 8.19.0 and 9.1.0 onwards are going to be FIPS 140-2 compliant but I think the change here doesn't matter regardless of the stack.

In case we fix the modules to be compliant in future, then we can bump the stack and make this flag true.

@ishleenk17

Copy link
Copy Markdown
Member

Although we want to disable sql_input but we can't as of now because of: elastic/package-spec#901

@shmsr Since the dependency is not on this as confirmed here, are we including this for disabling fips flag ?

@shmsr

shmsr commented Jun 13, 2025

Copy link
Copy Markdown
Member Author

Although we want to disable sql_input but we can't as of now because of: elastic/package-spec#901

@shmsr Since the dependency is not on this as confirmed here, are we including this for disabling fips flag ?

As pointed by Jaime, there's no version constraint for the flag. As soon as the latest spec releases, and CI passes will make the change for sql_input.

@shmsr
shmsr force-pushed the add-fips-compatible-flag-infraobs branch from cbd5acf to 57491e4 Compare June 18, 2025 09:24
@shmsr
shmsr requested review from a team as code owners June 30, 2025 09:15
@shmsr
shmsr requested a review from Copilot June 30, 2025 09:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a new fips_compatible flag (set to false) to several package manifests to prevent their use in FedRAMP High environments. It also bumps each package’s format_version and version, and records the change in each package’s changelog.

  • Update manifest schema to 3.4.0 and bump package versions
  • Add fips_compatible: false under the elastic condition
  • Insert corresponding enhancement entries in each package’s changelog.yml

Reviewed Changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/sql_input/manifest.yml Bump format & version; add fips_compatible under elastic
packages/sql_input/changelog.yml Add changelog entry for the new fips_compatible flag
packages/postgresql/manifest.yml Bump format & version; add fips_compatible under elastic
packages/postgresql/changelog.yml Add changelog entry for the new fips_compatible flag
packages/oracle/manifest.yml Bump format & version; add fips_compatible under elastic
packages/oracle/changelog.yml Add changelog entry for the new fips_compatible flag
packages/mysql/manifest.yml Bump format & version; add fips_compatible under elastic
packages/mysql/changelog.yml Add changelog entry for the new fips_compatible flag
packages/mongodb/manifest.yml Bump format & version; add fips_compatible under elastic
packages/mongodb/changelog.yml Add changelog entry for the new fips_compatible flag
packages/microsoft_sqlserver/manifest.yml Bump format & version; add fips_compatible under elastic
packages/microsoft_sqlserver/changelog.yml Add changelog entry for the new fips_compatible flag
packages/azure/manifest.yml Bump format & version; add fips_compatible under elastic
packages/azure/changelog.yml Add changelog entry for the new fips_compatible flag
Comments suppressed due to low confidence (3)

packages/postgresql/manifest.yml:14

  • [nitpick] Consider using consistent quoting for the subscription value (e.g., change to "basic") across all manifests to maintain style uniformity.
    subscription: basic

packages/azure/manifest.yml:21

  • Add or update the package’s README (or central developer docs) to include an explanation of the new fips_compatible flag and its effect in FedRAMP environments.
fips_compatible: false

packages/sql_input/manifest.yml:15

  • Verify that the fips_compatible field is correctly indented under the elastic section; incorrect indentation could cause YAML parsing errors or the flag to be ignored.
fips_compatible: false
@shmsr

shmsr commented Jun 30, 2025

Copy link
Copy Markdown
Member Author

@jsoriano / @mrodm I am still getting the error:

  1. file "/Users/subhamsarkar/go/src/github.com/elastic/integrations/build/packages/mysql-1.27.0.zip/manifest.yml" is invalid: field (root): Additional property fips_compatible is not allowed

I thought integrations repo has been updated with the latest version of ep and hence the 3.4.0 spec, so why am I getting this error. Can you please help?

@andrewkroh andrewkroh added the Team:obs-ds-hosted-services Observability Hosted Services team [elastic/obs-ds-hosted-services] label Jun 30, 2025
@jsoriano

jsoriano commented Jun 30, 2025

Copy link
Copy Markdown
Contributor

@jsoriano / @mrodm I am still getting the error:

  1. file "/Users/subhamsarkar/go/src/github.com/elastic/integrations/build/packages/mysql-1.27.0.zip/manifest.yml" is invalid: field (root): Additional property fips_compatible is not allowed

I thought integrations repo has been updated with the latest version of ep and hence the 3.4.0 spec, so why am I getting this error. Can you please help?

The flag was added at the package policy level, not at the root level of the manifest. Also, it was added only for integration packages, not for input packages.

I have prepared a PR with tests that illustrate where the flag is expected, and with support for input packages: elastic/package-spec#914

@shmsr

shmsr commented Jul 1, 2025

Copy link
Copy Markdown
Member Author

@jsoriano / @mrodm I am still getting the error:

  1. file "/Users/subhamsarkar/go/src/github.com/elastic/integrations/build/packages/mysql-1.27.0.zip/manifest.yml" is invalid: field (root): Additional property fips_compatible is not allowed

I thought integrations repo has been updated with the latest version of ep and hence the 3.4.0 spec, so why am I getting this error. Can you please help?

The flag was added at the package policy level, not at the root level of the manifest. Also, it was added only for integration packages, not for input packages.

I have prepared a PR with tests that illustrate where the flag is expected, and with support for input packages: elastic/package-spec#914

Thanks a lot @jsoriano!

@tommyers-elastic For now I am leaving out sql_input as the flag is not there for input packages; will add it later when it's available.

@elastic-vault-github-plugin-prod

elastic-vault-github-plugin-prod Bot commented Jul 1, 2025

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@shmsr

shmsr commented Jul 1, 2025

Copy link
Copy Markdown
Member Author

Can someone from @elastic/obs-ds-hosted-services also please review? Based on the modules that have been disabled in Beats, I have disabled them in Integrations as well.

SQL input still remains as the flag is not available as of yet for input packages.

@ishleenk17

Copy link
Copy Markdown
Member

@shmsr : Changes look good.
So looks like sql input we are not doing currently.
Also the ones that are not FIPS compatible. Are there some corresponding changes for it in beats. Or are they due to the way the beats code is fetching the metrics that makes it fips incompatible ?

@shmsr

shmsr commented Jul 1, 2025

Copy link
Copy Markdown
Member Author

@shmsr : Changes look good. So looks like sql input we are not doing currently. Also the ones that are not FIPS compatible. Are there some corresponding changes for it in beats. Or are they due to the way the beats code is fetching the metrics that makes it fips incompatible ?

The modules are using code that contains FIPS non-approved cryptographic algorithms, either directly or through dependencies. While we could have kept some modules enabled since we're unlikely to execute the non-compliant code paths (as per manual review), keeping them enabled helped us identify the problematic libraries in our dependency tree (e.g., azure). Therefore, we've disabled all modules that could potentially execute non-FIPS-compliant code paths.

Comment thread packages/postgresql/manifest.yml Outdated
@andrewkroh andrewkroh removed the Integration:sql SQL Input label Jul 1, 2025
@elasticmachine

elasticmachine commented Jul 3, 2025

Copy link
Copy Markdown

💛 Build succeeded, but was flaky

Failed CI Steps

History

cc @shmsr

@elastic-sonarqube

Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
50.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube

@shmsr
shmsr merged commit 77a4ec5 into elastic:main Jul 3, 2025
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package azure - 1.28.0 containing this change is available at https://epr.elastic.co/package/azure/1.28.0/

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package microsoft_sqlserver - 2.13.0 containing this change is available at https://epr.elastic.co/package/microsoft_sqlserver/2.13.0/

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package mongodb - 1.21.0 containing this change is available at https://epr.elastic.co/package/mongodb/1.21.0/

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package mysql - 1.27.0 containing this change is available at https://epr.elastic.co/package/mysql/1.27.0/

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package oracle - 1.30.0 containing this change is available at https://epr.elastic.co/package/oracle/1.30.0/

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package postgresql - 1.30.0 containing this change is available at https://epr.elastic.co/package/postgresql/1.30.0/

robester0403 pushed a commit to robester0403/integrations that referenced this pull request Jul 8, 2025
@andrewkroh andrewkroh added the enhancement New feature or request label Jul 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Integration:azure Azure Logs Integration:microsoft_sqlserver Microsoft SQL Server Integration:mongodb MongoDB Integration:mysql MySQL Integration:oracle Oracle Integration:postgresql PostgreSQL Team:obs-ds-hosted-services Observability Hosted Services team [elastic/obs-ds-hosted-services] Team:Obs-InfraObs Observability Infrastructure Monitoring team [elastic/obs-infraobs-integrations]

7 participants