Skip to content

[UII] Add "Only agentless integrations" filter to integrations browse experience#235686

Merged
jen-huang merged 5 commits intoelastic:mainfrom
jen-huang:feat/deployment-modes-filter
Sep 22, 2025
Merged

[UII] Add "Only agentless integrations" filter to integrations browse experience#235686
jen-huang merged 5 commits intoelastic:mainfrom
jen-huang:feat/deployment-modes-filter

Conversation

@jen-huang
Copy link
Contributor

@jen-huang jen-huang commented Sep 18, 2025

Summary

Resolves https://github.com/elastic/ingest-dev/issues/5931. This PR adds a new toggle to Integrations browse page that only shows agentless integrations. A query param ?onlyAgentless=true is added if this toggle is enabled.

This toggle appears only if agentless is available for the deployment. It is placed above the existing show beta integrations toggle.

Default enabled view:
image

Persistence across deep filtering (with categories and search):
image

Release note

Added new filter to only show agentless integrations.

Checklist

@jen-huang jen-huang self-assigned this Sep 18, 2025
@jen-huang jen-huang requested a review from a team as a code owner September 18, 2025 21:54
@jen-huang jen-huang added release_note:enhancement backport:skip This PR does not require backporting Team:Fleet Team label for Observability Data Collection Fleet team labels Sep 18, 2025
@elasticmachine
Copy link
Contributor

Pinging @elastic/fleet (Team:Fleet)

Copy link
Contributor

@MichelLosier MichelLosier left a comment

Choose a reason for hiding this comment

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

Looking good so far, but it seems though the filtering is not aligning with the agentless check in deployment_modes. For example, when I have the agentless only filter on, I can still select the AWS ECS integration which doesn't support it.

@jen-huang
Copy link
Contributor Author

jen-huang commented Sep 19, 2025

I can still select the AWS ECS integration which doesn't support it.

Ah nice catch! I need to apply this filtering at the card level instead of at the package level. Taking a look.

Comment on lines +25 to +35
<FormattedMessage
id="xpack.fleet.epm.agentlessFilter.label"
defaultMessage="Only agentless integrations"
/>
&nbsp;
<EuiIconTip
content={
<FormattedMessage
id="xpack.fleet.epm.agentlessFilter.tooltip"
defaultMessage="Agentless integrations run in Elastic Cloud without requiring you to deploy Elastic Agents"
/>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@vishaangelova @karenzone any suggestions for improve the copy here or is it ok?

Copy link
Contributor

Choose a reason for hiding this comment

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

For the filter: "Only agentless integrations"
If this format (starting with Only) matches wording for other filters. then 👍 .

For the message: "Agentless integrations run in Elastic Cloud without requiring you to deploy Elastic Agents"
We're using "Elastic Cloud Hosted" as the official platform name in docs, but shortening here might make sense. Are Agentless integrations available for Serverless?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If this format (starting with Only) matches wording for other filters. then 👍

we don't really have other similar filters. there is a similar toggle right below this one that says Display beta integrations, but that behaves differently (enabling it doesn't "only" show beta ones)

Are Agentless integrations available for Serverless?

yes they are! that's the reason why I chose Elastic Cloud since I believe that term covers both hosted + serverless?

Copy link
Contributor

@karenzone karenzone Sep 22, 2025

Choose a reason for hiding this comment

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

Fantastic on Hosted+Serverless. Makes sense. 👍

Filtering implies that a user is limiting or expanding their view based on other options selected. If a user selects only one category--like Agentless integrations--the "only" is implied.
In a filtering context, it seems that removing the word "only" makes sense. I'm interested to hear what you and others think.

Copy link
Contributor

@vishaangelova vishaangelova Sep 22, 2025

Choose a reason for hiding this comment

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

🤔 I see on the screenshots in the PR that these two toggles (Only agentless integrations and Display beta integrations) are meant to extend the filtering by category, so they enhance the filtering options: if you want to see the beta integrations, you enable the toggle. If you want to see only agentless integrations from a category, you enable the Only agentless integrations, right?

Personally, I think having only in the wording makes sense, and makes the functionality explicit, easy to understand. Without only I’m left to wonder whether it works as the Display beta integrations toggle - if I enable it, will it show the agentless integrations alongside the rest? Without only in the wording, I’d also expect that the default behavior is to not show the agentless integrations (similar to the beta integrations).

