-
Notifications
You must be signed in to change notification settings - Fork 3
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
How to modify request headers #26
Comments
are you referring to requests for general data files like bam, vcf, etc? we have the concept of 'internetaccounts' that can modify headers and such but it is a little advanced (and I haven't tested those in JBrowseR either) |
Yes indeed, the data are contents of the bams, |
If you are not totally tied to JBrowseR, you could use our 'embedded components' potentially, and we have examples of using the "internet accounts" this way. here is the example with using internetAccounts for our embedded components https://jbrowse.org/storybook/lgv/main/?path=/docs/using-internetaccounts--docs (you can open the track selector on this page and see that it pops up a dialog to enter an oauth token when you turn on the "google drive bigwig" track) Source code for that example https://github.com/GMOD/jbrowse-components/blob/main/products/jbrowse-react-linear-genome-view/stories/examples/WithInternetAccounts.tsx The internet accounts are specified in the config by adding a internetAccountId alongside the uri. the ExternalOAuthToken internetAccount type prompts the user for a OAuth token on opening the track. we could make another example so that instead of prompting, you supply the token via the config also I am new to JBrowseR as a maintainer (I mostly work on the core codebase including the embedded components, but I have taken on some maintainership of JBrowseR) but if you are invested in using JBrowseR let me know and I can do some investigation for how to set this up in JBrowseR |
Thanks for the links and help so far! But unfortunately, I am completely tied to JbrowseR, as the mail application is a shiny App, where the requested data is then shown. It would be super nice and helpful if you find some time to investigate how this is set in JBrowseR |
Hi @cmdcolin did you find some time to dive a bit into JbrowseR how to set up this request? |
I just started a possible approach here to add plugins, and the plugins could add a internetaccount. thanks for the ping though...this PR is not complete as posted but will let you know when I get update |
I have continued some work on this with creating a demo plugin that can add custom HTTP headers (https://github.com/cmdcolin/jbrowse-plugin-modifyhttpheaders) and pushed forward this branch a little bit. Haven't fully tested this in JBrowseR land yet but will keep you posted. if you can confirm you're still interested in this, will keep me motivated on it :) |
current PR progress here, allows adding plugins from HTTP urls and custom internet accounts |
specific code that is adding the custom header https://github.com/cmdcolin/jbrowse-plugin-modifyhttpheaders/blob/main/src/index.ts#L37-L46 |
Yes, I am still interested!! Looking forward to see how this then can be used into JbrowseR. |
And thanks for the update! |
don´t take it as push :) . Just wanted to know if you have some further news to this topic. |
no news yet, apologies. will keep you posted not sure if it helps but one strategy for you could be to put something like a proxy that adds the particular http header of interest, or avoid the check for the http header entirely (if there is any particular context for why the header is needed let me know though) |
I finally managed to make a demo that accomplishes this (adding a request header to file requests from jbrowse using a plugin). It requires installing the current github dev release with devtools::install_github('GMOD/JBrowseR') right now, but will make it CRAN release hopefully soon Using JBrowse2 plugins with JBrowseR requires hosting them at an HTTP location right now (so e.g. I uploaded that plugin to a S3 bucket), and also needs to use the "JsonView" version Example here https://github.com/GMOD/JBrowseR/blob/main/example_apps/using_plugins/config.json The plugin code is here I made this plugin https://s3.amazonaws.com/jbrowse.org/demos/jbrowse-plugin-modifyhttpheaders.umd.development.js You can see the adds the header "ExtraHTTPHeader: Wow" to your requests Thanks for your patience and let me know if there are any questions, I know it's a pretty raw example but it should allow it to be extended for custom use cases |
as far as for how you would use this: I would a) download the plugin I linked above |
and then e) edit the config.json with your tracks and add the internetAccountId to them, which tells it to use the ModifyHTTPHeaders internet account plugin |
Thanks a lot for your work, we will have a look into this and will leave a feedback! Thanks again! |
As promised the feedback, First of thanks for all the work you already put into this Request! We highly appreciate this. Instead, we create now inside the shiny server a browse instance that is only alive/reactive/known in the session itself. Again thanks for all the work and your effort here!! |
gotcha no worries. I think it's great you can find a workable solution still and thanks for reporting the cram-js issue! |
can maybe close this issue for now...will hopefully get this properly published to CRAN soon :) |
Hi,
is there a way to modify the HTTP request headers that JBrowseR sends? I have got a flask server providing the data via stream and an R app set up. Now I would like to modify the request headers, that are being sent to the flask server, from the R side by adding an additional field. I suspect the headers are currently created somewhere in the JS backend and only the request bodies are created as JSONs in R, right?
Thanks a lot!
The text was updated successfully, but these errors were encountered: