Skip to content

Refactor validation: Remove mapped_id URI resolution check #173

@clnsmth

Description

@clnsmth

Problem:

The validate_mapped_id function was designed to ensure that mapped_id values are resolvable URIs. However, in practice, this check has proven to be brittle and unreliable for several reasons:

  • Network Dependency: It is sensitive to transient network issues, causing tests to fail unpredictably.
  • Server Policies: Many servers return a 403 Forbidden status to automated requests, even for valid resources. This makes it difficult to programmatically distinguish between a protected resource and a non-existent one.
  • Performance: Making live HTTP requests for each unique URI significantly slows down the entire validation process.
  • Complexity: Potential workarounds, like mimicking a user-agent or special-casing 403 responses, add complexity and make fragile assumptions about server behavior.

Decision:

The value provided by this validation check does not outweigh its cost in terms of performance, complexity, and unreliability. It can produce confusing warnings for users and complicate package maintenance.

Proposed Solution:

Remove the validate_mapped_id function from the validation suite entirely and remove all calls to it. The responsibility for providing valid and resolvable URIs will be left to the data creator.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions