At release creation
There is a new section between "Uploaded Files" and "Notes" that allow to upload links, it's possible to add several links. There are no extra informations (comment, processor, etc) the user can set associated to the URL. However, internally we keep for display:
- Owner (who released the link)
- Release date
It's also possible to define a name to be displayed for the url (eg. file-1.23.jar instead of https://example.com/stuff/aaa/vvv/file.stuff)
At release update
It's possible to add a new link (with same information than at Release creation).
It's possible to remove an existing link.
It's not possible to modify a link. To modify a link, it should be removed and added again.
Contrary to file update It's not possible to change "Release" and "Release date" for link.
At link deletion
Contrary to file deletion, there is no "restore" mecanism.
At FRS release display
On FRS homepage, when displaying the content of a release, below the list of file, there is a section with links displayed (only if there are links).
When there are no names, the links are displayed truncated to avoid very long URLs with the owner of the link and the date.
At "Linked Release" display
When a release is associated to an artifact, a special page is displayed with the content of the release, the linked artifact & etc.
This view must be updated as well to include links
At REST API usage
The GET /frs_release/:id route must be updated to include the "links" section
At XML import usage
XML import format must be updated to support the links
At FRS widget usage
The link is displayed
At SOAP / CLI / Webdav usage
The new feature is neither available through SOAP nor CLI nor Webdav
Ideally, they are not impacted by the change but there should not be specific development to make them work when links are in use. In this case SOAP / CLI / Webdav for the project that would use links would be descativated.
Project access logs
Links addition/deletion are visible in the project access logs like the files are.
Special attention must be taken during the development and validation around the delete / restore mecanism so the new dev doesn't interfer with the existing mecanism.