Authenticating Against Galaxy from within a tool?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Authenticating Against Galaxy from within a tool?

Ben Bimber
Hello,

I am new to galaxy. I"m trying to write a data input tool wrapper.  It will call a script that does a query, produces a list of files, and then the plan is to use the BioBlend API to create datasets/data collections in galaxy.  In other words I am making the dataset(s) based on the contents of this file, rather than making a dataset from that file.  In my case this file has a pair of columns representing FASTQ files, and I want to create one paired dataset collection in galaxy for each genome.

In theory using bioblend to create datasets is easy.  However, when I call this as a galaxy tool, I have not found a clean way to pass the credentials to bioblend.  BioBlend needs to know the serverURL and either the user's API key or username/password.  I think if I poke around $__app__ or $__user__ there's a good change I will find a property with the information I need; however, this has the obvious problem of writing the API key to the log.  

Is there another way to approach this problem?  

Thanks in advance for any help,
Ben


___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
Reply | Threaded
Open this post in threaded view
|

Re: Authenticating Against Galaxy from within a tool?

John Chilton-4
Unofficial way of doing this and the workaround of using configfiles
can be found in this thread:
http://dev.list.galaxyproject.org/Simple-standard-for-API-use-of-a-global-user-key-that-all-loaded-tools-can-draw-upon-td4665659.html.
There is a Trello card outlining platform work that should be done to
support this better but we have not made progress on that.

I would be interested in your use case. One can dynamically discover
datasets with various db keys and build collections composted of
dynamically discovered datasets and keys - but there is no way to use
the tool xml to dynamically discover a variable number of collections
- but it should be supported - as should building a list of paired or
lists of lists where the outer list describes the key and the inner
the sample.

-John



On Wed, Apr 29, 2015 at 2:58 PM, Ben Bimber <[hidden email]> wrote:

> Hello,
>
> I am new to galaxy. I"m trying to write a data input tool wrapper.  It will
> call a script that does a query, produces a list of files, and then the plan
> is to use the BioBlend API to create datasets/data collections in galaxy.
> In other words I am making the dataset(s) based on the contents of this
> file, rather than making a dataset from that file.  In my case this file has
> a pair of columns representing FASTQ files, and I want to create one paired
> dataset collection in galaxy for each genome.
>
> In theory using bioblend to create datasets is easy.  However, when I call
> this as a galaxy tool, I have not found a clean way to pass the credentials
> to bioblend.  BioBlend needs to know the serverURL and either the user's API
> key or username/password.  I think if I poke around $__app__ or $__user__
> there's a good change I will find a property with the information I need;
> however, this has the obvious problem of writing the API key to the log.
>
> Is there another way to approach this problem?
>
> Thanks in advance for any help,
> Ben
>
>
> ___________________________________________________________
> Please keep all replies on the list by using "reply all"
> in your mail client.  To manage your subscriptions to this
> and other Galaxy lists, please use the interface at:
>   https://lists.galaxyproject.org/
>
> To search Galaxy mailing lists use the unified search at:
>   http://galaxyproject.org/search/mailinglists/
___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
Reply | Threaded
Open this post in threaded view
|

Re: Authenticating Against Galaxy from within a tool?

Ben Bimber
Hi John,

Thanks.  To elaborate a little more: we have a LabKey Server (web front end for a database) that manages raw files and metadata.  The idea is to make a galaxy tool where a user could do thing like query for all genomes from males patients, age x-y, etc.  I can use LabKey's APIs to return a list of those files.  However, the information at this point is text (basically a list of filepaths).  

It would be nice to automatically create datasets for those files.  Some of the time there's a simple 1:1 between file and the user-facing dataset (like images); however, for genomes we really want to make a paired collection.  BioBlend makes it relatively easy to go from filepaths to datasets; however, the authentication issue is what wasnt clear.

If there's a more standard path to go from list of files -> galaxy dataset I'm all ears.  

-Ben

On Wed, Apr 29, 2015 at 12:13 PM, John Chilton <[hidden email]> wrote:
Unofficial way of doing this and the workaround of using configfiles
can be found in this thread:
http://dev.list.galaxyproject.org/Simple-standard-for-API-use-of-a-global-user-key-that-all-loaded-tools-can-draw-upon-td4665659.html.
There is a Trello card outlining platform work that should be done to
support this better but we have not made progress on that.

I would be interested in your use case. One can dynamically discover
datasets with various db keys and build collections composted of
dynamically discovered datasets and keys - but there is no way to use
the tool xml to dynamically discover a variable number of collections
- but it should be supported - as should building a list of paired or
lists of lists where the outer list describes the key and the inner
the sample.

-John



On Wed, Apr 29, 2015 at 2:58 PM, Ben Bimber <[hidden email]> wrote:
> Hello,
>
> I am new to galaxy. I"m trying to write a data input tool wrapper.  It will
> call a script that does a query, produces a list of files, and then the plan
> is to use the BioBlend API to create datasets/data collections in galaxy.
> In other words I am making the dataset(s) based on the contents of this
> file, rather than making a dataset from that file.  In my case this file has
> a pair of columns representing FASTQ files, and I want to create one paired
> dataset collection in galaxy for each genome.
>
> In theory using bioblend to create datasets is easy.  However, when I call
> this as a galaxy tool, I have not found a clean way to pass the credentials
> to bioblend.  BioBlend needs to know the serverURL and either the user's API
> key or username/password.  I think if I poke around $__app__ or $__user__
> there's a good change I will find a property with the information I need;
> however, this has the obvious problem of writing the API key to the log.
>
> Is there another way to approach this problem?
>
> Thanks in advance for any help,
> Ben
>
>
> ___________________________________________________________
> Please keep all replies on the list by using "reply all"
> in your mail client.  To manage your subscriptions to this
> and other Galaxy lists, please use the interface at:
>   https://lists.galaxyproject.org/
>
> To search Galaxy mailing lists use the unified search at:
>   http://galaxyproject.org/search/mailinglists/


___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
Reply | Threaded
Open this post in threaded view
|

Re: Authenticating Against Galaxy from within a tool?

Ben Bimber
John - thanks, your configfile example should work for API key.  however, is there a cheetah substitution to pull in the server's URL?  





On Wed, Apr 29, 2015 at 12:20 PM, Ben Bimber <[hidden email]> wrote:
Hi John,

Thanks.  To elaborate a little more: we have a LabKey Server (web front end for a database) that manages raw files and metadata.  The idea is to make a galaxy tool where a user could do thing like query for all genomes from males patients, age x-y, etc.  I can use LabKey's APIs to return a list of those files.  However, the information at this point is text (basically a list of filepaths).  

It would be nice to automatically create datasets for those files.  Some of the time there's a simple 1:1 between file and the user-facing dataset (like images); however, for genomes we really want to make a paired collection.  BioBlend makes it relatively easy to go from filepaths to datasets; however, the authentication issue is what wasnt clear.

If there's a more standard path to go from list of files -> galaxy dataset I'm all ears.  

-Ben

On Wed, Apr 29, 2015 at 12:13 PM, John Chilton <[hidden email]> wrote:
Unofficial way of doing this and the workaround of using configfiles
can be found in this thread:
http://dev.list.galaxyproject.org/Simple-standard-for-API-use-of-a-global-user-key-that-all-loaded-tools-can-draw-upon-td4665659.html.
There is a Trello card outlining platform work that should be done to
support this better but we have not made progress on that.

I would be interested in your use case. One can dynamically discover
datasets with various db keys and build collections composted of
dynamically discovered datasets and keys - but there is no way to use
the tool xml to dynamically discover a variable number of collections
- but it should be supported - as should building a list of paired or
lists of lists where the outer list describes the key and the inner
the sample.

-John



On Wed, Apr 29, 2015 at 2:58 PM, Ben Bimber <[hidden email]> wrote:
> Hello,
>
> I am new to galaxy. I"m trying to write a data input tool wrapper.  It will
> call a script that does a query, produces a list of files, and then the plan
> is to use the BioBlend API to create datasets/data collections in galaxy.
> In other words I am making the dataset(s) based on the contents of this
> file, rather than making a dataset from that file.  In my case this file has
> a pair of columns representing FASTQ files, and I want to create one paired
> dataset collection in galaxy for each genome.
>
> In theory using bioblend to create datasets is easy.  However, when I call
> this as a galaxy tool, I have not found a clean way to pass the credentials
> to bioblend.  BioBlend needs to know the serverURL and either the user's API
> key or username/password.  I think if I poke around $__app__ or $__user__
> there's a good change I will find a property with the information I need;
> however, this has the obvious problem of writing the API key to the log.
>
> Is there another way to approach this problem?
>
> Thanks in advance for any help,
> Ben
>
>
> ___________________________________________________________
> Please keep all replies on the list by using "reply all"
> in your mail client.  To manage your subscriptions to this
> and other Galaxy lists, please use the interface at:
>   https://lists.galaxyproject.org/
>
> To search Galaxy mailing lists use the unified search at:
>   http://galaxyproject.org/search/mailinglists/



___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/