Skip to content

Stop advertising Hydra links to unreachable subsystems - #1237

Draft
tomcrane wants to merge 1 commit into
developfrom
hygiene/xc-07-unreachable-links
Draft

Stop advertising Hydra links to unreachable subsystems#1237
tomcrane wants to merge 1 commit into
developfrom
hygiene/xc-07-unreachable-links

Conversation

@tomcrane

@tomcrane tomcrane commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

What does this change?

Removes five advertised Hydra links that point at subsystems consumers cannot actually reach through the API, per the hygiene-sprint session-0 ruling (2026-08-06): the model advertises exactly the reachable surface.

  • EntryPoint no longer emits imageOptimisationPolicies and thumbnailPolicies (and their vocab operations). These are legacy policy concepts superseded by delivery channels. The underlying GET routes (PolicyController) are untouched for now — this PR only stops advertising them; retiring the routes is a separate decision.
  • Customer no longer emits authServices, roleProviders and roles (and their vocab operations). None of these had any route in the API — the IIIF-Auth subsystem (iiif-auth-v2) cannot yet be managed via REST — so all three were links that 404 on dereference. They will return when the auth management API exists (design work tracked in the sprint's session 6; see Manage Auth Services via API #538).

Warning

Behaviour change for release notes: five link properties disappear from API responses — EntryPoint.imageOptimisationPolicies, EntryPoint.thumbnailPolicies, Customer.authServices, Customer.roleProviders, Customer.roles. Consumers navigating by these links must stop; the three Customer links only ever led to 404s.

Relationship to #899 ("Invalid hypermedia links in responses"): the three Customer auth links are exactly that bug class and are removed here. #899's named examples (Batch.errorImages / completeImages) are tracked separately in the sprint (card XC-13, with the AdjunctBatch link work) — so this PR partially addresses #899; reviewer's call whether to close it or keep it open for the Batch examples.

Builds clean; no code referenced the removed properties; DLCS.Hydra.Tests pass.

🤖 Generated with Claude Code

Session-0 ruling (hygiene sprint, 2026-08-06): the model advertises
exactly the reachable surface.

- EntryPoint: imageOptimisationPolicies + thumbnailPolicies links and
  their operations removed (legacy policy concepts superseded by
  delivery channels; the GET routes themselves remain for now)
- Customer: authServices, roleProviders, roles links and their
  operations removed - none of these had any route in the API (the
  iiif-auth-v2 subsystem is not yet manageable via REST), so all three
  were non-dereferenceable links

Refs #899.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant