diff --git a/.backportrc.json b/.backportrc.json
index 87bc3a1be583b..8f458343c51af 100644
--- a/.backportrc.json
+++ b/.backportrc.json
@@ -25,6 +25,7 @@
],
"targetPRLabels": ["backport"],
"branchLabelMapping": {
+ "^v8.0.0$": "master",
"^v7.9.0$": "7.x",
"^v(\\d+).(\\d+).\\d+$": "$1.$2"
}
diff --git a/.ci/pipeline-library/build.gradle b/.ci/pipeline-library/build.gradle
index 2753750871ad5..ac5e7a4ed034a 100644
--- a/.ci/pipeline-library/build.gradle
+++ b/.ci/pipeline-library/build.gradle
@@ -20,6 +20,7 @@ dependencies {
implementation 'org.jenkins-ci.plugins.workflow:workflow-step-api:2.19@jar'
testImplementation 'com.lesfurets:jenkins-pipeline-unit:1.4'
testImplementation 'junit:junit:4.12'
+ testImplementation 'org.mockito:mockito-core:2.+'
testImplementation 'org.assertj:assertj-core:3.15+' // Temporary https://github.com/jenkinsci/JenkinsPipelineUnit/issues/209
}
diff --git a/.ci/pipeline-library/src/test/KibanaBasePipelineTest.groovy b/.ci/pipeline-library/src/test/KibanaBasePipelineTest.groovy
index 23282089ab76c..086484f2385b0 100644
--- a/.ci/pipeline-library/src/test/KibanaBasePipelineTest.groovy
+++ b/.ci/pipeline-library/src/test/KibanaBasePipelineTest.groovy
@@ -19,9 +19,9 @@ class KibanaBasePipelineTest extends BasePipelineTest {
env.BUILD_DISPLAY_NAME = "#${env.BUILD_ID}"
env.JENKINS_URL = 'http://jenkins.localhost:8080'
- env.BUILD_URL = "${env.JENKINS_URL}/job/elastic+kibana+${env.BRANCH_NAME}/${env.BUILD_ID}/"
+ env.BUILD_URL = "${env.JENKINS_URL}/job/elastic+kibana+${env.BRANCH_NAME}/${env.BUILD_ID}/".toString()
- env.JOB_BASE_NAME = "elastic / kibana # ${env.BRANCH_NAME}"
+ env.JOB_BASE_NAME = "elastic / kibana # ${env.BRANCH_NAME}".toString()
env.JOB_NAME = env.JOB_BASE_NAME
env.WORKSPACE = 'WS'
@@ -31,6 +31,9 @@ class KibanaBasePipelineTest extends BasePipelineTest {
getBuildStatus: { 'SUCCESS' },
printStacktrace: { ex -> print ex },
],
+ githubPr: [
+ isPr: { false },
+ ],
jenkinsApi: [ getFailedSteps: { [] } ],
testUtils: [ getFailures: { [] } ],
])
diff --git a/.ci/pipeline-library/src/test/buildState.groovy b/.ci/pipeline-library/src/test/buildState.groovy
new file mode 100644
index 0000000000000..b748cce29e7f4
--- /dev/null
+++ b/.ci/pipeline-library/src/test/buildState.groovy
@@ -0,0 +1,48 @@
+import org.junit.*
+import static groovy.test.GroovyAssert.*
+
+class BuildStateTest extends KibanaBasePipelineTest {
+ def buildState
+
+ @Before
+ void setUp() {
+ super.setUp()
+
+ buildState = loadScript("vars/buildState.groovy")
+ }
+
+ @Test
+ void 'get() returns existing data'() {
+ buildState.add('test', 1)
+ def actual = buildState.get('test')
+ assertEquals(1, actual)
+ }
+
+ @Test
+ void 'get() returns null for missing data'() {
+ def actual = buildState.get('missing_key')
+ assertEquals(null, actual)
+ }
+
+ @Test
+ void 'add() does not overwrite existing keys'() {
+ assertTrue(buildState.add('test', 1))
+ assertFalse(buildState.add('test', 2))
+
+ def actual = buildState.get('test')
+
+ assertEquals(1, actual)
+ }
+
+ @Test
+ void 'set() overwrites existing keys'() {
+ assertFalse(buildState.has('test'))
+ buildState.set('test', 1)
+ assertTrue(buildState.has('test'))
+ buildState.set('test', 2)
+
+ def actual = buildState.get('test')
+
+ assertEquals(2, actual)
+ }
+}
diff --git a/.ci/pipeline-library/src/test/githubCommitStatus.groovy b/.ci/pipeline-library/src/test/githubCommitStatus.groovy
new file mode 100644
index 0000000000000..17878624b73cf
--- /dev/null
+++ b/.ci/pipeline-library/src/test/githubCommitStatus.groovy
@@ -0,0 +1,85 @@
+import org.junit.*
+import static org.mockito.Mockito.*;
+
+class GithubCommitStatusTest extends KibanaBasePipelineTest {
+ def githubCommitStatus
+ def githubApiMock
+ def buildStateMock
+
+ def EXPECTED_STATUS_URL = 'repos/elastic/kibana/statuses/COMMIT_HASH'
+ def EXPECTED_CONTEXT = 'kibana-ci'
+ def EXPECTED_BUILD_URL = 'http://jenkins.localhost:8080/job/elastic+kibana+master/1/'
+
+ interface BuildState {
+ Object get(String key)
+ }
+
+ interface GithubApi {
+ Object post(String url, Map data)
+ }
+
+ @Before
+ void setUp() {
+ super.setUp()
+
+ buildStateMock = mock(BuildState)
+ githubApiMock = mock(GithubApi)
+
+ when(buildStateMock.get('checkoutInfo')).thenReturn([ commit: 'COMMIT_HASH', ])
+ when(githubApiMock.post(any(), any())).thenReturn(null)
+
+ props([
+ buildState: buildStateMock,
+ githubApi: githubApiMock,
+ ])
+
+ githubCommitStatus = loadScript("vars/githubCommitStatus.groovy")
+ }
+
+ void verifyStatusCreate(String state, String description) {
+ verify(githubApiMock).post(
+ EXPECTED_STATUS_URL,
+ [
+ 'state': state,
+ 'description': description,
+ 'context': EXPECTED_CONTEXT,
+ 'target_url': EXPECTED_BUILD_URL,
+ ]
+ )
+ }
+
+ @Test
+ void 'onStart() should create a pending status'() {
+ githubCommitStatus.onStart()
+ verifyStatusCreate('pending', 'Build started.')
+ }
+
+ @Test
+ void 'onFinish() should create a success status'() {
+ githubCommitStatus.onFinish()
+ verifyStatusCreate('success', 'Build completed successfully.')
+ }
+
+ @Test
+ void 'onFinish() should create an error status for failed builds'() {
+ mockFailureBuild()
+ githubCommitStatus.onFinish()
+ verifyStatusCreate('error', 'Build failed.')
+ }
+
+ @Test
+ void 'onStart() should exit early for PRs'() {
+ prop('githubPr', [ isPr: { true } ])
+
+ githubCommitStatus.onStart()
+ verifyZeroInteractions(githubApiMock)
+ }
+
+ @Test
+ void 'onFinish() should exit early for PRs'() {
+ prop('githubPr', [ isPr: { true } ])
+
+ githubCommitStatus.onFinish()
+ verifyZeroInteractions(githubApiMock)
+ }
+}
diff --git a/.eslintignore b/.eslintignore
index fbdd70703f3c4..9de2cc2872960 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -33,6 +33,7 @@ target
/x-pack/plugins/canvas/shareable_runtime/build
/x-pack/plugins/canvas/storybook
/x-pack/plugins/monitoring/public/lib/jquery_flot
+/x-pack/plugins/reporting/server/export_types/printable_pdf/server/lib/pdf/assets/**
/x-pack/legacy/plugins/infra/common/graphql/types.ts
/x-pack/legacy/plugins/infra/public/graphql/types.ts
/x-pack/legacy/plugins/infra/server/graphql/types.ts
diff --git a/Jenkinsfile b/Jenkinsfile
index db9d218db15ba..7869fa68788bd 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -3,7 +3,7 @@
library 'kibana-pipeline-library'
kibanaLibrary.load()
-kibanaPipeline(timeoutMinutes: 155, checkPrChanges: true) {
+kibanaPipeline(timeoutMinutes: 155, checkPrChanges: true, setCommitStatus: true) {
githubPr.withDefaultPrComments {
ciStats.trackBuild {
catchError {
diff --git a/docs/development/core/public/kibana-plugin-core-public.app.exactroute.md b/docs/development/core/public/kibana-plugin-core-public.app.exactroute.md
new file mode 100644
index 0000000000000..d1e0be17a92b2
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.app.exactroute.md
@@ -0,0 +1,30 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [App](./kibana-plugin-core-public.app.md) > [exactRoute](./kibana-plugin-core-public.app.exactroute.md)
+
+## App.exactRoute property
+
+If set to true, the application's route will only be checked against an exact match. Defaults to `false`.
+
+Signature:
+
+```typescript
+exactRoute?: boolean;
+```
+
+## Example
+
+
+```ts
+core.application.register({
+ id: 'my_app',
+ title: 'My App'
+ exactRoute: true,
+ mount: () => { ... },
+})
+
+// '[basePath]/app/my_app' will be matched
+// '[basePath]/app/my_app/some/path' will not be matched
+
+```
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.app.md b/docs/development/core/public/kibana-plugin-core-public.app.md
index 90737d241f548..8dd60972549f9 100644
--- a/docs/development/core/public/kibana-plugin-core-public.app.md
+++ b/docs/development/core/public/kibana-plugin-core-public.app.md
@@ -18,5 +18,6 @@ export interface App extends AppBase
| --- | --- | --- |
| [appRoute](./kibana-plugin-core-public.app.approute.md) | string
| Override the application's routing path from /app/${id}
. Must be unique across registered applications. Should not include the base path from HTTP. |
| [chromeless](./kibana-plugin-core-public.app.chromeless.md) | boolean
| Hide the UI chrome when the application is mounted. Defaults to false
. Takes precedence over chrome service visibility settings. |
+| [exactRoute](./kibana-plugin-core-public.app.exactroute.md) | boolean
| If set to true, the application's route will only be checked against an exact match. Defaults to false
. |
| [mount](./kibana-plugin-core-public.app.mount.md) | AppMount<HistoryLocationState> | AppMountDeprecated<HistoryLocationState>
| A mount function called when the user navigates to this app's route. May have signature of [AppMount](./kibana-plugin-core-public.appmount.md) or [AppMountDeprecated](./kibana-plugin-core-public.appmountdeprecated.md). |
diff --git a/docs/development/core/public/kibana-plugin-core-public.chromestart.getcustomnavlink_.md b/docs/development/core/public/kibana-plugin-core-public.chromestart.getcustomnavlink_.md
new file mode 100644
index 0000000000000..64805eefbfea1
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.chromestart.getcustomnavlink_.md
@@ -0,0 +1,17 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ChromeStart](./kibana-plugin-core-public.chromestart.md) > [getCustomNavLink$](./kibana-plugin-core-public.chromestart.getcustomnavlink_.md)
+
+## ChromeStart.getCustomNavLink$() method
+
+Get an observable of the current custom nav link
+
+Signature:
+
+```typescript
+getCustomNavLink$(): Observable | undefined>;
+```
+Returns:
+
+`Observable | undefined>`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.chromestart.md b/docs/development/core/public/kibana-plugin-core-public.chromestart.md
index b4eadc93fe78d..e983ad50d2afe 100644
--- a/docs/development/core/public/kibana-plugin-core-public.chromestart.md
+++ b/docs/development/core/public/kibana-plugin-core-public.chromestart.md
@@ -55,6 +55,7 @@ core.chrome.setHelpExtension(elem => {
| [getBadge$()](./kibana-plugin-core-public.chromestart.getbadge_.md) | Get an observable of the current badge |
| [getBrand$()](./kibana-plugin-core-public.chromestart.getbrand_.md) | Get an observable of the current brand information. |
| [getBreadcrumbs$()](./kibana-plugin-core-public.chromestart.getbreadcrumbs_.md) | Get an observable of the current list of breadcrumbs |
+| [getCustomNavLink$()](./kibana-plugin-core-public.chromestart.getcustomnavlink_.md) | Get an observable of the current custom nav link |
| [getHelpExtension$()](./kibana-plugin-core-public.chromestart.gethelpextension_.md) | Get an observable of the current custom help conttent |
| [getIsNavDrawerLocked$()](./kibana-plugin-core-public.chromestart.getisnavdrawerlocked_.md) | Get an observable of the current locked state of the nav drawer. |
| [getIsVisible$()](./kibana-plugin-core-public.chromestart.getisvisible_.md) | Get an observable of the current visibility state of the chrome. |
@@ -64,6 +65,7 @@ core.chrome.setHelpExtension(elem => {
| [setBadge(badge)](./kibana-plugin-core-public.chromestart.setbadge.md) | Override the current badge |
| [setBrand(brand)](./kibana-plugin-core-public.chromestart.setbrand.md) | Set the brand configuration. |
| [setBreadcrumbs(newBreadcrumbs)](./kibana-plugin-core-public.chromestart.setbreadcrumbs.md) | Override the current set of breadcrumbs |
+| [setCustomNavLink(newCustomNavLink)](./kibana-plugin-core-public.chromestart.setcustomnavlink.md) | Override the current set of custom nav link |
| [setHelpExtension(helpExtension)](./kibana-plugin-core-public.chromestart.sethelpextension.md) | Override the current set of custom help content |
| [setHelpSupportUrl(url)](./kibana-plugin-core-public.chromestart.sethelpsupporturl.md) | Override the default support URL shown in the help menu |
| [setIsVisible(isVisible)](./kibana-plugin-core-public.chromestart.setisvisible.md) | Set the temporary visibility for the chrome. This does nothing if the chrome is hidden by default and should be used to hide the chrome for things like full-screen modes with an exit button. |
diff --git a/docs/development/core/public/kibana-plugin-core-public.chromestart.setcustomnavlink.md b/docs/development/core/public/kibana-plugin-core-public.chromestart.setcustomnavlink.md
new file mode 100644
index 0000000000000..adfb57f9c5ff2
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.chromestart.setcustomnavlink.md
@@ -0,0 +1,24 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ChromeStart](./kibana-plugin-core-public.chromestart.md) > [setCustomNavLink](./kibana-plugin-core-public.chromestart.setcustomnavlink.md)
+
+## ChromeStart.setCustomNavLink() method
+
+Override the current set of custom nav link
+
+Signature:
+
+```typescript
+setCustomNavLink(newCustomNavLink?: Partial): void;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| newCustomNavLink | Partial<ChromeNavLink>
| |
+
+Returns:
+
+`void`
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.coresetup.doclinks.md b/docs/development/core/public/kibana-plugin-core-public.coresetup.doclinks.md
deleted file mode 100644
index b239319c427fe..0000000000000
--- a/docs/development/core/public/kibana-plugin-core-public.coresetup.doclinks.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [CoreSetup](./kibana-plugin-core-public.coresetup.md) > [docLinks](./kibana-plugin-core-public.coresetup.doclinks.md)
-
-## CoreSetup.docLinks property
-
-[DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md)
-
-Signature:
-
-```typescript
-docLinks: DocLinksSetup;
-```
diff --git a/docs/development/core/public/kibana-plugin-core-public.coresetup.md b/docs/development/core/public/kibana-plugin-core-public.coresetup.md
index 4f981b5a40139..870fa33dce900 100644
--- a/docs/development/core/public/kibana-plugin-core-public.coresetup.md
+++ b/docs/development/core/public/kibana-plugin-core-public.coresetup.md
@@ -18,7 +18,6 @@ export interface CoreSetupApplicationSetup | [ApplicationSetup](./kibana-plugin-core-public.applicationsetup.md) |
| [context](./kibana-plugin-core-public.coresetup.context.md) | ContextSetup
| [ContextSetup](./kibana-plugin-core-public.contextsetup.md) |
-| [docLinks](./kibana-plugin-core-public.coresetup.doclinks.md) | DocLinksSetup
| [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md) |
| [fatalErrors](./kibana-plugin-core-public.coresetup.fatalerrors.md) | FatalErrorsSetup
| [FatalErrorsSetup](./kibana-plugin-core-public.fatalerrorssetup.md) |
| [getStartServices](./kibana-plugin-core-public.coresetup.getstartservices.md) | StartServicesAccessor<TPluginsStart, TStart>
| [StartServicesAccessor](./kibana-plugin-core-public.startservicesaccessor.md) |
| [http](./kibana-plugin-core-public.coresetup.http.md) | HttpSetup
| [HttpSetup](./kibana-plugin-core-public.httpsetup.md) |
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.doc_link_version.md b/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.doc_link_version.md
deleted file mode 100644
index c8d13bab92b05..0000000000000
--- a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.doc_link_version.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md) > [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinkssetup.doc_link_version.md)
-
-## DocLinksSetup.DOC\_LINK\_VERSION property
-
-Signature:
-
-```typescript
-readonly DOC_LINK_VERSION: string;
-```
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.elastic_website_url.md b/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.elastic_website_url.md
deleted file mode 100644
index d8493148bae10..0000000000000
--- a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.elastic_website_url.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md) > [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinkssetup.elastic_website_url.md)
-
-## DocLinksSetup.ELASTIC\_WEBSITE\_URL property
-
-Signature:
-
-```typescript
-readonly ELASTIC_WEBSITE_URL: string;
-```
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.md b/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.md
deleted file mode 100644
index 9e7938bd9c850..0000000000000
--- a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md)
-
-## DocLinksSetup interface
-
-
-Signature:
-
-```typescript
-export interface DocLinksSetup
-```
-
-## Properties
-
-| Property | Type | Description |
-| --- | --- | --- |
-| [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinkssetup.doc_link_version.md) | string
| |
-| [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinkssetup.elastic_website_url.md) | string
| |
-| [links](./kibana-plugin-core-public.doclinkssetup.links.md) | {
readonly dashboard: {
readonly drilldowns: string;
};
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly date_histogram: string;
readonly date_range: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessSyntax: string;
readonly luceneExpressions: string;
};
readonly indexPatterns: {
readonly loadingData: string;
readonly introduction: string;
};
readonly kibana: string;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
};
readonly management: Record<string, string>;
}
| |
-
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.doc_link_version.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.doc_link_version.md
new file mode 100644
index 0000000000000..8140b3fcf380f
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.doc_link_version.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md) > [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md)
+
+## DocLinksStart.DOC\_LINK\_VERSION property
+
+Signature:
+
+```typescript
+readonly DOC_LINK_VERSION: string;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.elastic_website_url.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.elastic_website_url.md
new file mode 100644
index 0000000000000..af770ed3055aa
--- /dev/null
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.elastic_website_url.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md) > [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md)
+
+## DocLinksStart.ELASTIC\_WEBSITE\_URL property
+
+Signature:
+
+```typescript
+readonly ELASTIC_WEBSITE_URL: string;
+```
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
similarity index 94%
rename from docs/development/core/public/kibana-plugin-core-public.doclinkssetup.links.md
rename to docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
index 80e2702451d86..a03b1b74fc1ac 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinkssetup.links.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
@@ -1,8 +1,8 @@
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md) > [links](./kibana-plugin-core-public.doclinkssetup.links.md)
+[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md) > [links](./kibana-plugin-core-public.doclinksstart.links.md)
-## DocLinksSetup.links property
+## DocLinksStart.links property
Signature:
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
index af2a41b691727..8f739950d249b 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
@@ -2,11 +2,20 @@
[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md)
-## DocLinksStart type
+## DocLinksStart interface
Signature:
```typescript
-export declare type DocLinksStart = DocLinksSetup;
+export interface DocLinksStart
```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md) | string
| |
+| [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md) | string
| |
+| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly dashboard: {
readonly drilldowns: string;
};
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly date_histogram: string;
readonly date_range: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessSyntax: string;
readonly luceneExpressions: string;
};
readonly indexPatterns: {
readonly loadingData: string;
readonly introduction: string;
};
readonly kibana: string;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
};
readonly management: Record<string, string>;
}
| |
+
diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md
index dda6b6ac0c60a..b0612ff4d5b65 100644
--- a/docs/development/core/public/kibana-plugin-core-public.md
+++ b/docs/development/core/public/kibana-plugin-core-public.md
@@ -65,7 +65,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [ContextSetup](./kibana-plugin-core-public.contextsetup.md) | An object that handles registration of context providers and configuring handlers with context. |
| [CoreSetup](./kibana-plugin-core-public.coresetup.md) | Core services exposed to the Plugin
setup lifecycle |
| [CoreStart](./kibana-plugin-core-public.corestart.md) | Core services exposed to the Plugin
start lifecycle |
-| [DocLinksSetup](./kibana-plugin-core-public.doclinkssetup.md) | |
+| [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md) | |
| [EnvironmentMode](./kibana-plugin-core-public.environmentmode.md) | |
| [ErrorToastOptions](./kibana-plugin-core-public.errortoastoptions.md) | Options available for [IToasts](./kibana-plugin-core-public.itoasts.md) error APIs. |
| [FatalErrorInfo](./kibana-plugin-core-public.fatalerrorinfo.md) | Represents the message
and stack
of a fatal Error |
@@ -157,7 +157,6 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [ChromeHelpExtensionMenuGitHubLink](./kibana-plugin-core-public.chromehelpextensionmenugithublink.md) | |
| [ChromeHelpExtensionMenuLink](./kibana-plugin-core-public.chromehelpextensionmenulink.md) | |
| [ChromeNavLinkUpdateableFields](./kibana-plugin-core-public.chromenavlinkupdateablefields.md) | |
-| [DocLinksStart](./kibana-plugin-core-public.doclinksstart.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. |
diff --git a/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md b/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md
new file mode 100644
index 0000000000000..9c70e658014b3
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.appenderconfigtype.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [AppenderConfigType](./kibana-plugin-core-server.appenderconfigtype.md)
+
+## AppenderConfigType type
+
+
+Signature:
+
+```typescript
+export declare type AppenderConfigType = TypeOf;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.coresetup.logging.md b/docs/development/core/server/kibana-plugin-core-server.coresetup.logging.md
new file mode 100644
index 0000000000000..12fe49e65d9ca
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.coresetup.logging.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [CoreSetup](./kibana-plugin-core-server.coresetup.md) > [logging](./kibana-plugin-core-server.coresetup.logging.md)
+
+## CoreSetup.logging property
+
+[LoggingServiceSetup](./kibana-plugin-core-server.loggingservicesetup.md)
+
+Signature:
+
+```typescript
+logging: LoggingServiceSetup;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.coresetup.md b/docs/development/core/server/kibana-plugin-core-server.coresetup.md
index 30c054345928b..e9ed5b830b691 100644
--- a/docs/development/core/server/kibana-plugin-core-server.coresetup.md
+++ b/docs/development/core/server/kibana-plugin-core-server.coresetup.md
@@ -21,6 +21,7 @@ export interface CoreSetupElasticsearchServiceSetup | [ElasticsearchServiceSetup](./kibana-plugin-core-server.elasticsearchservicesetup.md) |
| [getStartServices](./kibana-plugin-core-server.coresetup.getstartservices.md) | StartServicesAccessor<TPluginsStart, TStart>
| [StartServicesAccessor](./kibana-plugin-core-server.startservicesaccessor.md) |
| [http](./kibana-plugin-core-server.coresetup.http.md) | HttpServiceSetup & {
resources: HttpResources;
}
| [HttpServiceSetup](./kibana-plugin-core-server.httpservicesetup.md) |
+| [logging](./kibana-plugin-core-server.coresetup.logging.md) | LoggingServiceSetup
| [LoggingServiceSetup](./kibana-plugin-core-server.loggingservicesetup.md) |
| [metrics](./kibana-plugin-core-server.coresetup.metrics.md) | MetricsServiceSetup
| [MetricsServiceSetup](./kibana-plugin-core-server.metricsservicesetup.md) |
| [savedObjects](./kibana-plugin-core-server.coresetup.savedobjects.md) | SavedObjectsServiceSetup
| [SavedObjectsServiceSetup](./kibana-plugin-core-server.savedobjectsservicesetup.md) |
| [status](./kibana-plugin-core-server.coresetup.status.md) | StatusServiceSetup
| [StatusServiceSetup](./kibana-plugin-core-server.statusservicesetup.md) |
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggerconfigtype.md b/docs/development/core/server/kibana-plugin-core-server.loggerconfigtype.md
new file mode 100644
index 0000000000000..c389b7e627995
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggerconfigtype.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggerConfigType](./kibana-plugin-core-server.loggerconfigtype.md)
+
+## LoggerConfigType type
+
+
+Signature:
+
+```typescript
+export declare type LoggerConfigType = TypeOf;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.appenders.md b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.appenders.md
new file mode 100644
index 0000000000000..486a5543473ea
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.appenders.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggerContextConfigInput](./kibana-plugin-core-server.loggercontextconfiginput.md) > [appenders](./kibana-plugin-core-server.loggercontextconfiginput.appenders.md)
+
+## LoggerContextConfigInput.appenders property
+
+Signature:
+
+```typescript
+appenders?: Record | Map;
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.loggers.md b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.loggers.md
new file mode 100644
index 0000000000000..64d31f7d55045
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.loggers.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggerContextConfigInput](./kibana-plugin-core-server.loggercontextconfiginput.md) > [loggers](./kibana-plugin-core-server.loggercontextconfiginput.loggers.md)
+
+## LoggerContextConfigInput.loggers property
+
+Signature:
+
+```typescript
+loggers?: LoggerConfigType[];
+```
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.md b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.md
new file mode 100644
index 0000000000000..fb6922d839cb8
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggercontextconfiginput.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggerContextConfigInput](./kibana-plugin-core-server.loggercontextconfiginput.md)
+
+## LoggerContextConfigInput interface
+
+
+Signature:
+
+```typescript
+export interface LoggerContextConfigInput
+```
+
+## Properties
+
+| Property | Type | Description |
+| --- | --- | --- |
+| [appenders](./kibana-plugin-core-server.loggercontextconfiginput.appenders.md) | Record<string, AppenderConfigType> | Map<string, AppenderConfigType>
| |
+| [loggers](./kibana-plugin-core-server.loggercontextconfiginput.loggers.md) | LoggerConfigType[]
| |
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.configure.md b/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.configure.md
new file mode 100644
index 0000000000000..04a3cf9aff644
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.configure.md
@@ -0,0 +1,42 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggingServiceSetup](./kibana-plugin-core-server.loggingservicesetup.md) > [configure](./kibana-plugin-core-server.loggingservicesetup.configure.md)
+
+## LoggingServiceSetup.configure() method
+
+Customizes the logging config for the plugin's context.
+
+Signature:
+
+```typescript
+configure(config$: Observable): void;
+```
+
+## Parameters
+
+| Parameter | Type | Description |
+| --- | --- | --- |
+| config$ | Observable<LoggerContextConfigInput>
| |
+
+Returns:
+
+`void`
+
+## Remarks
+
+Assumes that that the `context` property of the individual `logger` items emitted by `config$` are relative to the plugin's logging context (defaults to `plugins.`).
+
+## Example
+
+Customize the configuration for the plugins.data.search context.
+
+```ts
+core.logging.configure(
+ of({
+ appenders: new Map(),
+ loggers: [{ context: 'search', appenders: ['default'] }]
+ })
+)
+
+```
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.md b/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.md
new file mode 100644
index 0000000000000..010438ce28803
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.loggingservicesetup.md
@@ -0,0 +1,20 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [LoggingServiceSetup](./kibana-plugin-core-server.loggingservicesetup.md)
+
+## LoggingServiceSetup interface
+
+Provides APIs to plugins for customizing the plugin's logger.
+
+Signature:
+
+```typescript
+export interface LoggingServiceSetup
+```
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [configure(config$)](./kibana-plugin-core-server.loggingservicesetup.configure.md) | Customizes the logging config for the plugin's context. |
+
diff --git a/docs/development/core/server/kibana-plugin-core-server.md b/docs/development/core/server/kibana-plugin-core-server.md
index 0f1bbbe7176e5..29c340bc390f2 100644
--- a/docs/development/core/server/kibana-plugin-core-server.md
+++ b/docs/development/core/server/kibana-plugin-core-server.md
@@ -108,7 +108,9 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [LegacyServiceSetupDeps](./kibana-plugin-core-server.legacyservicesetupdeps.md) | |
| [LegacyServiceStartDeps](./kibana-plugin-core-server.legacyservicestartdeps.md) | |
| [Logger](./kibana-plugin-core-server.logger.md) | Logger exposes all the necessary methods to log any type of information and this is the interface used by the logging consumers including plugins. |
+| [LoggerContextConfigInput](./kibana-plugin-core-server.loggercontextconfiginput.md) | |
| [LoggerFactory](./kibana-plugin-core-server.loggerfactory.md) | The single purpose of LoggerFactory
interface is to define a way to retrieve a context-based logger instance. |
+| [LoggingServiceSetup](./kibana-plugin-core-server.loggingservicesetup.md) | Provides APIs to plugins for customizing the plugin's logger. |
| [LogMeta](./kibana-plugin-core-server.logmeta.md) | Contextual metadata |
| [MetricsServiceSetup](./kibana-plugin-core-server.metricsservicesetup.md) | APIs to retrieves metrics gathered and exposed by the core platform. |
| [NodesVersionCompatibility](./kibana-plugin-core-server.nodesversioncompatibility.md) | |
@@ -148,7 +150,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [SavedObjectsBulkUpdateResponse](./kibana-plugin-core-server.savedobjectsbulkupdateresponse.md) | |
| [SavedObjectsClientProviderOptions](./kibana-plugin-core-server.savedobjectsclientprovideroptions.md) | Options to control the creation of the Saved Objects Client. |
| [SavedObjectsClientWrapperOptions](./kibana-plugin-core-server.savedobjectsclientwrapperoptions.md) | Options passed to each SavedObjectsClientWrapperFactory to aid in creating the wrapper instance. |
-| [SavedObjectsComplexFieldMapping](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.md) | See [SavedObjectsFieldMapping](./kibana-plugin-core-server.savedobjectsfieldmapping.md) for documentation. |
+| [SavedObjectsComplexFieldMapping](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.md) | See [SavedObjectsFieldMapping](./kibana-plugin-core-server.savedobjectsfieldmapping.md) for documentation.Note: this type intentially doesn't include a type definition for defining the dynamic
mapping parameter. Saved Object fields should always inherit the dynamic: 'strict'
paramater. If you are unsure of the shape of your data use type: 'object', enabled: false
instead. |
| [SavedObjectsCoreFieldMapping](./kibana-plugin-core-server.savedobjectscorefieldmapping.md) | See [SavedObjectsFieldMapping](./kibana-plugin-core-server.savedobjectsfieldmapping.md) for documentation. |
| [SavedObjectsCreateOptions](./kibana-plugin-core-server.savedobjectscreateoptions.md) | |
| [SavedObjectsDeleteByNamespaceOptions](./kibana-plugin-core-server.savedobjectsdeletebynamespaceoptions.md) | |
@@ -209,6 +211,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| Type Alias | Description |
| --- | --- |
+| [AppenderConfigType](./kibana-plugin-core-server.appenderconfigtype.md) | |
| [AuthenticationHandler](./kibana-plugin-core-server.authenticationhandler.md) | See [AuthToolkit](./kibana-plugin-core-server.authtoolkit.md). |
| [AuthHeaders](./kibana-plugin-core-server.authheaders.md) | Auth Headers map |
| [AuthResult](./kibana-plugin-core-server.authresult.md) | |
@@ -242,6 +245,7 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [KibanaResponseFactory](./kibana-plugin-core-server.kibanaresponsefactory.md) | Creates an object containing request response payload, HTTP headers, error details, and other data transmitted to the client. |
| [KnownHeaders](./kibana-plugin-core-server.knownheaders.md) | Set of well-known HTTP headers. |
| [LifecycleResponseFactory](./kibana-plugin-core-server.lifecycleresponsefactory.md) | Creates an object containing redirection or error response with error details, HTTP headers, and other data transmitted to the client. |
+| [LoggerConfigType](./kibana-plugin-core-server.loggerconfigtype.md) | |
| [MIGRATION\_ASSISTANCE\_INDEX\_ACTION](./kibana-plugin-core-server.migration_assistance_index_action.md) | |
| [MIGRATION\_DEPRECATION\_LEVEL](./kibana-plugin-core-server.migration_deprecation_level.md) | |
| [MutatingOperationRefreshSetting](./kibana-plugin-core-server.mutatingoperationrefreshsetting.md) | Elasticsearch Refresh setting for mutating operation |
diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.dynamic.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.dynamic.md
deleted file mode 100644
index e63e543e68d51..0000000000000
--- a/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.dynamic.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [SavedObjectsComplexFieldMapping](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.md) > [dynamic](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.dynamic.md)
-
-## SavedObjectsComplexFieldMapping.dynamic property
-
-Signature:
-
-```typescript
-dynamic?: string;
-```
diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.md
index 60e62212609d9..a7d13b0015e3f 100644
--- a/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.md
+++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectscomplexfieldmapping.md
@@ -6,6 +6,8 @@
See [SavedObjectsFieldMapping](./kibana-plugin-core-server.savedobjectsfieldmapping.md) for documentation.
+Note: this type intentially doesn't include a type definition for defining the `dynamic` mapping parameter. Saved Object fields should always inherit the `dynamic: 'strict'` paramater. If you are unsure of the shape of your data use `type: 'object', enabled: false` instead.
+
Signature:
```typescript
@@ -16,7 +18,6 @@ export interface SavedObjectsComplexFieldMapping
| Property | Type | Description |
| --- | --- | --- |
-| [dynamic](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.dynamic.md) | string
| |
| [properties](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.properties.md) | SavedObjectsMappingProperties
| |
| [type](./kibana-plugin-core-server.savedobjectscomplexfieldmapping.type.md) | string
| |
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.fieldformats.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.fieldformats.md
index d39871b99f744..b51421741933a 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.fieldformats.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.fieldformats.md
@@ -10,7 +10,6 @@
fieldFormats: {
FieldFormat: typeof FieldFormat;
FieldFormatsRegistry: typeof FieldFormatsRegistry;
- serialize: (agg: import("./search").AggConfig) => import("../../expressions").SerializedFieldFormat