boolean
| Indicates whether or not this app is currently on the screen. |
-| [baseUrl](./kibana-plugin-public.chromenavlink.baseurl.md) | string
| The base route used to open the root of an application. |
-| [category](./kibana-plugin-public.chromenavlink.category.md) | AppCategory
| The category the app lives in |
-| [disabled](./kibana-plugin-public.chromenavlink.disabled.md) | boolean
| Disables a link from being clickable. |
-| [euiIconType](./kibana-plugin-public.chromenavlink.euiicontype.md) | string
| A EUI iconType that will be used for the app's icon. This icon takes precendence over the icon
property. |
-| [hidden](./kibana-plugin-public.chromenavlink.hidden.md) | boolean
| Hides a link from the navigation. |
-| [icon](./kibana-plugin-public.chromenavlink.icon.md) | string
| A URL to an image file used as an icon. Used as a fallback if euiIconType
is not provided. |
-| [id](./kibana-plugin-public.chromenavlink.id.md) | string
| A unique identifier for looking up links. |
-| [linkToLastSubUrl](./kibana-plugin-public.chromenavlink.linktolastsuburl.md) | boolean
| Whether or not the subUrl feature should be enabled. |
-| [order](./kibana-plugin-public.chromenavlink.order.md) | number
| An ordinal used to sort nav links relative to one another for display. |
-| [subUrlBase](./kibana-plugin-public.chromenavlink.suburlbase.md) | string
| A url base that legacy apps can set to match deep URLs to an application. |
-| [title](./kibana-plugin-public.chromenavlink.title.md) | string
| The title of the application. |
-| [tooltip](./kibana-plugin-public.chromenavlink.tooltip.md) | string
| A tooltip shown when hovering over an app link. |
-| [url](./kibana-plugin-public.chromenavlink.url.md) | string
| A url that legacy apps can set to deep link into their applications. |
-
+
+
+[Home](./index.md) > [kibana-plugin-public](./kibana-plugin-public.md) > [ChromeNavLink](./kibana-plugin-public.chromenavlink.md)
+
+## ChromeNavLink interface
+
+
+Signature:
+
+```typescript
+export interface ChromeNavLink
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [active](./kibana-plugin-public.chromenavlink.active.md) | boolean
| Indicates whether or not this app is currently on the screen. |
+| [baseUrl](./kibana-plugin-public.chromenavlink.baseurl.md) | string
| The base route used to open the root of an application. |
+| [category](./kibana-plugin-public.chromenavlink.category.md) | AppCategory
| The category the app lives in |
+| [disabled](./kibana-plugin-public.chromenavlink.disabled.md) | boolean
| Disables a link from being clickable. |
+| [disableSubUrlTracking](./kibana-plugin-public.chromenavlink.disablesuburltracking.md) | boolean
| A flag that tells legacy chrome to ignore the link when tracking sub-urls |
+| [euiIconType](./kibana-plugin-public.chromenavlink.euiicontype.md) | string
| A EUI iconType that will be used for the app's icon. This icon takes precendence over the icon
property. |
+| [hidden](./kibana-plugin-public.chromenavlink.hidden.md) | boolean
| Hides a link from the navigation. |
+| [icon](./kibana-plugin-public.chromenavlink.icon.md) | string
| A URL to an image file used as an icon. Used as a fallback if euiIconType
is not provided. |
+| [id](./kibana-plugin-public.chromenavlink.id.md) | string
| A unique identifier for looking up links. |
+| [linkToLastSubUrl](./kibana-plugin-public.chromenavlink.linktolastsuburl.md) | boolean
| Whether or not the subUrl feature should be enabled. |
+| [order](./kibana-plugin-public.chromenavlink.order.md) | number
| An ordinal used to sort nav links relative to one another for display. |
+| [subUrlBase](./kibana-plugin-public.chromenavlink.suburlbase.md) | string
| A url base that legacy apps can set to match deep URLs to an application. |
+| [title](./kibana-plugin-public.chromenavlink.title.md) | string
| The title of the application. |
+| [tooltip](./kibana-plugin-public.chromenavlink.tooltip.md) | string
| A tooltip shown when hovering over an app link. |
+| [url](./kibana-plugin-public.chromenavlink.url.md) | string
| A url that legacy apps can set to deep link into their applications. |
+
diff --git a/docs/migration/migrate_8_0.asciidoc b/docs/migration/migrate_8_0.asciidoc
index a36a93ce3182..df4d8a0b65ee 100644
--- a/docs/migration/migrate_8_0.asciidoc
+++ b/docs/migration/migrate_8_0.asciidoc
@@ -80,4 +80,15 @@ specified explicitly.
*Impact:* Any workflow that involved manually clearing generated bundles will have to be updated with the new path.
+
+[float]
+[[breaking_80_reporting_changes]]
+=== Reporting changes
+
+[float]
+==== Legacy job parameters are no longer supported
+*Details:* POST URL snippets that were copied in Kibana 6.2 or below are no longer supported. These logs have
+been deprecated with warnings that have been logged throughout 7.x. Please use Kibana UI to re-generate the
+POST URL snippets if you depend on these for automated PDF reports.
+
// end::notable-breaking-changes[]
diff --git a/src/core/public/application/types.ts b/src/core/public/application/types.ts
index 63e542b0127e..17fdfc627187 100644
--- a/src/core/public/application/types.ts
+++ b/src/core/public/application/types.ts
@@ -229,6 +229,7 @@ export interface LegacyApp extends AppBase {
appUrl: string;
subUrlBase?: string;
linkToLastSubUrl?: boolean;
+ disableSubUrlTracking?: boolean;
}
/**
diff --git a/src/core/public/chrome/nav_links/nav_link.ts b/src/core/public/chrome/nav_links/nav_link.ts
index 4d3a1e9ecd19..d0ef2aeb265f 100644
--- a/src/core/public/chrome/nav_links/nav_link.ts
+++ b/src/core/public/chrome/nav_links/nav_link.ts
@@ -78,6 +78,17 @@ export interface ChromeNavLink {
*/
readonly subUrlBase?: string;
+ /**
+ * A flag that tells legacy chrome to ignore the link when
+ * tracking sub-urls
+ *
+ * @internalRemarks
+ * This should be removed once legacy apps are gone.
+ *
+ * @deprecated
+ */
+ readonly disableSubUrlTracking?: boolean;
+
/**
* Whether or not the subUrl feature should be enabled.
*
diff --git a/src/core/public/legacy/legacy_service.ts b/src/core/public/legacy/legacy_service.ts
index cc3210771eec..e4788e686dd4 100644
--- a/src/core/public/legacy/legacy_service.ts
+++ b/src/core/public/legacy/legacy_service.ts
@@ -75,6 +75,7 @@ export class LegacyPlatformService {
subUrlBase: navLink.subUrlBase,
linkToLastSubUrl: navLink.linkToLastSubUrl,
category: navLink.category,
+ disableSubUrlTracking: navLink.disableSubUrlTracking,
})
);
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index 5e36638516e5..8517166ee00e 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -264,6 +264,8 @@ export interface ChromeNavLink {
readonly category?: AppCategory;
// @deprecated
readonly disabled?: boolean;
+ // @deprecated
+ readonly disableSubUrlTracking?: boolean;
readonly euiIconType?: string;
readonly hidden?: boolean;
readonly icon?: string;
diff --git a/src/core/server/config/object_to_config_adapter.test.ts b/src/core/server/config/object_to_config_adapter.test.ts
new file mode 100644
index 000000000000..af41741e6208
--- /dev/null
+++ b/src/core/server/config/object_to_config_adapter.test.ts
@@ -0,0 +1,53 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { ObjectToConfigAdapter } from './object_to_config_adapter';
+
+describe('ObjectToConfigAdapter', () => {
+ describe('#getFlattenedPaths()', () => {
+ it('considers arrays as final values', () => {
+ const data = {
+ string: 'string',
+ array: ['an', 'array'],
+ };
+ const config = new ObjectToConfigAdapter(data);
+
+ expect(config.getFlattenedPaths()).toEqual(['string', 'array']);
+ });
+
+ it('handles nested arrays', () => {
+ const data = {
+ string: 'string',
+ array: ['an', 'array'],
+ nested: {
+ number: 12,
+ array: [{ key: 1 }, { key: 2 }],
+ },
+ };
+ const config = new ObjectToConfigAdapter(data);
+
+ expect(config.getFlattenedPaths()).toEqual([
+ 'string',
+ 'array',
+ 'nested.number',
+ 'nested.array',
+ ]);
+ });
+ });
+});
diff --git a/src/core/server/config/object_to_config_adapter.ts b/src/core/server/config/object_to_config_adapter.ts
index b6ec77260356..d4c2f7336406 100644
--- a/src/core/server/config/object_to_config_adapter.ts
+++ b/src/core/server/config/object_to_config_adapter.ts
@@ -19,6 +19,7 @@
import { cloneDeep, get, has, set } from 'lodash';
+import { getFlattenedObject } from '../../utils';
import { Config, ConfigPath } from './';
/**
@@ -41,24 +42,10 @@ export class ObjectToConfigAdapter implements Config {
}
public getFlattenedPaths() {
- return [...flattenObjectKeys(this.rawConfig)];
+ return Object.keys(getFlattenedObject(this.rawConfig));
}
public toRaw() {
return cloneDeep(this.rawConfig);
}
}
-
-function* flattenObjectKeys(
- obj: { [key: string]: any },
- path: string = ''
-): IterableIterator
{i18n.LINK_ELASTIC_ENDPOINT_SECURITY}
+{endpointRefUrl}
+ > + } + > +