Principle:Apache Dolphinscheduler Plugin Artifact Provisioning
| Knowledge Sources | |
|---|---|
| Domains | Operations, Plugin_Management |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Principle that defines how plugin artifacts are downloaded from a repository and organized on disk based on a declarative configuration, enabling modular runtime extension.
Description
Plugin Artifact Provisioning addresses the need to keep a plugin-based system modular by not bundling all plugins into the base distribution. Instead, a declarative configuration file lists which plugins are needed, grouped by category (task plugins, alert plugins, etc.). A provisioning script reads this configuration, creates the appropriate directory structure, and downloads the correct versioned artifacts from a central repository. This enables operators to install only the plugins they need, reducing deployment size and attack surface.
Usage
Apply this principle when designing a pluggable system where plugins are distributed as separate artifacts. The declarative configuration file serves as the single source of truth for which plugins are installed. Operators modify this file to add or remove plugins, then re-run the provisioning script.
Theoretical Basis
The provisioning process follows a Declarative Configuration → Imperative Resolution pattern:
1. Parse Configuration: Read a structured file that maps categories to artifact identifiers.
2. Create Directory Structure: Ensure the target directory tree matches the declared categories.
3. Resolve and Download: For each artifact, query the repository for the specified version and download the artifact to the correct directory.
# Abstract algorithm description
config = parse_plugin_config(config_file)
for category, artifacts in config.items():
create_directory(plugins_dir / category)
for artifact_id in artifacts:
jar = repository.download(
group="org.apache.dolphinscheduler",
artifact=artifact_id,
version=target_version,
classifier="shade"
)
install(jar, plugins_dir / category)