Skip to content

Signposting: Link header size explosion with many bitstreams + invalid linkset JSON #5293

@atarix83

Description

@atarix83

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

  1. Create DSpace item with >20 bitstreams
  2. Deploy behind proxy/CDN with header size limits (CloudFront, nginx, etc.)
  3. curl -I -H "Accept: application/linkset+json" http://your-dspace/items/{UUID}
  4. Observe: HTTP 502/413 "header too large" from proxy
  5. 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

Metadata

Metadata

Assignees

Labels

affects: 7.xIssue impacts 7.x releasesaffects: 8.xIssue impacts 8.x releasesaffects: 9.xIssue impacts 9.x releasesbugclaimed: 4Science4Science team is working on this issue & will contribute backcomponent: SignpostingRelated to the Signposting links

Type

Projects

Status

🏗 In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions