Publishing a glasstabs Workflow to Posit Connect
Source:vignettes/posit-connect.Rmd
posit-connect.RmdOverview
runGlassExample("connect-workflow") opens a Shiny page
designed to be published to Posit Connect. It demonstrates a practical
review workflow:
- filters define the active queue with
glassSelect()andglassMultiSelect() -
glassTabsUI(orientation = "vertical", indicator = "solid")guides users through intake, exploration, and approval -
updateGlassTabBadge()keeps tab badges aligned with the filtered data -
updateGlassTabsUI()moves reviewers to the next stage from server actions -
theme = "auto"follows Bootstrap 5 / bslib light and dark modes
Run locally
library(glasstabs)
if (interactive()) {
runGlassExample("connect-workflow")
}Manifest
The example folder ships with a manifest.json generated
by rsconnect::writeManifest(). The app adapts to the
installed glasstabs version: it uses the enhanced
indicator, orientation, and
theme = "auto" arguments when available, and falls back to
the CRAN-compatible tab API when Connect restores the CRAN package from
the manifest. Regenerate the manifest after changing the app or its
dependencies:
rsconnect::writeManifest(appDir = "inst/examples/connect-workflow")Deploy to Posit Connect
The example is a self-contained Shiny app folder with
app.R and manifest.json. In a package
checkout, deploy it directly:
rsconnect::deployApp(
appDir = "inst/examples/connect-workflow",
appName = "glasstabs-connect-workflow",
appTitle = "glasstabs Connect Workflow"
)If you are deploying from an installed package, copy the example folder first:
example_dir <- system.file("examples", "connect-workflow", package = "glasstabs")
file.copy(example_dir, "connect-workflow", recursive = TRUE)
rsconnect::deployApp(
appDir = "connect-workflow",
appName = "glasstabs-connect-workflow",
appTitle = "glasstabs Connect Workflow"
)Workflow pattern
The page uses a common Connect pattern: make the first screen the actual work surface, keep controls near the content they affect, and expose state through badges and compact metrics. That makes the app useful as a scheduled report, review queue, or operational handoff page without adding a separate landing screen.