[packages] migrate all plugins to packages (#148130)

Fixes https://github.com/elastic/kibana/issues/149344

This PR migrates all plugins to packages automatically. It does this
using `node scripts/lint_packages` to automatically migrate
`kibana.json` files to `kibana.jsonc` files. By doing this automatically
we can simplify many build and testing procedures to only support
packages, and not both "packages" and "synthetic packages" (basically
pointers to plugins).

The majority of changes are in operations related code, so we'll be
having operations review this before marking it ready for review. The
vast majority of the code owners are simply pinged because we deleted
all `kibana.json` files and replaced them with `kibana.jsonc` files, so
we plan on leaving the PR ready-for-review for about 24 hours before
merging (after feature freeze), assuming we don't have any blockers
(especially from @elastic/kibana-core since there are a few core
specific changes, though the majority were handled in #149370).

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Spencer 2023-02-08 20:06:50 -07:00 committed by GitHub
parent 26c8d714cd
commit 1b85815402
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1044 changed files with 11279 additions and 11058 deletions

View file

@ -8,14 +8,15 @@ export KBN_NP_PLUGINS_BUILT=true
echo "--- Build Kibana Distribution" echo "--- Build Kibana Distribution"
BUILD_ARGS="" BUILD_ARGS=("--with-test-plugins" "--with-example-plugins")
is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS="--all-platforms" is_pr_with_label "ci:build-all-platforms" && BUILD_ARGS+=("--all-platforms")
is_pr_with_label "ci:build-example-plugins" && BUILD_ARGS="$BUILD_ARGS --example-plugins" is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARGS+=("--docker-cross-compile")
is_pr_with_label "ci:build-docker-cross-compile" && BUILD_ARG="$BUILD_ARGS --docker-cross-compile" is_pr_with_label "ci:build-os-packages" || BUILD_ARGS+=("--skip-os-packages")
is_pr_with_label "ci:build-os-packages" || BUILD_ARGS="$BUILD_ARGS --skip-os-packages" is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS+=("--skip-canvas-shareable-runtime")
is_pr_with_label "ci:build-canvas-shareable-runtime" || BUILD_ARGS="$BUILD_ARGS --skip-canvas-shareable-runtime" is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS+=("--skip-docker-contexts")
is_pr_with_label "ci:build-docker-contexts" || BUILD_ARGS="$BUILD_ARGS --skip-docker-contexts"
node scripts/build $BUILD_ARGS echo "> node scripts/build" "${BUILD_ARGS[@]}"
node scripts/build "${BUILD_ARGS[@]}"
if is_pr_with_label "ci:build-cloud-image"; then if is_pr_with_label "ci:build-cloud-image"; then
echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co

View file

@ -7,7 +7,7 @@ set -euo pipefail
source .buildkite/scripts/steps/artifacts/env.sh source .buildkite/scripts/steps/artifacts/env.sh
echo "--- Build Kibana artifacts" echo "--- Build Kibana artifacts"
node scripts/build --all-platforms --debug --docker-cross-compile $(echo "$BUILD_ARGS") node scripts/build --all-platforms --debug --docker-cross-compile "${BUILD_ARGS[@]}"
echo "--- Extract default i18n messages" echo "--- Extract default i18n messages"
mkdir -p target/i18n mkdir -p target/i18n

View file

@ -11,7 +11,7 @@ KIBANA_DOCKER_CONTEXT="${KIBANA_DOCKER_CONTEXT:="default"}"
echo "--- Create contexts" echo "--- Create contexts"
mkdir -p target mkdir -p target
node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact $(echo "$BUILD_ARGS") node scripts/build --skip-initialize --skip-generic-folders --skip-platform-folders --skip-archives --docker-context-use-local-artifact "${BUILD_ARGS[@]}"
echo "--- Setup context" echo "--- Setup context"
DOCKER_BUILD_FOLDER=$(mktemp -d) DOCKER_BUILD_FOLDER=$(mktemp -d)

View file

@ -15,11 +15,11 @@ fi
if [[ "$RELEASE_BUILD" == "true" ]]; then if [[ "$RELEASE_BUILD" == "true" ]]; then
FULL_VERSION="$QUALIFIER_VERSION" FULL_VERSION="$QUALIFIER_VERSION"
BUILD_ARGS="--release --version-qualifier=$VERSION_QUALIFIER" BUILD_ARGS=("--release" "--version-qualifier=$VERSION_QUALIFIER")
WORKFLOW="staging" WORKFLOW="staging"
else else
FULL_VERSION="$QUALIFIER_VERSION-SNAPSHOT" FULL_VERSION="$QUALIFIER_VERSION-SNAPSHOT"
BUILD_ARGS="--version-qualifier=$VERSION_QUALIFIER" BUILD_ARGS=("--version-qualifier=$VERSION_QUALIFIER")
WORKFLOW="snapshot" WORKFLOW="snapshot"
fi fi

View file

@ -6,6 +6,7 @@ export DISABLE_BOOTSTRAP_VALIDATION=false
.buildkite/scripts/bootstrap.sh .buildkite/scripts/bootstrap.sh
.buildkite/scripts/steps/checks/precommit_hook.sh .buildkite/scripts/steps/checks/precommit_hook.sh
.buildkite/scripts/steps/checks/packages.sh
.buildkite/scripts/steps/checks/ts_projects.sh .buildkite/scripts/steps/checks/ts_projects.sh
.buildkite/scripts/steps/checks/packages.sh .buildkite/scripts/steps/checks/packages.sh
.buildkite/scripts/steps/checks/bazel_packages.sh .buildkite/scripts/steps/checks/bazel_packages.sh
@ -18,7 +19,6 @@ export DISABLE_BOOTSTRAP_VALIDATION=false
.buildkite/scripts/steps/checks/i18n.sh .buildkite/scripts/steps/checks/i18n.sh
.buildkite/scripts/steps/checks/file_casing.sh .buildkite/scripts/steps/checks/file_casing.sh
.buildkite/scripts/steps/checks/licenses.sh .buildkite/scripts/steps/checks/licenses.sh
.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh
.buildkite/scripts/steps/checks/test_projects.sh .buildkite/scripts/steps/checks/test_projects.sh
.buildkite/scripts/steps/checks/test_hardening.sh .buildkite/scripts/steps/checks/test_hardening.sh
.buildkite/scripts/steps/checks/ftr_configs.sh .buildkite/scripts/steps/checks/ftr_configs.sh

View file

@ -4,7 +4,7 @@ set -euo pipefail
source .buildkite/scripts/common/util.sh source .buildkite/scripts/common/util.sh
echo --- Lint packages echo --- Lint Packages
cmd="node scripts/lint_packages" cmd="node scripts/lint_packages"
if is_pr && ! is_auto_commit_disabled; then if is_pr && ! is_auto_commit_disabled; then
cmd="$cmd --fix" cmd="$cmd --fix"

View file

@ -1,8 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
source .buildkite/scripts/common/util.sh
echo --- Check Plugins With Circular Dependencies
node scripts/find_plugins_with_circular_deps

View file

@ -4,7 +4,7 @@ set -euo pipefail
source .buildkite/scripts/common/util.sh source .buildkite/scripts/common/util.sh
echo --- Lint TS projects echo --- Lint TS Projects
cmd="node scripts/lint_ts_projects" cmd="node scripts/lint_ts_projects"
if is_pr && ! is_auto_commit_disabled; then if is_pr && ! is_auto_commit_disabled; then
cmd="$cmd --fix" cmd="$cmd --fix"

View file

@ -121,7 +121,7 @@ const VENN_DIAGRAM_HEADER = `
/** Packages which should not be included within production code. */ /** Packages which should not be included within production code. */
const DEV_PACKAGE_DIRS = getPackages(REPO_ROOT).flatMap((pkg) => const DEV_PACKAGE_DIRS = getPackages(REPO_ROOT).flatMap((pkg) =>
pkg.isDevOnly ? pkg.normalizedRepoRelativeDir : [] pkg.isDevOnly() ? pkg.normalizedRepoRelativeDir : []
); );
/** Directories (at any depth) which include dev-only code. */ /** Directories (at any depth) which include dev-only code. */
@ -1734,7 +1734,10 @@ module.exports = {
* Code inside .buildkite runs separately from everything else in CI, before bootstrap, with ts-node. It needs a few tweaks because of this. * Code inside .buildkite runs separately from everything else in CI, before bootstrap, with ts-node. It needs a few tweaks because of this.
*/ */
{ {
files: 'packages/kbn-{package-*,repo-*,dep-*}/**/*', files: [
'packages/kbn-{package-*,repo-*,dep-*}/**/*',
'packages/kbn-find-used-node-modules/**/*',
],
rules: { rules: {
'max-classes-per-file': 'off', 'max-classes-per-file': 'off',
}, },

630
.github/CODEOWNERS vendored
View file

@ -5,94 +5,26 @@
# The #CC# prefix delineates Code Coverage, # The #CC# prefix delineates Code Coverage,
# used for the 'team' designator within Kibana Stats # used for the 'team' designator within Kibana Stats
# Alerting commmunal ownership
/x-pack/plugins/rule_registry/ @elastic/response-ops @elastic/actionable-observability
# Data Discovery # Data Discovery
/src/plugins/discover/ @elastic/kibana-data-discovery
/src/plugins/saved_search/ @elastic/kibana-data-discovery
/x-pack/plugins/discover_enhanced/ @elastic/kibana-data-discovery
/x-pack/test/functional/apps/discover/ @elastic/kibana-data-discovery /x-pack/test/functional/apps/discover/ @elastic/kibana-data-discovery
/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/ @elastic/kibana-data-discovery /x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/ @elastic/kibana-data-discovery
/test/functional/apps/discover/ @elastic/kibana-data-discovery /test/functional/apps/discover/ @elastic/kibana-data-discovery
/test/functional/apps/context/ @elastic/kibana-data-discovery /test/functional/apps/context/ @elastic/kibana-data-discovery
/test/api_integration/apis/unified_field_list/ @elastic/kibana-data-discovery /test/api_integration/apis/unified_field_list/ @elastic/kibana-data-discovery
/src/plugins/unified_field_list/ @elastic/kibana-data-discovery
/src/plugins/unified_histogram/ @elastic/kibana-data-discovery
/src/plugins/saved_objects_finder/ @elastic/kibana-data-discovery
/src/plugins/data_views/ @elastic/kibana-data-discovery
/src/plugins/data_view_editor/ @elastic/kibana-data-discovery
/src/plugins/data_view_field_editor/ @elastic/kibana-data-discovery
/src/plugins/data_view_management/ @elastic/kibana-data-discovery
/src/plugins/data/ @elastic/kibana-visualizations @elastic/kibana-data-discovery
/src/plugins/field_formats/ @elastic/kibana-data-discovery
/x-pack/test/search_sessions_integration/ @elastic/kibana-data-discovery /x-pack/test/search_sessions_integration/ @elastic/kibana-data-discovery
/test/plugin_functional/test_suites/data_plugin @elastic/kibana-data-discovery /test/plugin_functional/test_suites/data_plugin @elastic/kibana-data-discovery
/examples/field_formats_example/ @elastic/kibana-data-discovery
/examples/partial_results_example/ @elastic/kibana-data-discovery
/examples/search_examples/ @elastic/kibana-data-discovery
/examples/demo_search/ @elastic/kibana-data-discovery /examples/demo_search/ @elastic/kibana-data-discovery
# Vis Editors # Vis Editors
/x-pack/plugins/lens/ @elastic/kibana-visualizations
/src/plugins/charts/ @elastic/kibana-visualizations
/src/plugins/event_annotation @elastic/kibana-visualizations
/src/plugins/vis_default_editor/ @elastic/kibana-visualizations
/src/plugins/vis_types/metric/ @elastic/kibana-visualizations
/src/plugins/vis_types/table/ @elastic/kibana-visualizations
/src/plugins/vis_types/tagcloud/ @elastic/kibana-visualizations
/src/plugins/vis_types/timelion/ @elastic/kibana-visualizations
/src/plugins/vis_types/timeseries/ @elastic/kibana-visualizations
/src/plugins/vis_types/vega/ @elastic/kibana-visualizations
/src/plugins/vis_types/vislib/ @elastic/kibana-visualizations
/src/plugins/vis_types/xy/ @elastic/kibana-visualizations
/src/plugins/vis_types/pie/ @elastic/kibana-visualizations
/src/plugins/vis_types/heatmap/ @elastic/kibana-visualizations
/src/plugins/visualize/ @elastic/kibana-visualizations /src/plugins/visualize/ @elastic/kibana-visualizations
/src/plugins/visualizations/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_tagcloud/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_metric/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_heatmap/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_gauge/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_partition_vis/ @elastic/kibana-visualizations
/src/plugins/chart_expressions/expression_xy/ @elastic/kibana-visualizations
/src/plugins/url_forwarding/ @elastic/kibana-visualizations
/x-pack/test/functional/apps/lens @elastic/kibana-visualizations /x-pack/test/functional/apps/lens @elastic/kibana-visualizations
/x-pack/test/api_integration/apis/lens/ @elastic/kibana-visualizations /x-pack/test/api_integration/apis/lens/ @elastic/kibana-visualizations
/test/functional/apps/visualize/ @elastic/kibana-visualizations /test/functional/apps/visualize/ @elastic/kibana-visualizations
/src/plugins/expressions/ @elastic/kibana-visualizations
/src/plugins/unified_search/ @elastic/kibana-visualizations
/x-pack/plugins/graph/ @elastic/kibana-visualizations
/x-pack/test/functional/apps/graph @elastic/kibana-visualizations /x-pack/test/functional/apps/graph @elastic/kibana-visualizations
# Global Experience # Global Experience
/src/plugins/bfetch/ @elastic/appex-sharedux
/src/plugins/files @elastic/appex-sharedux
/src/plugins/screenshot_mode @elastic/appex-sharedux
/src/plugins/share/ @elastic/appex-sharedux
/src/plugins/ui_actions/ @elastic/appex-sharedux
/src/plugins/ui_actions_enhanced/ @elastic/appex-sharedux
/src/plugins/navigation/ @elastic/appex-sharedux
/src/plugins/image_embeddable/ @elastic/appex-sharedux
/x-pack/plugins/notifications/ @elastic/appex-sharedux
## Examples
/examples/bfetch_explorer/ @elastic/appex-sharedux
/examples/files_example @elastic/appex-sharedux
/examples/state_containers_examples/ @elastic/appex-sharedux
/examples/ui_action_examples/ @elastic/appex-sharedux
/examples/ui_actions_explorer/ @elastic/appex-sharedux
/examples/developer_examples/ @elastic/appex-sharedux
/x-pack/examples/ui_actions_enhanced_examples/ @elastic/appex-sharedux
### Overview Plugin and Packages
/src/plugins/kibana_overview/ @elastic/appex-sharedux
### Global Experience Reporting ### Global Experience Reporting
/x-pack/examples/reporting_example/ @elastic/appex-sharedux
/x-pack/examples/screenshotting_example/ @elastic/appex-sharedux
/x-pack/plugins/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/dashboard/reporting/ @elastic/appex-sharedux /x-pack/test/functional/apps/dashboard/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/reporting/ @elastic/appex-sharedux /x-pack/test/functional/apps/reporting/ @elastic/appex-sharedux
/x-pack/test/functional/apps/reporting_management/ @elastic/appex-sharedux /x-pack/test/functional/apps/reporting_management/ @elastic/appex-sharedux
@ -108,12 +40,9 @@
/docs/setup/configuring-reporting.asciidoc @elastic/appex-sharedux /docs/setup/configuring-reporting.asciidoc @elastic/appex-sharedux
### Global Experience Tagging ### Global Experience Tagging
/src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux
/x-pack/plugins/saved_objects_tagging/ @elastic/appex-sharedux
/x-pack/test/saved_object_tagging/ @elastic/appex-sharedux /x-pack/test/saved_object_tagging/ @elastic/appex-sharedux
### Kibana React (to be deprecated) ### Kibana React (to be deprecated)
/src/plugins/kibana_react/ @elastic/appex-sharedux
/src/plugins/kibana_react/public/@elastic/appex-sharedux @elastic/kibana-presentation /src/plugins/kibana_react/public/@elastic/appex-sharedux @elastic/kibana-presentation
### Home Plugin and Packages ### Home Plugin and Packages
@ -152,26 +81,22 @@
/x-pack/test/observability_functional @elastic/actionable-observability /x-pack/test/observability_functional @elastic/actionable-observability
# Infra Monitoring # Infra Monitoring
/x-pack/plugins/infra/ @elastic/infra-monitoring-ui
/x-pack/test/functional/apps/infra @elastic/infra-monitoring-ui /x-pack/test/functional/apps/infra @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/infra @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/infra @elastic/infra-monitoring-ui
# Elastic Stack Monitoring # Elastic Stack Monitoring
/x-pack/plugins/monitoring/ @elastic/infra-monitoring-ui
/x-pack/test/functional/apps/monitoring @elastic/infra-monitoring-ui /x-pack/test/functional/apps/monitoring @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/monitoring @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/monitoring @elastic/infra-monitoring-ui
/x-pack/test/api_integration/apis/monitoring_collection @elastic/infra-monitoring-ui /x-pack/test/api_integration/apis/monitoring_collection @elastic/infra-monitoring-ui
# Fleet # Fleet
/fleet_packages.json @elastic/fleet /fleet_packages.json @elastic/fleet
/x-pack/plugins/fleet/ @elastic/fleet
/x-pack/test/fleet_api_integration @elastic/fleet /x-pack/test/fleet_api_integration @elastic/fleet
/x-pack/test/fleet_cypress @elastic/fleet /x-pack/test/fleet_cypress @elastic/fleet
/x-pack/test/fleet_functional @elastic/fleet /x-pack/test/fleet_functional @elastic/fleet
/src/dev/build/tasks/bundle_fleet_packages.ts @elastic/fleet @elastic/kibana-operations /src/dev/build/tasks/bundle_fleet_packages.ts @elastic/fleet @elastic/kibana-operations
# APM # APM
/x-pack/plugins/apm/ @elastic/apm-ui
/x-pack/test/functional/apps/apm/ @elastic/apm-ui /x-pack/test/functional/apps/apm/ @elastic/apm-ui
/x-pack/test/apm_api_integration/ @elastic/apm-ui /x-pack/test/apm_api_integration/ @elastic/apm-ui
/src/apm.js @elastic/kibana-core @vigneshshanmugam /src/apm.js @elastic/kibana-core @vigneshshanmugam
@ -182,8 +107,6 @@
#CC# /x-pack/plugins/observability/ @elastic/apm-ui #CC# /x-pack/plugins/observability/ @elastic/apm-ui
# Uptime # Uptime
/x-pack/plugins/synthetics @elastic/uptime
/x-pack/plugins/ux @elastic/uptime
/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/ @elastic/uptime /x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/ @elastic/uptime
/x-pack/test/functional/apps/uptime @elastic/uptime /x-pack/test/functional/apps/uptime @elastic/uptime
/x-pack/test/functional/es_archives/uptime @elastic/uptime /x-pack/test/functional/es_archives/uptime @elastic/uptime
@ -197,9 +120,6 @@
/x-pack/plugins/apm/public/components/app/rum_dashboard @elastic/uptime /x-pack/plugins/apm/public/components/app/rum_dashboard @elastic/uptime
/x-pack/test/apm_api_integration/tests/csm/ @elastic/uptime /x-pack/test/apm_api_integration/tests/csm/ @elastic/uptime
# Profiling
/x-pack/plugins/profiling @elastic/profiling-ui
# Observability onboarding tour # Observability onboarding tour
/x-pack/plugins/observability/public/components/shared/tour @elastic/platform-onboarding /x-pack/plugins/observability/public/components/shared/tour @elastic/platform-onboarding
/x-pack/test/functional/apps/infra/tour.ts @elastic/platform-onboarding /x-pack/test/functional/apps/infra/tour.ts @elastic/platform-onboarding
@ -207,34 +127,14 @@
### END Observability Plugins ### END Observability Plugins
# Presentation # Presentation
/src/plugins/dashboard/ @elastic/kibana-presentation
/src/plugins/expression_error/ @elastic/kibana-presentation
/src/plugins/expression_image/ @elastic/kibana-presentation
/src/plugins/expression_metric/ @elastic/kibana-presentation
/src/plugins/expression_repeat_image/ @elastic/kibana-presentation
/src/plugins/expression_reveal_image/ @elastic/kibana-presentation
/src/plugins/expression_shape/ @elastic/kibana-presentation
/src/plugins/input_control_vis/ @elastic/kibana-presentation
/src/plugins/vis_type_markdown/ @elastic/kibana-presentation
/src/plugins/presentation_util/ @elastic/kibana-presentation
/src/plugins/controls/ @elastic/kibana-presentation
/test/functional/apps/dashboard/ @elastic/kibana-presentation /test/functional/apps/dashboard/ @elastic/kibana-presentation
/test/functional/apps/dashboard_elements/ @elastic/kibana-presentation /test/functional/apps/dashboard_elements/ @elastic/kibana-presentation
/test/functional/services/dashboard/ @elastic/kibana-presentation /test/functional/services/dashboard/ @elastic/kibana-presentation
/x-pack/plugins/canvas/ @elastic/kibana-presentation
/x-pack/plugins/dashboard_enhanced/ @elastic/kibana-presentation
/x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation /x-pack/test/functional/apps/canvas/ @elastic/kibana-presentation
/examples/dashboard_embeddable_examples/ @elastic/kibana-presentation
/examples/embeddable_examples/ @elastic/kibana-presentation
/examples/embeddable_explorer/ @elastic/kibana-presentation
/src/plugins/embeddable/ @elastic/kibana-presentation
/src/plugins/inspector/ @elastic/kibana-presentation
/x-pack/plugins/embeddable_enhanced/ @elastic/kibana-presentation
/test/plugin_functional/test_suites/panel_actions @elastic/kibana-presentation /test/plugin_functional/test_suites/panel_actions @elastic/kibana-presentation
#CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation #CC# /src/plugins/kibana_react/public/code_editor/ @elastic/kibana-presentation
# Machine Learning # Machine Learning
/x-pack/plugins/ml/ @elastic/ml-ui
/x-pack/plugins/ml/common/openapi/ @elastic/mlr-docs /x-pack/plugins/ml/common/openapi/ @elastic/mlr-docs
/x-pack/test/accessibility/apps/ml.ts @elastic/ml-ui /x-pack/test/accessibility/apps/ml.ts @elastic/ml-ui
/x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts @elastic/ml-ui /x-pack/test/accessibility/apps/ml_embeddables_in_dashboard.ts @elastic/ml-ui
@ -252,28 +152,21 @@
/docs/api/machine-learning/ @elastic/mlr-docs /docs/api/machine-learning/ @elastic/mlr-docs
# Additional plugins and packages maintained by the ML team. # Additional plugins and packages maintained by the ML team.
/x-pack/plugins/aiops/ @elastic/ml-ui
/x-pack/plugins/data_visualizer/ @elastic/ml-ui
/x-pack/plugins/file_upload/ @elastic/ml-ui
/x-pack/plugins/transform/ @elastic/ml-ui
/x-pack/test/accessibility/apps/transform.ts @elastic/ml-ui /x-pack/test/accessibility/apps/transform.ts @elastic/ml-ui
/x-pack/test/api_integration/apis/transform/ @elastic/ml-ui /x-pack/test/api_integration/apis/transform/ @elastic/ml-ui
/x-pack/test/api_integration_basic/apis/transform/ @elastic/ml-ui /x-pack/test/api_integration_basic/apis/transform/ @elastic/ml-ui
/x-pack/test/functional/apps/transform/ @elastic/ml-ui /x-pack/test/functional/apps/transform/ @elastic/ml-ui
/x-pack/test/functional/services/transform/ @elastic/ml-ui /x-pack/test/functional/services/transform/ @elastic/ml-ui
/x-pack/test/functional_basic/apps/transform/ @elastic/ml-ui /x-pack/test/functional_basic/apps/transform/ @elastic/ml-ui
/examples/response_stream/ @elastic/ml-ui
# Maps # Maps
#CC# /x-pack/plugins/maps/ @elastic/kibana-gis #CC# /x-pack/plugins/maps/ @elastic/kibana-gis
/x-pack/plugins/maps/ @elastic/kibana-gis
/x-pack/test/api_integration/apis/maps/ @elastic/kibana-gis /x-pack/test/api_integration/apis/maps/ @elastic/kibana-gis
/x-pack/test/functional/apps/maps/ @elastic/kibana-gis /x-pack/test/functional/apps/maps/ @elastic/kibana-gis
/x-pack/test/functional/es_archives/maps/ @elastic/kibana-gis /x-pack/test/functional/es_archives/maps/ @elastic/kibana-gis
/x-pack/plugins/stack_alerts/server/rule_types/geo_containment @elastic/kibana-gis /x-pack/plugins/stack_alerts/server/rule_types/geo_containment @elastic/kibana-gis
/x-pack/plugins/stack_alerts/public/rule_types/geo_containment @elastic/kibana-gis /x-pack/plugins/stack_alerts/public/rule_types/geo_containment @elastic/kibana-gis
#CC# /x-pack/plugins/file_upload @elastic/kibana-gis #CC# /x-pack/plugins/file_upload @elastic/kibana-gis
/x-pack/plugins/file_upload @elastic/kibana-gis
# Operations # Operations
/src/dev/license_checker/config.ts @elastic/kibana-operations /src/dev/license_checker/config.ts @elastic/kibana-operations
@ -302,25 +195,9 @@
/x-pack/test/visual_regression @elastic/kibana-qa /x-pack/test/visual_regression @elastic/kibana-qa
# Core # Core
/examples/hello_world/ @elastic/kibana-core
/src/core/ @elastic/kibana-core
/config/kibana.yml @elastic/kibana-core /config/kibana.yml @elastic/kibana-core
/typings/ @elastic/kibana-core /typings/ @elastic/kibana-core
/x-pack/plugins/global_search_providers @elastic/kibana-core
/x-pack/plugins/banners/ @elastic/kibana-core
/x-pack/plugins/features/ @elastic/kibana-core
/x-pack/plugins/licensing/ @elastic/kibana-core
/x-pack/plugins/global_search/ @elastic/kibana-core
/x-pack/plugins/cloud/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_chat/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_experiments/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_full_story/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_gain_sight/ @elastic/kibana-core
/x-pack/plugins/cloud_integrations/cloud_links/ @elastic/kibana-core
/x-pack/test/saved_objects_field_count/ @elastic/kibana-core /x-pack/test/saved_objects_field_count/ @elastic/kibana-core
/src/plugins/saved_objects_management/ @elastic/kibana-core
/src/plugins/advanced_settings/ @elastic/kibana-core
/x-pack/plugins/global_search_bar/ @elastic/kibana-core
/test/analytics @elastic/kibana-core /test/analytics @elastic/kibana-core
#CC# /src/core/server/csp/ @elastic/kibana-core #CC# /src/core/server/csp/ @elastic/kibana-core
#CC# /src/plugins/saved_objects/ @elastic/kibana-core #CC# /src/plugins/saved_objects/ @elastic/kibana-core
@ -331,13 +208,6 @@
#CC# /x-pack/plugins/global_search_providers/ @elastic/kibana-core #CC# /x-pack/plugins/global_search_providers/ @elastic/kibana-core
# Kibana Telemetry # Kibana Telemetry
/src/plugins/kibana_usage_collection/ @elastic/kibana-core
/src/plugins/newsfeed/ @elastic/kibana-core
/src/plugins/telemetry/ @elastic/kibana-core
/src/plugins/telemetry_collection_manager/ @elastic/kibana-core
/src/plugins/telemetry_management_section/ @elastic/kibana-core
/src/plugins/usage_collection/ @elastic/kibana-core
/x-pack/plugins/telemetry_collection_xpack/ @elastic/kibana-core
/.telemetryrc.json @elastic/kibana-core /.telemetryrc.json @elastic/kibana-core
/x-pack/.telemetryrc.json @elastic/kibana-core /x-pack/.telemetryrc.json @elastic/kibana-core
/src/plugins/telemetry/schema/ @elastic/kibana-core @elastic/kibana-telemetry /src/plugins/telemetry/schema/ @elastic/kibana-core @elastic/kibana-telemetry
@ -349,14 +219,10 @@
#CC# /x-pack/plugins/translations/ @elastic/kibana-localization @elastic/kibana-core #CC# /x-pack/plugins/translations/ @elastic/kibana-localization @elastic/kibana-core
# Kibana Platform Security # Kibana Platform Security
/src/plugins/interactive_setup/ @elastic/kibana-security
/src/plugins/telemetry/server/config/telemetry_labels.ts @elastic/kibana-security /src/plugins/telemetry/server/config/telemetry_labels.ts @elastic/kibana-security
/test/interactive_setup_api_integration/ @elastic/kibana-security /test/interactive_setup_api_integration/ @elastic/kibana-security
/test/interactive_setup_functional/ @elastic/kibana-security /test/interactive_setup_functional/ @elastic/kibana-security
/test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security /test/plugin_functional/test_suites/core_plugins/rendering.ts @elastic/kibana-security
/x-pack/plugins/spaces/ @elastic/kibana-security
/x-pack/plugins/encrypted_saved_objects/ @elastic/kibana-security
/x-pack/plugins/security/ @elastic/kibana-security
/x-pack/test/api_integration/apis/security/ @elastic/kibana-security /x-pack/test/api_integration/apis/security/ @elastic/kibana-security
/x-pack/test/api_integration/apis/spaces/ @elastic/kibana-security /x-pack/test/api_integration/apis/spaces/ @elastic/kibana-security
/x-pack/test/ui_capabilities/ @elastic/kibana-security /x-pack/test/ui_capabilities/ @elastic/kibana-security
@ -367,25 +233,14 @@
/x-pack/test/security_functional/ @elastic/kibana-security /x-pack/test/security_functional/ @elastic/kibana-security
/x-pack/test/spaces_api_integration/ @elastic/kibana-security /x-pack/test/spaces_api_integration/ @elastic/kibana-security
/x-pack/test/saved_object_api_integration/ @elastic/kibana-security /x-pack/test/saved_object_api_integration/ @elastic/kibana-security
/examples/preboot_example/ @elastic/kibana-security @elastic/kibana-core
/examples/user_profile_examples/ @elastic/kibana-security
#CC# /x-pack/plugins/security/ @elastic/kibana-security #CC# /x-pack/plugins/security/ @elastic/kibana-security
# Response Ops team # Response Ops team
/x-pack/plugins/alerting/ @elastic/response-ops
/x-pack/plugins/actions/ @elastic/response-ops
/x-pack/plugins/event_log/ @elastic/response-ops
/x-pack/plugins/task_manager/ @elastic/response-ops
/x-pack/plugins/stack_connectors/ @elastic/response-ops
/x-pack/test/alerting_api_integration/ @elastic/response-ops /x-pack/test/alerting_api_integration/ @elastic/response-ops
/x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops /x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops
/x-pack/plugins/triggers_actions_ui/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/ @elastic/response-ops /x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/plugins/alerts/ @elastic/response-ops
/docs/user/alerting/ @elastic/response-ops /docs/user/alerting/ @elastic/response-ops
/docs/management/connectors/ @elastic/response-ops /docs/management/connectors/ @elastic/response-ops
/x-pack/plugins/stack_alerts/ @elastic/response-ops
/x-pack/plugins/cases/ @elastic/response-ops
/x-pack/test/cases_api_integration/ @elastic/response-ops /x-pack/test/cases_api_integration/ @elastic/response-ops
/x-pack/test/functional/services/cases/ @elastic/response-ops /x-pack/test/functional/services/cases/ @elastic/response-ops
/x-pack/test/functional_with_es_ssl/apps/cases/ @elastic/response-ops /x-pack/test/functional_with_es_ssl/apps/cases/ @elastic/response-ops
@ -396,44 +251,17 @@
/x-pack/plugins/cases/docs/openapi @elastic/mlr-docs /x-pack/plugins/cases/docs/openapi @elastic/mlr-docs
# Enterprise Search # Enterprise Search
/x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend
/x-pack/test/functional_enterprise_search/ @elastic/enterprise-search-frontend /x-pack/test/functional_enterprise_search/ @elastic/enterprise-search-frontend
/x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/ent-search-docs-team /x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/ent-search-docs-team
# Management Experience - Deployment Management # Management Experience - Deployment Management
/src/plugins/dev_tools/ @elastic/platform-deployment-management
/src/plugins/console/ @elastic/platform-deployment-management
/src/plugins/es_ui_shared/ @elastic/platform-deployment-management
/src/plugins/management/ @elastic/platform-deployment-management
/x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management
/x-pack/plugins/index_lifecycle_management/ @elastic/platform-deployment-management
/x-pack/plugins/grokdebugger/ @elastic/platform-deployment-management
/x-pack/plugins/index_management/ @elastic/platform-deployment-management
/x-pack/plugins/runtime_fields @elastic/platform-deployment-management
/x-pack/plugins/license_api_guard/ @elastic/platform-deployment-management
/x-pack/plugins/license_management/ @elastic/platform-deployment-management
/x-pack/plugins/painless_lab/ @elastic/platform-deployment-management
/x-pack/plugins/remote_clusters/ @elastic/platform-deployment-management
/x-pack/plugins/rollup/ @elastic/platform-deployment-management
/x-pack/plugins/searchprofiler/ @elastic/platform-deployment-management
/x-pack/plugins/snapshot_restore/ @elastic/platform-deployment-management
/x-pack/plugins/upgrade_assistant/ @elastic/platform-deployment-management
/x-pack/plugins/watcher/ @elastic/platform-deployment-management
/x-pack/plugins/ingest_pipelines/ @elastic/platform-deployment-management
#CC# /x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management #CC# /x-pack/plugins/cross_cluster_replication/ @elastic/platform-deployment-management
# Platform Onboarding
/src/plugins/guided_onboarding/ @elastic/platform-onboarding
/examples/guided_onboarding_example/ @elastic/platform-onboarding
/x-pack/plugins/cloud_integrations/cloud_data_migration/ @elastic/platform-onboarding
# Security Solution # Security Solution
/x-pack/test/endpoint_api_integration_no_ingest/ @elastic/security-solution /x-pack/test/endpoint_api_integration_no_ingest/ @elastic/security-solution
/x-pack/test/security_solution_endpoint/ @elastic/security-solution /x-pack/test/security_solution_endpoint/ @elastic/security-solution
/x-pack/test/functional/es_archives/endpoint/ @elastic/security-solution /x-pack/test/functional/es_archives/endpoint/ @elastic/security-solution
/x-pack/test/plugin_functional/plugins/resolver_test/ @elastic/security-solution
/x-pack/test/plugin_functional/test_suites/resolver/ @elastic/security-solution /x-pack/test/plugin_functional/test_suites/resolver/ @elastic/security-solution
/x-pack/plugins/security_solution/ @elastic/security-solution
/x-pack/test/detection_engine_api_integration @elastic/security-solution /x-pack/test/detection_engine_api_integration @elastic/security-solution
/x-pack/test/lists_api_integration @elastic/security-solution /x-pack/test/lists_api_integration @elastic/security-solution
/x-pack/test/api_integration/apis/security_solution @elastic/security-solution /x-pack/test/api_integration/apis/security_solution @elastic/security-solution
@ -442,9 +270,6 @@
# Security Solution sub teams # Security Solution sub teams
## Security Solution sub teams - Threat Hunting Investigations ## Security Solution sub teams - Threat Hunting Investigations
/x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations
/x-pack/plugins/ecs_data_quality_dashboard @elastic/security-threat-hunting-investigations
/x-pack/plugins/timelines @elastic/security-threat-hunting-investigations
/x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations
/x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations
@ -562,7 +387,6 @@
/x-pack/plugins/security_solution/server/utils @elastic/security-detections-response-rules /x-pack/plugins/security_solution/server/utils @elastic/security-detections-response-rules
## Security Solution sub teams - Security Platform ## Security Solution sub teams - Security Platform
/x-pack/plugins/lists @elastic/security-solution-platform
/x-pack/plugins/security_solution/cypress/e2e/data_sources @elastic/security-solution-platform /x-pack/plugins/security_solution/cypress/e2e/data_sources @elastic/security-solution-platform
/x-pack/plugins/security_solution/cypress/e2e/exceptions @elastic/security-solution-platform /x-pack/plugins/security_solution/cypress/e2e/exceptions @elastic/security-solution-platform
@ -628,24 +452,19 @@ x-pack/plugins/security_solution/cypress/README.md @elastic/security-engineering
x-pack/test/security_solution_cypress @elastic/security-engineering-productivity x-pack/test/security_solution_cypress @elastic/security-engineering-productivity
## Security Solution sub teams - adaptive-workload-protection ## Security Solution sub teams - adaptive-workload-protection
x-pack/plugins/kubernetes_security @elastic/awp-viz
x-pack/plugins/session_view @elastic/awp-viz
x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/awp-viz x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/awp-viz
x-pack/plugins/security_solution/public/kubernetes @elastic/awp-viz x-pack/plugins/security_solution/public/kubernetes @elastic/awp-viz
## Security Solution sub teams - Protections Experience ## Security Solution sub teams - Protections Experience
x-pack/plugins/threat_intelligence @elastic/protections-experience
x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience
x-pack/test/threat_intelligence_cypress @elastic/protections-experience x-pack/test/threat_intelligence_cypress @elastic/protections-experience
# Security Defend Workflows - OSQuery Ownership # Security Defend Workflows - OSQuery Ownership
/x-pack/plugins/osquery @elastic/security-defend-workflows
/x-pack/plugins/security_solution/common/detection_engine/rule_response_actions @elastic/security-defend-workflows /x-pack/plugins/security_solution/common/detection_engine/rule_response_actions @elastic/security-defend-workflows
/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions @elastic/security-defend-workflows /x-pack/plugins/security_solution/public/detection_engine/rule_response_actions @elastic/security-defend-workflows
/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions @elastic/security-defend-workflows /x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions @elastic/security-defend-workflows
# Cloud Security Posture # Cloud Security Posture
/x-pack/plugins/cloud_security_posture/ @elastic/kibana-cloud-security-posture
/x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture /x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture
/x-pack/test/api_integration/apis/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test/api_integration/apis/cloud_security_posture/ @elastic/kibana-cloud-security-posture
/x-pack/test/cloud_security_posture_functional/ @elastic/kibana-cloud-security-posture /x-pack/test/cloud_security_posture_functional/ @elastic/kibana-cloud-security-posture
@ -678,9 +497,6 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience
# EUI design # EUI design
/src/plugins/kibana_react/public/page_template/ @elastic/eui-design @elastic/appex-sharedux /src/plugins/kibana_react/public/page_template/ @elastic/eui-design @elastic/appex-sharedux
# Application Experience
# Landing page for guided onboarding in Home plugin # Landing page for guided onboarding in Home plugin
/src/plugins/home/public/application/components/guided_onboarding @elastic/platform-onboarding /src/plugins/home/public/application/components/guided_onboarding @elastic/platform-onboarding
@ -690,20 +506,95 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience
## by running `node scripts/generate codeowners`. ## by running `node scripts/generate codeowners`.
#### ####
x-pack/test/alerting_api_integration/common/plugins/aad @elastic/response-ops
packages/kbn-ace @elastic/platform-deployment-management
x-pack/plugins/actions @elastic/response-ops
x-pack/test/alerting_api_integration/common/plugins/actions_simulators @elastic/response-ops
src/plugins/advanced_settings @elastic/kibana-core
x-pack/packages/ml/aiops_components @elastic/ml-ui
x-pack/plugins/aiops @elastic/ml-ui
x-pack/packages/ml/aiops_utils @elastic/ml-ui
x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops
x-pack/test/alerting_api_integration/common/plugins/alerts @elastic/response-ops
x-pack/examples/alerting_example @elastic/response-ops
x-pack/test/functional_with_es_ssl/plugins/alerts @elastic/response-ops
x-pack/plugins/alerting @elastic/response-ops
packages/kbn-alerts @elastic/security-solution
x-pack/test/alerting_api_integration/common/plugins/alerts_restricted @elastic/response-ops
packages/kbn-alerts-ui-shared @elastic/response-ops
packages/kbn-ambient-common-types @elastic/kibana-operations
packages/kbn-ambient-ftr-types @elastic/kibana-operations
packages/kbn-ambient-storybook-types @elastic/kibana-operations
packages/kbn-ambient-ui-types @elastic/kibana-operations
packages/kbn-analytics @elastic/kibana-core
packages/analytics/client @elastic/kibana-core packages/analytics/client @elastic/kibana-core
test/analytics/plugins/analytics_ftr_helpers @elastic/kibana-core
test/analytics/plugins/analytics_plugin_a @elastic/kibana-core
packages/analytics/shippers/elastic_v3/browser @elastic/kibana-core packages/analytics/shippers/elastic_v3/browser @elastic/kibana-core
packages/analytics/shippers/elastic_v3/common @elastic/kibana-core packages/analytics/shippers/elastic_v3/common @elastic/kibana-core
packages/analytics/shippers/elastic_v3/server @elastic/kibana-core packages/analytics/shippers/elastic_v3/server @elastic/kibana-core
packages/analytics/shippers/fullstory @elastic/kibana-core packages/analytics/shippers/fullstory @elastic/kibana-core
packages/analytics/shippers/gainsight @elastic/kibana-core packages/analytics/shippers/gainsight @elastic/kibana-core
packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam
x-pack/plugins/apm @elastic/apm-ui
packages/kbn-apm-synthtrace @elastic/apm-ui
packages/kbn-apm-synthtrace-client @elastic/apm-ui
packages/kbn-apm-utils @elastic/apm-ui
test/plugin_functional/plugins/app_link_test @elastic/kibana-core
x-pack/test/usage_collection/plugins/application_usage_test @elastic/kibana-core
x-pack/test/security_api_integration/plugins/audit_log @elastic/kibana-security
packages/kbn-axe-config @elastic/kibana-qa
packages/kbn-babel-preset @elastic/kibana-operations
packages/kbn-babel-register @elastic/kibana-operations
packages/kbn-babel-transform @elastic/kibana-operations
x-pack/plugins/banners @elastic/kibana-core
packages/kbn-bazel-runner @elastic/kibana-operations
examples/bfetch_explorer @elastic/appex-sharedux
src/plugins/bfetch @elastic/appex-sharedux
x-pack/plugins/canvas @elastic/kibana-presentation
x-pack/test/cases_api_integration/common/plugins/cases @elastic/response-ops
packages/kbn-cases-components @elastic/response-ops
x-pack/plugins/cases @elastic/response-ops
packages/kbn-cell-actions @elastic/security-threat-hunting-explore
src/plugins/chart_expressions/common @elastic/kibana-visualizations
packages/kbn-chart-icons @elastic/kibana-visualizations
src/plugins/charts @elastic/kibana-visualizations
packages/kbn-ci-stats-core @elastic/kibana-operations
packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations
packages/kbn-ci-stats-reporter @elastic/kibana-operations
packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations
packages/kbn-cli-dev-mode @elastic/kibana-operations
x-pack/plugins/cloud_integrations/cloud_chat @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_data_migration @elastic/platform-onboarding
x-pack/plugins/cloud_defend @elastic/sec-cloudnative-integrations
x-pack/plugins/cloud_integrations/cloud_experiments @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_gain_sight @elastic/kibana-core
x-pack/test/cloud_integration/plugins/saml_provider @elastic/kibana-core
x-pack/plugins/cloud_integrations/cloud_links @elastic/kibana-core
x-pack/plugins/cloud @elastic/kibana-core
x-pack/plugins/cloud_security_posture @elastic/kibana-cloud-security-posture
packages/shared-ux/code_editor/impl @elastic/appex-sharedux
packages/shared-ux/code_editor/mocks @elastic/appex-sharedux
packages/shared-ux/code_editor/types @elastic/appex-sharedux
packages/kbn-coloring @elastic/kibana-visualizations
packages/kbn-config @elastic/kibana-core
packages/kbn-config-mocks @elastic/kibana-core
packages/kbn-config-schema @elastic/kibana-core
src/plugins/console @elastic/platform-deployment-management
packages/content-management/content_editor @elastic/appex-sharedux packages/content-management/content_editor @elastic/appex-sharedux
src/plugins/content_management @elastic/kibana-global-experience
packages/content-management/table_list @elastic/appex-sharedux packages/content-management/table_list @elastic/appex-sharedux
examples/controls_example @elastic/kibana-presentation
src/plugins/controls @elastic/kibana-presentation
src/core @elastic/kibana-core
packages/core/analytics/core-analytics-browser @elastic/kibana-core packages/core/analytics/core-analytics-browser @elastic/kibana-core
packages/core/analytics/core-analytics-browser-internal @elastic/kibana-core packages/core/analytics/core-analytics-browser-internal @elastic/kibana-core
packages/core/analytics/core-analytics-browser-mocks @elastic/kibana-core packages/core/analytics/core-analytics-browser-mocks @elastic/kibana-core
packages/core/analytics/core-analytics-server @elastic/kibana-core packages/core/analytics/core-analytics-server @elastic/kibana-core
packages/core/analytics/core-analytics-server-internal @elastic/kibana-core packages/core/analytics/core-analytics-server-internal @elastic/kibana-core
packages/core/analytics/core-analytics-server-mocks @elastic/kibana-core packages/core/analytics/core-analytics-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_app_status @elastic/kibana-core
packages/core/application/core-application-browser @elastic/kibana-core packages/core/application/core-application-browser @elastic/kibana-core
packages/core/application/core-application-browser-internal @elastic/kibana-core packages/core/application/core-application-browser-internal @elastic/kibana-core
packages/core/application/core-application-browser-mocks @elastic/kibana-core packages/core/application/core-application-browser-mocks @elastic/kibana-core
@ -764,12 +655,14 @@ packages/core/execution-context/core-execution-context-server-mocks @elastic/kib
packages/core/fatal-errors/core-fatal-errors-browser @elastic/kibana-core packages/core/fatal-errors/core-fatal-errors-browser @elastic/kibana-core
packages/core/fatal-errors/core-fatal-errors-browser-internal @elastic/kibana-core packages/core/fatal-errors/core-fatal-errors-browser-internal @elastic/kibana-core
packages/core/fatal-errors/core-fatal-errors-browser-mocks @elastic/kibana-core packages/core/fatal-errors/core-fatal-errors-browser-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_history_block @elastic/kibana-core
packages/core/http/core-http-browser @elastic/kibana-core packages/core/http/core-http-browser @elastic/kibana-core
packages/core/http/core-http-browser-internal @elastic/kibana-core packages/core/http/core-http-browser-internal @elastic/kibana-core
packages/core/http/core-http-browser-mocks @elastic/kibana-core packages/core/http/core-http-browser-mocks @elastic/kibana-core
packages/core/http/core-http-common @elastic/kibana-core packages/core/http/core-http-common @elastic/kibana-core
packages/core/http/core-http-context-server-internal @elastic/kibana-core packages/core/http/core-http-context-server-internal @elastic/kibana-core
packages/core/http/core-http-context-server-mocks @elastic/kibana-core packages/core/http/core-http-context-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_http @elastic/kibana-core
packages/core/http/core-http-request-handler-context-server @elastic/kibana-core packages/core/http/core-http-request-handler-context-server @elastic/kibana-core
packages/core/http/core-http-request-handler-context-server-internal @elastic/kibana-core packages/core/http/core-http-request-handler-context-server-internal @elastic/kibana-core
packages/core/http/core-http-resources-server @elastic/kibana-core packages/core/http/core-http-resources-server @elastic/kibana-core
@ -819,6 +712,17 @@ packages/core/notifications/core-notifications-browser-mocks @elastic/kibana-cor
packages/core/overlays/core-overlays-browser @elastic/kibana-core packages/core/overlays/core-overlays-browser @elastic/kibana-core
packages/core/overlays/core-overlays-browser-internal @elastic/kibana-core packages/core/overlays/core-overlays-browser-internal @elastic/kibana-core
packages/core/overlays/core-overlays-browser-mocks @elastic/kibana-core packages/core/overlays/core-overlays-browser-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_a @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_appleave @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_b @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_chromeless @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_deep_links @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_deprecations @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_execution_context @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_helpmenu @elastic/kibana-core
test/node_roles_functional/plugins/core_plugin_initializer_context @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_route_timeouts @elastic/kibana-core
test/plugin_functional/plugins/core_plugin_static_assets @elastic/kibana-core
packages/core/plugins/core-plugins-base-server-internal @elastic/kibana-core packages/core/plugins/core-plugins-base-server-internal @elastic/kibana-core
packages/core/plugins/core-plugins-browser @elastic/kibana-core packages/core/plugins/core-plugins-browser @elastic/kibana-core
packages/core/plugins/core-plugins-browser-internal @elastic/kibana-core packages/core/plugins/core-plugins-browser-internal @elastic/kibana-core
@ -829,6 +733,7 @@ packages/core/plugins/core-plugins-server-mocks @elastic/kibana-core
packages/core/preboot/core-preboot-server @elastic/kibana-core packages/core/preboot/core-preboot-server @elastic/kibana-core
packages/core/preboot/core-preboot-server-internal @elastic/kibana-core packages/core/preboot/core-preboot-server-internal @elastic/kibana-core
packages/core/preboot/core-preboot-server-mocks @elastic/kibana-core packages/core/preboot/core-preboot-server-mocks @elastic/kibana-core
test/plugin_functional/plugins/core_provider_plugin @elastic/kibana-core
packages/core/rendering/core-rendering-browser-internal @elastic/kibana-core packages/core/rendering/core-rendering-browser-internal @elastic/kibana-core
packages/core/rendering/core-rendering-browser-mocks @elastic/kibana-core packages/core/rendering/core-rendering-browser-mocks @elastic/kibana-core
packages/core/rendering/core-rendering-server-internal @elastic/kibana-core packages/core/rendering/core-rendering-server-internal @elastic/kibana-core
@ -877,103 +782,208 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co
packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server @elastic/kibana-core
packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core
packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core
packages/home/sample_data_card @elastic/appex-sharedux x-pack/plugins/cross_cluster_replication @elastic/platform-deployment-management
packages/home/sample_data_tab @elastic/appex-sharedux
packages/home/sample_data_types @elastic/appex-sharedux
packages/kbn-ace @elastic/platform-deployment-management
packages/kbn-alerts @elastic/security-solution
packages/kbn-alerts-ui-shared @elastic/response-ops
packages/kbn-ambient-common-types @elastic/kibana-operations
packages/kbn-ambient-ftr-types @elastic/kibana-operations
packages/kbn-ambient-storybook-types @elastic/kibana-operations
packages/kbn-ambient-ui-types @elastic/kibana-operations
packages/kbn-analytics @elastic/kibana-core
packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam
packages/kbn-apm-synthtrace @elastic/apm-ui
packages/kbn-apm-synthtrace-client @elastic/apm-ui
packages/kbn-apm-utils @elastic/apm-ui
packages/kbn-axe-config @elastic/kibana-qa
packages/kbn-babel-plugin-package-imports @elastic/kibana-operations
packages/kbn-babel-preset @elastic/kibana-operations
packages/kbn-babel-register @elastic/kibana-operations
packages/kbn-babel-transform @elastic/kibana-operations
packages/kbn-bazel-runner @elastic/kibana-operations
packages/kbn-cases-components @elastic/response-ops
packages/kbn-cell-actions @elastic/security-threat-hunting-explore
packages/kbn-chart-icons @elastic/kibana-visualizations
packages/kbn-ci-stats-core @elastic/kibana-operations
packages/kbn-ci-stats-performance-metrics @elastic/kibana-operations
packages/kbn-ci-stats-reporter @elastic/kibana-operations
packages/kbn-ci-stats-shipper-cli @elastic/kibana-operations
packages/kbn-cli-dev-mode @elastic/kibana-operations
packages/kbn-coloring @elastic/kibana-visualizations
packages/kbn-config @elastic/kibana-core
packages/kbn-config-mocks @elastic/kibana-core
packages/kbn-config-schema @elastic/kibana-core
packages/kbn-crypto @elastic/kibana-security packages/kbn-crypto @elastic/kibana-security
packages/kbn-crypto-browser @elastic/kibana-core packages/kbn-crypto-browser @elastic/kibana-core
x-pack/plugins/custom_branding @elastic/appex-sharedux
src/plugins/custom_integrations @elastic/fleet
packages/kbn-cypress-config @elastic/kibana-operations packages/kbn-cypress-config @elastic/kibana-operations
examples/dashboard_embeddable_examples @elastic/kibana-presentation
x-pack/plugins/dashboard_enhanced @elastic/kibana-presentation
src/plugins/dashboard @elastic/kibana-presentation
src/plugins/data @elastic/kibana-visualizations @elastic/kibana-data-discovery
test/plugin_functional/plugins/data_search @elastic/kibana-app-services
src/plugins/data_view_editor @elastic/kibana-data-discovery
examples/data_view_field_editor_example @elastic/kibana-app-services
src/plugins/data_view_field_editor @elastic/kibana-data-discovery
src/plugins/data_view_management @elastic/kibana-data-discovery
src/plugins/data_views @elastic/kibana-data-discovery
x-pack/plugins/data_visualizer @elastic/ml-ui
packages/kbn-datemath @elastic/kibana-data-discovery packages/kbn-datemath @elastic/kibana-data-discovery
packages/kbn-dev-cli-errors @elastic/kibana-operations packages/kbn-dev-cli-errors @elastic/kibana-operations
packages/kbn-dev-cli-runner @elastic/kibana-operations packages/kbn-dev-cli-runner @elastic/kibana-operations
packages/kbn-dev-proc-runner @elastic/kibana-operations packages/kbn-dev-proc-runner @elastic/kibana-operations
src/plugins/dev_tools @elastic/platform-deployment-management
packages/kbn-dev-utils @elastic/kibana-operations packages/kbn-dev-utils @elastic/kibana-operations
examples/developer_examples @elastic/appex-sharedux
x-pack/plugins/discover_enhanced @elastic/kibana-data-discovery
src/plugins/discover @elastic/kibana-data-discovery
packages/kbn-doc-links @elastic/kibana-docs packages/kbn-doc-links @elastic/kibana-docs
packages/kbn-docs-utils @elastic/kibana-operations packages/kbn-docs-utils @elastic/kibana-operations
packages/kbn-ebt-tools @elastic/kibana-core packages/kbn-ebt-tools @elastic/kibana-core
packages/kbn-ecs @elastic/kibana-core packages/kbn-ecs @elastic/kibana-core
x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations
x-pack/plugins/ecs_data_quality_dashboard @elastic/security-threat-hunting-investigations
test/plugin_functional/plugins/elasticsearch_client_plugin @elastic/kibana-core
x-pack/test/plugin_api_integration/plugins/elasticsearch_client @elastic/kibana-core
x-pack/plugins/embeddable_enhanced @elastic/kibana-presentation
examples/embeddable_examples @elastic/kibana-presentation
examples/embeddable_explorer @elastic/kibana-presentation
src/plugins/embeddable @elastic/kibana-presentation
x-pack/examples/embedded_lens_example @elastic/kibana-visualizations
x-pack/plugins/encrypted_saved_objects @elastic/kibana-security
x-pack/plugins/enterprise_search @elastic/enterprise-search-frontend
packages/kbn-es @elastic/kibana-operations packages/kbn-es @elastic/kibana-operations
packages/kbn-es-archiver @elastic/kibana-operations packages/kbn-es-archiver @elastic/kibana-operations
packages/kbn-es-errors @elastic/kibana-core packages/kbn-es-errors @elastic/kibana-core
packages/kbn-es-query @elastic/kibana-data-discovery packages/kbn-es-query @elastic/kibana-data-discovery
packages/kbn-es-types @elastic/kibana-core @elastic/apm-ui packages/kbn-es-types @elastic/kibana-core @elastic/apm-ui
src/plugins/es_ui_shared @elastic/platform-deployment-management
packages/kbn-eslint-config @elastic/kibana-operations packages/kbn-eslint-config @elastic/kibana-operations
packages/kbn-eslint-plugin-disable @elastic/kibana-operations packages/kbn-eslint-plugin-disable @elastic/kibana-operations
packages/kbn-eslint-plugin-eslint @elastic/kibana-operations packages/kbn-eslint-plugin-eslint @elastic/kibana-operations
packages/kbn-eslint-plugin-imports @elastic/kibana-operations packages/kbn-eslint-plugin-imports @elastic/kibana-operations
x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin @elastic/kibana-security
src/plugins/event_annotation @elastic/kibana-visualizations
x-pack/test/plugin_api_integration/plugins/event_log @elastic/response-ops
x-pack/plugins/event_log @elastic/response-ops
packages/kbn-expect @elastic/kibana-operations packages/kbn-expect @elastic/kibana-operations
x-pack/examples/exploratory_view_example @elastic/uptime
src/plugins/expression_error @elastic/kibana-presentation
src/plugins/chart_expressions/expression_gauge @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_heatmap @elastic/kibana-visualizations
src/plugins/expression_image @elastic/kibana-presentation
src/plugins/chart_expressions/expression_legacy_metric @elastic/kibana-visualizations
src/plugins/expression_metric @elastic/kibana-presentation
src/plugins/chart_expressions/expression_metric @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_partition_vis @elastic/kibana-visualizations
src/plugins/expression_repeat_image @elastic/kibana-presentation
src/plugins/expression_reveal_image @elastic/kibana-presentation
src/plugins/expression_shape @elastic/kibana-presentation
src/plugins/chart_expressions/expression_tagcloud @elastic/kibana-visualizations
src/plugins/chart_expressions/expression_xy @elastic/kibana-visualizations
examples/expressions_explorer @elastic/kibana-app-services
src/plugins/expressions @elastic/kibana-visualizations
packages/kbn-failed-test-reporter-cli @elastic/kibana-operations packages/kbn-failed-test-reporter-cli @elastic/kibana-operations
x-pack/test/plugin_api_integration/plugins/feature_usage_test @elastic/kibana-security
x-pack/plugins/features @elastic/kibana-core
x-pack/test/functional_execution_context/plugins/alerts @elastic/kibana-core
examples/field_formats_example @elastic/kibana-data-discovery
src/plugins/field_formats @elastic/kibana-data-discovery
packages/kbn-field-types @elastic/kibana-data-discovery packages/kbn-field-types @elastic/kibana-data-discovery
x-pack/plugins/file_upload @elastic/kibana-gis
examples/files_example @elastic/appex-sharedux
src/plugins/files_management @elastic/appex-sharedux
src/plugins/files @elastic/appex-sharedux
packages/kbn-find-used-node-modules @elastic/kibana-operations packages/kbn-find-used-node-modules @elastic/kibana-operations
x-pack/plugins/fleet @elastic/fleet
packages/kbn-flot-charts @elastic/kibana-operations packages/kbn-flot-charts @elastic/kibana-operations
x-pack/test/ui_capabilities/common/plugins/foo_plugin @elastic/kibana-security
src/plugins/ftr_apis @elastic/kibana-core
packages/kbn-ftr-common-functional-services @elastic/kibana-operations packages/kbn-ftr-common-functional-services @elastic/kibana-operations
packages/kbn-ftr-screenshot-filename @elastic/kibana-operations packages/kbn-ftr-screenshot-filename @elastic/kibana-operations
x-pack/test/functional_with_es_ssl/plugins/cases @elastic/response-ops
packages/kbn-generate @elastic/kibana-operations packages/kbn-generate @elastic/kibana-operations
packages/kbn-get-repo-files @elastic/kibana-operations packages/kbn-get-repo-files @elastic/kibana-operations
x-pack/plugins/global_search_bar @elastic/kibana-core
x-pack/plugins/global_search @elastic/kibana-core
x-pack/plugins/global_search_providers @elastic/kibana-core
x-pack/test/plugin_functional/plugins/global_search_test @elastic/kibana-core
x-pack/plugins/graph @elastic/kibana-visualizations
x-pack/plugins/grokdebugger @elastic/platform-deployment-management
packages/kbn-guided-onboarding @elastic/platform-onboarding packages/kbn-guided-onboarding @elastic/platform-onboarding
examples/guided_onboarding_example @elastic/platform-onboarding
src/plugins/guided_onboarding @elastic/platform-onboarding
packages/kbn-handlebars @elastic/kibana-security packages/kbn-handlebars @elastic/kibana-security
packages/kbn-hapi-mocks @elastic/kibana-core packages/kbn-hapi-mocks @elastic/kibana-core
packages/kbn-health-gateway-server @elastic/kibana-core packages/kbn-health-gateway-server @elastic/kibana-core
examples/hello_world @elastic/kibana-core
src/plugins/home @elastic/kibana-core
packages/home/sample_data_card @elastic/appex-sharedux
packages/home/sample_data_tab @elastic/appex-sharedux
packages/home/sample_data_types @elastic/appex-sharedux
packages/kbn-i18n @elastic/kibana-core packages/kbn-i18n @elastic/kibana-core
packages/kbn-i18n-react @elastic/kibana-core packages/kbn-i18n-react @elastic/kibana-core
x-pack/test/functional_embedded/plugins/iframe_embedded @elastic/kibana-core
src/plugins/image_embeddable @elastic/appex-sharedux
packages/kbn-import-locator @elastic/kibana-operations packages/kbn-import-locator @elastic/kibana-operations
packages/kbn-import-resolver @elastic/kibana-operations packages/kbn-import-resolver @elastic/kibana-operations
x-pack/plugins/index_lifecycle_management @elastic/platform-deployment-management
x-pack/plugins/index_management @elastic/platform-deployment-management
test/plugin_functional/plugins/index_patterns @elastic/kibana-app-services
x-pack/plugins/infra @elastic/infra-monitoring-ui
x-pack/plugins/ingest_pipelines @elastic/platform-deployment-management
src/plugins/input_control_vis @elastic/kibana-presentation
src/plugins/inspector @elastic/kibana-presentation
src/plugins/interactive_setup @elastic/kibana-security
test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-security
packages/kbn-interpreter @elastic/kibana-visualizations packages/kbn-interpreter @elastic/kibana-visualizations
packages/kbn-io-ts-utils @elastic/apm-ui packages/kbn-io-ts-utils @elastic/apm-ui
packages/kbn-jest-serializers @elastic/kibana-operations packages/kbn-jest-serializers @elastic/kibana-operations
packages/kbn-journeys @elastic/kibana-operations packages/kbn-journeys @elastic/kibana-operations
packages/kbn-json-ast @elastic/kibana-operations packages/kbn-json-ast @elastic/kibana-operations
test/health_gateway/plugins/status @elastic/kibana-core
test/plugin_functional/plugins/kbn_sample_panel_action @elastic/kibana-app-services
test/plugin_functional/plugins/kbn_top_nav @elastic/kibana-core
test/plugin_functional/plugins/kbn_tp_custom_visualizations @elastic/kibana-visualizations
test/interpreter_functional/plugins/kbn_tp_run_pipeline @elastic/kibana-core
x-pack/test/functional_cors/plugins/kibana_cors_test @elastic/kibana-security
packages/kbn-kibana-manifest-schema @elastic/kibana-operations packages/kbn-kibana-manifest-schema @elastic/kibana-operations
src/plugins/kibana_overview @elastic/appex-sharedux
src/plugins/kibana_react @elastic/appex-sharedux
src/plugins/kibana_usage_collection @elastic/kibana-core
src/plugins/kibana_utils @elastic/kibana-app-services
x-pack/plugins/kubernetes_security @elastic/awp-viz
packages/kbn-language-documentation-popover @elastic/kibana-visualizations packages/kbn-language-documentation-popover @elastic/kibana-visualizations
x-pack/plugins/lens @elastic/kibana-visualizations
x-pack/plugins/license_api_guard @elastic/platform-deployment-management
x-pack/plugins/license_management @elastic/platform-deployment-management
x-pack/plugins/licensing @elastic/kibana-core
packages/kbn-lint-packages-cli @elastic/kibana-operations packages/kbn-lint-packages-cli @elastic/kibana-operations
packages/kbn-lint-ts-projects-cli @elastic/kibana-operations packages/kbn-lint-ts-projects-cli @elastic/kibana-operations
x-pack/plugins/lists @elastic/security-solution-platform
examples/locator_examples @elastic/kibana-app-services
examples/locator_explorer @elastic/kibana-app-services
packages/kbn-logging @elastic/kibana-core packages/kbn-logging @elastic/kibana-core
packages/kbn-logging-mocks @elastic/kibana-core packages/kbn-logging-mocks @elastic/kibana-core
x-pack/plugins/logstash @elastic/logstash
packages/kbn-managed-vscode-config @elastic/kibana-operations packages/kbn-managed-vscode-config @elastic/kibana-operations
packages/kbn-managed-vscode-config-cli @elastic/kibana-operations packages/kbn-managed-vscode-config-cli @elastic/kibana-operations
src/plugins/management @elastic/platform-deployment-management
test/plugin_functional/plugins/management_test_plugin @elastic/kibana-app-services
packages/kbn-mapbox-gl @elastic/kibana-gis packages/kbn-mapbox-gl @elastic/kibana-gis
x-pack/examples/third_party_maps_source_example @elastic/kibana-gis
src/plugins/maps_ems @elastic/kibana-gis
x-pack/plugins/maps @elastic/kibana-gis
x-pack/packages/ml/agg_utils @elastic/ml-ui
x-pack/packages/ml/date_picker @elastic/ml-ui
x-pack/packages/ml/is_defined @elastic/ml-ui
x-pack/packages/ml/is_populated_object @elastic/ml-ui
x-pack/packages/ml/local_storage @elastic/ml-ui
x-pack/packages/ml/nested_property @elastic/ml-ui
x-pack/plugins/ml @elastic/ml-ui
x-pack/packages/ml/query_utils @elastic/ml-ui
x-pack/packages/ml/string_hash @elastic/ml-ui
x-pack/packages/ml/url_state @elastic/ml-ui
packages/kbn-monaco @elastic/appex-sharedux packages/kbn-monaco @elastic/appex-sharedux
x-pack/plugins/monitoring_collection @elastic/infra-monitoring-ui
x-pack/plugins/monitoring @elastic/infra-monitoring-ui
src/plugins/navigation @elastic/appex-sharedux
src/plugins/newsfeed @elastic/kibana-core
test/common/plugins/newsfeed @elastic/kibana-core
x-pack/plugins/notifications @elastic/appex-sharedux
x-pack/test/cases_api_integration/common/plugins/observability @elastic/response-ops
x-pack/plugins/observability @elastic/observability-ui
x-pack/test/security_api_integration/plugins/oidc_provider @elastic/kibana-security
test/common/plugins/otel_metrics @elastic/infra-monitoring-ui
packages/kbn-optimizer @elastic/kibana-operations packages/kbn-optimizer @elastic/kibana-operations
packages/kbn-optimizer-webpack-helpers @elastic/kibana-operations packages/kbn-optimizer-webpack-helpers @elastic/kibana-operations
packages/kbn-osquery-io-ts-types @elastic/security-asset-management packages/kbn-osquery-io-ts-types @elastic/security-asset-management
x-pack/plugins/osquery @elastic/security-defend-workflows
examples/partial_results_example @elastic/kibana-data-discovery
x-pack/plugins/painless_lab @elastic/platform-deployment-management
packages/kbn-peggy @elastic/kibana-operations packages/kbn-peggy @elastic/kibana-operations
packages/kbn-peggy-loader @elastic/kibana-operations packages/kbn-peggy-loader @elastic/kibana-operations
packages/kbn-performance-testing-dataset-extractor @elastic/kibana-performance-testing packages/kbn-performance-testing-dataset-extractor @elastic/kibana-performance-testing
packages/kbn-picomatcher @elastic/kibana-operations packages/kbn-picomatcher @elastic/kibana-operations
packages/kbn-plugin-discovery @elastic/kibana-operations
packages/kbn-plugin-generator @elastic/kibana-operations packages/kbn-plugin-generator @elastic/kibana-operations
packages/kbn-plugin-helpers @elastic/kibana-operations packages/kbn-plugin-helpers @elastic/kibana-operations
examples/preboot_example @elastic/kibana-security @elastic/kibana-core
src/plugins/presentation_util @elastic/kibana-presentation
x-pack/plugins/profiling @elastic/profiling-ui
packages/kbn-react-field @elastic/kibana-data-discovery packages/kbn-react-field @elastic/kibana-data-discovery
x-pack/plugins/remote_clusters @elastic/platform-deployment-management
test/plugin_functional/plugins/rendering_plugin @elastic/kibana-core
packages/kbn-repo-file-maps @elastic/kibana-operations packages/kbn-repo-file-maps @elastic/kibana-operations
packages/kbn-repo-info @elastic/kibana-operations packages/kbn-repo-info @elastic/kibana-operations
packages/kbn-repo-linter @elastic/kibana-operations packages/kbn-repo-linter @elastic/kibana-operations
@ -981,9 +991,41 @@ packages/kbn-repo-packages @elastic/kibana-operations
packages/kbn-repo-path @elastic/kibana-operations packages/kbn-repo-path @elastic/kibana-operations
packages/kbn-repo-source-classifier @elastic/kibana-operations packages/kbn-repo-source-classifier @elastic/kibana-operations
packages/kbn-repo-source-classifier-cli @elastic/kibana-operations packages/kbn-repo-source-classifier-cli @elastic/kibana-operations
x-pack/examples/reporting_example @elastic/appex-sharedux
x-pack/plugins/reporting @elastic/appex-sharedux
x-pack/test/plugin_functional/plugins/resolver_test @elastic/security-solution
examples/response_stream @elastic/ml-ui
packages/kbn-rison @elastic/kibana-operations packages/kbn-rison @elastic/kibana-operations
x-pack/plugins/rollup @elastic/platform-deployment-management
examples/routing_example @elastic/kibana-core
packages/kbn-rule-data-utils @elastic/security-detections-response @elastic/actionable-observability @elastic/response-ops packages/kbn-rule-data-utils @elastic/security-detections-response @elastic/actionable-observability @elastic/response-ops
x-pack/plugins/rule_registry @elastic/response-ops @elastic/actionable-observability
x-pack/plugins/runtime_fields @elastic/platform-deployment-management
packages/kbn-safer-lodash-set @elastic/kibana-security packages/kbn-safer-lodash-set @elastic/kibana-security
x-pack/test/security_api_integration/plugins/saml_provider @elastic/kibana-security
x-pack/test/plugin_api_integration/plugins/sample_task_plugin @elastic/response-ops
test/plugin_functional/plugins/saved_object_export_transforms @elastic/kibana-core
test/plugin_functional/plugins/saved_object_import_warnings @elastic/kibana-core
x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin @elastic/kibana-security
src/plugins/saved_objects_finder @elastic/kibana-data-discovery
test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type @elastic/kibana-core
test/plugin_functional/plugins/saved_objects_hidden_type @elastic/kibana-core
src/plugins/saved_objects_management @elastic/kibana-core
src/plugins/saved_objects @elastic/kibana-core
src/plugins/saved_objects_tagging_oss @elastic/appex-sharedux
x-pack/plugins/saved_objects_tagging @elastic/appex-sharedux
src/plugins/saved_search @elastic/kibana-data-discovery
examples/screenshot_mode_example @elastic/kibana-app-services
src/plugins/screenshot_mode @elastic/appex-sharedux
x-pack/examples/screenshotting_example @elastic/appex-sharedux
x-pack/plugins/screenshotting @elastic/kibana-reporting-services
examples/search_examples @elastic/kibana-data-discovery
x-pack/plugins/searchprofiler @elastic/platform-deployment-management
x-pack/test/security_api_integration/packages/helpers @elastic/kibana-core
x-pack/plugins/security @elastic/kibana-security
x-pack/test/cases_api_integration/common/plugins/security_solution @elastic/response-ops
x-pack/plugins/security_solution @elastic/security-solution
x-pack/test/security_functional/plugins/test_endpoints @elastic/kibana-security
packages/kbn-securitysolution-autocomplete @elastic/security-solution-platform packages/kbn-securitysolution-autocomplete @elastic/security-solution-platform
packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore
packages/kbn-securitysolution-es-utils @elastic/security-solution-platform packages/kbn-securitysolution-es-utils @elastic/security-solution-platform
@ -1002,57 +1044,28 @@ packages/kbn-securitysolution-t-grid @elastic/security-solution-platform
packages/kbn-securitysolution-utils @elastic/security-solution-platform packages/kbn-securitysolution-utils @elastic/security-solution-platform
packages/kbn-server-http-tools @elastic/kibana-core packages/kbn-server-http-tools @elastic/kibana-core
packages/kbn-server-route-repository @elastic/apm-ui packages/kbn-server-route-repository @elastic/apm-ui
test/plugin_functional/plugins/session_notifications @elastic/kibana-core
x-pack/plugins/session_view @elastic/awp-viz
packages/kbn-set-map @elastic/kibana-operations packages/kbn-set-map @elastic/kibana-operations
examples/share_examples @elastic/kibana-app-services
src/plugins/share @elastic/appex-sharedux
packages/kbn-shared-svg @elastic/apm-ui packages/kbn-shared-svg @elastic/apm-ui
packages/kbn-shared-ux-utility @elastic/appex-sharedux
packages/kbn-slo-schema @elastic/actionable-observability
packages/kbn-some-dev-log @elastic/kibana-operations
packages/kbn-sort-package-json @elastic/kibana-operations
packages/kbn-spec-to-console @elastic/platform-deployment-management
packages/kbn-std @elastic/kibana-core
packages/kbn-stdio-dev-helpers @elastic/kibana-operations
packages/kbn-storybook @elastic/kibana-operations
packages/kbn-telemetry-tools @elastic/kibana-core
packages/kbn-test @elastic/kibana-operations
packages/kbn-test-jest-helpers @elastic/kibana-operations
packages/kbn-test-subj-selector @elastic/kibana-operations
packages/kbn-timelion-grammar @elastic/kibana-visualizations
packages/kbn-tinymath @elastic/kibana-visualizations
packages/kbn-tooling-log @elastic/kibana-operations
packages/kbn-ts-projects @elastic/kibana-operations
packages/kbn-ts-type-check-cli @elastic/kibana-operations
packages/kbn-typed-react-router-config @elastic/apm-ui
packages/kbn-ui-actions-browser @elastic/appex-sharedux
packages/kbn-ui-framework @elastic/kibana-design
packages/kbn-ui-shared-deps-npm @elastic/kibana-operations
packages/kbn-ui-shared-deps-src @elastic/kibana-operations
packages/kbn-ui-theme @elastic/kibana-operations
packages/kbn-user-profile-components @elastic/kibana-security
packages/kbn-utility-types @elastic/kibana-core
packages/kbn-utility-types-jest @elastic/kibana-operations
packages/kbn-utils @elastic/kibana-operations
packages/kbn-web-worker-stub @elastic/kibana-operations
packages/kbn-whereis-pkg-cli @elastic/kibana-operations
packages/kbn-yarn-lock-validator @elastic/kibana-operations
packages/shared-ux/avatar/solution @elastic/appex-sharedux packages/shared-ux/avatar/solution @elastic/appex-sharedux
packages/shared-ux/avatar/user_profile/impl @elastic/appex-sharedux packages/shared-ux/avatar/user_profile/impl @elastic/appex-sharedux
packages/shared-ux/button_toolbar @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/impl @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/impl @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/mocks @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/mocks @elastic/appex-sharedux
packages/shared-ux/button/exit_full_screen/types @elastic/appex-sharedux packages/shared-ux/button/exit_full_screen/types @elastic/appex-sharedux
packages/shared-ux/button_toolbar @elastic/appex-sharedux
packages/shared-ux/card/no_data/impl @elastic/appex-sharedux packages/shared-ux/card/no_data/impl @elastic/appex-sharedux
packages/shared-ux/card/no_data/mocks @elastic/appex-sharedux packages/shared-ux/card/no_data/mocks @elastic/appex-sharedux
packages/shared-ux/card/no_data/types @elastic/appex-sharedux packages/shared-ux/card/no_data/types @elastic/appex-sharedux
packages/shared-ux/code_editor/impl @elastic/appex-sharedux
packages/shared-ux/code_editor/mocks @elastic/appex-sharedux
packages/shared-ux/code_editor/types @elastic/appex-sharedux
packages/shared-ux/file/context @elastic/appex-sharedux packages/shared-ux/file/context @elastic/appex-sharedux
packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux
packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux
packages/shared-ux/file/image/impl @elastic/appex-sharedux packages/shared-ux/file/image/impl @elastic/appex-sharedux
packages/shared-ux/file/image/mocks @elastic/appex-sharedux packages/shared-ux/file/image/mocks @elastic/appex-sharedux
packages/shared-ux/file/mocks @elastic/appex-sharedux packages/shared-ux/file/mocks @elastic/appex-sharedux
packages/shared-ux/file/file_picker/impl @elastic/appex-sharedux
packages/shared-ux/file/types @elastic/appex-sharedux packages/shared-ux/file/types @elastic/appex-sharedux
packages/shared-ux/file/file_upload/impl @elastic/appex-sharedux
packages/shared-ux/file/util @elastic/appex-sharedux packages/shared-ux/file/util @elastic/appex-sharedux
packages/shared-ux/link/redirect_app/impl @elastic/appex-sharedux packages/shared-ux/link/redirect_app/impl @elastic/appex-sharedux
packages/shared-ux/link/redirect_app/mocks @elastic/appex-sharedux packages/shared-ux/link/redirect_app/mocks @elastic/appex-sharedux
@ -1069,10 +1082,10 @@ packages/shared-ux/page/kibana_no_data/types @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/impl @elastic/appex-sharedux packages/shared-ux/page/kibana_template/impl @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/mocks @elastic/appex-sharedux packages/shared-ux/page/kibana_template/mocks @elastic/appex-sharedux
packages/shared-ux/page/kibana_template/types @elastic/appex-sharedux packages/shared-ux/page/kibana_template/types @elastic/appex-sharedux
packages/shared-ux/page/no_data/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/impl @elastic/appex-sharedux packages/shared-ux/page/no_data_config/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/mocks @elastic/appex-sharedux packages/shared-ux/page/no_data_config/mocks @elastic/appex-sharedux
packages/shared-ux/page/no_data_config/types @elastic/appex-sharedux packages/shared-ux/page/no_data_config/types @elastic/appex-sharedux
packages/shared-ux/page/no_data/impl @elastic/appex-sharedux
packages/shared-ux/page/no_data/mocks @elastic/appex-sharedux packages/shared-ux/page/no_data/mocks @elastic/appex-sharedux
packages/shared-ux/page/no_data/types @elastic/appex-sharedux packages/shared-ux/page/no_data/types @elastic/appex-sharedux
packages/shared-ux/page/solution_nav @elastic/appex-sharedux packages/shared-ux/page/solution_nav @elastic/appex-sharedux
@ -1085,17 +1098,96 @@ packages/shared-ux/router/mocks @elastic/appex-sharedux
packages/shared-ux/router/types @elastic/appex-sharedux packages/shared-ux/router/types @elastic/appex-sharedux
packages/shared-ux/storybook/config @elastic/appex-sharedux packages/shared-ux/storybook/config @elastic/appex-sharedux
packages/shared-ux/storybook/mock @elastic/appex-sharedux packages/shared-ux/storybook/mock @elastic/appex-sharedux
src/plugins/chart_expressions/common @elastic/kibana-visualizations packages/kbn-shared-ux-utility @elastic/appex-sharedux
x-pack/packages/kbn-ecs-data-quality-dashboard @elastic/security-threat-hunting-investigations packages/kbn-slo-schema @elastic/actionable-observability
x-pack/packages/ml/agg_utils @elastic/ml-ui x-pack/plugins/snapshot_restore @elastic/platform-deployment-management
x-pack/packages/ml/aiops_components @elastic/ml-ui packages/kbn-some-dev-log @elastic/kibana-operations
x-pack/packages/ml/aiops_utils @elastic/ml-ui packages/kbn-sort-package-json @elastic/kibana-operations
x-pack/packages/ml/date_picker @elastic/ml-ui x-pack/plugins/spaces @elastic/kibana-security
x-pack/packages/ml/is_defined @elastic/ml-ui x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin @elastic/kibana-security
x-pack/packages/ml/is_populated_object @elastic/ml-ui packages/kbn-spec-to-console @elastic/platform-deployment-management
x-pack/packages/ml/local_storage @elastic/ml-ui x-pack/plugins/stack_alerts @elastic/response-ops
x-pack/packages/ml/nested_property @elastic/ml-ui x-pack/plugins/stack_connectors @elastic/response-ops
x-pack/packages/ml/query_utils @elastic/ml-ui x-pack/test/usage_collection/plugins/stack_management_usage_test @elastic/platform-deployment-management
x-pack/packages/ml/string_hash @elastic/ml-ui examples/state_containers_examples @elastic/appex-sharedux
x-pack/packages/ml/url_state @elastic/ml-ui test/server_integration/plugins/status_plugin_a @elastic/kibana-core
x-pack/test/alerting_api_integration/packages/helpers @elastic/response-ops test/server_integration/plugins/status_plugin_b @elastic/kibana-core
packages/kbn-std @elastic/kibana-core
packages/kbn-stdio-dev-helpers @elastic/kibana-operations
packages/kbn-storybook @elastic/kibana-operations
x-pack/plugins/synthetics @elastic/uptime
x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture @elastic/response-ops
x-pack/test/plugin_api_perf/plugins/task_manager_performance @elastic/response-ops
x-pack/plugins/task_manager @elastic/response-ops
src/plugins/telemetry_collection_manager @elastic/kibana-core
x-pack/plugins/telemetry_collection_xpack @elastic/kibana-core
src/plugins/telemetry_management_section @elastic/kibana-core
src/plugins/telemetry @elastic/kibana-core
test/plugin_functional/plugins/telemetry @elastic/kibana-core
packages/kbn-telemetry-tools @elastic/kibana-core
packages/kbn-test @elastic/kibana-operations
x-pack/test/licensing_plugin/plugins/test_feature_usage @elastic/kibana-security
packages/kbn-test-jest-helpers @elastic/kibana-operations
packages/kbn-test-subj-selector @elastic/kibana-operations
x-pack/examples/testing_embedded_lens @elastic/kibana-visualizations
x-pack/examples/third_party_lens_navigation_prompt @elastic/kibana-visualizations
x-pack/examples/third_party_vis_lens_example @elastic/kibana-visualizations
x-pack/plugins/threat_intelligence @elastic/protections-experience
x-pack/plugins/timelines @elastic/security-threat-hunting-investigations
packages/kbn-timelion-grammar @elastic/kibana-visualizations
packages/kbn-tinymath @elastic/kibana-visualizations
packages/kbn-tooling-log @elastic/kibana-operations
x-pack/plugins/transform @elastic/ml-ui
x-pack/plugins/translations @elastic/kibana-localization
x-pack/examples/triggers_actions_ui_example @elastic/response-ops
x-pack/plugins/triggers_actions_ui @elastic/response-ops
packages/kbn-ts-projects @elastic/kibana-operations
packages/kbn-ts-type-check-cli @elastic/kibana-operations
packages/kbn-typed-react-router-config @elastic/apm-ui
packages/kbn-ui-actions-browser @elastic/appex-sharedux
x-pack/examples/ui_actions_enhanced_examples @elastic/appex-sharedux
src/plugins/ui_actions_enhanced @elastic/appex-sharedux
examples/ui_action_examples @elastic/appex-sharedux
examples/ui_actions_explorer @elastic/appex-sharedux
src/plugins/ui_actions @elastic/appex-sharedux
packages/kbn-ui-framework @elastic/kibana-design
test/plugin_functional/plugins/ui_settings_plugin @elastic/kibana-core
packages/kbn-ui-shared-deps-npm @elastic/kibana-operations
packages/kbn-ui-shared-deps-src @elastic/kibana-operations
packages/kbn-ui-theme @elastic/kibana-operations
src/plugins/unified_field_list @elastic/kibana-data-discovery
src/plugins/unified_histogram @elastic/kibana-data-discovery
src/plugins/unified_search @elastic/kibana-visualizations
x-pack/plugins/upgrade_assistant @elastic/platform-deployment-management
x-pack/plugins/drilldowns/url_drilldown @elastic/kibana-app-services
src/plugins/url_forwarding @elastic/kibana-visualizations
src/plugins/usage_collection @elastic/kibana-core
test/plugin_functional/plugins/usage_collection @elastic/kibana-core
packages/kbn-user-profile-components @elastic/kibana-security
examples/user_profile_examples @elastic/kibana-security
x-pack/test/security_api_integration/plugins/user_profiles_consumer @elastic/kibana-security
packages/kbn-utility-types @elastic/kibana-core
packages/kbn-utility-types-jest @elastic/kibana-operations
packages/kbn-utils @elastic/kibana-operations
x-pack/plugins/ux @elastic/uptime
src/plugins/vis_default_editor @elastic/kibana-visualizations
src/plugins/vis_types/gauge @elastic/kibana-visualizations
src/plugins/vis_types/heatmap @elastic/kibana-visualizations
src/plugins/vis_type_markdown @elastic/kibana-presentation
src/plugins/vis_types/metric @elastic/kibana-visualizations
src/plugins/vis_types/pie @elastic/kibana-visualizations
src/plugins/vis_types/table @elastic/kibana-visualizations
src/plugins/vis_types/tagcloud @elastic/kibana-visualizations
src/plugins/vis_types/timelion @elastic/kibana-visualizations
src/plugins/vis_types/timeseries @elastic/kibana-visualizations
src/plugins/vis_types/vega @elastic/kibana-visualizations
src/plugins/vis_types/vislib @elastic/kibana-visualizations
src/plugins/vis_types/xy @elastic/kibana-visualizations
src/plugins/visualizations @elastic/kibana-visualizations
x-pack/plugins/watcher @elastic/platform-deployment-management
packages/kbn-web-worker-stub @elastic/kibana-operations
packages/kbn-whereis-pkg-cli @elastic/kibana-operations
packages/kbn-yarn-lock-validator @elastic/kibana-operations
# Design (at the bottom for specificity of SASS files)
**/*.scss @elastic/kibana-design

1
.gitignore vendored
View file

@ -57,6 +57,7 @@ webpackstats.json
!/config/serverless.security.yml !/config/serverless.security.yml
!/config/node.options !/config/node.options
coverage coverage
!/test/common/fixtures/plugins/coverage
selenium selenium
.babel_register_cache.json .babel_register_cache.json
.webpack.babelcache .webpack.babelcache

View file

@ -67,7 +67,7 @@ If that isn't the case, please file an issue, it could be a bug with the system.
We are [aware of some performance issues](https://github.com/elastic/elastic-docs/issues/274) with deeply nested, or large APIs. We are [aware of some performance issues](https://github.com/elastic/elastic-docs/issues/274) with deeply nested, or large APIs.
In the short term, the best thing you can do is avoid deeply nested API items. Use interfaces rather than inlined objects. Also consider In the short term, the best thing you can do is avoid deeply nested API items. Use interfaces rather than inlined objects. Also consider
adding `serviceFolders` in your kibana.json. This will automatically split your docs up based on which APIs are defined within the service folders. adding `serviceFolders` in your kibana.jsonc. This will automatically split your docs up based on which APIs are defined within the service folders.
They will get built into a doc with an id of They will get built into a doc with an id of
`kib${PluginName}${ServiceName}PluginApi`. The data plugin does this, so you `kib${PluginName}${ServiceName}PluginApi`. The data plugin does this, so you
can [check that out as an example](https://github.com/elastic/kibana/blob/main/src/plugins/data/kibana.json#L13). can [check that out as an example](https://github.com/elastic/kibana/blob/main/src/plugins/data/kibana.json#L13).

View file

@ -36,7 +36,6 @@ layout: landing
{ pageId: "kibDevDocsOpsKbnPm" }, { pageId: "kibDevDocsOpsKbnPm" },
{ pageId: "kibDevDocsOpsOptimizer" }, { pageId: "kibDevDocsOpsOptimizer" },
{ pageId: "kibDevDocsOpsBabelPreset" }, { pageId: "kibDevDocsOpsBabelPreset" },
{ pageId: "kibDevDocsOpsBabelPluginPackageImports" },
{ pageId: "kibDevDocsOpsUiSharedDepsNpm" }, { pageId: "kibDevDocsOpsUiSharedDepsNpm" },
{ pageId: "kibDevDocsOpsUiSharedDepsSrc" }, { pageId: "kibDevDocsOpsUiSharedDepsSrc" },
{ pageId: "kibDevDocsOpsPluginDiscovery" }, { pageId: "kibDevDocsOpsPluginDiscovery" },

View file

@ -1,14 +0,0 @@
{
"id": "bfetchExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"requiredPlugins": ["bfetch", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/bfetch-explorer-plugin",
"owner": "@elastic/appex-sharedux",
"plugin": {
"id": "bfetchExplorer",
"server": true,
"browser": true,
"requiredPlugins": [
"bfetch",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,18 +0,0 @@
{
"id": "controlsExample",
"owner": {
"name": "Kibana Presentation",
"githubTeam": "kibana-presentation"
},
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"requiredPlugins": [
"controls",
"data",
"developerExamples",
"embeddable",
"navigation",
"presentationUtil"
]
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/controls-example-plugin",
"owner": "@elastic/kibana-presentation",
"plugin": {
"id": "controlsExample",
"server": false,
"browser": true,
"requiredPlugins": [
"controls",
"data",
"developerExamples",
"embeddable",
"navigation",
"presentationUtil"
]
}
}

View file

@ -1,20 +0,0 @@
{
"id": "dashboardEmbeddableExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"requiredPlugins": [
"embeddable",
"embeddableExamples",
"dashboard",
"developerExamples",
"kibanaReact"
],
"owner": {
"name": "Presentation",
"githubTeam": "kibana-presentation"
},
"description": "Example app that shows how to embed a dashboard in an application",
"optionalPlugins": []
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/dashboard-embeddable-examples-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that shows how to embed a dashboard in an application",
"plugin": {
"id": "dashboardEmbeddableExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"embeddable",
"embeddableExamples",
"dashboard",
"developerExamples",
"kibanaReact"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "dataViewFieldEditorExample",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"requiredPlugins": ["data", "dataViewFieldEditor", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": [],
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Data view field editor example app"
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/data-view-field-editor-example-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Data view field editor example app",
"plugin": {
"id": "dataViewFieldEditorExample",
"server": false,
"browser": true,
"requiredPlugins": [
"data",
"dataViewFieldEditor",
"developerExamples"
]
}
}

View file

@ -1,10 +0,0 @@
{
"id": "developerExamples",
"owner": {
"name": "Kibana Core",
"githubTeam": "kibana-core"
},
"kibanaVersion": "kibana",
"version": "0.0.1",
"ui": true
}

View file

@ -0,0 +1,10 @@
{
"type": "plugin",
"id": "@kbn/developer-examples-plugin",
"owner": "@elastic/appex-sharedux",
"plugin": {
"id": "developerExamples",
"server": false,
"browser": true
}
}

View file

@ -1,16 +0,0 @@
{
"id": "embeddableExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that shows how to register custom embeddables",
"requiredPlugins": ["embeddable", "uiActions", "savedObjects", "dashboard", "kibanaUtils"],
"optionalPlugins": [],
"extraPublicDirs": ["public/todo", "public/hello_world", "public/todo/todo_ref_embeddable"],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,26 @@
{
"type": "plugin",
"id": "@kbn/embeddable-examples-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that shows how to register custom embeddables",
"plugin": {
"id": "embeddableExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"embeddable",
"uiActions",
"savedObjects",
"dashboard",
"kibanaUtils"
],
"requiredBundles": [
"kibanaReact"
],
"extraPublicDirs": [
"public/todo",
"public/hello_world",
"public/todo/todo_ref_embeddable"
]
}
}

View file

@ -1,23 +0,0 @@
{
"id": "embeddableExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that relies on registered functionality in the embeddable_examples plugin",
"requiredPlugins": [
"uiActions",
"inspector",
"embeddable",
"embeddableExamples",
"developerExamples",
"dashboard",
"kibanaReact",
"savedObjects"
],
"optionalPlugins": []
}

View file

@ -0,0 +1,21 @@
{
"type": "plugin",
"id": "@kbn/embeddable-explorer-plugin",
"owner": "@elastic/kibana-presentation",
"description": "Example app that relies on registered functionality in the embeddable_examples plugin",
"plugin": {
"id": "embeddableExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions",
"inspector",
"embeddable",
"embeddableExamples",
"developerExamples",
"dashboard",
"kibanaReact",
"savedObjects"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "expressionsExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"requiredPlugins": ["expressions", "inspector", "uiActions", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/expressions-explorer-plugin",
"owner": "@elastic/kibana-app-services",
"plugin": {
"id": "expressionsExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"expressions",
"inspector",
"uiActions",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,13 +0,0 @@
{
"id": "fieldFormatsExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"server": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "A plugin that demonstrates field formats usage",
"requiredPlugins": ["developerExamples", "fieldFormats", "dataViewFieldEditor", "data"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/field-formats-example-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "A plugin that demonstrates field formats usage",
"plugin": {
"id": "fieldFormatsExample",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples",
"fieldFormats",
"dataViewFieldEditor",
"data"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "filesExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"owner": {
"name": "kibana-app-services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin integrating with files plugin",
"server": true,
"ui": true,
"requiredPlugins": ["files", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/files-example-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin integrating with files plugin",
"plugin": {
"id": "filesExample",
"server": true,
"browser": true,
"requiredPlugins": [
"files",
"developerExamples"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "guidedOnboardingExample",
"version": "1.0.0",
"kibanaVersion": "kibana",
"owner": {
"name": "platform-onboarding",
"githubTeam": "platform-onboarding"
},
"description": "Example plugin to consume guidedOnboarding",
"server": true,
"ui": true,
"requiredPlugins": ["navigation", "guidedOnboarding"],
"optionalPlugins": []
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/guided-onboarding-example-plugin",
"owner": "@elastic/platform-onboarding",
"description": "Example plugin to consume guidedOnboarding",
"plugin": {
"id": "guidedOnboardingExample",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"guidedOnboarding"
]
}
}

View file

@ -1,12 +0,0 @@
{
"id": "helloWorld",
"version": "1.0.0",
"kibanaVersion": "kibana",
"ui": true,
"owner": {
"name": "Kibana core",
"githubTeam": "kibana-core"
},
"description": "A plugin which registers a very simple hello world application.",
"requiredPlugins": ["developerExamples"]
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/hello-world-plugin",
"owner": "@elastic/kibana-core",
"description": "A plugin which registers a very simple hello world application.",
"plugin": {
"id": "helloWorld",
"server": false,
"browser": true,
"requiredPlugins": [
"developerExamples"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "locatorExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that registers custom URL locators",
"requiredPlugins": ["share"],
"optionalPlugins": [],
"extraPublicDirs": ["public/locator"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/locator-examples-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example app that registers custom URL locators",
"plugin": {
"id": "locatorExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"share"
],
"extraPublicDirs": [
"public/locator"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "locatorExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example app that shows how to use custom URL locators",
"requiredPlugins": ["share", "locatorExamples", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/locator-explorer-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example app that shows how to use custom URL locators",
"plugin": {
"id": "locatorExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"share",
"locatorExamples",
"developerExamples"
]
}
}

View file

@ -1,12 +0,0 @@
{
"id": "paertialResultsExample",
"version": "0.1.0",
"kibanaVersion": "kibana",
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "A plugin demonstrating partial results in the expressions plugin",
"requiredPlugins": ["developerExamples", "expressions"]
}

View file

@ -0,0 +1,15 @@
{
"type": "plugin",
"id": "@kbn/paertial-results-example-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "A plugin demonstrating partial results in the expressions plugin",
"plugin": {
"id": "paertialResultsExample",
"server": false,
"browser": true,
"requiredPlugins": [
"developerExamples",
"expressions"
]
}
}

View file

@ -1,16 +0,0 @@
{
"id": "prebootExample",
"kibanaVersion": "kibana",
"owner": {
"name": "Core",
"githubTeam": "kibana-core"
},
"description": "The example of the `preboot` plugin.",
"version": "8.0.0",
"configPath": ["prebootExample"],
"type": "preboot",
"server": true,
"ui": true,
"requiredPlugins": [],
"requiredBundles": []
}

View file

@ -0,0 +1,18 @@
{
"type": "plugin",
"id": "@kbn/preboot-example-plugin",
"owner": [
"@elastic/kibana-security",
"@elastic/kibana-core"
],
"description": "The example of the `preboot` plugin.",
"plugin": {
"id": "prebootExample",
"type": "preboot",
"server": true,
"browser": true,
"configPath": [
"prebootExample"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "responseStream",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "ML UI",
"githubTeam": "ml-ui"
},
"requiredPlugins": ["developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/response-stream-plugin",
"owner": "@elastic/ml-ui",
"plugin": {
"id": "responseStream",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "routingExample",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "Core",
"githubTeam": "kibana-core"
},
"description": "A simple example of how to use core's routing services",
"requiredPlugins": ["developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/routing-example-plugin",
"owner": "@elastic/kibana-core",
"description": "A simple example of how to use core's routing services",
"plugin": {
"id": "routingExample",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "screenshotModeExample",
"kibanaVersion": "kibana",
"version": "1.0.0",
"server": true,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use screenshotMode plugin services",
"requiredPlugins": ["navigation", "screenshotMode", "usageCollection", "developerExamples"],
"optionalPlugins": []
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/screenshot-mode-example-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Example plugin of how to use screenshotMode plugin services",
"plugin": {
"id": "screenshotModeExample",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"screenshotMode",
"usageCollection",
"developerExamples"
]
}
}

View file

@ -1,20 +0,0 @@
{
"id": "searchExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use data plugin search services",
"server": true,
"ui": true,
"requiredPlugins": ["navigation", "data", "developerExamples", "inspector", "kibanaUtils", "share", "unifiedSearch"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"],
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions."
}

View file

@ -0,0 +1,23 @@
{
"type": "plugin",
"id": "@kbn/search-examples-plugin",
"owner": "@elastic/kibana-data-discovery",
"description": "Examples for using the data plugin search service. Includes examples for searching using the high level search source, or low-level search services, as well as integrating with search sessions.",
"plugin": {
"id": "searchExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"navigation",
"data",
"developerExamples",
"inspector",
"kibanaUtils",
"share",
"unifiedSearch"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "shareExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": false,
"ui": true,
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Small demos of share plugin usage",
"requiredPlugins": ["share"],
"optionalPlugins": []
}

View file

@ -0,0 +1,14 @@
{
"type": "plugin",
"id": "@kbn/share-examples-plugin",
"owner": "@elastic/kibana-app-services",
"description": "Small demos of share plugin usage",
"plugin": {
"id": "shareExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"share"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "stateContainersExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use kibanaUtils services",
"server": false,
"ui": true,
"requiredPlugins": ["navigation", "data", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaUtils"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/state-containers-examples-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to use kibanaUtils services",
"plugin": {
"id": "stateContainersExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"navigation",
"data",
"developerExamples"
],
"requiredBundles": [
"kibanaUtils"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "uiActionsExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to register custom uiActions",
"server": false,
"ui": true,
"requiredPlugins": ["uiActions"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,17 @@
{
"type": "plugin",
"id": "@kbn/ui-actions-examples-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to register custom uiActions",
"plugin": {
"id": "uiActionsExamples",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,15 +0,0 @@
{
"id": "uiActionsExplorer",
"kibanaVersion": "kibana",
"version": "0.0.1",
"owner": {
"name": "App Services",
"githubTeam": "kibana-app-services"
},
"description": "Example plugin of how to use uiActions plugin services",
"server": false,
"ui": true,
"requiredPlugins": ["uiActions", "uiActionsExamples", "developerExamples"],
"optionalPlugins": [],
"requiredBundles": ["kibanaReact"]
}

View file

@ -0,0 +1,19 @@
{
"type": "plugin",
"id": "@kbn/ui-actions-explorer-plugin",
"owner": "@elastic/appex-sharedux",
"description": "Example plugin of how to use uiActions plugin services",
"plugin": {
"id": "uiActionsExplorer",
"server": false,
"browser": true,
"requiredPlugins": [
"uiActions",
"uiActionsExamples",
"developerExamples"
],
"requiredBundles": [
"kibanaReact"
]
}
}

View file

@ -1,14 +0,0 @@
{
"id": "userProfileExamples",
"kibanaVersion": "kibana",
"version": "0.0.1",
"server": true,
"ui": true,
"owner": {
"name": "Kibana Platform Security",
"githubTeam": "kibana-security"
},
"description": "Demo of how to implement a suggest user functionality",
"requiredPlugins": ["developerExamples", "security", "spaces"],
"optionalPlugins": []
}

View file

@ -0,0 +1,16 @@
{
"type": "plugin",
"id": "@kbn/user-profile-examples-plugin",
"owner": "@elastic/kibana-security",
"description": "Demo of how to implement a suggest user functionality",
"plugin": {
"id": "userProfileExamples",
"server": true,
"browser": true,
"requiredPlugins": [
"developerExamples",
"security",
"spaces"
]
}
}

View file

@ -23,7 +23,7 @@ import { Log } from './lib/log.mjs';
import External from './lib/external_packages.js'; import External from './lib/external_packages.js';
const start = Date.now(); const start = Date.now();
const args = new Args(process.argv.slice(2), process.env.CI ? ['--quiet'] : []); const args = new Args(process.argv.slice(2), []);
const log = new Log(args.getLoggingLevel()); const log = new Log(args.getLoggingLevel());
const cmdName = args.getCommandName(); const cmdName = args.getCommandName();

View file

@ -62,7 +62,7 @@ export const command = {
const forceInstall = const forceInstall =
args.getBooleanValue('force-install') ?? (await haveNodeModulesBeenManuallyDeleted()); args.getBooleanValue('force-install') ?? (await haveNodeModulesBeenManuallyDeleted());
const [{ packages, plugins, tsConfigsPaths }] = await Promise.all([ const [{ packageManifestPaths, tsConfigRepoRels }] = await Promise.all([
// discover the location of packages, plugins, etc // discover the location of packages, plugins, etc
await time('discovery', discovery), await time('discovery', discovery),
@ -78,16 +78,22 @@ export const command = {
]); ]);
// generate the package map and package.json file, if necessary // generate the package map and package.json file, if necessary
await Promise.all([ const [packages] = await Promise.all([
time('regenerate package map', async () => { time('regenerate package map', async () => {
await regeneratePackageMap(packages, plugins, log); return await regeneratePackageMap(log, packageManifestPaths);
}), }),
time('regenerate tsconfig map', async () => { time('regenerate tsconfig map', async () => {
await regenerateTsconfigPaths(tsConfigsPaths, log); await regenerateTsconfigPaths(tsConfigRepoRels, log);
}), }),
]);
await Promise.all([
time('update package json', async () => { time('update package json', async () => {
await updatePackageJson(packages, log); await updatePackageJson(packages, log);
}), }),
time('regenerate tsconfig.base.json', async () => {
await regenerateBaseTsconfig(packages, log);
}),
]); ]);
// Bootstrap process for Bazel packages // Bootstrap process for Bazel packages
@ -111,9 +117,6 @@ export const command = {
}); });
await Promise.all([ await Promise.all([
time('regenerate tsconfig.base.json', async () => {
await regenerateBaseTsconfig();
}),
time('sort package json', async () => { time('sort package json', async () => {
await sortPackageJson(log); await sortPackageJson(log);
}), }),

View file

@ -7,83 +7,37 @@
*/ */
import Path from 'path'; import Path from 'path';
import Fs from 'fs';
import ChildProcess from 'child_process';
import { promisify } from 'util';
import External from '../../lib/external_packages.js';
import { REPO_ROOT } from '../../lib/paths.mjs'; import { REPO_ROOT } from '../../lib/paths.mjs';
const execAsync = promisify(ChildProcess.execFile);
export async function discovery() { export async function discovery() {
const { getPluginSearchPaths, simpleKibanaPlatformPluginDiscovery } = await import( const { getRepoRels } = External['@kbn/repo-packages']();
// eslint-disable-next-line @kbn/imports/uniform_imports
'../../../../packages/kbn-plugin-discovery/index.js'
);
const { Package } = await import( /** @type {string[]} */
// we need to run this before we install node modules, so it can't rely on @kbn/* imports const tsConfigRepoRels = [];
// eslint-disable-next-line @kbn/imports/uniform_imports /** @type {string[]} */
'../../../../packages/kbn-repo-packages/index.js' const packageManifestPaths = [];
); for (const repoRel of await getRepoRels(REPO_ROOT, [
'tsconfig.json',
const proc = await execAsync('git', ['ls-files', '-comt', '--exclude-standard'], { '**/tsconfig.json',
cwd: REPO_ROOT, '**/kibana.jsonc',
encoding: 'utf8', ])) {
maxBuffer: Infinity, if (repoRel === 'tsconfig.json' || repoRel.endsWith('/tsconfig.json')) {
}); tsConfigRepoRels.push(repoRel);
const paths = new Map();
/** @type {Map<string, Set<string>>} */
const filesByName = new Map();
for (const raw of proc.stdout.split('\n')) {
const line = raw.trim();
if (!line) {
continue; continue;
} }
const repoRel = line.slice(2); // trim the single char status and separating space from the line if (repoRel.endsWith('/kibana.jsonc')) {
const name = repoRel.split('/').pop(); packageManifestPaths.push(Path.resolve(REPO_ROOT, repoRel));
if (name !== 'kibana.jsonc' && name !== 'tsconfig.json') {
continue; continue;
} }
const existingPath = paths.get(repoRel); throw new Error(`unexpected repo rel: ${repoRel}`);
const path = existingPath ?? Path.resolve(REPO_ROOT, repoRel);
if (!existingPath) {
paths.set(repoRel, path);
}
let files = filesByName.get(name);
if (!files) {
files = new Set();
filesByName.set(name, files);
}
if (line.startsWith('C ')) {
// this line indicates that the previous path is changed in the working
// tree, so we need to determine if it was deleted and remove it if so
if (!Fs.existsSync(path)) {
files.delete(path);
}
} else {
files.add(path);
}
} }
return { return {
plugins: simpleKibanaPlatformPluginDiscovery( tsConfigRepoRels,
getPluginSearchPaths({ packageManifestPaths,
rootDir: REPO_ROOT,
examples: true,
oss: false,
testPlugins: true,
}),
[]
),
tsConfigsPaths: Array.from(filesByName.get('tsconfig.json') ?? new Set()),
packages: Array.from(filesByName.get('kibana.jsonc') ?? new Set())
.map((path) => Package.fromManifest(REPO_ROOT, path))
.sort((a, b) => a.id.localeCompare(b.id)),
}; };
} }

View file

@ -10,27 +10,30 @@ import Path from 'path';
import Fsp from 'fs/promises'; import Fsp from 'fs/promises';
import { REPO_ROOT } from '../../lib/paths.mjs'; import { REPO_ROOT } from '../../lib/paths.mjs';
import External from '../../lib/external_packages.js';
export async function regenerateBaseTsconfig() { /**
const pkgMap = External['@kbn/repo-packages']().readPackageMap(); * @param {import('@kbn/repo-packages').Package[]} packages
* @param {import('@kbn/some-dev-log').SomeDevLog} log
*/
export async function regenerateBaseTsconfig(packages, log) {
const tsconfigPath = Path.resolve(REPO_ROOT, 'tsconfig.base.json'); const tsconfigPath = Path.resolve(REPO_ROOT, 'tsconfig.base.json');
const lines = (await Fsp.readFile(tsconfigPath, 'utf-8')).split('\n'); const current = await Fsp.readFile(tsconfigPath, 'utf8');
const lines = current.split('\n');
const start = lines.findIndex((l) => l.trim() === '// START AUTOMATED PACKAGE LISTING'); const start = lines.findIndex((l) => l.trim() === '// START AUTOMATED PACKAGE LISTING');
const end = lines.findIndex((l) => l.trim() === '// END AUTOMATED PACKAGE LISTING'); const end = lines.findIndex((l) => l.trim() === '// END AUTOMATED PACKAGE LISTING');
const current = await Fsp.readFile(tsconfigPath, 'utf8');
const updated = [ const updated = [
...lines.slice(0, start + 1), ...lines.slice(0, start + 1),
...Array.from(pkgMap.entries()).flatMap(([moduleId, repoRelPath]) => [ ...packages.flatMap((p) => [
` "${moduleId}": ["${repoRelPath}"],`, ` "${p.id}": ["${p.normalizedRepoRelativeDir}"],`,
` "${moduleId}/*": ["${repoRelPath}/*"],`, ` "${p.id}/*": ["${p.normalizedRepoRelativeDir}/*"],`,
]), ]),
...lines.slice(end), ...lines.slice(end),
].join('\n'); ].join('\n');
if (updated !== current) { if (updated !== current) {
await Fsp.writeFile(tsconfigPath, updated); await Fsp.writeFile(tsconfigPath, updated);
log.warning('updated tsconfig.base.json');
} }
} }

View file

@ -6,46 +6,19 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import Path from 'path'; import External from '../../lib/external_packages.js';
import Fs from 'fs';
import Fsp from 'fs/promises';
import { convertPluginIdToPackageId } from '../../lib/plugins.mjs';
import { normalizePath } from '../../lib/normalize_path.mjs';
import { REPO_ROOT } from '../../lib/paths.mjs'; import { REPO_ROOT } from '../../lib/paths.mjs';
/** /**
*
* @param {import('@kbn/repo-packages').Package[]} packages
* @param {import('@kbn/plugin-discovery').KibanaPlatformPlugin[]} plugins
* @param {import('@kbn/some-dev-log').SomeDevLog} log * @param {import('@kbn/some-dev-log').SomeDevLog} log
* @param {string[]} packageManifestPaths
*/ */
export async function regeneratePackageMap(packages, plugins, log) { export async function regeneratePackageMap(log, packageManifestPaths) {
const path = Path.resolve(REPO_ROOT, 'packages/kbn-repo-packages/package-map.json'); const { updatePackageMap, getPackages } = External['@kbn/repo-packages']();
const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined;
/** @type {Array<[string, string]>} */ if (updatePackageMap(REPO_ROOT, packageManifestPaths)) {
const entries = [['@kbn/core', 'src/core']];
for (const pkg of packages) {
entries.push([pkg.manifest.id, pkg.normalizedRepoRelativeDir]);
}
for (const plugin of plugins) {
entries.push([
convertPluginIdToPackageId(plugin.manifest.id),
normalizePath(Path.relative(REPO_ROOT, plugin.directory)),
]);
}
const content = JSON.stringify(
entries.sort((a, b) => a[0].localeCompare(b[0])),
null,
2
);
if (content !== existingContent) {
await Fsp.writeFile(path, content);
log.warning('updated package map'); log.warning('updated package map');
} }
return getPackages(REPO_ROOT);
} }

View file

@ -13,16 +13,14 @@ import Fsp from 'fs/promises';
import { REPO_ROOT } from '../../lib/paths.mjs'; import { REPO_ROOT } from '../../lib/paths.mjs';
/** /**
* @param {string[]} tsconfigPaths * @param {string[]} tsConfigRepoRels
* @param {import('@kbn/some-dev-log').SomeDevLog} log * @param {import('@kbn/some-dev-log').SomeDevLog} log
*/ */
export async function regenerateTsconfigPaths(tsconfigPaths, log) { export async function regenerateTsconfigPaths(tsConfigRepoRels, log) {
const path = Path.resolve(REPO_ROOT, 'packages/kbn-ts-projects/config-paths.json'); const path = Path.resolve(REPO_ROOT, 'packages/kbn-ts-projects/config-paths.json');
const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined; const existingContent = Fs.existsSync(path) ? await Fsp.readFile(path, 'utf8') : undefined;
const entries = [...tsconfigPaths] const entries = Array.from(tsConfigRepoRels).sort((a, b) => a.localeCompare(b));
.map((abs) => Path.relative(REPO_ROOT, abs))
.sort((a, b) => a.localeCompare(b));
const content = JSON.stringify(entries, null, 2); const content = JSON.stringify(entries, null, 2);
if (content !== existingContent) { if (content !== existingContent) {

View file

@ -64,7 +64,7 @@ export async function updatePackageJson(pkgs, log) {
new Map(Object.entries(pkgJson.dependencies).filter(([k]) => k.startsWith('@kbn/'))), new Map(Object.entries(pkgJson.dependencies).filter(([k]) => k.startsWith('@kbn/'))),
new Map( new Map(
pkgs pkgs
.filter((p) => !p.isDevOnly) .filter((p) => !p.isDevOnly())
.map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`]) .map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`])
) )
); );
@ -74,7 +74,7 @@ export async function updatePackageJson(pkgs, log) {
new Map(Object.entries(pkgJson.devDependencies).filter(([k]) => k.startsWith('@kbn/'))), new Map(Object.entries(pkgJson.devDependencies).filter(([k]) => k.startsWith('@kbn/'))),
new Map( new Map(
pkgs pkgs
.filter((p) => p.isDevOnly) .filter((p) => p.isDevOnly())
.map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`]) .map((p) => [p.manifest.id, `link:${p.normalizedRepoRelativeDir}`])
) )
); );

View file

@ -1,29 +0,0 @@
/*
* 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.
*/
import { createCliError } from '../../lib/cli_error.mjs';
/**
* @param {import('@kbn/repo-info').KibanaPackageJson} pkgJson
* @param {import('@kbn/some-dev-log').SomeDevLog} log
*/
export async function validatePackageJson(pkgJson, log) {
const failures = false;
const typesInProd = Object.keys(pkgJson.dependencies).filter((id) => id.startsWith('@types/'));
if (typesInProd.length) {
const list = typesInProd.map((id) => ` - ${id}`).join('\n');
log.error(
`The following @types/* packages are listed in dependencies but should be in the devDependencies:\n${list}`
);
}
if (failures) {
throw createCliError('failed to validate package.json, check for errors above');
}
}

View file

@ -6,9 +6,11 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
module.exports = { module.exports = {
/** @returns {import('@kbn/repo-packages')} */
['@kbn/repo-packages']() { ['@kbn/repo-packages']() {
require('@kbn/babel-register').install(); // we need to load this package before we install node modules so we can't use @kbn/* imports here
return require('@kbn/repo-packages'); // eslint-disable-next-line import/no-dynamic-require
return require('../../../' + 'packages/kbn-repo-packages');
}, },
['@kbn/ci-stats-reporter']() { ['@kbn/ci-stats-reporter']() {
@ -30,24 +32,4 @@ module.exports = {
require('@kbn/babel-register').install(); require('@kbn/babel-register').install();
return require('@kbn/get-repo-files'); return require('@kbn/get-repo-files');
}, },
['@kbn/repo-info']() {
require('@kbn/babel-register').install();
return require('@kbn/repo-info');
},
['@kbn/ts-projects']() {
require('@kbn/babel-register').install();
return require('@kbn/ts-projects');
},
/**
* @param {string} absPath
* @returns {unknown}
*/
reqAbs(absPath) {
require('@kbn/babel-register').install();
// eslint-disable-next-line import/no-dynamic-require
return require(absPath);
},
}; };

View file

@ -21,7 +21,8 @@
"@kbn/sort-package-json", "@kbn/sort-package-json",
{ "path": "../src/dev/tsconfig.json" }, { "path": "../src/dev/tsconfig.json" },
"@kbn/ci-stats-reporter", "@kbn/ci-stats-reporter",
"@kbn/ts-projects", "@kbn/repo-packages",
"@kbn/repo-packages" "@kbn/some-dev-log",
"@kbn/bazel-runner"
] ]
} }

View file

@ -131,24 +131,57 @@
"@hapi/hoek": "^9.2.1", "@hapi/hoek": "^9.2.1",
"@hapi/inert": "^6.0.4", "@hapi/inert": "^6.0.4",
"@hapi/wreck": "^17.1.0", "@hapi/wreck": "^17.1.0",
"@kbn/aad-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/aad",
"@kbn/ace": "link:packages/kbn-ace", "@kbn/ace": "link:packages/kbn-ace",
"@kbn/actions-plugin": "link:x-pack/plugins/actions",
"@kbn/actions-simulators-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/actions_simulators",
"@kbn/advanced-settings-plugin": "link:src/plugins/advanced_settings",
"@kbn/aiops-components": "link:x-pack/packages/ml/aiops_components", "@kbn/aiops-components": "link:x-pack/packages/ml/aiops_components",
"@kbn/aiops-plugin": "link:x-pack/plugins/aiops",
"@kbn/aiops-utils": "link:x-pack/packages/ml/aiops_utils", "@kbn/aiops-utils": "link:x-pack/packages/ml/aiops_utils",
"@kbn/alerting-api-integration-test-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts",
"@kbn/alerting-example-plugin": "link:x-pack/examples/alerting_example",
"@kbn/alerting-fixture-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/alerts",
"@kbn/alerting-plugin": "link:x-pack/plugins/alerting",
"@kbn/alerts": "link:packages/kbn-alerts", "@kbn/alerts": "link:packages/kbn-alerts",
"@kbn/alerts-restricted-fixtures-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/alerts_restricted",
"@kbn/alerts-ui-shared": "link:packages/kbn-alerts-ui-shared", "@kbn/alerts-ui-shared": "link:packages/kbn-alerts-ui-shared",
"@kbn/analytics": "link:packages/kbn-analytics", "@kbn/analytics": "link:packages/kbn-analytics",
"@kbn/analytics-client": "link:packages/analytics/client", "@kbn/analytics-client": "link:packages/analytics/client",
"@kbn/analytics-ftr-helpers-plugin": "link:test/analytics/plugins/analytics_ftr_helpers",
"@kbn/analytics-plugin-a-plugin": "link:test/analytics/plugins/analytics_plugin_a",
"@kbn/analytics-shippers-elastic-v3-browser": "link:packages/analytics/shippers/elastic_v3/browser", "@kbn/analytics-shippers-elastic-v3-browser": "link:packages/analytics/shippers/elastic_v3/browser",
"@kbn/analytics-shippers-elastic-v3-common": "link:packages/analytics/shippers/elastic_v3/common", "@kbn/analytics-shippers-elastic-v3-common": "link:packages/analytics/shippers/elastic_v3/common",
"@kbn/analytics-shippers-elastic-v3-server": "link:packages/analytics/shippers/elastic_v3/server", "@kbn/analytics-shippers-elastic-v3-server": "link:packages/analytics/shippers/elastic_v3/server",
"@kbn/analytics-shippers-fullstory": "link:packages/analytics/shippers/fullstory", "@kbn/analytics-shippers-fullstory": "link:packages/analytics/shippers/fullstory",
"@kbn/analytics-shippers-gainsight": "link:packages/analytics/shippers/gainsight", "@kbn/analytics-shippers-gainsight": "link:packages/analytics/shippers/gainsight",
"@kbn/apm-config-loader": "link:packages/kbn-apm-config-loader", "@kbn/apm-config-loader": "link:packages/kbn-apm-config-loader",
"@kbn/apm-plugin": "link:x-pack/plugins/apm",
"@kbn/apm-utils": "link:packages/kbn-apm-utils", "@kbn/apm-utils": "link:packages/kbn-apm-utils",
"@kbn/app-link-test-plugin": "link:test/plugin_functional/plugins/app_link_test",
"@kbn/application-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/application_usage_test",
"@kbn/audit-log-plugin": "link:x-pack/test/security_api_integration/plugins/audit_log",
"@kbn/banners-plugin": "link:x-pack/plugins/banners",
"@kbn/bfetch-explorer-plugin": "link:examples/bfetch_explorer",
"@kbn/bfetch-plugin": "link:src/plugins/bfetch",
"@kbn/canvas-plugin": "link:x-pack/plugins/canvas",
"@kbn/cases-api-integration-test-plugin": "link:x-pack/test/cases_api_integration/common/plugins/cases",
"@kbn/cases-components": "link:packages/kbn-cases-components", "@kbn/cases-components": "link:packages/kbn-cases-components",
"@kbn/cases-plugin": "link:x-pack/plugins/cases",
"@kbn/cell-actions": "link:packages/kbn-cell-actions", "@kbn/cell-actions": "link:packages/kbn-cell-actions",
"@kbn/chart-expressions-common": "link:src/plugins/chart_expressions/common", "@kbn/chart-expressions-common": "link:src/plugins/chart_expressions/common",
"@kbn/chart-icons": "link:packages/kbn-chart-icons", "@kbn/chart-icons": "link:packages/kbn-chart-icons",
"@kbn/charts-plugin": "link:src/plugins/charts",
"@kbn/cloud-chat-plugin": "link:x-pack/plugins/cloud_integrations/cloud_chat",
"@kbn/cloud-data-migration-plugin": "link:x-pack/plugins/cloud_integrations/cloud_data_migration",
"@kbn/cloud-defend-plugin": "link:x-pack/plugins/cloud_defend",
"@kbn/cloud-experiments-plugin": "link:x-pack/plugins/cloud_integrations/cloud_experiments",
"@kbn/cloud-full-story-plugin": "link:x-pack/plugins/cloud_integrations/cloud_full_story",
"@kbn/cloud-gainsight-plugin": "link:x-pack/plugins/cloud_integrations/cloud_gain_sight",
"@kbn/cloud-integration-saml-provider-plugin": "link:x-pack/test/cloud_integration/plugins/saml_provider",
"@kbn/cloud-links-plugin": "link:x-pack/plugins/cloud_integrations/cloud_links",
"@kbn/cloud-plugin": "link:x-pack/plugins/cloud",
"@kbn/cloud-security-posture-plugin": "link:x-pack/plugins/cloud_security_posture",
"@kbn/code-editor": "link:packages/shared-ux/code_editor/impl", "@kbn/code-editor": "link:packages/shared-ux/code_editor/impl",
"@kbn/code-editor-mocks": "link:packages/shared-ux/code_editor/mocks", "@kbn/code-editor-mocks": "link:packages/shared-ux/code_editor/mocks",
"@kbn/code-editor-types": "link:packages/shared-ux/code_editor/types", "@kbn/code-editor-types": "link:packages/shared-ux/code_editor/types",
@ -156,12 +189,18 @@
"@kbn/config": "link:packages/kbn-config", "@kbn/config": "link:packages/kbn-config",
"@kbn/config-mocks": "link:packages/kbn-config-mocks", "@kbn/config-mocks": "link:packages/kbn-config-mocks",
"@kbn/config-schema": "link:packages/kbn-config-schema", "@kbn/config-schema": "link:packages/kbn-config-schema",
"@kbn/console-plugin": "link:src/plugins/console",
"@kbn/content-management-content-editor": "link:packages/content-management/content_editor", "@kbn/content-management-content-editor": "link:packages/content-management/content_editor",
"@kbn/content-management-plugin": "link:src/plugins/content_management",
"@kbn/content-management-table-list": "link:packages/content-management/table_list", "@kbn/content-management-table-list": "link:packages/content-management/table_list",
"@kbn/controls-example-plugin": "link:examples/controls_example",
"@kbn/controls-plugin": "link:src/plugins/controls",
"@kbn/core": "link:src/core",
"@kbn/core-analytics-browser": "link:packages/core/analytics/core-analytics-browser", "@kbn/core-analytics-browser": "link:packages/core/analytics/core-analytics-browser",
"@kbn/core-analytics-browser-internal": "link:packages/core/analytics/core-analytics-browser-internal", "@kbn/core-analytics-browser-internal": "link:packages/core/analytics/core-analytics-browser-internal",
"@kbn/core-analytics-server": "link:packages/core/analytics/core-analytics-server", "@kbn/core-analytics-server": "link:packages/core/analytics/core-analytics-server",
"@kbn/core-analytics-server-internal": "link:packages/core/analytics/core-analytics-server-internal", "@kbn/core-analytics-server-internal": "link:packages/core/analytics/core-analytics-server-internal",
"@kbn/core-app-status-plugin": "link:test/plugin_functional/plugins/core_app_status",
"@kbn/core-application-browser": "link:packages/core/application/core-application-browser", "@kbn/core-application-browser": "link:packages/core/application/core-application-browser",
"@kbn/core-application-browser-internal": "link:packages/core/application/core-application-browser-internal", "@kbn/core-application-browser-internal": "link:packages/core/application/core-application-browser-internal",
"@kbn/core-application-common": "link:packages/core/application/core-application-common", "@kbn/core-application-common": "link:packages/core/application/core-application-common",
@ -205,10 +244,12 @@
"@kbn/core-execution-context-server-internal": "link:packages/core/execution-context/core-execution-context-server-internal", "@kbn/core-execution-context-server-internal": "link:packages/core/execution-context/core-execution-context-server-internal",
"@kbn/core-fatal-errors-browser": "link:packages/core/fatal-errors/core-fatal-errors-browser", "@kbn/core-fatal-errors-browser": "link:packages/core/fatal-errors/core-fatal-errors-browser",
"@kbn/core-fatal-errors-browser-internal": "link:packages/core/fatal-errors/core-fatal-errors-browser-internal", "@kbn/core-fatal-errors-browser-internal": "link:packages/core/fatal-errors/core-fatal-errors-browser-internal",
"@kbn/core-history-block-plugin": "link:test/plugin_functional/plugins/core_history_block",
"@kbn/core-http-browser": "link:packages/core/http/core-http-browser", "@kbn/core-http-browser": "link:packages/core/http/core-http-browser",
"@kbn/core-http-browser-internal": "link:packages/core/http/core-http-browser-internal", "@kbn/core-http-browser-internal": "link:packages/core/http/core-http-browser-internal",
"@kbn/core-http-common": "link:packages/core/http/core-http-common", "@kbn/core-http-common": "link:packages/core/http/core-http-common",
"@kbn/core-http-context-server-internal": "link:packages/core/http/core-http-context-server-internal", "@kbn/core-http-context-server-internal": "link:packages/core/http/core-http-context-server-internal",
"@kbn/core-http-plugin": "link:test/plugin_functional/plugins/core_http",
"@kbn/core-http-request-handler-context-server": "link:packages/core/http/core-http-request-handler-context-server", "@kbn/core-http-request-handler-context-server": "link:packages/core/http/core-http-request-handler-context-server",
"@kbn/core-http-request-handler-context-server-internal": "link:packages/core/http/core-http-request-handler-context-server-internal", "@kbn/core-http-request-handler-context-server-internal": "link:packages/core/http/core-http-request-handler-context-server-internal",
"@kbn/core-http-resources-server": "link:packages/core/http/core-http-resources-server", "@kbn/core-http-resources-server": "link:packages/core/http/core-http-resources-server",
@ -242,6 +283,17 @@
"@kbn/core-notifications-browser-internal": "link:packages/core/notifications/core-notifications-browser-internal", "@kbn/core-notifications-browser-internal": "link:packages/core/notifications/core-notifications-browser-internal",
"@kbn/core-overlays-browser": "link:packages/core/overlays/core-overlays-browser", "@kbn/core-overlays-browser": "link:packages/core/overlays/core-overlays-browser",
"@kbn/core-overlays-browser-internal": "link:packages/core/overlays/core-overlays-browser-internal", "@kbn/core-overlays-browser-internal": "link:packages/core/overlays/core-overlays-browser-internal",
"@kbn/core-plugin-a-plugin": "link:test/plugin_functional/plugins/core_plugin_a",
"@kbn/core-plugin-appleave-plugin": "link:test/plugin_functional/plugins/core_plugin_appleave",
"@kbn/core-plugin-b-plugin": "link:test/plugin_functional/plugins/core_plugin_b",
"@kbn/core-plugin-chromeless-plugin": "link:test/plugin_functional/plugins/core_plugin_chromeless",
"@kbn/core-plugin-deep-links-plugin": "link:test/plugin_functional/plugins/core_plugin_deep_links",
"@kbn/core-plugin-deprecations-plugin": "link:test/plugin_functional/plugins/core_plugin_deprecations",
"@kbn/core-plugin-execution-context-plugin": "link:test/plugin_functional/plugins/core_plugin_execution_context",
"@kbn/core-plugin-helpmenu-plugin": "link:test/plugin_functional/plugins/core_plugin_helpmenu",
"@kbn/core-plugin-initializer-context-plugin": "link:test/node_roles_functional/plugins/core_plugin_initializer_context",
"@kbn/core-plugin-route-timeouts-plugin": "link:test/plugin_functional/plugins/core_plugin_route_timeouts",
"@kbn/core-plugin-static-assets-plugin": "link:test/plugin_functional/plugins/core_plugin_static_assets",
"@kbn/core-plugins-base-server-internal": "link:packages/core/plugins/core-plugins-base-server-internal", "@kbn/core-plugins-base-server-internal": "link:packages/core/plugins/core-plugins-base-server-internal",
"@kbn/core-plugins-browser": "link:packages/core/plugins/core-plugins-browser", "@kbn/core-plugins-browser": "link:packages/core/plugins/core-plugins-browser",
"@kbn/core-plugins-browser-internal": "link:packages/core/plugins/core-plugins-browser-internal", "@kbn/core-plugins-browser-internal": "link:packages/core/plugins/core-plugins-browser-internal",
@ -249,6 +301,7 @@
"@kbn/core-plugins-server-internal": "link:packages/core/plugins/core-plugins-server-internal", "@kbn/core-plugins-server-internal": "link:packages/core/plugins/core-plugins-server-internal",
"@kbn/core-preboot-server": "link:packages/core/preboot/core-preboot-server", "@kbn/core-preboot-server": "link:packages/core/preboot/core-preboot-server",
"@kbn/core-preboot-server-internal": "link:packages/core/preboot/core-preboot-server-internal", "@kbn/core-preboot-server-internal": "link:packages/core/preboot/core-preboot-server-internal",
"@kbn/core-provider-plugin": "link:test/plugin_functional/plugins/core_provider_plugin",
"@kbn/core-rendering-browser-internal": "link:packages/core/rendering/core-rendering-browser-internal", "@kbn/core-rendering-browser-internal": "link:packages/core/rendering/core-rendering-browser-internal",
"@kbn/core-rendering-server-internal": "link:packages/core/rendering/core-rendering-server-internal", "@kbn/core-rendering-server-internal": "link:packages/core/rendering/core-rendering-server-internal",
"@kbn/core-root-browser-internal": "link:packages/core/root/core-root-browser-internal", "@kbn/core-root-browser-internal": "link:packages/core/root/core-root-browser-internal",
@ -283,51 +336,207 @@
"@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal",
"@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server",
"@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal", "@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal",
"@kbn/cross-cluster-replication-plugin": "link:x-pack/plugins/cross_cluster_replication",
"@kbn/crypto": "link:packages/kbn-crypto", "@kbn/crypto": "link:packages/kbn-crypto",
"@kbn/crypto-browser": "link:packages/kbn-crypto-browser", "@kbn/crypto-browser": "link:packages/kbn-crypto-browser",
"@kbn/custom-branding-plugin": "link:x-pack/plugins/custom_branding",
"@kbn/custom-integrations-plugin": "link:src/plugins/custom_integrations",
"@kbn/dashboard-embeddable-examples-plugin": "link:examples/dashboard_embeddable_examples",
"@kbn/dashboard-enhanced-plugin": "link:x-pack/plugins/dashboard_enhanced",
"@kbn/dashboard-plugin": "link:src/plugins/dashboard",
"@kbn/data-plugin": "link:src/plugins/data",
"@kbn/data-search-plugin": "link:test/plugin_functional/plugins/data_search",
"@kbn/data-view-editor-plugin": "link:src/plugins/data_view_editor",
"@kbn/data-view-field-editor-example-plugin": "link:examples/data_view_field_editor_example",
"@kbn/data-view-field-editor-plugin": "link:src/plugins/data_view_field_editor",
"@kbn/data-view-management-plugin": "link:src/plugins/data_view_management",
"@kbn/data-views-plugin": "link:src/plugins/data_views",
"@kbn/data-visualizer-plugin": "link:x-pack/plugins/data_visualizer",
"@kbn/datemath": "link:packages/kbn-datemath", "@kbn/datemath": "link:packages/kbn-datemath",
"@kbn/dev-tools-plugin": "link:src/plugins/dev_tools",
"@kbn/developer-examples-plugin": "link:examples/developer_examples",
"@kbn/discover-enhanced-plugin": "link:x-pack/plugins/discover_enhanced",
"@kbn/discover-plugin": "link:src/plugins/discover",
"@kbn/doc-links": "link:packages/kbn-doc-links", "@kbn/doc-links": "link:packages/kbn-doc-links",
"@kbn/ebt-tools": "link:packages/kbn-ebt-tools", "@kbn/ebt-tools": "link:packages/kbn-ebt-tools",
"@kbn/ecs": "link:packages/kbn-ecs", "@kbn/ecs": "link:packages/kbn-ecs",
"@kbn/ecs-data-quality-dashboard": "link:x-pack/packages/kbn-ecs-data-quality-dashboard", "@kbn/ecs-data-quality-dashboard": "link:x-pack/packages/kbn-ecs-data-quality-dashboard",
"@kbn/ecs-data-quality-dashboard-plugin": "link:x-pack/plugins/ecs_data_quality_dashboard",
"@kbn/elasticsearch-client-plugin": "link:test/plugin_functional/plugins/elasticsearch_client_plugin",
"@kbn/elasticsearch-client-xpack-plugin": "link:x-pack/test/plugin_api_integration/plugins/elasticsearch_client",
"@kbn/embeddable-enhanced-plugin": "link:x-pack/plugins/embeddable_enhanced",
"@kbn/embeddable-examples-plugin": "link:examples/embeddable_examples",
"@kbn/embeddable-explorer-plugin": "link:examples/embeddable_explorer",
"@kbn/embeddable-plugin": "link:src/plugins/embeddable",
"@kbn/embedded-lens-example-plugin": "link:x-pack/examples/embedded_lens_example",
"@kbn/encrypted-saved-objects-plugin": "link:x-pack/plugins/encrypted_saved_objects",
"@kbn/enterprise-search-plugin": "link:x-pack/plugins/enterprise_search",
"@kbn/es-errors": "link:packages/kbn-es-errors", "@kbn/es-errors": "link:packages/kbn-es-errors",
"@kbn/es-query": "link:packages/kbn-es-query", "@kbn/es-query": "link:packages/kbn-es-query",
"@kbn/es-types": "link:packages/kbn-es-types", "@kbn/es-types": "link:packages/kbn-es-types",
"@kbn/es-ui-shared-plugin": "link:src/plugins/es_ui_shared",
"@kbn/eso-plugin": "link:x-pack/test/encrypted_saved_objects_api_integration/plugins/api_consumer_plugin",
"@kbn/event-annotation-plugin": "link:src/plugins/event_annotation",
"@kbn/event-log-fixture-plugin": "link:x-pack/test/plugin_api_integration/plugins/event_log",
"@kbn/event-log-plugin": "link:x-pack/plugins/event_log",
"@kbn/exploratory-view-example-plugin": "link:x-pack/examples/exploratory_view_example",
"@kbn/expression-error-plugin": "link:src/plugins/expression_error",
"@kbn/expression-gauge-plugin": "link:src/plugins/chart_expressions/expression_gauge",
"@kbn/expression-heatmap-plugin": "link:src/plugins/chart_expressions/expression_heatmap",
"@kbn/expression-image-plugin": "link:src/plugins/expression_image",
"@kbn/expression-legacy-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_legacy_metric",
"@kbn/expression-metric-plugin": "link:src/plugins/expression_metric",
"@kbn/expression-metric-vis-plugin": "link:src/plugins/chart_expressions/expression_metric",
"@kbn/expression-partition-vis-plugin": "link:src/plugins/chart_expressions/expression_partition_vis",
"@kbn/expression-repeat-image-plugin": "link:src/plugins/expression_repeat_image",
"@kbn/expression-reveal-image-plugin": "link:src/plugins/expression_reveal_image",
"@kbn/expression-shape-plugin": "link:src/plugins/expression_shape",
"@kbn/expression-tagcloud-plugin": "link:src/plugins/chart_expressions/expression_tagcloud",
"@kbn/expression-xy-plugin": "link:src/plugins/chart_expressions/expression_xy",
"@kbn/expressions-explorer-plugin": "link:examples/expressions_explorer",
"@kbn/expressions-plugin": "link:src/plugins/expressions",
"@kbn/feature-usage-test-plugin": "link:x-pack/test/plugin_api_integration/plugins/feature_usage_test",
"@kbn/features-plugin": "link:x-pack/plugins/features",
"@kbn/fec-alerts-test-plugin": "link:x-pack/test/functional_execution_context/plugins/alerts",
"@kbn/field-formats-example-plugin": "link:examples/field_formats_example",
"@kbn/field-formats-plugin": "link:src/plugins/field_formats",
"@kbn/field-types": "link:packages/kbn-field-types", "@kbn/field-types": "link:packages/kbn-field-types",
"@kbn/file-upload-plugin": "link:x-pack/plugins/file_upload",
"@kbn/files-example-plugin": "link:examples/files_example",
"@kbn/files-management-plugin": "link:src/plugins/files_management",
"@kbn/files-plugin": "link:src/plugins/files",
"@kbn/fleet-plugin": "link:x-pack/plugins/fleet",
"@kbn/flot-charts": "link:packages/kbn-flot-charts", "@kbn/flot-charts": "link:packages/kbn-flot-charts",
"@kbn/foo-plugin": "link:x-pack/test/ui_capabilities/common/plugins/foo_plugin",
"@kbn/ftr-apis-plugin": "link:src/plugins/ftr_apis",
"@kbn/functional-with-es-ssl-cases-test-plugin": "link:x-pack/test/functional_with_es_ssl/plugins/cases",
"@kbn/global-search-bar-plugin": "link:x-pack/plugins/global_search_bar",
"@kbn/global-search-plugin": "link:x-pack/plugins/global_search",
"@kbn/global-search-providers-plugin": "link:x-pack/plugins/global_search_providers",
"@kbn/global-search-test-plugin": "link:x-pack/test/plugin_functional/plugins/global_search_test",
"@kbn/graph-plugin": "link:x-pack/plugins/graph",
"@kbn/grokdebugger-plugin": "link:x-pack/plugins/grokdebugger",
"@kbn/guided-onboarding": "link:packages/kbn-guided-onboarding", "@kbn/guided-onboarding": "link:packages/kbn-guided-onboarding",
"@kbn/guided-onboarding-example-plugin": "link:examples/guided_onboarding_example",
"@kbn/guided-onboarding-plugin": "link:src/plugins/guided_onboarding",
"@kbn/handlebars": "link:packages/kbn-handlebars", "@kbn/handlebars": "link:packages/kbn-handlebars",
"@kbn/hapi-mocks": "link:packages/kbn-hapi-mocks", "@kbn/hapi-mocks": "link:packages/kbn-hapi-mocks",
"@kbn/health-gateway-server": "link:packages/kbn-health-gateway-server", "@kbn/health-gateway-server": "link:packages/kbn-health-gateway-server",
"@kbn/hello-world-plugin": "link:examples/hello_world",
"@kbn/home-plugin": "link:src/plugins/home",
"@kbn/home-sample-data-card": "link:packages/home/sample_data_card", "@kbn/home-sample-data-card": "link:packages/home/sample_data_card",
"@kbn/home-sample-data-tab": "link:packages/home/sample_data_tab", "@kbn/home-sample-data-tab": "link:packages/home/sample_data_tab",
"@kbn/home-sample-data-types": "link:packages/home/sample_data_types", "@kbn/home-sample-data-types": "link:packages/home/sample_data_types",
"@kbn/i18n": "link:packages/kbn-i18n", "@kbn/i18n": "link:packages/kbn-i18n",
"@kbn/i18n-react": "link:packages/kbn-i18n-react", "@kbn/i18n-react": "link:packages/kbn-i18n-react",
"@kbn/iframe-embedded-plugin": "link:x-pack/test/functional_embedded/plugins/iframe_embedded",
"@kbn/image-embeddable-plugin": "link:src/plugins/image_embeddable",
"@kbn/index-lifecycle-management-plugin": "link:x-pack/plugins/index_lifecycle_management",
"@kbn/index-management-plugin": "link:x-pack/plugins/index_management",
"@kbn/index-patterns-test-plugin": "link:test/plugin_functional/plugins/index_patterns",
"@kbn/infra-plugin": "link:x-pack/plugins/infra",
"@kbn/ingest-pipelines-plugin": "link:x-pack/plugins/ingest_pipelines",
"@kbn/input-control-vis-plugin": "link:src/plugins/input_control_vis",
"@kbn/inspector-plugin": "link:src/plugins/inspector",
"@kbn/interactive-setup-plugin": "link:src/plugins/interactive_setup",
"@kbn/interactive-setup-test-endpoints-plugin": "link:test/interactive_setup_api_integration/plugins/test_endpoints",
"@kbn/interpreter": "link:packages/kbn-interpreter", "@kbn/interpreter": "link:packages/kbn-interpreter",
"@kbn/io-ts-utils": "link:packages/kbn-io-ts-utils", "@kbn/io-ts-utils": "link:packages/kbn-io-ts-utils",
"@kbn/kbn-health-gateway-status-plugin": "link:test/health_gateway/plugins/status",
"@kbn/kbn-sample-panel-action-plugin": "link:test/plugin_functional/plugins/kbn_sample_panel_action",
"@kbn/kbn-top-nav-plugin": "link:test/plugin_functional/plugins/kbn_top_nav",
"@kbn/kbn-tp-custom-visualizations-plugin": "link:test/plugin_functional/plugins/kbn_tp_custom_visualizations",
"@kbn/kbn-tp-run-pipeline-plugin": "link:test/interpreter_functional/plugins/kbn_tp_run_pipeline",
"@kbn/kibana-cors-test-plugin": "link:x-pack/test/functional_cors/plugins/kibana_cors_test",
"@kbn/kibana-overview-plugin": "link:src/plugins/kibana_overview",
"@kbn/kibana-react-plugin": "link:src/plugins/kibana_react",
"@kbn/kibana-usage-collection-plugin": "link:src/plugins/kibana_usage_collection",
"@kbn/kibana-utils-plugin": "link:src/plugins/kibana_utils",
"@kbn/kubernetes-security-plugin": "link:x-pack/plugins/kubernetes_security",
"@kbn/language-documentation-popover": "link:packages/kbn-language-documentation-popover", "@kbn/language-documentation-popover": "link:packages/kbn-language-documentation-popover",
"@kbn/lens-plugin": "link:x-pack/plugins/lens",
"@kbn/license-api-guard-plugin": "link:x-pack/plugins/license_api_guard",
"@kbn/license-management-plugin": "link:x-pack/plugins/license_management",
"@kbn/licensing-plugin": "link:x-pack/plugins/licensing",
"@kbn/lists-plugin": "link:x-pack/plugins/lists",
"@kbn/locator-examples-plugin": "link:examples/locator_examples",
"@kbn/locator-explorer-plugin": "link:examples/locator_explorer",
"@kbn/logging": "link:packages/kbn-logging", "@kbn/logging": "link:packages/kbn-logging",
"@kbn/logging-mocks": "link:packages/kbn-logging-mocks", "@kbn/logging-mocks": "link:packages/kbn-logging-mocks",
"@kbn/logstash-plugin": "link:x-pack/plugins/logstash",
"@kbn/management-plugin": "link:src/plugins/management",
"@kbn/management-test-plugin": "link:test/plugin_functional/plugins/management_test_plugin",
"@kbn/mapbox-gl": "link:packages/kbn-mapbox-gl", "@kbn/mapbox-gl": "link:packages/kbn-mapbox-gl",
"@kbn/maps-custom-raster-source-plugin": "link:x-pack/examples/third_party_maps_source_example",
"@kbn/maps-ems-plugin": "link:src/plugins/maps_ems",
"@kbn/maps-plugin": "link:x-pack/plugins/maps",
"@kbn/ml-agg-utils": "link:x-pack/packages/ml/agg_utils", "@kbn/ml-agg-utils": "link:x-pack/packages/ml/agg_utils",
"@kbn/ml-date-picker": "link:x-pack/packages/ml/date_picker", "@kbn/ml-date-picker": "link:x-pack/packages/ml/date_picker",
"@kbn/ml-is-defined": "link:x-pack/packages/ml/is_defined", "@kbn/ml-is-defined": "link:x-pack/packages/ml/is_defined",
"@kbn/ml-is-populated-object": "link:x-pack/packages/ml/is_populated_object", "@kbn/ml-is-populated-object": "link:x-pack/packages/ml/is_populated_object",
"@kbn/ml-local-storage": "link:x-pack/packages/ml/local_storage", "@kbn/ml-local-storage": "link:x-pack/packages/ml/local_storage",
"@kbn/ml-nested-property": "link:x-pack/packages/ml/nested_property", "@kbn/ml-nested-property": "link:x-pack/packages/ml/nested_property",
"@kbn/ml-plugin": "link:x-pack/plugins/ml",
"@kbn/ml-query-utils": "link:x-pack/packages/ml/query_utils", "@kbn/ml-query-utils": "link:x-pack/packages/ml/query_utils",
"@kbn/ml-string-hash": "link:x-pack/packages/ml/string_hash", "@kbn/ml-string-hash": "link:x-pack/packages/ml/string_hash",
"@kbn/ml-url-state": "link:x-pack/packages/ml/url_state", "@kbn/ml-url-state": "link:x-pack/packages/ml/url_state",
"@kbn/monaco": "link:packages/kbn-monaco", "@kbn/monaco": "link:packages/kbn-monaco",
"@kbn/monitoring-collection-plugin": "link:x-pack/plugins/monitoring_collection",
"@kbn/monitoring-plugin": "link:x-pack/plugins/monitoring",
"@kbn/navigation-plugin": "link:src/plugins/navigation",
"@kbn/newsfeed-plugin": "link:src/plugins/newsfeed",
"@kbn/newsfeed-test-plugin": "link:test/common/plugins/newsfeed",
"@kbn/notifications-plugin": "link:x-pack/plugins/notifications",
"@kbn/observability-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/observability",
"@kbn/observability-plugin": "link:x-pack/plugins/observability",
"@kbn/oidc-provider-plugin": "link:x-pack/test/security_api_integration/plugins/oidc_provider",
"@kbn/open-telemetry-instrumented-plugin": "link:test/common/plugins/otel_metrics",
"@kbn/osquery-io-ts-types": "link:packages/kbn-osquery-io-ts-types", "@kbn/osquery-io-ts-types": "link:packages/kbn-osquery-io-ts-types",
"@kbn/plugin-discovery": "link:packages/kbn-plugin-discovery", "@kbn/osquery-plugin": "link:x-pack/plugins/osquery",
"@kbn/paertial-results-example-plugin": "link:examples/partial_results_example",
"@kbn/painless-lab-plugin": "link:x-pack/plugins/painless_lab",
"@kbn/preboot-example-plugin": "link:examples/preboot_example",
"@kbn/presentation-util-plugin": "link:src/plugins/presentation_util",
"@kbn/profiling-plugin": "link:x-pack/plugins/profiling",
"@kbn/react-field": "link:packages/kbn-react-field", "@kbn/react-field": "link:packages/kbn-react-field",
"@kbn/remote-clusters-plugin": "link:x-pack/plugins/remote_clusters",
"@kbn/rendering-plugin": "link:test/plugin_functional/plugins/rendering_plugin",
"@kbn/repo-info": "link:packages/kbn-repo-info", "@kbn/repo-info": "link:packages/kbn-repo-info",
"@kbn/repo-packages": "link:packages/kbn-repo-packages", "@kbn/repo-packages": "link:packages/kbn-repo-packages",
"@kbn/reporting-example-plugin": "link:x-pack/examples/reporting_example",
"@kbn/reporting-plugin": "link:x-pack/plugins/reporting",
"@kbn/resolver-test-plugin": "link:x-pack/test/plugin_functional/plugins/resolver_test",
"@kbn/response-stream-plugin": "link:examples/response_stream",
"@kbn/rison": "link:packages/kbn-rison", "@kbn/rison": "link:packages/kbn-rison",
"@kbn/rollup-plugin": "link:x-pack/plugins/rollup",
"@kbn/routing-example-plugin": "link:examples/routing_example",
"@kbn/rule-data-utils": "link:packages/kbn-rule-data-utils", "@kbn/rule-data-utils": "link:packages/kbn-rule-data-utils",
"@kbn/rule-registry-plugin": "link:x-pack/plugins/rule_registry",
"@kbn/runtime-fields-plugin": "link:x-pack/plugins/runtime_fields",
"@kbn/safer-lodash-set": "link:packages/kbn-safer-lodash-set", "@kbn/safer-lodash-set": "link:packages/kbn-safer-lodash-set",
"@kbn/saml-provider-plugin": "link:x-pack/test/security_api_integration/plugins/saml_provider",
"@kbn/sample-task-plugin": "link:x-pack/test/plugin_api_integration/plugins/sample_task_plugin",
"@kbn/saved-object-export-transforms-plugin": "link:test/plugin_functional/plugins/saved_object_export_transforms",
"@kbn/saved-object-import-warnings-plugin": "link:test/plugin_functional/plugins/saved_object_import_warnings",
"@kbn/saved-object-test-plugin": "link:x-pack/test/saved_object_api_integration/common/plugins/saved_object_test_plugin",
"@kbn/saved-objects-finder-plugin": "link:src/plugins/saved_objects_finder",
"@kbn/saved-objects-hidden-from-http-apis-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type",
"@kbn/saved-objects-hidden-type-plugin": "link:test/plugin_functional/plugins/saved_objects_hidden_type",
"@kbn/saved-objects-management-plugin": "link:src/plugins/saved_objects_management",
"@kbn/saved-objects-plugin": "link:src/plugins/saved_objects",
"@kbn/saved-objects-tagging-oss-plugin": "link:src/plugins/saved_objects_tagging_oss",
"@kbn/saved-objects-tagging-plugin": "link:x-pack/plugins/saved_objects_tagging",
"@kbn/saved-search-plugin": "link:src/plugins/saved_search",
"@kbn/screenshot-mode-example-plugin": "link:examples/screenshot_mode_example",
"@kbn/screenshot-mode-plugin": "link:src/plugins/screenshot_mode",
"@kbn/screenshotting-example-plugin": "link:x-pack/examples/screenshotting_example",
"@kbn/screenshotting-plugin": "link:x-pack/plugins/screenshotting",
"@kbn/search-examples-plugin": "link:examples/search_examples",
"@kbn/searchprofiler-plugin": "link:x-pack/plugins/searchprofiler",
"@kbn/security-plugin": "link:x-pack/plugins/security",
"@kbn/security-solution-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/security_solution",
"@kbn/security-solution-plugin": "link:x-pack/plugins/security_solution",
"@kbn/security-test-endpoints-plugin": "link:x-pack/test/security_functional/plugins/test_endpoints",
"@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete", "@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete",
"@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs", "@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs",
"@kbn/securitysolution-es-utils": "link:packages/kbn-securitysolution-es-utils", "@kbn/securitysolution-es-utils": "link:packages/kbn-securitysolution-es-utils",
@ -346,7 +555,11 @@
"@kbn/securitysolution-utils": "link:packages/kbn-securitysolution-utils", "@kbn/securitysolution-utils": "link:packages/kbn-securitysolution-utils",
"@kbn/server-http-tools": "link:packages/kbn-server-http-tools", "@kbn/server-http-tools": "link:packages/kbn-server-http-tools",
"@kbn/server-route-repository": "link:packages/kbn-server-route-repository", "@kbn/server-route-repository": "link:packages/kbn-server-route-repository",
"@kbn/session-notifications-plugin": "link:test/plugin_functional/plugins/session_notifications",
"@kbn/session-view-plugin": "link:x-pack/plugins/session_view",
"@kbn/set-map": "link:packages/kbn-set-map", "@kbn/set-map": "link:packages/kbn-set-map",
"@kbn/share-examples-plugin": "link:examples/share_examples",
"@kbn/share-plugin": "link:src/plugins/share",
"@kbn/shared-svg": "link:packages/kbn-shared-svg", "@kbn/shared-svg": "link:packages/kbn-shared-svg",
"@kbn/shared-ux-avatar-solution": "link:packages/shared-ux/avatar/solution", "@kbn/shared-ux-avatar-solution": "link:packages/shared-ux/avatar/solution",
"@kbn/shared-ux-avatar-user-profile-components": "link:packages/shared-ux/avatar/user_profile/impl", "@kbn/shared-ux-avatar-user-profile-components": "link:packages/shared-ux/avatar/user_profile/impl",
@ -398,19 +611,79 @@
"@kbn/shared-ux-storybook-mock": "link:packages/shared-ux/storybook/mock", "@kbn/shared-ux-storybook-mock": "link:packages/shared-ux/storybook/mock",
"@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility", "@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility",
"@kbn/slo-schema": "link:packages/kbn-slo-schema", "@kbn/slo-schema": "link:packages/kbn-slo-schema",
"@kbn/snapshot-restore-plugin": "link:x-pack/plugins/snapshot_restore",
"@kbn/spaces-plugin": "link:x-pack/plugins/spaces",
"@kbn/spaces-test-plugin": "link:x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin",
"@kbn/stack-alerts-plugin": "link:x-pack/plugins/stack_alerts",
"@kbn/stack-connectors-plugin": "link:x-pack/plugins/stack_connectors",
"@kbn/stack-management-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/stack_management_usage_test",
"@kbn/state-containers-examples-plugin": "link:examples/state_containers_examples",
"@kbn/status-plugin-a-plugin": "link:test/server_integration/plugins/status_plugin_a",
"@kbn/status-plugin-b-plugin": "link:test/server_integration/plugins/status_plugin_b",
"@kbn/std": "link:packages/kbn-std", "@kbn/std": "link:packages/kbn-std",
"@kbn/synthetics-plugin": "link:x-pack/plugins/synthetics",
"@kbn/task-manager-fixture-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture",
"@kbn/task-manager-performance-plugin": "link:x-pack/test/plugin_api_perf/plugins/task_manager_performance",
"@kbn/task-manager-plugin": "link:x-pack/plugins/task_manager",
"@kbn/telemetry-collection-manager-plugin": "link:src/plugins/telemetry_collection_manager",
"@kbn/telemetry-collection-xpack-plugin": "link:x-pack/plugins/telemetry_collection_xpack",
"@kbn/telemetry-management-section-plugin": "link:src/plugins/telemetry_management_section",
"@kbn/telemetry-plugin": "link:src/plugins/telemetry",
"@kbn/telemetry-test-plugin": "link:test/plugin_functional/plugins/telemetry",
"@kbn/test-feature-usage-plugin": "link:x-pack/test/licensing_plugin/plugins/test_feature_usage",
"@kbn/testing-embedded-lens-plugin": "link:x-pack/examples/testing_embedded_lens",
"@kbn/third-party-lens-navigation-prompt-plugin": "link:x-pack/examples/third_party_lens_navigation_prompt",
"@kbn/third-party-vis-lens-example-plugin": "link:x-pack/examples/third_party_vis_lens_example",
"@kbn/threat-intelligence-plugin": "link:x-pack/plugins/threat_intelligence",
"@kbn/timelines-plugin": "link:x-pack/plugins/timelines",
"@kbn/timelion-grammar": "link:packages/kbn-timelion-grammar", "@kbn/timelion-grammar": "link:packages/kbn-timelion-grammar",
"@kbn/tinymath": "link:packages/kbn-tinymath", "@kbn/tinymath": "link:packages/kbn-tinymath",
"@kbn/transform-plugin": "link:x-pack/plugins/transform",
"@kbn/translations-plugin": "link:x-pack/plugins/translations",
"@kbn/triggers-actions-ui-example-plugin": "link:x-pack/examples/triggers_actions_ui_example",
"@kbn/triggers-actions-ui-plugin": "link:x-pack/plugins/triggers_actions_ui",
"@kbn/typed-react-router-config": "link:packages/kbn-typed-react-router-config", "@kbn/typed-react-router-config": "link:packages/kbn-typed-react-router-config",
"@kbn/ui-actions-browser": "link:packages/kbn-ui-actions-browser", "@kbn/ui-actions-browser": "link:packages/kbn-ui-actions-browser",
"@kbn/ui-actions-enhanced-examples-plugin": "link:x-pack/examples/ui_actions_enhanced_examples",
"@kbn/ui-actions-enhanced-plugin": "link:src/plugins/ui_actions_enhanced",
"@kbn/ui-actions-examples-plugin": "link:examples/ui_action_examples",
"@kbn/ui-actions-explorer-plugin": "link:examples/ui_actions_explorer",
"@kbn/ui-actions-plugin": "link:src/plugins/ui_actions",
"@kbn/ui-framework": "link:packages/kbn-ui-framework", "@kbn/ui-framework": "link:packages/kbn-ui-framework",
"@kbn/ui-settings-plugin": "link:test/plugin_functional/plugins/ui_settings_plugin",
"@kbn/ui-shared-deps-npm": "link:packages/kbn-ui-shared-deps-npm", "@kbn/ui-shared-deps-npm": "link:packages/kbn-ui-shared-deps-npm",
"@kbn/ui-shared-deps-src": "link:packages/kbn-ui-shared-deps-src", "@kbn/ui-shared-deps-src": "link:packages/kbn-ui-shared-deps-src",
"@kbn/ui-theme": "link:packages/kbn-ui-theme", "@kbn/ui-theme": "link:packages/kbn-ui-theme",
"@kbn/unified-field-list-plugin": "link:src/plugins/unified_field_list",
"@kbn/unified-histogram-plugin": "link:src/plugins/unified_histogram",
"@kbn/unified-search-plugin": "link:src/plugins/unified_search",
"@kbn/upgrade-assistant-plugin": "link:x-pack/plugins/upgrade_assistant",
"@kbn/url-drilldown-plugin": "link:x-pack/plugins/drilldowns/url_drilldown",
"@kbn/url-forwarding-plugin": "link:src/plugins/url_forwarding",
"@kbn/usage-collection-plugin": "link:src/plugins/usage_collection",
"@kbn/usage-collection-test-plugin": "link:test/plugin_functional/plugins/usage_collection",
"@kbn/user-profile-components": "link:packages/kbn-user-profile-components", "@kbn/user-profile-components": "link:packages/kbn-user-profile-components",
"@kbn/user-profile-examples-plugin": "link:examples/user_profile_examples",
"@kbn/user-profiles-consumer-plugin": "link:x-pack/test/security_api_integration/plugins/user_profiles_consumer",
"@kbn/utility-types": "link:packages/kbn-utility-types", "@kbn/utility-types": "link:packages/kbn-utility-types",
"@kbn/utility-types-jest": "link:packages/kbn-utility-types-jest", "@kbn/utility-types-jest": "link:packages/kbn-utility-types-jest",
"@kbn/utils": "link:packages/kbn-utils", "@kbn/utils": "link:packages/kbn-utils",
"@kbn/ux-plugin": "link:x-pack/plugins/ux",
"@kbn/vis-default-editor-plugin": "link:src/plugins/vis_default_editor",
"@kbn/vis-type-gauge-plugin": "link:src/plugins/vis_types/gauge",
"@kbn/vis-type-heatmap-plugin": "link:src/plugins/vis_types/heatmap",
"@kbn/vis-type-markdown-plugin": "link:src/plugins/vis_type_markdown",
"@kbn/vis-type-metric-plugin": "link:src/plugins/vis_types/metric",
"@kbn/vis-type-pie-plugin": "link:src/plugins/vis_types/pie",
"@kbn/vis-type-table-plugin": "link:src/plugins/vis_types/table",
"@kbn/vis-type-tagcloud-plugin": "link:src/plugins/vis_types/tagcloud",
"@kbn/vis-type-timelion-plugin": "link:src/plugins/vis_types/timelion",
"@kbn/vis-type-timeseries-plugin": "link:src/plugins/vis_types/timeseries",
"@kbn/vis-type-vega-plugin": "link:src/plugins/vis_types/vega",
"@kbn/vis-type-vislib-plugin": "link:src/plugins/vis_types/vislib",
"@kbn/vis-type-xy-plugin": "link:src/plugins/vis_types/xy",
"@kbn/visualizations-plugin": "link:src/plugins/visualizations",
"@kbn/watcher-plugin": "link:x-pack/plugins/watcher",
"@loaders.gl/core": "^2.3.1", "@loaders.gl/core": "^2.3.1",
"@loaders.gl/json": "^2.3.1", "@loaders.gl/json": "^2.3.1",
"@loaders.gl/shapefile": "^2.3.1", "@loaders.gl/shapefile": "^2.3.1",
@ -713,7 +986,6 @@
"@kbn/apm-synthtrace": "link:packages/kbn-apm-synthtrace", "@kbn/apm-synthtrace": "link:packages/kbn-apm-synthtrace",
"@kbn/apm-synthtrace-client": "link:packages/kbn-apm-synthtrace-client", "@kbn/apm-synthtrace-client": "link:packages/kbn-apm-synthtrace-client",
"@kbn/axe-config": "link:packages/kbn-axe-config", "@kbn/axe-config": "link:packages/kbn-axe-config",
"@kbn/babel-plugin-package-imports": "link:packages/kbn-babel-plugin-package-imports",
"@kbn/babel-preset": "link:packages/kbn-babel-preset", "@kbn/babel-preset": "link:packages/kbn-babel-preset",
"@kbn/babel-register": "link:packages/kbn-babel-register", "@kbn/babel-register": "link:packages/kbn-babel-register",
"@kbn/babel-transform": "link:packages/kbn-babel-transform", "@kbn/babel-transform": "link:packages/kbn-babel-transform",
@ -819,6 +1091,7 @@
"@kbn/repo-path": "link:packages/kbn-repo-path", "@kbn/repo-path": "link:packages/kbn-repo-path",
"@kbn/repo-source-classifier": "link:packages/kbn-repo-source-classifier", "@kbn/repo-source-classifier": "link:packages/kbn-repo-source-classifier",
"@kbn/repo-source-classifier-cli": "link:packages/kbn-repo-source-classifier-cli", "@kbn/repo-source-classifier-cli": "link:packages/kbn-repo-source-classifier-cli",
"@kbn/security-api-integration-helpers": "link:x-pack/test/security_api_integration/packages/helpers",
"@kbn/some-dev-log": "link:packages/kbn-some-dev-log", "@kbn/some-dev-log": "link:packages/kbn-some-dev-log",
"@kbn/sort-package-json": "link:packages/kbn-sort-package-json", "@kbn/sort-package-json": "link:packages/kbn-sort-package-json",
"@kbn/spec-to-console": "link:packages/kbn-spec-to-console", "@kbn/spec-to-console": "link:packages/kbn-spec-to-console",

