* [NP] Expose global config to the plugins (#51478)
* [NP] Expose global config to the plugins
* globalConfig in Plugin context: expose read-only methods only
* SharedGlobalConfig rework + Moving pkg, fromRoot & path utils from legacy to NP
* Updated API docs
* Fix test references to the moved utils
* Replace zip with combineLatest
* Change tests to describe/it + remove "(deprecated)" from the test description
* Moving path files to a folder + exposing the config path in the contract
* deepFreeze the globalConfig in the pluginContext
* Fix types in tests with new path.config
* Move fromRoot and package_json utils to core/server/utils
* Rename globalConfig to legacy.globalConfig$
* path.config renamed to path.configDir (not renaming path.data because it might be a breaking change)
* Change configDir in mocker as well
* Fix test after config renamed to configDir
* Fix API docs conflicts
* Rename the path properties when exposing them
* path.configDir removed from the path config-schema
* Remove path.configDir. It is already in env.configs
* Add Migration documentation and examples
* Fix 'kibana/server' imports in the MIGRATION docs
* Disable eslint complain for the legacy config/schema.js import
* create service skeleton
* move registerCapabilitiesModifier to capabilities service and rename to registerCapabilitiesSwitcher
* starts to move capabilities logic to CapabilitiesService
* move capabilities route to service
* add initial integration test for capabilities route
* capabilitiesMixin now delegates to capability service
* use server-side Capabilities import in server code
* update generated doc
* remove capabilities from injectedMetadatas
* use applications sent from client instead of server-registered navLinks
* disable authRequired for capabilities route
* (temp) exposes two endpoints for capabilities
* Add fetch-mock on capabilities call for karma tests
* adapt xpack Capabilities test - first attempt
* adapt x-pack ui_capabilities test
* add '/status' to the list of anonymous pages
* Add documentation on Capabilities APIs
* move Capabilities to core/types
* update generated docs
* add service tests
* protecting resolveCapabilities against added/removed capabilities
* update generated docs
* adapt mocks due to rebase
* add forgotten exports
* improve capabilities routes registering
* name capabilities registering methods
* resolve conflicts due to merge
* address review issues
* add comment about reason for exposing two routes
* extract createHttpServer test helper
* fix merge conflicts
* improve documentation
* remove `/status` anon registration as now done in NP status plugin
* fix merge conflicts
* introduce IUiSettingsClient on the client
* switch uiSettings service to IUiSettingsClient
* update uiSettings service tests
* all plugins should use IUiSettingsClient
* stop is not public methods anymore
* remove savedobject attribute type references
* regen docs
* remove all references to UiSettingsClient class
* regen docs
* add migration example for uiSettings
* update consumer types and tests
* address comments
* Allow routes to define some payload config values
* Documentation typo
* Move hapi `payload` config under `body` + additional validations
* Update API docs
* Amend explanation in API docs
* Add stream and buffer types to @kbn/config-schema
* Fixes based on PR feedback:
- Add 'patch' and 'options' to valid RouteMethod
- Add tests for all the new flags
- Allow `stream` and `buffer` schema in the body validations (findings from tests)
* API documentation update
* Fix type definitions
* Fix the NITs in the PR comments + better typing inheritance
* API docs update
* Fix APM-legacy wrapper's types
* Fix KibanaRequest.from type exposure of hapi in API docs
* Move RouterRoute interface back to private + Expose some public docs
* Update @kbn/config-schema docs
* introduce PluginConfigDescriptor type
* inject client plugin configs in injectedMetadata
* expose client config in PluginInitializerContext
* add example implementation in testbed
* update generated doc
* only generates ui config entry for plugins exposing properties to client
* separate plugin configs from plugins
* restructure plugin services tests
* fix test/mocks due to plugin configs api changes
* add unit tests
* update migration guide
* update tsdoc
* fix typecheck
* use sync getter for config on client side instead of observable
* change type of exposeToBrowser prop
* updates generated doc
* fix doc and address nits
* add tests for logWithMetadata in LP
* allow passing metadata to log in NP & LP
* move ui_settings_client to NP
* add ui_settings config
* add ui_settings_service
* switch to NP logging
* export types
* bootstrap uiSettings service in NP
* pass NP uiSettings to LP
* move ui_settings mock to NP
* add test for mixin and switch to NP logger
* make UiSettingsClient.getDefaults sync as it is
* ui_settings_client uses private fields
* ui_settings_client uses private methods
* keep uiSettings config validation in NP only
* update mocks
* core context should know it is mocked
* add tests for ui_settings_service
* remove unused code from ui_settings_mixin test
* improve types in ui_settings_mixin test
* gen docs
* test moved to NP
* set pkg version in tests explicitly
* update mocks in tests
* UiSettingsServiceSetup --> InternalUiSettingsServiceSetup
* add links to types
* address eli comment
* regen docs
* remove unused types
* Expose Saved Objects client in request context
* API Integration test for savedobjects in req context
* SavedObjectsClient docs
* SavedObjectsClient#find remove dependency on indexPatterns
And use the saved objects mappings instead
* Review comments
* Review comments, fixes and tests
* Use correct type for KQL syntax check
* provide packageInfo to server plugins
* provide env to kbn server
* provide env to client plugins
* update server mocks and tests
* update client mocks and tests
* add integration test
* regen docs
* remove weird file
* export types for the client from special folder
* env should not affect test ourcome
* saved objects: allow partial update without references
For normal attributes, the update API for saved objects supports partial
updates, where it will only attempt to change those attributes you
specify. References should behave the same way otherwise they will be
replaced entirely if you call update without specifying the original
references.
* Add KQL functionality in the find function of the saved objects
wip
rename variable from KQL to filter, fix unit test + add new ones
miss security pluggins
review I
fix api changes
refactor after reviewing with Rudolf
fix type
review III
review IV
for security put back allowed logic back to return empty results
remove StaticIndexPattern
review V
fix core_api_changes
fix type
* validate filter to match requirement type.attributes.key or type.savedObjectKey
* Fix types
* fix a bug + add more api integration test
* fix types in test until we create package @kbn/types
* fix type issue
* fix api integration test
* export nodeTypes from packages @kbn/es-query instead of the function buildNodeKuery
* throw 400- bad request when validation error in find
* fix type issue
* accept api change
* renove _ to represent private
* fix unit test + add doc
* add comment to explain why we removed the private
* expose createRouter, prepare route handler for context introduction.
* fix tests
* update examples in docs
* update tests
* re-genereated docs
* remove registerRouter from http service contract
createRouter registers a router under the hood. that reduces API surface
for consumers
* address comments
* update docs
* add response factory to the interceptors
* adopt x-pack code to the changes
* Add a separate response factory for lifecycles.
Only route handler can respond with 2xx response.
Interceptors may redirect or reject an incoming request.
* re-generate docs
* response.internal --> response.internalError
* use internalError for exceptions in authenticator
* before Security plugin proxied ES error status code. now sets explicitly.
* provide error via message field of error response for BWC
* update docs
* add customError response
* restore integration test and update unit tests
* update docs
* support Hapi error format for BWC
* add a couple of tests
* Move SavedObjectClient files to core/public
* Initial SavedObjectsService in public Core
* Public SavedObjectsClient tests
* Import SimpleSavedObject from src/core/public
* Use types from source files for kibana.d.ts
* Add html raw loader to x-pack/jest
* Cleanup
* Drop case utilities and improve test coverage
* Update types and documentation
* Fix build breaking when importing directly from /server in /public
* Ensure that all option paramaters are picked and renamed
* Fix option mapping and introduce stronger types
* Eslint: allow imports from src/core/*/types
* Add compatibility layer for kfetch vs http.fetch error responses
* Improve documentation
* Expose SavedObjectsMigrationLogger
* Documentation and type tweaks
* Revert type changes from 73e601f and update api docs
* Refactor request into savedObjectFetch + test
* Make legacy SavedObject compatible with http.fetch exceptions
* Fix types and tests
* simple_saved_object import from src/core/server
* server imports from root instead of server/types
* Make SavedObjectsService a class
* Don't pick unkown keys from server response
* Rename SavedObjectsFindResponse to SavedObjectsFindResponsePublic
* Remove err.response from SavedObjects fetch errors
* Revert "Remove err.response from SavedObjects fetch errors"
This reverts commit 61705ca361.
* Don't introduce err.response until we deprecate err.res
* improving naming, add TSDoc
* re-genereate docs
* use response name in migration guide
* Apply suggestions from code review
Co-Authored-By: Josh Dover <me@joshdover.com>
* place docs near the related code
* re-generate docs
* mark code as example to reduce noise in http-service.md
* Allow mtask definitions to overwrite default setting maxAttemps
* Leverage scheduledAt from task manager
* Treat maxAttempts like attempts and not retries
* Add support for second intervals
* Min 1 attempt
* Reverse relying on scheduledAt
* Add new startedAt attribute in task manager that keeps track when task started running
* Don't extend runAt when claiming a task
* Remove startedAt from state
* Attempt trying to define custom getBackpressureDelay function
* Pass error object to getBackpressureDelay
* Cleanup processResultForRecurringTask code
* Add backpressure to timed out tasks
* Change default timeout backpressure calculation
* getBackpressureDelay to return seconds instead of milliseconds
* Add comment for task store query
* Compress query
* Revert alert / actions specific code
* Add more interval tests
* Fix failing jest tests
* Fix test
* Add more unit tests
* Fix integration tests
* Fix sorting of tasks to process
* WIP
* Always provide error when getBackpressureDelay is called
* Rename getBackpressureDelay to getRetryDelay
* retryAt to be calculated from timeout time by default
* Remove invalid test
* Add unit tests
* Consider timeout before scheduling a retryAt
* Remove backpressure terminology
* Remove support for 0 based intervals and timeouts
* Apply PR feedback
* Fix last place using Math.abs
* Modify migrations to allow running a script when converting an index to an alias
* Convert task manager to use saved objects
* Fix broken test
* Fix broken tests pt1
* Remove index from task manager config schema
* Accept platform changes
* PR feedback
* Apply PR feedback
* Apply PR feedback pt2
* Apply PR feedback pt3
* Apply PR feedback pt4
* Fix feedback pt3
* Rename RawSavedObjectDoc to SavedObjectsRawDoc