-
Notifications
You must be signed in to change notification settings - Fork 8
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
Improve storage.*:/path
description
#21
Comments
I think it MUST be interpreted as the whole path component or we'll run into all kinds of problems. Why would the capability to create a file |
@vokac Personally, I do not see anything in the document to support your interpretation that $PATH is a simple substring; e.g., that the authz statement That said, there is (AFAIK) nothing that prohibits that interpretation and I agree that this is something that should be clarified. Concerning DMC-1282, the problem was due to a separate ambiguity in the current document and how dCache tackled that ambiguity. To give a concrete example, consider the authz statement
In dCache's case, given the ambiguity, it opted for the "safer" (more limited) option: if On a related note: if The problem DMC-1282 arose because, at that time, FTS would create a token authorising each operation that was limited to that operation. For example, when attempting to upload a file
The problem was resolved by FTS creating a single token with So, it may be reasonable to update the specification so it allows authz statements with a trailing slash (e.g., |
@paulmillar unfortunately dCache and XRootD/StoRM implementations differs
Even though dCache comes with clever / "safer" solutions this doesn't make me completely happy, because it is difficult to operate distributed infrastructure with storage backends where each provides their own "features". I suggested simple string matching, because whole concept of organizing files in the directories doesn't seems to me very useful while our data use multiple metadata attributes. May be I'm too biased by our Rucio usage and default directory structure like Despite of my preferences it is not really important if we decide to use XRootD/StoRM or dCache rules for storage path matching, but all implementation that supports WLCG JWT profile should provide same behavior which should be tested by our storage compliance testsuite. |
Hi @vokac Many of the points you raise provide good examples of why we have specifications: that clients can code against well-defined expected behaviour. Server implementations must implement the expected behaviour, or they are simply non-conforming (i.e., "broken"). At the risk of pointing out what you already know: there is a balance here. In general, the profile should leave unspecified behaviour that the client doesn't care about (e.g., internal details, unnecessary use-cases). The JWT profile must not dictate how server code is written, but focus on client-server interactions. My understanding is that there are two main use-cases for In the first case, To be honest, I find the current description of On your specific points:
In summary: yes, should update the document. No, a simple substring isn't a required behaviour (at least, I don't see any use-case requiring this). Compatibility is something we (try to) achieve by covering the use-cases in the JWT profile, ensuring there isn't ambiguity in the expected behaviour, and testing servers that claim to implement the profile. In terms of way forward, I would suggest that we come up with a pull request that replaces the current text of |
Just to summarize:
With
Same behavior for
Update discussed in WLCG DOMA BDT meeting Could somebody with more experience in writing standards prepare an updated text for WLCG JWT profile? (even this contribution was not originally written by me clearly). |
PR #48 proposes changes to address this issue: what do people think? |
From current profile it is not entirely clear how to thread
$PATH
restriction fromstorage.*:
scopes. Documentation should more precisely describe if e.g.storage.create:/foo
is sufficient to create file or directory with a name/foobar
or we should consider that defined path can mean exactly/foo
or any file or directory below/foo
base path like/foo/whatever
but not/foobar
.Personally I would treat
$PATH
as simple string prefix, but in that case policies defined for storage scope should always use trailing/
, e.g.scope.create:/atlasdatadisk/
and to avoid mistakes documentation should make it clear trailing/
is recommended in policy definitions.It would be also nice to make more clear which directories can be created with
storage.create
capability to avoid different behavior we observe with SE-tokens used for HTTP-TPC, see DMC-1282The text was updated successfully, but these errors were encountered: