Skip to content

[Logs+] Implement Logs Data Stream selector#156479

Closed
tonyghiani wants to merge 141 commits intoelastic:mainfrom
tonyghiani:2655-implement-log-data-stream-selector
Closed

[Logs+] Implement Logs Data Stream selector#156479
tonyghiani wants to merge 141 commits intoelastic:mainfrom
tonyghiani:2655-implement-log-data-stream-selector

Conversation

@tonyghiani
Copy link
Copy Markdown
Contributor

@tonyghiani tonyghiani commented May 3, 2023

📓 Summary

Closes

This PR introduces a customized log consumption experience in the Discover plugin. By leveraging the new observability_logs plugin and utilizing the discover.customize functionality, we have curated a more tailored user experience.

The key feature of this implementation is the DataStreamSelector component, which replaces the original Discover DataViewPicker. It handles the retrieval, rendering, and navigation of integrations and data streams related to logs, providing an improved user interface.

This PR involves significant development efforts, including the creation of the observability_logs plugin, implementation of services, state machines, custom hooks, and enhancements to presentational components. The following overview will help reviewers understand the responsibilities of each component in this implementation.

demo-selector-fhd.mov

DataStreamsService & DataStreamsClient

The DataStreamsService is introduced, a crucial component that mediates access to the newly implemented DataStreamsClient. During the plugin's lifecycle, the DataStreamsService exposes a client property through its start() method, providing convenient access to a DataStreamsClient instance.

The DataStreamsClient is responsible for abstracting the data fetching process for two endpoints: the integrations endpoint and the data streams listing endpoint. These endpoints are utilized to populate the selector options in the user interface. To facilitate this, the DataStreamsClient exposes the findIntegrations and findDataStreams methods, which handle the respective data fetching.

Discover Customization

The critical part of this work consists of where the customization is applied.
Inside the public/plugin.tsx, we lazy load and create, injecting the required dependencies, the CustomDataStreamSelector, which already encapsulates all the logic required to make the selector work with the external APIs.
We kept separating the data fetching logic from how the selector works, and all the data and events are passed into the UI component with properties.

