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

Version filter is unclear if result MUST only be the latest version #25

Closed
jordan2175 opened this issue Dec 12, 2017 · 7 comments
Closed

Comments

@jordan2175
Copy link

Section 3.5.1
The version filter description says you MUST return the latest version if no version parameter is specified. It is not clear if this means MUST ONLY return the last version or if it includes the older versions so long as the latest one is also included.

@jmgnc
Copy link

jmgnc commented Jan 23, 2018

I'm for returned ONLY the latest version.

@jordan2175
Copy link
Author

jordan2175 commented Jan 23, 2018

We talked about this on the working call on 2018-01-23 and the consensus on that call was to change the text to say "MUST ONLY return the latest version". No one on the call objected to making this change. The following people were on the working call: Bret Jordan, Trey Darley, John-Mark Gurney, Sarah Kelley, Chris Ricard, Dave Lemire, Jason Keirstead, Nicholas Hayden, Richard Struse, Sunil Ravipati.

@jordan2175 jordan2175 changed the title Add clarifying text about using version filter Version Filter is Underspecified WIth Returnable Content Feb 5, 2018
@jordan2175
Copy link
Author

The Version filter text specifies that when absent from a request, the most recent version should be returned. The text does not specify whether other versions are permitted.

The proposed change is to clarify that only the current version should be returned, and that other versions are prohibited.

@jordan2175
Copy link
Author

This is now in section 3.4.1. I am thinking the text needs to be something like this:

If no version parameter is provided, the server MUST only return the latest version of the object that the server and client has access to.

@gtback
Copy link

gtback commented Feb 21, 2018

A few questions about the version filter:

  • Do we want to allow first and last to be combined with explicit timestamped versions (or with each other) like ?match[version]=first,last,2016-01-01T01:01:01.000Z)? If so, we should give an example like that explicitly, otherwise we can say something like "first, last, and all MUST NOT be combined with each other or with specific version values."
  • Can we just say that "The server must respond identically If match[version] is not specified, or if match[version]=last.?
  • I don't really understand "that the server and client has access to." It gets ambiguous when making a "get objects" request that returns multiple object. In that case I assume we want it to return the latest version of each object.

And, not to be pedantic, but I think it should be "MUST return only", not "MUST only return".

So maybe:

If the version parameter is equal to last or is not provided, the server MUST return exactly one version of each object matching the remainder of the request: the latest version that the client is permitted to read.

I'm not a huge fan of " that the client is permitted to read.", because the server can decide to return different results to different users for whatever reason. I wonder whether the restriction is really that a "latest" query shouldn't return an version older than one that was previously returned (unless the newer version has been removed).

@jordan2175 jordan2175 changed the title Version Filter is Underspecified WIth Returnable Content Version filter is unclear if result MUST only be the latest version Feb 22, 2018
@jordan2175 jordan2175 added this to the TAXII-2.1-CSD01 milestone Feb 22, 2018
@jordan2175 jordan2175 added this to In progress in TAXII-2.1 Feb 22, 2018
@johnwunder
Copy link

+1 to this specific change. I do think some of the issues @gtback brings up should also be clarified. Specifically:

  • We should prohibit first, last, all from being combined with timestamps or with each other.
  • I think the text could be somewhat improved for clarity during the editorial process but overall is fine.

@jordan2175
Copy link
Author

In section 3.4.1 the text now says:

The version(s) of the object(s) that are being requested from either an object or manifest endpoint. If no version parameter is provided, the server MUST return only the latest version for each object matching the remainder of the request.

Requests MUST NOT contain any duplicate version parameters, meaning, each keyword (all, first, and last) and any specific version () MUST NOT occur more than once in a request.

@jordan2175 jordan2175 moved this from In progress to Done in TAXII-2.1 Apr 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
TAXII-2.1
  
Done
Development

No branches or pull requests

4 participants