kibana/packages
Xavier Mouligneau e0e0a26b43
[RAM] .es-query and .observability.rules.threshold RBAC (#166032)
## Summary

This PR is updating Discover's rule to be created under the
`stackAlerts` consumer and we created an [breaking change
issue](https://github.com/elastic/dev/issues/2344) to explain the
consequences of this update.

We also fix the rule's consumer for all rule types created under the
observability rule management to use their producer instead of `alerts`.
Also, we add the ability for the ES Query and new Generic Threshold
rules type to pick the consumer associated to the rule. The
`ensureAuthorized` and the `filter` functions have modified and
simplified to support this use case please check the newest unit test
added in
`x-pack/plugins/alerting/server/authorization/alerting_authorization.test.ts`.

There is now a dropdown in the rule form to prompt the user when
creating ES Query/Generic threshold rules to select the consumer based
on their authorized consumers (we can no longer use `alerts` for these).
If there is only 1 option, then the dropdown will not be shown and the
option will be chosen automatically.

Generic threshold rules will have the following possible consumers:
 - infrastructure
 - logs

ES query rules will have the following possible consumers:
 - infrastructure
 - logs
 - stackAlerts (only from the stack management rule page)

## To Test:
### Single Consumer:
1. Create a user with only `logs` feature enabled (ensuring
`stackAlerts` is not enabled).
2. Navigate to the O11Y rule management page
3. Click the create rule button
4. Assert that both ES query and generic threshold rules are available
5. Click ES query and fill out the relevant information and create the
rule
6. Assert that the rule created has `logs` set in the `consumer` field
7. Repeat 5-6 for the generic threshold rule
8. Repeat 2-7 but on the Stack Management rules page  
9. Repeat 1-8 for the `infrastructure` feature. 

### Multiple Consumers:
1. Create a user with `logs`, `infrastructure` and `apm` features
enabled (ensuring `stackAlerts` is not enabled).
2. Navigate to the O11Y rule management page
3. Click the create rule button
4. Assert that both ES query and generic threshold rules are available
5. Click ES query and fill out the relevant information and create the
rule
6. A dropdown should prompt the user to select between 1 of the 3
consumers, select 1
7. Assert that the rule was created with the selected consumer
8. Repeat 5-7 for the generic threshold rule
9. Repeat 2-8 but on the Stack Management rules page

![Screenshot from 2023-08-08
16-45-43](8c5b644a-8bab-4c1b-93b0-acfa956af19c)

![consumer_dropdown_open](a03b7e97-e90e-4bbc-bed0-94a6c677d31d)


### Checklist
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: Jiawei Wu <74562234+JiaweiWu@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
2023-09-21 15:10:28 -07:00
..
analytics [FullStory] Add projectId to the context (#166693) 2023-09-19 03:44:00 -07:00
content-management [Dashboard] Add Readonly State For Managed Dashboards (#166204) 2023-09-21 11:04:23 -04:00
core [kbn/es serverless] invert teardown logic to always kill cluster (#166546) 2023-09-21 09:10:21 -07:00
deeplinks [Log Explorer] Add Explorer app locator (#165962) 2023-09-20 19:49:57 +02:00
default-nav [ML] Serverless compatibility fixes (#163724) 2023-09-13 12:07:55 -07:00
home Upgrade EUI to 83.0.0 (#160813) 2023-07-06 12:46:55 -07:00
kbn-ace Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-alerts-as-data-utils [RAM] Alert search strategy fields for security (#165040) 2023-08-29 13:18:28 -04:00
kbn-alerts-ui-shared [RAM] Autocomplete (#158454) 2023-08-30 19:04:14 -07:00
kbn-ambient-common-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ambient-ftr-types [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02:00
kbn-ambient-storybook-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ambient-ui-types Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-analytics Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-apm-config-loader [APM Tracing config] Allow per-service overrides (#166184) 2023-09-19 12:49:37 +02:00
kbn-apm-synthtrace [APM] Add elastic-api-version header to Kibana API calls (#166602) 2023-09-18 04:47:36 -07:00
kbn-apm-synthtrace-client Mobile UI crash widget (#163527) 2023-09-18 10:56:00 -07:00
kbn-apm-utils Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-axe-config Updating axe-core to latest (#144940) 2023-03-29 00:06:25 +05:30
kbn-babel-preset [Defend workflows] [On-week] Migrate osquery from styled-components to @emotion (#161179) 2023-08-02 19:18:10 +02:00
kbn-babel-register [kbn/babel-register] improve cache performance (#150261) 2023-02-06 19:50:42 -07:00
kbn-babel-transform [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-bazel-runner chore(NA): remove a small change to trigger risk-free backport (#160810) 2023-06-28 21:08:33 +01:00
kbn-cases-components [Cases] Version cases and comment domain and apis (#161954) 2023-07-26 06:09:10 -07:00
kbn-cell-actions [SecuritySolutions] Remove filter actions from Cases alerts table and fix show_top_n action (#161150) 2023-07-05 09:03:18 +02:00
kbn-chart-icons [Lens] fix inconsistent annotation icon styles (#159542) 2023-06-21 09:18:48 +02:00
kbn-check-mappings-update-cli [Metrics] metrics_data_access plugin (#164094) 2023-09-14 12:55:13 +02:00
kbn-ci-stats-core Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-performance-metrics Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ci-stats-reporter [Ops] Upgrade to axios 1.4 (#163732) 2023-08-22 11:47:48 +02:00
kbn-ci-stats-shipper-cli [ci-stats] move shipper to a package, validate limits in on-merge job (#149474) 2023-01-25 08:20:40 -07:00
kbn-cli-dev-mode Enables preventing access to internal APIs (#156935) 2023-05-10 04:25:15 -07:00
kbn-coloring [Lens][Event annotations] Move logic into packages (#161500) 2023-07-19 09:46:57 -05:00
kbn-config [On-Week] Hot update of APM/EBT labels (#157093) 2023-08-31 14:36:20 +02:00
kbn-config-mocks [On-Week] Hot update of APM/EBT labels (#157093) 2023-08-31 14:36:20 +02:00
kbn-config-schema [ResponseOps][Alerting] Create xpack.actions.queued.max circuit breaker (#164632) 2023-09-07 06:59:01 -07:00
kbn-content-management-utils [Dashboard] Add Readonly State For Managed Dashboards (#166204) 2023-09-21 11:04:23 -04:00
kbn-crypto Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-crypto-browser Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-custom-integrations [Logs+] Enforce dataset names (#166654) 2023-09-21 16:32:25 +01:00
kbn-cypress-config Revert "Upgrade EUI to v88.3.0 (#166292)" 2023-09-18 18:37:13 -05:00
kbn-data-service [UnifiedFieldList] Convert from a plugin into a package (#158718) 2023-06-23 14:28:12 +02:00
kbn-datemath [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-dev-cli-errors Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-dev-cli-runner Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-dev-proc-runner [Security Solution] ~200 ways to decrease flakiness in Cypress (#157387) 2023-05-30 17:40:18 +02:00
kbn-dev-utils [kbn/es serverless] Rename usages of ESS (#166581) 2023-09-21 10:44:45 -07:00
kbn-discover-utils [ES|QL] Enable ESQL alerts from the Discover app (#165973) 2023-09-14 10:55:09 +03:00
kbn-doc-links [Index Management] Add support for enrich policies (#164080) 2023-09-20 17:03:42 +02:00
kbn-docs-utils chore: update elastic-agent-nodejs to v4 (#165483) 2023-09-13 12:56:39 +02:00
kbn-dom-drag-drop [Discover] Redesign for the grid, panels and sidebar v1 (#165866) 2023-09-12 08:51:34 +02:00
kbn-ebt-tools Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ecs Generate kbn/ecs with ECS 8.6.1 (#151642) 2023-02-21 15:02:38 +01:00
kbn-es [kbn/es serverless] Rename usages of ESS (#166581) 2023-09-21 10:44:45 -07:00
kbn-es-archiver [esArchiver] Do not perform SO migration on cleanup (#163302) 2023-09-01 12:41:20 +02:00
kbn-es-errors Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-es-query [ES|QL] Technical preview in Discover and Dashboards (#146971) 2023-09-01 12:22:00 +03:00
kbn-es-types refactor search source warnings to return a single warning for 'is_partial' results (#165512) 2023-09-14 08:55:53 -06:00
kbn-eslint-config Upgrade ESLint React plugins (#162464) 2023-07-28 10:43:53 +02:00
kbn-eslint-plugin-disable Clean up imports of ESLint types (#162436) 2023-07-25 10:09:55 +02:00
kbn-eslint-plugin-eslint Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-eslint-plugin-imports [Ops] Fix @kbn/imports/no_unused_imports rule (#164870) 2023-08-26 01:13:57 +02:00
kbn-eslint-plugin-telemetry Enable "Event Generating Elements Should Be Instrumented" ESLint rule for more O11y Apps (#165647) 2023-09-05 15:48:03 -04:00
kbn-event-annotation-common [Lens][Event annotations] Move logic into packages (#161500) 2023-07-19 09:46:57 -05:00
kbn-event-annotation-components [Event annotations] Individual annotation editing from library (#163346) 2023-09-20 10:09:17 +03:00
kbn-expandable-flyout [Security Solution] expandable flyout - prevalence details UI improvements (#164016) 2023-08-26 12:20:58 +02:00
kbn-expect [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02:00
kbn-failed-test-reporter-cli [Ops] Upgrade to axios 1.4 (#163732) 2023-08-22 11:47:48 +02:00
kbn-field-types Update codeowners to move AppServices packages to DataDiscovery (#149065) 2023-01-18 13:34:28 -07:00
kbn-find-used-node-modules [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-flot-charts Fix useless regex escapes (#150043) 2023-02-07 09:58:47 -07:00
kbn-ftr-common-functional-services [ftr] fix test users for serverless (#161280) 2023-07-10 10:09:07 +02:00
kbn-ftr-screenshot-filename [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02:00
kbn-generate Remove kibana-design from the ultimate rule for scss files. (#157493) 2023-05-12 10:01:47 -05:00
kbn-generate-console-definitions [Console] Generate autocomplete definitions from ES specification (#163301) 2023-08-15 11:30:39 +02:00
kbn-generate-csv [Lens] Quote csv values when contain separator char (#155905) 2023-04-28 15:04:30 +02:00
kbn-generate-csv-types [Reporting] Generate CSV Package (#151801) 2023-04-13 10:27:35 -07:00
kbn-get-repo-files [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-guided-onboarding Renaming the esre application into ai_search (#166632) 2023-09-20 16:22:49 +02:00
kbn-handlebars [@kbn/handlebars] Refactor types (#150520) 2023-02-14 13:37:41 +01:00
kbn-hapi-mocks [HTTP] Allow for internal requests to also specify special query param elasticInternalOrigin (#163796) 2023-08-21 11:55:33 +02:00
kbn-health-gateway-server Change the health gateway to use the status API (#160125) 2023-06-26 02:34:00 -07:00
kbn-i18n Change i18n.translate() to return string type instead of leaving it up to Typescript parser (#164464) 2023-08-22 10:42:20 -06:00
kbn-i18n-react Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-import-locator [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-import-resolver Fix @kbn/import-resolver detection of nested node_modules (#162391) 2023-07-25 10:09:05 +02:00
kbn-interpreter Fix eslint rule for restricting certain lodash imports (#151023) 2023-02-16 08:35:09 -07:00
kbn-io-ts-utils [Observability AI Assistant]: Chat & function calling (#162906) 2023-08-08 13:48:05 +02:00
kbn-jest-serializers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-journeys [On-Week] Hot update of APM/EBT labels (#157093) 2023-08-31 14:36:20 +02:00
kbn-json-ast [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-kibana-manifest-schema implement "plugin" package type (#149370) 2023-01-30 10:47:53 -07:00
kbn-language-documentation-popover Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-lens-embeddable-utils [Infra UI] Refactor host view and asset details dashboards configuraton (#163918) 2023-08-16 09:01:48 +02:00
kbn-lint-packages-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-lint-ts-projects-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-logging Replace ecs package with ecs-typescript generated code (#148804) 2023-01-26 07:10:32 +01:00
kbn-logging-mocks Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-managed-vscode-config Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-managed-vscode-config-cli Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-management [management] Adjustments to Settings components and utilities (#166413) 2023-09-19 13:27:55 -04:00
kbn-mapbox-gl [maps] fix Map orphans sources on layer deletion (#159067) 2023-06-06 14:34:40 -06:00
kbn-monaco [ES|QL] Update function supports and improve signatures (#166282) 2023-09-13 12:40:53 +02:00
kbn-object-versioning [CM] Onboard maps to cross-type search (#155148) 2023-04-21 07:41:08 -07:00
kbn-optimizer [Event annotations] Individual annotation editing from library (#163346) 2023-09-20 10:09:17 +03:00
kbn-optimizer-webpack-helpers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-osquery-io-ts-types [Osquery] Substitute Event Data in place of {{parameter}} in Osquery run from Alerts (#146598) 2023-01-05 15:49:40 +01:00
kbn-peggy Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-peggy-loader Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-performance-testing-dataset-extractor [performance] use journey own ftr config to run scalability test (#152596) 2023-03-07 13:20:21 +01:00
kbn-picomatcher Implement package linter (#148496) 2023-01-09 16:49:29 -07:00
kbn-plugin-generator Migrate from deprecated EUI components (#161548) 2023-07-13 03:22:02 -07:00
kbn-plugin-helpers [node] Enable openssl legacy provider (#163190) 2023-08-30 11:51:10 -07:00
kbn-profiling-utils [Profiling-APM] Service Profiling Top 10 Functions (#166226) 2023-09-20 08:35:19 -07:00
kbn-react-field [Discover] Drag & drop for adding columns to the table (#153538) 2023-04-19 19:17:54 +02:00
kbn-repo-file-maps [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-repo-info Add build_date to kbn:api/status (#157905) 2023-05-25 10:21:47 -07:00
kbn-repo-linter Implement package linter (#148496) 2023-01-09 16:49:29 -07:00
kbn-repo-packages chore(NA): upgrade typescript into v4.7.4 (#162738) 2023-08-24 17:27:13 +01:00
kbn-repo-path [packages] prevent and remove basename collisions for js/ts code (#148835) 2023-01-12 12:29:30 -07:00
kbn-repo-source-classifier fix(NA): source classifier to indentify xml as static files (#164109) 2023-08-17 00:53:59 +01:00
kbn-repo-source-classifier-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-reporting/common [Reporting] Generate CSV Package (#151801) 2023-04-13 10:27:35 -07:00
kbn-rison [Security Solution] Global query string functionality improvements (#147218) 2023-01-05 18:02:12 +01:00
kbn-rrule [RAM] Remove third party RRule library, replace with own timezone-compliant lib (#152873) 2023-07-02 17:03:45 -04:00
kbn-rule-data-utils [RAM] .es-query and .observability.rules.threshold RBAC (#166032) 2023-09-21 15:10:28 -07:00
kbn-safer-lodash-set Fix eslint rule for restricting certain lodash imports (#151023) 2023-02-16 08:35:09 -07:00
kbn-saved-objects-settings [Content Management] Remove dep from content_management -> saved_object_finder (#155013) 2023-04-17 16:25:58 +02:00
kbn-search-api-panels [Serverless Search] Fix language icons (#166739) 2023-09-19 08:56:42 -07:00
kbn-search-connectors [Search] Update connector also updates status (#165983) 2023-09-08 11:14:17 +02:00
kbn-search-response-warnings refactor search source warnings to return a single warning for 'is_partial' results (#165512) 2023-09-14 08:55:53 -06:00
kbn-securitysolution-autocomplete [Security Solution][Detection Engine] move lists to data stream (#162508) 2023-08-23 19:42:57 +01:00
kbn-securitysolution-ecs [Security Solution][Detection Alerts] Alert tagging (#157786) 2023-06-20 22:04:52 -04:00
kbn-securitysolution-es-utils [Security Solution] Initial migration of API endpoints to OpenAPI and code generation (#164482) 2023-08-25 20:01:31 +02:00
kbn-securitysolution-exception-list-components Upgrade EUI to v88.3.0 (#166676) 2023-09-20 08:03:02 -05:00
kbn-securitysolution-grouping Upgrade EUI to v88.2.0 (#165790) 2023-09-12 08:51:07 -07:00
kbn-securitysolution-hook-utils [Security Solution] Clean up CODEOWNERS and other files for the Detection Engine team (#159729) 2023-06-14 10:39:50 -07:00
kbn-securitysolution-io-ts-alerting-types [Security Solution] Clean up CODEOWNERS and other files for the Detection Engine team (#159729) 2023-06-14 10:39:50 -07:00
kbn-securitysolution-io-ts-list-types [Security Solution][Detection Engine] move lists to data stream (#162508) 2023-08-23 19:42:57 +01:00
kbn-securitysolution-io-ts-types [Security Solution] Added OpenAPI schema definitions for rules management (#162641) 2023-08-04 17:13:20 +02:00
kbn-securitysolution-io-ts-utils [Security Solution] Explicit request and response schemas for rules management endpoints (#162324) 2023-07-26 18:00:55 +02:00
kbn-securitysolution-list-api [Security Solution][Endpoint] Adapt exception list api calls to versioned router (#165658) 2023-09-07 17:35:15 +02:00
kbn-securitysolution-list-constants [Security Solution][Detection Engine] move lists to data stream (#162508) 2023-08-23 19:42:57 +01:00
kbn-securitysolution-list-hooks [Security Solution][Detection Engine] move lists to data stream (#162508) 2023-08-23 19:42:57 +01:00
kbn-securitysolution-list-utils [Security Solution][EDR Workflows] Remove the filter on Endpoint Exceptions and Event Filters creation to allow more user flexibility (#162193) 2023-08-03 12:53:17 -04:00
kbn-securitysolution-rules [Security Solution] Clean up CODEOWNERS and other files for the Detection Engine team (#159729) 2023-06-14 10:39:50 -07:00
kbn-securitysolution-t-grid Upgrade EUI to v86.0.0 (#163088) 2023-08-14 15:45:09 -05:00
kbn-securitysolution-utils [DE] - Investigation fields followup (#164133) 2023-08-29 05:41:24 -07:00
kbn-server-http-tools Enables preventing access to internal APIs (#156935) 2023-05-10 04:25:15 -07:00
kbn-server-route-repository [Observability AI Assistant]: Chat & function calling (#162906) 2023-08-08 13:48:05 +02:00
kbn-set-map [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-shared-svg Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-shared-ux-utility [codeowners] rename global experience to @elastic/appex-sharedux 2023-01-18 10:02:49 -07:00
kbn-some-dev-log Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-sort-package-json [sort-package-json] always ensure 2-space indent is used 2023-01-10 10:39:48 -07:00
kbn-spec-to-console [Console] Update dynamic parameters for the new script (#162917) 2023-08-04 06:42:41 -07:00
kbn-std [uiSettings] always use the latest config document to create the new one (#159649) 2023-06-19 00:09:27 -07:00
kbn-stdio-dev-helpers Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-storybook [serverless] Advanced Settings - Field Row components (#165286) 2023-09-11 18:47:22 -04:00
kbn-subscription-tracking [kbn] Subscription tracking (cont.) (#157392) 2023-09-18 18:27:16 +02:00
kbn-telemetry-tools chore(NA): upgrade typescript into v4.7.4 (#162738) 2023-08-24 17:27:13 +01:00
kbn-test [kbn/es serverless] invert teardown logic to always kill cluster (#166546) 2023-09-21 09:10:21 -07:00
kbn-test-jest-helpers [Lens] Add custom formatter within the Lens editor (#158468) 2023-06-13 13:08:07 +02:00
kbn-test-subj-selector [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02:00
kbn-text-based-editor ES|QL in-product help update (#166157) 2023-09-11 18:04:47 +03:00
kbn-timelion-grammar Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-tinymath Remove eslint-plugin-prefer-object-spread dependency (#162439) 2023-07-25 10:04:44 +02:00
kbn-tooling-log Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ts-projects [Synthetics/Uptime] Separate e2e tests by app (#152197) 2023-06-07 17:33:56 +02:00
kbn-ts-type-check-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-typed-react-router-config [shared-ux-router] Add Router and Routes components (#159834) 2023-06-23 10:02:06 -05:00
kbn-ui-actions-browser [UnifiedFieldList] Convert from a plugin into a package (#158718) 2023-06-23 14:28:12 +02:00
kbn-ui-framework Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-ui-shared-deps-npm Upgrade EUI to v88.3.0 (#166676) 2023-09-20 08:03:02 -05:00
kbn-ui-shared-deps-src [Bundling] Add redux (and inner deps) to shared bundle (#166367) 2023-09-18 03:27:13 -07:00
kbn-ui-theme Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-unified-data-table [Discover] Set data table row height to auto-fit by default (#164218) 2023-09-12 13:27:08 +02:00
kbn-unified-doc-viewer [UnifiedDocViewer] Move Discover doc viewer into plugin/package (#162847) 2023-08-31 11:46:59 -07:00
kbn-unified-field-list [Discover] Redesign for the grid, panels and sidebar v1 (#165866) 2023-09-12 08:51:34 +02:00
kbn-url-state [Security Solution] Store expandable flyout state in the url (#154703) 2023-04-21 15:45:37 -05:00
kbn-use-tracked-promise [Logs+] Create an integration while on-boarding logs (#163219) 2023-08-11 17:18:55 +01:00
kbn-user-profile-components [UserProfiles] Move React hook to package (#162888) 2023-08-09 09:02:02 -07:00
kbn-utility-types [Serverless][Security Solution][Endpoint] Restrict endpoint exceptions on serverless via plugin sub-features (#164107) 2023-08-31 13:35:42 +02:00
kbn-utility-types-jest [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-utils Revert "Custom path for data directory configuration is ignored (#157… (#158325) 2023-05-23 14:22:35 -07:00
kbn-validate-next-docs-cli [validate-next-docs] declare how github urls are determined 2023-02-10 10:54:20 -06:00
kbn-visualization-ui-components [Event annotations] Individual annotation editing from library (#163346) 2023-09-20 10:09:17 +03:00
kbn-web-worker-stub Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
kbn-whereis-pkg-cli [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
kbn-xstate-utils [Logs+] Extract custom integration resources to package (#165510) 2023-09-12 20:22:25 +01:00
kbn-yarn-lock-validator [packages] migrate all plugins to packages (#148130) 2023-02-08 21:06:50 -06:00
react [regression] Handle deprecated KibanaThemeProvider uses to include KibanaRenderContextProvider (#163103) 2023-08-04 09:11:31 -07:00
serverless [Advanced settings] Add settings allowlist (#164471) 2023-09-11 21:12:53 +01:00
shared-ux [ML] Serverless compatibility fixes (#163724) 2023-09-13 12:07:55 -07:00
README.md create @kbn/ui-actions-browser package (#149202) 2023-01-19 18:28:07 +01:00

Kibana-related packages

This folder contains packages that are intended for use in Kibana and Kibana plugins.

tl;dr:

  • Don't publish to npm registry
  • Always use the @kbn namespace
  • Always set "private": true in package.json

Using these packages

We no longer publish these packages to the npm registry. Now, instead of specifying a version when including these packages, we rely on yarn workspaces, which sets up a symlink to the package.

For example if you want to use the @kbn/i18n package in Kibana itself, you can specify the dependency like this:

"@kbn/i18n": "1.0.0"

However, if you want to use this from a Kibana plugin, you need to use a link: dependency and account for the relative location of the Kibana repo, so it would instead be:

"@kbn/i18n": "link:../../kibana/packages/kbn-i18n"

then run yarn kbn bootstrap from the plugin directory.

Creating a new package

Run the following command from the root of the Kibana repo:

node scripts/generate package @kbn/<PACKAGE_NAME> --web --owner @elastic/<TEAM_NAME>

Unit tests for a package

Currently there is only one tool being used in order to test packages which is Jest. Below we will explain how it should be done.

Jest

A package should follow the pattern of having .test.js files as siblings of the source code files, and these run by Jest.

A package using the .test.js naming convention will have those tests automatically picked up by Jest and run by the unit test runner, currently mapped to the Kibana test script in the root package.json.

  • yarn test runs all unit tests.
  • yarn jest runs all Jest tests in Kibana.

In order for the plugin or package to use Jest, a jest.config.js file must be present in it's root. However, there are safeguards for this in CI should a test file be added without a corresponding config file.


Each package can also specify its own test script in the package's package.json, for cases where you'd prefer to run the tests from the local package directory.