## Summary
This PR is part of a list of PRs to perform the changes necessary to get
the new Borealis theme working correctly. It focuses on replacing the
deprecated color variables with the new ones:
#### previous color token -> new color token:
- primaryText -> textPrimary
- accentText -> textAccent
- warningText -> textWarning
- dangerText -> textDanger
- text -> textParagraph
- title -> textHeading
- subduedText -> textSubdued
- disabledText -> textDisabled
No UI changes are visible.
https://github.com/elastic/kibana/issues/201881
Adds logic to support the jest vscode extension by reading the
`--testPathPattern` arg for the purpose of config lookup. This enables
running tests easily in the vscode jest extension.
## Summary
Part of #195211
In preparation for the horizontal rule form layout, move the generation
of the rule form steps into three hooks:
- `useCommonRuleFormSteps`: private hook that generates a series of
objects specifying the rule form steps, how to display them, and what
order to display them in
- `useRuleFormSteps`: hook that calls `useCommonRuleFormSteps` and
transforms them into data for the standard vertical `EuiSteps`, along
with progress tracking based on `onBlur` events
- `useRuleFormHorizontalSteps`: hook that calls hook that calls
`useCommonRuleFormSteps` and transforms them into data for
`EuiStepsHorizontal`, plus navigation functions. ***These will be used
in the smaller rule form flyout in a second PR***
Because `EuiStepsHorizontal` rely more heavily on the `EuiSteps`
`status` property, I took this opportunity to improve progress tracking
in the standard vertical steps. Most rule types will load the create
page with Step 1: Rule Definition already being in a `danger` state,
because an incomplete rule definition component immediately sends
errors, and the error API doesn't distinguish between invalid data or
incomplete data.
This PR wraps each step in a `reportOnBlur` higher-order component,
which will report the first time a step triggers an `onBlur` event.
Steps with errors will now report `incomplete` until they first trigger
an `onBlur`. The result:
1. The user loads the Create Rule page. Rule Definition is marked
`incomplete`
2. The user interacts with Rule Definition, but does not yet complete
the definition.
3. The user interacts with the Actions step, the Rule Details step, or
another part of the page. The Rule Definition is now marked `danger`.
This is inelegant compared to an error API that can actually distinguish
between an incomplete form and an invalid form, but it's an improvement
for now.
---------
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
## Summary
Upgrades the stylelint package to 14.16.1
I ran into https://github.com/stylelint/stylelint/issues/6304 when
trying to add an `@container` query in an scss file. This bug was fixed
in stylelint 14.12.0. While taking the opportunity to upgrade, I figured
I'd bump us to the most recent minor 14.x version.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
### Stack Connectors changes
- Added new method to the Microsoft Defender for Endpoint connector to
retrieve list of Machines
### Security Solution
- Added support for retrieving the status of Microsoft Defender agents
## Summary
Should fix TS check error `Project references may not form a circular
graph` by removing `@kbn/test-suites-xpack` from `kbn-scout` dependency
list.
Since dockerImage for Fleet package registry is just a constant, that is
used across different FTR and Scout configurations, it makes sense to
export it from `kbn-test`
Fixing the case a relative time range is set (for example "Last 15 minutes") and the time range goes out of sync for table and histogram requests on Discover in ES|QL mode.
Fixes a redundant ES|QL request for histogram data, with different timeranges, when the timerange is changed.
## Summary
Summarize your PR. If it involves visual changes include a screenshot or
gif.
## Changes
* Adds `enableExperimental` to server `configSchema`
* Makes feature flags configurable via
`xpack.cloudSecurityPosture.enableExperimental` in `kibana.dev.yml`
* Implements `ExperimentFeatureService.get()` for accessing feature
flags
* Add passing `initliaterContext` to plugin in order to access our
plugin config
## Benefits
* Avoids circular dependency with Security Solution
`useIsExperimentalFeatureEnabled` and prop drilling feature flags from
Fleet plugin `PackagePolicyReplaceDefineStepExtensionComponentProps`
* Provides server-side configuration support
* Enables pre-release feature testing
* Creates centralized feature flag management
This allows controlled testing of new features before release through
configuration rather than code changes.
---------
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
## Summary
This fixes bad typings for `chartProps` from
https://github.com/elastic/kibana/pull/202405. At some point we started
passing the eui theme to the chart props in
`x-pack/solutions/observability/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx`.
The `chartProps.theme` is meant only to be the chart `PartialTheme`
which can override settings from the `baseTheme`.
## Summary
* Introducing new locator for onboarding `search_indices` plugin index
details page - `SEARCH_INDEX_DETAILS_LOCATOR_ID`.
* In stack, Updated view index details usage(connector table, connector
details page, search application & web crawler) to use this locator to
navigate to onboarding index details page ONLY when its `search -
Elasticsearch solution nav`
* Index management view index details would use extensionService with
active solution id check in search_indices plugin
* verified locally existing FTR & unit tests
* Added FTR for index management in functional_search tests for search
solution nav and classic nav
https://github.com/user-attachments/assets/8f0fea00-3dce-449e-805a-b3cf317f4066
### Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
- [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] [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
#### This is a second PR, I migrated relevant code changes here after
closing the previous one. You may read the comments history
[here](https://github.com/elastic/kibana/pull/205781).
## Summary
This PR fixes [Make Help dropdown consistent across all
environments](https://github.com/elastic/kibana/issues/199465) issue.
Since we need to make dropdown consistent also in the cloud, I will
firstly merge this PR, and then deal with the Cloud part by either
opening PR in that repo, or reach out to the responsible team showcasing
changes in Kibana and ask them to implement the changes.
This is how the dropdown is displayed currently (1st screenshot) and how
it will be looking with my changes (2nd screenshot).
After discussing the design with @ek-so and trying out different
variants, this seems to be the most suitable and universal.
The changes include refactoring usage or relevant Eui components and
removing the displaying of icons in the general menu dropdown (while
keeping this functionality of adding icons to the solutions additional
menu dropdown items).
<img width="330" alt="Screenshot 2025-01-07 at 13 07 49"
src="https://github.com/user-attachments/assets/a01a4966-dc6d-4c7c-86c2-4588960237f1"
/>
<img width="346" alt="Screenshot 2025-01-09 at 15 22 36"
src="https://github.com/user-attachments/assets/e9512a49-91b4-49fe-913b-f6bc70bfe1cc"
/>
### Authz API migration for unauthorized routes
This PR migrates unauthorized routes owned by your team to a new
security configuration.
Please refer to the documentation for more information: [Authorization
API](https://docs.elastic.dev/kibana-dev-docs/key-concepts/security-api-authorization)
### **Before migration:**
```ts
router.get({
path: '/api/path',
...
}, handler);
```
### **After migration:**
```ts
router.get({
path: '/api/path',
security: {
authz: {
enabled: false,
reason: 'This route is opted out from authorization because ...',
},
},
...
}, handler);
```
### What to do next?
1. Review the changes in this PR.
2. Elaborate on the reasoning to opt-out of authorization.
3. Routes without a compelling reason to opt-out of authorization should
plan to introduce them as soon as possible.
2. You might need to update your tests to reflect the new security
configuration:
- If you have snapshot tests that include the route definition.
## Any questions?
If you have any questions or need help with API authorization, please
reach out to the `@elastic/kibana-security` team.
---------
Co-authored-by: Eyo Okon Eyo <eyo.eyo@elastic.co>
## Summary
This PR fixes [Annotation groups Listing Page
Papercuts](https://github.com/elastic/kibana/issues/198731) and
[Dashboard Listing Page
Papercuts](https://github.com/elastic/kibana/issues/198728) issues.
1. Changed the name of the first column
2. Fixed edit icon being invisible while editing functionality is
available.
In the past the logic was different - hiding of icon was happening based
on `isEditable(item)` property, and in the [[Managed content] readonly
in library
views](https://github.com/elastic/kibana/pull/176263/files#diff-e442682471f1021a9126ddcad7e00a0d334e57ac8db512c1c3268e14ecac0074L552)
PR the logic was changed to depend on adding a key `{ edit: { enabled:
false }` if there is a need to hide the Edit button. What happened is
that the logic should be -> If you don't want to show the Edit icon, add
`{ edit: { enabled: false }`, but in the current code, although there is
no such key, the pencil stays invisible, because the
`Boolean(tableItemsRowActions[item.id]?.edit?.enabled)` resolved to
`false` when it is `undefined` (when the Edit functionality isn't
disabled.) In this PR I propose an adjustment to this line of code.
3. Changed the View Details icon.
4. Show Reload page toast when a user changes preferred
`savedObjects:perPage` in Advanced Settings.
5. Fix sorting algorithm that was sorting incorrectly if the preferred
`savedObjects:perPage` was less than 10.
<img width="237" alt="Screenshot 2025-01-09 at 13 44 39"
src="https://github.com/user-attachments/assets/77a6fd45-8845-4b06-818c-0af0dc01ede9"
/>
<img width="243" alt="Screenshot 2025-01-09 at 13 43 30"
src="https://github.com/user-attachments/assets/3d9e03da-94dd-4e31-b33a-eb81e71b69dd"
/>
## Summary
Fixes https://github.com/elastic/kibana/issues/206016
This PR aims to fix a flaky test that waits for an empty state screen,
which sometimes fails to appear.
The issue might happen because the data deletion action, which triggers
the empty state, is not completed properly. This action takes place in
the previous test and does not wait for the deletion to finish.
The proposed solution ensures that the test responsible for deleting the
data waits until the empty state appears after deletion, preventing the
next test from running too soon.
### Test locally
`````
node x-pack/solutions/observability/plugins/apm/scripts/test/e2e.js --server
node x-pack/solutions/observability/plugins/apm/scripts/test/e2e.js --runner --open
`````
Run the
[custom_links.cy.ts](http://localhost:5620/__/#/specs/runner?file=cypress/e2e/settings/custom_links.cy.ts)
test.
## 📓 Summary
Part of #https://github.com/elastic/streams-program/issues/32
This work implements a UI for basic stream enrichment, supporting grok
and dissect processor + detected fields mapping.
The main features implemented in this PR consist of:
- **Sortable processors list**
- **Add new processor - Grok, Dissect**
- Ad-hoc forms for each processor
- Simulated document outcome with extracted fields
- Filter matching documents with parsed fields
- Mapping detected fields (only available for wired streams)
- **Edit processor**
- Change configuration only
- Delete processor CTA
As a side quest, I added a small package for object utils as
@simianhacker suggested.
`@kbn/object-utils` exposes `calculateObjectDiff` and `flattenObject` to
detect the changed fields in a simulation.
## 🔜 Follow-up work
I'll work on minor updates on top of this MVP to make this available for
further testing from the team.
The next steps will be:
- **Tests** for features that consolidate on the functional pov.
- Better field mapping detection and UI feedback (infer the type of the
detected field, currently always unmapped)
- Add better form validation and feedback for processor configuration.
As discussed offline, state management is purely based on the built-in
react APIs + react-hook-form. It could be improved with different
approaches, including a more solid state management library to make it
easier to maintain and bulletproof to race conditions. No state syncs
with the URL currently.
## 🎥 Demo
https://github.com/user-attachments/assets/a48fade9-f5aa-4270-bb19-d91d1eed822b
---------
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
* Fix an issue with the `--list` command failing the 1st run.
* Allow passing in no filters, and relocate "incorrect" modules (aka
modules that are not in the correct folder) in that case.