-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[Streams] Improve attachments feature with details flyout and better UX #244880
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…eam names to details flyout
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
…atus --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces --include-path /api/streams --include-path /api/fleet --include-path /api/saved_objects/_import --include-path /api/saved_objects/_export --include-path /api/maintenance_window --include-path /api/agent_builder --update
|
/ci |
|
/ci |
5f50398 to
6136e2d
Compare
|
/ci |
|
Pinging @elastic/streams-program-team (Team:streams-program) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances the Streams attachments feature by adding a detailed flyout view, confirmation modals, toast notifications, improved table interactions, and additional metadata fields. The changes improve user experience when managing attachments linked to streams, providing better visibility into attachment details and clearer feedback for linking/unlinking operations.
Key changes:
- Added attachment details flyout with metadata display and navigation to linked streams
- Implemented confirmation modals and success toast notifications for link/unlink operations
- Extended attachment data model with description, timestamps, and stream names
- Enhanced attachment table with type filtering, row actions, and tag display improvements
Reviewed changes
Copilot reviewed 25 out of 27 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
x-pack/platform/test/api_integration_deployment_agnostic/apis/streams/migration_on_read.ts |
Updated test expectations to validate new attachment metadata fields (createdAt, updatedAt, description, streamNames) |
x-pack/platform/test/api_integration_deployment_agnostic/apis/streams/attachments/attachments.ts |
Added test assertions for new attachment metadata fields and streamNames across multiple test cases |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/index.tsx |
Refactored main attachments component to add filters, selection popover, confirmation modal, and details flyout integration |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/get_attachment_url.ts |
New utility to generate navigation URLs for different attachment types |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/confirm_attachment_modal.tsx |
New modal component for confirming link/unlink operations with attachment preview table |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachments_empty_prompt.tsx |
New empty state component for when no attachments exist |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_type_badge.tsx |
New badge component displaying attachment type with icon |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_tags_list.tsx |
New component for displaying tags with overflow handling |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_table.tsx |
Enhanced table with actions column, details expansion, type badges, and improved navigation |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_filters.tsx |
New filtering component with type and tag filters plus search |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_details_flyout.tsx |
New flyout displaying detailed attachment information including metadata and linked streams |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/attachment_constants.ts |
Centralized configuration for attachment type labels and icons |
x-pack/platform/plugins/shared/streams_app/public/components/stream_detail_attachments/add_attachment_flyout.tsx |
Refactored to use shared filters component and confirmation modal |
x-pack/platform/plugins/shared/streams_app/public/components/info_panel/index.tsx |
New reusable panel component for displaying information sections |
x-pack/platform/plugins/shared/streams_app/public/components/asset_image/index.tsx |
Added attachmentsEmpty image configuration for empty state |
x-pack/platform/plugins/shared/streams/tsconfig.json |
Added @kbn/alerting-types dependency |
x-pack/platform/plugins/shared/streams/server/routes/attachments/route.ts |
Updated API example response to include new metadata fields |
x-pack/platform/plugins/shared/streams/server/lib/streams/attachments/utils.ts |
Enhanced processing functions to extract and return metadata fields from saved objects |
x-pack/platform/plugins/shared/streams/server/lib/streams/attachments/types.ts |
Extended type definitions with AttachmentData and additional metadata fields |
x-pack/platform/plugins/shared/streams/server/lib/streams/attachments/attachment_client.ts |
Updated client to enrich attachments with streamNames from storage queries |
x-pack/platform/plugins/shared/streams/moon.yml |
Added @kbn/alerting-types dependency |
oas_docs/output/kibana.yaml |
Updated OpenAPI specification with new attachment fields |
oas_docs/output/kibana.serverless.yaml |
Updated serverless OpenAPI specification with new attachment fields |
oas_docs/bundle.serverless.json |
Updated serverless bundle with new attachment example fields |
oas_docs/bundle.json |
Updated bundle with new attachment example fields |
...gins/shared/streams_app/public/components/stream_detail_attachments/attachment_tags_list.tsx
Outdated
Show resolved
Hide resolved
...shared/streams_app/public/components/stream_detail_attachments/attachment_details_flyout.tsx
Outdated
Show resolved
Hide resolved
x-pack/platform/plugins/shared/streams/server/lib/streams/attachments/attachment_client.ts
Outdated
Show resolved
Hide resolved
...lugins/shared/streams_app/public/components/stream_detail_attachments/attachment_filters.tsx
Show resolved
Hide resolved
mdbirnstiehl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a couple of suggestions. Let me know if you have any questions or concerns.
.../shared/streams_app/public/components/stream_detail_attachments/attachments_empty_prompt.tsx
Outdated
Show resolved
Hide resolved
.../shared/streams_app/public/components/stream_detail_attachments/attachments_empty_prompt.tsx
Outdated
Show resolved
Hide resolved
| 'Are you sure you want to unlink {count, plural, one {this attachment} other {these attachments}}?', | ||
| values: { count: attachments.length }, | ||
| }) | ||
| : i18n.translate('xpack.streams.confirmAttachmentModal.linkSubtitle', { | ||
| defaultMessage: | ||
| 'Are you sure you want to link {count, plural, one {this attachment} other {these attachments}}?', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we are using link/unlink and add/remove interchangeably throughout the UI. I wonder if we might want to stick to one or the other. If the initial button is "Add attachments" I would stick with using add and remove instead of switching between the two.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It makes sense to me!
What do you think @boriskirov @ruflin ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both options are ok for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commit to stick with using add/remove: 8a9fd5f
.../shared/streams_app/public/components/stream_detail_attachments/confirm_attachment_modal.tsx
Outdated
Show resolved
Hide resolved
…tream_detail_attachments/attachments_empty_prompt.tsx Co-authored-by: Mike Birnstiehl <[email protected]>
…tream_detail_attachments/attachment_tags_list.tsx Co-authored-by: Copilot <[email protected]>
3af0e1c to
37643c0
Compare
|
/ci |
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
History
|



It closes #243751.
Summary
This PR enhances the Streams attachments feature with improved UX, additional metadata display, and better user feedback.
Changes
Attachment Details Flyout
Confirmation Modal
Toast Notifications
Attachment Table Enhancements
Backend Improvements
Attachmenttype withdescription,createdAt,updatedAt, andstreamNamesfieldsstreamNamesfor each attachmentScreen.Recording.2025-12-02.at.12.02.39.mov