* 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
This PR changes the Alerts & Actions clients to ensure they require full updates (rather than partial) to SOs and overwrites the entire document when making the update.
This is to prevent the situation where nested objects get _merged_ instead of replaced when a user makes an `update`.
We also enhanced the EncryptedSavedObjectsClient to allow specified `id`s when overwriting an existing object.
Introduces migrations into Encrypted Saved Objects.
The two main changes here are:
1. The addition of a createMigration api on the EncryptedSavedObjectsPluginSetup.
2. A change in SavedObjects migration to ensure they don't block the event loop.
* make alert saved object type hidden
* fix support for hidden alert type in alerting tests
* updated api docs
* fixed some missing types and unused imports
* fixed test broken by field rename
* added support for including hidden types in saved objects client
* fixed merge conflict
* cleaned up some test descriptions
* adds a getClient api to Encrypted Saved Objects
* fixed alerts fixture
* added missing plugin type in alerting
* removed unused field
* chaged ESO api to an options object as per Security teams request
* fixed usage of eso client
* fixed typos and oversights
* split alerts file into two - for actions and alerts
As part of the work needed for RBAC & Feature Controls support in Alerting (https://github.com/elastic/kibana/issues/43994) we've identified a need to make the Alert Saved Object type a _hidden_ type.
As we still need support for Security and Spaces, we wish to use the standard SavedObjectsClient and its middleware, but currently this isn't possible with _hidden_ types.
To address that, this PR adds support for creating a client which includes hidden types.
* update crypto packages
* as type for return value
* get default export
* add if checks
* wrap errors in i18n
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
* use inline snapshots instead of snapshots
* hide input value from error messages
* update core snapshots
* update xpack snapshots
* fix ftr assertions
* fix new snapshots
* hide values for byte_size and duration
* update new snapshots
* remove another byte_size value reference
* fix yet another value references in error messages
* update xpack snapshots
* update xpack ftr assertions
* wip
* Expose whether the encryption key is randomly generated for saved-objects
* give feedback to user if encryption key is randomly generated
* remove package distributable
* update msg for no api integration key
* Update x-pack/plugins/encrypted_saved_objects/server/config.ts
Co-Authored-By: Brandon Kobel <brandon.kobel@gmail.com>
* review II
* fix type
* rename encryptionKeyRandomlyGenerated -> usingEphemeralEncryptionKey
* fix test and mistake
Co-authored-by: Brandon Kobel <brandon.kobel@gmail.com>
* change setClientFactory api to setClientFactoryProvider
* cleanup and add test for service
* change the signatures of SO start/setup
* fix registerCoreContext by accessing stored start contract reference
* move migration inside `start`
* adapt and add service tests
* add doc and export new types
* adapt plugins code
* update generated doc
* better core access
* address some review comments
* remove parametrized type from SavedObjectsClientFactory, use KibanaRequest instead
* add logs when starting and ending so migration
* fix KibanaRequest imports
* NITs and review comments
* fix alerting FTR test
* review comments
* Move src/legacy/server/saved_objects -> src/core/server/saved_objects
* Fix SavedObject import references after moving files to core
* First pass at SavedObjects api docs
* Expose and import all saved object types through core/server
* Don't expose SavedObjectsManagement from core and fix imports
* Improve typings for SavedObject error helpers
* Fix type errors after master merge
* Fix SavedObjectErrorHelpers tests
* Convert simple files to TS
* Fix jest tests
* Rename saved_objects_client{.js => .ts}
* WIP saved_objects_client
* saved_objects repository{.js => .ts}
* includedFields support string[] for type paramater
* Repository/saved_objects_client -> TS
* Fix tests and dependencies
* Fix saved objects type errors and simplify
* saved_objects/index saved_objects/service/index -> ts
* Fix saved objects export test after switching to typed mock
* Workaround type error
* Revert "Workaround type error"
This reverts commit de3252267eb2e6bf56a5584d271b55a7afdc1c53.
* Correctly type Server.savedObjects.SaveObjectsClient constructor
* saved_objects/service/lib/index.{js -> ts}
* saved_objects/service/lib/scoped_client_provider{js -> ts}
* Typescriptify scoped_client_provider
* Fix x-pack jest imports
* Add lodash/internal/toPath typings to xpath
* Introduce SavedObjectsClientContract
We need a way to specify that injected dependencies should adhere to the
SavedObjectsClient "contract". We can't use the SavedObjectsClient class
itself since it contains the private _repository property which in TS is
included in the type signature of a class.
* Cleanup and simplify types
* Fix repository#delete should return {}
* Add SavedObjects repository test for uncovered bug
Test for a bug in our previous js implementation that can lead to data
corruption and data loss.
If a bulkGet request is made where one of the objects to fetch is of a type
that isn't allowed, the returned result will include documents which have the
incorrect id and type assigned. E.g. the data of an object with id '1' is
returned with id '2'. Saving '2' will incorrectly override it's data with that
of the data of object '1'.
* SavedObject.updated_at: string and unify saved_object / serializer types
* Cleanup
* Address code review feedback
* Don't mock errors helpers in SavedObjectsClient Mock
* Address CR feedback
* CR Feedback #2
* Add kibana-platform as code owners of Saved Objects
* Better typings for SavedObjectsClient.errors
* Use unknown as default for generic type request paramater
* Bump @types/elasticsearch
* Fix types for isForbiddenError
* Bump x-pack @types/elasticsearch
* [xpack/encryptionKeys] use default keys when running from source
* add tests for the config schema with different contexts
* share the getConfigSchema helper
* await promises returned by expect().resolves
* tweak test naming
* use data-driven tests
* fix type error
* hide platform dependent config from snapshot