Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requirement for self-reference link in Atom feed is too strict #596

Open
ejn opened this issue Aug 20, 2021 · 4 comments
Open

Requirement for self-reference link in Atom feed is too strict #596

ejn opened this issue Aug 20, 2021 · 4 comments
Assignees

Comments

@ejn
Copy link

ejn commented Aug 20, 2021

According to RFC4287, the URI reported by <link rel="self" "is the preferred URI for retrieving Atom Feed Documents representing this Atom feed" (my emphasis). This implies that the same feed may be available at alternative URIs, but that the canonical URI is the one reported in <link rel="self".

The abstract test description for INSPIRE Atom feeds interprets this as "the self link must be the same as the Download Service feed URI" (note not "the URI from which the Download Service was retrieved").

The concrete implementation in the validator however obviously requires that the canonical URL is used for retrieving the feed otherwise an error "The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL." is reported.

Note that the TG also requires (Section 5.1.8) regarding the feed id element that:

An identifier shall be provided for the feed as a whole. This identifier shall be the same HTTP URI that
was used for the ‘self’ reference and shall therefore also dereference to the feed itself.
(In the Atom standard it is not required that the ‘id’ matches the ‘self’ reference but since this
Download TG requires the use of HTTP URIs to identify feeds they are the same as a consequence).

From this Requirement 9 (and also Requirement 22) is derived: "The ‘id’ element of a feed shall contain an HTTP URI which dereferences to
the feed".

This implies very clearly that the requirement for <link rel="self" is also that it contains a HTTP URI which dereferences to the feed itself, not that it is necessarily the URI from which the feed is retrieved, as its contents shall be the same as the id element.

I think that the abstract test description for the self-reference link should be corrected to match the abstract test description for the id element, and the implementation updated accordingly.

Please note that there also appears to be a technical problem in the implementation of this test within the validator: Starting the test with the canonical URL https://www.geodaten-mv.de/dienste/verkehrsnetz_lsbv_inspire_atom?id=17a14b95-94a7-1213-e2a1-pa2424ga2b12&type=service then the request is made to the non-canonical (but in this case still functional) URL https://www.geodaten-mv.de/dienste/verkehrsnetz_lsbv_inspire_atom (see report, which however reports the canonical URL in the self-link and therefore fails this test. Perhaps query parameters are not expected in the URL for an Atom feed (although these are of course valid, and may in many cases be required)?

@ejn
Copy link
Author

ejn commented Aug 24, 2021

This issue may be better placed in https://github.com/INSPIRE-MIF/helpdesk-validator - although I am not sure what the organisational relationships between the abstract test cases and the validator are?

@heidivanparys
Copy link

I think that the abstract test description for the self-reference link should be corrected to match the abstract test description for the id element

I am not sure, I fully understand the issue, could you perhaps create a pull request in https://github.com/inspire-eu-validation/download-atom/tree/3.1 that illustrates the exact wording you would like to see, and add a link to it here?

It would probably be best if this issue would be moved to https://github.com/INSPIRE-MIF/helpdesk-validator for an assessment there. Unless you think that there a problem with the requirements in the technical guidelines? If that would be the case, please explain (preferably with a specific proposal for new wording).

ejn referenced this issue in ejn/download-atom Aug 27, 2021
 * Requirement according to TG is not that the self link contains the
   exact URL from which the feed to test has been retrieved, but a URL
   at which the feed may be retrieved.

 * This is the same requirement as for the id, so the same test method
   should apply here.

 * See discussion at https://github.com/INSPIRE-MIF/helpdesk/issues/51
@ejn
Copy link
Author

ejn commented Aug 27, 2021

Sure, the pull request is at inspire-eu-validation/download-atom#2

Note that this simply replaces the test requirement "the self link must be the same as the Download Service feed URI" with the test requirements as defined for the service feed id, which is logical as the text in the TG states that the "identifier shall be the same HTTP URI that was used for the 'self' reference" (note that this identity is however not part of the formally defined TG Requirement 9, and is presumably for this reason not included in the test requirements for the id element).

I don't think the TG as such needs to be corrected, although I find it somewhat remarkable that the formulation in Requirement 7 "The "Download Service Feed" shall contain an Atom 'link‘ element that contains an HTTP URI for the "Download Service Feed" document" is different to that in Requirement 9 "The 'id‘ element of a feed shall contain an HTTP URI which dereferences to the feed" - in my opinion the formulation "an HTTP URI which dereferences to the feed" could also be used for Requirement 7 as it is more clearly defined than "an HTTP URI for the "Download Service Feed" document", whilst having exactly the same implication.

@MarcoMinghini MarcoMinghini transferred this issue from INSPIRE-MIF/helpdesk Aug 30, 2021
@MarcoMinghini
Copy link
Contributor

Dear all,
this issue was transferred to the Validator helpdesk, which seems the best place to discuss it.

@ejn we will soon provide you some feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: To do
Development

No branches or pull requests

7 participants