* [Maps] clean up uses of any in redux actions and kibana services
* API doc changes and updated IndexPatternSelect type
* tslint errors in OSS code
* API updates
* remove IndexPatternSelectPublicProps and create IndexPatternSelectInternalProps instead
* include changes to index_pattern_select
* API updates
* remove savedObjectClient from IndexPatternSelectProps
* update types for lazy load component
* remove unused import
* export type
* another API clean-up
* revert changes to import in data/public/types
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Renames "Built-In Alerts" feature to "Stack Alerts" and "Actions" feature to "Actions and Connectors" as we've decided these names make more appropriate and better communicate what these features are.
* Create lens action and unregister the visualize one
* remove console
* Implement Discover to Lens, wip, missing tests
* Add unit tests
* fix embed lens to empty dashboard functional tests
* fix suggestions on save
* Fix bug on save button, query and filters should be transferred from discover
* Add functional test for the navigation from Discover to Lens
* PR update after code review
* unregister visualize action only if the action exists
* Change the test to not be flaky
* Move suggestions to editor frame and hide the emptyWorkspace for visualize field
* Update ui actions docs
* Add a retry to remove test flakiness
* Fix bug of infinite loader when removing the y axis dimension
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* WIP: Adding new route for EQL Validation
This is mostly boilerplate with some rough parameter definitions; the
actual implementation of the validation is going to live in our
validateEql function.
A few tests are failing as the mocks haven't yet been implemented, I
need to see the shape of the responses first.
* Cherry-pick Marshall's EQL types
* Implements actual EQL validation
* Performs an EQL search
* filters out non-parsing errors, and returns what remains in the
response
* Adds mocks for empty EQL responses (we don't yet have a need for
mocked data, but we will when we unit-test validateEql)
* Adds validation calls to the EQL form input
* Adds EQL Validation response schema,mocks,tests
* Adds frontend function to call our validation endpoint
* Adds hook, useEqlValidation, to call the above function and return
state
* Adds labels/help text for EQL Query bar
* EqlQueryBar consumes useEqlValidation and marks the field as invalid,
but does not yet report errors.
* Do not call the validation API if query is not present
This causes a broader error that results in a 400 response; we can (and
do) handle the case of a blank query in the form itself.
* Remove EQL Help Text
It doesn't add any information for the user, and it currently looks bad
when combined with validation errors.
* Flesh out and use our popover for displaying validation errors
* Fixes issue where old errors were persisted after the user had made
modifications
* Include verification_exception errors as validation errors
These include errors related to index fields and mappings.
* Generalize our validation helpers
We're concerned with validation errors; the source of those errors is an
implementation detail of these functions.
* Move error popover and EQL reference link to footer
This more closely resembles the new Eui Markdown editor, which places
errors and doc links in a footer.
* Fix jest tests following additional prop
* Add icon for EQL Rule card
* Fixes existing EqlQueryBar tests
These were broken by our use of useAppToasts and the EUI theme.
* Add unit tests around error rendering on EQL Query Bar
* Add tests for ErrorPopover
* Remove unused schema type
Decode doesn't do any additional processing, so we can use t.TypeOf here
(the default for buildRouteValidation).
* Remove duplicated header
* Use ignore parameter to prevent EQL validations from logging errors
Without `ignore: [400]` the ES client will log errors and then throw
them. We can catch the error, but the log is undesirable.
This updates the query to use the ignore parameter, along with updating
the validation logic to work with the updated response.
Adds some mocks and tests around these responses and helpers, since
these will exist independent of the validation implementation.
* Include mapping_exceptions during EQL query validation
These include errors for inaccessible indexes, which should be useful to
the rule writer in writing their EQL query.
* Display toast messages for non-validation messages
* fix type errors
This type was renamed.
* Do not request data in our validation request
By not having the cluster retrieve/send any data, this should saves us
a few CPU cycles.
* Move EQL validation to an async form validator
Rather than invoking a custom validation hook (useEqlValidation) at custom times (onBlur) in our EqlQueryBar
component, we can instead move this functionality to a form validation
function and have it be invoked automatically by our form when values
change. However, because we still need to handle the validation messages
slightly differently (place them in a popover as opposed to an
EuiFormRow), we also need custom error retrieval in the form of
getValidationResults.
After much pain, it was determined that the default behavior of
_.debounce does not work with async validator functions, as a debounced
call will not "wait" for the eventual invocation but will instead return
the most recently resolved value. This leads to stale validation
results and terrible UX, so I wrote a custom function (debounceAsync)
that behaves like we want/need; see tests for details.
* Invalidate our query field when index patterns change
Since EQL rules actually validate against the relevant indexes, changing
said indexes should invalidate/revalidate the query.
With the form lib, this is beautifully simple :)
* Set a min-height on our EQL textarea
* Remove unused prop from EqlQueryBar
Index corresponds to the value from the index field; now that our EQL
validation is performed by the form we have no need for it here.
* Update EQL overview link to point to elasticsearch docs
Adds an entry in our doclinks service, and uses that.
* Remove unused prop from stale tests
* Update docLinks documentation with new EQL link
* Fix bug where saved query rules had no type selected on Edit
* Wait for kibana requests to complete before moving between rule tabs
With our new async validation, a user can quickly navigate away from the
Definition tab before the validation has completed, resulting in the
form being invalidated. Any subsequent user actions cause the form to
correct itself, but until I can find a better solution here this really
just gives the validation time to complete and sidesteps the issue.
* [Vega] Fix unexpected change in autosizing behavior post upgrade
* Add docs
* Fix type issues
* Fix i18n and snapshot
* Fix snapshot?
* Fix time in snapshot
* Update style of sizing function
* split application utilities and associated tests to distinct files
* do not match app if path does not start with the basePath
* add relative paths support to `navigateToUrl`
* add null-check error
* update generated doc
* nits on doc
* Update styles
* Implement toExpressionAst fn
* Implement renderer
* Update unit tests
* Add unit tests
* Update types
* Remove unused vars
* Fix types
* Update types
* Show error message when no data
* Update ExpressionRenderDefinition api
* Update renderer when there is no data
* Make options component lazy
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Update tutorial-discovering.asciidoc
Adds alt text to images in doc.
* Update docs/getting-started/tutorial-discovering.asciidoc
* Update docs/getting-started/tutorial-discovering.asciidoc
Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co>
* Update tutorial-define-index.asciidoc
Forgot to update alt text in previous pr. Additionally, it is unclear in the image where the "time field" dropdown is located.
* Update docs/getting-started/tutorial-define-index.asciidoc
Co-authored-by: Kaarina Tungseth <kaarina.tungseth@elastic.co>
* First stab at developer-focussed saved objects docs
* Don't introduce spelling mistakes
* Add docs for SO migrations
* Link to HTTP API documentation
* Grammar fixes
* Rendering fixes
* Migrations should be tested, remove nested migration docs for now
* Drop subtitle field in migration, add notes about migration version, behaviour for corrupt documents and emphasize testing
Co-authored-by: Josh Dover <me@joshdover.com>