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 what needs to be done to upgrade our Nuget support to use API 3 #1960
Comments
@steve-todorov one small clarification which may be important here. This probably not means that we should fully support Nuget v3 API for strongbox. This is only about for strongbox to support proxying of Nuget v3 repositories. |
In other words we could just investigate would it be possible to proxy Nuget v3 thru Nuget v2. |
Thanks for linking to the associated announcement as this notified me of another affected customer. I am happy to provide information regarding the V2 or V3 API in NuGet. To clarify, 3rd party clients are welcome to use either our officially supported V2 endpoints or using the documented V3 API. There is no restriction on 3rd party clients, per se, but rather a restriction on certain V2 OData queries no matter the client. There are several V2 query patterns that are still supported. These are query patterns that are used by the official NuGet client tools. They are well optimized and there is no plan to disable this category, For example, some of these queries are mentioned here: NuGet/NuGetGallery#7423 (comment). I just wanted to say that you could consider using supported V2 queries as an alternative to moving to V3, if it fits your scenario or saves you effort. I would urge you to use the V3 protocol if possible since it is more secure, performance, and reliable. Also, it is properly documented here: https://docs.microsoft.com/en-us/nuget/api/overview. For example, this query could be rewritten:
You can test different query patterns to see if they are supported using "int.nugettest.org". The error message you saw was due to a scheduled, temporary brown-out prior to the permanent disabling that we are planning for early 2021. For example:
|
Hi @joelverhagen , Thank you very much for reaching out to us and for providing these useful details! The end-points that we support can be found here. In a nutshell, this is what we currently support:
We will have to implement this for both hosted and proxy repositories and add end-points for the NuGet protocol v3 ones, while preserving the NuGet protocol v2 (for now). In addition to this, we also have:
Ultimately, we would really like to implement full-blown support for NuGet protocol version 3, but we're a little short-handed right now for such an undertaking, as we have some higher priority tasks. If you would like to help out (even if with just pointers of what would be required as a bare minimum), it would be great, if you could add some comments to #860 . Looking forward to hearing your thoughts! Many thanks in advance! Martin |
Looks fine. Example request:
Looks fine as long as Without https://int.nugettest.org/api/v2/Search()/$count
This one can be problematic with ... And the rest look okay, from a high level glance. Again, I'd highly recommend testing on "int.nugettest.org/api/v2" to evaluate your impact in various scenarios. Clever approach, using ANTLR. Cool stuff. |
As the lead developer on the NuGet implementation, is there anything else you would like to add?
All credits go to @sbespalov who spent about a year absorbing, improving and further developing the JNuGet project (which is now dead) into Strongbox! :) |
@j4ckofalltrades , @anki2189 , @madhukarbharti , Would either of you fine gentlemen be insterested in working on this issue? :) |
as per comments above we seems just need to check how we rely on deprecated API. First of all we need to know if this affects on |
Task Description
The Nuget team has made an announcement which states they are deprecating OData API v2 queries and will begin blocking 3rd party clients in February 2021.
Today and tomorrow (November 17th and 18th) they will be temporarily blocking all requests coming from older clients.
This is why our master is currently not building.
Example request & output:
URL:
https://www.nuget.org/api/v2/Search()?%24filter=Id+eq+%27NHibernate%27&%24top=1000&includePrerelease=false
You can access NuGet integration here:
The API V2 URL is:
Tasks
The following tasks will need to be carried out:
strongbox-web-integration-tests
are still working.Task Relationships
This task will cover the preliminary exploratory work required in order to implement #860.
Useful links
Task Relationships
This task:
Help
The text was updated successfully, but these errors were encountered: