-
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
Move public SO APIs to SOM #189240
Comments
Pinging @elastic/kibana-core (Team:Core) |
Just checking: my understanding of the proposal is that our desired state for/by 9.0 is: Deprecate the folllowing:
Introduce the following:
@pgayvallet mentioned once we move these to SO Management plugin a path is available to get rid of |
@jloleysens I was thinking more along the lines of introducing new SOM APIs for each of them: Step 1:
Step 2: Step 3: Step 4:
I'm not saying we need to wait 18 months. We also don't need to wait long, only as long as it takes to make sure it's not consumed at all. |
spin-off from https://github.com/elastic/dev/issues/2200 , cleaning up core |
Not urgent since we're not removing the SO HTTP APIs in v9. |
@TinaHeiligers, just to clarify. This issue is "just" about moving the HTTP API definitions to the SOM plugin. No need for additional optimizations, correct? |
@afharo This issue is for moving the public export and import HTTP routes to SOM. Enhancements and optimizations aren't directly in scope. |
Nice! Thanks! I'll add links to the relevant code then to make it more |
Removing the label
|
Related is to start working on documentation for migrating off of the existing, deprecated APIs. |
Moving the public saved objects (import/export/resolve_import_error) APIs from Core to the Saved Objects management plugin (SOM) could improve code organization and API management.
If the APIs allow us to leverage more platform features. E.g. we could use the file service to store the export, taskManager to schedule export as background tasks, and so on.
If we used the file service, we could remove the resolve_import_error API: this API exists only because we need to re-send the import file for error resolution. Storing the imported file would improve UX (especially for non-UI usage) because consumers only need to use import to resolve conflicts.
Rationale
Isolation of Concerns:
This ensures a clear separation of responsibilities and better modularity.
API Path Structure:
/api/saved_objects/
/api/kibana/management/saved_objects/
A dedicated path under the SOM plugin is more descriptive and aligns with the purpose of these APIs, making it easier for users and developers to discover and understand the APIs.
Deprecation and Transition:
/api/saved_objects/
) as deprecated to provide a transition period for users and integrations to migrate to the new path./api/kibana/management/saved_objects/
) for all future development, ensuring a smooth transition.Implementation Steps
Move APIs to SO Management Plugin:
import
,export
, andresolve_import_error
APIs from Core to the SO management plugin.Update API Paths:
/api/kibana/management/saved_objects/
path within the SO management plugin.Documentation and Communication:
Backward Compatibility:
Benefits
Modularity:
Clarity and Usability:
Future-proofing:
By moving the public saved objects APIs to the SO management plugin and updating their API paths, we align the system architecture with best practices for modularity and clarity, ensuring a more maintainable and user-friendly API structure.
Related code references
import.ts
,export.ts
, andresolve_import_errors.ts
).The text was updated successfully, but these errors were encountered: