-
Notifications
You must be signed in to change notification settings - Fork 47
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
Add constraint discovery for client errors #185
Conversation
What's the use case (necessity) for this? :) |
I think it would fall under the UC here: https://www.w3.org/TR/ldp-ucr/#dfn-uc1 -- access guidance, https://www.w3.org/TR/ldp-ucr/#dfn-nf1.1 |
main/resource-access.bs
Outdated
@@ -156,6 +156,25 @@ requests. | |||
[[Source](https://github.com/solid/specification/pull/160#issuecomment-636822687)]. | |||
|
|||
|
|||
## Constraints and Problem Details ## {#constraints-problem-details} | |||
|
|||
Servers MUST publish any constraints on clients’ ability to create or update |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are authorization policies in a WAC acl file a constraint?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, this excludes the details of authorization policies from ACL. It'd be more like linking to the constraint that for example says that server does not allow client to update containment triples eg. https://www.w3.org/TR/ldp/#ldpc-put-mbrprops
. Or example from the LDN spec: https://www.w3.org/TR/ldn/#test-receiver-post-response-contraints-unmet
(discussed in #44 (comment) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming that shape validation would fall into this constraint bucket, it might be helpful to use that as a concrete example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean to use the URI of a Shape Validation resource as example? Possibly, but I think I prefer to use a URI that will exist for sure as example, like a URI from the spec. That doesn't rule out the possibility to use server-specific constraints possibly with SV. Just thought that it may be more clear.
I'm still interested in documentation that clarifies the differences between solid:shape and ldp:constrainedBy - beyond https://gitter.im/solid/data-interoperability-panel?at=5e398f03f6945f41ef5ad6a6 and what's currently in the draft spec.
Can we come back to the example after this PR? If an example is desired, we can refer to a requirement in the spec along the lines of:
Link: <https://solid.github.io/specification/#http-client>; rel="http://www.w3.org/ns/ldp#constrainedBy"
but actually have a URI for the statement and use that in the example:
A Solid client MUST use the Content-Type HTTP header in PUT, POST and PATCH requests [RFC7231].
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worthwhile to distinguish between the abilities that all clients need to fulfil and the abilities that a (particular) client is expected to fulfil for against a particular resource. Both are important. If solid:shape is already advertising the requirement (or thereof), I'm not sure what the added benefit would be to duplicate that target URI for the ldp:constrainedBy relation. So, from that point, I'd lean on well-defined abilities that a client needs to fulfil to create or update. solid:shape is specific to data whereas ldp:constrainedBy can be for anything (including data).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅
Changed milestone to ~CR for reasons.. https://gitter.im/solid/specification?at=5f291b1ce3160e46baa2a17b |
Since you expressed reservations about this @csarven , and it doesn't seem to be a lot of interest, and it is patching an obsolete file, perhaps we should just close this and return to it once the uses have matured? |
As said, I'm not opposed to closing the PR or even dropping the feature altogether. However: Incorporating implementation feedback is part of the review process. We could close the issue on the basis - in addition to the reservations - that there isn't implementation feedback but then again we have merged features into the specification with zero or one (public) implementation... or even with I suggest to raise this PR/related issues in chats and add to the editors team meeting agenda. Aside reminder #44 (comment):
|
Feel free to raise it in chats. I'm not sure we have the bandwidth to process it, that's all, and then the question is to what extent that it is open represent a distraction. I don't know really. |
Current status based on meeting with @kjetilk is same as what mentioned in https://gitter.im/solid/specification?at=5f291b1ce3160e46baa2a17b: "PR reflects the consensus in the issues [however] it is not significant [..] for the [next draft of the] Solid Protocol." Will revisit. |
e7dc1db
to
8fbccd5
Compare
I've re-re-reviewed this PR and related considerations, and then rewrote it. All things considered, it is appropriate to include this as non-normative content. We can revisit the requirement levels for constraints and problem details when the needs/demand is stronger. Alternatively, and depending on how things progress, content along these lines could move to a Best Practices document. I'd like to draw some attention to continuing related work on structured error messages in RDF: #28 . Such work will provide specific/granular information to recipients of the message to help them or the users on their next steps. |
Issue #44