[Plugins] section controls how the Kernel discovers and runs each
plugin. A plugin is identified by the name declared in its package metadata.
The configuration for that name is then used when the plugin is loaded.
Default configuration
[Plugins.default] provides a base configuration for discovered plugins. A
[Plugins.<name>] table is merged on top of that base to produce the effective
configuration for one plugin.
The merge rules are:
- a non-empty
Restartvalue replaces the default; - a non-empty
RunAsUservalue replaces the default; - a non-empty
Allowlist replaces the default group list; and Paramsare merged by key, with the per-plugin value taking precedence.
Allow = [] does not remove a non-empty
default Allow list in the current implementation.
Only a plugin with a matching name receives its named configuration. If a name
appears in [Plugins] but no matching package is found in PluginDir, the
Kernel reports that configured plugin as missing during its scan.
Restart
Despite its name, Restart currently controls whether the plugin starts
automatically when the Kernel starts. It is not a general crash-restart loop.
The following values enable automatic startup, ignoring case and surrounding
whitespace:
no, false, and off, disable automatic startup.
A disabled plugin can still be discovered by the plugin manager and started by
an explicit management action.
Changing Restart in the configuration does not by itself start or stop an
already running plugin. It is used when the Kernel decides which discovered
plugins to start during its startup sequence.
RunAsUser
RunAsUser selects the operating-system user used to run a gRPC plugin
process. An empty value means that the plugin runs as the current Arupa process
user.
Allow
Allow is the plugin-wide access restriction. It contains group names from
the Groups configuration:
Params
Params contains arbitrary string settings passed to the plugin during
registration:
[Plugins.default.Params] form the base. Keys in
[Plugins.<name>.Params] override matching default keys, while unrelated
default keys remain available to the plugin.
Environment references
A parameter value can refer to an environment variable instead of storing the value directly inconfig.toml:
env://NAMErequires the environment variable to exist. If it is missing, plugin loading fails.env://NAME?is optional. If the variable is missing, the plugin receives an empty string.- Values without the
env://prefix are passed through unchanged.
? must be the final character of the reference, and the environment
variable name must not contain surrounding whitespace.
Configuration changes
The Kernel can reload the plugin configuration without rebuilding the HTTP server. A reload updates the effective configuration held by the plugin manager and refreshes theAllow groups for loaded plugins. Changes to
Params, RunAsUser, or startup behavior are used when the plugin is next
loaded or started; they do not rewrite an already running plugin process.