never
| |
+
+Returns:
+
+`never`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.deepfreeze.md b/docs/development/core/public/kibana-plugin-core-public.deepfreeze.md
new file mode 100644
index 0000000000000..7c879b659a852
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.deepfreeze.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [deepFreeze](./kibana-plugin-core-public.deepfreeze.md)
+
+## deepFreeze() function
+
+Apply Object.freeze to a value recursively and convert the return type to Readonly variant recursively
+
+Signature:
+
+```typescript
+export declare function deepFreezeT
| |
+
+Returns:
+
+`RecursiveReadonlyRecord<string, any>
| |
+
+Returns:
+
+`{
+ [key: string]: any;
+}`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.isrelativeurl.md b/docs/development/core/public/kibana-plugin-core-public.isrelativeurl.md
new file mode 100644
index 0000000000000..3c2ffa6340a97
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.isrelativeurl.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [isRelativeUrl](./kibana-plugin-core-public.isrelativeurl.md)
+
+## isRelativeUrl() function
+
+Determine if a url is relative. Any url including a protocol, hostname, or port is not considered relative. This means that absolute \*paths\* are considered to be relative \*urls\*
+
+Signature:
+
+```typescript
+export declare function isRelativeUrl(candidatePath: string): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| candidatePath | string
| |
+
+Returns:
+
+`boolean`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md
index adc87de2b9e7e..c24e4cf908b87 100644
--- a/docs/development/core/public/kibana-plugin-core-public.md
+++ b/docs/development/core/public/kibana-plugin-core-public.md
@@ -27,6 +27,16 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [AppNavLinkStatus](./kibana-plugin-core-public.appnavlinkstatus.md) | Status of the application's navLink. |
| [AppStatus](./kibana-plugin-core-public.appstatus.md) | Accessibility status of an application. |
+## Functions
+
+| Function | Description |
+| --- | --- |
+| [assertNever(x)](./kibana-plugin-core-public.assertnever.md) | Can be used in switch statements to ensure we perform exhaustive checks, see https://www.typescriptlang.org/docs/handbook/advanced-types.html\#exhaustiveness-checking |
+| [deepFreeze(object)](./kibana-plugin-core-public.deepfreeze.md) | Apply Object.freeze to a value recursively and convert the return type to Readonly variant recursively |
+| [getFlattenedObject(rootValue)](./kibana-plugin-core-public.getflattenedobject.md) | Flattens a deeply nested object to a map of dot-separated paths pointing to all primitive values \*\*and arrays\*\* from rootValue
.example: getFlattenedObject({ a: { b: 1, c: \[2,3\] } }) // => { 'a.b': 1, 'a.c': \[2,3\] } |
+| [isRelativeUrl(candidatePath)](./kibana-plugin-core-public.isrelativeurl.md) | Determine if a url is relative. Any url including a protocol, hostname, or port is not considered relative. This means that absolute \*paths\* are considered to be relative \*urls\* |
+| [modifyUrl(url, urlModifier)](./kibana-plugin-core-public.modifyurl.md) | Takes a URL and a function that takes the meaningful parts of the URL as a key-value object, modifies some or all of the parts, and returns the modified parts formatted again as a url.Url Parts sent: - protocol - slashes (does the url have the //) - auth - hostname (just the name of the host, no port or auth information) - port - pathname (the path after the hostname, no query or hash, starts with a slash if there was a path) - query (always an object, even when no query on original url) - hashWhy? - The default url library in node produces several conflicting properties on the "parsed" output. Modifying any of these might lead to the modifications being ignored (depending on which property was modified) - It's not always clear whether to use path/pathname, host/hostname, so this tries to add helpful constraints |
+
## Interfaces
| Interface | Description |
@@ -118,6 +128,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [ToastOptions](./kibana-plugin-core-public.toastoptions.md) | Options available for [IToasts](./kibana-plugin-core-public.itoasts.md) APIs. |
| [UiSettingsParams](./kibana-plugin-core-public.uisettingsparams.md) | UiSettings parameters defined by the plugins. |
| [UiSettingsState](./kibana-plugin-core-public.uisettingsstate.md) | |
+| [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) | We define our own typings because the current version of @types/node declares properties to be optional "hostname?: string". Although, parse call returns "hostname: null \| string". |
| [UserProvidedValues](./kibana-plugin-core-public.userprovidedvalues.md) | Describes the values explicitly set by user. |
## Type Aliases
@@ -139,6 +150,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [ChromeHelpExtensionMenuLink](./kibana-plugin-core-public.chromehelpextensionmenulink.md) | |
| [ChromeNavLinkUpdateableFields](./kibana-plugin-core-public.chromenavlinkupdateablefields.md) | |
| [FatalErrorsStart](./kibana-plugin-core-public.fatalerrorsstart.md) | FatalErrors stop the Kibana Public Core and displays a fatal error screen with details about the Kibana build and the error. |
+| [Freezable](./kibana-plugin-core-public.freezable.md) | |
| [HandlerContextType](./kibana-plugin-core-public.handlercontexttype.md) | Extracts the type of the first argument of a [HandlerFunction](./kibana-plugin-core-public.handlerfunction.md) to represent the type of the context. |
| [HandlerFunction](./kibana-plugin-core-public.handlerfunction.md) | A function that accepts a context object and an optional number of additional arguments. Used for the generic types in [IContextContainer](./kibana-plugin-core-public.icontextcontainer.md) |
| [HandlerParameters](./kibana-plugin-core-public.handlerparameters.md) | Extracts the types of the additional arguments of a [HandlerFunction](./kibana-plugin-core-public.handlerfunction.md), excluding the [HandlerContextType](./kibana-plugin-core-public.handlercontexttype.md). |
diff --git a/docs/development/core/public/kibana-plugin-core-public.modifyurl.md b/docs/development/core/public/kibana-plugin-core-public.modifyurl.md
new file mode 100644
index 0000000000000..b174f733a5c64
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.modifyurl.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [modifyUrl](./kibana-plugin-core-public.modifyurl.md)
+
+## modifyUrl() function
+
+Takes a URL and a function that takes the meaningful parts of the URL as a key-value object, modifies some or all of the parts, and returns the modified parts formatted again as a url.
+
+Url Parts sent: - protocol - slashes (does the url have the //) - auth - hostname (just the name of the host, no port or auth information) - port - pathname (the path after the hostname, no query or hash, starts with a slash if there was a path) - query (always an object, even when no query on original url) - hash
+
+Why? - The default url library in node produces several conflicting properties on the "parsed" output. Modifying any of these might lead to the modifications being ignored (depending on which property was modified) - It's not always clear whether to use path/pathname, host/hostname, so this tries to add helpful constraints
+
+Signature:
+
+```typescript
+export declare function modifyUrl(url: string, urlModifier: (urlParts: URLMeaningfulParts) => Partialstring
| |
+| urlModifier | (urlParts: URLMeaningfulParts) => Partial<URLMeaningfulParts> | void
| |
+
+Returns:
+
+`string`
+
+The modified and reformatted url
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.auth.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.auth.md
new file mode 100644
index 0000000000000..238dd66885896
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.auth.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [auth](./kibana-plugin-core-public.urlmeaningfulparts.auth.md)
+
+## URLMeaningfulParts.auth property
+
+Signature:
+
+```typescript
+auth?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hash.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hash.md
new file mode 100644
index 0000000000000..161e7dc7ebfae
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hash.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [hash](./kibana-plugin-core-public.urlmeaningfulparts.hash.md)
+
+## URLMeaningfulParts.hash property
+
+Signature:
+
+```typescript
+hash?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hostname.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hostname.md
new file mode 100644
index 0000000000000..f1884718337b5
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.hostname.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [hostname](./kibana-plugin-core-public.urlmeaningfulparts.hostname.md)
+
+## URLMeaningfulParts.hostname property
+
+Signature:
+
+```typescript
+hostname?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.md
new file mode 100644
index 0000000000000..2816d4c7df541
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md)
+
+## URLMeaningfulParts interface
+
+We define our own typings because the current version of @types/node declares properties to be optional "hostname?: string". Although, parse call returns "hostname: null \| string".
+
+Signature:
+
+```typescript
+export interface URLMeaningfulParts
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [auth](./kibana-plugin-core-public.urlmeaningfulparts.auth.md) | string | null
| |
+| [hash](./kibana-plugin-core-public.urlmeaningfulparts.hash.md) | string | null
| |
+| [hostname](./kibana-plugin-core-public.urlmeaningfulparts.hostname.md) | string | null
| |
+| [pathname](./kibana-plugin-core-public.urlmeaningfulparts.pathname.md) | string | null
| |
+| [port](./kibana-plugin-core-public.urlmeaningfulparts.port.md) | string | null
| |
+| [protocol](./kibana-plugin-core-public.urlmeaningfulparts.protocol.md) | string | null
| |
+| [query](./kibana-plugin-core-public.urlmeaningfulparts.query.md) | ParsedQuery
| |
+| [slashes](./kibana-plugin-core-public.urlmeaningfulparts.slashes.md) | boolean | null
| |
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.pathname.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.pathname.md
new file mode 100644
index 0000000000000..5ad21f004481c
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.pathname.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [pathname](./kibana-plugin-core-public.urlmeaningfulparts.pathname.md)
+
+## URLMeaningfulParts.pathname property
+
+Signature:
+
+```typescript
+pathname?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.port.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.port.md
new file mode 100644
index 0000000000000..2e70da2f17421
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.port.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [port](./kibana-plugin-core-public.urlmeaningfulparts.port.md)
+
+## URLMeaningfulParts.port property
+
+Signature:
+
+```typescript
+port?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.protocol.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.protocol.md
new file mode 100644
index 0000000000000..cedc7f0b878e3
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.protocol.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [protocol](./kibana-plugin-core-public.urlmeaningfulparts.protocol.md)
+
+## URLMeaningfulParts.protocol property
+
+Signature:
+
+```typescript
+protocol?: string | null;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.query.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.query.md
new file mode 100644
index 0000000000000..a9541efe0882a
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.query.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [query](./kibana-plugin-core-public.urlmeaningfulparts.query.md)
+
+## URLMeaningfulParts.query property
+
+Signature:
+
+```typescript
+query: ParsedQuery;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.slashes.md b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.slashes.md
new file mode 100644
index 0000000000000..cb28a25f9e162
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.urlmeaningfulparts.slashes.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [URLMeaningfulParts](./kibana-plugin-core-public.urlmeaningfulparts.md) > [slashes](./kibana-plugin-core-public.urlmeaningfulparts.slashes.md)
+
+## URLMeaningfulParts.slashes property
+
+Signature:
+
+```typescript
+slashes?: boolean | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.assertnever.md b/docs/development/core/server/kibana-plugin-core-server.assertnever.md
new file mode 100644
index 0000000000000..c13c88df9b9bf
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.assertnever.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [assertNever](./kibana-plugin-core-server.assertnever.md)
+
+## assertNever() function
+
+Can be used in switch statements to ensure we perform exhaustive checks, see https://www.typescriptlang.org/docs/handbook/advanced-types.html\#exhaustiveness-checking
+
+Signature:
+
+```typescript
+export declare function assertNever(x: never): never;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| x | never
| |
+
+Returns:
+
+`never`
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.deepfreeze.md b/docs/development/core/server/kibana-plugin-core-server.deepfreeze.md
new file mode 100644
index 0000000000000..946050bff0585
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.deepfreeze.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [deepFreeze](./kibana-plugin-core-server.deepfreeze.md)
+
+## deepFreeze() function
+
+Apply Object.freeze to a value recursively and convert the return type to Readonly variant recursively
+
+Signature:
+
+```typescript
+export declare function deepFreezeT
| |
+
+Returns:
+
+`RecursiveReadonlyRecord<string, any>
| |
+
+Returns:
+
+`{
+ [key: string]: any;
+}`
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.isrelativeurl.md b/docs/development/core/server/kibana-plugin-core-server.isrelativeurl.md
new file mode 100644
index 0000000000000..bff9eb05419be
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.isrelativeurl.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [isRelativeUrl](./kibana-plugin-core-server.isrelativeurl.md)
+
+## isRelativeUrl() function
+
+Determine if a url is relative. Any url including a protocol, hostname, or port is not considered relative. This means that absolute \*paths\* are considered to be relative \*urls\*
+
+Signature:
+
+```typescript
+export declare function isRelativeUrl(candidatePath: string): boolean;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| candidatePath | string
| |
+
+Returns:
+
+`boolean`
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.md b/docs/development/core/server/kibana-plugin-core-server.md
index a91a5bec988b7..14e01fda3d287 100644
--- a/docs/development/core/server/kibana-plugin-core-server.md
+++ b/docs/development/core/server/kibana-plugin-core-server.md
@@ -41,8 +41,13 @@ The plugin integrates with the core system via lifecycle events: `setup`
| Function | Description |
| --- | --- |
+| [assertNever(x)](./kibana-plugin-core-server.assertnever.md) | Can be used in switch statements to ensure we perform exhaustive checks, see https://www.typescriptlang.org/docs/handbook/advanced-types.html\#exhaustiveness-checking |
+| [deepFreeze(object)](./kibana-plugin-core-server.deepfreeze.md) | Apply Object.freeze to a value recursively and convert the return type to Readonly variant recursively |
| [exportSavedObjectsToStream({ types, objects, search, savedObjectsClient, exportSizeLimit, includeReferencesDeep, excludeExportDetails, namespace, })](./kibana-plugin-core-server.exportsavedobjectstostream.md) | Generates sorted saved object stream to be used for export. See the [options](./kibana-plugin-core-server.savedobjectsexportoptions.md) for more detailed information. |
+| [getFlattenedObject(rootValue)](./kibana-plugin-core-server.getflattenedobject.md) | Flattens a deeply nested object to a map of dot-separated paths pointing to all primitive values \*\*and arrays\*\* from rootValue
.example: getFlattenedObject({ a: { b: 1, c: \[2,3\] } }) // => { 'a.b': 1, 'a.c': \[2,3\] } |
| [importSavedObjectsFromStream({ readStream, objectLimit, overwrite, savedObjectsClient, supportedTypes, namespace, })](./kibana-plugin-core-server.importsavedobjectsfromstream.md) | Import saved objects from given stream. See the [options](./kibana-plugin-core-server.savedobjectsimportoptions.md) for more detailed information. |
+| [isRelativeUrl(candidatePath)](./kibana-plugin-core-server.isrelativeurl.md) | Determine if a url is relative. Any url including a protocol, hostname, or port is not considered relative. This means that absolute \*paths\* are considered to be relative \*urls\* |
+| [modifyUrl(url, urlModifier)](./kibana-plugin-core-server.modifyurl.md) | Takes a URL and a function that takes the meaningful parts of the URL as a key-value object, modifies some or all of the parts, and returns the modified parts formatted again as a url.Url Parts sent: - protocol - slashes (does the url have the //) - auth - hostname (just the name of the host, no port or auth information) - port - pathname (the path after the hostname, no query or hash, starts with a slash if there was a path) - query (always an object, even when no query on original url) - hashWhy? - The default url library in node produces several conflicting properties on the "parsed" output. Modifying any of these might lead to the modifications being ignored (depending on which property was modified) - It's not always clear whether to use path/pathname, host/hostname, so this tries to add helpful constraints |
| [resolveSavedObjectsImportErrors({ readStream, objectLimit, retries, savedObjectsClient, supportedTypes, namespace, })](./kibana-plugin-core-server.resolvesavedobjectsimporterrors.md) | Resolve and return saved object import errors. See the [options](./kibana-plugin-core-server.savedobjectsresolveimporterrorsoptions.md) for more detailed informations. |
## Interfaces
@@ -186,6 +191,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [UiSettingsParams](./kibana-plugin-core-server.uisettingsparams.md) | UiSettings parameters defined by the plugins. |
| [UiSettingsServiceSetup](./kibana-plugin-core-server.uisettingsservicesetup.md) | |
| [UiSettingsServiceStart](./kibana-plugin-core-server.uisettingsservicestart.md) | |
+| [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) | We define our own typings because the current version of @types/node declares properties to be optional "hostname?: string". Although, parse call returns "hostname: null \| string". |
| [UserProvidedValues](./kibana-plugin-core-server.userprovidedvalues.md) | Describes the values explicitly set by user. |
| [UuidServiceSetup](./kibana-plugin-core-server.uuidservicesetup.md) | APIs to access the application's instance uuid. |
@@ -212,6 +218,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [ConfigPath](./kibana-plugin-core-server.configpath.md) | |
| [DestructiveRouteMethod](./kibana-plugin-core-server.destructiveroutemethod.md) | Set of HTTP methods changing the state of the server. |
| [ElasticsearchClientConfig](./kibana-plugin-core-server.elasticsearchclientconfig.md) | |
+| [Freezable](./kibana-plugin-core-server.freezable.md) | |
| [GetAuthHeaders](./kibana-plugin-core-server.getauthheaders.md) | Get headers to authenticate a user against Elasticsearch. |
| [GetAuthState](./kibana-plugin-core-server.getauthstate.md) | Gets authentication state for a request. Returned by auth
interceptor. |
| [HandlerContextType](./kibana-plugin-core-server.handlercontexttype.md) | Extracts the type of the first argument of a [HandlerFunction](./kibana-plugin-core-server.handlerfunction.md) to represent the type of the context. |
diff --git a/docs/development/core/server/kibana-plugin-core-server.modifyurl.md b/docs/development/core/server/kibana-plugin-core-server.modifyurl.md
new file mode 100644
index 0000000000000..fc0bc354a3ca3
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.modifyurl.md
@@ -0,0 +1,31 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [modifyUrl](./kibana-plugin-core-server.modifyurl.md)
+
+## modifyUrl() function
+
+Takes a URL and a function that takes the meaningful parts of the URL as a key-value object, modifies some or all of the parts, and returns the modified parts formatted again as a url.
+
+Url Parts sent: - protocol - slashes (does the url have the //) - auth - hostname (just the name of the host, no port or auth information) - port - pathname (the path after the hostname, no query or hash, starts with a slash if there was a path) - query (always an object, even when no query on original url) - hash
+
+Why? - The default url library in node produces several conflicting properties on the "parsed" output. Modifying any of these might lead to the modifications being ignored (depending on which property was modified) - It's not always clear whether to use path/pathname, host/hostname, so this tries to add helpful constraints
+
+Signature:
+
+```typescript
+export declare function modifyUrl(url: string, urlModifier: (urlParts: URLMeaningfulParts) => Partialstring
| |
+| urlModifier | (urlParts: URLMeaningfulParts) => Partial<URLMeaningfulParts> | void
| |
+
+Returns:
+
+`string`
+
+The modified and reformatted url
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.auth.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.auth.md
new file mode 100644
index 0000000000000..0422738669a70
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.auth.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [auth](./kibana-plugin-core-server.urlmeaningfulparts.auth.md)
+
+## URLMeaningfulParts.auth property
+
+Signature:
+
+```typescript
+auth?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hash.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hash.md
new file mode 100644
index 0000000000000..13a3f4a9c95c8
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hash.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [hash](./kibana-plugin-core-server.urlmeaningfulparts.hash.md)
+
+## URLMeaningfulParts.hash property
+
+Signature:
+
+```typescript
+hash?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hostname.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hostname.md
new file mode 100644
index 0000000000000..6631f6f6744c5
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.hostname.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [hostname](./kibana-plugin-core-server.urlmeaningfulparts.hostname.md)
+
+## URLMeaningfulParts.hostname property
+
+Signature:
+
+```typescript
+hostname?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.md
new file mode 100644
index 0000000000000..257f7b4b634ab
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.md
@@ -0,0 +1,27 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md)
+
+## URLMeaningfulParts interface
+
+We define our own typings because the current version of @types/node declares properties to be optional "hostname?: string". Although, parse call returns "hostname: null \| string".
+
+Signature:
+
+```typescript
+export interface URLMeaningfulParts
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [auth](./kibana-plugin-core-server.urlmeaningfulparts.auth.md) | string | null
| |
+| [hash](./kibana-plugin-core-server.urlmeaningfulparts.hash.md) | string | null
| |
+| [hostname](./kibana-plugin-core-server.urlmeaningfulparts.hostname.md) | string | null
| |
+| [pathname](./kibana-plugin-core-server.urlmeaningfulparts.pathname.md) | string | null
| |
+| [port](./kibana-plugin-core-server.urlmeaningfulparts.port.md) | string | null
| |
+| [protocol](./kibana-plugin-core-server.urlmeaningfulparts.protocol.md) | string | null
| |
+| [query](./kibana-plugin-core-server.urlmeaningfulparts.query.md) | ParsedQuery
| |
+| [slashes](./kibana-plugin-core-server.urlmeaningfulparts.slashes.md) | boolean | null
| |
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.pathname.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.pathname.md
new file mode 100644
index 0000000000000..8fee8c8e146ca
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.pathname.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [pathname](./kibana-plugin-core-server.urlmeaningfulparts.pathname.md)
+
+## URLMeaningfulParts.pathname property
+
+Signature:
+
+```typescript
+pathname?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.port.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.port.md
new file mode 100644
index 0000000000000..dcf3517d92ba2
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.port.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [port](./kibana-plugin-core-server.urlmeaningfulparts.port.md)
+
+## URLMeaningfulParts.port property
+
+Signature:
+
+```typescript
+port?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.protocol.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.protocol.md
new file mode 100644
index 0000000000000..914dcd4e8a8a5
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.protocol.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [protocol](./kibana-plugin-core-server.urlmeaningfulparts.protocol.md)
+
+## URLMeaningfulParts.protocol property
+
+Signature:
+
+```typescript
+protocol?: string | null;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.query.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.query.md
new file mode 100644
index 0000000000000..358adcfd3d180
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.query.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [query](./kibana-plugin-core-server.urlmeaningfulparts.query.md)
+
+## URLMeaningfulParts.query property
+
+Signature:
+
+```typescript
+query: ParsedQuery;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.slashes.md b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.slashes.md
new file mode 100644
index 0000000000000..d5b598167f2f2
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.urlmeaningfulparts.slashes.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [URLMeaningfulParts](./kibana-plugin-core-server.urlmeaningfulparts.md) > [slashes](./kibana-plugin-core-server.urlmeaningfulparts.slashes.md)
+
+## URLMeaningfulParts.slashes property
+
+Signature:
+
+```typescript
+slashes?: boolean | null;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md
deleted file mode 100644
index 43ff9a930b974..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md)
-
-## Field.$$spec property
-
-Signature:
-
-```typescript
-$$spec: FieldSpec;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md
deleted file mode 100644
index fcfd7d73c8b0c..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md)
-
-## Field.aggregatable property
-
-Signature:
-
-```typescript
-aggregatable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.conflictdescriptions.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.conflictdescriptions.md
deleted file mode 100644
index 21b6917c4aad4..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.conflictdescriptions.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [conflictDescriptions](./kibana-plugin-plugins-data-public.field.conflictdescriptions.md)
-
-## Field.conflictDescriptions property
-
-Signature:
-
-```typescript
-conflictDescriptions?: RecordField
class |
-
-## Properties
-
-| Property | Modifiers | Type | Description |
-| --- | --- | --- | --- |
-| [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md) | | FieldSpec
| |
-| [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md) | | boolean
| |
-| [conflictDescriptions](./kibana-plugin-plugins-data-public.field.conflictdescriptions.md) | | Record<string, string[]>
| |
-| [count](./kibana-plugin-plugins-data-public.field.count.md) | | number
| |
-| [displayName](./kibana-plugin-plugins-data-public.field.displayname.md) | | string
| |
-| [esTypes](./kibana-plugin-plugins-data-public.field.estypes.md) | | string[]
| |
-| [filterable](./kibana-plugin-plugins-data-public.field.filterable.md) | | boolean
| |
-| [format](./kibana-plugin-plugins-data-public.field.format.md) | | any
| |
-| [indexPattern](./kibana-plugin-plugins-data-public.field.indexpattern.md) | | IndexPattern
| |
-| [lang](./kibana-plugin-plugins-data-public.field.lang.md) | | string
| |
-| [name](./kibana-plugin-plugins-data-public.field.name.md) | | string
| |
-| [script](./kibana-plugin-plugins-data-public.field.script.md) | | string
| |
-| [scripted](./kibana-plugin-plugins-data-public.field.scripted.md) | | boolean
| |
-| [searchable](./kibana-plugin-plugins-data-public.field.searchable.md) | | boolean
| |
-| [sortable](./kibana-plugin-plugins-data-public.field.sortable.md) | | boolean
| |
-| [subType](./kibana-plugin-plugins-data-public.field.subtype.md) | | IFieldSubType
| |
-| [type](./kibana-plugin-plugins-data-public.field.type.md) | | string
| |
-| [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md) | | boolean
| |
-
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md
deleted file mode 100644
index d2a9b9b86aefc..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [name](./kibana-plugin-plugins-data-public.field.name.md)
-
-## Field.name property
-
-Signature:
-
-```typescript
-name: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md
deleted file mode 100644
index 676ff9bdfc35a..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [script](./kibana-plugin-plugins-data-public.field.script.md)
-
-## Field.script property
-
-Signature:
-
-```typescript
-script?: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md
deleted file mode 100644
index 1f6c8105e3f61..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [scripted](./kibana-plugin-plugins-data-public.field.scripted.md)
-
-## Field.scripted property
-
-Signature:
-
-```typescript
-scripted?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md
deleted file mode 100644
index 186d344f50378..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [searchable](./kibana-plugin-plugins-data-public.field.searchable.md)
-
-## Field.searchable property
-
-Signature:
-
-```typescript
-searchable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md
deleted file mode 100644
index 0cd4b14d0e1e5..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [sortable](./kibana-plugin-plugins-data-public.field.sortable.md)
-
-## Field.sortable property
-
-Signature:
-
-```typescript
-sortable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md
deleted file mode 100644
index bef3b2131fa47..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [subType](./kibana-plugin-plugins-data-public.field.subtype.md)
-
-## Field.subType property
-
-Signature:
-
-```typescript
-subType?: IFieldSubType;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md
deleted file mode 100644
index 490615edcf097..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [type](./kibana-plugin-plugins-data-public.field.type.md)
-
-## Field.type property
-
-Signature:
-
-```typescript
-type: string;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md
deleted file mode 100644
index f32a5c456dc5d..0000000000000
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md)
-
-## Field.visualizable property
-
-Signature:
-
-```typescript
-visualizable?: boolean;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md
new file mode 100644
index 0000000000000..f52a3324af36f
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md)
+
+## IndexPatternField.$$spec property
+
+Signature:
+
+```typescript
+$$spec: FieldSpec;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md
similarity index 73%
rename from docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md
rename to docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md
index faa793d4e9dfd..8ee9acc684fb1 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md
@@ -1,8 +1,8 @@
-[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [(constructor)](./kibana-plugin-plugins-data-public.field._constructor_.md)
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [(constructor)](./kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md)
-## Field.(constructor)
+## IndexPatternField.(constructor)
Constructs a new instance of the `Field` class
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md
new file mode 100644
index 0000000000000..267c8f786b5dd
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md)
+
+## IndexPatternField.aggregatable property
+
+Signature:
+
+```typescript
+aggregatable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.conflictdescriptions.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.conflictdescriptions.md
new file mode 100644
index 0000000000000..ca2552aeb1b42
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.conflictdescriptions.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [conflictDescriptions](./kibana-plugin-plugins-data-public.indexpatternfield.conflictdescriptions.md)
+
+## IndexPatternField.conflictDescriptions property
+
+Signature:
+
+```typescript
+conflictDescriptions?: RecordField
class |
+
+## Properties
+
+| Property | Modifiers | Type | Description |
+| --- | --- | --- | --- |
+| [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md) | | FieldSpec
| |
+| [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md) | | boolean
| |
+| [conflictDescriptions](./kibana-plugin-plugins-data-public.indexpatternfield.conflictdescriptions.md) | | Record<string, string[]>
| |
+| [count](./kibana-plugin-plugins-data-public.indexpatternfield.count.md) | | number
| |
+| [displayName](./kibana-plugin-plugins-data-public.indexpatternfield.displayname.md) | | string
| |
+| [esTypes](./kibana-plugin-plugins-data-public.indexpatternfield.estypes.md) | | string[]
| |
+| [filterable](./kibana-plugin-plugins-data-public.indexpatternfield.filterable.md) | | boolean
| |
+| [format](./kibana-plugin-plugins-data-public.indexpatternfield.format.md) | | any
| |
+| [indexPattern](./kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md) | | IndexPattern
| |
+| [lang](./kibana-plugin-plugins-data-public.indexpatternfield.lang.md) | | string
| |
+| [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md) | | string
| |
+| [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md) | | string
| |
+| [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md) | | boolean
| |
+| [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md) | | boolean
| |
+| [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md) | | boolean
| |
+| [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md) | | IFieldSubType
| |
+| [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md) | | string
| |
+| [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md) | | boolean
| |
+
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md
new file mode 100644
index 0000000000000..cb24621e73209
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md)
+
+## IndexPatternField.name property
+
+Signature:
+
+```typescript
+name: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md
new file mode 100644
index 0000000000000..132ba25a47637
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md)
+
+## IndexPatternField.script property
+
+Signature:
+
+```typescript
+script?: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md
new file mode 100644
index 0000000000000..1dd6bc865a75d
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md)
+
+## IndexPatternField.scripted property
+
+Signature:
+
+```typescript
+scripted?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md
new file mode 100644
index 0000000000000..42f984d851435
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md)
+
+## IndexPatternField.searchable property
+
+Signature:
+
+```typescript
+searchable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md
new file mode 100644
index 0000000000000..72d225185140b
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md)
+
+## IndexPatternField.sortable property
+
+Signature:
+
+```typescript
+sortable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md
new file mode 100644
index 0000000000000..2d807f8a5739c
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md)
+
+## IndexPatternField.subType property
+
+Signature:
+
+```typescript
+subType?: IFieldSubType;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md
new file mode 100644
index 0000000000000..c8483c9b83c9a
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md)
+
+## IndexPatternField.type property
+
+Signature:
+
+```typescript
+type: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md
new file mode 100644
index 0000000000000..dd661ae779c11
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md)
+
+## IndexPatternField.visualizable property
+
+Signature:
+
+```typescript
+visualizable?: boolean;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
index f1024c0954251..8b58957b9044a 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md
@@ -9,10 +9,10 @@
| Class | Description |
| --- | --- |
| [AggParamType](./kibana-plugin-plugins-data-public.aggparamtype.md) | |
-| [Field](./kibana-plugin-plugins-data-public.field.md) | |
| [FieldFormat](./kibana-plugin-plugins-data-public.fieldformat.md) | |
| [FilterManager](./kibana-plugin-plugins-data-public.filtermanager.md) | |
| [IndexPattern](./kibana-plugin-plugins-data-public.indexpattern.md) | |
+| [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) | |
| [IndexPatternSelect](./kibana-plugin-plugins-data-public.indexpatternselect.md) | |
| [OptionedParamType](./kibana-plugin-plugins-data-public.optionedparamtype.md) | |
| [Plugin](./kibana-plugin-plugins-data-public.plugin.md) | |
diff --git a/docs/user/security/securing-kibana.asciidoc b/docs/user/security/securing-kibana.asciidoc
index 24aacd6a47626..f4178bacb111e 100644
--- a/docs/user/security/securing-kibana.asciidoc
+++ b/docs/user/security/securing-kibana.asciidoc
@@ -31,14 +31,14 @@ file:
[source,yaml]
-----------------------------------------------
-elasticsearch.username: "kibana"
+elasticsearch.username: "kibana_system"
elasticsearch.password: "kibanapassword"
-----------------------------------------------
The {kib} server submits requests as this user to access the cluster monitoring
APIs and the `.kibana` index. The server does _not_ need access to user indices.
-The password for the built-in `kibana` user is typically set as part of the
+The password for the built-in `kibana_system` user is typically set as part of the
{security} configuration process on {es}. For more information, see
{ref}/built-in-users.html[Built-in users].
--
diff --git a/docs/visualize/timelion.asciidoc b/docs/visualize/timelion.asciidoc
index a7520227977bc..852c3e1ecdeca 100644
--- a/docs/visualize/timelion.asciidoc
+++ b/docs/visualize/timelion.asciidoc
@@ -50,10 +50,10 @@ To compare the two data sets, add another series with data from the previous hou
.es(index=metricbeat-*,
timefield='@timestamp',
metric='avg:system.cpu.user.pct'),
- .es(offset=-1h, <1>
- index=metricbeat-*,
- timefield='@timestamp',
- metric='avg:system.cpu.user.pct')
+.es(offset=-1h, <1>
+ index=metricbeat-*,
+ timefield='@timestamp',
+ metric='avg:system.cpu.user.pct')
----------------------------------
<1> `offset` offsets the data retrieval by a date expression. In this example, `-1h` offsets the data back by one hour.
@@ -119,11 +119,11 @@ To differentiate between the current hour data and the last hour data, change th
metric='avg:system.cpu.user.pct')
.label('last hour')
.lines(fill=1,width=0.5), <1>
- .es(index=metricbeat-*,
- timefield='@timestamp',
- metric='avg:system.cpu.user.pct')
- .label('current hour')
- .title('CPU usage over time')
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='avg:system.cpu.user.pct')
+ .label('current hour')
+ .title('CPU usage over time')
----------------------------------
<1> `.lines()` changes the appearance of the chart lines. In this example, `.lines(fill=1,width=0.5)` sets the fill level to `1`, and the border width to `0.5`.
@@ -169,7 +169,20 @@ Change the position and style of the legend:
[source,text]
----------------------------------
-.es(offset=-1h,index=metricbeat-*, timefield='@timestamp', metric='avg:system.cpu.user.pct').label('last hour').lines(fill=1,width=0.5).color(gray), .es(index=metricbeat-*, timefield='@timestamp', metric='avg:system.cpu.user.pct').label('current hour').title('CPU usage over time').color(#1E90FF).legend(columns=2, position=nw) <1>
+.es(offset=-1h,
+ index=metricbeat-*,
+ timefield='@timestamp',
+ metric='avg:system.cpu.user.pct')
+ .label('last hour')
+ .lines(fill=1,width=0.5)
+ .color(gray),
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='avg:system.cpu.user.pct')
+ .label('current hour')
+ .title('CPU usage over time')
+ .color(#1E90FF)
+ .legend(columns=2, position=nw) <1>
----------------------------------
<1> `.legend()` sets the position and style of the legend. In this example, `.legend(columns=2, position=nw)` places the legend in the north west position of the visualization with two columns.
@@ -192,7 +205,9 @@ To start tracking the inbound and outbound network traffic, enter the following
[source,text]
----------------------------------
-.es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.in.bytes)
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.in.bytes)
----------------------------------
[role="screenshot"]
@@ -207,7 +222,10 @@ Change how the data is displayed so that you can easily monitor the inbound traf
[source,text]
----------------------------------
-.es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.in.bytes).derivative() <1>
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.in.bytes)
+ .derivative() <1>
----------------------------------
<1> `.derivative` plots the change in values over time.
@@ -220,7 +238,15 @@ Add a similar calculation for outbound traffic:
[source,text]
----------------------------------
-.es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.in.bytes).derivative(), .es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.out.bytes).derivative().multiply(-1) <1>
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.in.bytes)
+ .derivative(),
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.out.bytes)
+ .derivative()
+ .multiply(-1) <1>
----------------------------------
<1> `.multiply()` multiplies the data series by a number, the result of a data series, or a list of data series. For this example, `.multiply(-1)` converts the outbound network traffic to a negative value since the outbound network traffic is leaving your machine.
@@ -237,7 +263,17 @@ To make the visualization easier to analyze, change the data metric from bytes t
[source,text]
----------------------------------
-.es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.in.bytes).derivative().divide(1048576), .es(index=metricbeat*, timefield=@timestamp, metric=max:system.network.out.bytes).derivative().multiply(-1).divide(1048576) <1>
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.in.bytes)
+ .derivative()
+ .divide(1048576),
+.es(index=metricbeat*,
+ timefield=@timestamp,
+ metric=max:system.network.out.bytes)
+ .derivative()
+ .multiply(-1)
+ .divide(1048576) <1>
----------------------------------
<1> `.divide()` accepts the same input as `.multiply()`, then divides the data series by the defined divisor.
@@ -271,8 +307,8 @@ Customize and format the visualization using functions:
.divide(1048576)
.lines(fill=2, width=1) <3>
.color(blue) <4>
- .label("Outbound traffic")
- .legend(columns=2, position=nw) <5>
+ .label("Outbound traffic")
+ .legend(columns=2, position=nw) <5>
----------------------------------
<1> `.label()` adds custom labels to the visualization.
@@ -309,7 +345,9 @@ To chart the maximum value of `system.memory.actual.used.bytes`, enter the follo
[source,text]
----------------------------------
-.es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes')
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
----------------------------------
[role="screenshot"]
@@ -338,17 +376,17 @@ To track the amount of memory used, create two thresholds:
null)
.label('warning')
.color('#FFCC11'),
- .es(index=metricbeat-*,
- timefield='@timestamp',
- metric='max:system.memory.actual.used.bytes')
- .if(gt,
- 11375000000,
- .es(index=metricbeat-*,
- timefield='@timestamp',
- metric='max:system.memory.actual.used.bytes'),
- null)
- .label('severe')
- .color('red')
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .if(gt,
+ 11375000000,
+ .es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes'),
+ null)
+ .label('severe')
+ .color('red')
----------------------------------
<1> Timelion conditional logic for the _greater than_ operator. In this example, the warning threshold is 11.3GB (`11300000000`), and the severe threshold is 11.375GB (`11375000000`). If the threshold values are too high or low for your machine, adjust the values accordingly.
@@ -366,7 +404,33 @@ To determine the trend, create a new data series:
[source,text]
----------------------------------
-.es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes'), .es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes').if(gt,11300000000,.es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes'),null).label('warning').color('#FFCC11'), .es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes').if(gt,11375000000,.es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes'),null).label('severe').color('red'), .es(index=metricbeat-*, timefield='@timestamp', metric='max:system.memory.actual.used.bytes').mvavg(10) <1>
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes'),
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .if(gt,11300000000,
+ .es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes'),
+ null)
+ .label('warning')
+ .color('#FFCC11'),
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .if(gt,11375000000,
+ .es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes'),
+ null).
+ label('severe')
+ .color('red'),
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .mvavg(10) <1>
----------------------------------
<1> `mvavg()` calculates the moving average over a specified period of time. In this example, `.mvavg(10)` creates a moving average with a window of 10 data points.
@@ -396,30 +460,30 @@ Customize and format the visualization using functions:
.es(index=metricbeat-*,
timefield='@timestamp',
metric='max:system.memory.actual.used.bytes'),
- null)
- .label('warning')
- .color('#FFCC11') <3>
- .lines(width=5), <4>
- .es(index=metricbeat-*,
- timefield='@timestamp',
- metric='max:system.memory.actual.used.bytes')
- .if(gt,
- 11375000000,
- .es(index=metricbeat-*,
- timefield='@timestamp',
- metric='max:system.memory.actual.used.bytes'),
- null)
- .label('severe')
- .color('red')
- .lines(width=5),
+ null)
+ .label('warning')
+ .color('#FFCC11') <3>
+ .lines(width=5), <4>
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .if(gt,
+ 11375000000,
.es(index=metricbeat-*,
timefield='@timestamp',
- metric='max:system.memory.actual.used.bytes')
- .mvavg(10)
- .label('mvavg')
- .lines(width=2)
- .color(#5E5E5E)
- .legend(columns=4, position=nw) <5>
+ metric='max:system.memory.actual.used.bytes'),
+ null)
+ .label('severe')
+ .color('red')
+ .lines(width=5),
+.es(index=metricbeat-*,
+ timefield='@timestamp',
+ metric='max:system.memory.actual.used.bytes')
+ .mvavg(10)
+ .label('mvavg')
+ .lines(width=2)
+ .color(#5E5E5E)
+ .legend(columns=4, position=nw) <5>
----------------------------------
<1> `.label()` adds custom labels to the visualization.
diff --git a/examples/alerting_example/public/application.tsx b/examples/alerting_example/public/application.tsx
index 6ff5a7d0880b8..23e9d19441002 100644
--- a/examples/alerting_example/public/application.tsx
+++ b/examples/alerting_example/public/application.tsx
@@ -27,6 +27,7 @@ import {
IUiSettingsClient,
DocLinksStart,
ToastsSetup,
+ ApplicationStart,
} from '../../../src/core/public';
import { DataPublicPluginStart } from '../../../src/plugins/data/public';
import { ChartsPluginStart } from '../../../src/plugins/charts/public';
@@ -48,6 +49,7 @@ export interface AlertingExampleComponentParams {
uiSettings: IUiSettingsClient;
docLinks: DocLinksStart;
toastNotifications: ToastsSetup;
+ capabilities: ApplicationStart['capabilities'];
}
const AlertingExampleApp = (deps: AlertingExampleComponentParams) => {
@@ -102,6 +104,7 @@ export const renderApp = (
http={http}
uiSettings={uiSettings}
docLinks={docLinks}
+ capabilities={application.capabilities}
{...deps}
/>,
element
diff --git a/examples/alerting_example/public/components/create_alert.tsx b/examples/alerting_example/public/components/create_alert.tsx
index 0541e0b18a2e1..a8e1f06cb3914 100644
--- a/examples/alerting_example/public/components/create_alert.tsx
+++ b/examples/alerting_example/public/components/create_alert.tsx
@@ -36,6 +36,7 @@ export const CreateAlert = ({
docLinks,
data,
toastNotifications,
+ capabilities,
}: AlertingExampleComponentParams) => {
const [alertFlyoutVisible, setAlertFlyoutVisibility] = useState{command}+
+ {permissionsError === 'MISSING_SUPERUSER_ROLE' ? (
+
- {i18n.translate('xpack.ml.dataGrid.IndexNoDataCalloutBody', {
- defaultMessage:
- 'The query for the index returned no results. Please make sure you have sufficient permissions, the index contains documents and your query is not too restrictive.',
+export const DataGrid: FC
+ {i18n.translate('xpack.ml.dataGrid.IndexNoDataCalloutBody', {
+ defaultMessage:
+ 'The query for the index returned no results. Please make sure you have sufficient permissions, the index contains documents and your query is not too restrictive.',
+ })}
+
{noDataMessage}
-{noDataMessage}
-