aurora 0.1.12
CRAN review fixes
- Package code no longer modifies the global environment:
aurora_app()now sourceshelpers/*.Rinto a dedicated environment (parented on the global env) and parses each router withparse_file(env = )so handlers still resolve helpers, without anything landing in.GlobalEnv. - The YAML emitters no longer carry a default output path:
aurora_shinyproxy_yaml()andaurora_ruscker_yaml()takefile = NULLand require an explicit path whenwrite = TRUE(no writes togetwd()by default). -
DESCRIPTIONadds an auto-linked reference to the ‘plumber2’ web framework.
Changes
-
aurora_dockerfile()default pin bumped to@v0.1.12.
aurora 0.1.11
New
-
aurora_ruscker_yaml()emits a Ruscker app spec for a built aurora image, the counterpart toaurora_shinyproxy_yaml(). Ruscker is a lightweight ShinyProxy alternative that reads the sameapplication.ymlschema; since an aurora app is a stateless ‘plumber2’ API, the spec usestype: apiwith anapi:block (port,docs-path,health-path, optionalrate-limit/cors) and a replica pool (min-replicas/max-replicas). Seevignette("deploy").
Changes
-
aurora_dockerfile()default pin bumped to@v0.1.11(now@v0.1.12).
aurora 0.1.10
Changes
- CRAN resubmission: the plumber2 documentation link in
README.mdnow points to the canonicalhttps://plumber2.posit.co/(the oldhttps://posit-dev.github.io/plumber2/returned a 301 redirect, flagged by CRAN incoming checks).aurora_dockerfile()default pin bumped to@v0.1.10.
aurora 0.1.9
Changes
- CRAN submission polish: the pkgdown URL in DESCRIPTION/README is now the canonical form (trailing slash, no redirect).
aurora_dockerfile()default pin bumped to@v0.1.9.
aurora 0.1.8
New
-
_aurora.ymlgains an optionalstatics:key – a map of URL prefix to directory, served byaurora_app()at that prefix in addition towww/at/. Lets several apps share assets (logo, JS libraries, CSS) from one server-side directory mounted as a volume. Relative paths resolve against the app root; a missing directory (e.g. an unmounted volume) is skipped with a warning so the app still starts. The root path/stays reserved forwww/. Seevignette("deploy")and ADR-018.
aurora 0.1.7
Changes
- CRAN preparation: templates no longer ship hidden files. The template
.dockerignoreis bundled un-hidden (asdockerignore) and renamed byaurora_create_app(); the emptywww//www/images/.gitkeepplaceholders are gone (the scaffold createswww/images/itself). Scaffolded apps are unchanged.R CMD check --as-cranis now 0/0/0. -
aurora_dockerfile(aurora_source = )default pin bumped to@v0.1.7.
aurora 0.1.6
New
-
aurora_build_image(platform = )selects the image’s target platform viadocker build --platform, defaulting to"linux/amd64"so images built on Apple Silicon run on the usual x86-64 servers (an arm64 image fails there withexec format error). Passplatform = NULLto build for the host architecture.
aurora 0.1.5
Changes
-
aurora_dockerfile(locale = )now defaults to"pt_BR.UTF-8"(matching thetz = "America/Recife"default). Passlocale = "C.UTF-8"for the universal UTF-8 locale, or any other. -
debian: a specific locale is now generated in the image (
apt-get install locales+locale-gen), since the rocker/Ubuntu base ships only en_US.UTF-8. Combined with the alpinemusl-localessupport, a non-C locale works on both flavors out of the box.
aurora 0.1.4
New
-
aurora_dockerfile(locale = )controls the imageENV LANG/LC_ALL(default"C.UTF-8"), pairing withtz =. -
tzandlocalearguments are now validated at generation time: an unknown timezone (not inOlsonNames()) errors instead of silently falling back to UTC in the container; a non-UTF-8 locale warns.
aurora 0.1.1
Hardening and ergonomics distilled from migrating and containerizing a real app.
New
-
aurora_config()readsdata/config.ymlanchored to the app root (no cwd pitfall). -
aurora_check()lints an app: UI code in runtime helpers, packages used but undeclared in_aurora.yml, missing prebuilt UI. - JSON serializer helpers
aurora_unbox()/aurora_geojson()/aurora_unique()(NULL-safe unbox / sf -> GeoJSON / sorted-unique). -
aurora_app(attach = )/_aurora.yml: attach:attaches the declared runtimepackages:before sourcing helpers, so handlers can call them unqualified. -
aurora_run(on_exit = )runs a cleanup function when the server stops (e.g.pool::poolClose()), on plumber2’s"end"lifecycle event. -
aurora_dockerfile(tz = )bakesENV TZ(defaultAmerica/Recife); the defaultaurora_sourceis pinned to a release tag for reproducible builds.
Fixes
- Helpers are sourced with the app directory as the working directory, so app-root-relative paths (
config::get("data/config.yml"),readRDS("data/x.rds")) resolve as they did under the plumber-v1 entrypoint. - Helper/router/UI-builder load failures name the offending file and hint a missing package, instead of a bare
loadNamespaceerror. - Alpine Dockerfiles get per-package system deps (
sf-> gdal/geos/proj,RPostgres-> libpq, …) plus gfortran/libgfortran;.dockerignoreexcludesdata/.
aurora 0.1.0
First release (2026-06-01). A complete dev loop, theming, UI↔︎API wiring, opt-in auth/data/telemetry, Docker/ShinyProxy generation, three worked examples, and a pkgdown site. R CMD check is clean (0 errors / 0 warnings).
Dev loop
-
aurora_create_app()(templates:minimal,auth),aurora_build_ui(),aurora_app(),aurora_run(),aurora_add_route(). -
aurora_run(watch = TRUE): live-reload rebuilds the static UI whenbuild_ui.R/ui_modules/change (polls vialater).
Theming
- Theming via brand.yml: the
minimaltemplate ships_brand.ymland usesbs_theme(version = 5, brand = TRUE); bslib bakes the theme into the static HTML at build time. aurora builds no theming layer.
UI ↔︎ API
-
aurora_component(): thin helper emitting an element wired to a JSON endpoint viadata-endpoint; app JS renders. No rendering JS shipped.
Auth (opt-in)
- JWT-cookie scheme
aurora_auth_jwt()+aurora_jwt_token(),aurora_jwt_decode(),aurora_jwt_guard(),aurora_set_auth_cookie(),aurora_clear_auth_cookie(). Theauthtemplate gates/api/*with a@headerguard andreqres::abort_unauthorized().
Data
-
aurora_data_store()+aurora_data_register(),aurora_data_get(),aurora_data_names(): globals-free store that hot-reloads a dataset when its file changes on disk.
Telemetry
- OpenTelemetry logging via
aurora_run(otel = TRUE)/aurora_app(otel=)/AURORA_OTEL— wiresapi_logger(logger_otel()), off by default.
Deploy
-
aurora_dockerfile()with aflavorargument:"debian"(default;rocker/r-ver+ Posit Package Manager binaries) or"alpine"(rhub/r-minimal-
installr, a tiny source-built image).aurora_build_image()andaurora_shinyproxy_yaml()(emits a ShinyProxyproxy.specsblock).
-
See the package website for the full reference and articles.