diff --git a/.bazelrc.common b/.bazelrc.common
index e210b06ed2706..8d865f904d600 100644
--- a/.bazelrc.common
+++ b/.bazelrc.common
@@ -132,6 +132,9 @@ coverage --instrument_test_targets
# Metadata settings
build --workspace_status_command="node ./src/dev/bazel_workspace_status.js"
+# Load remote cache settings, if they exist
+try-import %workspace%/.bazelrc.cache
+
# Load any settings specific to the current user.
# .bazelrc.user should appear in .gitignore so that settings are not shared with team members
# This needs to be last statement in this
diff --git a/.buildkite/pipelines/bazel_cache.yml b/.buildkite/pipelines/bazel_cache.yml
index daf56eb712a8d..9aa961bcddbd2 100644
--- a/.buildkite/pipelines/bazel_cache.yml
+++ b/.buildkite/pipelines/bazel_cache.yml
@@ -1,5 +1,7 @@
steps:
- label: ':pipeline: Create pipeline with priority'
+ agents:
+ queue: kibana-default
concurrency_group: bazel_macos
concurrency: 1
concurrency_method: eager
diff --git a/.buildkite/pipelines/docker_context.yml b/.buildkite/pipelines/docker_context.yml
new file mode 100644
index 0000000000000..f85b895e4780b
--- /dev/null
+++ b/.buildkite/pipelines/docker_context.yml
@@ -0,0 +1,11 @@
+ steps:
+ - command: .buildkite/scripts/steps/docker_context/build.sh
+ label: 'Docker Build Context'
+ agents:
+ queue: n2-4
+ timeout_in_minutes: 30
+ key: build-docker-context
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
\ No newline at end of file
diff --git a/.buildkite/pipelines/es_forward.yml b/.buildkite/pipelines/es_forward.yml
new file mode 100755
index 0000000000000..5de7f91876298
--- /dev/null
+++ b/.buildkite/pipelines/es_forward.yml
@@ -0,0 +1,82 @@
+steps:
+ - command: .buildkite/scripts/lifecycle/pre_build.sh
+ label: Pre-Build
+ timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
+
+ - wait
+
+ - command: .buildkite/scripts/steps/build_kibana.sh
+ label: Build Kibana Distribution and Plugins
+ agents:
+ queue: c2-16
+ key: build
+ if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''"
+ timeout_in_minutes: 60
+
+ - command: .buildkite/scripts/steps/functional/xpack_cigroup.sh
+ label: 'Default CI Group'
+ parallelism: 27
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 150
+ key: default-cigroup
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: CI_GROUP=Docker .buildkite/scripts/steps/functional/xpack_cigroup.sh
+ label: 'Docker CI Group'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ key: default-cigroup-docker
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/oss_cigroup.sh
+ label: 'OSS CI Group'
+ parallelism: 11
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ key: oss-cigroup
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/test/jest_integration.sh
+ label: 'Jest Integration Tests'
+ parallelism: 3
+ agents:
+ queue: n2-4
+ timeout_in_minutes: 120
+ key: jest-integration
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/test/api_integration.sh
+ label: 'API Integration Tests'
+ agents:
+ queue: n2-2
+ timeout_in_minutes: 120
+ key: api-integration
+
+ - wait: ~
+ continue_on_failure: true
+
+ - command: .buildkite/scripts/lifecycle/post_build.sh
+ label: Post-Build
+ timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/es_snapshots/promote.yml b/.buildkite/pipelines/es_snapshots/promote.yml
index 5a003321246a1..f2f7b423c94c2 100644
--- a/.buildkite/pipelines/es_snapshots/promote.yml
+++ b/.buildkite/pipelines/es_snapshots/promote.yml
@@ -10,3 +10,5 @@ steps:
required: true
- label: Promote Snapshot
command: .buildkite/scripts/steps/es_snapshots/promote.sh
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/es_snapshots/verify.yml b/.buildkite/pipelines/es_snapshots/verify.yml
index 7d700b1e0f489..18f3440b4acf7 100755
--- a/.buildkite/pipelines/es_snapshots/verify.yml
+++ b/.buildkite/pipelines/es_snapshots/verify.yml
@@ -14,6 +14,8 @@ steps:
- command: .buildkite/scripts/lifecycle/pre_build.sh
label: Pre-Build
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
- wait
@@ -65,6 +67,7 @@ steps:
- command: .buildkite/scripts/steps/test/jest_integration.sh
label: 'Jest Integration Tests'
+ parallelism: 3
agents:
queue: n2-4
timeout_in_minutes: 120
@@ -84,6 +87,8 @@ steps:
- command: .buildkite/scripts/steps/es_snapshots/trigger_promote.sh
label: Trigger promotion
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
depends_on:
- default-cigroup
- default-cigroup-docker
@@ -97,3 +102,5 @@ steps:
- command: .buildkite/scripts/lifecycle/post_build.sh
label: Post-Build
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/flaky_tests/pipeline.js b/.buildkite/pipelines/flaky_tests/pipeline.js
index 68e19c8e275d7..b7f93412edb37 100644
--- a/.buildkite/pipelines/flaky_tests/pipeline.js
+++ b/.buildkite/pipelines/flaky_tests/pipeline.js
@@ -1,6 +1,14 @@
-const groups = /** @type {Array<{key: string, name: string, ciGroups: number }>} */(
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+const groups = /** @type {Array<{key: string, name: string, ciGroups: number }>} */ (
require('./groups.json').groups
-)
+);
const stepInput = (key, nameOfSuite) => {
return {
@@ -22,10 +30,10 @@ const inputs = [
for (const group of groups) {
if (!group.ciGroups) {
- inputs.push(stepInput(group.key, group.name))
+ inputs.push(stepInput(group.key, group.name));
} else {
for (let i = 1; i <= group.ciGroups; i++) {
- inputs.push(stepInput(`${group.key}/${i}`, `${group.name} ${i}`))
+ inputs.push(stepInput(`${group.key}/${i}`, `${group.name} ${i}`));
}
}
}
@@ -35,7 +43,7 @@ const pipeline = {
{
input: 'Number of Runs - Click Me',
fields: inputs,
- if: `build.env('KIBANA_FLAKY_TEST_RUNNER_CONFIG') == null`
+ if: `build.env('KIBANA_FLAKY_TEST_RUNNER_CONFIG') == null`,
},
{
wait: '~',
@@ -43,6 +51,9 @@ const pipeline = {
{
command: '.buildkite/pipelines/flaky_tests/runner.sh',
label: 'Create pipeline',
+ agents: {
+ queue: 'kibana-default',
+ },
},
],
};
diff --git a/.buildkite/pipelines/flaky_tests/runner.js b/.buildkite/pipelines/flaky_tests/runner.js
index 54da6890b2b07..35872fcbf2c02 100644
--- a/.buildkite/pipelines/flaky_tests/runner.js
+++ b/.buildkite/pipelines/flaky_tests/runner.js
@@ -1,3 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
const { execSync } = require('child_process');
const concurrency = 25;
@@ -10,7 +18,9 @@ function getTestSuitesFromMetadata() {
.split('\n')
.filter((k) => k.startsWith('ftsr-suite/'));
- const overrideCount = execSync(`buildkite-agent meta-data get 'ftsr-override-count'`).toString().trim();
+ const overrideCount = execSync(`buildkite-agent meta-data get 'ftsr-override-count'`)
+ .toString()
+ .trim();
const testSuites = [];
for (const key of keys) {
@@ -19,66 +29,66 @@ function getTestSuitesFromMetadata() {
}
const value =
- overrideCount || execSync(`buildkite-agent meta-data get '${key}'`).toString().trim();
+ overrideCount && overrideCount !== '0'
+ ? overrideCount
+ : execSync(`buildkite-agent meta-data get '${key}'`).toString().trim();
const count = value === '' ? defaultCount : parseInt(value);
- totalJobs += count;
-
testSuites.push({
key: key.replace('ftsr-suite/', ''),
count: count,
});
}
- return testSuites
+ return testSuites;
}
function getTestSuitesFromJson(json) {
const fail = (errorMsg) => {
- console.error('+++ Invalid test config provided')
+ console.error('+++ Invalid test config provided');
console.error(`${errorMsg}: ${json}`);
process.exit(1);
- }
+ };
let parsed;
try {
- parsed = JSON.parse(json)
+ parsed = JSON.parse(json);
} catch (error) {
- fail(`JSON test config did not parse correctly`)
+ fail(`JSON test config did not parse correctly`);
}
if (!Array.isArray(parsed)) {
- fail(`JSON test config must be an array`)
+ fail(`JSON test config must be an array`);
}
/** @type {Array<{ key: string, count: number }>} */
- const testSuites = []
+ const testSuites = [];
for (const item of parsed) {
if (typeof item !== 'object' || item === null) {
- fail(`testSuites must be objects`)
+ fail(`testSuites must be objects`);
}
- const key = item.key
+ const key = item.key;
if (typeof key !== 'string') {
- fail(`testSuite.key must be a string`)
+ fail(`testSuite.key must be a string`);
}
const count = item.count;
if (typeof count !== 'number') {
- fail(`testSuite.count must be a number`)
+ fail(`testSuite.count must be a number`);
}
testSuites.push({
key,
count,
- })
+ });
}
- return testSuites
+ return testSuites;
}
const testSuites = process.env.KIBANA_FLAKY_TEST_RUNNER_CONFIG
? getTestSuitesFromJson(process.env.KIBANA_FLAKY_TEST_RUNNER_CONFIG)
: getTestSuitesFromMetadata();
-let totalJobs = testSuites.reduce((acc, t) => acc + t.count, initialJobs);
+const totalJobs = testSuites.reduce((acc, t) => acc + t.count, initialJobs);
if (totalJobs > 500) {
console.error('+++ Too many tests');
@@ -103,7 +113,7 @@ steps.push({
label: 'Build Kibana Distribution and Plugins',
agents: { queue: 'c2-8' },
key: 'build',
- if: "build.env('BUILD_ID_FOR_ARTIFACTS') == null || build.env('BUILD_ID_FOR_ARTIFACTS') == ''",
+ if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''",
});
for (const testSuite of testSuites) {
diff --git a/.buildkite/pipelines/hourly.yml b/.buildkite/pipelines/hourly.yml
deleted file mode 100644
index e0a072684e033..0000000000000
--- a/.buildkite/pipelines/hourly.yml
+++ /dev/null
@@ -1,177 +0,0 @@
-env:
- REPORT_FAILED_TESTS_TO_GITHUB: 'true'
-steps:
- - command: .buildkite/scripts/lifecycle/pre_build.sh
- label: Pre-Build
- timeout_in_minutes: 10
-
- - wait
-
- - command: .buildkite/scripts/steps/build_kibana.sh
- label: Build Kibana Distribution and Plugins
- agents:
- queue: c2-16
- key: build
- if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''"
- timeout_in_minutes: 60
-
- - command: .buildkite/scripts/steps/functional/xpack_cigroup.sh
- label: 'Default CI Group'
- parallelism: 27
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 150
- key: default-cigroup
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: CI_GROUP=Docker .buildkite/scripts/steps/functional/xpack_cigroup.sh
- label: 'Docker CI Group'
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 120
- key: default-cigroup-docker
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/oss_cigroup.sh
- label: 'OSS CI Group'
- parallelism: 11
- agents:
- queue: ci-group-4d
- depends_on: build
- timeout_in_minutes: 120
- key: oss-cigroup
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/oss_accessibility.sh
- label: 'OSS Accessibility Tests'
- agents:
- queue: ci-group-4d
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/xpack_accessibility.sh
- label: 'Default Accessibility Tests'
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/oss_firefox.sh
- label: 'OSS Firefox Tests'
- agents:
- queue: ci-group-4d
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/xpack_firefox.sh
- label: 'Default Firefox Tests'
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/oss_misc.sh
- label: 'OSS Misc Functional Tests'
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/functional/xpack_saved_object_field_metrics.sh
- label: 'Saved Object Field Metrics'
- agents:
- queue: n2-4
- depends_on: build
- timeout_in_minutes: 120
- retry:
- automatic:
- - exit_status: '*'
- limit: 1
-
- - command: .buildkite/scripts/steps/test/jest.sh
- label: 'Jest Tests'
- parallelism: 8
- agents:
- queue: n2-4
- timeout_in_minutes: 90
- key: jest
-
- - command: .buildkite/scripts/steps/test/jest_integration.sh
- label: 'Jest Integration Tests'
- agents:
- queue: n2-4
- timeout_in_minutes: 120
- key: jest-integration
-
- - command: .buildkite/scripts/steps/test/api_integration.sh
- label: 'API Integration Tests'
- agents:
- queue: n2-2
- timeout_in_minutes: 120
- key: api-integration
-
- - command: .buildkite/scripts/steps/lint.sh
- label: 'Linting'
- agents:
- queue: n2-2
- key: linting
- timeout_in_minutes: 90
-
- - command: .buildkite/scripts/steps/lint_with_types.sh
- label: 'Linting (with types)'
- agents:
- queue: c2-16
- key: linting_with_types
- timeout_in_minutes: 90
-
- - command: .buildkite/scripts/steps/checks.sh
- label: 'Checks'
- agents:
- queue: c2-8
- key: checks
- timeout_in_minutes: 120
-
- - command: .buildkite/scripts/steps/storybooks/build_and_upload.sh
- label: 'Build Storybooks'
- agents:
- queue: c2-4
- key: storybooks
- timeout_in_minutes: 60
-
- - wait: ~
- continue_on_failure: true
-
- - command: .buildkite/scripts/lifecycle/post_build.sh
- label: Post-Build
- timeout_in_minutes: 10
diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml
index efe522f592ecd..3e54882d1ef62 100644
--- a/.buildkite/pipelines/on_merge.yml
+++ b/.buildkite/pipelines/on_merge.yml
@@ -5,20 +5,204 @@ steps:
- command: .buildkite/scripts/lifecycle/pre_build.sh
label: Pre-Build
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
- wait
- command: .buildkite/scripts/steps/on_merge_build_and_metrics.sh
- label: Default Build and Metrics
+ label: Build Kibana Distribution and Plugins
agents:
- queue: c2-8
+ queue: c2-16
+ key: build
timeout_in_minutes: 60
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
- command: .buildkite/scripts/steps/on_merge_ts_refs_api_docs.sh
label: Build TS Refs and Check Public API Docs
+ key: public-api-docs
agents:
queue: c2-4
timeout_in_minutes: 80
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/ci_stats_ready.sh
+ label: Mark CI Stats as ready
+ agents:
+ queue: kibana-default
+ timeout_in_minutes: 10
+ depends_on:
+ - build
+ - public-api-docs
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/xpack_cigroup.sh
+ label: 'Default CI Group'
+ parallelism: 27
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 150
+ key: default-cigroup
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: CI_GROUP=Docker .buildkite/scripts/steps/functional/xpack_cigroup.sh
+ label: 'Docker CI Group'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ key: default-cigroup-docker
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/oss_cigroup.sh
+ label: 'OSS CI Group'
+ parallelism: 11
+ agents:
+ queue: ci-group-4d
+ depends_on: build
+ timeout_in_minutes: 120
+ key: oss-cigroup
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/oss_accessibility.sh
+ label: 'OSS Accessibility Tests'
+ agents:
+ queue: ci-group-4d
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/xpack_accessibility.sh
+ label: 'Default Accessibility Tests'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/oss_firefox.sh
+ label: 'OSS Firefox Tests'
+ agents:
+ queue: ci-group-4d
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/xpack_firefox.sh
+ label: 'Default Firefox Tests'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/oss_misc.sh
+ label: 'OSS Misc Functional Tests'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/functional/xpack_saved_object_field_metrics.sh
+ label: 'Saved Object Field Metrics'
+ agents:
+ queue: n2-4
+ depends_on: build
+ timeout_in_minutes: 120
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
+ - command: .buildkite/scripts/steps/test/jest.sh
+ label: 'Jest Tests'
+ parallelism: 8
+ agents:
+ queue: n2-4
+ timeout_in_minutes: 90
+ key: jest
+
+ - command: .buildkite/scripts/steps/test/jest_integration.sh
+ label: 'Jest Integration Tests'
+ parallelism: 3
+ agents:
+ queue: n2-4
+ timeout_in_minutes: 120
+ key: jest-integration
+
+ - command: .buildkite/scripts/steps/test/api_integration.sh
+ label: 'API Integration Tests'
+ agents:
+ queue: n2-2
+ timeout_in_minutes: 120
+ key: api-integration
+
+ - command: .buildkite/scripts/steps/lint.sh
+ label: 'Linting'
+ agents:
+ queue: n2-2
+ key: linting
+ timeout_in_minutes: 90
+
+ - command: .buildkite/scripts/steps/lint_with_types.sh
+ label: 'Linting (with types)'
+ agents:
+ queue: c2-16
+ key: linting_with_types
+ timeout_in_minutes: 90
+
+ - command: .buildkite/scripts/steps/checks.sh
+ label: 'Checks'
+ agents:
+ queue: c2-8
+ key: checks
+ timeout_in_minutes: 120
+
+ - command: .buildkite/scripts/steps/storybooks/build_and_upload.sh
+ label: 'Build Storybooks'
+ agents:
+ queue: c2-4
+ key: storybooks
+ timeout_in_minutes: 60
- wait: ~
continue_on_failure: true
@@ -26,3 +210,5 @@ steps:
- command: .buildkite/scripts/lifecycle/post_build.sh
label: Post-Build
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/package_testing.yml b/.buildkite/pipelines/package_testing.yml
new file mode 100644
index 0000000000000..e9e1ca896c949
--- /dev/null
+++ b/.buildkite/pipelines/package_testing.yml
@@ -0,0 +1,27 @@
+steps:
+ - command: .buildkite/scripts/steps/package_testing/build.sh
+ label: Build Packages
+ agents:
+ queue: c2-16
+ timeout_in_minutes: 60
+ if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''"
+
+ - wait
+
+ - command: TEST_PACKAGE=deb .buildkite/scripts/steps/package_testing/test.sh
+ label: Package testing for deb
+ agents:
+ queue: n2-4-virt
+ timeout_in_minutes: 60
+
+ - command: TEST_PACKAGE=rpm .buildkite/scripts/steps/package_testing/test.sh
+ label: Package testing for rpm
+ agents:
+ queue: n2-4-virt
+ timeout_in_minutes: 60
+
+ - command: TEST_PACKAGE=docker .buildkite/scripts/steps/package_testing/test.sh
+ label: Package testing for docker
+ agents:
+ queue: n2-4-virt
+ timeout_in_minutes: 60
diff --git a/.buildkite/pipelines/performance/daily.yml b/.buildkite/pipelines/performance/daily.yml
new file mode 100644
index 0000000000000..564bfb5e501b3
--- /dev/null
+++ b/.buildkite/pipelines/performance/daily.yml
@@ -0,0 +1,36 @@
+steps:
+ - block: ':gear: Performance Tests Configuration'
+ prompt: 'Fill out the details for performance test'
+ fields:
+ - text: ':arrows_counterclockwise: Iterations'
+ key: 'performance-test-iteration-count'
+ hint: 'How many times you want to run tests? '
+ required: true
+ if: build.env('PERF_TEST_COUNT') == null
+
+ - label: ':male-mechanic::skin-tone-2: Pre-Build'
+ command: .buildkite/scripts/lifecycle/pre_build.sh
+ agents:
+ queue: kibana-default
+
+ - wait
+
+ - label: ':factory_worker: Build Kibana Distribution and Plugins'
+ command: .buildkite/scripts/steps/build_kibana.sh
+ agents:
+ queue: c2-16
+ key: build
+
+ - label: ':muscle: Performance Tests with Playwright config'
+ command: .buildkite/scripts/steps/functional/performance_playwright.sh
+ agents:
+ queue: c2-16
+ depends_on: build
+
+ - wait: ~
+ continue_on_failure: true
+
+ - label: ':male_superhero::skin-tone-2: Post-Build'
+ command: .buildkite/scripts/lifecycle/post_build.sh
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/performance/nightly.yml b/.buildkite/pipelines/performance/nightly.yml
deleted file mode 100644
index dfee1061815c3..0000000000000
--- a/.buildkite/pipelines/performance/nightly.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-steps:
- - block: ":gear: Performance Tests Configuration"
- prompt: "Fill out the details for performance test"
- fields:
- - text: ":arrows_counterclockwise: Iterations"
- key: "performance-test-iteration-count"
- hint: "How many times you want to run tests? "
- required: true
- if: build.env('ITERATION_COUNT_ENV') == null
-
- - label: ":male-mechanic::skin-tone-2: Pre-Build"
- command: .buildkite/scripts/lifecycle/pre_build.sh
-
- - wait
-
- - label: ":factory_worker: Build Kibana Distribution and Plugins"
- command: .buildkite/scripts/steps/build_kibana.sh
- agents:
- queue: c2-16
- key: build
-
- - label: ":muscle: Performance Tests"
- command: .buildkite/scripts/steps/functional/performance.sh
- agents:
- queue: ci-group-6
- depends_on: build
-
- - wait: ~
- continue_on_failure: true
-
- - label: ":male_superhero::skin-tone-2: Post-Build"
- command: .buildkite/scripts/lifecycle/post_build.sh
-
diff --git a/.buildkite/pipelines/pull_request.yml b/.buildkite/pipelines/pull_request.yml
deleted file mode 100644
index 41c13bb403e1a..0000000000000
--- a/.buildkite/pipelines/pull_request.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-env:
- GITHUB_COMMIT_STATUS_ENABLED: 'true'
- GITHUB_COMMIT_STATUS_CONTEXT: 'buildkite/kibana-pull-request'
-steps:
- - command: .buildkite/scripts/lifecycle/pre_build.sh
- label: Pre-Build
-
- - wait
-
- - command: echo 'Hello World'
- label: Test
-
- - wait: ~
- continue_on_failure: true
-
- - command: .buildkite/scripts/lifecycle/post_build.sh
- label: Post-Build
diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml
index b99473c23d746..8151455db65fe 100644
--- a/.buildkite/pipelines/pull_request/base.yml
+++ b/.buildkite/pipelines/pull_request/base.yml
@@ -2,6 +2,8 @@ steps:
- command: .buildkite/scripts/lifecycle/pre_build.sh
label: Pre-Build
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
- wait
@@ -127,6 +129,7 @@ steps:
- command: .buildkite/scripts/steps/test/jest_integration.sh
label: 'Jest Integration Tests'
+ parallelism: 3
agents:
queue: n2-4
timeout_in_minutes: 120
@@ -166,3 +169,10 @@ steps:
queue: c2-4
key: storybooks
timeout_in_minutes: 60
+
+ - command: .buildkite/scripts/steps/build_api_docs.sh
+ label: 'Build API Docs'
+ agents:
+ queue: n2-4
+ key: build_api_docs
+ timeout_in_minutes: 60
diff --git a/.buildkite/pipelines/pull_request/post_build.yml b/.buildkite/pipelines/pull_request/post_build.yml
index 4f252bf8abc11..63f7169334584 100644
--- a/.buildkite/pipelines/pull_request/post_build.yml
+++ b/.buildkite/pipelines/pull_request/post_build.yml
@@ -4,3 +4,5 @@ steps:
- command: .buildkite/scripts/lifecycle/post_build.sh
label: Post-Build
+ agents:
+ queue: kibana-default
diff --git a/.buildkite/pipelines/update_demo_env.yml b/.buildkite/pipelines/update_demo_env.yml
index e2dfdd782fd41..12c4f296f5dfd 100644
--- a/.buildkite/pipelines/update_demo_env.yml
+++ b/.buildkite/pipelines/update_demo_env.yml
@@ -2,6 +2,8 @@ steps:
- command: .buildkite/scripts/steps/demo_env/es_and_init.sh
label: Initialize Environment and Deploy ES
timeout_in_minutes: 10
+ agents:
+ queue: kibana-default
- command: .buildkite/scripts/steps/demo_env/kibana.sh
label: Build and Deploy Kibana
diff --git a/.buildkite/scripts/bootstrap.sh b/.buildkite/scripts/bootstrap.sh
index d4e8434fe6df8..dbba709d883d1 100755
--- a/.buildkite/scripts/bootstrap.sh
+++ b/.buildkite/scripts/bootstrap.sh
@@ -15,11 +15,11 @@ if ! yarn kbn bootstrap; then
rm -rf node_modules
echo "--- yarn install and bootstrap, attempt 2"
- yarn kbn bootstrap
+ yarn kbn bootstrap --force-install
fi
if [[ "$DISABLE_BOOTSTRAP_VALIDATION" != "true" ]]; then
- verify_no_git_changes 'yarn kbn bootstrap'
+ check_for_changed_files 'yarn kbn bootstrap'
fi
###
diff --git a/.buildkite/scripts/build_kibana.sh b/.buildkite/scripts/build_kibana.sh
index a7fbcc0ea4b92..482f730284a94 100755
--- a/.buildkite/scripts/build_kibana.sh
+++ b/.buildkite/scripts/build_kibana.sh
@@ -8,7 +8,7 @@ echo "--- Build Kibana Distribution"
if [[ "${GITHUB_PR_LABELS:-}" == *"ci:build-all-platforms"* ]]; then
node scripts/build --all-platforms --skip-os-packages
elif [[ "${GITHUB_PR_LABELS:-}" == *"ci:build-os-packages"* ]]; then
- node scripts/build --all-platforms
+ node scripts/build --all-platforms --docker-cross-compile
else
node scripts/build
fi
diff --git a/.buildkite/scripts/common/env.sh b/.buildkite/scripts/common/env.sh
index 9430b12accaf0..20f0de8600b36 100755
--- a/.buildkite/scripts/common/env.sh
+++ b/.buildkite/scripts/common/env.sh
@@ -22,6 +22,9 @@ KIBANA_PKG_BRANCH="$(jq -r .branch "$KIBANA_DIR/package.json")"
export KIBANA_PKG_BRANCH
export KIBANA_BASE_BRANCH="$KIBANA_PKG_BRANCH"
+KIBANA_PKG_VERSION="$(jq -r .version "$KIBANA_DIR/package.json")"
+export KIBANA_PKG_VERSION
+
export GECKODRIVER_CDNURL="https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache"
export CHROMEDRIVER_CDNURL="https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache"
export RE2_DOWNLOAD_MIRROR="https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache"
@@ -92,12 +95,3 @@ fi
export BUILD_TS_REFS_DISABLE=true
export DISABLE_BOOTSTRAP_VALIDATION=true
-
-export TEST_KIBANA_HOST=localhost
-export TEST_KIBANA_PORT=6101
-export TEST_KIBANA_URL="http://elastic:changeme@localhost:6101"
-export TEST_ES_URL="http://elastic:changeme@localhost:6102"
-export TEST_ES_TRANSPORT_PORT=6301-6309
-export TEST_CORS_SERVER_PORT=6106
-export ALERTING_PROXY_PORT=6105
-export TEST_PROXY_SERVER_PORT=6107
diff --git a/.buildkite/scripts/common/setup_node.sh b/.buildkite/scripts/common/setup_node.sh
index 06f466b61e456..b8716af226bdc 100755
--- a/.buildkite/scripts/common/setup_node.sh
+++ b/.buildkite/scripts/common/setup_node.sh
@@ -61,7 +61,14 @@ YARN_VERSION=$(node -e "console.log(String(require('./package.json').engines.yar
export YARN_VERSION
if [[ ! $(which yarn) || $(yarn --version) != "$YARN_VERSION" ]]; then
- npm install -g "yarn@^${YARN_VERSION}"
+ rm -rf "$(npm root -g)/yarn" # in case the directory is in a bad state
+ if [[ ! $(npm install -g "yarn@^${YARN_VERSION}") ]]; then
+ # If this command is terminated early, e.g. because the build was cancelled in buildkite,
+ # a yarn directory is left behind in a bad state that can cause all subsequent installs to fail
+ rm -rf "$(npm root -g)/yarn"
+ echo "Trying again to install yarn..."
+ npm install -g "yarn@^${YARN_VERSION}"
+ fi
fi
yarn config set yarn-offline-mirror "$YARN_OFFLINE_CACHE"
diff --git a/.buildkite/scripts/common/util.sh b/.buildkite/scripts/common/util.sh
index 4a81506200cfa..d6aa988a4c696 100755
--- a/.buildkite/scripts/common/util.sh
+++ b/.buildkite/scripts/common/util.sh
@@ -14,17 +14,46 @@ is_pr() {
false
}
-verify_no_git_changes() {
+check_for_changed_files() {
RED='\033[0;31m'
YELLOW='\033[0;33m'
C_RESET='\033[0m' # Reset color
+ SHOULD_AUTO_COMMIT_CHANGES="${2:-}"
GIT_CHANGES="$(git ls-files --modified -- . ':!:.bazelrc')"
+
if [ "$GIT_CHANGES" ]; then
- echo -e "\n${RED}ERROR: '$1' caused changes to the following files:${C_RESET}\n"
- echo -e "$GIT_CHANGES\n"
- echo -e "\n${YELLOW}TO FIX: Run '$1' locally, commit the changes and push to your branch${C_RESET}\n"
- exit 1
+ if [[ "$SHOULD_AUTO_COMMIT_CHANGES" == "true" && "${BUILDKITE_PULL_REQUEST:-}" ]]; then
+ NEW_COMMIT_MESSAGE="[CI] Auto-commit changed files from '$1'"
+ PREVIOUS_COMMIT_MESSAGE="$(git log -1 --pretty=%B)"
+
+ if [[ "$NEW_COMMIT_MESSAGE" == "$PREVIOUS_COMMIT_MESSAGE" ]]; then
+ echo -e "\n${RED}ERROR: '$1' caused changes to the following files:${C_RESET}\n"
+ echo -e "$GIT_CHANGES\n"
+ echo -e "CI already attempted to commit these changes, but the file(s) seem to have changed again."
+ echo -e "Please review and fix manually."
+ exit 1
+ fi
+
+ echo "'$1' caused changes to the following files:"
+ echo "$GIT_CHANGES"
+ echo ""
+ echo "Auto-committing these changes now. A new build should start soon if successful."
+
+ git config --global user.name kibanamachine
+ git config --global user.email '42973632+kibanamachine@users.noreply.github.com'
+ gh pr checkout "${BUILDKITE_PULL_REQUEST}"
+ git add -u -- . ':!.bazelrc'
+
+ git commit -m "$NEW_COMMIT_MESSAGE"
+ git push
+ exit 1
+ else
+ echo -e "\n${RED}ERROR: '$1' caused changes to the following files:${C_RESET}\n"
+ echo -e "$GIT_CHANGES\n"
+ echo -e "\n${YELLOW}TO FIX: Run '$1' locally, commit the changes and push to your branch${C_RESET}\n"
+ exit 1
+ fi
fi
}
diff --git a/.buildkite/scripts/lifecycle/annotate_test_failures.js b/.buildkite/scripts/lifecycle/annotate_test_failures.js
index caf1e08c2bb4d..068ca4b8329f1 100644
--- a/.buildkite/scripts/lifecycle/annotate_test_failures.js
+++ b/.buildkite/scripts/lifecycle/annotate_test_failures.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
const { TestFailures } = require('kibana-buildkite-library');
(async () => {
diff --git a/.buildkite/scripts/lifecycle/build_status.js b/.buildkite/scripts/lifecycle/build_status.js
index f2a5024c96013..6658cc4647864 100644
--- a/.buildkite/scripts/lifecycle/build_status.js
+++ b/.buildkite/scripts/lifecycle/build_status.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
const { BuildkiteClient } = require('kibana-buildkite-library');
(async () => {
diff --git a/.buildkite/scripts/lifecycle/ci_stats_complete.js b/.buildkite/scripts/lifecycle/ci_stats_complete.js
index d9411178799ab..b8347fa606ebe 100644
--- a/.buildkite/scripts/lifecycle/ci_stats_complete.js
+++ b/.buildkite/scripts/lifecycle/ci_stats_complete.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
const { CiStats } = require('kibana-buildkite-library');
(async () => {
diff --git a/.buildkite/scripts/lifecycle/ci_stats_ready.js b/.buildkite/scripts/lifecycle/ci_stats_ready.js
new file mode 100644
index 0000000000000..98b03a56d0023
--- /dev/null
+++ b/.buildkite/scripts/lifecycle/ci_stats_ready.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
+const { CiStats } = require('kibana-buildkite-library');
+
+(async () => {
+ try {
+ await CiStats.onMetricsViable();
+ } catch (ex) {
+ console.error('CI Stats Error', ex.message);
+ if (ex.response) {
+ console.error('HTTP Error Response Status', ex.response.status);
+ console.error('HTTP Error Response Body', ex.response.data);
+ }
+ process.exit(1);
+ }
+})();
diff --git a/.buildkite/scripts/lifecycle/ci_stats_start.js b/.buildkite/scripts/lifecycle/ci_stats_start.js
index ec0e4c713499e..ea23b2bc7ad32 100644
--- a/.buildkite/scripts/lifecycle/ci_stats_start.js
+++ b/.buildkite/scripts/lifecycle/ci_stats_start.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
const { CiStats } = require('kibana-buildkite-library');
(async () => {
diff --git a/.buildkite/scripts/lifecycle/pre_command.sh b/.buildkite/scripts/lifecycle/pre_command.sh
index b1600f30dc989..804a670c707b0 100755
--- a/.buildkite/scripts/lifecycle/pre_command.sh
+++ b/.buildkite/scripts/lifecycle/pre_command.sh
@@ -9,8 +9,22 @@ export BUILDKITE_TOKEN
echo '--- Install buildkite dependencies'
cd '.buildkite'
-retry 5 15 yarn install --production --pure-lockfile
-cd -
+
+# If this yarn install is terminated early, e.g. if the build is cancelled in buildkite,
+# A node module could end up in a bad state that can cause all future builds to fail
+# So, let's cache clean and try again to make sure that's not what caused the error
+install_deps() {
+ yarn install --production --pure-lockfile
+ EXIT=$?
+ if [[ "$EXIT" != "0" ]]; then
+ yarn cache clean
+ fi
+ return $EXIT
+}
+
+retry 5 15 install_deps
+
+cd ..
node .buildkite/scripts/lifecycle/print_agent_links.js || true
diff --git a/.buildkite/scripts/lifecycle/print_agent_links.js b/.buildkite/scripts/lifecycle/print_agent_links.js
index 59613946c1db4..f1cbff29398d9 100644
--- a/.buildkite/scripts/lifecycle/print_agent_links.js
+++ b/.buildkite/scripts/lifecycle/print_agent_links.js
@@ -1,3 +1,12 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+// eslint-disable-next-line import/no-unresolved
const { BuildkiteClient } = require('kibana-buildkite-library');
(async () => {
diff --git a/.buildkite/scripts/pipelines/pull_request/pipeline.js b/.buildkite/scripts/pipelines/pull_request/pipeline.js
index c5ed216042b68..7b5a5e7ba0fe7 100644
--- a/.buildkite/scripts/pipelines/pull_request/pipeline.js
+++ b/.buildkite/scripts/pipelines/pull_request/pipeline.js
@@ -1,5 +1,14 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
const execSync = require('child_process').execSync;
const fs = require('fs');
+// eslint-disable-next-line import/no-unresolved
const { areChangesSkippable, doAnyChangesMatch } = require('kibana-buildkite-library');
const SKIPPABLE_PATHS = [
diff --git a/.buildkite/scripts/steps/build_api_docs.sh b/.buildkite/scripts/steps/build_api_docs.sh
new file mode 100755
index 0000000000000..00387fa657a59
--- /dev/null
+++ b/.buildkite/scripts/steps/build_api_docs.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+.buildkite/scripts/bootstrap.sh
+
+echo "--- Build TS Refs"
+node scripts/build_ts_refs \
+ --clean \
+ --no-cache \
+ --force
+
+echo "--- Build API Docs"
+node --max-old-space-size=12000 scripts/build_api_docs
diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh
index 9e335fc3cdea3..1a2bf9381059f 100755
--- a/.buildkite/scripts/steps/checks.sh
+++ b/.buildkite/scripts/steps/checks.sh
@@ -12,7 +12,7 @@ export DISABLE_BOOTSTRAP_VALIDATION=false
.buildkite/scripts/steps/checks/doc_api_changes.sh
.buildkite/scripts/steps/checks/kbn_pm_dist.sh
.buildkite/scripts/steps/checks/plugin_list_docs.sh
-.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
+.buildkite/scripts/steps/checks/check_types.sh
.buildkite/scripts/steps/checks/bundle_limits.sh
.buildkite/scripts/steps/checks/i18n.sh
.buildkite/scripts/steps/checks/file_casing.sh
diff --git a/.buildkite/scripts/steps/checks/check_types.sh b/.buildkite/scripts/steps/checks/check_types.sh
new file mode 100755
index 0000000000000..3b649a73e8060
--- /dev/null
+++ b/.buildkite/scripts/steps/checks/check_types.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+source .buildkite/scripts/common/util.sh
+
+echo --- Check Types
+checks-reporter-with-killswitch "Check Types" \
+ node scripts/type_check
diff --git a/.buildkite/scripts/steps/checks/kbn_pm_dist.sh b/.buildkite/scripts/steps/checks/kbn_pm_dist.sh
index 61281bc136311..6f75bd9ea4e29 100755
--- a/.buildkite/scripts/steps/checks/kbn_pm_dist.sh
+++ b/.buildkite/scripts/steps/checks/kbn_pm_dist.sh
@@ -7,4 +7,4 @@ source .buildkite/scripts/common/util.sh
echo "--- Building kbn-pm distributable"
yarn kbn run build -i @kbn/pm
-verify_no_git_changes 'yarn kbn run build -i @kbn/pm'
+check_for_changed_files 'yarn kbn run build -i @kbn/pm' true
diff --git a/.buildkite/scripts/steps/checks/plugin_list_docs.sh b/.buildkite/scripts/steps/checks/plugin_list_docs.sh
index b422e478aaf7d..04797887a9006 100755
--- a/.buildkite/scripts/steps/checks/plugin_list_docs.sh
+++ b/.buildkite/scripts/steps/checks/plugin_list_docs.sh
@@ -7,4 +7,4 @@ source .buildkite/scripts/common/util.sh
echo "--- Building plugin list docs"
node scripts/build_plugin_list_docs
-verify_no_git_changes 'node scripts/build_plugin_list_docs'
+check_for_changed_files 'node scripts/build_plugin_list_docs' true
diff --git a/.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh b/.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
deleted file mode 100755
index 5827fd5eb2284..0000000000000
--- a/.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-source .buildkite/scripts/common/util.sh
-
-echo --- Build TS Refs
-checks-reporter-with-killswitch "Build TS Refs" \
- node scripts/build_ts_refs \
- --clean \
- --no-cache \
- --force
-
-checks-reporter-with-killswitch "Check Types" \
- node scripts/type_check &> target/check_types.log &
-check_types_pid=$!
-
-node --max-old-space-size=12000 scripts/build_api_docs &> target/build_api_docs.log &
-api_docs_pid=$!
-
-wait $check_types_pid
-check_types_exit=$?
-
-wait $api_docs_pid
-api_docs_exit=$?
-
-echo --- Check Types
-cat target/check_types.log
-if [[ "$check_types_exit" != "0" ]]; then echo "^^^ +++"; fi
-
-echo --- Building api docs
-cat target/build_api_docs.log
-if [[ "$api_docs_exit" != "0" ]]; then echo "^^^ +++"; fi
-
-if [[ "${api_docs_exit}${check_types_exit}" != "00" ]]; then
- exit 1
-fi
diff --git a/.buildkite/scripts/steps/ci_stats_ready.sh b/.buildkite/scripts/steps/ci_stats_ready.sh
new file mode 100755
index 0000000000000..92ea6a70fd779
--- /dev/null
+++ b/.buildkite/scripts/steps/ci_stats_ready.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+source .buildkite/scripts/common/util.sh
+
+node .buildkite/scripts/lifecycle/ci_stats_ready.js
diff --git a/.buildkite/scripts/steps/demo_env/kibana.sh b/.buildkite/scripts/steps/demo_env/kibana.sh
index f10ed4013bc0c..f38d43b5479e6 100755
--- a/.buildkite/scripts/steps/demo_env/kibana.sh
+++ b/.buildkite/scripts/steps/demo_env/kibana.sh
@@ -9,7 +9,7 @@ source "$(dirname "${0}")/config.sh"
export KIBANA_IMAGE="gcr.io/elastic-kibana-184716/demo/kibana:$DEPLOYMENT_NAME-$(git rev-parse HEAD)"
echo '--- Build Kibana'
-node scripts/build --debug --docker-images --example-plugins --skip-os-packages --skip-docker-ubi
+node scripts/build --debug --docker-images --example-plugins --skip-docker-ubi
echo '--- Build Docker image with example plugins'
cd target/example_plugins
diff --git a/.buildkite/scripts/steps/docker_context/build.sh b/.buildkite/scripts/steps/docker_context/build.sh
new file mode 100644
index 0000000000000..42152d005ffa9
--- /dev/null
+++ b/.buildkite/scripts/steps/docker_context/build.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -euo pipefail
+
+.buildkite/scripts/bootstrap.sh
+
+echo "--- Create Kibana Docker contexts"
+mkdir -p target
+node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives
+
+echo "--- Build default context"
+DOCKER_BUILD_FOLDER=$(mktemp -d)
+
+tar -xf target/kibana-[0-9]*-docker-build-context.tar.gz -C "$DOCKER_BUILD_FOLDER"
+cd $DOCKER_BUILD_FOLDER
+docker build .
diff --git a/.buildkite/scripts/steps/es_snapshots/bucket_config.js b/.buildkite/scripts/steps/es_snapshots/bucket_config.js
index a18d1182c4a89..6bbe80b60e764 100644
--- a/.buildkite/scripts/steps/es_snapshots/bucket_config.js
+++ b/.buildkite/scripts/steps/es_snapshots/bucket_config.js
@@ -1,3 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
module.exports = {
BASE_BUCKET_DAILY: 'kibana-ci-es-snapshots-daily',
BASE_BUCKET_PERMANENT: 'kibana-ci-es-snapshots-permanent',
diff --git a/.buildkite/scripts/steps/es_snapshots/create_manifest.js b/.buildkite/scripts/steps/es_snapshots/create_manifest.js
index 3173737e984e8..cb4ea29a9c534 100644
--- a/.buildkite/scripts/steps/es_snapshots/create_manifest.js
+++ b/.buildkite/scripts/steps/es_snapshots/create_manifest.js
@@ -1,3 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
const fs = require('fs');
const { execSync } = require('child_process');
const { BASE_BUCKET_DAILY } = require('./bucket_config.js');
@@ -47,7 +55,7 @@ const { BASE_BUCKET_DAILY } = require('./bucket_config.js');
version: parts[1],
platform: parts[3],
architecture: parts[4].split('.')[0],
- license: parts[0] == 'oss' ? 'oss' : 'default',
+ license: parts[0] === 'oss' ? 'oss' : 'default',
};
});
diff --git a/.buildkite/scripts/steps/es_snapshots/promote_manifest.js b/.buildkite/scripts/steps/es_snapshots/promote_manifest.js
index ce14935dd1b84..d7ff670755712 100644
--- a/.buildkite/scripts/steps/es_snapshots/promote_manifest.js
+++ b/.buildkite/scripts/steps/es_snapshots/promote_manifest.js
@@ -1,3 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
const fs = require('fs');
const { execSync } = require('child_process');
const { BASE_BUCKET_DAILY, BASE_BUCKET_PERMANENT } = require('./bucket_config.js');
diff --git a/.buildkite/scripts/steps/functional/performance.sh b/.buildkite/scripts/steps/functional/performance_playwright.sh
similarity index 52%
rename from .buildkite/scripts/steps/functional/performance.sh
rename to .buildkite/scripts/steps/functional/performance_playwright.sh
index 8e3793733a6e8..c38ef5e56dbe4 100644
--- a/.buildkite/scripts/steps/functional/performance.sh
+++ b/.buildkite/scripts/steps/functional/performance_playwright.sh
@@ -2,20 +2,22 @@
set -uo pipefail
-if [ -z "${ITERATION_COUNT_ENV+x}" ]; then
- ITERATION_COUNT="$(buildkite-agent meta-data get performance-test-iteration-count)"
+if [ -z "${PERF_TEST_COUNT+x}" ]; then
+ TEST_COUNT="$(buildkite-agent meta-data get performance-test-iteration-count)"
else
- ITERATION_COUNT=$ITERATION_COUNT_ENV
+ TEST_COUNT=$PERF_TEST_COUNT
fi
-tput setab 2; tput setaf 0; echo "Performance test will be run at ${BUILDKITE_BRANCH} ${ITERATION_COUNT} times"
+tput setab 2; tput setaf 0; echo "Performance test will be run at ${BUILDKITE_BRANCH} ${TEST_COUNT} times"
cat << EOF | buildkite-agent pipeline upload
steps:
- - command: .buildkite/scripts/steps/functional/performance_sub.sh
- parallelism: "$ITERATION_COUNT"
+ - command: .buildkite/scripts/steps/functional/performance_sub_playwright.sh
+ parallelism: "$TEST_COUNT"
concurrency: 20
concurrency_group: 'performance-test-group'
+ agents:
+ queue: c2-16
EOF
diff --git a/.buildkite/scripts/steps/functional/performance_sub.sh b/.buildkite/scripts/steps/functional/performance_sub.sh
deleted file mode 100644
index d3e6c0ba7304e..0000000000000
--- a/.buildkite/scripts/steps/functional/performance_sub.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-source .buildkite/scripts/common/util.sh
-
-.buildkite/scripts/bootstrap.sh
-.buildkite/scripts/download_build_artifacts.sh
-
-cd "$XPACK_DIR"
-
-echo --- Run Performance Tests
-checks-reporter-with-killswitch "Run Performance Tests" \
- node scripts/functional_tests \
- --debug --bail \
- --kibana-install-dir "$KIBANA_BUILD_LOCATION" \
- --config test/performance/config.ts;
diff --git a/.buildkite/scripts/steps/functional/performance_sub_playwright.sh b/.buildkite/scripts/steps/functional/performance_sub_playwright.sh
new file mode 100644
index 0000000000000..fee171aef9a48
--- /dev/null
+++ b/.buildkite/scripts/steps/functional/performance_sub_playwright.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+source .buildkite/scripts/common/util.sh
+
+.buildkite/scripts/bootstrap.sh
+.buildkite/scripts/download_build_artifacts.sh
+
+echo --- Run Performance Tests with Playwright config
+
+node scripts/es snapshot&
+
+esPid=$!
+
+export TEST_PERFORMANCE_PHASE=WARMUP
+export TEST_ES_URL=http://elastic:changeme@localhost:9200
+export TEST_ES_DISABLE_STARTUP=true
+export ELASTIC_APM_ACTIVE=false
+
+sleep 120
+
+cd "$XPACK_DIR"
+
+# warmup round 1
+checks-reporter-with-killswitch "Run Performance Tests with Playwright Config (Phase: WARMUP)" \
+ node scripts/functional_tests \
+ --debug --bail \
+ --kibana-install-dir "$KIBANA_BUILD_LOCATION" \
+ --config "test/performance/config.playwright.ts";
+
+export TEST_PERFORMANCE_PHASE=TEST
+export ELASTIC_APM_ACTIVE=true
+
+checks-reporter-with-killswitch "Run Performance Tests with Playwright Config (Phase: TEST)" \
+ node scripts/functional_tests \
+ --debug --bail \
+ --kibana-install-dir "$KIBANA_BUILD_LOCATION" \
+ --config "test/performance/config.playwright.ts";
+
+kill "$esPid"
diff --git a/.buildkite/scripts/steps/on_merge_build_and_metrics.sh b/.buildkite/scripts/steps/on_merge_build_and_metrics.sh
index 1f1e492f87bec..fb05bb99b0c54 100755
--- a/.buildkite/scripts/steps/on_merge_build_and_metrics.sh
+++ b/.buildkite/scripts/steps/on_merge_build_and_metrics.sh
@@ -4,5 +4,7 @@ set -euo pipefail
.buildkite/scripts/bootstrap.sh
.buildkite/scripts/build_kibana.sh
+.buildkite/scripts/build_kibana_plugins.sh
+.buildkite/scripts/post_build_kibana_plugins.sh
.buildkite/scripts/post_build_kibana.sh
.buildkite/scripts/saved_object_field_metrics.sh
diff --git a/.buildkite/scripts/steps/package_testing/build.sh b/.buildkite/scripts/steps/package_testing/build.sh
new file mode 100755
index 0000000000000..406070232f15d
--- /dev/null
+++ b/.buildkite/scripts/steps/package_testing/build.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+.buildkite/scripts/bootstrap.sh
+
+node scripts/build --all-platforms --debug
+
+DOCKER_FILE="kibana-$KIBANA_PKG_VERSION-SNAPSHOT-docker-image.tar.gz"
+
+cd target
+buildkite-agent artifact upload "./$DOCKER_FILE;./*.deb;./*.rpm"
+cd ..
diff --git a/.buildkite/scripts/steps/package_testing/test.sh b/.buildkite/scripts/steps/package_testing/test.sh
new file mode 100755
index 0000000000000..a9a46502d5b3b
--- /dev/null
+++ b/.buildkite/scripts/steps/package_testing/test.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+.buildkite/scripts/bootstrap.sh
+
+echo "--- Package Testing for $TEST_PACKAGE"
+
+mkdir -p target
+cd target
+if [[ "$TEST_PACKAGE" == "deb" ]]; then
+ buildkite-agent artifact download 'kibana-*.deb' . --build "${KIBANA_BUILD_ID:-$BUILDKITE_BUILD_ID}"
+ KIBANA_IP_ADDRESS="192.168.56.5"
+elif [[ "$TEST_PACKAGE" == "rpm" ]]; then
+ buildkite-agent artifact download 'kibana-*.rpm' . --build "${KIBANA_BUILD_ID:-$BUILDKITE_BUILD_ID}"
+ KIBANA_IP_ADDRESS="192.168.56.6"
+elif [[ "$TEST_PACKAGE" == "docker" ]]; then
+ buildkite-agent artifact download "kibana-$KIBANA_PKG_VERSION-SNAPSHOT-docker-image.tar.gz" . --build "${KIBANA_BUILD_ID:-$BUILDKITE_BUILD_ID}"
+ KIBANA_IP_ADDRESS="192.168.56.7"
+fi
+cd ..
+
+export VAGRANT_CWD=test/package
+vagrant up "$TEST_PACKAGE" --no-provision
+
+node scripts/es snapshot \
+ -E network.bind_host=127.0.0.1,192.168.56.1 \
+ -E discovery.type=single-node \
+ --license=trial &
+while ! timeout 1 bash -c "echo > /dev/tcp/localhost/9200"; do sleep 30; done
+
+vagrant provision "$TEST_PACKAGE"
+
+export TEST_BROWSER_HEADLESS=1
+export TEST_KIBANA_URL="http://elastic:changeme@$KIBANA_IP_ADDRESS:5601"
+export TEST_ES_URL=http://elastic:changeme@192.168.56.1:9200
+
+cd x-pack
+node scripts/functional_test_runner.js --include-tag=smoke
diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.js b/.buildkite/scripts/steps/storybooks/build_and_upload.js
index 89958fe08d6cc..86bfb4eeebf94 100644
--- a/.buildkite/scripts/steps/storybooks/build_and_upload.js
+++ b/.buildkite/scripts/steps/storybooks/build_and_upload.js
@@ -1,3 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
const execSync = require('child_process').execSync;
const fs = require('fs');
const path = require('path');
@@ -73,7 +81,7 @@ const upload = () => {
.trim()
.split('\n')
.map((path) => path.replace('/', ''))
- .filter((path) => path != 'composite');
+ .filter((path) => path !== 'composite');
const listHtml = storybooks
.map((storybook) => `
${storybook}`)
diff --git a/.buildkite/scripts/steps/test/jest.sh b/.buildkite/scripts/steps/test/jest.sh
index d2d1ed10043d6..cbf8bce703cc6 100755
--- a/.buildkite/scripts/steps/test/jest.sh
+++ b/.buildkite/scripts/steps/test/jest.sh
@@ -10,4 +10,4 @@ is_test_execution_step
echo '--- Jest'
checks-reporter-with-killswitch "Jest Unit Tests $((BUILDKITE_PARALLEL_JOB+1))" \
- .buildkite/scripts/steps/test/jest_parallel.sh
+ .buildkite/scripts/steps/test/jest_parallel.sh jest.config.js
diff --git a/.buildkite/scripts/steps/test/jest_integration.sh b/.buildkite/scripts/steps/test/jest_integration.sh
index d07da0584d46d..13412881cb6fa 100755
--- a/.buildkite/scripts/steps/test/jest_integration.sh
+++ b/.buildkite/scripts/steps/test/jest_integration.sh
@@ -9,5 +9,5 @@ is_test_execution_step
.buildkite/scripts/bootstrap.sh
echo '--- Jest Integration Tests'
-checks-reporter-with-killswitch "Jest Integration Tests" \
- node --max-old-space-size=6144 scripts/jest_integration --ci
+checks-reporter-with-killswitch "Jest Integration Tests $((BUILDKITE_PARALLEL_JOB+1))" \
+ .buildkite/scripts/steps/test/jest_parallel.sh jest.integration.config.js
diff --git a/.buildkite/scripts/steps/test/jest_parallel.sh b/.buildkite/scripts/steps/test/jest_parallel.sh
index c9e0e1aff5cf2..948a441185fca 100755
--- a/.buildkite/scripts/steps/test/jest_parallel.sh
+++ b/.buildkite/scripts/steps/test/jest_parallel.sh
@@ -13,7 +13,7 @@ exitCode=0
while read -r config; do
if [ "$((i % JOB_COUNT))" -eq "$JOB" ]; then
echo "--- $ node scripts/jest --config $config"
- node --max-old-space-size=14336 ./node_modules/.bin/jest --config="$config" --runInBand --coverage=false
+ node --max-old-space-size=14336 ./node_modules/.bin/jest --config="$config" --runInBand --coverage=false --passWithNoTests
lastCode=$?
if [ $lastCode -ne 0 ]; then
@@ -25,6 +25,6 @@ while read -r config; do
((i=i+1))
# uses heredoc to avoid the while loop being in a sub-shell thus unable to overwrite exitCode
-done <<< "$(find src x-pack packages -name jest.config.js -not -path "*/__fixtures__/*" | sort)"
+done <<< "$(find src x-pack packages -name "$1" -not -path "*/__fixtures__/*" | sort)"
-exit $exitCode
\ No newline at end of file
+exit $exitCode
diff --git a/.buildkite/yarn.lock b/.buildkite/yarn.lock
index 0b92d21c87e26..c2d6928d30c5a 100644
--- a/.buildkite/yarn.lock
+++ b/.buildkite/yarn.lock
@@ -3,206 +3,178 @@
"@octokit/auth-token@^2.4.4":
- version "2.4.4"
- resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56"
- integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==
+ "integrity" "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g=="
+ "resolved" "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz"
+ "version" "2.5.0"
dependencies:
- "@octokit/types" "^6.0.0"
+ "@octokit/types" "^6.0.3"
-"@octokit/core@^3.5.1":
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b"
- integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==
+"@octokit/core@^3.5.1", "@octokit/core@>=2", "@octokit/core@>=3":
+ "integrity" "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw=="
+ "resolved" "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz"
+ "version" "3.5.1"
dependencies:
"@octokit/auth-token" "^2.4.4"
"@octokit/graphql" "^4.5.8"
"@octokit/request" "^5.6.0"
"@octokit/request-error" "^2.0.5"
"@octokit/types" "^6.0.3"
- before-after-hook "^2.2.0"
- universal-user-agent "^6.0.0"
+ "before-after-hook" "^2.2.0"
+ "universal-user-agent" "^6.0.0"
"@octokit/endpoint@^6.0.1":
- version "6.0.6"
- resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999"
- integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ==
+ "integrity" "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA=="
+ "resolved" "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz"
+ "version" "6.0.12"
dependencies:
- "@octokit/types" "^5.0.0"
- is-plain-object "^5.0.0"
- universal-user-agent "^6.0.0"
+ "@octokit/types" "^6.0.3"
+ "is-plain-object" "^5.0.0"
+ "universal-user-agent" "^6.0.0"
"@octokit/graphql@^4.5.8":
- version "4.5.8"
- resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.8.tgz#d42373633c3015d0eafce64a8ce196be167fdd9b"
- integrity sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA==
+ "integrity" "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg=="
+ "resolved" "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz"
+ "version" "4.8.0"
dependencies:
- "@octokit/request" "^5.3.0"
- "@octokit/types" "^6.0.0"
- universal-user-agent "^6.0.0"
+ "@octokit/request" "^5.6.0"
+ "@octokit/types" "^6.0.3"
+ "universal-user-agent" "^6.0.0"
"@octokit/openapi-types@^11.2.0":
- version "11.2.0"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6"
- integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==
-
-"@octokit/openapi-types@^2.2.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-2.2.0.tgz#123e0438a0bc718ccdac3b5a2e69b3dd00daa85b"
- integrity sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg==
+ "integrity" "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA=="
+ "resolved" "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz"
+ "version" "11.2.0"
"@octokit/plugin-paginate-rest@^2.16.8":
- version "2.17.0"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7"
- integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==
+ "integrity" "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw=="
+ "resolved" "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz"
+ "version" "2.17.0"
dependencies:
"@octokit/types" "^6.34.0"
"@octokit/plugin-request-log@^1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
- integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
+ "integrity" "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA=="
+ "resolved" "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz"
+ "version" "1.0.4"
"@octokit/plugin-rest-endpoint-methods@^5.12.0":
- version "5.13.0"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba"
- integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==
+ "integrity" "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA=="
+ "resolved" "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz"
+ "version" "5.13.0"
dependencies:
"@octokit/types" "^6.34.0"
- deprecation "^2.3.1"
-
-"@octokit/request-error@^2.0.0":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0"
- integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==
- dependencies:
- "@octokit/types" "^5.0.1"
- deprecation "^2.0.0"
- once "^1.4.0"
+ "deprecation" "^2.3.1"
"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"
- integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==
+ "integrity" "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg=="
+ "resolved" "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz"
+ "version" "2.1.0"
dependencies:
"@octokit/types" "^6.0.3"
- deprecation "^2.0.0"
- once "^1.4.0"
-
-"@octokit/request@^5.3.0":
- version "5.4.12"
- resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.12.tgz#b04826fa934670c56b135a81447be2c1723a2ffc"
- integrity sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==
- dependencies:
- "@octokit/endpoint" "^6.0.1"
- "@octokit/request-error" "^2.0.0"
- "@octokit/types" "^6.0.3"
- deprecation "^2.0.0"
- is-plain-object "^5.0.0"
- node-fetch "^2.6.1"
- once "^1.4.0"
- universal-user-agent "^6.0.0"
+ "deprecation" "^2.0.0"
+ "once" "^1.4.0"
"@octokit/request@^5.6.0":
- version "5.6.2"
- resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8"
- integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==
+ "integrity" "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA=="
+ "resolved" "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz"
+ "version" "5.6.2"
dependencies:
"@octokit/endpoint" "^6.0.1"
"@octokit/request-error" "^2.1.0"
"@octokit/types" "^6.16.1"
- is-plain-object "^5.0.0"
- node-fetch "^2.6.1"
- universal-user-agent "^6.0.0"
+ "is-plain-object" "^5.0.0"
+ "node-fetch" "^2.6.1"
+ "universal-user-agent" "^6.0.0"
"@octokit/rest@^18.10.0":
- version "18.12.0"
- resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881"
- integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==
+ "integrity" "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q=="
+ "resolved" "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz"
+ "version" "18.12.0"
dependencies:
"@octokit/core" "^3.5.1"
"@octokit/plugin-paginate-rest" "^2.16.8"
"@octokit/plugin-request-log" "^1.0.4"
"@octokit/plugin-rest-endpoint-methods" "^5.12.0"
-"@octokit/types@^5.0.0", "@octokit/types@^5.0.1":
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b"
- integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==
+"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0":
+ "integrity" "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw=="
+ "resolved" "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz"
+ "version" "6.34.0"
dependencies:
- "@types/node" ">= 8"
+ "@octokit/openapi-types" "^11.2.0"
-"@octokit/types@^6.0.0", "@octokit/types@^6.0.3":
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.2.1.tgz#7f881fe44475ab1825776a4a59ca1ae082ed1043"
- integrity sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA==
+"axios@^0.21.4":
+ "integrity" "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg=="
+ "resolved" "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz"
+ "version" "0.21.4"
dependencies:
- "@octokit/openapi-types" "^2.2.0"
- "@types/node" ">= 8"
+ "follow-redirects" "^1.14.0"
-"@octokit/types@^6.16.1", "@octokit/types@^6.34.0":
- version "6.34.0"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218"
- integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==
- dependencies:
- "@octokit/openapi-types" "^11.2.0"
+"before-after-hook@^2.2.0":
+ "integrity" "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ=="
+ "resolved" "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz"
+ "version" "2.2.2"
-"@types/node@>= 8":
- version "16.10.2"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e"
- integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==
+"deprecation@^2.0.0", "deprecation@^2.3.1":
+ "integrity" "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
+ "resolved" "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz"
+ "version" "2.3.1"
-axios@^0.21.4:
- version "0.21.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
- integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
- dependencies:
- follow-redirects "^1.14.0"
-
-before-after-hook@^2.2.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e"
- integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
-
-deprecation@^2.0.0, deprecation@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
- integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
-
-follow-redirects@^1.14.0:
- version "1.14.4"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379"
- integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==
-
-is-plain-object@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
- integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
-
-kibana-buildkite-library@elastic/kibana-buildkite-library:
- version "1.0.0"
- resolved "https://codeload.github.com/elastic/kibana-buildkite-library/tar.gz/ee34f75c00712b639124cbef60f68132fa662643"
+"follow-redirects@^1.14.0":
+ "integrity" "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA=="
+ "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz"
+ "version" "1.14.5"
+
+"is-plain-object@^5.0.0":
+ "integrity" "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz"
+ "version" "5.0.0"
+
+"kibana-buildkite-library@github:elastic/kibana-buildkite-library":
+ "resolved" "git+ssh://git@github.com/elastic/kibana-buildkite-library.git#ccf5b824c4294d1fdf3569d32218d3bdb0958121"
+ "version" "1.0.0"
dependencies:
"@octokit/rest" "^18.10.0"
- axios "^0.21.4"
+ "axios" "^0.21.4"
-node-fetch@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
- integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+"node-fetch@^2.6.1":
+ "integrity" "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA=="
+ "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz"
+ "version" "2.6.6"
+ dependencies:
+ "whatwg-url" "^5.0.0"
-once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+"once@^1.4.0":
+ "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ "version" "1.4.0"
dependencies:
- wrappy "1"
+ "wrappy" "1"
+
+"tr46@~0.0.3":
+ "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
+ "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
+ "version" "0.0.3"
+
+"universal-user-agent@^6.0.0":
+ "integrity" "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
+ "resolved" "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz"
+ "version" "6.0.0"
-universal-user-agent@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
- integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
+"webidl-conversions@^3.0.0":
+ "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
+ "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
+ "version" "3.0.1"
+
+"whatwg-url@^5.0.0":
+ "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0="
+ "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "tr46" "~0.0.3"
+ "webidl-conversions" "^3.0.0"
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+"wrappy@1":
+ "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "version" "1.0.2"
diff --git a/.ci/Dockerfile b/.ci/Dockerfile
index 8e0d2d4351965..150e0925ae7bc 100644
--- a/.ci/Dockerfile
+++ b/.ci/Dockerfile
@@ -1,7 +1,7 @@
# NOTE: This Dockerfile is ONLY used to run certain tasks in CI. It is not used to run Kibana or as a distributable.
# If you're looking for the Kibana Docker image distributable, please see: src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
-ARG NODE_VERSION=16.13.0
+ARG NODE_VERSION=16.14.2
FROM node:${NODE_VERSION} AS base
diff --git a/.ci/package-testing/Jenkinsfile b/.ci/package-testing/Jenkinsfile
deleted file mode 100644
index fec7dc9ea4cdc..0000000000000
--- a/.ci/package-testing/Jenkinsfile
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/groovy
-library 'kibana-pipeline-library'
-kibanaLibrary.load()
-kibanaPipeline(timeoutMinutes: 120) {
- slackNotifications.onFailure {
- ciStats.trackBuild {
- workers.ci(ramDisk: false, name: "package-build", size: 'l', runErrorReporter: false) {
- withGcpServiceAccount.fromVaultSecret('secret/kibana-issues/dev/ci-artifacts-key', 'value') {
- kibanaPipeline.bash("test/scripts/jenkins_xpack_package_build.sh", "Package builds")
- }
- }
- def packageTypes = ['deb', 'docker', 'rpm']
- def workers = [:]
- packageTypes.each { type ->
- workers["package-${type}"] = {
- testPackage(type)
- }
- }
- parallel(workers)
- }
- }
-}
-def testPackage(packageType) {
- workers.ci(ramDisk: false, name: "package-${packageType}", size: 's', runErrorReporter: false) {
- withGcpServiceAccount.fromVaultSecret('secret/kibana-issues/dev/ci-artifacts-key', 'value') {
- kibanaPipeline.bash("test/scripts/jenkins_xpack_package_${packageType}.sh", "Execute package testing for ${packageType}")
- }
- }
-}
diff --git a/.eslintignore b/.eslintignore
index 040662604358f..5ae3fe7b0967d 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -17,6 +17,7 @@ snapshots.js
!/.ci
!/.eslintrc.js
!.storybook
+!.buildkite
# plugin overrides
/src/core/lib/kbn_internal_native_observable
diff --git a/.eslintrc.js b/.eslintrc.js
index 8f47462ddbfa5..055771dbbee24 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -285,12 +285,7 @@ module.exports = {
* Licence headers
*/
{
- files: [
- '**/*.{js,mjs,ts,tsx}',
- '!plugins/**/*',
- '!packages/elastic-datemath/**/*',
- '!packages/elastic-eslint-config-kibana/**/*',
- ],
+ files: ['**/*.{js,mjs,ts,tsx}'],
rules: {
'@kbn/eslint/require-license-header': [
'error',
diff --git a/.gitignore b/.gitignore
index dd098d0758bff..85f8b062b939d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -90,6 +90,7 @@ report.asciidoc
/bazel
/bazel-*
.bazelrc.user
+.bazelrc.cache
# Exclude renovate config file (we only need it on master)
renovate.json5
diff --git a/.node-version b/.node-version
index 58a4133d910f4..d9f880069dc78 100644
--- a/.node-version
+++ b/.node-version
@@ -1 +1 @@
-16.13.0
+16.14.2
diff --git a/.nvmrc b/.nvmrc
index 5b0ad74a81023..d9f880069dc78 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-16.13.0
\ No newline at end of file
+16.14.2
diff --git a/NOTICE.txt b/NOTICE.txt
index 4ede43610ca7b..e18cfe6f0a1da 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
Kibana source code with Kibana X-Pack source code
-Copyright 2012-2021 Elasticsearch B.V.
+Copyright 2012-2022 Elasticsearch B.V.
---
Pretty handling of logarithmic axes.
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index 08c5bfa551437..5c32759d72a53 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -27,14 +27,14 @@ check_rules_nodejs_version(minimum_version_string = "3.8.0")
# we can update that rule.
node_repositories(
node_repositories = {
- "16.13.0-darwin_amd64": ("node-v16.13.0-darwin-x64.tar.gz", "node-v16.13.0-darwin-x64", "37e09a8cf2352f340d1204c6154058d81362fef4ec488b0197b2ce36b3f0367a"),
- "16.13.0-darwin_arm64": ("node-v16.13.0-darwin-arm64.tar.gz", "node-v16.13.0-darwin-arm64", "46d83fc0bd971db5050ef1b15afc44a6665dee40bd6c1cbaec23e1b40fa49e6d"),
- "16.13.0-linux_arm64": ("node-v16.13.0-linux-arm64.tar.xz", "node-v16.13.0-linux-arm64", "93a0d03f9f802353cb7052bc97a02cd9642b49fa985671cdc16c99936c86d7d2"),
- "16.13.0-linux_s390x": ("node-v16.13.0-linux-s390x.tar.xz", "node-v16.13.0-linux-s390x", "49e972bf3e969d621157df4c8f2fa18ff748c167d5ebd0efc87e1b9f0c6541cc"),
- "16.13.0-linux_amd64": ("node-v16.13.0-linux-x64.tar.xz", "node-v16.13.0-linux-x64", "a876ce787133149abd1696afa54b0b5bc5ce3d5ae359081d407ff776e39b7ba8"),
- "16.13.0-windows_amd64": ("node-v16.13.0-win-x64.zip", "node-v16.13.0-win-x64", "5a39ec5d4786c2814a6c04488bebac6423c2aaa12832b24f0882456f2e4674e1"),
+ "16.14.2-darwin_amd64": ("node-v16.14.2-darwin-x64.tar.gz", "node-v16.14.2-darwin-x64", "d3076ca7fcc7269c8ff9b03fe7d1c277d913a7e84a46a14eff4af7791ff9d055"),
+ "16.14.2-darwin_arm64": ("node-v16.14.2-darwin-arm64.tar.gz", "node-v16.14.2-darwin-arm64", "a66d9217d2003bd416d3dd06dfd2c7a044c4c9ff2e43a27865790bd0d59c682d"),
+ "16.14.2-linux_arm64": ("node-v16.14.2-linux-arm64.tar.xz", "node-v16.14.2-linux-arm64", "f7c5a573c06a520d6c2318f6ae204141b8420386553a692fc359f8ae3d88df96"),
+ "16.14.2-linux_s390x": ("node-v16.14.2-linux-s390x.tar.xz", "node-v16.14.2-linux-s390x", "3197925919ca357e17a31132dc6ef4e5afae819fa09905cfe9f7ff7924a00bf5"),
+ "16.14.2-linux_amd64": ("node-v16.14.2-linux-x64.tar.xz", "node-v16.14.2-linux-x64", "e40c6f81bfd078976d85296b5e657be19e06862497741ad82902d0704b34bb1b"),
+ "16.14.2-windows_amd64": ("node-v16.14.2-win-x64.zip", "node-v16.14.2-win-x64", "4731da4fbb2015d414e871fa9118cabb643bdb6dbdc8a69a3ed563266ac93229"),
},
- node_version = "16.13.0",
+ node_version = "16.14.2",
node_urls = [
"https://nodejs.org/dist/v{version}/{filename}",
],
@@ -58,7 +58,6 @@ yarn_install(
data = [
"//:.yarnrc",
"//:preinstall_check.js",
- "//:node_modules/.yarn-integrity",
],
exports_directories_only = True,
symlink_node_modules = True,
diff --git a/dev_docs/contributing/standards.mdx b/dev_docs/contributing/standards.mdx
index 172a83935b966..d2f31f3a4faa2 100644
--- a/dev_docs/contributing/standards.mdx
+++ b/dev_docs/contributing/standards.mdx
@@ -67,6 +67,14 @@ Every public API should have a release tag specified at the top of it’s docume
Every team should be collecting telemetry metrics on it’s public API usage. This will be important for knowing when it’s safe to make breaking changes. The Core team will be looking into ways to make this easier and an automatic part of registration (see [#112291](https://github.com/elastic/kibana/issues/112291)).
+### APM
+
+Kibana server and client are instrumented with APM node and APM RUM clients respectively, tracking serveral types of transactions by default, such as `page-load`, `request`, etc.
+You may introduce custom transactions. Please refer to the [APM documentation](https://www.elastic.co/guide/en/apm/get-started/current/index.html) and follow these guidelines when doing so:
+
+- Use dashed syntax for transaction types and names: `my-transaction-type` and `my-transaction-name`
+- [Refrain from adding too many custom labels](https://www.elastic.co/guide/en/apm/get-started/current/metadata.html)
+
### Documentation
Every public API should be documented inside the [docs/api](https://github.com/elastic/kibana/tree/main/docs/api) folder in asciidoc (this content will eventually be migrated to mdx to support the new docs system). If a public REST API is undocumented, you should either document it, or make it internal.
diff --git a/dev_docs/tutorials/debugging.mdx b/dev_docs/tutorials/debugging.mdx
index c612893e4f1f9..598c6119910cb 100644
--- a/dev_docs/tutorials/debugging.mdx
+++ b/dev_docs/tutorials/debugging.mdx
@@ -21,7 +21,9 @@ Next we will go over how to exactly enable the inspector for different aspects o
You will need to run Jest directly from the Node script:
-`node --inspect-brk scripts/jest [TestPathPattern]`
+`node --inspect-brk node_modules/.bin/jest --runInBand --config [JestConfig] [TestPathPattern]`
+
+Additional information can be found in the [Jest troubleshooting documentation](https://jestjs.io/docs/troubleshooting).
### Functional Test Runner
diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc
index f8db1fc265a90..e49584d87eb12 100644
--- a/docs/CHANGELOG.asciidoc
+++ b/docs/CHANGELOG.asciidoc
@@ -8,13 +8,18 @@
:issue: https://github.com/elastic/kibana/issues/
:pull: https://github.com/elastic/kibana/pull/
-Review important information about the {kib} 7.16.x releases.
+Review important information about the {kib} 7.17.x releases.
// Best practices:
// * When there are changes to kibana.yml settings, include the links to the new settings.
-* <>
-* <>
+* <>
+* <>
+* <>
+//* <>
+//* <>
+//* <>
+//* <>
//* <>
//* <>
//* <>
@@ -68,6 +73,239 @@ Review important information about the {kib} 7.16.x releases.
--
+[[release-notes-7.17.2]]
+== {kib} 7.17.2
+
+Review the following information about the 7.17.2 release.
+
+[float]
+[[breaking-changes-v7.17.2]]
+=== Breaking changes
+
+// tag::notable-breaking-changes[]
+There are no breaking changes in the 7.17.2 release.
+// end::notable-breaking-changes[]
+
+To review the breaking changes in previous versions, refer to the following:
+
+{kibana-ref-all}/7.16/release-notes-7.16.0.html#breaking-changes-7.16.0[7.16] | {kibana-ref-all}/7.15/release-notes-7.15.0.html#breaking-changes-7.15.0[7.15] | {kibana-ref-all}/7.14/release-notes-7.14.0.html#breaking-changes-7.14.0[7.14] | {kibana-ref-all}/7.13/release-notes-7.13.0.html#breaking-changes-7.13.0[7.13] |
+{kibana-ref-all}/7.12/release-notes-7.12.0.html#breaking-changes-7.12.0[7.12] | {kibana-ref-all}/7.11/breaking-changes-7.11.html[7.11] |
+{kibana-ref-all}/7.10/breaking-changes-7.10.html[7.10] | {kibana-ref-all}/7.9/breaking-changes-7.9.html[7.9] | {kibana-ref-all}/7.8/breaking-changes-7.8.html[7.8] |
+{kibana-ref-all}/7.7/breaking-changes-7.7.html[7.7] | {kibana-ref-all}/7.6/breaking-changes-7.6.html[7.6] | {kibana-ref-all}/7.5/breaking-changes-7.5.html[7.5] |
+{kibana-ref-all}/7.4/breaking-changes-7.4.html[7.4] | {kibana-ref-all}/7.3/breaking-changes-7.3.html[7.3] | {kibana-ref-all}/7.2/breaking-changes-7.2.html[7.2] |
+{kibana-ref-all}/7.1/breaking-changes-7.1.html[7.1] | {kibana-ref-all}/7.0/breaking-changes-7.0.html[7.0]
+
+[float]
+[[fixes-v7.17.2]]
+=== Bug Fixes
+Dashboard::
+Use debounce instead of async url update to remove app state from URL {kibana-pull}127083[#127083]
+
+Discover::
+Improves doc viewer source tab performance by limiting height {kibana-pull}127439[#127439]
+
+Elastic Security::
+For the Elastic Security 7.17.2 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
+
+Fleet::
+* Use validated fields for `default_fields` index setting {kibana-pull}128094[#128094]
+* Fixes links to Agent logs for apm, endpoint, synthetics, osquery {kibana-pull}127480[#127480]
+* Makes input IDs unique in agent policy yaml {kibana-pull}127343[#127343]
+
+Machine Learning::
+Anomaly Detection: Update annotation directly using the index it is stored in {kibana-pull}126573[#126573]
+
+Management::
+* Resolves errors seen when creating a runtime field with a user that has access to a limit set of indices {kibana-pull}127523[#127523]
+* Fixes field format color editor crash on invalid color value {kibana-pull}127292[#127292]
+* Adds deprecation logging as step on overview page of Upgrade Assistant {kibana-pull}126277[#126277]
+* Upgrade Assistant will show a reindex warning if Elasticsearch is low on disk space {kibana-pull}125572[#125572]
+
+Observability::
+* Fixes pings over time histogram when filters are defined {kibana-pull}127757[#127757]
+* Checks for latest Snapshot count document {kibana-pull}127676[#127676]
+* Optimization for Metric Threshold Rule for 7.17 {kibana-pull}126545[#126545]
+
+[[release-notes-7.17.1]]
+== {kib} 7.17.1
+
+Review the following information about the 7.17.1 release.
+
+[float]
+[[breaking-changes-v7.17.1]]
+=== Breaking changes
+
+There are no breaking changes in the 7.17.1 release.
+
+To review the breaking changes in previous versions, refer to the following:
+
+{kibana-ref-all}/7.16/release-notes-7.16.0.html#breaking-changes-7.16.0[7.16] | {kibana-ref-all}/7.15/release-notes-7.15.0.html#breaking-changes-7.15.0[7.15] | {kibana-ref-all}/7.14/release-notes-7.14.0.html#breaking-changes-7.14.0[7.14] | {kibana-ref-all}/7.13/release-notes-7.13.0.html#breaking-changes-7.13.0[7.13] |
+{kibana-ref-all}/7.12/release-notes-7.12.0.html#breaking-changes-7.12.0[7.12] | {kibana-ref-all}/7.11/breaking-changes-7.11.html[7.11] |
+{kibana-ref-all}/7.10/breaking-changes-7.10.html[7.10] | {kibana-ref-all}/7.9/breaking-changes-7.9.html[7.9] | {kibana-ref-all}/7.8/breaking-changes-7.8.html[7.8] |
+{kibana-ref-all}/7.7/breaking-changes-7.7.html[7.7] | {kibana-ref-all}/7.6/breaking-changes-7.6.html[7.6] | {kibana-ref-all}/7.5/breaking-changes-7.5.html[7.5] |
+{kibana-ref-all}/7.4/breaking-changes-7.4.html[7.4] | {kibana-ref-all}/7.3/breaking-changes-7.3.html[7.3] | {kibana-ref-all}/7.2/breaking-changes-7.2.html[7.2] |
+{kibana-ref-all}/7.1/breaking-changes-7.1.html[7.1] | {kibana-ref-all}/7.0/breaking-changes-7.0.html[7.0]
+
+[float]
+[[fixes-v7.17.1]]
+=== Bug fixes
+Elastic Security::
+For the Elastic Security 7.17.1 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
+Lens & Visualizations::
+* Removes tabify performance issue {kibana-pull}124931[#124931]
+* Fixes an issue where shard failures were not reported in *TSVB* {kibana-pull}123474[#123474]
+Machine Learning::
+* Fixes anomaly detector jobs list filter delay {kibana-pull}124328[#124328]
+Management::
+* You can now use the search bar in the snapshots list of the Snapshot & Restore app with date strings {kibana-pull}125234[#125234]
+* Adds warning when remote clusters are configured {kibana-pull}125138[#125138]
+* Updates logic for handling reindex failures {kibana-pull}124571[#124571]
+* Fixes redirect to the wizard {kibana-pull}124337[#124337]
+* Fixes cross cluster search when using the `fields` search request parameter for versions of {es} prior to 7.0 {kibana-pull}123267[#123267]
+Maps::
+Fixes an issue where layers from WMS capabilities for a specific URL were unable to load {kibana-pull}123386[#123386]
+Security::
+* Prevents repeated calls to extend session when Kibana is unavailable {kibana-pull}125973[#125973]
+* Changed deprecation warning for elasticsearch.username {kibana-pull}124717[#124717]
+
+[[release-notes-7.17.0]]
+== {kib} 7.17.0
+
+Review the following information about the 7.17.0 release.
+
+[float]
+[[breaking-changes-v7.17.0]]
+=== Breaking changes
+
+There are no breaking changes in the 7.17.0 release.
+
+To review the breaking changes in previous versions, refer to the following:
+
+{kibana-ref-all}/7.16/release-notes-7.16.0.html#breaking-changes-7.16.0[7.16] | {kibana-ref-all}/7.15/release-notes-7.15.0.html#breaking-changes-7.15.0[7.15] | {kibana-ref-all}/7.14/release-notes-7.14.0.html#breaking-changes-7.14.0[7.14] | {kibana-ref-all}/7.13/release-notes-7.13.0.html#breaking-changes-7.13.0[7.13] |
+{kibana-ref-all}/7.12/release-notes-7.12.0.html#breaking-changes-7.12.0[7.12] | {kibana-ref-all}/7.11/breaking-changes-7.11.html[7.11] |
+{kibana-ref-all}/7.10/breaking-changes-7.10.html[7.10] | {kibana-ref-all}/7.9/breaking-changes-7.9.html[7.9] | {kibana-ref-all}/7.8/breaking-changes-7.8.html[7.8] |
+{kibana-ref-all}/7.7/breaking-changes-7.7.html[7.7] | {kibana-ref-all}/7.6/breaking-changes-7.6.html[7.6] | {kibana-ref-all}/7.5/breaking-changes-7.5.html[7.5] |
+{kibana-ref-all}/7.4/breaking-changes-7.4.html[7.4] | {kibana-ref-all}/7.3/breaking-changes-7.3.html[7.3] | {kibana-ref-all}/7.2/breaking-changes-7.2.html[7.2] |
+{kibana-ref-all}/7.1/breaking-changes-7.1.html[7.1] | {kibana-ref-all}/7.0/breaking-changes-7.0.html[7.0]
+
+[float]
+[[enhancements-and-bug-fixes-v7.17.0]]
+=== Enhancements and bug fixes
+
+For detailed information about the 7.17.0 release, review the enhancements and bug fixes.
+
+[float]
+[[enhancement-v7.17.0]]
+==== Enhancements
+Elastic Security::
+For the Elastic Security 7.17.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
+Lens & Visualizations::
+* Allow users to not render suggestions in *Lens* {kibana-pull}115946[#115946]
+* Avoid to compute over time suggestion for expensive configurations in *Lens* {kibana-pull}115932[#115932]
+Monitoring::
+Adds telemetry stats for legacy notifications system {kibana-pull}122472[#122472]
+Operations::
+Replaces CentOS base image with Ubuntu {kibana-pull}118928[#118928]
+Platform::
+* Response logs emitted by the elasticsearch service include the size of the response body {kibana-pull}123173[#123173]
+* Adds event loop delay histogram percentiles to `metrics.ops` logger message and meta field {kibana-pull}120451[#120451]
+* Displays event loop delay metrics in the Status page to assist with performance monitoring {kibana-pull}121052[#121052]
+
+[float]
+[[fixes-v7.17.0]]
+==== Bug Fixes
+Alerting::
+Fixes call to update index alias to hidden {kibana-pull}122882[#122882]
+Canvas::
+* Fixes an issue where a workpad element was breaking after changing the expression from expression editor and resizing {kibana-pull}122154[#122154]
+* Repeat image bug with image height fixed {kibana-pull}121497[#121497]
+Discover::
+* Fixes saved search hidden chart can't be opened when returning to Discover {kibana-pull}122745[#122745]
+* Fixes page up and down navigation in classic table {kibana-pull}122742[#122742]
+* Fixes context view for document ids containing special characters {kibana-pull}122737[#122737]
+* Adds {kib} services provider for embeddable {kibana-pull}121621[#121621]
+Elastic Security::
+For the Elastic Security 7.17.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_].
+Lens & Visualizations::
+* Fixes y-axis visibility for Percentile aggregation in XY charts {kibana-pull}122162[#122162]
+* Runs the migration correctly for the drop last bucket in *TSVB* {kibana-pull}121734[#121734]
+* Fixes percentage mode behavior when multiple metrics are placed on the same axis in XY charts {kibana-pull}121610[#121610]
+* "Bucket script" and "Series Agg" should be active for "timerange" mode in *TSVB* {kibana-pull}121301[#121301]
+Machine Learning::
+Fixes Anomaly detection's custom url with special characters {kibana-pull}121411[#121411]
+Management::
+* Fixes runtime field validations not supporting special script types {kibana-pull}122469[#122469]
+* Allows fields named `_timestamp` to be non-date types {kibana-pull}121772[#121772]
+Maps::
+Fixes map application crashes when leaving map while drawing filter {kibana-pull}122353[#122353]
+Monitoring::
+Fixes telemetry for cases attached to alerts to work across spaces {kibana-pull}122477[#122477]
+Observability::
+* Fixes Uptime alerting fly outs within alerting app {kibana-pull}123031[#123031]
+* Overview link to Exploratory View should not filter by monitor in Uptime {kibana-pull}122907[#122907]
+* Adds a global filter to exploratory view when there is only one series in Uptime {kibana-pull}122301[#122301]
+* Fixes a problem in which the exploratory view would crash if no date ranges were selected in Uptime {kibana-pull}122163[#122163]
+* Fixes a bug where the monitor step details would send more requests than necessary in Uptime {kibana-pull}121889[#121889]
+* Drop requests for overview page data when filter not initialized in Uptime {kibana-pull}120031[#120031]
+* Restores default chart `timezone` to `'local'` in XY charts {kibana-pull}123264[#123264]
+Security::
+* Adds tooltip for usernames on API Key management page {kibana-pull}122488[#122488]
+* Kibana now shows a more helpful error message when the browser prevents it from using cookies {kibana-pull}120944[#120944]
+
+For information about the features introduced in 7.17.0, refer to <>.
+
+/////
+[[release-notes-7.16.3]]
+== {kib} 7.16.3
+
+Review the following information about the 7.16.3 release.
+
+[float]
+[[breaking-changes-v7.16.3]]
+=== Breaking changes
+Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.16.2, review the <>.
+
+To review the breaking changes in previous versions, refer to the following:
+
+{kibana-ref-all}/7.15/release-notes-7.15.0.html#breaking-changes-7.15.0[7.15] | {kibana-ref-all}/7.14/release-notes-7.14.0.html#breaking-changes-7.14.0[7.14] | {kibana-ref-all}/7.13/release-notes-7.13.0.html#breaking-changes-7.13.0[7.13] |
+{kibana-ref-all}/7.12/release-notes-7.12.0.html#breaking-changes-7.12.0[7.12] | {kibana-ref-all}/7.11/breaking-changes-7.11.html[7.11] |
+{kibana-ref-all}/7.10/breaking-changes-7.10.html[7.10] | {kibana-ref-all}/7.9/breaking-changes-7.9.html[7.9] | {kibana-ref-all}/7.8/breaking-changes-7.8.html[7.8] |
+{kibana-ref-all}/7.7/breaking-changes-7.7.html[7.7] | {kibana-ref-all}/7.6/breaking-changes-7.6.html[7.6] | {kibana-ref-all}/7.5/breaking-changes-7.5.html[7.5] |
+{kibana-ref-all}/7.4/breaking-changes-7.4.html[7.4] | {kibana-ref-all}/7.3/breaking-changes-7.3.html[7.3] | {kibana-ref-all}/7.2/breaking-changes-7.2.html[7.2] |
+{kibana-ref-all}/7.1/breaking-changes-7.1.html[7.1] | {kibana-ref-all}/7.0/breaking-changes-7.0.html[7.0]
+
+[float]
+[[fixes-v7.16.3]]
+=== Bug fix
+
+The 7.16.3 release includes the following bug fix.
+
+Security::
+Fixes P12 parsing for certificates with "Basic constraints" {kibana-pull}122056[#122056]
+
+[[release-notes-7.16.2]]
+== {kib} 7.16.2
+
+Review the following information about the 7.16.2 release.
+
+[float]
+[[breaking-changes-v7.16.2]]
+=== Breaking changes
+Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.16.2, review the <>.
+
+[float]
+[[fixes-v7.16.2]]
+=== Bug Fixes
+
+The 7.16.2 release includes the following bug fixes.
+
+Fleet::
+* Omits `elasticsearch` field for policy update API (partial backport of {kibana-pull}121412[#121412])
+Lens & Visualizations::
+* Fixes the broken chart when an agg is placed in another axis and then is hidden {kibana-pull}121488[#121488]
+Metrics::
+* Adds migrations for saved object references {kibana-pull}121214[#121214]
+
[[release-notes-7.16.1]]
== {kib} 7.16.1
@@ -133,8 +371,6 @@ For information about the {kib} 7.16.0 release, review the following information
Breaking changes can prevent your application from optimal operation and performance.
Before you upgrade to 7.16.0, review the breaking changes, then mitigate the impact to your application.
-
-// tag::notable-breaking-changes[]
[discrete]
[[breaking-112523]]
@@ -162,6 +398,8 @@ Use the following supported browsers:
The legacy aggregation-based data table and `vis_type_table.legacyVisEnabled` setting are no longer supported. For more information, refer to {kibana-pull}111339[#111339].
*Impact* +
+When you upgrade to 7.16.0, {kib} automatically uses the new data table.
+
To auto-fit the table row height, create an {kibana-ref}/add-aggregation-based-visualization-panels.html#create-aggregation-based-panel[aggregation-based data table], click *Options*, then select *Auto fit rows to content*.
====
@@ -174,7 +412,7 @@ To auto-fit the table row height, create an {kibana-ref}/add-aggregation-based-v
The legacy aggregation-based area, bar, and line charts are no longer supported. For more information, refer to {kibana-pull}110786[#110786].
*Impact* +
-When you upgrade to 7.16.0, you are only able to create area, bar, and line charts using the new implementation.
+When you upgrade to 7.16.0, {kib} automatically uses the new area, bar, and line charts.
====
[discrete]
@@ -203,8 +441,6 @@ Queries in the updated packs are scheduled for the same agent policy as the orig
scheduled query group. Action IDs for scheduled queries in a pack have the
format `pack__`.
====
-
-// end::notable-breaking-changes[]
[float]
[[deprecations-7.16.0]]
@@ -545,7 +781,6 @@ Reporting::
Security::
* Adds custom error message when receiving 401 response to avoid confusion with Kibana session timeout {kibana-pull}113460[#113460]
-/////
[[release-notes-7.15.2]]
== {kib} 7.15.2
@@ -731,8 +966,6 @@ Disable metrics powered transactions with `xpack.apm.searchAggregatedTransaction
Breaking changes can prevent your application from optimal operation and performance.
Before you upgrade to 7.15.0, review the breaking changes, then mitigate the impact to your application.
-// tag::notable-breaking-changes[]
-
[discrete]
[[breaking-osquery]]
.New scheduled query action ID format for Osquery Manager
@@ -763,8 +996,6 @@ If you have changed the default {kibana-ref}/advanced-options.html#kibana-visual
. Deselect *Legacy charts library*.
====
-// end::notable-breaking-changes[]
-
[float]
[[deprecations-7.15.0]]
=== Deprecations
diff --git a/docs/api/cases.asciidoc b/docs/api/cases.asciidoc
new file mode 100644
index 0000000000000..5e412c61926db
--- /dev/null
+++ b/docs/api/cases.asciidoc
@@ -0,0 +1,28 @@
+[[cases-api]]
+== Cases APIs
+
+You can create, manage, configure, and send cases to external systems with
+these APIs:
+
+* {security-guide}/cases-api-add-comment.html[Add comment]
+* {security-guide}/cases-api-create.html[Create case]
+* {security-guide}/cases-api-delete-case.html[Delete case]
+* {security-guide}/cases-api-delete-all-comments.html[Delete all comments]
+* {security-guide}/cases-api-delete-comment.html[Delete comment]
+* {security-guide}/cases-api-find-alert.html[Find all alerts attached to a case]
+* {security-guide}/cases-api-find-cases.html[Find cases]
+* {security-guide}/cases-api-find-cases-by-alert.html[Find cases by alert]
+* {security-guide}/cases-api-find-connectors.html[Find connectors]
+* {security-guide}/cases-api-get-case-activity.html[Get all case activity]
+* {security-guide}/cases-api-get-all-case-comments.html[Get all case comments]
+* {security-guide}/cases-api-get-case.html[Get case]
+* {security-guide}/cases-api-get-comment.html[Get comment]
+* {security-guide}/cases-get-connector.html[Get current connector]
+* {security-guide}/cases-api-get-reporters.html[Get reporters]
+* {security-guide}/cases-api-get-status.html[Get status]
+* {security-guide}/cases-api-get-tag.html[Get tags]
+* {security-guide}/cases-api-push.html[Push case]
+* {security-guide}/assign-connector.html[Set default Elastic Security UI connector]
+* {security-guide}/case-api-update-connector.html[Update case configurations]
+* {security-guide}/cases-api-update.html[Update case]
+* {security-guide}/cases-api-update-comment.html[Update comment]
diff --git a/docs/api/saved-objects.asciidoc b/docs/api/saved-objects.asciidoc
index 0625beb793c31..7c4fa07c613ad 100644
--- a/docs/api/saved-objects.asciidoc
+++ b/docs/api/saved-objects.asciidoc
@@ -26,6 +26,8 @@ The following saved objects APIs are available:
* <> to update the attributes for existing {kib} saved objects
+* <> to update the attributes for multiple existing {kib} saved objects
+
* <> to remove {kib} saved objects
* <> to retrieve sets of saved objects that you want to import into {kib}
@@ -42,6 +44,7 @@ include::saved-objects/find.asciidoc[]
include::saved-objects/create.asciidoc[]
include::saved-objects/bulk_create.asciidoc[]
include::saved-objects/update.asciidoc[]
+include::saved-objects/bulk_update.asciidoc[]
include::saved-objects/delete.asciidoc[]
include::saved-objects/export.asciidoc[]
include::saved-objects/import.asciidoc[]
diff --git a/docs/api/saved-objects/bulk_update.asciidoc b/docs/api/saved-objects/bulk_update.asciidoc
new file mode 100644
index 0000000000000..28695b55cd298
--- /dev/null
+++ b/docs/api/saved-objects/bulk_update.asciidoc
@@ -0,0 +1,112 @@
+[[saved-objects-api-bulk-update]]
+=== Bulk update object API
+++++
+Bulk update objects
+++++
+
+experimental[] Update the attributes for multiple existing {kib} saved objects.
+
+[[saved-objects-api-bulk-update-request]]
+==== Request
+
+`PUT :/api/saved_objects/_bulk_update`
+
+`PUT :/s//api/saved_objects/_bulk_update`
+
+[[saved-objects-api-bulk-update-path-params]]
+==== Path parameters
+
+`space_id`::
+ (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+[[saved-objects-api-bulk-update-request-body]]
+==== Request body
+
+`type`::
+ (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`.
+
+`id`::
+ (Required, string) The object ID to update.
+
+`attributes`::
+ (Required, object) The data to persist.
++
+WARNING: When you update, attributes are not validated, which allows you to pass arbitrary and ill-formed data into the API and break {kib}. Make sure any data that you send to the API is properly formed.
+
+`references`::
+ (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects this object references. To refer to the other saved object, use `name` in the attributes, but never the `id`, which automatically updates during migrations or import/export.
+
+`version`::
+ (Optional, number) Ensures the version matches that of the persisted object.
+
+`namespace`:: (Optional, string) Identifier for the space in which to update this object. If this is defined, it will supersede the space ID that is in the URL.
+
+[[saved-objects-api-bulk-update-codes]]
+==== Response code
+
+`200`::
+ Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual
+ objects will be returned in the response body. Refer to the example below for details.
+
+[[saved-objects-api-bulk-update-example]]
+==== Example
+
+Update three saved objects, where one of them does not exist:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X PUT api/saved_objects/_bulk_update
+[
+ {
+ type: 'visualization',
+ id: 'not an id',
+ attributes: {
+ title: 'An existing visualization',
+ },
+ },
+ {
+ type: 'dashboard',
+ id: 'be3733a0-9efe-11e7-acb3-3dab96693fab',
+ attributes: {
+ title: 'An existing dashboard',
+ },
+ {
+ type: 'index-pattern',
+ id: 'logstash-*',
+ attributes: { title: 'my-logstash-pattern' }
+ }
+]
+--------------------------------------------------
+// KIBANA
+
+The API returns the following:
+
+[source,sh]
+--------------------------------------------------
+[
+ {
+ "type": "visualization",
+ "id": "not an id",
+ "error": {
+ "statusCode": 404,
+ "error": "Not Found",
+ "message": "Saved object [visualization/not an id] not found",
+ },
+ },
+ {
+ "type": "dashboard",
+ "id": "be3733a0-9efe-11e7-acb3-3dab96693fab",
+ "version": 2,
+ "attributes": {
+ "title": "An existing dashboard",
+ },
+ },
+ {
+ "type": "index-pattern",
+ "id": "logstash-*",
+ "attributes": {
+ "title": "my-logstash-pattern",
+ }
+ }
+]
+--------------------------------------------------
diff --git a/docs/api/upgrade-assistant/status.asciidoc b/docs/api/upgrade-assistant/status.asciidoc
index b0c11939ca784..aec280e8d16f9 100644
--- a/docs/api/upgrade-assistant/status.asciidoc
+++ b/docs/api/upgrade-assistant/status.asciidoc
@@ -31,22 +31,8 @@ The API returns the following:
"cluster": [
{
"message": "Cluster deprecated issue",
- "details": "...",
- "level": "warning",
- "url": "https://docs.elastic.co/..."
- }
- ],
- "indices": [
- {
- "message": "Index was created before 6.0",
- "details": "...",
- "index": "myIndex",
- "level": "critical",
- "reindex": true, <1>
- "url": "https://docs.elastic.co/..."
+ "details":"You have 2 system indices that must be migrated and 5 Elasticsearch deprecation issues and 0 Kibana deprecation issues that must be resolved before upgrading."
}
]
}
--------------------------------------------------
-
-<1> To fix indices with the `reindex` attribute, set to `true` using the <>.
diff --git a/docs/concepts/kuery.asciidoc b/docs/concepts/kuery.asciidoc
index 53d445b932d62..947dd96315a36 100644
--- a/docs/concepts/kuery.asciidoc
+++ b/docs/concepts/kuery.asciidoc
@@ -144,6 +144,20 @@ but in some cases you might need to search on dates. Include the date range in q
@timestamp < "2021"
-------------------
+KQL supports date math expressions.
+
+[source,yaml]
+-------------------
+@timestamp < now-1d
+-------------------
+
+[source,yaml]
+-------------------
+updated_at > 2022-02-17||+1M/d
+-------------------
+
+Check the
+{ref}/common-options.html#date-math[date math documentation] for more examples.
[discrete]
=== Exist queries
diff --git a/docs/dev-tools/console/console.asciidoc b/docs/dev-tools/console/console.asciidoc
index f0e3f377040ec..1c1a4a02255a0 100644
--- a/docs/dev-tools/console/console.asciidoc
+++ b/docs/dev-tools/console/console.asciidoc
@@ -139,8 +139,9 @@ to `false` in your `kibana.yml` configuration file. Changing this setting
causes the server to regenerate assets on the next startup,
which might cause a delay before pages start being served.
+[float]
=== Disable Console (before 8.0)
deprecated:[7.16.0,"In 8.0 and later, this setting will no longer be supported."]
If you don’t want to use *Console*, you can disable it by setting `console.enabled`
-to `false` in your `kibana.yml` configuration file.
\ No newline at end of file
+to `false` in your `kibana.yml` configuration file.
diff --git a/docs/developer/advanced/development-es-snapshots.asciidoc b/docs/developer/advanced/development-es-snapshots.asciidoc
index 38146e65b6326..ad9eb17ec309c 100644
--- a/docs/developer/advanced/development-es-snapshots.asciidoc
+++ b/docs/developer/advanced/development-es-snapshots.asciidoc
@@ -13,6 +13,7 @@ https://ci.kibana.dev/es-snapshots[A dashboard] is available that shows the curr
2. Each snapshot is uploaded to a public Google Cloud Storage bucket, `kibana-ci-es-snapshots-daily`.
** At this point, the snapshot is not automatically used in CI or local development. It needs to be tested/verified first.
3. Each snapshot is tested with the latest commit of the corresponding {kib} branch, using the full CI suite.
+3a. If a test fails during snapshot verification the Kibana Operations team will skip it and create an issue for the team to fix the test, or work with the Elasticsearch team to get a fix implemented there. Once the fix is ready a Kibana PR can be opened to unskip the test.
4. After CI
** If the snapshot passes, it is promoted and automatically used in CI and local development.
** If the snapshot fails, the issue must be investigated and resolved. A new incompatibility may exist between {es} and {kib}.
diff --git a/docs/developer/contributing/development-functional-tests.asciidoc b/docs/developer/contributing/development-functional-tests.asciidoc
index 5dc6f2dee5a44..f1455b511e1df 100644
--- a/docs/developer/contributing/development-functional-tests.asciidoc
+++ b/docs/developer/contributing/development-functional-tests.asciidoc
@@ -515,3 +515,12 @@ macOS users on a machine with a discrete graphics card may see significant speed
* Open "Advanced GPU Settings..."
* Uncheck the "Prefer integrated to discrete GPU" option
* Restart iTerm
+
+[discrete]
+== Flaky Test Runner
+
+If your functional tests are flaky then the Operations team might skip them and ask that you make them less flaky before enabling them once again. This process usually involves looking at the failures which are logged on the relevant Github issue and finding incorrect assumptions or conditions which need to be awaited at some point in the test. To determine if your changes make the test fail less often you can run your tests in the Flaky Test Runner. This tool runs up to 500 executions of a specific ciGroup. To start a build of the Flaky Test Runner create a PR with your changes and then visit https://ci-stats.kibana.dev/trigger_flaky_test_runner, select your PR, choose the CI Group that your tests are in, and trigger the build.
+
+This will take you to Buildkite where your build will run and tell you if it failed in any execution.
+
+A flaky test may only fail once in 1000 runs, so keep this in mind and make sure you use enough executions to really prove that a test isn't flaky anymore.
diff --git a/docs/developer/contributing/development-package-tests.asciidoc b/docs/developer/contributing/development-package-tests.asciidoc
index 7883ce2d83209..2b43013992878 100644
--- a/docs/developer/contributing/development-package-tests.asciidoc
+++ b/docs/developer/contributing/development-package-tests.asciidoc
@@ -27,9 +27,9 @@ pip3 install --user ansible
[cols=",,",options="header",]
|===
|Hostname |IP |Description
-|deb |192.168.50.5 |Installation of Kibana’s deb package
-|rpm |192.168.50.6 |Installation of Kibana’s rpm package
-|docker |192.168.50.7 |Installation of Kibana’s docker image
+|deb |192.168.56.5 |Installation of Kibana’s deb package
+|rpm |192.168.56.6 |Installation of Kibana’s rpm package
+|docker |192.168.56.7 |Installation of Kibana’s docker image
|===
=== Running
@@ -49,11 +49,11 @@ vagrant provision
# Running functional tests
node scripts/es snapshot \
- -E network.bind_host=127.0.0.1,192.168.50.1 \
+ -E network.bind_host=127.0.0.1,192.168.56.1 \
-E discovery.type=single-node \
--license=trial
TEST_KIBANA_URL=http://elastic:changeme@:5601 \
-TEST_ES_URL=http://elastic:changeme@192.168.50.1:9200 \
+TEST_ES_URL=http://elastic:changeme@192.168.56.1:9200 \
node scripts/functional_test_runner.js --include-tag=smoke
```
diff --git a/docs/developer/index.asciidoc b/docs/developer/index.asciidoc
index cfa25e5cb315a..fd899b2e10fd6 100644
--- a/docs/developer/index.asciidoc
+++ b/docs/developer/index.asciidoc
@@ -31,7 +31,6 @@ include::advanced/index.asciidoc[]
include::plugin-list.asciidoc[]
-include::plugin-api-changes/plugin-api-changes-7_12.asciidoc[]
+include::plugin-api-changes/plugin-api-changes.asciidoc[]
include::telemetry.asciidoc[]
-
diff --git a/docs/developer/plugin-api-changes/plugin-api-changes-7_12.asciidoc b/docs/developer/plugin-api-changes/plugin-api-changes-7_12.asciidoc
deleted file mode 100644
index a6940fba1121f..0000000000000
--- a/docs/developer/plugin-api-changes/plugin-api-changes-7_12.asciidoc
+++ /dev/null
@@ -1,81 +0,0 @@
-[[plugin-api-changes]]
-== Plugin API changes in {minor-version}
-++++
-Plugin API changes
-++++
-
-This page discusses the plugin API changes that you need to be aware of when migrating
-your application to {kib} {minor-version}.
-
-Other versions: {kibana-ref-all}/7.15/plugin-api-changes.html[7.15] |
-{kibana-ref-all}/7.14/plugin-api-changes.html[7.14] |
-{kibana-ref-all}/7.13/plugin-api-changes.html[7.13] |
-{kibana-ref-all}/7.12/plugin-api-changes.html[7.12] |
-{kibana-ref-all}/7.11/plugin-api-changes-7-11.html[7.11] |
-{kibana-ref-all}/7.10/breaking-changes-7.10.html#general-plugin-API-changes-7-10[7.10] |
-{kibana-ref-all}/7.9/breaking-changes-7.9.html#general-plugin-API-changes-79[7.9] |
-{kibana-ref-all}/7.8/breaking-changes-7.8.html#general-plugin-API-changes-78[7.8]
-
-[[breaking_plugin_v7.16.0_112602]]
-.Deprecation warnings logged for plugins that cannot be disabled
-[%collapsible]
-====
-
-The ability for most plugins to be disabled using the `{plugin_name}.enabled`
-config option has been deprecated. In 8.0, most {kib} plugins can no longer
-be disabled using this option.
-
-You can still opt-in to this feature by explicitly adding an
-`enabled` property to your config schema. However, we recommend against
-this when possible. This change affects whether or not a plugin's code is loaded by
-{kib}'s core, introducing complexity and creating a new set of configuration
-scenarios that must be tested.
-
-To allow some aspects of your plugin to be disabled,
-for example the ability to remove it from the {kib} UI,
-we recommend creating "nested" configuration options. For example, use
-`{plugin_name}.ui.enabled` instead of `{plugin_name}.enabled`, and then read
-from the configuration at runtime to conditionally render your application.
-This gives you similar functionality without preventing your plugin code from loading altogether.
-
-Refer to https://github.com/elastic/kibana/pull/112602[#112602].
-
-====
-
-[[breaking_plugin_v7.16.0_109368]]
-.Angular removed from doc viewer
-[%collapsible]
-====
-
-You can no longer use the `directive` property when registering a `DocView` via
-the `addDocView()` method in *Discover* to register an Angular doc view.
-Going forward, we no longer support Angular in our plugin APIs.
-
-Refer to https://github.com/elastic/kibana/pull/109368[#109368].
-
-====
-
-[[breaking_plugin_v7.16.0_109243]]
-.`LegacyRequest` type removed from Core API
-[%collapsible]
-====
-
-The Core API no longer accepts `LegacyRequest` in `BasePath` and `ScopeableRequet` types.
-
-Refer to https://github.com/elastic/kibana/pull/109243[#109243].
-
-====
-
-[[breaking_plugin_v7.16.0_107619]]
-.Legacy {es} client removed
-[%collapsible]
-====
-
-The legacy {es} client is no longer available in `CoreSetup` and
-`RequestHandlerContext` interfaces. Use the
-https://www.elastic.co/guide/en/kibana/current/elasticsearch-service.html[new client]
-instead.
-
-Refer to https://github.com/elastic/kibana/pull/107619[#107619].
-
-====
diff --git a/docs/developer/plugin-api-changes/plugin-api-changes.asciidoc b/docs/developer/plugin-api-changes/plugin-api-changes.asciidoc
new file mode 100644
index 0000000000000..0adfb9f6cad92
--- /dev/null
+++ b/docs/developer/plugin-api-changes/plugin-api-changes.asciidoc
@@ -0,0 +1,17 @@
+[[plugin-api-changes]]
+== Plugin API changes in {minor-version}
+++++
+Plugin API changes
+++++
+
+There are no plugin API changes for {kib} {minor-version}.
+
+Other versions: {kibana-ref-all}/7.16/plugin-api-changes.html[7.16] |
+{kibana-ref-all}/7.15/plugin-api-changes.html[7.15] |
+{kibana-ref-all}/7.14/plugin-api-changes.html[7.14] |
+{kibana-ref-all}/7.13/plugin-api-changes.html[7.13] |
+{kibana-ref-all}/7.12/plugin-api-changes.html[7.12] |
+{kibana-ref-all}/7.11/plugin-api-changes-7-11.html[7.11] |
+{kibana-ref-all}/7.10/breaking-changes-7.10.html#general-plugin-API-changes-7-10[7.10] |
+{kibana-ref-all}/7.9/breaking-changes-7.9.html#general-plugin-API-changes-79[7.9] |
+{kibana-ref-all}/7.8/breaking-changes-7.8.html#general-plugin-API-changes-78[7.8]
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
index 3e9be72eb8750..3e6c7e7af6dc8 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
@@ -11,7 +11,8 @@ readonly links: {
readonly settings: string;
readonly elasticStackGetStarted: string;
readonly upgrade: {
- readonly upgradingElasticStack: string;
+ readonly upgradingStackOnPrem: string;
+ readonly upgradingStackOnCloud: string;
};
readonly apm: {
readonly kibanaSettings: string;
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 180cf6e42eae1..5103639576b3d 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
@@ -17,5 +17,5 @@ export interface DocLinksStart
| --- | --- | --- |
| [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 settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingElasticStack: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record<string, string>; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite\_missing\_bucket: string; readonly date\_histogram: string; readonly date\_range: string; readonly date\_format\_pattern: 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 terms\_doc\_count\_error: 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 runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record<string, string>; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly autocompleteChanges: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record<string, string>; readonly ml: Record<string, string>; readonly transforms: Record<string, string>; readonly visualize: Record<string, string>; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record<string, string>; readonly maps: Readonly<{ guide: string; importGeospatialPrivileges: string; }>; readonly monitoring: Record<string, string>; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record<string, string>; readonly ccs: Record<string, string>; readonly plugins: Record<string, string>; readonly snapshotRestore: Record<string, string>; readonly ingest: Record<string, string>; readonly fleet: Readonly<{ beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; } | |
+| [links](./kibana-plugin-core-public.doclinksstart.links.md) | { readonly settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingStackOnPrem: string; readonly upgradingStackOnCloud: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record<string, string>; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite\_missing\_bucket: string; readonly date\_histogram: string; readonly date\_range: string; readonly date\_format\_pattern: 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 runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record<string, string>; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly autocompleteChanges: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record<string, string>; readonly ml: Record<string, string>; readonly transforms: Record<string, string>; readonly visualize: Record<string, string>; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record<string, string>; readonly maps: Record<string, string>; readonly monitoring: Record<string, string>; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record<string, string>; readonly ccs: Record<string, string>; readonly plugins: { azureRepo: string; gcsRepo: string; hdfsRepo: string; s3Repo: string; snapshotRestoreRepos: string; mapperSize: string; }; readonly snapshotRestore: Record<string, string>; readonly ingest: Record<string, string>; readonly fleet: Readonly<{ beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; } | |
diff --git a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md
index 36cb2d2d20944..ff9c57787f71d 100644
--- a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md
+++ b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md
@@ -6,6 +6,8 @@
Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time `reset` was called or this EventLoopDelaysMonitor instance was created.
+Returns metrics in milliseconds.
+
Signature:
```typescript
diff --git a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md
index 21bbd8b48840c..e5d35547d3bdb 100644
--- a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md
+++ b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md
@@ -20,7 +20,7 @@ export declare class EventLoopDelaysMonitor
| Method | Modifiers | Description |
| --- | --- | --- |
-| [collect()](./kibana-plugin-core-server.eventloopdelaysmonitor.collect.md) | | Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time reset was called or this EventLoopDelaysMonitor instance was created. |
+| [collect()](./kibana-plugin-core-server.eventloopdelaysmonitor.collect.md) | | Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time reset was called or this EventLoopDelaysMonitor instance was created.Returns metrics in milliseconds. |
| [reset()](./kibana-plugin-core-server.eventloopdelaysmonitor.reset.md) | | Resets the collected histogram data. |
| [stop()](./kibana-plugin-core-server.eventloopdelaysmonitor.stop.md) | | Disables updating the interval timer for collecting new data points. |
diff --git a/docs/development/core/server/kibana-plugin-core-server.exposedtobrowserdescriptor.md b/docs/development/core/server/kibana-plugin-core-server.exposedtobrowserdescriptor.md
new file mode 100644
index 0000000000000..b2bb3f5928dcc
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.exposedtobrowserdescriptor.md
@@ -0,0 +1,16 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [ExposedToBrowserDescriptor](./kibana-plugin-core-server.exposedtobrowserdescriptor.md)
+
+## ExposedToBrowserDescriptor type
+
+Type defining the list of configuration properties that will be exposed on the client-side Object properties can either be fully exposed
+
+Signature:
+
+```typescript
+export declare type ExposedToBrowserDescriptor = {
+ [Key in keyof T]?: T[Key] extends Maybe ? boolean : T[Key] extends Maybe