Commit graph

122 commits

Author SHA1 Message Date
Mikhail Shustov
d61ef267d5
force savedObject API consumers to define SO type explicitly (#58022)
* force savedObject consumers to define type explicitly

* address comments

* regen docs
2020-02-21 22:11:05 +01:00
Mikhail Shustov
a08070ec1a
Expose elasticsearch config schema (#57655)
* expose elasticsearch config schema

* update docs

* mark export as alpha since it can be deleted

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-02-21 09:32:23 +01:00
Pierre Gayvallet
ea7c78d10e
Restructure SavedObject types internal representation (#56378)
* adapt types and tests to prepare for new NP api

* rename and export public types

* update generated doc

* first implementation of registerMappings

* adapt es archiver to convert legacy mappings

* update generated doc

* fix more tests

* add unit tests

* add legacy-compat unit test

* add documentation and examples

* Introduce SavedObjectTypeRegistry and SavedObjectType types

* add and fix tests

* expose createSerializer API and fix usages

* remove registerMappings API, add internal registerType

* revert changes to migration guide

* adapt ES-archiver migrator creation

* export serializer-related types

* update generated doc

* add and use convertTypesToLegacySchema

* remove / move to internal some mapping types

* fix forEach closure context

* add missing docs

* fix core path

* some nits

* fix so_mixin tests

* fix integration tests

* fix integration tests for real

* add documentation on serializer + restructure files and types

* nit

* add and use the ISavedObjectTypeRegistry interface

* Add documentation, deprecates migrationLogger#warning

* better typing for SavedObjectsRawDoc._source

* nits

* update generated doc

* remove exposition of SavedObjectsTypeMappingDefinitions, update doc

* creates so internal contracts mocks

* improve documentation
2020-02-06 10:30:55 +01:00
Pierre Gayvallet
4bb56c80b7
Add getServerInfo API to http setup contract (#56636)
* add getServerInfo http setup api

* update generated doc
2020-02-04 08:03:36 +01:00
Nick Partridge
186a82669f
Kibana property config migrations (#55937)
* Move defaultAppId config param into kibanaLegacy
* Move disableWelcomeScreen config param into Home plugin
* Update api and docs with silent option for renameFromRoot
2020-02-03 22:17:27 -06:00
Mikhail Shustov
aa695ec637
Normalize EOL symbol in platform docs (#56021)
* use api-extractor generate command with api-documenter config

* update docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-27 18:42:45 +01:00
Mikhail Shustov
efd3e99064
Revert "Normalize EOL symbol for the platform docs (#55689)" (#56020)
This reverts commit 1ea175e2c6.
2020-01-27 16:29:27 +01:00
Mikhail Shustov
1ea175e2c6
Normalize EOL symbol for the platform docs (#55689)
* use api-extractor generate command with api-documenter config

* update docs
2020-01-27 14:39:56 +01:00
Mikhail Shustov
e00f2628af
[NP] Platform exposes API to get authenticated user data (#55327)
* expose auth.get/isAuthenticated. move getAuthHeaders to internal type

* update mocks

* update docs

* update docs

* add integration test for auth
2020-01-27 13:57:06 +01:00
Josh Dover
1bb59af44a
Add isSystemRequest support to Kibana Platform (#53734) 2020-01-24 15:20:09 -07:00
spalger
e67cc8514a Revert "[csp] allow blob styles when running from source (#54991)"
This reverts commit 375f0b42a7.
2020-01-23 23:32:10 -07:00
Matthew Kime
0c25cb53b2
Advanced Settings management => typescript (#54477)
* advanced settings => typescript
2020-01-23 09:21:46 -06:00
Pierre Gayvallet
a75436d93e
Run SO migration after plugins setup phase. (#55012)
* 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
2020-01-23 10:41:21 +01:00
Spencer
375f0b42a7
[csp] allow blob styles when running from source (#54991)
* [csp] allow blob styles when running from source

* update kbn/pm dist

* add kibanaServer service to saml_api_integration suite

* use common naming

* attempt to use env.packageInfo instead of IS_KIBANA_DISTRIBUTABLE const

* remove mock, clone rules before modifying

* pass env where necessary

* update core api docs

* make env optional in HttpConfig

* add tests for CspConfig changes, base header on this.rules

* fix test snapshot

* make env optional in HttpConfig too

* remove CspConfig.DEFAULT and make env a required constructor arg

* update csp_usage_collector tests

* update core api docs

* fix test name

* rename headerChangedFromDefault back to rulesChangedFromDefault

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-22 11:32:09 -07:00
Mikhail Shustov
3e69ea5f01
[NP] KibanaRequest provides request abortion event (#55061)
* add aborted$ observable to KibanaRequest

* complete observable on request end

* update docs

* update test suit names

* always finish subscription

* address comments
2020-01-22 13:34:35 +01:00
Pierre Gayvallet
2d10350d77
Implements getStartServices on server-side (#55156)
* implements server-side getStartServices

* add unit test

* add integration test

* update generated doc

* improve test
2020-01-20 11:19:40 +01:00
Mikhail Shustov
ec31611911
Enforce camelCase format for a plugin id (#53759)
* add isCamelCase  function

* add a warning if id is not in camelCase

* document pluginId expected in camelCase

* regen docs

* add a test for logging

* update tests. warn can be called several times for different reasons

* pluginPath falls back to plugin id in snake_case

* update tests

* update docs

* add example with id & configPath different formats

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-18 14:17:36 +01:00
Eli Perelman
7977f0edd4
Generate legacy vars when rendering all applications (#54768)
* Generate legacy vars when rendering all applications

* Move rendering functional tests and add user settings tests

* Make rendering integration tests more robust, get data from page

* Address review nits, fix CI failures

* Remove extraneous file

* Fix type error
2020-01-16 11:35:21 -06:00
Liza Katz
12ec08e8ab
export new ui settings types and regen docs (#55020)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-16 19:02:23 +02:00
Liza Katz
aa16a9d455
Support "Deprecated" label in advanced settings (#54539)
* Support deprecating label in advanced settings
mark courier:batchSearches as deprecated

* jest update

* Add deprecation to UiSettingsParams type
Translate click aria label
Use docLinks service

* Rename doc link

* Remove url option from DeprecationSettings

* Simplify code

* Updated docs

* Revert "Updated docs"

This reverts commit c9512ced1f.

* snapshots

* docs
2020-01-13 23:54:41 +02:00
Matthew Kime
2178ee38c0
uiSettings - use validation field for image field maxSize (#54522)
* uiSettings - use validation field for image field maxSize
2020-01-13 13:58:59 -06:00
Mikhail Shustov
bbf703a0ff
tighten SO repository type (#54328)
* tighten SO repository type

* update docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-01-10 10:46:37 +03:00
Joe Portner
719ff259fc
Add support for certificates in PKCS#12 (P12) key stores (#53810)
Kibana now supports the usage of PKCS#12 (P12) key stores and trust stores for certificates and keys.
2020-01-09 13:03:16 -05:00
Mikhail Shustov
56041f03ad
Don't expose Elasticsearch client as Observable (#53824)
* expose ES clients without observables

* expose observable-less api to plugins

* update core api and mocks

* update plugins

* NP SO & legacy use updated API

* update SO tests

* update TSDocs

* update types

* update docs

* document createCluster analog in np

* typo
2020-01-08 12:01:47 +03:00
Mikhail Shustov
9843a5b64c
Set consistent EOL symbol in core API docs (#53815)
* update api-extractor, api-documenter versions

* set EOL: lf. sync with editorconfig

* regen docs

* generate docs with --docs

* rebuild kbn/pm to fix CI fauilure

Co-authored-by: Spencer <email@spalger.com>
2020-01-04 11:14:39 +03:00
Eli Perelman
054ec7036d
Add server rendering service to enable standalone route rendering (#52161)
* Add server rendering service to enable standalone route rendering

* Update renovate config

* Move legacy rendering functionality to legacy service

* Use config for exposed variable in new platform

* Lint changes from rebase

* Rebase artifact

* Remove RenderingProvider, add tests for legacy vars implementation, review notes

* Add UI app functionality to legacy service

* Update rendering snapshots

* Update docs

* Fix up functional tests

* Clean up legacy types

* Revise types from reverting injected metadata changes

* Update translations and broken tests

* Mock legacy internals in legacy tests

* Add missing doc types

* Rename InternalRenderOptions to LegacyRenderOptions

* Remove extraneous legacy exports, review nits

* Functional tests fixes

* Rebase, attempt CI test fixes

* Only allow specified appIds in testbed rendering integration test

* Update snapshot names

* Review nits
2019-12-29 02:10:55 -06:00
Matthias Wilhelm
b921987f1a
Remove SavedObjectRegistryProvider from codebase (#53455) 2019-12-21 10:38:03 +01:00
Joe Reuter
97ed566245
Migrate kql telemetry and scripts api (#52651) 2019-12-20 19:05:28 +01:00
Alejandro Fernández Haro
3bdbcd0d1a
[NP] Allow custom validations in HTTP Routes apart from @kbn/config-schema (#51919)
* [NP] Allow custom validations in HTTP Routes apart from @kbn/config-schema

* API docs

* Allow validate function in the route handler (run-code validation)

* Prefix RouteXXX + Params and Body Validation Aliases

* Fix test broken by lodash

* Update API docs

* Add default types for simpler manual declaration

* Add run-time validation of the RouteValidateSpec

* Expose RouteValidationError instead of SchemaTypeError

* RouteValidator as a class to match config-schema interface

* Test for not-inline handler (need to check IRouter for #47047)

* Add preValidation of the input for a safer custom validation

* Better types for RouteHandlers

* [NP] Move route validation to RouteValidator wrapper

* Use the class only internally but maintain the same API

* Fix types

* Ensure RouteValidator instance in KibanaRequest.from

* Fix validator.tests (Buffer.from instead of new Buffer)

* Default precheck should allow null values

* Also allow undefined in preChecks

* MR feedback fixes

* Provide RouteValidationResolver to the validation function

* Add functional tests

* Fix new functional tests

* Fix validator additional test

* Fix test with new resolver

* Remove unused import

* Rename ValidationResolver to ValidationResultFactory and change the interface to look more like the KibanaResponseFactory

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2019-12-20 17:53:08 +00:00
Pierre Gayvallet
3430628e26
expose asScopedToClient in uiSettingsService start contract (#53290)
* expose asScopedToClient in uisettings start contract

* add uiService mock in server tests

* Add tests for start method

* Updates generated doc

* properly export UiSettingsServiceStart from server

* remove useless async

* nit: rename
2019-12-19 15:44:42 +01:00
Alexey Antonov
93b626073f
Cleanup - Typescript some of src/legacy/server/index_patterns (#53461)
Part of #44190.
2019-12-19 17:41:08 +03:00
Mikhail Shustov
ecf8657d82
Document how to extend request handler context (#53271)
* mention uiSettingsClient in the context docs

* autogenerated docs for logger method

* describe what's available via request context handler. how to extend it

* make type optional
2019-12-19 10:12:45 +01:00
Pierre Gayvallet
2426811bca
Migrate instance uuid logic to new platform (#52060)
* move and migrate uuid code to new platform

* create and wire uuid service

* handle legacy compatibility

* update generated docs

* add `set` to LegacyConfig interface

* Fix types

* fix config access

* respect naming conventions for uuid

* remove hardcoded config paths

* rename manageInstanceUuid to resolveInstanceUuid

* moves legacy config uuid set from uuid to legacy service

* log specific message depending on how uuid was resolved

* resolve merge conflicts

* use fs.promises

* add forgotten @public in uuid contract

* add explicit errors and tests

* ensure uuid is valid in configuration

* fix read/write tests
2019-12-17 09:25:21 +01:00
Pierre Gayvallet
408139bf0b
Allow loggers to create child loggers via 'get' method (#52605)
* add 'Logger.get' method

* updates generated doc

* resolve merge conflicts
2019-12-16 10:41:14 +01:00
Eli Perelman
614bde927e
Move CSP options to new platform (#52698)
* Move CSP options to new platform

* Expose SharedGlobalConfig from root

* Derive CSP options from config

* Consolidate CSP configuration with HTTP config

* Fix outstanding config renames

* Remove legacy CSP configuration calls, migrate to platform properties

* Revise docs

* Fix test from type change

* Expose ICspConfig, consolidate and simplify CSP defaults access

* Rebase and update docs

* Remove legacy API from route definition params, review nits

* Clean up config path usages for consistency

* Regenerate docs
2019-12-13 15:57:17 -06:00
Pierre Gayvallet
eb3d9b118a
Implements config deprecation in New Platform (#52251)
* implements 'rename' and 'unset' deprecations

* introduce usage of ConfigDeprecationProvider

* adapt RawConfigService to only returns unmodified raw config

* apply deprecations when accessing config

* register legacy plugin deprecation in new platform

* implements ConfigService#validate

* add exemple config deprecation usage in testbed

* documentation

* export public config deprecation types

* fix new test due to rebase

* name ConfigDeprecationFactory

* update generated doc

* add tests for unset and move it to src/core/utils

* add tests for renameFromRoot and unusedFromRoot

* cast paths as any as get expects a fixed-length string array

* use specific logger for deprecations

* add additional test on renameFromRoot

* update migration guide

* migrate core deprecations to NP

* add integration test

* use same log context as legacy

* remove old deprecation warnings integration tests, now covered in NP

* migrates csp deprecation to NP

* removes deprecationWarningMixin from legacy

* remove legacy core deprecations

* remove unused import

* rename setupConfigSchemas to setupCoreConfig

* update generated doc
2019-12-13 09:49:56 +01:00
Lukas Olson
8395596159
[Search service] Add timeout parameter from config to requests (#52352)
* Add timeout parameter to requests

* export SharedGlobalConfig from `core/server`
2019-12-11 10:57:19 -07:00
Mikhail Shustov
2ef6d8d8f7
Add pre-response http interceptor (#52366)
* add onPreResponse interceptor

* expose registerPreResponse to plugins

* address comments

* regen docs
2019-12-06 17:46:25 +01:00
Alejandro Fernández Haro
bd3857a79b
[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
2019-12-05 10:25:32 +00:00
Rudolf Meijering
7f4bdb2d57
static createRepository factory function (#52056)
* static createRepository factory function

* Fix API docs after master merge
2019-12-04 13:15:37 +01:00
Pierre Gayvallet
99c6396fd5
Migrate Capabilities to new platform (#51438)
* 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
2019-12-03 09:34:49 +01:00
Mikhail Shustov
0f8533730c
Unify uiSettingsClient contracts (#51167)
* 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
2019-11-28 22:53:02 +01:00
Alejandro Fernández Haro
066613e2a6
Allow routes to define some payload config values (#50783)
* 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
2019-11-28 09:23:56 +00:00
Rudolf Meijering
f29af1219d
Split legacy plugin discovery, expose SavedObjects scopedClient, wrappers, repository (#48882)
* Split legacy plugin discovery, expose internal SavedObjectsClient

* Expose internal SavedObjectsClient to plugins

* Add more documentation

* Expose client wrappers, repository, scoped client from SavedObjects

* Remove unused onBeforeWrite

* Refactor Service / Repository for testability

* Bind exposed clientProvider methods

* Fix eArchiver's KibanaMigrator

* Cleanup

* Use APICaller type

* Expose SavedObjectsServiceStart to plugins

* API documentation

* Rename API methods to be verbs
2019-11-27 16:47:22 +01:00
Joe Portner
7830946f6a
Fix infinite redirect loop when multiple cookies are sent (#50452)
Cookies are now checked for attributes that match the current
Kibana configuration. Invalid cookies are cleared more reliably.
2019-11-27 09:26:21 -05:00
Pierre Gayvallet
7fef618ea6
Add compatibility wrapper for Boom errors thrown from route handler (#51157)
* add wrapErrors method to router

* add RouteRegistrar type

* update generated doc

* add migration example

* rename wrapErrors to handleLegacyErrors
2019-11-26 10:21:49 +01:00
Josh Dover
fff493e54e
Build bundles for all new platform plugins (#51525) 2019-11-25 16:29:35 -06:00
Pierre Gayvallet
1bef133519
Expose whitelisted config values to client-side plugin (#50641)
* 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
2019-11-21 12:37:23 +01:00
Mikhail Shustov
2166044671
remove outdated comment (#50895) 2019-11-18 14:41:15 +01:00
Pierre Gayvallet
e6ea2bf16b
Remove internal platform types exports (#50427)
* remove exports of internal core types

* updates documentation

* rename internal types file
2019-11-13 09:30:38 +01:00