Giter VIP home page Giter VIP logo

md-query's Introduction

If you want to know more about me, the about page on my web site is the best place to go.

md-query's People

Contributors

iay avatar lajoie avatar leifj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

leifj sunet

md-query's Issues

set expectations about query complexity

The word "query" in the title, while accurate, leads some people to believe that an implementation needs to support arbitrarily complex query semantics, with the associated resource implications. Our starting point has always been that queries in that sense are out of scope, but the document itself does not appropriately set expectations.

Convert from xml2rfc v2 to xml2rfc v3

The older xml2rfc v2 markup format I am using is deprecated. Although it is still accepted by the I-D submission system, it's described as "(You may submit an older xml2rfc version 2 file if you must.)" which I think implies that I should convert.

Note that the 2.9.x version of xml2rfc I am using is provided through MacPorts and does not support the new format so I will need to migrate to the separate installation.

Makes sense to do this after the -18 revision is done.

add back /entities endpoint

We originally intended that the /entities endpoint (without any '/' followed by an identifier) should return an "all entities" aggregate. That seems to have been lost along the way, although as I understand it Leif's implementation already does this.

So, add this back in to the formal specification.

Reconsider requirement for 505 response from server on HTTP/1.0 request

The current draft says that requesters MUST use HTTP/1.1 or later, which is fair enough: this permits a server to not implement HTTP/1.0 support.

However, the draft also puts a MUST requirement on the server to respond with a 505 status if HTTP/1.0 is used. That's not the same thing and it's not clear why that requirement is there as it seems like an implementation detail.

I'm not aware of any current implementations implementing this requirement correctly.

We should reconsider the MUST 505 requirement. Removing that requirement would not invalidate any implementations currently implementing it properly, but it would simplify the job of writing new clients.

Another aspect we should consider is how hard it is to implement this requirement in the usual server environments (Apache, Tomcat, Jetty, etc.).

Clarification on the use of ETag in 4.1. Conditional Retrieval

"4.1. Conditional Retrieval" reads:

Upon a successful response the responder MUST return an ETag header
and MAY return a Last-Modified header as well.  Requesters SHOULD use
either or both, with the ETag being preferred, in any subsequent
requests for the same resource.

RFC2616 says in 13.3.4:

If an entity tag has been provided by the origin server, MUST
use that entity tag in any cache-conditional request (using If-
Match or If-None-Match).

Ie. it is mandatory to use the ETag if provided and "2.5. Response Headers" mandates it's
provision.

So 4.1 should read:

"Upon a successful response the responder MUST return an ETag header and MAY return a Last-Modified header as well. Requesters SHOULD use the ETag or both, in any subsequent requests for the same resource."

ETag values must be quoted

I read the HTTP RFC as specifying that ETag values must be quoted. The example in md-query has this:

ETag: abcdefg

This should be:

ETag: "abcdefg"

Update references to HTTP RFCs

The RFC7230โ€“7235 references in the current document should be replaced by references to the current specs, which are in RFC9110โ€“9112.

clarify that base URL is just a path

Although we have a prohibition against document fragments in the base URL, we don't include anything similar for the query string although we didn't intend it to be allowed. This should be clarified.

clarify inputs to example query

The example request and response in section 3.2.3 are presented without context. It would be clearer to include at least a statement that this was a query with a given base URL and identifier.

error code in response when metadata would be invalid

The text currently sais "If the responder can not create a valid document it MUST respond with a 500 status code." To me it feels more sensible to use 400 (Bad Request) for that error to distinguish it from any other server-related problem, crash etc.

Add OpenAPI spec

It would be nice

To add a non-normative OAS spec to describe the protocol endpoint.

Capability discovery

Not all MDX-endpoints will be able to serve all metadata formats. Already there is talk in the discojuice project (for instance) about using MDX as a way to query for JSON-based derivatives from SAML metadata.

It would be useful to be able to ask an MDX server about certain basic capabilities it supports, for instance (not having completely thought any of these through):

  • mime types
  • well known entity attributes
  • trust anchors

non-unique percent-encodings make static responders hard to build

The spec as currently drafted relies on STD66's notion of percent-encoding IDs. That encoding scheme has some deliberate ambiguity in terms of what specific string should result from encoding.

For example, although some characters (e.g. \) MUST be percent-encoded, any character MAY be percent-encoded. This means that an MDQ responder MUST regard the following as equivalent:

foo:bar
foo%3Abar

The A to F characters in the encoding MAY also appear as a to f without changing the semantics. STD66 says that encoders "should" (note, not even SHOULD) use upper case, but the result is that an MDQ responder MUST regard the following as equivalent:

foo%2fbar
foo%2Fbar

This is easy for an "active" MDQ responder implementation to deal with. It's harder for people who are trying to implement MDQ by just putting a set of carefully named files behind a standard web server.

In practice, most encoders appear to use upper case. It's not guaranteed, though, and this may cause compatibility issues. It's probably worth at least highlighting this behaviour in the MDQ base spec. I don't think it's worth profiling STD66 within MDQ such that upper case is required (and over-encoding is forbidden) but that might be a discussion to have.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.