Commit graph

396 commits

Author SHA1 Message Date
Mike Côté
4dd0205c11
Add support for decorating and handling 429 errors with the saved objects client (#75664)
* Add support for decorating 429 errors in the saved objects client

* Update the docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-08-24 10:16:54 -04:00
Xavier Mouligneau
6dbc4be8f7
[SECURITY SOLUTION] Add our first search strategy for all host query (#75439)
* add security solution search strategy on server side

* get security solution search strategy in the public app for all host

* fix types

* fix Check core API changes

* thank you cypress test

* Remove any by the right type IESearchRequest

Co-authored-by: Lukas Olson <olson.lukas@gmail.com>

* add translation and filter error when we abort the query

* pr review

* fix translation

* review II

* fix merge issue

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Lukas Olson <olson.lukas@gmail.com>
2020-08-22 08:59:14 -04:00
Joe Portner
4dd5d63484
Change response for Saved Objects share/unshare operations (#74995) 2020-08-20 08:35:33 -04:00
Josh Dover
51a80c61a0
Add support for reading request ID from X-Opaque-Id header (#71019)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-08-19 15:41:12 -06:00
Gidi Meir Morris
9698a0720d
[Saved objects] Add support for version on create & bulkCreate when overwriting a document (#75172)
Adds support for `version` one the SavedObjectsClient's create api.
This sallows us to retain Optimistic concurrency control when using create to overwrite an existing document.
2020-08-19 16:10:33 +01:00
Brandon Kobel
83bc5004e3
Allow routes to specify the idle socket timeout in addition to the payload timeout (#73730)
* Route options timeout -> timeout.payload

* timeout.idleSocket can now be specified per route

* Removing nested ternary

* Fixing integration tests

* Trying to actually fix the integration tests. Existing tests are hitting
idle socket timeout, not the payload timeout

* Fixing payload post timeout integration test

* Fixing PUT and DELETE payload sending too long tests

* Fixing type-script errors

* GET routes can't specify the payload timeout, they can't accept payloads

* Removing some redundancy in the tests

* Adding 'Transfer-Encoding: chunked' to the POST test

* Fixing POST/GET/PUT quick tests

* Adding idleSocket timeout test

* Removing unnecessary `isSafeMethod` call

* Updating documentation

* Removing PUT/DELETE integration tests

* Working around the HapiJS bug

* Deleting unused type import

* The socket can be undefined...

This occurs when using @hapi/shot directly or indirectly via
Server.inject. In these scenarios, there isn't a socket. This can also
occur when a "fake request" is used by the hacky background jobs:
Reporting and Alerting...

* Update src/core/server/http/http_server.ts

Co-authored-by: Josh Dover <me@joshdover.com>

* Adding payload timeout functional tests

* Adding idle socket timeout functional tests

* Adding better comments, using ?? instead of ||

* Fixing the plugin fixture TS

* Fixing some typescript errors

* Fixing plugin fixture tsconfig.json

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Josh Dover <me@joshdover.com>
2020-08-18 10:46:08 -07:00
Stratoula Kalafateli
198806baef
Timelion app deprecation warning (#74660)
* wip deprecation notice on timelion app

* Add a deprecation notice on timelion app

* Minor, add visualize and timelion on the docLinks

* Chage the layout a bit

* Change the deprecation notice message

* Change the deprecation notice message

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-08-18 11:18:41 +03:00
Pierre Gayvallet
57a802c43f
expose es config on es setup contract (#73055)
* expose es config on es setup contract

* move config$ back to legacy
2020-08-17 21:08:27 +02:00
Caroline Horn
5b64a4cdfe
Empty index patterns page re-design (#68819)
Empty index patterns page re-design
2020-08-12 15:58:16 -05:00
Josh Dover
10cc600d5c
Fix aborted$ event and add completed$ event to KibanaRequest (#73898) 2020-07-31 09:19:43 -06:00
Mikhail Shustov
585d58c202
[KP] Expose new es client (#73651)
* mark legacy ES client types as deprecated

* expose es client to plugins and update mocks

* ElasticSearchClientMock --> ElasticsearchClientMock

* expose es client mocks

* expose es client via RequestHandlerContext

* convert test/plugin_functional/config into ts

* convert top_nav test into ts

* add an integration test for the es client

* update comments to refer to the new es client

* fix import paths. do not use extensions

temp

* update docs

* fix other refs

* add test for a custom client

* fix context

* add test for scoped client

* update docs
2020-07-30 19:12:37 +02:00
Frank Hassanabad
b399fb03d1
[SIEM][Detection Engine][Lists] Adds the ability to change the timeout limits from 10 seconds for loads for imports (#73103)
## Summary

By default the upload time limit for payloads is 10 seconds. This is really too short and we were getting internal QA bug reports that uploads are timing out on large value list importing. This PR adds the plumbing and unit tests to make the timeout configurable for routes.

* Adds a single timeout option for routes and then normalizes that through Hapi for the socket, payload, and server timeouts.
* Adds unit tests which test the various options
* Adds integration tests which test the various options
* Adds some NOTES about where there are odd behaviors/bugs within Hapi around validations and the timeouts
* Adds a configurable 5 minute timeout to the large value lists route

**Manual testing of the feature**

You can manually test this by adding a configurable option to your chrome network throttle like so below where you throttle upload by some configurable amount. I chose to use 300 kbs/s upload
<img width="556" alt="Screen Shot 2020-07-23 at 11 26 01 AM" src="https://user-images.githubusercontent.com/1151048/88318015-5ab3f700-ccd7-11ea-9d9b-7e3649ec65de.png">

And then run an import of large value lists using a large enough file that it will exceed 5 minutes:
![screen-shot-upload](https://user-images.githubusercontent.com/1151048/88318584-28ef6000-ccd8-11ea-90a1-8ca4aafabcb4.png)

After 5 minutes you should see this message within your server side messages if you have configured your kibana.dev.yml to allow for these messages:

```ts
server  respons [10:52:31.377] [access:lists-all] POST /api/lists/items/_import?type=keyword 408 318292ms - 9.0B
``` 

Note that it should show you that it is trying to return a `408` after `318292ms` the timeout period. Sometimes you will get the 408 in the browser and sometimes the browser actually will not respect the 408 and continue staying in a pending state forever. This seems to be browser side issue and not a client/user land issue. If you get the browser message it will be this error toaster

![timeout-message](https://user-images.githubusercontent.com/1151048/88318760-74a20980-ccd8-11ea-9b7b-0d27f8eb6bce.png)

### Checklist

- [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md)
- [x] [Documentation](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#writing-documentation) was added for features that require explanation or tutorials
- [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios

### For maintainers

- [x] This was checked for breaking API changes and was [labeled appropriately](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#release-notes-process)
2020-07-28 17:47:41 -06:00
Mikhail Shustov
4ede075681
[KP] fix doc generation for platform code (#73407)
* fix doc generation for platform code

* terminate process if type build failed

* update types
2020-07-28 16:51:23 +02:00
Pierre Gayvallet
005a1121cc
use KibanaClient interface instead of Client for new client interface (#72388)
* use KibanaClient interface instead of Client

* add back helpers to ElasticsearchClient interface

* use TransportRequestPromise for transport.request

* update generated doc
2020-07-21 09:44:25 +02:00
Larry Gregory
692db4f172
Search across spaces (#67644)
Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-07-13 20:10:17 -04:00
Mikhail Shustov
0ea414c13a
[KP] Separate onPreAuth & onPreRouting http interceptors (#70775)
Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
Co-authored-by: Josh Dover <me@joshdover.com>
2020-07-13 13:26:34 -06:00
Spencer
fa93a81ba6
[kbn/optimizer] implement "requiredBundles" property of KP plugins (#70911)
Co-authored-by: Josh Dover <me@joshdover.com>
Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-07-09 18:43:17 -07:00
Rudolf Meijering
77a97fc892
Disable fields added from unknown saved object types (#70951)
* Allow disabled: false SO field mappings

* Disable fields for unknown SO types

* Update everyone else's docs ;)

* Address review comments

* Add unit tests for disableUnknownTypeMappingFields()
2020-07-09 13:45:11 +02:00
Mikhail Shustov
aeff8c154b
[Audit Logging] Add AuditTrail service (#69278)
* add generic audit_trail service in core

* expose auditTraik service to plugins

* add auditTrail x-pack plugin

* fix type errors

* update mocks

* expose asScoped interface via start. auditor via  request context

* use type from audit trail service

* wrap getActiveSpace in safeCall only. it throws exception for non-authz

* pass message to log explicitly

* update docs

* create one auditor per request

* wire es client up to auditor

* update docs

* withScope accepts only one scope

* use scoped client in context for callAsInternalUser

* use auditor in scoped cluster client

* adopt auditTrail plugin to new interface. configure log from config

* do not log audit events in console by default

* add audit trail functional tests

* cleanup

* add example

* add mocks for spaces plugin

* add unit tests

* update docs

* test description

* Apply suggestions from code review

apply @jportner suggestions

Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>

* add unit tests

* more robust tests

* make spaces optional

* address comments

* update docs

* fix WebStorm refactoring

Co-authored-by: Joe Portner <5295965+jportner@users.noreply.github.com>
2020-07-07 21:16:39 +02:00
Pierre Gayvallet
e7c54d3684
Rename HttpServerInfo.host to hostname (#70792)
* rename host to hostname

* update generated doc

* adapt tests

* fix types
2020-07-07 16:54:39 +02:00
Rudolf Meijering
c6867197ff
Allow Saved Object type mappings to set a field's doc_values property (#70433)
* Allow doc_values to be disabled

* Make doc_values optional

* doc_values type for CoreFieldMapping

* doc_values not doc_value

* Update docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-07-02 15:50:43 +02:00
Pierre Gayvallet
1cfc9356bd
add getVisibleTypes API to SO type registry (#70559)
* add getVisibleTypes API

* doc nit

* fix mocking in tests
2020-07-02 13:17:33 +02:00
Mikhail Shustov
159369b719
Use ts-expect-error in platform code (#69883)
* ts-ignore --> ts-expect-error

* fix error with mutable array

* fix errors in consumers code

* update SOM

* fix FeatureConfig & Feature compatibility

* do not re-export from code. it breaks built version

* update docs

* add eslint rule for platform team code

* remove test. this is covered by ts-expect-error in unit tests

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-30 07:37:42 +02:00
Pierre Gayvallet
fe1c508d8d
Move and rename legacy elasticsearch client (#69797)
* move last snapshot to inline

* move legacy files to legacy subfolder

* move request types out of legacy

* export Headers from http instead of elasticsearch

* renaming - first pass

* renaming - second pass

* fix core mocks

* adapt new calls

* update generated doc

* fix IT test mocks

* fix new usages
2020-06-29 17:43:31 +02:00
Pierre Gayvallet
7e5cff4be9
[GS] add application result provider (#68488)
* add application result provider

* remove empty contracts & cache searchable apps

* fix types
2020-06-29 15:17:00 +02:00
Mikhail Shustov
d511bb2c9b
move Metrics API to start (#69787)
* move metrics to start

* update plugins accordingly

* update docs

* update legacy code

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-26 13:39:46 +02:00
Rudolf Meijering
61a69f3825
Use TS to discourage SO mappings with dynamic: false / dynamic: true (#69927)
* Use TS to discourage SO mappings with dynamic

* Some unrelated docs changes
2020-06-25 21:44:57 +02:00
Pierre Gayvallet
d173d56447
add the exactRoute property to app registration (#69772)
* add the `exactRoute` property

* add missing doc file

* nits on jsdoc
2020-06-25 11:19:12 +02:00
Mikhail Shustov
778136f3bf
expose DocLinks API from start only (#68745)
* exose DocLinks API from start only

* update docs

* fix type errors

* update docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-24 11:42:54 +02:00
Josh Dover
200957bb63
Add plugin API for customizing the logging configuration (#68704) 2020-06-23 14:45:47 -06:00
Pierre Gayvallet
9e8448fc06
HttpService: duplicate some APIs from setup to start and clean mocks. (#69021)
* add apis to http start contract and clean mocks

* add apis to http start contract and clean mocks

* add `getStartContract` method

* fix new calls

* remove isTlsEnabled

* deprecates HttpServiceSetup.auth
2020-06-18 15:55:47 +02:00
Pierre Gayvallet
d2006ea8a0
savedObjects: add score to repository.find results (#68894)
* add `score` to repository.find results

* update generated doc

* fix FTR result set

* remove score from exports

* fix FTR for find API

* fix label

* fix tsdoc
2020-06-18 11:39:25 +02:00
Vadim Dalecky
b8e6b54428
Drilldown docs 2 (#69375)
* docs: ✏️ add drilldown user docs link to REAMDE

* feat: 🎸 wire drilldown docs link into <HelloBar> component

* feat: 🎸 set new page attributes on drilldown docs link

* feat: 🎸 add external prop to link to show icon

* fix: 🐛 remove rel= attribute

* fix: 🐛 add TypeScript type for drilldown docLink
2020-06-17 17:00:22 +02:00
Spencer
7e328417ab
[kbn/optimizer] share all plugin bundles (#68986)
Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-15 22:15:31 -07:00
Mikhail Shustov
8cdc2a1493
Make SameSite cookie's attribute configurable (#68108)
* support 'SameSite: None' in http service

* add tests

* allow to configure SameSite attribute for security cookie

* update docs

* fix test suite name

* remove false from samesite options

* document xpack.security.sameSiteCookies

* address comments

* address comments

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-12 10:02:10 +02:00
Pierre Gayvallet
74ceb7002a
add replace option to navigateToApp API (#68700)
* add `replace` option to `navigateToApp`

* use `unknown` type for state

* add test when `replace` is false
2020-06-11 19:31:45 +02:00
Pierre Gayvallet
5f00d26ff3
add preference field to SavedObjectsFindOptions (#68620) 2020-06-11 12:57:59 +02:00
Mikhail Shustov
f593455a62
Bump TypeScript to v3.9 (#67666)
* add babel support for export type

* bump ts version to 3.9.3

* rebuild kbn-pm

* bump typescript-eslint

* fix error in security plugin UI

* check export as works

* fix app migration type

* use correct test subj attribute

* fix errors from the old PR

* embeddable is already passed in props

* explicitly define type of fetch

* add some types for viz

* fix fetch type p.2

* add null to allow spreading without type errors due to override

* add type guard to fix type error

* cast to any, since cannot assign unknown

* add timestamp to known types

* fix type error in fetch

* fix type error. id is always defined in attibutes

* declare a type

* move ts-ignore to the lines with errors

* declare tuple type explicitly

* mute type error. cannot assign unknown

* fix errors. id is always defined

* fix error type

* fix override errors. id is always defined

* fix error. extends any doesn't work anymore

* fix type error. type is always defined

* env doesn't always contain values

* fix type error

* cast to string

* add: logs is already declared in getNodeLogsUrl

* state is already  passed in props

* fix some errors in timelion

* number of fragments is always defined

* 'absolute' is not just string, but value

* TEMP: option is always defined

* always true if cast to promise manually

* both props are always defined

* explicitly define returned SO type

* workaround type

* bump tslib to be compatible with ts v3.9

* test private property

* rebuild kbn-pm

* Fix ts errors for beats management

* Fix type inference broken by the TS 3.9 upgrade

* Fix ingest manager saved object attributes typings

* Fix TS errors in cross_cluster_replication and index_management.

* Fix TS error in Watcher.

* roll back colorRange wrong type

* fix security plugin types

* TypeScript 3.9 fixes for APM

* Fix ColorRange types.

* fix actions & alerts errors. ByGidi

* fix lists error

* More APM fixes

* Remove paramaterization from `removeEmpty in agent config SettingsPage component (it's only used there and doesn't need to be parameterized.)
* Add option chain for case in registerTransactionDurationAlertType
* Cast `overallValue` in transform_metrics_chart
* Use more specific type for custom link filters
* Add more option chaining for local UI filters buckets response
* Remove unused parameters from routes
* Fix getProjection type parameter
* Use destructuring in serviceNodesLocalFiltersRoute to hide `never` error
* Revert `UnionToIntersection` change in `AggregationResponseMap`

Fixes #67804.

* fix platform type error

* Fix visualizations types.

* Fix data plugin types.

* bump TS version to 3.9.5

* Fix telemetry TS errors

* Fix dashboard code

* Adding Canvas Fixes for TS 3.9

* Fix case and security_solution types

* roll back to the old export syntax. new one might cause problems in api-extractor

* update docs

* Fix timelion code

* Fix meta

* Fix types

* fix type errors om ingest_manager

* bump babel deps

* enable private props & methods syntax

* update kbn-pm dist

* whitelist 0BSD license

* use @babel/plugin-proposal-private-methods in default set as well

* disable new babel plugins

* Revert "disable new babel plugins"

This reverts commit 04d959431d.

* cleanup security_solution types

* Fixes type error for newer TypeScript

* update docs

Co-authored-by: Nicolas Chaulet <nicolas.chaulet@elastic.co>
Co-authored-by: Felix Stürmer <stuermer@weltenwort.de>
Co-authored-by: CJ Cenizal <cj@cenizal.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
Co-authored-by: Nathan L Smith <smith@nlsmith.com>
Co-authored-by: Walter Rafelsberger <walter@elastic.co>
Co-authored-by: Luke Elmers <luke.elmers@elastic.co>
Co-authored-by: Alejandro Fernández Haro <alejandro.haro@elastic.co>
Co-authored-by: Tim Roes <tim.roes@elastic.co>
Co-authored-by: Clint Andrew Hall <clint.hall@elastic.co>
Co-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>
Co-authored-by: FrankHassanabad <frank.hassanabad@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-06-11 10:04:09 +02:00
Josh Dover
f090775280
Add url overflow handling to KP (#67899) 2020-06-08 15:03:41 -06:00
Constance
43c5466801
Update documentation examples of AppMountParams to AppMountParameters (#68042) 2020-06-03 10:17:15 -07:00
Pierre Gayvallet
a091124fab
Move application.applications$ to public contract (#67463)
* expose applications$ on public contract

* review comments
2020-06-02 15:15:21 +02:00
Mikhail Shustov
53b95424fe
Deprecate es API exposed from setup contract (#67596)
* move elasticsearch client under legacy namespace

* update mocks and tests

* update platform code

* update legacy code

* update plugins using elasticsearch setup API

* update request handler context

* update docs

* rename remaining places

* address comments

* fix merge conflict error
2020-06-01 16:16:44 +02:00
Michail Yasonik
fce016ccdb
Refactoring nav links and header components (#66685)
Co-authored-by: spalger <spalger@users.noreply.github.com>
2020-05-29 09:26:00 -05:00
Ryder Timberlake
7071fac36a
Fix typos (#66984)
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-05-27 13:44:41 -06:00
Mikhail Shustov
4040c3090b
Mark elasticsearch client exposed via request context as deprecated (#67319)
* add legacy prefix for es client exposed via request handler context

* update src/plugins

* update core mocks and tests

* update test plugins

* update xpack plugins

* include x-pack/mocks.ts

* update after master merge

* update docs

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-05-27 19:00:16 +02:00
Pierre Gayvallet
54e79cb4b4
Add application.navigateToUrl core API (#67110)
* implement `navigateToUrl` core API

* fix lint

* review comments
2020-05-25 15:01:26 +02:00
Gidi Meir Morris
dfa22d17b9
[Saved Objects] adds support for including hidden types in saved objects client (#66879)
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.
2020-05-20 09:55:02 +01:00
Luke Elmers
7366552a32
[docLinks] Add docLinks to CoreSetup. (#66631)
* Add docLinks to CoreSetup.

* Update generated docs.

* Add inline snapshot for expect test error.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-05-15 08:39:28 -06:00
Mikhail Shustov
4912153ce6
don't register any features in LP. (#65611)
* don't register any features in LP. breaks features value reading in KP

* move test plugin to NP

* fix mappings

* update docs

* migrate another test

* use contstants file for BWC with original code

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2020-05-11 18:43:45 +02:00
Rudolf Meijering
b180fd378d
Log error when encountering corrupt saved object during migration (#65829)
* Log error when encountering corrupt saved object during migration

* Fix documentation

* Fix types
2020-05-11 15:00:48 +02:00