Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

affects: 10.xIssue impacts 10.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

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions