[AWS Onboarding] Add Services step UI#271719
Conversation
Introduces the Services step in the AWS cloud onboarding flow, letting users pick which AWS data streams to ingest before connecting their account.
Key changes:
- Move aws_service_matrix from Fleet to IngestHub (source of truth lives closer to the UI that owns it); convert deliveryMethods entries to { method, preferred } objects
- Replace single services_step.tsx with a services_step/ directory: ServiceRow (EuiCheckableCard), DeliveryMethodBadge (with ECF tooltip), SignalTypeBadge, ServiceConfigFields accordion
- ServicesStep: two-column grid, search box, signal-type filter, Select all / Deselect all, showInUI + defaultEnabled-based initial selection
- Reorder wizard steps: Services now comes before Connect so users choose services first
- ConnectStep: hides Federated Identity option when none of the selected services have identityFederationSupported
- AwsIdentityFederationSetup: skeleton loading while connectors fetch; fix useEffect tab initialisation to fire only once (avoids tab reset on refetch)
- Add Scout UI smoke test for the Services step
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Implements the AWS onboarding Services step UI and wires selected services into the Connect step to conditionally hide Identity Federation when unsupported.
Changes:
- Adds Services step UI (grid/cards, search, signal-type filter, select/deselect all, session-persisted selection defaults).
- Reorders onboarding steps to place Services before Connect, and gates Identity Federation visibility based on selected services.
- Adds/updates tests and matrix schema (
deliveryMethodsnow{ method, preferred }).
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/steps.ts | Reorders steps so Services precedes Connect. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/services_step/index.tsx | Implements Services step UI, filtering, and selection controls. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/services_step/service_row.tsx | Renders each service as a selectable card row with badges. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/services_step/signal_type_badge.tsx | Adds signal-type badge component. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/services_step/delivery_method_badge.tsx | Adds delivery-method badge + tooltip + preferred styling. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/services_step.tsx | Removes previous placeholder Services step component. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/onboarding_flow_context.tsx | Persists selected service IDs in session storage with matrix-driven defaults. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/step_components/connect_step.tsx | Hides Identity Federation option when any selected service doesn’t support it. |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/aws_service_matrix.ts | Moves/updates matrix schema (deliveryMethods entries, identityFederationSupported flag). |
| x-pack/platform/plugins/shared/ingest_hub/public/onboarding/aws_service_matrix.test.ts | Updates matrix test imports to new filename. |
| x-pack/platform/plugins/shared/ingest_hub/test/scout/ui/tests/onboarding_services_step.spec.ts | Adds Scout smoke coverage for Services step behaviors. |
| x-pack/platform/plugins/shared/fleet/public/components/cloud_connector/aws_connect_setup/index.tsx | Plumbs showIdentityFederation into connect setup. |
| x-pack/platform/plugins/shared/fleet/public/components/cloud_connector/aws_connect_setup/aws_auth_type_selector.tsx | Filters auth-type options based on showIdentityFederation. |
| x-pack/platform/plugins/shared/fleet/public/components/cloud_connector/aws_connect_setup/aws_identity_federation_setup.tsx | Adds skeleton while connectors load; refactors tab click handler. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Pinging @elastic/fleet (Team:Fleet) |
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Module Count
Async chunks
Page load bundle
History
|
| const TOOLTIPS: Partial<Record<DeliveryMethod, string>> = { | ||
| cloud_forwarder: i18n.translate( | ||
| 'xpack.ingestHub.servicesStep.deliveryMethod.cloudForwarderTooltip', | ||
| { defaultMessage: 'EDOT Cloud Forwarder' } |
There was a problem hiding this comment.
Should we call it EDOT Cloud Forwarder? I guess we are retiring this name?
| label={ | ||
| <EuiFlexGroup alignItems="center" gutterSize="m" responsive={false}> | ||
| <EuiFlexItem> | ||
| <EuiText size="s"> |

Summary
Implements the Services step in the AWS cloud onboarding wizard — the screen where users select which AWS data streams they want to ingest before proceeding to connect their account.
Services step
aws_service_matrix.tsmoved to IngestHub — the matrix is the source of truth for the Services UI and belongs with the plugin that owns it.deliveryMethodsentries were converted from plain strings to{ method, preferred }objects so the UI can render a "preferred" indicator.EuiCheckableCardshowing the service name, signal type badge, and delivery method badge(s).defaultEnabled— only services withshowInUI: true && defaultEnabled: trueare pre-checked on first load; selection is persisted to session storage.Connect step (follow-on fixes)
identityFederationSupported !== true. Falls back to Static Keys as the default. Enabled for GuardDuty only for testing, as we expect that to be the first to be supported.Scout UI test
A new Scout smoke test (
onboarding_services_step.spec.ts) covers the services step: renders behind feature flag, default selection matchesdefaultEnabled, signal filter works, Select/Deselect all works, and Next is disabled with no selection.Test plan
cloudwatch_logs,cloudwatch_metrics, OTel entries are uncheckedidentityFederationSupportedservices selected, the auth selector in the Connect step shows only Static keys / Temporary keysidentityFederationSupported: trueis selected🤖 Generated with Claude Code
Screenshots