This project contains an example of htsget-rs and IGV.js, along with the htsget-rs authorization restrictions.
It implements the following architecture using local docker compose services:
In this repo, the components represent:
- UI portal - the igv-js service in the compose.yml which serves htsget.html.
- htsget-rs - the htsget-rs service in the compose.yml.
- Authorization service - the authorization service in compose.yml.
Run an npm install:
npm install
Tilt up the docker containers:
docker compose up
Add the appropriate JWT Bearer token (if you changed the default one):
Open the browser at:
http://localhost:8787/igv.js/data/pages/htsget.html
If all goes well, you should see the following:
There is an alternative deployment that points igv.js to a publicly available htsget-rs instance deployed on cloudflare at:
http://localhost:8787/igv.js/data/pages/htsget-workers.html
The htsget workers deployment is based on the htsget-deploy cloudflare deployment. Remote deployments can also be managed from this repository, including on AWS.
Even if CORS is effectively disabled at the server level in this configuration's repo (see compose.yml
's environment directive for details), some browsers will require a bit of settings tweaking, namely:
Will work right away :D
Please report if that's not the case for you?
Will currently not work due to restrictions around the use of 0.0.0.0.
Will only work if its implicit Ad-blocking is disabled on localhost
: