Skip to content
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

shiny-cromwell v1.2.0 Updates #163

Draft
wants to merge 104 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
19085ea
started playing with bslib as replacement for shinydashboard and frie…
sckott Aug 12, 2024
324a26e
always use the same port for now since auto watch for changes is not …
sckott Aug 19, 2024
ac598f5
change buttons to btn-sm
sckott Aug 19, 2024
043450c
change submission page output to a list of workflow id and status
sckott Aug 19, 2024
dceed4e
wip on bslib conversion #49
sckott Aug 21, 2024
162024e
Merge branch 'dev' into bslib
sckott Aug 21, 2024
7f19f6b
install bsicons in docker file
sckott Aug 21, 2024
2d9a62f
test commit
dtenenba Aug 21, 2024
f9278a0
add code to deploy review image
dtenenba Aug 21, 2024
fe693e2
Fixing tab name on welcome page
tefirman Aug 27, 2024
7ede7c2
merge from dev
sckott Aug 27, 2024
aea434d
install bslib in dockerfile
sckott Aug 27, 2024
5a40346
add details tab and fix linking from details tab to tracking tab
sckott Aug 28, 2024
2d845d4
clean up tracking tab: cleaner design, fit to page, controls moved to…
sckott Aug 28, 2024
fe3f047
PROOF servers tab: use bslib tooltips; fix styling on proof servers page
sckott Aug 29, 2024
945e8cc
add js libs back into the head elements of pages
sckott Aug 29, 2024
6e108c2
remove old wdl and viewer tabs
sckott Aug 29, 2024
0798b2e
fix linking to and from the job details tab
sckott Aug 29, 2024
500a2fb
merge from dev
sckott Sep 3, 2024
6b2c76e
significant rearrangement of content in the app
sckott Sep 3, 2024
d4531be
add parsedate pkg to Dockerfile
sckott Sep 3, 2024
2f3a290
fix workflow details workflow ID UI to be empty without a selected wo…
sckott Sep 4, 2024
226eb7b
a bunch of changes following sonus study
sckott Sep 19, 2024
61d23f4
run tests before trying to access app
dtenenba Sep 19, 2024
89bb83a
fix date filtering for tracking page: add times to dates
sckott Sep 20, 2024
be08f20
change Running badge color in workflow cards to match other colors
sckott Sep 20, 2024
e1bce98
use random ids for labels if not supplied; show workflow labels on wo…
sckott Sep 20, 2024
36a86ce
change workflow description tab in workflow details to be a list inse…
sckott Sep 24, 2024
97df769
Adding dummy update to trigger GitHub action
tefirman Sep 30, 2024
1e11983
use R-4.4 base image
dtenenba Sep 30, 2024
0bc483f
change tracking page intro buttons to text
sckott Sep 30, 2024
187045e
install testthat
dtenenba Sep 30, 2024
ae2000e
change status bootstrap buttons on each card on tracking page to just…
sckott Sep 30, 2024
c2e3f17
install shinylogs
dtenenba Sep 30, 2024
6bbce73
remove --no-cache
dtenenba Sep 30, 2024
c43176c
install binary R packages
dtenenba Sep 30, 2024
fe18349
Merge branch 'bslib' into r-44-test
tefirman Oct 1, 2024
2ac97a5
Merge pull request #143 from FredHutch/r-44-test
tefirman Oct 1, 2024
26a28d8
Merge pull request #129 from FredHutch/bslib
tefirman Oct 1, 2024
87b364e
remove unused code
sckott Sep 30, 2024
73de7ec
add links to each page from the get started welcome page bulleted list
sckott Oct 1, 2024
71ec8af
remove more unused cod
sckott Oct 1, 2024
41a5c4d
remove abort card from troubleshoot page; add abort button to each ca…
sckott Oct 1, 2024
ba16632
remove unused ui components
sckott Oct 1, 2024
086c3c6
fix #132 remove DIY cromwell login button if PROOF logged in; also ad…
sckott Oct 1, 2024
96ba467
update users proof url in cookies db upon proof server start and dele…
sckott Oct 3, 2024
d467803
add more statuses to top of tracking page, swap a few colors, simplif…
sckott Oct 3, 2024
212a4e5
#112 partial name match in workflow name search - not done yet
sckott Oct 3, 2024
19dd91d
remove value param in selectInput
sckott Oct 3, 2024
b619c84
rework cards updating in backend, add label text inputs
sckott Oct 16, 2024
1f0c6ec
fix #146 old cold clean up
sckott Oct 17, 2024
6a5cde0
Merge pull request #149 from FredHutch/clean-out-old-code
tefirman Oct 21, 2024
1caf5cd
Merge pull request #148 from FredHutch/workflow-name-select
tefirman Oct 23, 2024
ec1df5e
remove debugging print statements; fix observeEvent for filters to tr…
sckott Oct 23, 2024
7836235
fix sort in filters, wasnt wired up to actually work yet
sckott Oct 23, 2024
a71dd01
Merge pull request #161 from FredHutch/fix-filtering-problems
sckott Oct 23, 2024
f3bc010
Revert "Merge pull request #148 from FredHutch/workflow-name-select"
sckott Oct 24, 2024
b962c51
fix #154 navbar changes
sckott Oct 24, 2024
8f69367
fix #155 change "this" to proof and what the acronym means
sckott Oct 24, 2024
1742199
#156 changed headings on help page and added email and open an issue …
sckott Oct 24, 2024
127263c
fix #156 - add back code last date change, commit sha and link to repo
sckott Oct 25, 2024
833ba35
#157 server page: make Notes consistent, use bootstrap alerts for the…
sckott Oct 25, 2024
108b116
fix #157 add spinner for loading server details on server page
sckott Oct 25, 2024
50e8ae3
#158 submit pages changes:
sckott Oct 25, 2024
95cb8bd
undo addition of server spinner in 108b116b6cadd73f0ed107c504c4dcc82d…
sckott Oct 25, 2024
0278065
#159 track workflow page: each card
sckott Oct 25, 2024
57064c2
#159 added spinner for workflow details buttons on each click, and re…
sckott Oct 26, 2024
0e1a4d0
possible fix for 401 error
sckott Oct 28, 2024
1392c9c
change server start disable toggle - run toggle only if logged in and…
sckott Oct 28, 2024
c3f5439
move cromwellProofStatusData call in proofStatusTextGenerator within …
sckott Oct 28, 2024
1e5af36
fix #159 add spinner loading to cards on tracking page
sckott Oct 28, 2024
37ac9a6
#158 submit page, disable submit button on page load, and disable but…
sckott Oct 28, 2024
a80d551
#160 move troubleshoot tab into workflow details tab
sckott Oct 28, 2024
92c3de9
clean up workflow details page to have each panel be its own R object
sckott Oct 28, 2024
d03bdba
#160 rework header of workflow details, name and labels on left, ID o…
sckott Oct 28, 2024
c3606d1
#160 workflow details work
sckott Oct 29, 2024
6115cc0
code cleanup, remove an old file, and remove focus_id stuff
sckott Oct 29, 2024
a079cef
#160 workflow details - add no data alerts to tabs where appropriate;…
sckott Oct 29, 2024
8a03d23
make login button green and add spinner to login modal; FH logo link …
sckott Oct 29, 2024
487481c
bump mermaid.js to 11.4.0
sckott Oct 30, 2024
5197a40
Merge pull request #162 from FredHutch/ui-changes
tefirman Oct 30, 2024
dc5bf78
remove commented out code in ui
sckott Oct 30, 2024
c8a6015
remove unused help_html in ui_components
sckott Oct 30, 2024
051860c
remove unused old code
sckott Oct 30, 2024
f3aee7b
change tooltip_style to 1.1rem - 1.5 was too big
sckott Oct 30, 2024
dcef38c
use again in app: enter to submit on buttons, google analytics, toolt…
sckott Oct 30, 2024
719168a
make code more consistent
sckott Oct 31, 2024
a64e649
fix #165 add a button for updating jobs list data
sckott Oct 31, 2024
654e8b2
fix #164 clear/reset ui outputs in workflow details page
sckott Nov 1, 2024
08f4ff9
fix date sorting - was not working before, now wired up
sckott Nov 1, 2024
630b961
120 days of history instead of 60
sckott Nov 1, 2024
20a9d9b
add a constants file - thinking ahead to isolating those in one place
sckott Nov 1, 2024
b2068c2
fix #173 wire up date sorting user input so it actually does somethin…
sckott Nov 1, 2024
296d3d4
fix #176 remove text input requirement for stop server modal
sckott Nov 5, 2024
c782f5a
Merge pull request #169 from FredHutch/bits-bobs
tefirman Nov 7, 2024
3727d0b
Merge branch 'dev' into update-job-list
tefirman Nov 7, 2024
0c71dcf
Merge pull request #170 from FredHutch/update-job-list
tefirman Nov 7, 2024
7ab80d2
Merge branch 'dev' into clear-old-details-data
tefirman Nov 7, 2024
7335ef6
Merge pull request #171 from FredHutch/clear-old-details-data
tefirman Nov 7, 2024
75c8814
Merge pull request #174 from FredHutch/date-sorting
tefirman Nov 7, 2024
7883ac5
fix #183 change link for data house call
sckott Nov 13, 2024
eb68f2a
fix #184 add panel for contact dropdown of email and github issues op…
sckott Nov 13, 2024
ec8edf5
fix #186 add units to time on each card on tracking page
sckott Nov 14, 2024
40da82e
fix #188 make rows in job list on details page disabled (Can not be s…
sckott Nov 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 3 additions & 12 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@ stages:
- build
- test
- deploy


