Skip to content

htslib should implement a more complete URI scheme for irods: #229

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

Open
jrandall opened this issue Jun 25, 2015 · 5 comments
Open

htslib should implement a more complete URI scheme for irods: #229

jrandall opened this issue Jun 25, 2015 · 5 comments

Comments

@jrandall
Copy link
Contributor

The current implementation of the irods URL scheme handler only supports basic path (it fills in missing information from the defaults in the user's irodsEnvFile.

The irods: URL scheme should:

  • be consistent with RFC 3986
  • allow all required variables from irodsEnvFile to be set from the URL (i.e. irodsHost, irodsPort, irodsZone, irodsUserName) such that a separate user env file is not required to access irods data
  • allow 'relative' URLs that do require information from irodsEnvFile in order to function (i.e. if all of the above as well as irodsCwd are set, then a URL such as irods:foo might refer to the foo file in the current working directory.
  • allow supported authentication methods to be configured (i.e. specify irodsAuthScheme, irodsServerDn, and irodsAuthFileName or possibly the actual password to be specified)
  • allow irodsDefResource to be set (only applies when writing to iRODS)
  • follow the pattern of established URL schemes and be backwards compatible with existing htslib implementation
  • possibly allow for fragments
  • eventually be registered with IANA under the irods scheme
@jrandall
Copy link
Contributor Author

N.B. we should (obviously?) consult with and get buy-in from the iRODS consortium developers on the scheme

@jmarshall jmarshall added this to the wishlist milestone Jul 6, 2015
@dkj
Copy link
Member

dkj commented Sep 30, 2015

How about: irods://[irodsUserName#irodsZone@][irodsHost][:irodsPort]/collection_path/data_object ?
The "#" separating username and zone would fit with iRODS convention.

@jmarshall
Copy link
Member

It would be nice, but that # (if not percent-encoded) wouldn't fit the rules for URIs. RFC 3986 §3.2:

The authority component is [...] terminated by the next slash ("/"), question mark ("?"), or number sign ("#") character, or by the end of the URI.

@dkj
Copy link
Member

dkj commented Sep 30, 2015

Doh. Thanks. How about we percent encode the "#" then?

irods://[irodsUserName%23irodsZone@][irodsHost][:irodsPort]/collection_path/data_object

A bit ick perhaps - but less ick that cooking up some other separator?

@jrandall
Copy link
Contributor Author

jrandall commented Oct 2, 2015

If the username/zone is intended to be a fully-qualified way of specifying
the login account to use, then this seems fine, although it is missing the
password, which I think we should include in the same way as it can be
included in http and ftp URIs for completeness.

We might also need a separate zone specifier, but I think that is only
required when doing queries, so perhaps it isn't necessary if we consider
running a genQuery outside the scope of the URI scheme.

It should also be specified how to authenticate with a token rather than a
username/password.

On Wed, Sep 30, 2015 at 11:57 AM, dkj [email protected] wrote:

Doh. Thanks. How about we percent encode the "#" then?

irods://[irodsUserName%23irodsZone@][irodsHost][:irodsHost]/collection_path/data_object

A bit ick perhaps - but less ick that cooking up some other separator?


Reply to this email directly or view it on GitHub
#229 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants