Package: dbio-cli
DEPRECATEDThis repository is deprecated, for assistance with accessing data please refer to thedata-browser quick start guide.Data Biosphere Data Store CLI ClientThis repository is a pip-installable command line interface (CLI) and Python library (API) for interacting with the
Data Biosphere Data Storage System (DSS), also called the data store.Currently thedbiopackage supports interaction with thedata storefor uploading, downloading, and fetching information about data in the data store.The Data Biosphere CLI is compatible with Python versions 3.5+.Installationpip install dbio-cli.UsageDocumentation on readthedocs.io:CLI documentationPython API documentationTo see the list of commands you can use, typedbio --help.Configuration managementThe Data Biosphere CLI supports ingesting configuration from a configurable array of sources. Each source is a JSON file.
Configuration sources that follow the first source update the configuration using recursive dictionary merging. Sources
are enumerated in the following order (i.e., in order of increasing priority):Site-wide configuration source,/etc/dbio/config.jsonUser configuration source,~/.config/dbio/config.jsonAny sources listed in the colon-delimited variableDBIO_CONFIG_FILECommand line optionsArray merge operators: When loading a chain of configuration sources, the Data Biosphere CLI uses recursive
dictionary merging to combine the sources. Additionally, when the original config value is a list, the package
supports array manipulation operators, which let you extend and modify arrays defined in underlying configurations.
Seehttps://github.com/kislyuk/tweak#array-merge-operatorsfor a list of these operators.Service to Service AuthorizationGoogle service credentials must be whitelisted before they will authenticate with the Data Biosphere CLI.Set the environment variableGOOGLE_APPLICATION_CREDENTIALSto the path of your Google service credentials file to
authenticate.One can also use:dbio dss login.SeeGoogle service credentialsfor more information about service accounts. Use theGoogle Cloud IAM web consoleto manage service accounts.DevelopmentTo develop on the CLI, first runpip install-rrequirements-dev.txt. You can install your locally modified copy of
thedbiopackage by runningmake installin the repository root directory.To use the command line interface with a local or test DSS, first rundbio(orscripts/dbioif you want to use the
package in-place from the repository root directory). This will create the file~/.config/dbio/config.json, which you
can modify to update the value ofDSSClient.swagger_urlto point to the URL of the Swagger definition served by your
DSS deployment. Lastly, the CLI enforces HTTPS connection to the DSS API. If you are connecting to a local DSS, make
this change indbio/util/__init__.pyin theSwaggerClientobject:scheme = "http"To use the Python interface with a local or test DSS, pass the URL of the Swagger definition to theDSSClientconstructor via theswagger_urlparameter:client = DSSClient(swagger_url="https://dss.example.com/v1/swagger.json")You can also layer a minimal config file on top of the defaultconfig.jsonusing theDBIO_CONFIG_FILEenvironment
variable, for example:export SWAGGER_URL="https://dss.dev.ucsc-cgp-redwood.org/v1/swagger.json"
jq -n .DSSClient.swagger_url=env.SWAGGER_URL > ~/.config/dbio/config.staging.json
export DBIO_CONFIG_FILE=~/.config/dbio/config.staging.jsonTestingBefore you run tests, first rundbio dss login.  This will open a browser where you can log in to authenticate
with Google. Use an email address from one of the whitelisted domains (inDSS_SUBSCRIPTION_AUTHORIZED_DOMAINS_ARRAYfromhere).Thenmake test.Primary CI testing is through Travis CI on theGitlab toilspark instance.BugsPlease report bugs, issues, feature requests, etc. in theDataBiosphere/data-store-cli repository on GitHub.Security PolicyPlease email reports about any security related issues you find toteam-redwood-group@ucsc.edu.
Use a descriptive subject line for your report email. In addition, please include the following information
along with your report:Your name and affiliation (if any).A description of the technical details of the vulnerabilities, to help us reproduce your findings.An explanation of who can exploit this vulnerability, and what they gain when doing so (an attack scenario).Whether this vulnerability is public or known to third parties. If so, please provide details.LicenseLicensed under the terms of theMIT License.