I also feel that having a verb such as Show or Display at the beginning would be nice - it would also be consistent in format with the Display beta integrations toggle. But at the same time, I’m conscious of the space used, so having Display only agentless integrations might be too long. If the latter is the case, I’d stick with Only agentless integrations.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks for the feedback @karenzone and @vishaangelova! (Visha, you hit the nail on the head about my conundrum with the behavior and copy)

I am going to merge this PR and leave the copy as it is for the above reasons, and also soon the entire filter experience here will be revamped and these confusing toggles will be replaced in favor of a "tag"-style filter UX: https://github.com/elastic/ingest-dev/issues/4789

@jen-huang
Copy link
Contributor Author

@MichelLosier Fixed the filtering at the card level and updated the screenshots in this PR. This reduced the number of integrations from 90-something to 70ish. I assume most were non-agentless AWS ones like you mentioned :)

Copy link
Contributor

@MichelLosier MichelLosier left a comment

Choose a reason for hiding this comment

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

LGTM!

I think the type check failure is just the state of main at the moment

@elasticmachine
Copy link
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #15 / discover/group3 discover request counts ES|QL mode should send 2 requests (documents + chart) when changing the time range
  • [job] [logs] FTR Configs #5 / security APIs - Session Lifespan Session Lifespan cleanup should properly clean up session expired because of lifespan when providers override global session config

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
fleet 1346 1347 +1

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
fleet 1512 1514 +2

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
fleet 2.1MB 2.1MB +1.5KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
fleet 175.8KB 175.9KB +144.0B
Unknown metric groups

API count

id before after diff
fleet 1644 1646 +2

History

cc @jen-huang

@jen-huang jen-huang merged commit aec4f1a into elastic:main Sep 22, 2025
12 checks passed
@jen-huang jen-huang deleted the feat/deployment-modes-filter branch September 22, 2025 19:52
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Sep 24, 2025
… experience (elastic#235686)

## Summary

Resolves elastic/ingest-dev#5931. This PR adds
a new toggle to Integrations browse page that only shows agentless
integrations. A query param `?onlyAgentless=true` is added if this
toggle is enabled.

This toggle appears only if agentless is available for the deployment.
It is placed above the existing show beta integrations toggle.

Default enabled view:
<img width="1988" height="1222" alt="image"
src="https://github.com/user-attachments/assets/78f890aa-fa5a-4ce9-9ffb-82c5018c7627"
/>

Persistence across deep filtering (with categories and search):
<img width="1987" height="970" alt="image"
src="https://github.com/user-attachments/assets/0ee0815e-5b55-40ec-9fc2-2c0ea13d7dd4"
/>

## Release note
Added new filter to only show agentless integrations.

### Checklist
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
niros1 pushed a commit that referenced this pull request Sep 30, 2025
… experience (#235686)

## Summary

Resolves elastic/ingest-dev#5931. This PR adds
a new toggle to Integrations browse page that only shows agentless
integrations. A query param `?onlyAgentless=true` is added if this
toggle is enabled.

This toggle appears only if agentless is available for the deployment.
It is placed above the existing show beta integrations toggle.

Default enabled view:
<img width="1988" height="1222" alt="image"
src="https://github.com/user-attachments/assets/78f890aa-fa5a-4ce9-9ffb-82c5018c7627"
/>

Persistence across deep filtering (with categories and search):
<img width="1987" height="970" alt="image"
src="https://github.com/user-attachments/assets/0ee0815e-5b55-40ec-9fc2-2c0ea13d7dd4"
/>

## Release note
Added new filter to only show agentless integrations.

### Checklist
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
rylnd pushed a commit to rylnd/kibana that referenced this pull request Oct 17, 2025
… experience (elastic#235686)

## Summary

Resolves https://github.com/elastic/ingest-dev/issues/5931. This PR adds
a new toggle to Integrations browse page that only shows agentless
integrations. A query param `?onlyAgentless=true` is added if this
toggle is enabled.

This toggle appears only if agentless is available for the deployment.
It is placed above the existing show beta integrations toggle.

Default enabled view:
<img width="1988" height="1222" alt="image"
src="https://github.com/user-attachments/assets/78f890aa-fa5a-4ce9-9ffb-82c5018c7627"
/>

Persistence across deep filtering (with categories and search):
<img width="1987" height="970" alt="image"
src="https://github.com/user-attachments/assets/0ee0815e-5b55-40ec-9fc2-2c0ea13d7dd4"
/>

## Release note
Added new filter to only show agentless integrations.

### Checklist
- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting release_note:enhancement Team:Fleet Team label for Observability Data Collection Fleet team v9.2.0

6 participants