IAnonymousPaths
| APIs for denoting certain paths for not requiring authentication |
| [basePath](./kibana-plugin-core-public.httpsetup.basepath.md) | IBasePath
| APIs for manipulating the basePath on URL segments. See [IBasePath](./kibana-plugin-core-public.ibasepath.md) |
| [delete](./kibana-plugin-core-public.httpsetup.delete.md) | HttpHandler
| Makes an HTTP request with the DELETE method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
+| [externalUrl](./kibana-plugin-core-public.httpsetup.externalurl.md) | IExternalUrl
| |
| [fetch](./kibana-plugin-core-public.httpsetup.fetch.md) | HttpHandler
| Makes an HTTP request. Defaults to a GET request unless overriden. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
| [get](./kibana-plugin-core-public.httpsetup.get.md) | HttpHandler
| Makes an HTTP request with the GET method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
| [head](./kibana-plugin-core-public.httpsetup.head.md) | HttpHandler
| Makes an HTTP request with the HEAD method. See [HttpHandler](./kibana-plugin-core-public.httphandler.md) for options. |
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurl.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurl.md
new file mode 100644
index 0000000000000..5a598281c7be7
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurl.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md)
+
+## IExternalUrl interface
+
+APIs for working with external URLs.
+
+Signature:
+
+```typescript
+export interface IExternalUrl
+```
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [validateUrl(relativeOrAbsoluteUrl)](./kibana-plugin-core-public.iexternalurl.validateurl.md) | Determines if the provided URL is a valid location to send users. Validation is based on the configured allow list in kibana.yml.If the URL is valid, then a URL will be returned. Otherwise, this will return null. |
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurl.validateurl.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurl.validateurl.md
new file mode 100644
index 0000000000000..466d7cfebf547
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurl.validateurl.md
@@ -0,0 +1,26 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md) > [validateUrl](./kibana-plugin-core-public.iexternalurl.validateurl.md)
+
+## IExternalUrl.validateUrl() method
+
+Determines if the provided URL is a valid location to send users. Validation is based on the configured allow list in kibana.yml.
+
+If the URL is valid, then a URL will be returned. Otherwise, this will return null.
+
+Signature:
+
+```typescript
+validateUrl(relativeOrAbsoluteUrl: string): URL | null;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| relativeOrAbsoluteUrl | string
| |
+
+Returns:
+
+`URL | null`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.allow.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.allow.md
new file mode 100644
index 0000000000000..ec7129a43b99a
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.allow.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) > [allow](./kibana-plugin-core-public.iexternalurlpolicy.allow.md)
+
+## IExternalUrlPolicy.allow property
+
+Indicates if this policy allows or denies access to the described destination.
+
+Signature:
+
+```typescript
+allow: boolean;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.host.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.host.md
new file mode 100644
index 0000000000000..5551d52cc1226
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.host.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) > [host](./kibana-plugin-core-public.iexternalurlpolicy.host.md)
+
+## IExternalUrlPolicy.host property
+
+Optional host describing the external destination. May be combined with `protocol`. Required if `protocol` is not defined.
+
+Signature:
+
+```typescript
+host?: string;
+```
+
+## Example
+
+
+```ts
+// allows access to all of google.com, using any protocol.
+allow: true,
+host: 'google.com'
+
+```
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.md
new file mode 100644
index 0000000000000..a87dc69d79e23
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md)
+
+## IExternalUrlPolicy interface
+
+A policy describing whether access to an external destination is allowed.
+
+Signature:
+
+```typescript
+export interface IExternalUrlPolicy
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [allow](./kibana-plugin-core-public.iexternalurlpolicy.allow.md) | boolean
| Indicates if this policy allows or denies access to the described destination. |
+| [host](./kibana-plugin-core-public.iexternalurlpolicy.host.md) | string
| Optional host describing the external destination. May be combined with protocol
. Required if protocol
is not defined. |
+| [protocol](./kibana-plugin-core-public.iexternalurlpolicy.protocol.md) | string
| Optional protocol describing the external destination. May be combined with host
. Required if host
is not defined. |
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.protocol.md b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.protocol.md
new file mode 100644
index 0000000000000..67b9b439a54f6
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.iexternalurlpolicy.protocol.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) > [protocol](./kibana-plugin-core-public.iexternalurlpolicy.protocol.md)
+
+## IExternalUrlPolicy.protocol property
+
+Optional protocol describing the external destination. May be combined with `host`. Required if `host` is not defined.
+
+Signature:
+
+```typescript
+protocol?: string;
+```
+
+## Example
+
+
+```ts
+// allows access to all destinations over the `https` protocol.
+allow: true,
+protocol: 'https'
+
+```
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md
index 5f656b9ca510d..a3df5d30137df 100644
--- a/docs/development/core/public/kibana-plugin-core-public.md
+++ b/docs/development/core/public/kibana-plugin-core-public.md
@@ -73,6 +73,8 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [IAnonymousPaths](./kibana-plugin-core-public.ianonymouspaths.md) | APIs for denoting paths as not requiring authentication |
| [IBasePath](./kibana-plugin-core-public.ibasepath.md) | APIs for manipulating the basePath on URL segments. |
| [IContextContainer](./kibana-plugin-core-public.icontextcontainer.md) | An object that handles registration of context providers and configuring handlers with context. |
+| [IExternalUrl](./kibana-plugin-core-public.iexternalurl.md) | APIs for working with external URLs. |
+| [IExternalUrlPolicy](./kibana-plugin-core-public.iexternalurlpolicy.md) | A policy describing whether access to an external destination is allowed. |
| [IHttpFetchError](./kibana-plugin-core-public.ihttpfetcherror.md) | |
| [IHttpInterceptController](./kibana-plugin-core-public.ihttpinterceptcontroller.md) | Used to halt a request Promise chain in a [HttpInterceptor](./kibana-plugin-core-public.httpinterceptor.md). |
| [IHttpResponseInterceptorOverrides](./kibana-plugin-core-public.ihttpresponseinterceptoroverrides.md) | Properties that can be returned by HttpInterceptor.request to override the response. |
diff --git a/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md b/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md
index 0838572f26f49..a50df950628b3 100644
--- a/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md
+++ b/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md
@@ -8,5 +8,5 @@
Signature:
```typescript
-export declare type AppenderConfigType = ConsoleAppenderConfig | FileAppenderConfig | LegacyAppenderConfig;
+export declare type AppenderConfigType = ConsoleAppenderConfig | FileAppenderConfig | LegacyAppenderConfig | RollingFileAppenderConfig;
```
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.md
new file mode 100644
index 0000000000000..8df4db4aa9b5e
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md)
+
+## IExternalUrlConfig interface
+
+External Url configuration for use in Kibana.
+
+Signature:
+
+```typescript
+export interface IExternalUrlConfig
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [policy](./kibana-plugin-core-server.iexternalurlconfig.policy.md) | IExternalUrlPolicy[]
| A set of policies describing which external urls are allowed. |
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.policy.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.policy.md
new file mode 100644
index 0000000000000..b5b6f07038076
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlconfig.policy.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md) > [policy](./kibana-plugin-core-server.iexternalurlconfig.policy.md)
+
+## IExternalUrlConfig.policy property
+
+A set of policies describing which external urls are allowed.
+
+Signature:
+
+```typescript
+readonly policy: IExternalUrlPolicy[];
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.allow.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.allow.md
new file mode 100644
index 0000000000000..e0c140409dcf0
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.allow.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) > [allow](./kibana-plugin-core-server.iexternalurlpolicy.allow.md)
+
+## IExternalUrlPolicy.allow property
+
+Indicates of this policy allows or denies access to the described destination.
+
+Signature:
+
+```typescript
+allow: boolean;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.host.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.host.md
new file mode 100644
index 0000000000000..e65de074f1578
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.host.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) > [host](./kibana-plugin-core-server.iexternalurlpolicy.host.md)
+
+## IExternalUrlPolicy.host property
+
+Optional host describing the external destination. May be combined with `protocol`. Required if `protocol` is not defined.
+
+Signature:
+
+```typescript
+host?: string;
+```
+
+## Example
+
+
+```ts
+// allows access to all of google.com, using any protocol.
+allow: true,
+host: 'google.com'
+
+```
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.md
new file mode 100644
index 0000000000000..8e3658a10ed81
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.md
@@ -0,0 +1,22 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md)
+
+## IExternalUrlPolicy interface
+
+A policy describing whether access to an external destination is allowed.
+
+Signature:
+
+```typescript
+export interface IExternalUrlPolicy
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [allow](./kibana-plugin-core-server.iexternalurlpolicy.allow.md) | boolean
| Indicates of this policy allows or denies access to the described destination. |
+| [host](./kibana-plugin-core-server.iexternalurlpolicy.host.md) | string
| Optional host describing the external destination. May be combined with protocol
. Required if protocol
is not defined. |
+| [protocol](./kibana-plugin-core-server.iexternalurlpolicy.protocol.md) | string
| Optional protocol describing the external destination. May be combined with host
. Required if host
is not defined. |
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.protocol.md b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.protocol.md
new file mode 100644
index 0000000000000..00c5d05eb0cc4
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.iexternalurlpolicy.protocol.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) > [protocol](./kibana-plugin-core-server.iexternalurlpolicy.protocol.md)
+
+## IExternalUrlPolicy.protocol property
+
+Optional protocol describing the external destination. May be combined with `host`. Required if `host` is not defined.
+
+Signature:
+
+```typescript
+protocol?: string;
+```
+
+## Example
+
+
+```ts
+// allows access to all destinations over the `https` protocol.
+allow: true,
+protocol: 'https'
+
+```
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.md b/docs/development/core/server/kibana-plugin-core-server.md
index 1a4209ff87c5b..269db90c4db9b 100644
--- a/docs/development/core/server/kibana-plugin-core-server.md
+++ b/docs/development/core/server/kibana-plugin-core-server.md
@@ -94,6 +94,8 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [IContextContainer](./kibana-plugin-core-server.icontextcontainer.md) | An object that handles registration of context providers and configuring handlers with context. |
| [ICspConfig](./kibana-plugin-core-server.icspconfig.md) | CSP configuration for use in Kibana. |
| [ICustomClusterClient](./kibana-plugin-core-server.icustomclusterclient.md) | See [IClusterClient](./kibana-plugin-core-server.iclusterclient.md) |
+| [IExternalUrlConfig](./kibana-plugin-core-server.iexternalurlconfig.md) | External Url configuration for use in Kibana. |
+| [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) | A policy describing whether access to an external destination is allowed. |
| [IKibanaResponse](./kibana-plugin-core-server.ikibanaresponse.md) | A response data object, expected to returned as a result of [RequestHandler](./kibana-plugin-core-server.requesthandler.md) execution |
| [IKibanaSocket](./kibana-plugin-core-server.ikibanasocket.md) | A tiny abstraction for TCP socket. |
| [ImageValidation](./kibana-plugin-core-server.imagevalidation.md) | |
diff --git a/package.json b/package.json
index 513d9b907c96c..1295217b4bcbe 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,6 @@
"test:jest": "node scripts/jest",
"test:jest_integration": "node scripts/jest_integration",
"test:mocha": "node scripts/mocha",
- "test:mocha:coverage": "grunt test:mochaCoverage",
"test:ftr": "node scripts/functional_tests",
"test:ftr:server": "node scripts/functional_tests_server",
"test:ftr:runner": "node scripts/functional_test_runner",
@@ -85,6 +84,7 @@
"**/@types/hapi__hapi": "^18.2.6",
"**/@types/hapi__mimos": "4.1.0",
"**/@types/node": "14.14.7",
+ "**/chokidar": "^3.4.3",
"**/cross-fetch/node-fetch": "^2.6.1",
"**/deepmerge": "^4.2.2",
"**/fast-deep-equal": "^3.1.1",
@@ -175,7 +175,7 @@
"chalk": "^4.1.0",
"check-disk-space": "^2.1.0",
"cheerio": "0.22.0",
- "chokidar": "^3.4.2",
+ "chokidar": "^3.4.3",
"chroma-js": "^1.4.1",
"classnames": "2.2.6",
"color": "1.0.3",
@@ -354,7 +354,7 @@
"@cypress/webpack-preprocessor": "^5.4.11",
"@elastic/apm-rum": "^5.6.1",
"@elastic/apm-rum-react": "^1.2.5",
- "@elastic/charts": "24.3.0",
+ "@elastic/charts": "24.4.0",
"@elastic/eslint-config-kibana": "link:packages/elastic-eslint-config-kibana",
"@elastic/eslint-plugin-eui": "0.0.2",
"@elastic/github-checks-reporter": "0.0.20b3",
@@ -674,7 +674,6 @@
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-watch": "^1.1.0",
"grunt-peg": "^2.0.1",
- "grunt-run": "0.8.1",
"gulp": "4.0.2",
"gulp-babel": "^8.0.0",
"gulp-sourcemaps": "2.6.5",
diff --git a/packages/kbn-logging/src/appenders.ts b/packages/kbn-logging/src/appenders.ts
index 346d3d6dd1068..a82a95b6b0f8a 100644
--- a/packages/kbn-logging/src/appenders.ts
+++ b/packages/kbn-logging/src/appenders.ts
@@ -35,5 +35,5 @@ export interface Appender {
* @internal
*/
export interface DisposableAppender extends Appender {
- dispose: () => void;
+ dispose: () => void | Promise
@@ -82,7 +82,7 @@ describe('markdown vis controller', () => {
- {i18n.translate(
- 'xpack.apm.serviceOverview.dependenciesTableTitle',
- {
- defaultMessage: 'Dependencies',
- }
- )}
-
-
+ {i18n.translate(
+ 'xpack.apm.serviceOverview.dependenciesTableTitle',
+ {
+ defaultMessage: 'Dependencies',
+ }
+ )}
+
+
+ {i18n.translate('xpack.infra.metrics.nodeDetails.processesHeader', {
+ defaultMessage: 'Top processes',
+ })}{' '}
+
+