jbrowse-components icon indicating copy to clipboard operation
jbrowse-components copied to clipboard

Ability to disable assembly/track UI elements for web-deployment

Open flinz opened this issue 1 year ago • 3 comments

Is your feature request related to a problem? Please describe.

I am trying to deploy jbrowse2 to share views on assemblies and annotation tracks without sharing the data files behind them. I have achieved blocking requests by the http server to the data files directly (enforcing referrers, and enforcing regions in the headers) but i would also like to prevent the location of assembly and track data files being disclosed to the user in the UI directly.

I have seen I can add extra information (https://jbrowse.org/jb2/docs/config_guide/#customizing-the-feature-details-panel), but how can I hide existing information?

Describe the solution you'd like

A configuration item for tracks that disables seeing the "about" information for assemblies/tracks. Possibly also prevent copying/modifying them, by disabling UI elements selectively.

I am aware a creative user will still be able to locate the data files by looking at browser activity, but this is primarily to not expose this in the UI readily.

Describe alternatives you've considered

Hacking the CSS to disable visibility on certain items, but there's no unique class/id attached to the items i am interested in.

Resources E.g. gray out the "About track" element image E.g. disable showing of the "location" image

flinz avatar Sep 23 '22 09:09 flinz

we could probably try to add some config for this :) being able to customize the about track menu in general would be useful (the features for doing this for the "feature details" would not currently be able to be used for about dialog yet, but would be useful...jbrowse 1 had ability to customize about panel)

cmdcolin avatar Sep 23 '22 21:09 cmdcolin

@flinz possible help here https://github.com/GMOD/jbrowse-components/pull/3230

can run jbrowse create --branch util_gettrackname to get this branch you can add

"formatAbout":{"hideUris":true} to each track you want to hide, or to the entire config e.g.

{
  "configuration": {
    "formatAbout": {
      "hideUris": true,
    }
  },
  "assemblies": ...,
  "tracks": ...
}

(example here) https://github.com/GMOD/jbrowse-components/blob/util_gettrackname/test_data/volvox/config_main_thread.json#L1-L12

cmdcolin avatar Sep 29 '22 17:09 cmdcolin

@cmdcolin wow, thanks a lot for the PR! I'll give it a spin as soon as I can, and I think this would be generally useful!

flinz avatar Oct 06 '22 21:10 flinz

this feature was effectively delivered in v2.1.7

similar thing: can refer to https://github.com/GMOD/jbrowse-components/blob/main/test_data/volvox/config_main_thread.json#L1-L12 as well as more sophisticated modifications to the about/details panels in https://github.com/GMOD/jbrowse-components/blob/main/test_data/volvox/config.json (which refers to a simple "no build" plugin at https://github.com/GMOD/jbrowse-components/blob/main/test_data/volvox/umd_plugin.js)

cmdcolin avatar Nov 02 '22 20:11 cmdcolin

@flinz let me know if that helps of if there are any questions :)

cmdcolin avatar Nov 02 '22 20:11 cmdcolin