Skip to content

A partial implementation NuGet server developed in Go, written to serve the QSC Q-Sys plugin platform

License

Notifications You must be signed in to change notification settings

soloworks/go-nuget-server

Repository files navigation

go-nuget-server

MIT license LinkedIn

A minimal Nuget HTTP(s) server written in Go, primarily developed to serve the Q-Sys plugin platform.

Tested against:

Getting Started

This server is a Lightweight implementation, tested against the above Nuget client. Development started as a file system based store (using local storage), but this was abandoned for a GCP based system using Firebase and Google Run.

All file and database functionality is abstracted into a FileStore interface which can be re-implemented as any other storage/database combination as desired. Just add a new switch, new filestore implementation and code away.

Security is APIKey based only. Having no keys present will result in an open server, any ReadWrite keys present will require one to write but leave free read access. Any ReadOnly keys present will lock down all requests to require an API key. For Firebase this requires an entry in a collection called Nuget-APIKeys where the document name is the key and has at least one field called Access which can have the values ReadOnly|ReadWrite.

Notes

Nuget is strange. It doesn't seem to respect it's own protocols and APIs.

Irresepective of supplied paths, it will still occasionally try to find static files in /F/<yoururl>/api/v2/browse/.

Documentation states <iconURL> is depreciated for <icon> which can look for files in package instead of over http. However trying to pack with latest Nuget.exe fails on this against the schema.

Acknowledgements

About

A partial implementation NuGet server developed in Go, written to serve the QSC Q-Sys plugin platform

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published