-
Notifications
You must be signed in to change notification settings - Fork 303
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
Update OPTIONS, Allow, Accept-* #931
Comments
Your thoughts on this matter? Fundamentally, we need to sort this out so that the following dokie.li features are demonstrable against a Solid Pod:
/cc @csarven |
I'm trying to gauge the urgency of this issue. I get the eventual necessity, but what is broken right now that will be fixed when we do this? There are more urgent blockers for dokieli, notably #661 (which is currently scheduled with a higher priority). We have a limited team of developers, an internal deadline of November for v5.0, and more issues than this team can tackle by that date. So it's a matter of the right prioritization. |
@csarven Is this functionality not covered by the |
What's broken right now is the basis of this issue. To reiterate, the following dokie.li functionality is unusable with Solid Pod deployed via the current Node Solid Server (NSS):
Fixing this problem makes the functionality in question usable and demonstrable i.e., powerful end-user app for demonstrating virtues of loosely-coupling:
Fundamentally, this is yet another killer-demo regarding how Solid enables a Read-Write Web without implicit Data Silos and end-user privacy compromise :) /cc @csarven |
The issue is simply a case of dokie.li being able to discern the fact that RDF-Turtle is preferred by the Solid Pod deployed via NSS. If the correct metadata is returned via HTTP response headers dokie.li can make accurate deductions. I hope this clarifies the issue at hand so that we can move forward on this matter. Right now, we have a quite artificial hold-up that is blocking demonstration of the complete repetoire of capabilities that dokie.li brings to the table. |
I don't think that's the issue: NSS does not have such a preference. The problem is rather that NSS ignores
The correct metadata is that we accept everything, perhaps with a preference for Turtle. But dokieli has good reasons to prefer HTML/RDFa, and we support that (pending the content-type fixes).
I love the "just works" experience as much as you do, and dokieli is one of the greatest demonstrators of decentralized Linked Data on the Web. But it's important that we fix things the right way. Shortcuts have been taken in the past, resulting in the difficult-to-maintain NSS codebase we currently have. Implementing the above headers would make things work in the short term, but they are not the right solution in the long term. Now that we have several "just works" experiences, it's important to shift focus to a long-term "keeps on working" experience IMHO. |
OK, I don't quite understand what dokie.li needs, but the current situation is this: #661 is being worked on as we speak, and with that in place #662 can be fixed shortly thereafter. That fixes what I understand is a significant holdup for dokie.li. So, the question is if this would fix the two problems cited above. From the surface, it seems like it could, since it addresses how Turtle is treated. If so, that's great. If not, then yes, we are could bump the priority of this issue. It is not certain that we would get to it, as the deadline for prioritization is today and we only have one week to go, but it would be very helpful to know if #661 and #662 are likely to fix the issue. Nevertheless, I'm labelling it for inclusion in the development queue. |
Hang on folks. There sems to be some miscommunication here. Allow me try to clarify :) The original issue is not related to 661/662, and it is not specific to dokieli either. It is something that NSS should do properly for dokieli is first checking what the server is capable of and prefers through So:
I understand that there may be good reasons for why storage Note that, dokieli happens to not find what it is looking for at Did I add more confusion or make it clear? Let's put dokieli aside for now and doublecheck what the server should be doing. Aside: yes, 661/662 are still quite important for dokieli but that is a different matter eg. 'Save'/'Save As' operations for HTML+RDFa articles use |
Right, so yeah, I figured these issues were rather separate. Just trying to find what to prioritize. Anyway, on the topic of This looks to me to create a situation where you can't really rely on it, and quite a lot of logic around it would be needed to improve that. Is that part of the problem, @csarven , is it orthogonal to it, or am I just wrong in how Solid works? |
Identify and resolve the diff between Needless to say, the server has to be consistently accurate, otherwise, clients are going to be built arbitrarily (out of "spec") because the server has arbitrary behaviour - at least in this particular case. I have no comment or direct influence on prioritization of things. Just raising issues/QA stuff as usual that appears to require closer inspection or further development. IMO, the set of interactions that kickoff from |
Yes. #934
They are just Let's follow up in the above two separate issues. |
But you are kinda misunderstanding my intentions and how I work. Please note:
I pushed this thread because I see and sense unecessary inertia, especially as dokie.li and Solid aren't tools that were created in the last few months -- these efforts have years behind them, and they should work much better than they do currently i.e., they should be clear working examples of the core value proposition espoused by the Solid Project. |
Apologies, I certainly did not mean to imply that. I know you favor good work. What I meant to say is that, in this context and in my opinion, changing the Accept headers to say Turtle would be a shortcut, because it is not the truth.
Rest assured this is not how we work 🙂 |
Here is what I meant to state and say: What I describe above isn't happening. Thus, the only way for dokie.li to work properly with NSS is to drop down from a good deductive pattern (that currently exists) to a hack. This is an example of what I call a problem that's riddle-like in nature :) Resoure wise, if a problem reaches he point where resources are the problem on either side, we've historically stepped in (be it NSS or dokie.li) and made a contribution. /cc @csarven |
Very, very much agreed. HATEOAS and all that. :-) I hope we get the chance to make this right soon. |
@csarven @kjetilk Couple more details about the Allow: header, to clear up confusion. The Allow: header is there to return what the /server/ is capable of. In general. Across all resources. (This doesn’t seem very useful to me, in our case, but those are its semantics.) That is why it’s always returned, regardless of user authentication status. The WAC-Allow: header (returned on http HEAD requests), on the other hand, is about what the /user/ is capable of. It does depend on authentication status. So Dokieli needs to look to it, not Allow-Patch (which is also general case). Does that make more sense? |
It does, thanks a lot, @dmitrizagidulin ! |
@dmitrizagidulin The semantics of I think |
re:
Allow
should include what's really "allowed" eg.OPTIONS
is a good start.Accept-Patch
is of any indication, addPATCH
toAllow
.PUT, POST
are also allowed add toAllow
, and would be good to includeAccept-Put
andAccept-Post
respectively (note:Accept-Put
is not really spec'd/standardised but just completeness sake)Just to be clear, that's for a public resource. I understand that
GET
,HEAD
, andOPTIONS
may be the only methods allowed, thenAccept-Patch
probably shouldn't be advertised. No major harm but still. Note different treatment to https://csarven.solid.community/public/ , which appears to be correct (authenticated).Aside: There may have been a special case for the storage root (I recall some people having issues with overwriting their homepage or whatever), so perhaps that's why
PATCH
is not listed there now (even if authenticated if I'm not mistaken). I don't see whyPATCH
would be allowed but notPUT
orPOST
, and others on storage root, but ok.The text was updated successfully, but these errors were encountered: