Skip to content
You're reading the docs for DRE 0.4 (v0.4.4). This page for 0.5 · New in 0.5

Managing plugins

However DRE is installed, only dre itself is. Every source, format and destination is a plugin package with its own version and releases (duckdb-v1.0.0, xlsx-v1.0.2, …): dre init, dre run, dre validate and dre compile download the ones a project declares, from GitHub Releases, and dre.lock pins them (see the registry docs). A plugin’s version doesn’t follow DRE’s: any DRE runs any plugin release that speaks its protocol.

To have them in place before the first run, e.g. on a machine or job that starts empty each time:

  • run dre deps in the project while building the image, or as its own CI or job step;
  • or point DRE_PLUGINS_DIR at a folder that outlives the run (a Databricks Volume, a shared mount, a folder in the image) and run dre deps once to fill it.

Downloads (the registry index, plugin packages, dre system update) give up on a connection after 30 seconds and on a response that sends nothing for 60, and are tried 3 times, on connection errors, timeouts, 429 and 5xx. There’s no total limit, so a slow but healthy download finishes. On a slow network, raise the 60 seconds with DRE_HTTP_TIMEOUT or in dre_project.yml:

flags:
http_timeout: 120

The tutorial project declares duckdb, csv and xlsx. Install its dependencies during runner setup, then require the run to use those installed versions:

Terminal window
cd examples/tutorial
dre deps
dre validate --no-auto-install
dre run --no-auto-install --preview 5
dre plugin list

--no-auto-install prevents an unexpected download in a locked-down runtime. If it reports plugin-not-installed, run dre deps during setup using the same DRE_PLUGINS_DIR as the job. An undeclared-plugin instead needs the package added to dependencies.yml; installing a binary alone does not declare the dependency.

To try a package explicitly, or move a pin within the project’s version constraint:

Terminal window
dre plugin install 'xlsx@^1' --project-dir my_reports
dre plugin update xlsx --project-dir my_reports
dre plugin remove xlsx@1.0.2 --project-dir my_reports

install chooses a requested release; update ignores the previous lock pin but obeys the constraint; remove deletes installed versions. Remove a version only after no active project uses it. With a shared plugins directory, another project can still need it. Commit the changed dre.lock after a deliberate update and validate the report before delivery.

plugin-install-failed can mean a network failure, checksum mismatch or unavailable platform build. Read the detailed cause rather than repeatedly loosening a version constraint. See dependency keys, the registry, and the glossary’s plugin package and lock file.