[SIEM][Exceptions] - ExceptionsViewer UI component part 2#68294
[SIEM][Exceptions] - ExceptionsViewer UI component part 2#68294yctercero merged 35 commits intoelastic:masterfrom
Conversation
…to exceptions-viewer-2
| @@ -5,6 +5,8 @@ | |||
| */ | |||
There was a problem hiding this comment.
NOTE: As mentioned in the 'part 1' PR, these types will get cleaned once the exceptions structure is updated.
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
| export interface ExceptionsApi { | ||
| deleteExceptionItem: (arg: ApiCallMemoProps) => Promise<void>; | ||
| deleteExceptionList: (arg: ApiCallMemoProps) => Promise<void>; | ||
| getExceptionItem: ( | ||
| arg: ApiCallMemoProps & { onSuccess: (arg: ExceptionListItemSchema) => void } | ||
| ) => Promise<void>; | ||
| getExceptionList: ( | ||
| arg: ApiCallMemoProps & { onSuccess: (arg: ExceptionListSchema) => void } | ||
| ) => Promise<void>; | ||
| } |
There was a problem hiding this comment.
Nice way of exposing the list API's! Makes for a clean separation of concerns between usage in hooks, and exposing the plugin's API as a whole 🙂
There was a problem hiding this comment.
Yea, the other way felt strange and saw this pattern elsewhere.
...ns/security_solution/public/common/components/exceptions/viewer/exceptions_viewer_header.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
spong
left a comment
There was a problem hiding this comment.
Checked out and tested locally, and also performed a code review -- looking good here! 😀 Thanks for the continued cleanup, updates to tests, and new auto_id exception list json's for testing -- they really help getting set up and quickly testing out the UI!
Also.... 👏 👏 👏 on leveraging storybooks! We haven't used them much on the SIEM side, but I've heard great things. It was nice to be able to click through and test all the different states.
LGTM! Thanks @yctercero! 👍 🚀
|
@elasticmachine merge upstream |
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
x-pack/plugins/security_solution/public/common/components/exceptions/viewer/index.tsx
Show resolved
Hide resolved
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
) ### Summary This PR is a follow up to elastic#68027 . It brings it all together to complete the exceptions viewer component. This component is meant to display all exception items and allow a user to create, edit, delete, and search these exception items. - Moves ExceptionItem (from part 1) into its own folder - Adds exceptions_viewer_header component that includes the search, list toggle, and add exception buttons - Adds actual ExceptionViewer component - Updates the useExceptionList hook refresh function logic. Noticed that the previous version was creating some issues
…68729) ### Summary This PR is a follow up to #68027 . It brings it all together to complete the exceptions viewer component. This component is meant to display all exception items and allow a user to create, edit, delete, and search these exception items. - Moves ExceptionItem (from part 1) into its own folder - Adds exceptions_viewer_header component that includes the search, list toggle, and add exception buttons - Adds actual ExceptionViewer component - Updates the useExceptionList hook refresh function logic. Noticed that the previous version was creating some issues
* master: (22 commits) Partial revert of "Sync Kerberos + Anonymous access tests with the latest `security/_authenticate` API (user roles now include roles of anonymous user)." (elastic#68624) adapt some snapshot test (elastic#68489) [APM] Service maps - Fix missing ML status for services with jobs but no anomalies (elastic#68486) [skip test] apis Kerberos security Kerberos authentication finishing SPNEGO should properly set cookie and authenticate user [SIEM][Exceptions] - ExceptionsViewer UI component part 2 (elastic#68294) Surface data streams in Index Management. (elastic#67806) Fix edit datasource not working following changes in elastic#67234 (elastic#68583) [Logs + Metrics UI] Clean up async plugin initialization (elastic#67654) APM Storybook fixes (elastic#68671) Upgrade EUI to v24.1.0 (elastic#68141) [ML] DF Analytics: Creation wizard part 2 (elastic#68462) [Uptime] Fix race on overview page query (elastic#67843) Prefer using npm_execpath when spawning Yarn (elastic#68673) [Security] [Cases] Attach timeline to existing case (elastic#68580) Use Search API in Vega (elastic#68257) [Component templates] Table view (elastic#68031) [Uptime] Added relative date info in cert status column (elastic#67612) [Endpoint] Re-enable Functional test case for Endpoint related pages (elastic#68445) run page_load_metrics tests in visual regresssion jobs (elastic#68570) Enable exhaustive-deps; correct any lint warnings (elastic#68453) ...
|
Thanks @peluja1012 and @spong for the in depth review. I added follow ups to your comments in this pr #68739 |
### Summary - Adds missing unit tests for relevant files missing them - Changes filter search to fire request on 'Enter' - Breaks out the main ExceptionViewer component into smaller components to make more readable and better tested - Updates utility bar to have the specific list description text next to it as proposed by @spong in #68294 (comment) - Adds loading state any time async request occurs - Now fetches list on list type toggle (if user selects to view either only detections or endpoint items), before was simply filtering already fetched items
### Summary - Adds missing unit tests for relevant files missing them - Changes filter search to fire request on 'Enter' - Breaks out the main ExceptionViewer component into smaller components to make more readable and better tested - Updates utility bar to have the specific list description text next to it as proposed by @spong in elastic#68294 (comment) - Adds loading state any time async request occurs - Now fetches list on list type toggle (if user selects to view either only detections or endpoint items), before was simply filtering already fetched items
### Summary - Adds missing unit tests for relevant files missing them - Changes filter search to fire request on 'Enter' - Breaks out the main ExceptionViewer component into smaller components to make more readable and better tested - Updates utility bar to have the specific list description text next to it as proposed by @spong in #68294 (comment) - Adds loading state any time async request occurs - Now fetches list on list type toggle (if user selects to view either only detections or endpoint items), before was simply filtering already fetched items
|
Pinging @elastic/security-solution (Team: SecuritySolution) |

Summary
This PR is a follow up to #68027 . It brings it all together to complete the exceptions viewer component. This component is meant to display all exception items and allow a user to create, edit, delete, and search these exception items.
exceptions_viewer_headercomponent that includes the search, list toggle, and add exception buttonsExceptionViewercomponentuseExceptionListhook refresh function logic. Noticed that the previous version was creating some issuesNote
TODOs in areas I'll have to update.rule.exceptionListswould be an array of{ id: '', type: 'detections', namespaceType: 'single' }. I can update once that final structure is figured out as well.x-pack/plugins/security_solution/public/alerts/pages/detection_engine/rules/details/index.tsxis due for a refactor, as this PR is already getting big, should be a follow upTo Do
ExceptionViewercomponentTesting
To turn on lists plugin - in kibana.dev.yml
Use the scripts in
x-pack/plugins/lists/server/scriptsto create some sample exception lists and items. You can use the following:./post_exception_list.sh ./exception_lists/new/exception_list_detection.json./post_exception_list_item.sh ./exception_lists/new/exception_list_item_detection_auto_id.json- this script auto generates theitem_idso you can run it as many times as you like to create multiple items associated with the list generated in step 1./post_exception_list.sh./post_exception_list_item.sh ./exception_lists/new/exception_list_item_auto_id.json- this script auto generates theitem_idso you can run it as many times as you like to create multiple items associated with the list generated in step 3./find_exception_lists.shto get theidof the two lists you createdExceptionsViewercomponent inx-pack/plugins/security_solution/public/alerts/pages/detection_engine/rules/details/index.tsxto something like the following:Navigate to the rules details page and click on the 'Exceptions' tab. Voila!
Screenshots
Empty
Items exist
Checklist