Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate UI 2 #1

Closed
wants to merge 231 commits into from
Closed

Investigate UI 2 #1

wants to merge 231 commits into from

Conversation

kdelemme
Copy link
Owner

Work in progress.
Requires to change the base branch to kibana/main when elastic#187936 is merged !

shahzad31 and others added 6 commits July 16, 2024 15:32
Not sure why it was importing from os-query !!
…lastic#188112)

part of [3628](elastic/observability-dev#3628)
- private

## Summary

After adding 20 items, users can no longer add more fields and will see
the message below


<img width="1725" alt="image"
src="https://github.com/elastic/kibana/assets/2767137/fd504212-0e0f-485d-a8fe-b991c829950e">


### Extra

- There was an unused and duplicate `metrics_explorer` route in infra. I
removed it. It should've been removed when the `metrics_data_access`
plugin was created.
- Cleaned up `constants` field in `metrics_data_access` and `infra`
plugins

### How to test

- Start a local Kibana instance pointing to an oblt cluster
- Navigate to Infrastructure > Metrics Explorer
- Try to select more than 20 fields in the metrics field

---------

Co-authored-by: Elastic Machine <[email protected]>
Co-authored-by: kibanamachine <[email protected]>
delanni and others added 23 commits July 16, 2024 16:14
## Summary
Another attempt to fix the DRY_RUN-enhanced publish call - as it seems
simply emitting the script only works if there are no arguments.

Fixes:
https://buildkite.com/elastic/kibana-artifacts-snapshot/builds/4488#01909cf6-71a4-4608-a830-041af9d781d9
Tested here:
https://buildkite.com/elastic/kibana-artifacts-snapshot/builds/4490 (the
dry-run is supposedly added? but it seems the artifacts were published
nonetheless - at least there's no more syntax error)

Succesful run with the if-else:
https://buildkite.com/elastic/kibana-artifacts-snapshot/builds/4516
PR implements chaining for refactored control group

---------

Co-authored-by: Elastic Machine <[email protected]>
The upload build artifacts step matches on a glob, which now resolves to
two distributions, breaking future commands. This swaps find for the
specific distribution.
…maly action menu (elastic#187801)

## Summary

Related meta issue elastic#182235

- Adds tests for click action on anomaly markers in the single metric
viewer embeddable


### 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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed

---------

Co-authored-by: Elastic Machine <[email protected]>
Closes elastic#183776

## Summary

This PR adds support for the `allow_write_after_shrink` field in the
"Shrink" section of the Hot and Warm phase advanced settings.

<img width="933" alt="Screenshot 2024-07-11 at 15 36 30"
src="https://github.com/elastic/kibana/assets/59341489/3a4459d4-2ba3-405f-85f3-9deb6d1c4f35">



https://github.com/elastic/kibana/assets/59341489/1bae2659-dae1-452a-a7ec-5279a70e76f9



### Checklist

- [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] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] 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))
- [x] 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))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

Co-authored-by: Elastic Machine <[email protected]>
Pipeline steps will be added in a followup PR, this only creates the
pipeline.
## Summary

Fixes elastic#188330 

Caused by eui upgrade:
elastic/eui@b1370af