View file

@ -77,7 +77,7 @@ describe('registerBundleRoutes', () => {
expect(registerRouteForBundleMock).toHaveBeenCalledWith(router, { expect(registerRouteForBundleMock).toHaveBeenCalledWith(router, {
fileHashCache: expect.any(FileHashCache), fileHashCache: expect.any(FileHashCache),
isDist: true, isDist: true,
bundlesPath: expect.stringMatching(/src\/core\/target\/public/), bundlesPath: expect.stringMatching(/\/@kbn\/core\/target\/public$/),
publicPath: '/server-base-path/42/bundles/core/', publicPath: '/server-base-path/42/bundles/core/',
routePath: '/42/bundles/core/', routePath: '/42/bundles/core/',
}); });

View file

@ -6,7 +6,6 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
import { join } from 'path';
import type { PackageInfo } from '@kbn/config'; import type { PackageInfo } from '@kbn/config';
import { fromRoot } from '@kbn/repo-info'; import { fromRoot } from '@kbn/repo-info';
import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm';
@ -61,7 +60,9 @@ export function registerBundleRoutes({
registerRouteForBundle(router, { registerRouteForBundle(router, {
publicPath: `${serverBasePath}/${buildNum}/bundles/core/`, publicPath: `${serverBasePath}/${buildNum}/bundles/core/`,
routePath: `/${buildNum}/bundles/core/`, routePath: `/${buildNum}/bundles/core/`,
bundlesPath: fromRoot(join('src', 'core', 'target', 'public')), bundlesPath: isDist
? fromRoot('node_modules/@kbn/core/target/public')
: fromRoot('src/core/target/public'),
fileHashCache, fileHashCache,
isDist, isDist,
}); });

View file

@ -17,8 +17,15 @@ jest.mock('./get_translation_paths', () => ({
jest.mock('@kbn/repo-info', () => ({ jest.mock('@kbn/repo-info', () => ({
fromRoot: jest.fn().mockImplementation((path: string) => path), fromRoot: jest.fn().mockImplementation((path: string) => path),
})); }));
jest.mock('@kbn/repo-packages', () => {
return {
getPackages: jest.fn().mockReturnValue([]),
getPluginPackagesFilter: jest.fn().mockImplementation(() => () => false),
};
});
const locale = 'en'; const locale = 'en';
const { getPackages, getPluginPackagesFilter } = jest.requireMock('@kbn/repo-packages');
describe('getKibanaTranslationPaths', () => { describe('getKibanaTranslationPaths', () => {
beforeEach(() => { beforeEach(() => {
@ -67,4 +74,21 @@ describe('getKibanaTranslationPaths', () => {
expect(translationFiles).toEqual(['/root/en.json', '/kibana-extra/en.json']); expect(translationFiles).toEqual(['/root/en.json', '/kibana-extra/en.json']);
}); });
it('looks for translation paths in filters plugin packages', async () => {
const package1 = { directory: 'package1' };
const package2 = { directory: 'package2' };
const filter = jest.fn((p: any) => p === package2);
getPackages.mockReturnValue([package1, package2]);
getPluginPackagesFilter.mockReturnValue(filter);
await getKibanaTranslationFiles(locale, []);
expect(getPackages).toHaveBeenCalledTimes(1);
expect(getPluginPackagesFilter).toHaveBeenCalledTimes(1);
expect(filter).toHaveBeenCalledTimes(2);
expect(mockGetTranslationPaths).toHaveBeenCalledTimes(3);
expect(mockGetTranslationPaths).not.toHaveBeenCalledWith({ cwd: 'package1', nested: false });
expect(mockGetTranslationPaths).toHaveBeenCalledWith({ cwd: 'package2', nested: false });
});
}); });

View file

@ -8,6 +8,8 @@
import { basename } from 'path'; import { basename } from 'path';
import { fromRoot } from '@kbn/repo-info'; import { fromRoot } from '@kbn/repo-info';
import { asyncMapWithLimit } from '@kbn/std';
import { getPackages, getPluginPackagesFilter } from '@kbn/repo-packages';
import { getTranslationPaths } from './get_translation_paths'; import { getTranslationPaths } from './get_translation_paths';
export const getKibanaTranslationFiles = async ( export const getKibanaTranslationFiles = async (
@ -19,14 +21,23 @@ export const getKibanaTranslationFiles = async (
cwd: fromRoot('.'), cwd: fromRoot('.'),
nested: true, nested: true,
}), }),
...pluginPaths.map((pluginPath) => getTranslationPaths({ cwd: pluginPath, nested: false })), asyncMapWithLimit(
getPackages(fromRoot('.')).filter(getPluginPackagesFilter({ paths: pluginPaths })),
20,
async (pkg) => await getTranslationPaths({ cwd: pkg.directory, nested: false })
),
asyncMapWithLimit(
pluginPaths,
20,
async (pluginPath) => await getTranslationPaths({ cwd: pluginPath, nested: false })
),
getTranslationPaths({ getTranslationPaths({
cwd: fromRoot('../kibana-extra'), cwd: fromRoot('../kibana-extra'),
nested: true, nested: true,
}), }),
]); ]);
return ([] as string[]) return translationPaths
.concat(...translationPaths) .flat(2)
.filter((translationPath) => basename(translationPath, '.json') === locale); .filter((translationPath) => basename(translationPath, '.json') === locale);
}; };

View file

@ -26,12 +26,12 @@ export async function getTranslationPaths({ cwd, nested }: { cwd: string; nested
const pluginBasePath = dirname(entryFullPath); const pluginBasePath = dirname(entryFullPath);
try { try {
const content = await readFile(entryFullPath, 'utf8'); const content = await readFile(entryFullPath, 'utf8');
const { translations } = JSON.parse(content) as I18NRCFileStructure; const { translations = [] } = JSON.parse(content) as I18NRCFileStructure;
if (translations && translations.length) {
translations.forEach((translation) => { for (const path of translations) {
const translationFullPath = resolve(pluginBasePath, translation); translationPaths.push(
translationPaths.push(translationFullPath); path.startsWith('@kbn/') ? require.resolve(path) : resolve(pluginBasePath, path)
}); );
} }
} catch (err) { } catch (err) {
throw new Error(`Failed to parse .i18nrc.json file at ${entryFullPath}`); throw new Error(`Failed to parse .i18nrc.json file at ${entryFullPath}`);

View file

@ -23,6 +23,8 @@
"@kbn/core-base-server-mocks", "@kbn/core-base-server-mocks",
"@kbn/core-http-server-mocks", "@kbn/core-http-server-mocks",
"@kbn/i18n", "@kbn/i18n",
"@kbn/std",
"@kbn/repo-packages",
], ],
"exclude": [ "exclude": [
"target/**/*", "target/**/*",

View file

@ -25,10 +25,8 @@ import type { InstanceInfo } from '../plugin_context';
import { discover } from './plugins_discovery'; import { discover } from './plugins_discovery';
import { PluginType } from '@kbn/core-base-common'; import { PluginType } from '@kbn/core-base-common';
const KIBANA_ROOT = process.cwd();
jest.mock('@kbn/repo-packages', () => ({ jest.mock('@kbn/repo-packages', () => ({
...jest.requireActual('@kbn/repo-packages'), ...jest.requireActual('@kbn/repo-packages'),
getPackages: jest.fn().mockReturnValue([]),
getPluginPackagesFilter: jest.fn().mockReturnValue(() => true), getPluginPackagesFilter: jest.fn().mockReturnValue(() => true),
})); }));
@ -153,8 +151,8 @@ const packageMock = {
}, },
}; };
const manifestPath = (...pluginPath: string[]) => const pluginDir = (...segments: string[]) => resolve(REPO_ROOT, 'plugins', ...segments);
resolve(KIBANA_ROOT, 'src', 'plugins', ...pluginPath, 'kibana.json'); const manifestPath = (...pluginPath: string[]) => resolve(pluginDir(...pluginPath), 'kibana.json');
describe('plugins discovery system', () => { describe('plugins discovery system', () => {
let logger: ReturnType<typeof loggingSystemMock.create>; let logger: ReturnType<typeof loggingSystemMock.create>;
@ -185,6 +183,7 @@ describe('plugins discovery system', () => {
REPO_ROOT, REPO_ROOT,
getEnvOptions({ getEnvOptions({
cliArgs: { envName: 'development' }, cliArgs: { envName: 'development' },
repoPackages: [],
}) })
); );
@ -230,10 +229,10 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), [pluginDir('plugin_a')]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'), [pluginDir('plugin_b')]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'), [pluginDir(`plugin_c`)]: Plugins.valid('pluginC'),
[`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.validPreboot('pluginD'), [pluginDir(`plugin_d`)]: Plugins.validPreboot('pluginD'),
}, },
{ createCwd: false } { createCwd: false }
); );
@ -257,12 +256,12 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.invalid(), [pluginDir(`plugin_a`)]: Plugins.invalid(),
[`${KIBANA_ROOT}/src/plugins/plugin_b`]: Plugins.incomplete(), [pluginDir(`plugin_b`)]: Plugins.incomplete(),
[`${KIBANA_ROOT}/src/plugins/plugin_c`]: Plugins.incompatible(), [pluginDir(`plugin_c`)]: Plugins.incompatible(),
[`${KIBANA_ROOT}/src/plugins/plugin_d`]: Plugins.incompatibleType('pluginD'), [pluginDir(`plugin_d`)]: Plugins.incompatibleType('pluginD'),
[`${KIBANA_ROOT}/src/plugins/plugin_ad`]: Plugins.missingManifest(), [pluginDir(`plugin_ad`)]: Plugins.missingManifest(),
[`${KIBANA_ROOT}/src/plugins/plugin_e`]: Plugins.missingOwnerAttribute(), [pluginDir(`plugin_e`)]: Plugins.missingOwnerAttribute(),
}, },
{ createCwd: false } { createCwd: false }
); );
@ -324,7 +323,7 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins`]: mockFs.directory({ [pluginDir('.')]: mockFs.directory({
mode: 0, // 0000 mode: 0, // 0000
items: { items: {
plugin_a: Plugins.valid('pluginA'), plugin_a: Plugins.valid('pluginA'),
@ -344,12 +343,38 @@ describe('plugins discovery system', () => {
) )
.toPromise(); .toPromise();
const srcPluginsPath = resolve(KIBANA_ROOT, 'src', 'plugins'); const srcPluginsPath = pluginDir('.');
const xpackPluginsPath = resolve(KIBANA_ROOT, 'x-pack', 'plugins');
expect(errors).toEqual( expect(errors).toEqual(
expect.arrayContaining([ expect.arrayContaining([
`Error: EACCES, permission denied '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`, `Error: EACCES, permission denied '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`,
`Error: ENOENT, no such file or directory '${xpackPluginsPath}' (invalid-search-path, ${xpackPluginsPath})`, ])
);
});
it('return errors when the plugin search path is missing', async () => {
const { plugin$, error$ } = discover({
config: new PluginsConfig(pluginConfig, env),
coreContext,
instanceInfo,
nodeInfo,
});
mockFs({}, { createCwd: false });
const plugins = await plugin$.pipe(toArray()).toPromise();
expect(plugins).toHaveLength(0);
const errors = await error$
.pipe(
map((error) => error.toString()),
toArray()
)
.toPromise();
const srcPluginsPath = pluginDir('.');
expect(errors).toEqual(
expect.arrayContaining([
`Error: ENOENT, no such file or directory '${srcPluginsPath}' (invalid-search-path, ${srcPluginsPath})`,
]) ])
); );
}); });
@ -364,7 +389,7 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: { [pluginDir(`plugin_a`)]: {
...Plugins.inaccessibleManifest(), ...Plugins.inaccessibleManifest(),
nested_plugin: Plugins.valid('nestedPlugin'), nested_plugin: Plugins.valid('nestedPlugin'),
}, },
@ -400,11 +425,11 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), [pluginDir(`plugin_a`)]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/src/plugins/sub1/plugin_b`]: Plugins.valid('pluginB'), [pluginDir(`sub1/plugin_b`)]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_c`]: Plugins.valid('pluginC'), [pluginDir(`sub1/sub2/plugin_c`)]: Plugins.valid('pluginC'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_d`]: Plugins.validPreboot('pluginD'), [pluginDir(`sub1/sub2/plugin_d`)]: Plugins.validPreboot('pluginD'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin_e`]: Plugins.incomplete(), [pluginDir(`sub1/sub2/plugin_e`)]: Plugins.incomplete(),
}, },
{ createCwd: false } { createCwd: false }
); );
@ -445,7 +470,7 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: { [pluginDir(`plugin_a`)]: {
...Plugins.valid('pluginA'), ...Plugins.valid('pluginA'),
nested_plugin: Plugins.valid('nestedPlugin'), nested_plugin: Plugins.valid('nestedPlugin'),
}, },
@ -469,13 +494,12 @@ describe('plugins discovery system', () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/sub1/plugin`]: Plugins.valid('plugin1'), [pluginDir(`sub1/plugin`)]: Plugins.valid('plugin1'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/plugin`]: Plugins.valid('plugin2'), [pluginDir(`sub1/sub2/plugin`)]: Plugins.valid('plugin2'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/plugin`]: Plugins.valid('plugin3'), [pluginDir(`sub1/sub2/sub3/plugin`)]: Plugins.valid('plugin3'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/plugin`]: Plugins.valid('plugin4'), [pluginDir(`sub1/sub2/sub3/sub4/plugin`)]: Plugins.valid('plugin4'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/plugin`]: Plugins.valid('plugin5'), [pluginDir(`sub1/sub2/sub3/sub4/sub5/plugin`)]: Plugins.valid('plugin5'),
[`${KIBANA_ROOT}/src/plugins/sub1/sub2/sub3/sub4/sub5/sub6/plugin`]: [pluginDir(`sub1/sub2/sub3/sub4/sub5/sub6/plugin`)]: Plugins.valid('plugin6'),
Plugins.valid('plugin6'),
}, },
{ createCwd: false } { createCwd: false }
); );
@ -497,12 +521,12 @@ describe('plugins discovery system', () => {
nodeInfo, nodeInfo,
}); });
const pluginFolder = resolve(KIBANA_ROOT, '..', 'ext-plugins'); const pluginFolder = pluginDir('../ext-plugins');
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/plugins`]: mockFs.symlink({ [pluginDir(`.`)]: mockFs.symlink({
path: '../ext-plugins', path: pluginFolder,
}), }),
[pluginFolder]: { [pluginFolder]: {
plugin_a: Plugins.valid('pluginA'), plugin_a: Plugins.valid('pluginA'),
@ -634,18 +658,18 @@ describe('plugins discovery system', () => {
it('returns the plugins in a deterministic order', async () => { it('returns the plugins in a deterministic order', async () => {
mockFs( mockFs(
{ {
[`${KIBANA_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'), [`${REPO_ROOT}/src/plugins/plugin_a`]: Plugins.valid('pluginA'),
[`${KIBANA_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'), [`${REPO_ROOT}/plugins/plugin_b`]: Plugins.valid('pluginB'),
[`${KIBANA_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'), [`${REPO_ROOT}/x-pack/plugins/plugin_c`]: Plugins.valid('pluginC'),
}, },
{ createCwd: false } { createCwd: false }
); );
scanPluginSearchPathsMock.mockReturnValue( scanPluginSearchPathsMock.mockReturnValue(
from([ from([
`${KIBANA_ROOT}/src/plugins/plugin_a`, `${REPO_ROOT}/src/plugins/plugin_a`,
`${KIBANA_ROOT}/plugins/plugin_b`, `${REPO_ROOT}/plugins/plugin_b`,
`${KIBANA_ROOT}/x-pack/plugins/plugin_c`, `${REPO_ROOT}/x-pack/plugins/plugin_c`,
]) ])
); );
@ -671,9 +695,9 @@ describe('plugins discovery system', () => {
// second pass // second pass
scanPluginSearchPathsMock.mockReturnValue( scanPluginSearchPathsMock.mockReturnValue(
from([ from([
`${KIBANA_ROOT}/plugins/plugin_b`, `${REPO_ROOT}/plugins/plugin_b`,
`${KIBANA_ROOT}/x-pack/plugins/plugin_c`, `${REPO_ROOT}/x-pack/plugins/plugin_c`,
`${KIBANA_ROOT}/src/plugins/plugin_a`, `${REPO_ROOT}/src/plugins/plugin_a`,
]) ])
); );

View file

@ -722,10 +722,8 @@ describe('PluginsService', () => {
additionalPluginPaths: [], additionalPluginPaths: [],
initialize: true, initialize: true,
pluginSearchPaths: [ pluginSearchPaths: [
resolve(process.cwd(), 'src', 'plugins'), resolve(REPO_ROOT, '..', 'kibana-extra'),
resolve(process.cwd(), 'x-pack', 'plugins'), resolve(REPO_ROOT, 'plugins'),
resolve(process.cwd(), 'plugins'),
resolve(process.cwd(), '..', 'kibana-extra'),
], ],
}, },
coreContext: { coreId, env, logger, configService }, coreContext: { coreId, env, logger, configService },

View file

@ -1,6 +1,6 @@
{ {
"name": "@kbn/apm-synthtrace-client", "name": "@kbn/apm-synthtrace-client",
"version": "0.1.0", "version": "1.0.0",
"description": "Elastic APM trace data generator", "description": "Elastic APM trace data generator",
"license": "SSPL-1.0 OR Elastic License 2.0", "license": "SSPL-1.0 OR Elastic License 2.0",
"private": true "private": true

View file

@ -1,6 +1,6 @@
{ {
"name": "@kbn/apm-synthtrace", "name": "@kbn/apm-synthtrace",
"version": "0.1.0", "version": "1.0.0",
"description": "Elastic APM trace data generator", "description": "Elastic APM trace data generator",
"license": "SSPL-1.0 OR Elastic License 2.0", "license": "SSPL-1.0 OR Elastic License 2.0",
"bin": { "bin": {

View file

@ -1,31 +0,0 @@
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
SRCS = [
"babel_plugin_package_imports.js",
"index.js",
]
# In this array place runtime dependencies, including other packages and NPM packages
# which must be available for this code to run.
#
# To reference other packages use:
# "//repo/relative/path/to/package"
# eg. "//packages/kbn-utils"
#
# To reference a NPM package use:
# "@npm//name-of-package"
# eg. "@npm//lodash"
BUNDLER_DEPS = [
"@npm//@babel/helper-plugin-utils",
"@npm//normalize-path",
"//packages/kbn-repo-info",
"//packages/kbn-repo-packages",
]
js_library(
name = "kbn-babel-plugin-package-imports",
package_name = "@kbn/babel-plugin-package-imports",
srcs = ["package.json"] + SRCS,
deps = BUNDLER_DEPS,
visibility = ["//visibility:public"],
)

View file

@ -1,11 +0,0 @@
---
id: kibDevDocsOpsBabelPluginPackageImports
slug: /kibana-dev-docs/ops/babel-plugin-package-imports
title: "@kbn/babel-plugin-package-imports"
description: A babel plugin that transforms our @kbn/{NAME} imports into paths
date: 2022-05-19
tags: ['kibana', 'dev', 'contributor', 'operations', 'babel', 'plugin', 'packages', 'imports']
---
When developing inside the Kibana repository importing a package from any other package is just easy as
importing `@kbn/{package-name}`. However not every package is a node_module yet and while that is something we are working on to accomplish we need a way to dealing with it for now. Using this babel plugin is our transitory solution. It allows us to import from module ids and then transform it automatically back into paths on the transpiled code without friction for our engineering teams.

View file

@ -1,195 +0,0 @@
/*
* 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 Path = require('path');
const T = require('@babel/types');
const normalizePath = require('normalize-path');
const { declare } = require('@babel/helper-plugin-utils');
const { readPackageMap } = require('@kbn/repo-packages');
const { REPO_ROOT } = require('@kbn/repo-info');
const PKG_MAP = readPackageMap();
/**
* @param {unknown} v
* @returns {v is Record<string, unknown>}
*/
const isObj = (v) => typeof v === 'object' && !!v;
/**
* @param {unknown} state
* @returns {string}
*/
function getFilename(state) {
if (!isObj(state) || typeof state.filename !== 'string' || !Path.isAbsolute(state.filename)) {
throw new Error(
`@kbn/babel-plugin-package-imports is only compatible when building files with absolute filename state`
);
}
return state.filename;
}
/**
* @param {string} req
* @returns {import('./types').ParsedReq | undefined}
*/
function parseReq(req) {
if (!req.startsWith('@kbn/')) {
return;
}
const parts = req.split('/');
const moduleId = `@kbn/${parts[1]}`;
const dir = PKG_MAP.get(moduleId);
if (!dir) {
return;
}
return {
req,
moduleId,
dir,
subParts: parts.slice(2),
};
}
/**
* @param {import('./types').ParsedReq} req
* @param {string} filename
*/
function fixImportRequest(req, filename) {
if (process.env.BAZEL_WORKSPACE === 'kibana') {
return;
}
const rel = normalizePath(
Path.relative(Path.dirname(filename), Path.resolve(REPO_ROOT, req.dir, ...req.subParts))
);
return rel.startsWith('.') ? rel : `./${rel}`;
}
/**
* @param {T.CallExpression} node
* @returns {node is T.Import & { arguments: [T.StringLiteral] }}
*/
function isDynamicImport(node) {
return !!(
T.isImport(node.callee) &&
node.arguments.length === 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isRequire(node) {
return !!(
T.isIdentifier(node.callee) &&
node.callee.name === 'require' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isRequireResolve(node) {
return !!(
T.isMemberExpression(node.callee) &&
T.isIdentifier(node.callee.object) &&
node.callee.object.name === 'require' &&
T.isIdentifier(node.callee.property) &&
node.callee.property.name === 'resolve' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
/**
* @param {T.CallExpression} node
* @returns {node is T.CallExpression & { arguments: [T.StringLiteral] }}
*/
function isJestMockCall(node) {
return !!(
T.isMemberExpression(node.callee) &&
T.isIdentifier(node.callee.object) &&
node.callee.object.name === 'jest' &&
node.arguments.length >= 1 &&
T.isStringLiteral(node.arguments[0])
);
}
module.exports = declare((api, options) => {
/** @type {Set<string> | undefined} */
const ignoredPkgIds = options.ignoredPkgIds;
api.assertVersion(7);
return {
name: 'kbn-package-imports',
visitor: {
/**
* @param {import('@babel/core').NodePath<T.ImportDeclaration | T.ExportNamedDeclaration | T.ExportAllDeclaration>} path
*/
'ImportDeclaration|ExportNamedDeclaration|ExportAllDeclaration'(path) {
const filename = getFilename(this);
const source = path.node.source;
if (!T.isStringLiteral(source)) {
return;
}
const req = source.value;
const parsed = parseReq(req);
if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) {
return;
}
const newReq = fixImportRequest(parsed, filename);
if (newReq) {
path.get('source').replaceWith(T.stringLiteral(newReq));
}
},
/**
* @param {import('@babel/core').NodePath<T.CallExpression>} path
*/
CallExpression(path) {
const filename = getFilename(this);
const { node } = path;
if (
!isDynamicImport(node) &&
!isRequire(node) &&
!isRequireResolve(node) &&
!isJestMockCall(node)
) {
return;
}
const req = node.arguments[0].value;
const parsed = parseReq(req);
if (!parsed || ignoredPkgIds?.has(parsed.moduleId)) {
return;
}
const newReq = fixImportRequest(parsed, filename);
if (newReq) {
path.get('arguments')[0].replaceWith(T.stringLiteral(newReq));
}
},
},
};
});

View file

@ -1,9 +0,0 @@
/*
* 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 = require('./babel_plugin_package_imports');

View file

@ -1,6 +0,0 @@
{
"type": "shared-common",
"id": "@kbn/babel-plugin-package-imports",
"devOnly": true,
"owner": "@elastic/kibana-operations"
}

View file

@ -1,6 +0,0 @@
{
"name": "@kbn/babel-plugin-package-imports",
"private": true,
"version": "1.0.0",
"license": "SSPL-1.0 OR Elastic License 2.0"
}

View file

@ -1,14 +0,0 @@
/*
* 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.
*/
export interface ParsedReq {
req: string;
moduleId: string;
dir: string;
subParts: string[];
}

View file

@ -39,7 +39,6 @@ RUNTIME_DEPS = [
"@npm//babel-plugin-add-module-exports", "@npm//babel-plugin-add-module-exports",
"@npm//babel-plugin-styled-components", "@npm//babel-plugin-styled-components",
"@npm//babel-plugin-transform-react-remove-prop-types", "@npm//babel-plugin-transform-react-remove-prop-types",
"//packages/kbn-babel-plugin-package-imports",
] ]
js_library( js_library(

View file

@ -6,7 +6,7 @@
* Side Public License, v 1. * Side Public License, v 1.
*/ */
module.exports = (_, options = {}) => ({ module.exports = () => ({
presets: [ presets: [
// plugins always run before presets, but in this case we need the // plugins always run before presets, but in this case we need the
// @babel/preset-typescript preset to run first so we have to move // @babel/preset-typescript preset to run first so we have to move
@ -46,19 +46,6 @@ module.exports = (_, options = {}) => ({
version: '^7.12.5', version: '^7.12.5',
}, },
], ],
...(options['kibana/ignoreAllPkgImports']
? []
: [
[
require.resolve('@kbn/babel-plugin-package-imports'),
{
ignoredPkgIds: options['kibana/ignoredPkgIds']
? new Set(options['kibana/ignoredPkgIds'])
: undefined,
},
],
]),
], ],
}, },

View file

@ -21,14 +21,7 @@ const cwd = process.cwd();
function getBabelOptions(path, config = {}) { function getBabelOptions(path, config = {}) {
return { return {
filename: path, filename: path,
presets: [ presets: [NODE_PRESET],
[
NODE_PRESET,
{
'kibana/ignoredPkgIds': config.ignoredPkgIds,
},
],
],
cwd, cwd,
babelrc: false, babelrc: false,
sourceMaps: config.disableSourceMaps ? false : 'both', sourceMaps: config.disableSourceMaps ? false : 'both',

View file

@ -8,7 +8,6 @@
export interface TransformConfig { export interface TransformConfig {
disableSourceMaps?: boolean; disableSourceMaps?: boolean;
ignoredPkgIds?: string[];
} }
export interface WorkerData { export interface WorkerData {

View file

@ -116,7 +116,6 @@ it('passes correct args to sub-classes', () => {
"cache": true, "cache": true,
"dist": true, "dist": true,
"enabled": true, "enabled": true,
"oss": true,
"pluginPaths": Array [], "pluginPaths": Array [],
"pluginScanDirs": Array [ "pluginScanDirs": Array [
<absolute path>/src/plugins, <absolute path>/src/plugins,

View file

@ -149,9 +149,6 @@ export class CliDevMode {
this.optimizer = new Optimizer({ this.optimizer = new Optimizer({
enabled: !cliArgs.disableOptimizer, enabled: !cliArgs.disableOptimizer,
repoRoot: REPO_ROOT, repoRoot: REPO_ROOT,
oss: cliArgs.oss,
pluginPaths: config.plugins.additionalPluginPaths,
pluginScanDirs: config.plugins.pluginSearchPaths,
runExamples: cliArgs.runExamples, runExamples: cliArgs.runExamples,
cache: cliArgs.cache, cache: cliArgs.cache,
dist: cliArgs.dist, dist: cliArgs.dist,
@ -159,6 +156,8 @@ export class CliDevMode {
silent: !!cliArgs.silent, silent: !!cliArgs.silent,
verbose: !!cliArgs.verbose, verbose: !!cliArgs.verbose,
watch: cliArgs.watch, watch: cliArgs.watch,
pluginPaths: config.plugins.additionalPluginPaths,
pluginScanDirs: config.plugins.pluginSearchPaths,
}); });
} }

View file

@ -43,7 +43,6 @@ const defaultOptions: Options = {
enabled: true, enabled: true,
cache: true, cache: true,
dist: true, dist: true,
oss: true,
pluginPaths: ['/some/dir'], pluginPaths: ['/some/dir'],
pluginScanDirs: ['/some-scan-path'], pluginScanDirs: ['/some-scan-path'],
quiet: true, quiet: true,
@ -85,7 +84,6 @@ it('uses options to create valid OptimizerConfig', () => {
cache: false, cache: false,
dist: false, dist: false,
runExamples: false, runExamples: false,
oss: false,
pluginPaths: [], pluginPaths: [],
pluginScanDirs: [], pluginScanDirs: [],
repoRoot: '/foo/bar', repoRoot: '/foo/bar',
@ -100,7 +98,6 @@ it('uses options to create valid OptimizerConfig', () => {
"dist": true, "dist": true,
"examples": true, "examples": true,
"includeCoreBundle": true, "includeCoreBundle": true,
"oss": true,
"pluginPaths": Array [ "pluginPaths": Array [
"/some/dir", "/some/dir",
], ],
@ -117,7 +114,6 @@ it('uses options to create valid OptimizerConfig', () => {
"dist": false, "dist": false,
"examples": false, "examples": false,
"includeCoreBundle": true, "includeCoreBundle": true,
"oss": false,
"pluginPaths": Array [], "pluginPaths": Array [],
"pluginScanDirs": Array [], "pluginScanDirs": Array [],
"repoRoot": "/foo/bar", "repoRoot": "/foo/bar",

View file

@ -35,11 +35,10 @@ export interface Options {
watch: boolean; watch: boolean;
cache: boolean; cache: boolean;
dist: boolean; dist: boolean;
oss: boolean;
runExamples: boolean; runExamples: boolean;
pluginPaths: string[];
pluginScanDirs: string[];
writeLogTo?: Writable; writeLogTo?: Writable;
pluginPaths?: string[];
pluginScanDirs?: string[];
} }
export class Optimizer { export class Optimizer {
@ -61,7 +60,6 @@ export class Optimizer {
includeCoreBundle: true, includeCoreBundle: true,
cache: options.cache, cache: options.cache,
dist: options.dist, dist: options.dist,
oss: options.oss,
examples: options.runExamples, examples: options.runExamples,
pluginPaths: options.pluginPaths, pluginPaths: options.pluginPaths,
pluginScanDirs: options.pluginScanDirs, pluginScanDirs: options.pluginScanDirs,

View file

@ -15,19 +15,17 @@ import { makeMatcher } from '@kbn/picomatcher';
import { Log } from './log'; import { Log } from './log';
const packageMatcher = makeMatcher(['**/*', '!**/.*']); const packageMatcher = makeMatcher([
'**/*',
'!**/.*',
'!x-pack/plugins/screenshotting/chromium/**',
'!x-pack/plugins/canvas/shareable_runtime/**',
]);
/** /**
* Any code that is outside of a package must match this in order to trigger a restart * Any code that is outside of a package must match this in order to trigger a restart
*/ */
const nonPackageMatcher = makeMatcher([ const nonPackageMatcher = makeMatcher(['config/**/*.yml']);
'config/**/*.yml',
'src/**',
'!src/{dev,fixtures}/**',
'x-pack/plugins/**',
'!x-pack/plugins/screenshotting/chromium/**',
'!x-pack/plugins/canvas/shareable_runtime/**',
]);
export interface Options { export interface Options {
enabled: boolean; enabled: boolean;
@ -84,6 +82,7 @@ export class Watcher {
if (result.type === 'common package' || result.type === 'server package') { if (result.type === 'common package' || result.type === 'server package') {
return packageMatcher(result.repoRel) && fire(result.repoRel); return packageMatcher(result.repoRel) && fire(result.repoRel);
} }
if (result.type === 'non-package') { if (result.type === 'non-package') {
return nonPackageMatcher(result.repoRel) && fire(result.repoRel); return nonPackageMatcher(result.repoRel) && fire(result.repoRel);
} }

Some files were not shown because too many files have changed in this diff Show more