build:
stage: build
script: |
python3 build_helper.py docker-compose.yml --fluentd-logging > /dev/null
echo $DB_CONFIG | base64 -d > .my.cnf
docker build --no-cache \
docker build \
-t sc-registry.fredhutch.org/shiny-cromwell:test \
--build-arg CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH} \
--build-arg CI_COMMIT_SHA=${CI_COMMIT_SHA} \
Expand All @@ -48,18 +49,8 @@ test:
# env
# curl -si http://shiny-cromwell:3838/
# docker logs $CONTAINER_ID
curl -sI http://shiny-cromwell:3838 | head -1 | grep -q "200 OK"
docker run -w /srv/shiny-server --rm sc-registry.fredhutch.org/shiny-cromwell:test R -q -e 'testthat::test_dir("tests")'

deploy_review_image:
stage: deploy
except:
refs:
- main
- dev
script:
- docker tag sc-registry.fredhutch.org/shiny-cromwell:test nexus-registry.fredhutch.org/scicomp-nexus/${CI_PROJECT_NAME}:${CI_COMMIT_BRANCH}
- docker push nexus-registry.fredhutch.org/scicomp-nexus/${CI_PROJECT_NAME}:${CI_COMMIT_BRANCH}
curl -sI http://shiny-cromwell:3838 | head -1 | grep -q "200 OK"

deploy_review_image:
stage: deploy
Expand Down
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
FROM fredhutch/r-shiny-server-base:4.3.2
FROM fredhutch/r-shiny-server-base:4.4.1

RUN apt-get update -y && apt-get install -y libssh-dev python3-pip git libmariadb-dev

RUN R -q -e 'install.packages(c("ellipsis"), repos="https://cran.rstudio.com/")'
RUN R -q -e 'install.packages(c("shiny"), repos="https://cran.rstudio.com/")'
RUN R -q -e 'install.packages(c("shinyFeedback", "shinyWidgets", "shinydashboard", "shinydashboardPlus", "ssh", "remotes", "markdown", "lubridate", "jsonlite", "dplyr", "DT", "glue", "httr", "purrr", "RColorBrewer", "rlang", "shinyBS", "shinyjs", "tidyverse", "uuid", "memoise", "rclipboard", "shinyvalidate", "shinylogs", "testhat", "bsicons", "listviewer", "cookies", "RMariaDB", "DBI"), repos="https://cran.r-project.org")'
RUN R -q -e 'install.packages(c("shinyFeedback", "shinyWidgets", "shinydashboard", "shinydashboardPlus", "ssh", "remotes", "markdown", "lubridate", "jsonlite", "dplyr", "DT", "glue", "httr", "purrr", "RColorBrewer", "rlang", "shinyBS", "shinyjs", "tidyverse", "uuid", "memoise", "rclipboard", "shinyvalidate", "shinylogs", "testhat", "bsicons", "listviewer", "htmltools", "cookies", "RMariaDB", "DBI", "parsedate", "testthat", "shinylogs", "ids", "shinycssloaders"), repos="https://cran.r-project.org")'

RUN R -q -e "remotes::install_github('getwilds/[email protected]')"

RUN R -q -e "remotes::install_github('getwilds/[email protected]')"

RUN R -q -e "remotes::install_github('rstudio/bslib')"

ADD .my.cnf /root/

# python wdl2mermaid setup:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ DEPS := $(shell ${RSCRIPT} -e 'invisible(lapply(c("glue", "cli"), require, chara

run:
${RSCRIPT} -e "options(shiny.autoreload = TRUE)" \
-e "shiny::runApp(\"app\", launch.browser = TRUE)"
-e "shiny::runApp(\"app\", launch.browser = TRUE, port = 4026)"