It's an ugly solution, but I couldn't find any other :( 

After the fix:

<img width="1258" alt="Screenshot 2024-07-16 at 17 09 44"
src="https://github.com/user-attachments/assets/d0678e23-d7bd-4e18-b906-a0202c4aaadc">
…out the required privileges (elastic#188433)

## Summary

We were wrongly showing note creation/deletion buttons to users without
crud privileges. The backend was actually taking the privileges into
account and the notes were only created locally.

As a fix, we're now checking for privileges before showing the
creation/deletion user interface:

<img width="561" alt="Screenshot 2024-07-16 at 15 00 23"
src="https://github.com/user-attachments/assets/2b60d793-9fe3-4294-a2b7-e7a2d27e4d42">

Related issue: elastic#188290

### 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
…be refreshed (elastic#187736)

fixes [187381](elastic#187381)

## Summary

This PR creates a centralized mechanism that provides more control to
make API calls. The mechanism is based on the `use_fetcher` from APM.

### Main Changes
- Creation of a context to manage the search session to be utilized to
control API calls
- Replacement of the `use_http_request` hook with a new one called
`use_fetcher`, with a similar interface to that from APM, but with infra
specificities, which connects with the search session context and
centralizes the logic around API calls across infra.
- Removal of hooks that had the sole purpose of encapsulating API calls
and were not reused in other places, eg: use_processes_list,
use_services, etc. They seemed to have been created to isolate the
`use_http_request` hook calls, which didn't have a friendly interface.
- As a consequence of replacing `use_http_request `with `use_fetcher`,
the anomaly detection hooks and `anomaly_table` component had to be
adjusted.
 - Adjustment in the Asset Details auto-refresh functionality


### Notes
- The Universal Profiling tab doesn't work so nicely with auto refresh
on - to be addressed in another ticket
- Embeddables such as Alerts and Logs won't refresh if absolute dates
are used.
- Metrics Explorer uses `react-query`, and `use_fetch` interface is very
similar. I didn't replace it, but ideally, we should have a single way
of making API calls, and `react-query` is a great option.

---
### Asset Details


https://github.com/elastic/kibana/assets/2767137/b9b4f497-1cad-4196-bcc3-7f8e48369c18



https://github.com/elastic/kibana/assets/2767137/489a6847-03dd-4fcb-b8fd-71231f6d6c47



https://github.com/elastic/kibana/assets/2767137/190df612-23d2-4624-a97d-dfcea4d15e69

---
### Hosts View

https://github.com/elastic/kibana/assets/2767137/01e7fd9e-4170-4692-8e20-9b3181a2d00c

---
### Legacy Node Details Page


https://github.com/elastic/kibana/assets/2767137/7f67c894-5252-4117-927b-9fbb0f77b274

---
### Inventory


https://github.com/elastic/kibana/assets/2767137/4b51be5d-9f28-4292-880d-e3c23737793e



https://github.com/elastic/kibana/assets/2767137/500eb815-5f1c-4fe5-8d6f-e09d22547c62



### How to test
- Set up a local kibana
- Navigate to Inventory, Hosts, open the Asset Details flyout, open the
Asset Details full page, and interact with the date picker/search bar in
all of these pages

---------

Co-authored-by: Elastic Machine <[email protected]>
This API call was found to be sporadically failing in elastic#182183. This
applies the same changes made in elastic#188155, but for Cypress tests instead
of FTR.

Since none of the cypress tests are currently skipped, this PR just
serves to add robustness to the suite, which performs nearly identical
setup to that of the FTR tests. I think the biggest difference is how
often these tests are run vs FTRs. Combined with the low failure rate
for the underlying issue, cypress's auto-retrying may smooth over many
of these failures when they occur.


### 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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] [Detection Engine Cypress - ESS x
200](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/6530)
- [ ] [Detection Engine Cypress - Serverless x
200](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/6531)
)

## Summary

This PR updates test case to reflect that should return columns with
metadata if both name and type match with ECS fields (and doesn't need
`ecs.version` field in the dataset)


### Checklist

Delete any items that are not applicable to this PR.

- [ ] 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)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] 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&mdash;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&mdash;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)
…astic#188343)

fixes elastic/observability-dev#3736
## Summary

Initially, the new entity experience view was enabled if the entity data
transform was activated.

However, this is not the desired behavior: when reverting to the classic
view, the entity definition was being deleted. Return to the classic
view should only affect the individual user.

- The entity definition resides on the cluster.
- The entity centric experience feature flag is set per space.
- The entity view is set **per browser.**

### Changes
- The new view (`isEntityCentricExperienceViewEnabled`) is now
determined by checking entity manager enablement, feature flag, **and
local storage.**
- Restoring the classic view no longer deletes the data transforms.


https://github.com/user-attachments/assets/e45ba1c8-9cbb-44a1-96fc-68de5ba992c6

---------