discover.customize(
  OBSERVABILITY_LOGS_PROFILE_ID,
  ({ customizations, stateContainer }) => {

    customizations.set({
      id: 'search_bar',
      CustomDataViewPicker: createLazyCustomDataStreamSelector({
        dataStreamsClient: dataStreamsService.client,
        stateContainer,
      }),
    });
    ...

Data fetching state machines & custom hooks

To handle the data fetching of integrations and unmanaged data streams, we created two different state machines to separately handle the related action for each dataset, such as remote search, in-memory search, error handling etc.

Integration machine and useIntegrations

The integrations state machine handles automatic data fetching of the resources and additionally provides transitions for loading more integrations, searching integrations by HTTP request, searching locally into integration streams, and all the related loading and error handling states.

It is then interpreted inside the useIntegrations custom hook, which exposes the fetched data and handlers for all the above-mentioned actions.

Screenshot 2023-05-30 at 09 44 42

Data streams machine and useDataStreams

Similar to the integrations state machine, but simplified since the data streams search can only happen with HTTP requests and there is no pagination that requires to handle the load of more entries.

It is interpreted inside the useDataStreams custom hook, which also exposes the fetched data and handlers for the available actions.

Screenshot 2023-05-30 at 09 45 11

DataStreamSelector

The DataStreamSelector component contains all the logic that manages the navigation and searches across the different panels that render integrations, integrations' streams or unmanaged streams.
As the datasets come from different APIs or are performed in-memory, the search work follow this logic:

  • When listing the integrations list (first level of the EuiContextMenu), the search is done with an HTTP request.
  • When listing the data streams list for a specific integration (second level of the EuiContextMenu), the search is done in-memory, filtering and sorting directly in the client.
  • When listing the unmanaged data streams list (second level of the EuiContextMenu), the search is done again with an HTTP request.

To handle these possible user journeys correctly without side effects, we created another state machine and exposed its actions with an internal useDataStreamSelector custom hook.

Screenshot 2023-05-30 at 09 46 04

Next steps

This component will change quite a lot until we won't get to a final design. As soon as a first solid mvp is defined for production, a complete test for the component will be implemented, among with a more generic functional test for the core customization features.

kertal and others added 30 commits March 23, 2023 11:27
- A container to centralize functionality around the usage of saved searches in Discover
….tsx

Co-authored-by: Julia Rechkunova <julia.rechkunova@gmail.com>
Marco Antonio Ghiani and others added 17 commits May 25, 2023 14:27
…tonyghiani/kibana into 2655-implement-log-data-stream-selector
…tonyghiani/kibana into 2655-implement-log-data-stream-selector
@kibana-ci
Copy link
Copy Markdown

kibana-ci commented Jun 7, 2023

⏳ Build in-progress, with failures

Failed CI Steps

Test Failures

  • [job] [logs] Jest Tests #6 / @elastic/eui i18n tokens all tokens are mapped
  • [job] [logs] Jest Tests #6 / @elastic/eui i18n tokens Token "euiFormControlLayoutDelimited.delimiterLabel" a translation should be registered as core.{TOKEN}
  • [job] [logs] Jest Tests #6 / @elastic/eui i18n tokens Token "euiFormControlLayoutDelimited.delimiterLabel" defaultMessage is in sync with defString
  • [job] [logs] Jest Tests #6 / @elastic/eui i18n tokens Token "euiFormControlLayoutDelimited.delimiterLabel" values should match
  • [job] [logs] Jest Tests #5 / managed by fleet should show mappings rollover modal on save if apply mappings call failed
  • [job] [logs] Jest Tests #6 / job detail JSON tab content should render the "EuiCodeEditor" with the job "json" data
  • [job] [logs] Jest Integration Tests #3 / node allocation in the cold phase when using node attributes and some are defined shows view node attributes link when an attribute is selected and shows flyout when clicked
  • [job] [logs] Jest Integration Tests #3 / node allocation in the warm phase when using node attributes and some are defined shows view node attributes link when an attribute is selected and shows flyout when clicked
  • [job] [logs] Jest Tests #3 / when not loading or refetching should render barchart and field selector dropdown
  • [job] [logs] Jest Tests #3 / should display all unique fields from a DataView[]
  • [job] [logs] Jest Tests #3 / should handle empty array of indexPatterns
  • [job] [logs] Jest Tests #12 / details flyout should show feature states if include global state is enabled
  • [job] [logs] Jest Tests #12 / details flyout should show the detail flyout when clicking on a policy
  • [job] [logs] Jest Tests #12 / details flyout When it only has include globalState summary should also mention that it includes all features
  • [job] [logs] Jest Tests #12 / form validations settings (step 2) should validate required repository settings
  • [job] [logs] Jest Tests #12 / should populate the correct values hdfs repository
  • [job] [logs] Jest Tests #12 / wizard navigation does not allow navigation when the step is invalid
  • [job] [logs] Jest Tests #4 / can navigate Autoplay Settings
  • [job] [logs] Jest Tests #5 / form validation mappings (step 4) plugin parameters should not render the _size parameter if the mapper size plugin is not installed
  • [job] [logs] Jest Tests #10 / AccessAgreementPage fails when state is not available
  • [job] [logs] Jest Tests #10 / AccessAgreementPage properly redirects after successful acknowledgement
  • [job] [logs] Jest Tests #10 / AccessAgreementPage renders as expected when state is available
  • [job] [logs] Jest Tests #10 / AccessAgreementPage shows error toast if acknowledgement fails
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal Closing modal when pressing the cancel button
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal Closing modal when pressing the x icon
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal renders
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal should hide the metrics
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal should not show bulk actions and row actions on the modal
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal should show the create case button
  • [job] [logs] Jest Tests #3 / AllCasesSelectorModal should show the select button
  • [job] [logs] Jest Tests #7 / BlockedWindowItem handles "end" time change
  • [job] [logs] Jest Tests #7 / BlockedWindowItem handles "start" time change
  • [job] [logs] Jest Tests #8 / body it should pass expected object properties to AuthenticationsQueryTabBody
  • [job] [logs] Jest Tests #8 / body it should pass expected object properties to UncommonProcessQueryTabBody
  • [job] [logs] Jest Tests #2 / CertificatesSearch renders expected elements for valid props
  • [job] [logs] Jest Tests #16 / ChartPanels it renders the charts loading spinner when data is loading and alertViewSelection is charts
  • [job] [logs] Jest Tests #16 / ChartPanels it renders the table loading spinner when data is loading and alertViewSelection is table
  • [job] [logs] Jest Tests #16 / ChartPanels it renders the treemap loading spinner when data is loading and alertViewSelection is treemap
  • [job] [logs] Jest Tests #16 / ChartPanels it renders the trend loading spinner when data is loading and alertViewSelection is trend
  • [job] [logs] FTR Configs #11 / Cloud Security Posture Findings Page "before all" hook in "Findings Page"
  • [job] [logs] Jest Tests #13 / ContextApp test renders correctly
  • [job] [logs] Jest Tests #13 / ContextApp test should set filters correctly
  • [job] [logs] Jest Tests #7 / Credentials renders a limited UI if data is still loading
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a DAY frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a DAY frequency
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a HOUR frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a HOUR frequency
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a MINUTE frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a MINUTE frequency
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a MONTH frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a MONTH frequency
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a WEEK frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a WEEK frequency
  • [job] [logs] Jest Tests #7 / CronEditor is rendered with a YEAR frequency
  • [job] [logs] Jest Tests #10 / CronEditor is rendered with a YEAR frequency
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Dashboard control group hierarchical chaining "after all" hook for "Creating "exists" query from first control filters the second and third controls"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Dashboard control group hierarchical chaining "before all" hook for "Shows all available options in first Options List control"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Allow expensive queries setting is off "after all" hook for "Can search options list for available options - case sensitive"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Allow expensive queries setting is off "before all" hook for "Shows available options in options list"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Dashboard options list suggestions "after all" hook for "returning to default sort value should remove unsaved changes"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Dashboard options list suggestions "before all" hook for "sort alphabetically - descending"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Dashboard options list validation "after all" hook in "Dashboard options list validation"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Dashboard options list validation "before all" hook in "Dashboard options list validation"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Interactions between options list and dashboard "after all" hook in "Interactions between options list and dashboard"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Interactions between options list and dashboard Test exists query "after all" hook for "negating exists query has expected results"
  • [job] [logs] test/functional/apps/dashboard_elements/config.ts / dashboard elements dashboard elements Controls Options list control Interactions between options list and dashboard Test exists query "before all" hook for "creating exists query has expected results"
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering in pinned tab it should have the attributes isDraggable to be false when timelineId !== "active" and activeTab === "pinned"
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering in pinned tab it should have the attributes isDraggable to be false when timelineId === "active" and activeTab === "pinned"
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering it should have the attributes isDraggable to be false when timelineId !== "active" and activeTab === "query"
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering it should have the attributes isDraggable to be true when timelineId === "active" and activeTab === "query"
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering it should render the Event Details Panel when the panelView is set and the associated params are set
  • [job] [logs] Jest Tests #4 / Details Panel Component DetailsPanel:EventDetails: rendering it should render the Event Details view of the Details Panel in the flyout when the panelView is eventDetail and the eventId is set
  • [job] [logs] Jest Tests #16 / DetectionEnginePageComponent renders correctly
  • [job] [logs] Jest Tests #16 / DetectionEnginePageComponent renders the chart panels
  • [job] [logs] FTR Configs #13 / Dev Tools feature controls security global dev_tools all privileges grok debugger can navigate to grok debugger
  • [job] [logs] FTR Configs #13 / Dev Tools feature controls security global dev_tools read-only privileges grok debugger can navigate to grok debugger
  • [job] [logs] FTR Configs #13 / Dev Tools feature controls spaces space with no features disabled can navigate to grok debugger
  • [job] [logs] Jest Tests #13 / Discover context url generator can create basic link to context
  • [job] [logs] Jest Tests #13 / Discover router should show ContextAppRoute component for /context/:dataViewId/:id route
  • [job] [logs] Jest Tests #13 / Discover router should show DiscoverMainRoute component for / route
  • [job] [logs] Jest Tests #13 / Discover router should show DiscoverMainRoute component for /view/:id route
  • [job] [logs] Jest Tests #13 / Discover router should show SingleDocRoute component for /doc/:dataViewId/:index route
  • [job] [logs] Jest Tests #13 / Discover url generator can create a link to a saved search in Discover
  • [job] [logs] Jest Tests #13 / Discover url generator can create a link to Discover with no state and no saved search
  • [job] [logs] Jest Tests #13 / Discover url generator can set refresh interval
  • [job] [logs] Jest Tests #13 / Discover url generator can set time range
  • [job] [logs] Jest Tests #13 / Discover url generator can specify a search session id
  • [job] [logs] Jest Tests #13 / Discover url generator can specify columns, interval, sort and savedQuery
  • [job] [logs] Jest Tests #13 / Discover url generator can specify query
  • [job] [logs] Jest Tests #13 / Discover url generator can specify specific data view
  • [job] [logs] Jest Tests #13 / Discover url generator can specify specific time range
  • [job] [logs] Jest Tests #13 / DiscoverMainRoute renders no data page when hasESData=false & hasUserDataView=false
  • [job] [logs] Jest Tests #13 / DiscoverMainRoute renders no data view when hasESData=true & hasUserDataView=false
  • [job] [logs] Jest Tests #13 / DiscoverMainRoute renders the main app when hasESData=true & hasUserDataView=true
  • [job] [logs] Jest Tests #1 / EditModal should render the title and description from listDetails
  • [job] [logs] Jest Tests #1 / EmptyViewerState it should render loading
  • [job] [logs] Jest Tests #6 / ES deprecation logs Documentation link Has a link for migration info api docs in page header
  • [job] [logs] Jest Tests #6 / ES deprecation logs Privileges check doesn't show analyze and resolve logs if it doesn't have the right privileges
  • [job] [logs] Jest Tests #6 / ES deprecation logs Privileges check permissions warning callout is hidden if user has the right privileges
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 1 - Toggle log writing and collecting handles network error when fetching logging state
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 1 - Toggle log writing and collecting handles network error when updating logging state
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 1 - Toggle log writing and collecting It doesnt show external links and deprecations count when toggle is disabled
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 1 - Toggle log writing and collecting shows callout when only loggerDeprecation is enabled
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 1 - Toggle log writing and collecting toggles deprecation logging
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 2 - Analyze logs Doesn't show observability app link if infra app is not available
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 2 - Analyze logs Has a link to see logs in discover app
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 2 - Analyze logs Has a link to see logs in observability app
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues Allows user to reset last stored date
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues Handles errors and can retry
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues No deprecation issues
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues Poll for logs count success state is followed by an error state
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues Shows a toast if deleting cache fails
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 3 - Resolve log issues With deprecation warnings
  • [job] [logs] Jest Tests #6 / ES deprecation logs Step 4 - API compatibility header It shows copy with compatibility api header advice
  • [job] [logs] Jest Tests #1 / ExceptionItemCardComments should render comments panel closed
  • [job] [logs] Jest Tests #1 / ExceptionItemCardComments should render comments panel opened when accordion is clicked
  • [job] [logs] Jest Tests #1 / ExceptionListHeader should render edit modal
  • [job] [logs] Jest Tests #1 / ExceptionListHeader should render the List Header with name, default description and actions
  • [job] [logs] Jest Tests #1 / ExceptionListHeader should render the List Header with name, default description and disabled actions because of the ReadOnly mode
  • [job] [logs] Jest Tests #1 / ExceptionListHeader should render the List Header with name, default description and disabled actions because user can not edit details
  • [job] [logs] Jest Tests #14 / ExceptionsAddToRulesTable should display the loading state while fetching rules
  • [job] [logs] Jest Tests #14 / ExceptionsLinkedToLists it displays error state if "errorFetchingReferences" is "true"
  • [job] [logs] Jest Tests #14 / ExceptionsLinkedToLists it displays loading state while "isLoadingReferences" is "true"
  • [job] [logs] Jest Tests #14 / ExceptionsViewer it renders loading screen when "currentState" is "loading"
  • [job] [logs] Jest Tests #14 / ExeptionItemsViewerEmptyPrompts it renders loading screen when "currentState" is "loading"
  • [job] [logs] Jest Tests #15 / FieldComponent should allow user to clear values if isClearable is true
  • [job] [logs] Jest Tests #15 / FieldComponent should render the component disabled if isDisabled is true
  • [job] [logs] Jest Tests #15 / FieldComponent should render the component enabled and displays the selected field correctly
  • [job] [logs] Jest Tests #15 / FieldComponent should render the loading spinner if isLoading is true when clicked
  • [job] [logs] Jest Tests #8 / FieldFormatEditor should render normally
  • [job] [logs] Jest Tests #8 / FieldFormatEditor should render nothing if there is no editor for the format
  • [job] [logs] Jest Tests #3 / FilesTable renders loading state
  • [job] [logs] Jest Tests #10 / filters notification popover clicking edit button executes edit panel action
  • [job] [logs] Jest Tests #6 / InstanceDetails renders loading spinner when data is being fetched
  • [job] [logs] Jest Tests #10 / Intro component renders correctly
  • [job] [logs] Jest Tests #5 / KibanaPageTemplate render basic template
  • [job] [logs] Jest Tests #3 / KibanaPageTemplate render basic template
  • [job] [logs] Jest Tests #3 / KibanaPageTemplate render solutionNav
  • [job] [logs] Jest Tests #9 / LayerWizardSelect Should render loading screen before layer wizards are loaded
  • [job] [logs] FTR Configs #11 / logstash pipeline create new cancel button discards the pipeline and redirects to the list
  • [job] [logs] FTR Configs #11 / logstash pipeline create new delete button is not visible
  • [job] [logs] FTR Configs #11 / logstash pipeline create new save button creates the pipeline and redirects to the list
  • [job] [logs] FTR Configs #11 / logstash pipeline create new starts with the default values
  • [job] [logs] FTR Configs #11 / logstash pipeline list route add button links to the empty pipeline editor
  • [job] [logs] FTR Configs #11 / logstash pipeline list route clone button links to the pipeline editor with cloned pipeline details
  • [job] [logs] FTR Configs #11 / logstash pipeline list route row links opens the selected row in the editor
  • [job] [logs] Jest Tests #7 / OrganicDocuments renders a loading state
  • [job] [logs] Jest Tests #15 / Osquery Action should not return any errors when all data is ok
  • [job] [logs] Jest Tests #15 / Osquery Results return results table
  • [job] [logs] Jest Tests #6 / Overview - Fix deprecation issues step - Elasticsearch deprecations When load succeeds when there are critical and warning issues panel links to ES deprecations page
  • [job] [logs] Jest Tests #6 / Overview - Fix deprecation issues step - Elasticsearch deprecations When load succeeds when there are critical and warning issues renders counts for both
  • [job] [logs] Jest Tests #8 / Paginated Table Component rendering it renders the loading panel at the beginning
  • [job] [logs] Jest Tests #4 / Pane renders with display block by default
  • [job] [logs] Jest Tests #3 / RecentCases shows a loading status
  • [job] [logs] Jest Tests #1 / RelatedAlertsByProcessAncestry renders the text with a count and a timeline button when the request works
  • [job] [logs] Jest Tests #1 / RelatedAlertsBySession shows the correct count and renders the timeline button
  • [job] [logs] Jest Tests #1 / RelatedAlertsBySourceEvent shows the correct count and renders the timeline button
  • [job] [logs] Jest Tests #7 / SchemaAddFieldModal sets loading state in useEffect
  • [job] [logs] Jest Tests #6 / ServiceIcons details Shows loading spinner while fetching data
  • [job] [logs] Jest Tests #6 / SharedLists renders delete option as disabled if list is "endpoint_list"
  • [job] [logs] Jest Tests #6 / SharedLists renders delete option as disabled if user is read only
  • [job] [logs] Jest Tests #6 / SharedLists renders empty search state when no search results are found
  • [job] [logs] Jest Tests #6 / SharedLists renders empty view if no lists exist
  • [job] [logs] Jest Tests #6 / SharedLists renders loading state when fetching lists
  • [job] [logs] Jest Tests #6 / SharedLists renders loading state when fetching refs
  • [job] [logs] Jest Tests #6 / Sidebar does not render the recently created cases section when the user does not have read permissions
  • [job] [logs] Jest Tests #6 / Sidebar does render the recently created cases section when the user has read permissions
  • [job] [logs] Jest Tests #1 / SimpleAlertTable shows a loading indicator when the data is loading
  • [job] [logs] Jest Tests #1 / ThreatDetailsView renders loading state
  • [job] [logs] Jest Tests #1 / Tooltip renders loading state correctly
  • [job] [logs] Jest Tests #6 / transaction_details/distribution TransactionDistribution doesn't show loading indicator when the service isn't running
  • [job] [logs] Jest Tests #6 / transaction_details/distribution TransactionDistribution shows loading indicator when the service is running and returned no results yet
  • [job] [logs] Jest Tests #8 / UrlFormatEditor should render normally
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url Activity Log tab when canReadActionsLogManagement is FALSE should not show the response actions history tab
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url Activity Log tab when canReadActionsLogManagement is FALSE should show the overview tab when force loading actions history tab via URL
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url Activity Log tab when canReadActionsLogManagement is TRUE should show the activity log content when selected
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url Activity Log tab when canReadActionsLogManagement is TRUE should start with the activity log tab as unselected
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display Failed overall policy status
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display policy name value as a link
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display policy revision number
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display Success overall policy status
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display Unknown overall policy status
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should display Warning overall policy status
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should show the flyout and footer
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should show the Take Action button
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should update the URL when policy name link is clicked
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url should update the URL when policy status link is clicked
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url when showing host Policy Response panel should display policy response sub-panel
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url when showing host Policy Response panel should hide the host details panel
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url when showing host Policy Response panel should include the back to details link
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url when showing host Policy Response panel should update URL when back to details link is clicked
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is a selected host in the url when showing the Host Isolate panel should show the isolate form
  • [job] [logs] Jest Tests #14 / when on the endpoint list page when there is no selected host in the url when list data loads when the user clicks the first hostname in the table should show the flyout
  • [job] [logs] Jest Tests #14 / When the add exception modal is opened when the modal is loading should show the loading spinner
  • [job] [logs] Jest Tests #14 / When the edit exception modal is opened when the modal is loading renders the loading spinner

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@tonyghiani
Copy link
Copy Markdown
Contributor Author

tonyghiani commented Jun 19, 2023

Rebased with #159907

@tonyghiani tonyghiani closed this Jun 19, 2023
@tonyghiani tonyghiani deleted the 2655-implement-log-data-stream-selector branch June 19, 2023 14:17
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.

6 participants