Describe the bug
When DSpace items have many bitstreams, the HTTP Link headers generated by the Signposting module exceed CloudFront size limits (~10KB), causing gateway errors. Additionally, the /server/signposting/linksets/{uuid}/json endpoint returns invalid application/linkset+json with an extra top-level uniqueType: "core.linkset" field, violating RFC 9264.
Affected versions: DSpace 7.6+
Environment: Behind CloudFront CDN (but likely affects any proxy with header size limits)
To Reproduce
- Create DSpace item with >20 bitstreams
- Deploy behind proxy/CDN with header size limits (CloudFront, nginx, etc.)
curl -I -H "Accept: application/linkset+json" http://your-dspace/items/{UUID}
- Observe: HTTP 502/413 "header too large" from proxy
- Also observe:
curl http://your-dspace/server/signposting/linksets/{UUID}/json
{
"linkset": [...],
"uniqueType": "core.linkset" // ❌ INVALID: RFC 9264 requires "linkset" as sole top-level member
}
Expected behavior
Scalable Link headers: Items with many bitstreams should return only Link: ; rel="linkset"; type="application/linkset+json" instead of individual bitstream links
RFC 9264 compliant JSON: Linkset endpoint should return clean JSON:
{
"linkset": [...] // ✅ ONLY top-level member
}
Related work
#811
#2248
DSpace Signposting documentation
FAIR Signposting Profile
Describe the bug
When DSpace items have many bitstreams, the HTTP
Linkheaders generated by the Signposting module exceed CloudFront size limits (~10KB), causing gateway errors. Additionally, the/server/signposting/linksets/{uuid}/jsonendpoint returns invalidapplication/linkset+jsonwith an extra top-leveluniqueType: "core.linkset"field, violating RFC 9264.Affected versions: DSpace 7.6+
Environment: Behind CloudFront CDN (but likely affects any proxy with header size limits)
To Reproduce
curl -I -H "Accept: application/linkset+json" http://your-dspace/items/{UUID}curl http://your-dspace/server/signposting/linksets/{UUID}/json{ "linkset": [...], "uniqueType": "core.linkset" // ❌ INVALID: RFC 9264 requires "linkset" as sole top-level member }Expected behavior
Scalable Link headers: Items with many bitstreams should return only Link: ; rel="linkset"; type="application/linkset+json" instead of individual bitstream links
RFC 9264 compliant JSON: Linkset endpoint should return clean JSON:
{ "linkset": [...] // ✅ ONLY top-level member }Related work
#811
#2248
DSpace Signposting documentation
FAIR Signposting Profile