## Summary
Closes#162263
Introduces a new `Feature Privileges` section to the developer
documentation. The documentation includes a tutorial on how to control
access to features of plugin being developed. Introduces a few sections:
- Controlling access to UI features
- Controlling access to server side APIs
- Documentation for configuration options
## Testing
To build this locally, run ./scripts/dev_docs from a local checkout of
this PR. A server will eventually start on http://localhost:3000 where
you can preview the changes.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for Platform Deployment Management.
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## 📓 Summary
Closes#167011
This implementation fixes the persisted beta badge after leaving the Log
Explorer profile, restoring any existing element on the mount point as a
clean-up action.
3214e097-2c82-4b09-8310-ad09eb4c5a18
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for ML UI.
---------
Co-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>
## Summary
When a user is writing am ES|QL query with the enrich command and
doesn't have a policy then we want to navigate them from the editor to
the index management page to create one.
In the future the same action can open a flyout in order for the users
to not change context but we don't have it atm.

---------
Co-authored-by: Marco Liberati <dej611@users.noreply.github.com>
This PR addresses requested changes to the UI/UX part of Protection
Updates tab on policy detail view. Previously we were automatically
saving `global_manifest_version` on "toggle on" state. With these
changes a bottom bar, mimicking Policy settings tab, with a save button
that is active whenever changes were made was introduced.
98c43bbd-1ee2-4fbd-8105-2bb5fcdbc4af
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for Infra UI.
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for Enterprise Search Frontend.
---------
Co-authored-by: Alex Szabo <alex.szabo@elastic.co>
## Summary
Partially addresses https://github.com/elastic/kibana/issues/46410
Stops using `kuiTextInput` CSS class name in `number_parameter.js` and
`string_paramter.js` components in the `home` plugin.
How to test? I don't know if these parameters are still used, so to test
this apply this patch:
```diff
diff --git a/src/plugins/home/public/application/components/tutorial/instruction_set.js b/src/plugins/home/public/application/components/tutorial/instruction_set.js
index 651212f062c..7f2077a322d 100644
--- a/src/plugins/home/public/application/components/tutorial/instruction_set.js
+++ b/src/plugins/home/public/application/components/tutorial/instruction_set.js
@@ -261,14 +261,20 @@ class InstructionSetUi extends React.Component {
render() {
let paramsForm;
- if (this.props.params && this.state.isParamFormVisible) {
+ if (true) {
paramsForm = (
<>
+ PARAMETER FORM
<EuiSpacer />
<ParameterForm
- params={this.props.params}
- paramValues={this.props.paramValues}
- setParameter={this.props.setParameter}
+ params={[
+ { id: 'test', label: 'test', type: 'string' },
+ { id: 'test2', label: 'test2', type: 'number'}
+ ]}
+ paramValues={{ test: 'test', test2: 123 }}
+ setParameter={(id, value) => {
+ console.log('setParameter', id, value);
+ }}
/>
</>
);
```
And go to `/app/home#/tutorial/apm` page, you will see the new parameter
input look there:
<img width="478" alt="image"
src="ba3a3dce-c2d5-41db-a7e8-24bf6caeb16b">
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
`OBSERVABILITY_ONBOARDING_LOCATOR` and
`ObservabilityOnboardingLocatorParams` were removed from
`observability_onboarding` plugin in
[#165962](https://github.com/elastic/kibana/pull/165962) and are now
part of `@kbn/deeplinks-observability/locators`.
`datsetName` was transformed into an optional variable in the wizard
state in [#166654](https://github.com/elastic/kibana/pull/166654) which
makes sense for first step of custom logs onboarding but it's required
in onboarding saved object.
Removed `isServerless` flag which lived in our global context and had to
be passed about to the various components which create their own version
of the context using `getMlGlobalServices`
This PR adds a new context which contains flags for all of the features
which can be toggled when in serverless mode.
Flags added:
```
showNodeInfo
showMLNavMenu
showLicenseInfo
isADEnabled
isDFAEnabled
isNLPEnabled
```
The enabled features flags are now read from the config file client
side, rather than using capabilities.
Additional changes:
- Changes the wording of the awaiting ML node callout in serverless.
- In the search project, the default ML page is the trained models list
and not Overview
- Reenables the Memory Usage page for all projects
---------
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for AppEx SharedUX.
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for APM UI.
Closes https://github.com/elastic/kibana/issues/166021
Closes https://github.com/elastic/kibana/issues/163381
This PR adds inspector cluster tab MVP
This PR does not:
1) include all UI elements in design. These will be added at later
dates.
2) show clusters tab when request fails. Somewhere between kibana server
elasticsearch request and the client, the raw response is getting
removed for failed requests. This will have to be sorted out in a
separate PR.
3) Opening clusters tab from "incomplete data" warnings
### Test setup
1. Start remote elasticsearch by running: `yarn es snapshot -E
transport.port=9500 -E http.port=9201 -E path.data=../remote1`
2. Install sample data to remote cluster
1. Add `elasticsearch.hosts: ["http://localhost:9201"]` to
kibana.dev.yml. **Note** create `config/kibana.dev.yml` if one does not
exist. kibana.dev.yml is not managed by git so it has to be created the
first time you add values.
2. run `yarn start` to start kibana process
3. install sample web logs data set on home page
4. install sample flight data set on home page
5. stop kibana process
6. remove `elasticsearch.hosts` from kibana.dev.yml
3. Start local elasticsearch by running: `yarn es snapshot -E
path.data=../local1`
4. Start kibana
5. Add remote cluster under "Stack management -> Remote clusters"
1. Set **Name** to "remote1"
2. Set **Seed nodes** to "localhost:9500"
3. Enable **Skip if unavailable**
5. install sample web logs data set
6. install sample flights data set
7. Create data view.
1. Set **Index pattern** to
`kibana_sample_data*,remote1:kibana_sample_data*`
2. Set **Time field** to `timestamp`
### Local cluster (status=successful)
1) Open discover
2) Select "Kibana sample data logs" data view
3) Open inspector
4) Open clusters tab
<img width="300" alt="Screen Shot 2023-09-22 at 9 38 38 AM"
src="e4e91555-8200-43bc-b2fe-7739f7178e43">
### Remote cluster (status=successful)
1) Open discover
2) Select "kibana_sample_data*,remote1:kibana_sample_data*" data view
3) Open inspector
4) Open clusters tab
<img width="300" alt="Screen Shot 2023-09-22 at 9 47 08 AM"
src="676897fc-e7e2-4c0b-8e35-c382c6ac89d6">
### Remote cluster (status=partial, failed shard)
1) Open discover
2) Select "kibana_sample_data*,remote1:kibana_sample_data*" data view
3) Add filter
```
{
"error_query": {
"indices": [
{
"error_type": "exception",
"message": "local shard failure message 123",
"name": "remote1:kibana_sample_data_logs",
"shard_ids": [
0
]
}
]
}
}
```
3) Open inspector
4) Open clusters tab
<img width="300" alt="Screen Shot 2023-09-22 at 9 50 49 AM"
src="6935f2b4-60ad-4704-8ee0-17890ca9d83a">
<img width="300" alt="Screen Shot 2023-09-22 at 9 51 12 AM"
src="ec0a6b4a-177f-40fd-96b3-c56102d5f425">
### Remote cluster (status=skipped, all shards fail)
1) Open discover
2) Select "kibana_sample_data*,remote1:kibana_sample_data*" data view
3) Add filter
```
{
"error_query": {
"indices": [
{
"error_type": "exception",
"message": "local shard failure message 123",
"name": "remote1:*",
"shard_ids": [
0
]
}
]
}
}
```
3) Open inspector
4) Open clusters tab
<img width="300" alt="Screen Shot 2023-09-22 at 9 52 49 AM"
src="a1ba947b-3cd1-4416-9756-29f3960a4ba6">
### Remote cluster (status=skipped, no remote)
1) Open discover
2) Kill process running remote1 elasticsearch
3) Select "kibana_sample_data*,remote1:kibana_sample_data*" data view
4) Open inspector
5) Open clusters tab
<img width="300" alt="Screen Shot 2023-09-22 at 9 55 45 AM"
src="f049b617-96e1-4ecc-bfeb-f75522f70fef">
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes for Kibana Presenation.
## Summary
We're breaking https://github.com/elastic/kibana/pull/166813 up into
smaller PRs in the interest of getting PRs through sooner for type
fixes. These are the changes related to syncing EUI deps.
## Summary
This PR adds data drift detection workflow from Trained models to Data
comparison view. It also renames Data comparison to Data Drift.
**From the new map view in Trained model list:**
- Clicking on the index icon in the map view will give an option/action
to Analyze data drift
a68163ab-8a83-4378-8cf3-ea49f4480a06
- If model has detected related indices, it will also give an option to
Analyze data drift in the Transform actions
**From the data comparison/drift page:**
- Default screen with list of available data views and saved search will
be shown
<img width="1470" alt="Screen Shot 2023-09-07 at 00 22 01"
src="db13b8b7-9d90-4220-b03e-9f9d12ab53e9">
- But can also customize index patterns for the data sets to analyze.
Upon 'analyzing', a new data view will be created if needed (either
permanently or temporarily).
<img width="1271" alt="Screen Shot 2023-08-29 at 16 56 57"
src="e000e920-162b-4369-8762-70b6244e50e7">
<img width="1470" alt="Screen Shot 2023-09-07 at 00 22 49"
src="6577a530-c3b0-4ab9-95e4-d1d8fd1c9f0a">
- If there exists a data view with exact combination of index patterns
and time field, it will use that data view
- If there exists a data view with the same index patterns but different
time field, it will create a new data view with name
`{referencePattern},{comparisonPattern}-{timeField}`
- If no data view exists that matches, it will create a new data view
with name `{referencePattern},{comparisonPattern}`
## For reviewers:
- **appex-sharedux**: [Small change in the exported type interface for
BaseSavedObjectFinder](https://github.com/elastic/kibana/pull/162853/files#diff-5e2e62df8aba5ac9445962bfa00eee933a386110d0a24dfe6ac0f300a796ccc3)
to correctly list `children` as an accepted prop. This prop which is
used for the `toolsRight`.
- **security-solution**: Renaming of `Data comparison` to `Data Drift`
## Tests:
[Flaky test suite runner with Data Drift
test](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3216#018accc2-d33b-4cd6-a178-589e6698b675)
... successful after 50 runs✅
### Checklist
Delete any items that are not applicable to this PR.
- [ ] Any text added [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)
- [ ]
[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
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
### Risk Matrix
Delete this section if it is not applicable to this PR.
Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.
When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces—unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes—Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Fixes https://github.com/elastic/kibana/issues/164369
### Acceptance criteria
- use KibanaThemeProvider from @kbn/react-kibana-context-theme for the
App component
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Resolves https://github.com/elastic/kibana/issues/159347
Part of https://github.com/elastic/kibana/issues/155764
In this PR, I'm forcing validation on any tasks using state by ensuring
a state schema is defined by the task type. Without this schema and once
this PR merges, Task Manager will now fail validation by throwing
`[TaskValidator] stateSchemaByVersion not defined for task type: XYZ`
errors. This forces an explicit schema to be defined so we can properly
handle state objects in ZDT environments.
---------
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
## Summary
This PR fixes the errors of the type checkers on some of the Management
team's plugins.
The errors were identified by running the command `node
scripts/type_check --project <path-to-tsconfig.json>` with these files
as suggested by the Operations team:
- ./packages/kbn-generate-console-definitions/tsconfig.json
- ./src/plugins/console/tsconfig.json
- ./packages/kbn-management/settings/components/field_row/tsconfig.json
Adds `created_by` property of `advanced-wizard` to all jobs created by
the advanced job wizard.
Previously no `created_by` property was added to these jobs.
When cloning, jobs with no `created_by` property or one with a value of
`advanced-wizard` will be opened in the advanced wizard.
Closes https://github.com/elastic/kibana/issues/166053
## 📓 Summary
These changes fix the type-check issues related to infra obs UI code.
It also includes some fixes for the APM plugin that were stopping the
check step from passing.
---------
Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
Redesigns the copy to dashboard modal and the Dashboard picker element to fix some UX issues they were causing.
Makes panels copied with the `copy panel to` dialog retain their original sizes.
## Summary
Address #166459
This PR scaffolds telemetry into the notification service, to enable
reporting when deduped toasts are dismissed. When a deduped toast is
dismissed; the message recurrence count and the toast message would be
emitted.
Telemetry Event Definition;
```typescript
{
eventType: "global_toast_list_toast_dismissed",
schema: {
"toast_deduplication_count": {
type: "long",
_meta: {
description: "toast message text"
}
},
"toast_message": {
type: "keyword",
_meta: {
description: "recurrence count for particular toast message"
}
},
"toast_message_type": {
type: "keyword",
_meta: {
description: "toast message type, accepted values are warning, danger, primary"
}
}
}
}
```
Testing;
- Ensure you have an existing dashboard, if you don't installing any
sample data would bootstrap a dashboard automatically
- Search for `visualize library` from the global search bar, and
navigate to visualize library.
- Attempt to create a visualization, select the `TSVB` visualization
type. At this step there typically wouldn't be an error
- We can simulate an error, by open Dev tools and blocking the URL
`/internal/metrics/vis/data` like so <img width="604" alt="Screenshot
2023-09-21 at 11 49 41"
src="ad320569-33b2-4335-8052-981d1761ea67">
on doing this, we then attempt refreshing the query, we would then be
presented with an error toast, similar to the screenshot below;
<img width="482" alt="Screenshot 2023-09-21 at 11 52 51"
src="fef07e72-625b-4457-abc3-9214d64f9e48">
click the refresh query button as much as you like to increase it's
recurrence count.
- From here on we verify that; clicking the dismiss button sends a
telemetry event, also not interacting with the toast and it's display
lifetime elapsing with the toast clearing itself, the telemetry gets
sent still. In either case there should be a request calling the
resource `kibana_browser` with a payload containing the telemetry event
definition above.
### Checklist
<!-- Delete any items that are not applicable to this PR. -->
- [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
<!-- - [ ] Any UI touched in this PR is usable by keyboard only (learn
more about [keyboard
accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ->
### Risk Matrix
Delete this section if it is not applicable to this PR.
Before closing this PR, invite QA, stakeholders, and other developers to
identify risks that should be tested prior to the change/feature
release.
When forming the risk matrix, consider some of the following examples
and how they may potentially impact the change:
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Multiple Spaces—unexpected behavior in non-default Kibana Space.
| Low | High | Integration tests will verify that all features are still
supported in non-default Kibana Space and when user switches between
spaces. |
| Multiple nodes—Elasticsearch polling might have race conditions
when multiple Kibana nodes are polling for the same tasks. | High | Low
| Tasks are idempotent, so executing them multiple times will not result
in logical error, but will degrade performance. To test for this case we
add plenty of unit tests around this logic and document manual testing
procedure. |
| Code should gracefully handle cases when feature X or plugin Y are
disabled. | Medium | High | Unit tests will verify that any feature flag
or plugin combination still results in our service operational. |
| [See more potential risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Summary
The full typecheck would definitely fail on the on_merge job, and the
selective typecheck doesn't make much sense (if it was already through
that step in the PR.) so we're temporarily disabling this step
completely.
## Summary
With the serverless circuit breakers we're setting, we could see delays
up to 64 minutes so we need to increase the max bucket allowed when
capturing task run delays.