-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Core] Upgrade Assistant warns the global SO HTTP APIs are deprecated #197721
Comments
Pinging @elastic/kibana-core (Team:Core) |
I've had to add |
@Bamieh we might need to add deprecation types for APIs that will be removed or migrated in the future. ATM, the deprecation for SO APIs renders as "route xyz is removed". From PR #197936: The response entry is:
|
I dont think we'd need a new type it is just the copy text that might be misleading to developers. However I think for people attempting to upgrade I do agree with @florent-leborgne that using Happy to revisit the copy to chance it back again to Here is some parts of the discussion that bubbled to github: #196081 (comment) @florent-leborgne please feel free to jump in :) |
@Bamieh @TinaHeiligers From what I understood in the initial conversation, there are 4 major cases:
So I think the question is not about the tense that we use but rather about making sure that we don't mix up the removed and deprecated cases. Please correct me if I'm wrong :) |
Looking at the linked comment:
Perhaps this does point to something we are currently lacking... The way I see it we could:
IMO (2) seems nicer than having a new deprecation type, but also invites us to do the same thing for other types based on |
The relationship is not super direct between severity and I would go with the simplest mental model which is just changing the copy:
|
Yeah, I agree it's a bit fuzzy to me too so ++ to keeping it simple with changing the copy and not altering the API. |
@florent-leborgne if you agree, should we go ahead and change the copy for the removal case to future tense or does this compromise consistency too much? |
We can but I'm not sure if this really helps the customer know what they need do now (which is different if the removal happens in the target version or later in a future version). If you change |
I've been thinking through this more and keep landing with adding at least 1 type: "deprecated", with optional text that extends the copy: "This API is deprecated. (optional-text}" |
That is where I landed as well, if that is do-able I'll +1 on the idea |
I'll only get back to this next week. I'm on serverless onCall until then |
So to summarize if we add a
|
I'm hoping to apply this in #197936 |
…tic#198800) ## Summary - [x] Add `deprecate` Type to the API Deprecations reasons. - [x] Add a `message` optional field that is surfaced in the UA - [x] Add IDE documentation in the autocomplete for all deprecation fields. - [x] Updated README and example plugin for the `deprecate` type - [x] Update copy for `deprecate`. Closes elastic#197721 ## Testing Run kibana locally with the test example plugin that has deprecated routes ``` yarn start --plugin-path=examples/routing_example --plugin-path=examples/developer_examples ``` The following comprehensive deprecated routes examples are registered inside the folder: `examples/routing_example/server/routes/deprecated_routes` Run them in the dev console to trigger the deprecation condition so they show up in the UA: ``` GET kbn:/api/routing_example/d/deprecated_route ``` <img width="628" alt="image" src="https://github.com/user-attachments/assets/3c0e1829-9a07-49bd-94a3-398514f448e2"> --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: florent-leborgne <[email protected]> (cherry picked from commit 665cf98)
…tic#198800) ## Summary - [x] Add `deprecate` Type to the API Deprecations reasons. - [x] Add a `message` optional field that is surfaced in the UA - [x] Add IDE documentation in the autocomplete for all deprecation fields. - [x] Updated README and example plugin for the `deprecate` type - [x] Update copy for `deprecate`. Closes elastic#197721 ## Testing Run kibana locally with the test example plugin that has deprecated routes ``` yarn start --plugin-path=examples/routing_example --plugin-path=examples/developer_examples ``` The following comprehensive deprecated routes examples are registered inside the folder: `examples/routing_example/server/routes/deprecated_routes` Run them in the dev console to trigger the deprecation condition so they show up in the UA: ``` GET kbn:/api/routing_example/d/deprecated_route ``` <img width="628" alt="image" src="https://github.com/user-attachments/assets/3c0e1829-9a07-49bd-94a3-398514f448e2"> --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: florent-leborgne <[email protected]>
…197936) fix elastic#197721. The route deprecation field changed from a boolean to an object, where the object contains information that is used in deprecation issues that the Upgrade Assistant shows. This PR makes the necessary changes in the deprecated Saved Objects HTTP APIs. This PR also includes a release notes entry for the API deprecations that was missing. ![Screenshot 2024-10-29 at 12 01 29](https://github.com/user-attachments/assets/5c47c697-fbae-4b2e-8c6c-cd4701a667df) ### 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] [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 ### How to test this: - Pull PR, run es against a trial license and start kibana as usual. - Make a curl request to Kibana to get the config saved object: ``` curl --location 'localhost:5601/abc/api/saved_objects/config/9.0.0' \ --header 'Content-Type: application/json' \ --header 'Accept-Encoding: gzip, deflate, br' \ --header 'kbn-xsrf: kibana' \ --header 'Kbn-Version: 9.0.0' \ --header 'Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==' ``` - Navigate to Upgrade Assistant and observe Kibana has at least 1 deprecation warning. - View Kibana's warnings, you should see a warning entry for `The "GET /api/saved_objects/{type}/{id}" route is deprecated` ![Screenshot 2024-11-06 at 16 26 26](https://github.com/user-attachments/assets/3b6a5644-3e5e-403e-a0f6-015686675b9f) - click on the deprecation and you should see more detail about the deprecated API that's been used in the flyout: ![Screenshot 2024-11-06 at 16 26 44](https://github.com/user-attachments/assets/696aaf8f-fb6b-4c61-bc3c-b3745f85059a) - resolve the deprecation warning - Kibana should continue to issue requests to the deprecated SO HTTP APIs because these APIs have not been removed yet. ### Risk Matrix | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | End user concern from the deprecation warning that says the routes have been deprecated | Low | Low | The APIs have been deprecated since 8.7 and recommends using public APIs instead. | ### For maintainers - [x] This will appear in the **Release Notes** and follow the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: kibanamachine <[email protected]>
…197936) fix elastic#197721. The route deprecation field changed from a boolean to an object, where the object contains information that is used in deprecation issues that the Upgrade Assistant shows. This PR makes the necessary changes in the deprecated Saved Objects HTTP APIs. This PR also includes a release notes entry for the API deprecations that was missing. ![Screenshot 2024-10-29 at 12 01 29](https://github.com/user-attachments/assets/5c47c697-fbae-4b2e-8c6c-cd4701a667df) ### 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] [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 ### How to test this: - Pull PR, run es against a trial license and start kibana as usual. - Make a curl request to Kibana to get the config saved object: ``` curl --location 'localhost:5601/abc/api/saved_objects/config/9.0.0' \ --header 'Content-Type: application/json' \ --header 'Accept-Encoding: gzip, deflate, br' \ --header 'kbn-xsrf: kibana' \ --header 'Kbn-Version: 9.0.0' \ --header 'Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==' ``` - Navigate to Upgrade Assistant and observe Kibana has at least 1 deprecation warning. - View Kibana's warnings, you should see a warning entry for `The "GET /api/saved_objects/{type}/{id}" route is deprecated` ![Screenshot 2024-11-06 at 16 26 26](https://github.com/user-attachments/assets/3b6a5644-3e5e-403e-a0f6-015686675b9f) - click on the deprecation and you should see more detail about the deprecated API that's been used in the flyout: ![Screenshot 2024-11-06 at 16 26 44](https://github.com/user-attachments/assets/696aaf8f-fb6b-4c61-bc3c-b3745f85059a) - resolve the deprecation warning - Kibana should continue to issue requests to the deprecated SO HTTP APIs because these APIs have not been removed yet. ### Risk Matrix | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | End user concern from the deprecation warning that says the routes have been deprecated | Low | Low | The APIs have been deprecated since 8.7 and recommends using public APIs instead. | ### For maintainers - [x] This will appear in the **Release Notes** and follow the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: kibanamachine <[email protected]>
…197936) fix elastic#197721. The route deprecation field changed from a boolean to an object, where the object contains information that is used in deprecation issues that the Upgrade Assistant shows. This PR makes the necessary changes in the deprecated Saved Objects HTTP APIs. This PR also includes a release notes entry for the API deprecations that was missing. ![Screenshot 2024-10-29 at 12 01 29](https://github.com/user-attachments/assets/5c47c697-fbae-4b2e-8c6c-cd4701a667df) ### 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] [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 ### How to test this: - Pull PR, run es against a trial license and start kibana as usual. - Make a curl request to Kibana to get the config saved object: ``` curl --location 'localhost:5601/abc/api/saved_objects/config/9.0.0' \ --header 'Content-Type: application/json' \ --header 'Accept-Encoding: gzip, deflate, br' \ --header 'kbn-xsrf: kibana' \ --header 'Kbn-Version: 9.0.0' \ --header 'Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==' ``` - Navigate to Upgrade Assistant and observe Kibana has at least 1 deprecation warning. - View Kibana's warnings, you should see a warning entry for `The "GET /api/saved_objects/{type}/{id}" route is deprecated` ![Screenshot 2024-11-06 at 16 26 26](https://github.com/user-attachments/assets/3b6a5644-3e5e-403e-a0f6-015686675b9f) - click on the deprecation and you should see more detail about the deprecated API that's been used in the flyout: ![Screenshot 2024-11-06 at 16 26 44](https://github.com/user-attachments/assets/696aaf8f-fb6b-4c61-bc3c-b3745f85059a) - resolve the deprecation warning - Kibana should continue to issue requests to the deprecated SO HTTP APIs because these APIs have not been removed yet. ### Risk Matrix | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | End user concern from the deprecation warning that says the routes have been deprecated | Low | Low | The APIs have been deprecated since 8.7 and recommends using public APIs instead. | ### For maintainers - [x] This will appear in the **Release Notes** and follow the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: kibanamachine <[email protected]> (cherry picked from commit 0df2e98) # Conflicts: # oas_docs/output/kibana.serverless.yaml # oas_docs/output/kibana.yaml # packages/core/deprecations/core-deprecations-server-internal/src/routes/post_validation_handler.ts # packages/core/http/core-http-server/index.ts # packages/core/http/core-http-server/src/router/index.ts
PR #196081 adds support for surfacing deprecated APIs in the upgrade assistant.
We should surface the deprecated global saved objects HTTP APIs in Upgrade Assistant as an early warning of removal at a later stage. To show these warnings,
deprecated
has to change from a boolean to an object.The warning will complement how the deprecations are logged.
We expect to update alternative APIs as they become available.
Deprecated Saved objects APIs
The text was updated successfully, but these errors were encountered: