-
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
Migrate from path based versioning to header based versioning #159181
Comments
Pinging @elastic/kibana-core (Team:Core) |
Pinging @elastic/kibana-security (Team:Security) |
Pinging @elastic/unified-observability (Team:Observability) |
Pinging @elastic/appex-sharedux (Team:SharedUX) |
We need to reconcile moving to BWCA with not wanting to create a breaking change. Removing V1 would cause a breaking change. We are proposing that we add a new endpoint without the V1 as a redirect and to satisfy BWCA with that, while retaining the V1 endpoint to avoid the breaking change. What is the call on breaking changes in Serverless vs. Stateful? Will serverless coincide with 9.0 and will it be okay to introduce breaking changes? |
@petrklapka Serverless will not coincide with a 9.0 release, so while it will be okay to introduce breaking changes in the initial serverless offering only, we must maintain BWC for self-managed until we have a 9.0 release.
I would add the new endpoint without the v1 in both self-managed in serverless, and skip registering the v1 path in serverless. So self-managed has both to preserve BWC, and serverless has the new non-v1 path only. This should be pretty easy to maintain as you can simply reuse the same route handler and register it for different paths. The only catch would be determining the best way to prevent the old v1 path from being registered in serverless. It isn't clear yet whether a mechanism for this will be provided by core, so you might need to have some configuration to control this. This is being actively discussed in #157266. Also just to clarify on |
Yup. I used redirect as a shorthand. I believe Vadim's term was a "fake redirect" ;) @tsullivan - I think this gets us where we need to be to move ahead, at least to the point where we implement the header based version to comply with BWCA and continue the discussion on what to do with the old routes and how the BCC will fit into the picture and when. Any ideas on how to not register the old route on serverless, in case we do decide to diverge? |
The principle of make-it-minor / the breaking changes committee is: reducing the pain of breaking changes for our users. There's been an ongoing discussion around how that principle applies to serverless and the new API versioning specification. We're working on making sure we have alignment with senior leadership, but until then we'd recommend that teams hold off on any breaking changes to public APIs. |
Before going on leave, I had this draft PR that needed just some final cleanup to get a green CI: #159839. All green now and ready for a review 🟢 |
Thanks @jloleysens @lukeelmers and @petrklapka for bringing this up. From the SharedUX/Reporting side, I think the work has been done as of #162288 and we can mark this as closed in the AppEx-SharedUX team board. That was done awhile ago, but I'm just going through our backlog now. |
6/6 for the public APIs we will have to schedule the breaking change; for the internal APIs we don't need to do this for a while (basically this is tech debt)
There are endpoints in Kibana that use path-based versioning. We need to decide at which point to migrate these to use header-based versioning (i.e. onboard to the versioned router).
The plan
For each endpoint
internal
orpublic
v.
paramsList of endpoints by team
Do not consider this list exhaustive. It may get out-of-date.
Security
Core (#159839)
SharedUX
Profiling
Observability
Enterprise search
The text was updated successfully, but these errors were encountered: