Description
As of now, we accept any URL's in the download_url field for the download_url submission type. This is potentially problematic as any of these may become dead links without warning.
Proposals
Hard Code the Backend to Use Bunny CDN
I think this is the most reasonable way of doing this. The bot or anyone else will POST or PATCH their submission with their download_url, and the backend will automatically upload it to Bunny CDN, setting the download_url field to a link to the Bunny CDN entry.
Use Bunny CDN in Garden Bot
This is less satisfactory because, for example, if we wanted to move off of Discord or allow website-based submission, we would have to duplicate this logic. Also, properly authorized users can still set the download_url field to whatever they want, defeating the purpose. I do not suggest we move forward with this solution.
Additional Comments
We will also have to look into creating a database data fixer which uploads the JARs from the URLs and replaces them with their Bunny CDN equivalents.
Conclusion
I suggest we Hard Code the Backend to Use Bunny CDN for the easiest DX/UX.
Description
As of now, we accept any URL's in the
download_urlfield for thedownload_urlsubmission type. This is potentially problematic as any of these may become dead links without warning.Proposals
Hard Code the Backend to Use Bunny CDN
I think this is the most reasonable way of doing this. The bot or anyone else will
POSTorPATCHtheir submission with theirdownload_url, and the backend will automatically upload it to Bunny CDN, setting thedownload_urlfield to a link to the Bunny CDN entry.Use Bunny CDN in Garden Bot
This is less satisfactory because, for example, if we wanted to move off of Discord or allow website-based submission, we would have to duplicate this logic. Also, properly authorized users can still set the
download_urlfield to whatever they want, defeating the purpose. I do not suggest we move forward with this solution.Additional Comments
We will also have to look into creating a database data fixer which uploads the JARs from the URLs and replaces them with their Bunny CDN equivalents.
Conclusion
I suggest we Hard Code the Backend to Use Bunny CDN for the easiest DX/UX.