Co-authored-by: Jenny <[email protected]>
Gemini connector logo is missing some classes to give it the necessary
styles and so it is misaligned:

(notice text is too high due to missing top margin in the icon)
<img width="1271" alt="Screenshot 2024-07-16 at 1 41 02 PM"
src="https://github.com/user-attachments/assets/c1516b49-c491-49fc-ae30-120029277b17">

This PR will give the logo the top margin:
<img width="1251" alt="Screenshot 2024-07-16 at 1 40 34 PM"
src="https://github.com/user-attachments/assets/ce385133-12a5-4168-9cb4-b1b9c49f789f">
jbudz and others added 6 commits July 22, 2024 08:20
…esponses (elastic#188632)

## Summary

* Adds the ability to exclude a response schema when declaring route
schemas
* Adds the ability to provide a description of a the response

See code comments for more info.

## Example

You can declare a response with no validation to imply an empty object
in OAS

```
router.versioned.post({ version: '2023-10-31', access: 'public', path: '...' })
  .addVersion({
    validation: {
      responses: {
        201: { description: 'Resource created!' }
      }
    }
  }, () => {})
```

Will result in

```jsonc
{
 //...
  201: { description: 'Resource created!' }
 //...
}
```

## Risks

No notable risks
## Summary

Fix elastic#57273

Include the `. i18nrc.json` file when bundling 3rd party plugins
@mgiota mgiota force-pushed the investigate-ui-2 branch from fa90ef8 to ddda57b Compare July 22, 2024 14:07
drewdaemon and others added 17 commits July 22, 2024 09:25
## Summary

Part of elastic#188677

Monaco editor has different [kinds of completion
triggers](https://microsoft.github.io/monaco-editor/typedoc/enums/languages.CompletionTriggerKind.html).
However, the current tests only validate the "TriggerCharacter" events.

This PR prepares the tests to support validating "Invoke" as well.

**Note:** It does change many of the tests from a "TriggerCharacter" to
an "Invoke" scenario. I think this is okay because
- there are still plenty of "TriggerCharacter" tests
- it would take a lot of work to update all the tests
- I will be adding a full set of tests to cover both scenarios as part
of elastic#188677
- We may rely less and less on trigger characters in the future

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Stratoula Kalafateli <[email protected]>
…tension of mappings and ingest pipeline (elastic#188410)

## Summary


### Acceptance Criteria

- [x] When starting Kibana, the global entity index templates are no
longer created
- [x] When installing a definition, an index template is generated and
installed scoped to the definition ID
- [x] When deleting a definition, the related index template is also
deleted
- [x] The index template composes the current component templates (base,
entity, event) as well as the new custom component templates with the
setting ignore_missing_component_templates set to true
- [x] The new component templates should be named:
<definition_id>@platform, <definition_id>-history@platform,
<definition_id>-latest@platform, <definition_id>@Custom,
<definition_id>-history@custom and <definition_id>-latest@custom
- [x] The ingest pipelines include a pipeline processor that calls out
the pipelines named <definition_id>@platform and
<definition_id>-history@platform or <definition_id>-latest@platform,
<definition_id>@Custom and <definition_id>-history@custom or
<definition_id>-latest@custom if they exist
- [x] The index template should have a priority of 200 and be set to
managed
- [x] The @Custom component template should take precedence over the
@platform component template, allowing users to override things we have
set if they so wish
- [x] set managed_by to 'elastic_entity_model',


### 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: Kevin Lacabane <[email protected]>
Co-authored-by: Elastic Machine <[email protected]>
…r `execute` response action (elastic#188698)

## Summary

- Fixes the API route for response actions file information and file
download to ensure that user only needs Authz to the Execute action.
- Centralizes the logic to determine the platform for a given host which
was (under certain data conditions) causing the platform icon to not be
shown in the response console.
…on plugin (elastic#188529)

**Relates to:** elastic/security-team#9401

## Summary

Disabling OpenAPI spec linting in elastic#179074 lead to accumulating invalid OpenAPi specs.

This PR enables OpenAPI linting for Security Solution plugin and make appropriate fixes to make the linting pass.

## Details

OpenAPI linting is a part of code generation. It runs automatically but can be disabled via  `skipLinting: true`. Code generation with disabled linting isn't able to catch all possible problems in processing specs.

The majority of problems came from Entity Analytics and Osquery OpenAPI specs. These specs were fixed and refactored to enable code generation and integrate generated artefacts into routes to make sure OpenAPI spec match API endpoints they describe. It helped to catch some subtle inconsistencies.
adduser is used in the deb post install script. Installing kibana.deb in
a container won't have the necessary dependencies by default

Closes elastic#182537

---------

Co-authored-by: Elastic Machine <[email protected]>
## Summary

This PR closes elastic#188171 by
converting the route validate to Zod for `get`, `reset`, and `delete`
APIs. This also changes the validation for the `create` API to use
`buildRouteValidationWithZod` along with adding `strict()` to each of
the schemas.

Closes elastic/elastic-entity-model#103

---------

Co-authored-by: Kevin Lacabane <[email protected]>
## Summary

Follow-up to elastic#188825

@crespocarlos reported that some Oblt configs after missing after
elastic#187440

I was using `node scripts/check_ftr_configs.js` to validate I did not
miss anything and decided to debug the script.

We had a pretty strict config file content validation like
`testRunner|testFiles`, that was skipping some FTR configs like
`x-pack/test/apm_api_integration/basic/config.ts`

I extended file content check to look for default export function and
also skip test/suite or Cypress-own config files.

In the end 7 FTR configs were discovered, but only 2 are with tests. I
will ask owners to confirm if it should be enabled/disabled. Script run
output:

```
node scripts/check_ftr_configs.js
ERROR The following files look like FTR configs which are not listed in one of manifest files:
        - x-pack/plugins/observability_solution/uptime/e2e/config.ts
        - x-pack/test/functional_basic/apps/ml/config.base.ts
        - x-pack/test/functional_basic/apps/transform/config.base.ts
        - x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts
        - x-pack/test_serverless/functional/test_suites/observability/cypress/oblt_config.base.ts

      Make sure to add your new FTR config to the correct manifest file.

      Stateful tests:
      .buildkite/ftr_platform_stateful_configs.yml
      .buildkite/ftr_oblt_stateful_configs.yml
      .buildkite/ftr_security_stateful_configs.yml
      .buildkite/ftr_search_stateful_configs.yml

      Serverless tests:
      .buildkite/ftr_base_serverless_configs.yml
      .buildkite/ftr_oblt_serverless_configs.yml
      .buildkite/ftr_security_serverless_configs.yml
      .buildkite/ftr_search_serverless_configs.yml

ERROR Please add the listed paths to the correct manifest file. If it's not an FTR config, you can add it to the IGNORED_PATHS in packages/kbn-test/src/functional_test_runner/lib/config/run_check_ftr_configs_cli.ts or contact #kibana-operations
```
…ponses (elastic#188631)

Fixes: elastic#180140

## Summary

- Implements normalization of`rule_source` for API responses
- `rule_source` field in API responses is calculated out of the
`immutable` and `ruleSource` fields.

### 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)
elastic#188079)

## Summary

Leftover work from elastic#186615

- Removes remaining usage of `rule_schema_legacy` types. In this PR,
simply inlines the last io-ts types used, to be able to get rid of the
legacy folder.
- The remaining files that need to be migrated to using Zod schema types
are:
-
`x-pack/plugins/security_solution/common/api/detection_engine/rule_exceptions/find_exception_references/find_exception_references_route.ts`
- `x-pack/plugins/security_solution/common/api/timeline/model/api.ts`

### 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: Georgii Gorbachev <[email protected]>
kdelemme pushed a commit that referenced this pull request Sep 12, 2024
Connected to elastic#188187

## Summary

- Changed the cases `Settings` button and icon
- Changed the the `Additional fields` title to `Custom fields` for
consistency

<img width="1728" alt="Screenshot 2024-09-09 at 20 15 39"
src="https://github.com/user-attachments/assets/1fb1232a-f958-4d4d-8694-f85cc8872237">
<img width="1443" alt="Screenshot 2024-09-09 at 20 34 27"
src="https://github.com/user-attachments/assets/0fbdae02-65a6-4128-adc7-39f51cc2d5e6">
<img width="1370" alt="Screenshot 2024-09-09 at 20 34 57"
src="https://github.com/user-attachments/assets/c216407a-ac13-4579-8007-531c79d52de7">
@kdelemme kdelemme closed this Oct 25, 2024
dmlemeshko pushed a commit that referenced this pull request Oct 28, 2024
…95375)

## Summary

Follow-up of elastic#195367
As part of the Sustainable Kibana Architecture initiative, this PR
leverages the mechanisms and concepts introduced in
elastic#194810, updating plugins that
were considered to be solution-specific in Luke's
[PoC](elastic#179710).

This might trigger linting rule violations in CI, and help uncover
conflicts related to forbidden dependencies.
As soon as they are resolved, we can proceed to classify solutions'
plugins.
kdelemme pushed a commit that referenced this pull request Nov 6, 2024
…ted features (elastic#198656)

## Summary

This PR ensures that we don’t expose UI capabilities for deprecated
features since they’re unnecessary, and the code should rely on the UI
capabilities of the replacement features instead.

Additionally, this PR transforms the `disabledFeatures` property of
Space objects returned from our programmatic and HTTP APIs to replace
any deprecated feature IDs with the IDs of their replacement features,
ensuring that feature visibility toggles work for deprecated features as
well.

## How to test

1. Run Kibana FTR server with the following config (registers test
deprecated features):
```shell
node scripts/functional_tests_server.js --config x-pack/test/security_api_integration/features.config.ts
```
2. Once server is up and running create Space with the
`case_1_feature_a` **deprecated** feature disabled:
```shell
curl 'http://localhost:5620/api/spaces/space' -u elastic:changeme \
  -X POST -H 'Content-Type: application/json' -H 'kbn-version: 9.0.0' \
  --data-raw '{"name":"space-alpha","id":"space-alpha","initials":"s","color":"#D6BF57","disabledFeatures":["case_1_feature_a"],"imageUrl":""}'
```
3. Log in to Kibana and [navigate to a Space
`space-alpha`](http://localhost:5620/app/management/kibana/spaces/edit/space-alpha)
you've just created. Observe that deprecated `Case #1 feature A`
(`case_1_feature_a`) isn't displayed, and instead you should see that
replaces deprecated one - `Case #1 feature B` (`case_1_feature_b`):

![Screen Shot 2024-11-01 at 17 40
59](https://github.com/user-attachments/assets/5b91e71c-7d46-4ff1-bf73-d148622e8ec4)

Co-authored-by: Elastic Machine <[email protected]>
kdelemme pushed a commit that referenced this pull request Nov 6, 2024
…eprecated features (elastic#198656) (elastic#199147)

# Backport

This will backport the following commits from `main` to `8.x`:
- [fix(security, features): do not expose UI capabilities of the
deprecated features
(elastic#198656)](elastic#198656)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Aleh
Zasypkin","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-06T14:06:39Z","message":"fix(security,
features): do not expose UI capabilities of the deprecated features
(elastic#198656)\n\n## Summary\r\n\r\nThis PR ensures that we don’t expose UI
capabilities for deprecated\r\nfeatures since they’re unnecessary, and
the code should rely on the UI\r\ncapabilities of the replacement
features instead.\r\n\r\nAdditionally, this PR transforms the
`disabledFeatures` property of\r\nSpace objects returned from our
programmatic and HTTP APIs to replace\r\nany deprecated feature IDs with
the IDs of their replacement features,\r\nensuring that feature
visibility toggles work for deprecated features as\r\nwell.\r\n\r\n##
How to test\r\n\r\n1. Run Kibana FTR server with the following config
(registers test\r\ndeprecated features):\r\n```shell\r\nnode
scripts/functional_tests_server.js --config
x-pack/test/security_api_integration/features.config.ts\r\n```\r\n2.
Once server is up and running create Space with
the\r\n`case_1_feature_a` **deprecated** feature
disabled:\r\n```shell\r\ncurl 'http://localhost:5620/api/spaces/space'
-u elastic:changeme \\\r\n -X POST -H 'Content-Type: application/json'
-H 'kbn-version: 9.0.0' \\\r\n --data-raw
'{\"name\":\"space-alpha\",\"id\":\"space-alpha\",\"initials\":\"s\",\"color\":\"#D6BF57\",\"disabledFeatures\":[\"case_1_feature_a\"],\"imageUrl\":\"\"}'\r\n```\r\n3.
Log in to Kibana and [navigate to a
Space\r\n`space-alpha`](http://localhost:5620/app/management/kibana/spaces/edit/space-alpha)\r\nyou've
just created. Observe that deprecated `Case #1 feature
A`\r\n(`case_1_feature_a`) isn't displayed, and instead you should see
that\r\nreplaces deprecated one - `Case #1 feature B`
(`case_1_feature_b`):\r\n\r\n![Screen Shot 2024-11-01 at 17
40\r\n59](https://github.com/user-attachments/assets/5b91e71c-7d46-4ff1-bf73-d148622e8ec4)\r\n\r\nCo-authored-by:
Elastic Machine
<[email protected]>","sha":"deeb9fe32af717a883727aed7d83c6106d8d839f","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Security","release_note:skip","Feature:Security/Authorization","v9.0.0","backport:prev-major"],"title":"fix(security,
features): do not expose UI capabilities of the deprecated
features","number":198656,"url":"https://github.com/elastic/kibana/pull/198656","mergeCommit":{"message":"fix(security,
features): do not expose UI capabilities of the deprecated features
(elastic#198656)\n\n## Summary\r\n\r\nThis PR ensures that we don’t expose UI
capabilities for deprecated\r\nfeatures since they’re unnecessary, and
the code should rely on the UI\r\ncapabilities of the replacement
features instead.\r\n\r\nAdditionally, this PR transforms the
`disabledFeatures` property of\r\nSpace objects returned from our
programmatic and HTTP APIs to replace\r\nany deprecated feature IDs with
the IDs of their replacement features,\r\nensuring that feature
visibility toggles work for deprecated features as\r\nwell.\r\n\r\n##
How to test\r\n\r\n1. Run Kibana FTR server with the following config
(registers test\r\ndeprecated features):\r\n```shell\r\nnode
scripts/functional_tests_server.js --config
x-pack/test/security_api_integration/features.config.ts\r\n```\r\n2.
Once server is up and running create Space with
the\r\n`case_1_feature_a` **deprecated** feature
disabled:\r\n```shell\r\ncurl 'http://localhost:5620/api/spaces/space'
-u elastic:changeme \\\r\n -X POST -H 'Content-Type: application/json'
-H 'kbn-version: 9.0.0' \\\r\n --data-raw
'{\"name\":\"space-alpha\",\"id\":\"space-alpha\",\"initials\":\"s\",\"color\":\"#D6BF57\",\"disabledFeatures\":[\"case_1_feature_a\"],\"imageUrl\":\"\"}'\r\n```\r\n3.
Log in to Kibana and [navigate to a
Space\r\n`space-alpha`](http://localhost:5620/app/management/kibana/spaces/edit/space-alpha)\r\nyou've
just created. Observe that deprecated `Case #1 feature
A`\r\n(`case_1_feature_a`) isn't displayed, and instead you should see
that\r\nreplaces deprecated one - `Case #1 feature B`
(`case_1_feature_b`):\r\n\r\n![Screen Shot 2024-11-01 at 17
40\r\n59](https://github.com/user-attachments/assets/5b91e71c-7d46-4ff1-bf73-d148622e8ec4)\r\n\r\nCo-authored-by:
Elastic Machine
<[email protected]>","sha":"deeb9fe32af717a883727aed7d83c6106d8d839f"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/198656","number":198656,"mergeCommit":{"message":"fix(security,
features): do not expose UI capabilities of the deprecated features
(elastic#198656)\n\n## Summary\r\n\r\nThis PR ensures that we don’t expose UI
capabilities for deprecated\r\nfeatures since they’re unnecessary, and
the code should rely on the UI\r\ncapabilities of the replacement
features instead.\r\n\r\nAdditionally, this PR transforms the
`disabledFeatures` property of\r\nSpace objects returned from our
programmatic and HTTP APIs to replace\r\nany deprecated feature IDs with
the IDs of their replacement features,\r\nensuring that feature
visibility toggles work for deprecated features as\r\nwell.\r\n\r\n##
How to test\r\n\r\n1. Run Kibana FTR server with the following config
(registers test\r\ndeprecated features):\r\n```shell\r\nnode
scripts/functional_tests_server.js --config
x-pack/test/security_api_integration/features.config.ts\r\n```\r\n2.
Once server is up and running create Space with
the\r\n`case_1_feature_a` **deprecated** feature
disabled:\r\n```shell\r\ncurl 'http://localhost:5620/api/spaces/space'
-u elastic:changeme \\\r\n -X POST -H 'Content-Type: application/json'
-H 'kbn-version: 9.0.0' \\\r\n --data-raw
'{\"name\":\"space-alpha\",\"id\":\"space-alpha\",\"initials\":\"s\",\"color\":\"#D6BF57\",\"disabledFeatures\":[\"case_1_feature_a\"],\"imageUrl\":\"\"}'\r\n```\r\n3.
Log in to Kibana and [navigate to a
Space\r\n`space-alpha`](http://localhost:5620/app/management/kibana/spaces/edit/space-alpha)\r\nyou've
just created. Observe that deprecated `Case #1 feature
A`\r\n(`case_1_feature_a`) isn't displayed, and instead you should see
that\r\nreplaces deprecated one - `Case #1 feature B`
(`case_1_feature_b`):\r\n\r\n![Screen Shot 2024-11-01 at 17
40\r\n59](https://github.com/user-attachments/assets/5b91e71c-7d46-4ff1-bf73-d148622e8ec4)\r\n\r\nCo-authored-by:
Elastic Machine
<[email protected]>","sha":"deeb9fe32af717a883727aed7d83c6106d8d839f"}}]}]
BACKPORT-->

Co-authored-by: Aleh Zasypkin <[email protected]>
kdelemme pushed a commit that referenced this pull request Nov 14, 2024
…stic#195375) (elastic#199268)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Sustainable Kibana Architecture] Update plugins (wave #1)
(elastic#195375)](elastic#195375)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Gerard
Soldevila","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-25T14:05:27Z","message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (elastic#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com/elastic/pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Core","Feature:Embedding","Feature:ExpressionLanguage","release_note:skip","Feature:Drilldowns","Team:Fleet","v9.0.0","backport:prev-minor","Team:Obs
AI
Assistant","ci:project-deploy-observability","Team:obs-ux-infra_services","Team:obs-ux-management"],"number":195375,"url":"https://github.com/elastic/kibana/pull/195375","mergeCommit":{"message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (elastic#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com/elastic/pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195375","number":195375,"mergeCommit":{"message":"[Sustainable
Kibana Architecture] Update plugins (wave #1) (elastic#195375)\n\n##
Summary\r\n\r\nFollow-up of
https://github.com/elastic/kibana/pull/195367\r\nAs part of the
Sustainable Kibana Architecture initiative, this PR\r\nleverages the
mechanisms and concepts introduced
in\r\nhttps://github.com/elastic/pull/194810, updating plugins
that\r\nwere considered to be solution-specific in
Luke's\r\n[PoC](https://github.com/elastic/kibana/pull/179710).\r\n\r\nThis
might trigger linting rule violations in CI, and help
uncover\r\nconflicts related to forbidden dependencies.\r\nAs soon as
they are resolved, we can proceed to classify
solutions'\r\nplugins.","sha":"a5517d9d2cf38369fc46ea9622ce36c768436aad"}}]}]
BACKPORT-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.