kibana/packages
Jiawei Wu 092cc0d098
[RAM][Maintenance Window] Add maintenance window solution selection. (#166781)
## Summary
Resolves: https://github.com/elastic/kibana/issues/166301

Adds support for solution/category filtering to maintenance windows by
adding a new property: `category_ids`. Selecting one or more solutions
when creating/updating a maintenance window will cause the maintenance
window to only suppress rule types belonging to said solutions. In order
to achieve filtering by solution/category, we are adding a new field to
the rule types schema called `category`. This field should map to the
feature category that the rule type belongs to (`observability`,
`securitySolution` or `management`).

Our initial plan was to use feature IDs or rule type IDs to accomplish
this filtering, we decided against using rule type IDs because if a new
rule type gets added, we need to change the API to support this new rule
type. We decided against feature IDs because it's a very anti-serverless
way of accomplishing this feature, as we don't want to expose feature
IDs to APIs. We decided on app categories because it works well with
serverless and should be much easier to maintain if new rule types are
added in the future.

This means the `rule_types` API has to be changed to include this new
field, although it shouldn't be a breaking change since we're just
adding a new field. No migrations are needed since rule types are in
memory and maintenance windows are backwards compatible.


![image](d07b05cd-ade8-46a4-a4c0-ab623c31c11b)

### Error state:

![image](b61984b4-c1e1-4e9b-98b4-97a681e977a8)

### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [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: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Dima Arnautov <arnautov.dima@gmail.com>
2023-10-02 09:20:53 +01:00
..
analytics [FullStory] Add projectId to the context (#166693) 2023-09-19 03:44:00 -07:00
cloud [Cloud] ES endpoint discovery (#167122) 2023-09-28 04:20:53 -07:00
content-management [Dashboard] Add Readonly State For Managed Dashboards (#166204) 2023-09-21 11:04:23 -04:00
core [Drift] Enable chat globally + A/B test for pages where the chat was available before (#167069) 2023-10-01 16:07:11 +02:00
deeplinks [ML] Add data drift detection workflow from Trained models to Data comparison view (#162853) 2023-09-26 15:15:35 -07:00
default-nav Project Side Navigation: Use EuiCollapsibleNavBeta component (#164910) 2023-09-27 14:22:46 -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 [ML] Alerts as data integration for Anomaly Detection rule type (#166349) 2023-09-28 15:46:42 +02:00
kbn-alerts-ui-shared [RAM][Maintenance Window] Add maintenance window solution selection. (#166781) 2023-10-02 09:20:53 +01: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 [Dashboard Navigation] Make links panel available under technical preview (#166896) 2023-09-29 08:25:51 -06: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] Color mapping for categorical dimensions (#162389) 2023-09-28 14:14:58 +02: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 [CM] Soften response validation (#166919) 2023-09-28 16:33:04 +02:00
kbn-crypto [osquery] Setup E2E against Serverless ES, Kibana, Fleet server standalone and Elastic agents in Docker (#165415) 2023-09-29 03:33:06 -07: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+] Update UX copy for logs onboarding (#166993) 2023-09-29 07:48:02 -07: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 [Ops] ES Serverless image verification pipeline (#166054) 2023-09-25 09:49:20 -07:00
kbn-dev-proc-runner Fix typecheck foundations (#167060) 2023-09-25 16:28:56 -07:00
kbn-dev-utils [osquery] Setup E2E against Serverless ES, Kibana, Fleet server standalone and Elastic agents in Docker (#165415) 2023-09-29 03:33:06 -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 [Security Solution][Detection Engine] adds ES|QL rule type to Security Detections rules (#165450) 2023-09-30 09:45:34 +01: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 [osquery] Setup E2E against Serverless ES, Kibana, Fleet server standalone and Elastic agents in Docker (#165415) 2023-09-29 03:33:06 -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] Do not allow saving in library action on text based panels (#167111) 2023-09-27 09:08:16 -07: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 - fix footer not always visible (#167074) 2023-09-27 17:01:28 -05: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 [Guided onboarding] Updating search solution items. (#166953) 2023-09-25 18:02:33 +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 unskip many_fields_lens_editor journey (#167634) 2023-09-29 17:49:10 +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 [serverless] Add Advanced Settings page (#167383) 2023-09-29 08:48:37 -07: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] Navigate to create new policy page from the editor (#167012) 2023-09-27 02:58:06 -07:00
kbn-object-versioning [CM] Onboard maps to cross-type search (#155148) 2023-04-21 07:41:08 -07:00
kbn-openapi-generator [Security Solution] Extract OpenAPI codegen to a package (#166269) 2023-09-25 10:51:40 +02:00
kbn-optimizer [Drift] Enable chat globally + A/B test for pages where the chat was available before (#167069) 2023-10-01 16:07:11 +02: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] Removing Profiling dependency from APM (#166253) 2023-09-22 09:16:48 +01: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-resizable-layout [Discover] Add resize support to the Discover field list sidebar (#167066) 2023-09-27 21:52:25 -03: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] Mark disabled alerts as Untracked in both Stack and o11y (#164788) 2023-09-27 15:28:03 -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] Serverless Getting Started UI Polish (#167118) 2023-09-25 13:11:12 -07:00
kbn-search-connectors [Search] Add extraction service RCF to native connectors (#167527) 2023-09-29 14:05:22 +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 [DE][Exceptions] Allow numerous match_any values that differ in case (#167208) 2023-09-28 17:52:39 -07: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.5.0 (#166868) 2023-09-27 13:04:45 -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][Detection Engine] adds ES|QL rule type to Security Detections rules (#165450) 2023-09-30 09:45:34 +01: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][Detection Engine] adds ES|QL rule type to Security Detections rules (#165450) 2023-09-30 09:45:34 +01:00
kbn-securitysolution-t-grid Upgrade EUI to v86.0.0 (#163088) 2023-08-14 15:45:09 -05:00
kbn-securitysolution-utils [Security Solution][Detection Engine] adds ES|QL rule type to Security Detections rules (#165450) 2023-09-30 09:45:34 +01: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 [Dashboard Navigation] Make links panel available under technical preview (#166896) 2023-09-29 08:25:51 -06: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] Navigate to create new policy page from the editor (#167012) 2023-09-27 02:58:06 -07: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 Fix typecheck foundations (#167060) 2023-09-25 16:28:56 -07: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 [UnifiedDataTable] Add gridStyle override support (#166994) 2023-09-26 14:42:10 -07:00
kbn-unified-doc-viewer [Unified Doc Viewer] Exclude static style assets from Unified Doc Viewer tree shaking (#167199) 2023-09-26 16:09:44 -03:00
kbn-unified-field-list [Discover] Use new icons for the sidebar toggle button (#167625) 2023-09-30 10:47:56 +02:00
kbn-url-state [Security Solution] Fix missing hash in sync to url (#166847) 2023-09-22 10:23:50 +02: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 Upgrade EUI to v88.5.0 (#166868) 2023-09-27 13:04:45 -05: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 Project Side Navigation: Use EuiCollapsibleNavBeta component (#164910) 2023-09-27 14:22:46 -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.