run_docker:
docker build --platform linux/amd64 -t shiny-cromwell:app .
Expand Down
13 changes: 5 additions & 8 deletions app/about.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
This is a [Shiny](https://shiny.posit.co/) app being developed by the [Fred Hutch Data Science Lab, DaSL](https://hutchdatascience.org/) that simplifies user interactions with a [Cromwell](https://cromwell.readthedocs.io/en/stable/) server, an open source [WDL](https://openwdl.org/) workflow engine that can be used with a range of HPC backends. We are developing this application alongside Fred Hutch oriented infrastructure with the intention to develop open source resources to enable others to do the same.

## Fred Hutch Users
At Fred Hutch, we offer a service for supporting the use of our on-premise HPC cluster to run WDL workflows called PROOF. To use this app at Fred Hutch, choose the "PROOF Login" button at the top of the page and enter your Fred Hutch credentials to get started.

### Resources
### Getting Help with PROOF and WDL at Fred Hutch
- Get started with PROOF [How-To documentation](https://sciwiki.fredhutch.org/dasldemos/proof-how-to/) and [troubleshooting tips](https://sciwiki.fredhutch.org/dasldemos/proof-troubleshooting/)
- Ask a question about or report a problem with PROOF in our [GitHub repository](https://github.com/getwilds/proof/issues/new?template=Blank+issue)
- Email us at [[email protected]](mailto:[email protected])
- Find curated WDL workflow repositories and containers in Fred Hutch [DaSL's getWILDS GitHub organization](https://github.com/orgs/getwilds/repositories?q=wdl).
- Find Cromwell and WDL Resources in [Fred Hutch's GitHub organization](https://github.com/FredHutch?utf8=%E2%9C%93&q=wdl+OR+cromwell&type=&language=).
- Learn about Cromwell and WDL on the [Fred Hutch Biomedical Data Science Wiki](https://sciwiki.fredhutch.org/compdemos/Cromwell/).
- Join the community in the [#workflow-managers FH-Data Slack channel](https://fhdata.slack.com/archives/CJFP1NYSZ), (open to all Fred Hutch, UW and Seattle Children's staff using their work emails).
- Get Help from Fred Hutch DaSL staff through [Data House Calls](https://hutchdatascience.org/datahousecalls/).
- Get Help from Fred Hutch DaSL staff through [Data House Calls](https://calendly.com/data-house-calls/resources).


## Users Elsewhere
This Shiny app and the R packages it relies on are all open source. Thus, if you are at a different institution and want to use this application to support your work or your users, we encourage you to look through our resources and fork our repositories. Feel free to contact DaSL developers by filing issues or emailing `[email protected]`. For this use case, we have provided the more general "DIY Cromwell" login button at the top.

### Resources
### Some Resources for Using Cromwell
- DIY: Get a Cromwell server running by yourself (does not require logging in). To learn more about how to get your Cromwell server running, read through the instructions in the GitHub repo [FredHutch/diy-cromwell-server](https://github.com/FredHutch/diy-cromwell-server)
- `rcromwell`: An [R package](https://github.com/getwilds/rcromwell) that makes interacting with the Cromwell API easier.
- `shiny-cromwell`: This app's [GitHub repo](https://github.com/FredHutch/shiny-cromwell) contains information on how to set started with this application.
Expand Down
8 changes: 6 additions & 2 deletions app/buttons.R
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ logInButton <-
actionButton(
inputId = "proofAuth",
label = "PROOF Login",
class = "btn-success btn-sm",
style = "color: white;",
icon = icon("truck-fast")

)
logOutButton <-
actionButton(
inputId = "proofAuthLogout",
label = "PROOF Logout",
class = "btn-danger",
class = "btn-danger btn-sm",
style = "color: white;",
icon = icon("arrow-right-to-bracket")
)
Expand All @@ -18,13 +20,15 @@ logInCromwellButton <-
actionButton(
inputId = "ownCrom",
label = "DIY Cromwell",
class = "btn-sm",
style = "color: white;",
icon = icon("plug-circle-xmark")
)
logOutCromwellButton <-
actionButton(
inputId = "proofCromwellLogout",
label = " Exit",
class = "btn-danger",
class = "btn-danger btn-sm",
style = "color: white;",
icon = icon("arrow-right-to-bracket")
)
1 change: 1 addition & 0 deletions app/constants.R
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DAYS_WORKFLOW_HISTORY <- 120
20 changes: 9 additions & 11 deletions app/modals.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ loginModal <- function(failed = FALSE, error = "Invalid username or password") {
},
footer = tagList(
modalButton("Cancel"),
actionButton("submit", "Submit")
shinyFeedback::loadingButton(
inputId = "submit",
label = "Submit",
class = "btn btn-default"
)
),
easyClose = TRUE
)
Expand Down Expand Up @@ -67,21 +71,15 @@ verifyCromwellDeleteModal <- function(failed = FALSE, error = "Woops, an error!
"Stop your PROOF server. Although you can't undo this action, you can start up another one anytime!",
br(),
br(),
textInput(
inputId = "stopCromwell",
label = div(HTML("To stop your server, confirm by typing<br> <em>delete me</em> into the field."))
),
if (failed) {
div(tags$b(error, style = "color: red;"))
},
footer = tagList(
modalButton("Cancel"),
shinyjs::disabled(
shinyFeedback::loadingButton(
inputId = "deleteCromwell",
label = "Stop Server",
class = "btn btn-warning"
)
shinyFeedback::loadingButton(
inputId = "deleteCromwell",
label = "Stop Server",
class = "btn btn-warning"
)
),
easyClose = TRUE
Expand Down
Loading