* Refactor enterprise_search_request_handler to a class that stores config/log
- So that routes don't have to continuously pass it in - just params that actually change (paths, queries)
+ misc refactors/lint fixes from code review
* Update mocks/dependencies so other tests pass type checks
* Update /api/workplace_search/overview endpoint to use new request handler
* Update /api/app_search/engines route to use new handler
- This required updating the shared handler to accept custom params set by the route, since the engines route transmutes some param names
- createRequest mock also had to be updated to correctly reflect a curried function in order to get tests passing
* DRY out hasValidData to a reusable/cleaner call
* Update shared handler to output specific message for auth errors
- Check for /login URL (indicates auth issue)
- Refactor final catch return to allow being passed messages from previous throw
- Change hasValidData fallback to only log (potentially sensitive?) JSON data to server, not to client
- Minor test cleanup - move error tests to single describe block, minor URL/newline cleanup
* Update handler to pass method & body requests + pass back response code
- This will support future POST requests as well as support (e.g.) 404 responses
Minor test refactors:
- Set up new request defaults (method, empty body) + expected output & convert KibanaAuthHeader to string since they're set so close to one another
- group request pass tests into a describe block, remove response body portion of their tests (since we don't really care about that for those tests)
- group response tests into describe block
- clarify how passed handler params arg overrides request.params
* PR feedback: Update custom params arg to take an object instead of a query string
Read location.search from the redux store instead of a hook so that the entire view has a single (synchronized) source of truth.
Also, no longer pass `pushToQueryParams` function to various components.
* Closes#72636. Adds alerting integration for APM transaction duration anomalies.
* Code review feedback
* Display alert summary with the selected anomaly severity label instead of the anomaly score.
* - refactored ALL_OPTION and NOT_DEFINED_OPTION to be shared from common/environment_filter_values
- utilize getEnvironmentLabel in the alerting trigger components and added support for the 'All' label
* refactor get_all_environments to minimize exports and be more consistent and clean
* - Reorg the alerts menu for different alert types (threshold/anomaly)
- default environment alert settings to the selected filter
* - Filters default transaction type to only those supported in the APM anomaly detection jobs
- Removes Service name and transaction type from the set of expressions in the alerting setup
* - remove bell icon from alerts menu
* Adds target service back into the anomaly alert setup as a ready-only expression
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
## Summary
Fixes bug found in 7.9.
**Current behavior:**
- Go to alerts page
- Select action to add exception item
- Select checkbox to close all alerts matching exception
- Click `Add exception`
- Note that the alerts table does not update until after you refresh or toggle between `Closed` and `Open`
**New behavior:**
- Go to alerts page
- Select action to add exception item
- Select checkbox to close all alerts matching exception
- Click `Add exception`
- Note that the alerts table updates
In some cases we have selectors returning thunks. The thunks need to be
called inside `useSelector` in order for a rerender to be reliably
triggered.
`useSelector` triggers a re-render if its return value changes. By calling the thunk inside of the selector passed to `useSelector`, we will trigger re-renders when needed.
* accessibility test for painless lab
* skipped a test due to aria-violation
* skipped tests due to aria-violation and added datatestsubj
* removed the unwanted import
* incorporate review comments
* feedback incorporated
* review comments incorporated
* removed unwanted expect
* Set up basic shared FlashMessages & FlashMessagesLogic
* Add top-level FlashMessagesProvider and history listener
- This ensures that:
- Our FlashMessagesLogic is a global state that persists throughout the entire app and only unmounts when the app itself does (allowing for persistent messages if needed)
- history.listen enables the same behavior as previously, where flash messages would be cleared between page views
* Set up queued messages that appear on page nav/load
* [AS] Add FlashMessages component to Engines Overview
+ add Kea/Redux context/state to mountWithContext (in order for tests to pass)
* Fix missing type exports, replace previous IFlashMessagesProps
* [WS] Remove flashMessages state in OverviewLogic
- in favor of either connecting it or using FlashMessagesLogic directly in the future
* PR feedback: DRY out EUI callout color type def
* PR Feedback: make flashMessages method names more explicit
* PR Feedback: Shorter FlashMessagesLogic type names
* PR feedback: Typing
Co-authored-by: Byron Hulcher <byronhulcher@gmail.com>
Co-authored-by: Byron Hulcher <byronhulcher@gmail.com>
* [Reporting/Download CSV] provide title even if panel \titles are hidden in the dashboard
* add functional test
* Update embeddable_panel.tsx
* Update download_csv.ts
In addition to a route for listing Credentials, this also adds a
utility function which helps create API routes which simply proxy
the App Search API.
The reasoning for this is as follows;
1. Creating new routes takes less effort and cognitive load if we
can simply just create proxy routes that use the APIs as is.
2. It keeps the App Search API as the source of truth. All logic is
implemented in the underlying API.
3. It makes unit testing routes much simpler. We do not need to verify
any connectivity to the underlying App Search API, because that is
already tested as part of the utility.
* KQL support in filter ratio in TSVB
Closes#67503
* Fix filter_ratio and filter_ratios tests
* fix JEST
* Refactor some code in filter_ratio, filter_ratios, filter_ratios.test
* Edit query value in filter_ratio and filter_ratios.test
* Refacor some code in filter_ratio.js and visualization_migrations.ts
* Remove duplications in vis_schema and refactor filter_ratio
* Refactor filter_ratio.js
* Update default query with getDefaultQuery()
* Fix filter_ratio and histogram_support tests
Co-authored-by: Alexey Antonov <alexwizp@gmail.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* bump ts to v4
* MOAR RAM
* fix type errors for OSS
* first pass on x-pack errors
* second pass on x-pack type errors
* 3rd pass on x-pack type-errors
* mute errors if complex cases
* don't delete if spread suffices
* mute other complex cases
* make User fields optional
* fix optional types
* fix tests
* fix typings for time_range
* fix type errors in x-pack/tests
* rebuild kbn-pm
* remove leftovers from master update
* fix alert tests
* [Telemetry Checker] TS4 Fixes
* bump to 4.0.1-rc
* fix new errors in master
* bump typescript-eslint to version supporting TS v4 syntax
* fix merge commit errors
* update to the stable TS version 4.0.2
* bump ts-eslint to version supporting ts v4
* fix typo
* fix type errors after merge
* update ts in another new package.json
* TEMP: remove me
* Revert "TEMP: remove me"
This reverts commit dc0fc3bae6.
* [Telemetry] Update snapshot for new TS4 SyntaxKind
* bump prettier to support TS v4 syntax
* fix prettier rules
* last style change
* fix new type errors
Co-authored-by: Alejandro Fernández Haro <alejandro.haro@elastic.co>
* [Security Solution][Resolver] Word-break long titles in related event description lists
* word-break long titles at non-word boundaries
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
## Summary
**Current behavior:**
- **Scenario 1:** User is in the exceptions viewer flow, they select to edit an exception item, but the list the item is associated with has since been deleted (let's say by another user) - a user is able to open modal to edit exception item and on save, an error toaster shows but no information is given to the user to indicate the issue.
- **Scenario 2:** User exports rules from space 'X' and imports into space 'Y'. The exception lists associated with their newly imported rules do not exist in space 'Y' - a user goes to add an exception item and gets a modal with an error, unable to add any exceptions.
- **Workaround:** current workaround exists only via API - user would need to remove the exception list from their rule via API
**New behavior:**
- **Scenario 1:** User is still able to oped edit modal, but on save they see an error explaining that the associated exception list does not exist and prompts them to remove the exception list --> now they're able to add exceptions to their rule
- **Scenario 2:** User navigates to exceptions after importing their rule, tries to add exception, modal pops up with error informing them that they need to remove association to missing exception list, button prompts them to do so --> now can continue adding exceptions to rule
* updates validation on 'from' param to prevent malformed datemath strings from being accepted
* fix imports
* copy paste is not my friend
* missed type check somehow
* forgot to mock common utils
* updates bodies for request validation tests
* Add new Workplace Search initial data properties
* Add app logic
* Refactor index to match App Search
Adds the easier-to-read ComponentConfigured and ComponentUnconfigured FCs with a ternary in the root compoenent
* Remove ‘Logic’ from interface names
* Extract initial data from WS into interface
This allows for breaking apart the app-specific data and also having an interface to extend in the app_logic file
* Destructuring FTW