Signing Up
- (Done) User/Developer signs up on BrownDog webpage
- (Done) User receives email with more information and link to survey
- (Automatic email) User fills out survey
- (Done) User is contacted by Brown Dog developer and account is activated
- (Not for April 4) Tools catalog support for single sign-in
Creating and Adding a New Tool
- (Gregory Jansen, Rui Liu) Developer downloads BrownDog development environment in docker container (in dockerhub, link on BD webpage)
- Contains running Clowder instance, Polyglot instance, basic development tools, mabye even an IDE configured and ready to go
- Contains a bare-bones extractor ready to be modified for a new tool (with comments suggesting where to edit, in various languages e.g. python, C++, Java, ..., and docker sample file)
- Contains a bare-bones converter ready to be modified for a new tool (with comments suggesting where to edit, in various languages e.g. bash, bat, ahk, python, ..., and docker sample file)
- (Done) Polyglot changes from redirecting to SS to downloading and serving converted files to users' "/file/" requests, to support 1 Pol + multi SS docker containers on the same VM.
- (Done - Rui provided the files/images.) docker-compose.yml file, docker images for Polyglot server + 2 different SS to work together on the same VM.
- (Gregory Jansen, Smruti Padhy) Developer installs tool, creates BrownDog interface script(s)
- Adds sample input file(s)
- Example extractor: imagemagick edge detector
- Example converter: imagemagick jpg to ico converter
- (Gregory Jansen, Smruti Padhy)Developer creates dockerfile
- For extractors this should contain only the tool, its dependencies, and the extractor
- For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
- (Rui Liu, Inna Zharnitsky) Developer submits tool to Tools Catalog (using BrownDog account)
- (Done) BrownDog interface script(s), dockerfile, sample input, sample output
- TODO: Documentation on how to add tool to Tools Catalog
- (Done) Through web interface
- Through script in development environment (probably the ideal way)
- (Inna Zharnitsky, Marcus Slavenas) Admin reviews and tests tool by pressing button which deploys tool in a separate Clowder/Polyglot sandbox, passes in the given input file, and checks the obtained output file against what is provided
- Manual review source code and docker file
- If ok, reviewer submits tool for testing from tool catalog ui
- Build docker image using local parameters
- If user provides sample output run script to test inputs/outputs
- if not, manual inspections is required
- Scripts show pass/fail in tool script
- Admin click accept or reject
- (Rui Liu, Inna Zharnitsky) Admin deploys tool by selecting instances to deploy interface on
- e.g. dts-dev or dts
- selects minimum number of instances to provision (e.g. 5 instances)
- presses button to deploy
- Elasticity backend: deploy docker images, deploy VM images, stop.
- Tool Catalog UI: BD-733 (deploy), BD-954 (stop).
- Task: integration testing after the web UI part is done.
- (Sandeep Puthanveetil Satheesan) Admin receives status page showing number of tools deployed and where, load on each tool, etc...
- No support for this at this time.
- How to pull this from MongoDB
Using a Tool
- (Luigi Marini) API Gateway with keys and tokens (uses Crowd credentials)
- (Not for April 4) Forwarding user credentials to Clowder
- Clients
- (Jong Lee, Eugene Roeder) Simple web interface (requires BrownDog account)
- Web form with field box for file URL or upload
- Tool selection dropdown box (means of selecting a specific tool)
- Output select dropdown box (means of allowing system to select tool)
- Clowder will run all relevant extractors (obtained by selecting "json" as the output)
- Polyglot will use I/O-graph
- Suggestions pane will update below
- REST API performing this same operation
- Python code in Jupyter lab notebook
- R code
- Matlab code
- curl commands
- php