* fix clicking on host on netwrok detail page
* Fetch signal index at plugin level to avoid weird behavior
* bing back full screen timeline
* Show health check on timeline
* fix focus on modal of description and title
* fix focus on modal of description and title
* allow to know the next appId
* if user leave security solution and timeline has not been saved, ask them if they want to save it before leaving
* fix test + types
* Fix siem signal loading on plugin + UX on timeline with no data
* Add a callback to cleaner from solution + test
* fix bug + improve prompt leaving msg
* update note
* css improvements
* fix code to be true to our test
* miss one test
* update test
* fix unit test
* core review
Co-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Angela Chuang <yi-chun.chuang@elastic.co>
* You need to start somewhere
* revert comment
* rename default strategy to numeric
* add some tests
* fix some tests
* update documentation
* update generated doc
* change applyBaseConfig to be async
* fix integ tests
* add integration tests
* some renames
* more tests
* more tests
* nits on README
* some self review
* doc nits
* self review
* use `escapeRegExp` from lodash
* address some review comments
* a few more nits
* extract `isDevCliParent` check outside of LoggingSystem.upgrade
* log errors from context
* add defaults for policy/strategy
* initial draft
* move components to their own files
* create services folder and move tags package
* add assignment service
* fix some types
* prepare assign tag route
* move server-side tag client under the `services` folder
* add security check, move a lot of stuff.
* design improvements
* display tags in flyout
* improve button and add notification on save
* add action on tag rows
* fix types
* fix mock import paths
* add lens to the list of assignable types
* update generated doc
* add base functional tests
* move api to internal
* add api/security test suites
* add / use get_assignable_types API
* fix feature control tests
* fix assignable types propagation
* rename actions folder to bulk_actions
* extract actions to their own module
* add common / server unit tests
* add client-side assign tests
* add some tests and tsdoc
* typo
* add getActions test
* revert width change
* fix typo in API
* various minor improvements
* typo
* tsdoc on flyout page object
* close flyout when leaving the page
* fix bug when redirecting to SO management with a tag having whitespaces in its name
* check for dupes in toAdd and toRemove
* add lazy load to assign modal opener
* add lazy load to edit/create modals
* check if at least one assign or unassign tag id is specified
* grammar
* add explicit type existence check
* SavedObjectsRepository.incrementCounter supports array of fields
* Fix TS errors
* Fix failing test
* Ensure all the remarks make it into our documentation
* SavedObjectsRepository.incrementCounter initialize option
* Move usage collection-specific docs out of repository into usage collection plugins readme
* Update api docs
* Polish generated docs
* add the delete tag bulk action
* add unit tests for bulk delete
* fix duplicate i18n key
* add RBAC test on bulk delete
* add functional tests
* self review
* design nits
* add maxWidth option for confirm modal and add missing doc
* change bulk delete confirm modal max width
* add more missing doc
* only show loading state when performing the bulk delete
* use spacer instead of custom margin on horizontal rule
* use link instead of button to remove custom styles
* remove spacers, just use styles
* add divider when action menu is displayed
* set max-width for single delete confirm
* a11y fixes
* address nits
* add aria-label to delete action
Co-authored-by: Michail Yasonik <michail.yasonik@elastic.co>
* migrate i18n mixin to KP
* directly load the config from i18n service
* add base tests
* update telemetry schema
* update legacy telemetry schema
* fix server tests
* use paths from config service instead of manually loading the plugin config
* add tests for get_translation_paths
* add tests for i18n service
* add plugin service test
* update generated doc
* improve tsdoc
* [Visualizations] New vis wizard
* Update functional tests
* Create oss plugins for maps and lens and unregister alias function
* Add new plugins to .i18nrc.json
* Add readme and codeowners to the new plugins
* update docs
* fix tests
* fix types
* fixes
* Update development docs
* fix oss functional tests
* Fix jest and x-pack functional tests
* Fix functional test
* changes on the layout
* Cleanup and responsiveness
* cleanup unecessary code
* add common folder to the new OSS plugins
* remove unecessary translations
* Update limits.yml file
* Fix basic label
* Add experimental badge on controls vis
* Nice improvements
* fixes
* Improving styles
* Making modal go full height on smaller screens
* Fixing sass lint warning
* fix lint error
* fix internationalization error
* PR fixes
* PR changes
* Use useCallback where possible
* Remove translations that need to be translated again
* Lazy Load wizard modal
* Remove legacyMapVisualizationWarning
* Import the OSS plugins constants from the plugins
* Export constant from lensOss
* Change the new oss plugins from OSS to Oss
* Add a new line to the kibana.json files of the new plugins
* New nit fix
* Fix spaces
* Change the texts for the first step of the modal
* Fix test
* Fixes some of the PR comments
* Add onClick funtionality to the entire aggregation based card
* Cards description changes, introduce a copyFromRoot method to solve the problem of when disabling the x-pack plugic, to also disable the oss
* Create new FTR for testing the functionality of the wizard when both maps and lens apps are disabled
* fix eslint error
* Change groupTitles and descriptions
* Change input vis description
* Remove the copyFromRoot from the signature of the ConfigDeprecationFactory and export it from the main entrypoint
* Make the disabled cards badge clickable
* Changes from code review
* Fix functional tests failures
* Rename groupTitle to titleInWizard to be more specific
* Change vega vis note
* minor design changes
* fix problem with plugins list docs
* Retrieve maps and lens landing page from docs service and add tracking url param
* Fix funtional test for the new dashboard flow
* Fix logic in alias registry for removing the discardOnRegister alias
* no need to remove the alias entry from the discardOnRegister array
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: miukimiu <elizabet.oliveira@elastic.co>
* create xpack plugin skeleton, start to implement management section
* add tag creation modal
* first implementation of the tags table
* use InMemoryTable
* add edit modal and delete action
* update plugin list
* add tag list, fix types
* add capabilities check on client-side
* add tag combo box component
* add missing i18n keys
* fix privilege FTR tests
* add base structure for FTR tests
* fix feature ftr test
* use string literals for i18n
* create savedObjectsTaggingOss plugin, move API types to oss plugin, start to wire to SO management page.
* update plugin list
* fix types
* allow to use `_find` with multiple references
* add FTR test for _find API on references fields
* add _find integration tests
* update generated doc
* start to implement tag filtering on SO management section
* update generated docs
* wire tagging API to dashboard listing page
* fix i18n namespace
* fix type & tests
* update dashboard listing snapshots
* adapt FTR listingTable service to search for parsable queries
* wite tagging API to visualize listing
* update tagging plugin limits
* add server-side and client-side validation for tag create/edit
* rename title field to name
* fix types
* fix types bis
* add removeReferencesTo API to SOR/SOC
* update generated doc
* add server-side unit test for `savedObjectsTagging` plugin
* move tagging API types to its own file
* add savedObjectsTaggingOss mock
* add tags_cache tests
* add tests for client-side tag client
* extract uiApi to distinct files
* various API improvements
* add more tests
* add link between tag and so management sections + add connection counts
* add base functional test suite for tagging
* add more FTR tests
* improve feature control func test
* update codeowners
* update generated doc
* fix access to proxy modal
* adapt SO save modal to allow to add tag field
* add SO decorator registry and tag implementation
* add unit tests for SO tag decorator
* add functional tests for visualize integration
* add tag SO read permission for vis/dash feature
* add RBAC api integ tests
* add API integration tests
* add test for getTagConnectionsUrl
* add SOM test suite
* add dashboard integration suite
* remove test line
* add missing unit tests
* improve API types doc
* fix create modal save button label
* remove console.log
* improve doc
* self review
* add refresh interval for tag cache
* improve page object doc
* minor cleanup
* address review comments
* small layout fixes
* add initial focus
* use lazy accessor for tag request handler context
* adapt SOM export and export route to handle references
* remove icon from feature config due to master changes
* fix SO table tests
* update generated docs
* sort tags by name in filter dropdown and listing component
* wire SO tagging to dashboard save modal
* fix types
* - add 'create tag' action in tag selector
- add notifications on update/create/delete from management
- delete modal wording
* add description max length validation
* remove real-time validation
* fix i18n bundle id
* update expected size of savedObjectsTagging plugin
* use own useIfMounted
* update limit again, contract components cannot be lazy loaded atm.
* math is hard
* remove single usage of lodash for bundle size
* add async imports for create/edit modal
* add FTR test for 'create tag' action from tag selector
* allow 'create new' option to prepopulate name field
* extract savedObjectToTag
* add advancedSettings read user for security api_integ suite
* add audit login for security client wrapper
* use import type when possible
* wire SO tagging to lens visualization
* fix lens jest test
* Fix `create tag` option being selected when closing the selector dropdown
* add sorting to tag column from getTableColumnDef
* address some of restrry comments
* rename tag selector's setSelected option to onTagsSelected
* fix audit logging even type for saved_object_remove_references
* update plugin size limit to current size
* adapt maxlength validation wording
* remove selection column until we have batch action menu
* remove connections link when user lack read privilege to savedObjectManagement
* forbid registering multiple SO decorators with the same priority
* add so decorator test
* extract getTagFindReferences and create API mock
* update audit-logging ascidoc
* doc nit
* throw conflict error if update returns any failure
* use refresh=true as default
* wording nits
* export: rename `references` to `hasReference`
* update generated doc
* set description max length to 100
* do not initialize tag cache on anonymous pages
* split fetchObjectsToExport into two distinct functions
* change tag client `delete` call order
* tsdoc nits
* more nits
* add README for oss plugin
* add oss plugin start tests
* SavedObject.find: rename `references` to `hasReference`
* change section description label
* remove url prefix constants
* last nits and comments
* update generated doc
* 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.
* 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
* Adding KibanaRequest#uuid
* Adding tests
* Fixing test which was mocking uuid.v4() to get expected IDs
* Fixing another mock
* Updating docs
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* Grouped features for space management
* Apply suggestions from code review
Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
* Address PR Feedback
* docs changes
* updating types/docs
* update APM feature name
* Reintroduce extraAction following EUI update
* change ordering of infra features, and render callout for management category
Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* move deprecations and raw loader to package
* move config service to package
* start to adapt the usages
* adapt yet more usages
* update generated doc
* move logging types to `@kbn/logging`
* update generated doc
* add yarn.lock symlink
* merge @kbn-logging PR
* adapt Env.createDefault
* update generated doc
* remove mock exports from the main entrypoint to avoid importing it in production code
* use dynamic require to import `REPO_ROOT` from bootstrap file
* move logger mock to kbn-logging package
* address review comments
* import PublicMethodOf from kbn/utility-types
* fix import conflict
* update generated doc
* use the @kbn/std package
* update generated doc
* adapt plugin service mock
* Simple benchmark tests for kuery
* Building manually is "better" still not free
* Building the KueryNode manually
* Removing benchmark tests
* Another query is building the KueryNode manually
* Empty strings are inherently falsy
* No longer reaching into the data plugin, import from the "root" indexes
* Using AGENT_ACTION_SAVED_OBJECT_TYPE everywhere
* Adding SavedObjectsRepository#find unit test for KueryNode
* Adding KQL KueryNode test for validateConvertFilterToKueryNode
* /s/KQL string/KQL expression
* Updating API docs
* Adding micro benchmark
* Revert "Adding micro benchmark"
This reverts commit 97e19c0bf3.
* Adding an empty string filters test
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* rename uuid service to environment service
* adapt resolve_uuid to directly use the configurations
* move data folder creation to core
* update generated doc
* fix types
* fix monitoring tests
* move instanceUuid to plugin initializer context
* update generated doc