Type of change
- API tweak
Proposal description
Since not all servers support the same subset of features and may have small differences in their actions, it’s important for clients to be able to identify the server type to be able to adapt.
Purpose: Expose server name and version in subsonic response.
Note: Currently there’s different implementation by some servers.
The proposal is based on current Navidrome implementation.
Backward compatibility impact
Exposing new fields to subsonic answer should not have impact as clients should already be able to handle this.
API details
Expand the subsonic-response
with new fields
type
: String - The server type (“Navidrome” / “Ampache” / “Gonic” / …)
serverVersion
: String - The server version (“X.Y.Z” …)
Security impacts
By disclosing the server name and version it can help hackers to better target known vulnerabilities if they exist. (But in all case since being a Subsonic server is exposed they usually run their whole set of tests)
Potential issues
Alternative solutions
Use a single field
server
: String - Server type and version (“Navidrome/0.48.0/…”)
Proposal status
Implemented
Server implementation status
Navidrome: OK
Ampache: OK
Gonic: type
is set but no version is exposed
Funkwhale: type
is set but version is exposed as funkwhaleVersion
Astiga: expose Astiga/production
in serverVersion
Lms: type
is set but no version is exposed