Skip to content
You're reading the docs for DRE 0.7 (v0.7.1). This page for 0.11

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.