Plugins
Plugins extend Octopus functionality without modifying core code.
Overview01
Octopus supports two types of plugins:
Static Plugins: Compiled into the binary
Dynamic Plugins: Loaded at runtime from
.so/.dylib/.dllfiles
The plugin SDK, lifecycle runtime, and dynamic loader are implemented and
tested, but the gateway does not yet load plugins from your configuration.
The top-level plugins: array is parsed and validated, then ignored — the
server constructs an empty PluginManager with a TODO: Load plugins from
config.plugins, and no plugin runs on the request path today. Treat plugins as
a stable foundation for authoring, not an end-to-end runtime feature. For
request/response logic that is wired today, use middleware
or scripting. See Plugins & Scripting
for the honest, source-verified status.
Plugin Capabilities02
Plugins can provide:
Middleware: Process requests and responses
Protocol Handlers: Support custom protocols
Admin Routes: Extend admin dashboard
Metrics: Custom metrics collection
Storage: Persist plugin state
The plugins configuration array03
Each entry deserializes into a PluginConfig with these fields: name,
plugin_type (static or dynamic, default static), enabled (default
true), priority (ordering hint, higher runs first), and a free-form config
map passed to the plugin's init:
plugins:
- name: my-plugin
plugin_type: static
enabled: true
priority: 100
config:
some_key: some_valueThis is the real schema, but the array is not yet wired into request handling
(see the warning above). Configuring a plugin here has no runtime effect today.
builtin: true and a bare path: are not fields — delivery is selected via
plugin_type. See Plugins & Scripting.
Developing Plugins04
See Writing a Plugin for creating custom plugins
against the octopus-plugin-api SDK.
Plugin Lifecycle05
Load: Plugin binary loaded
Configure: Configuration applied
Start: Plugin starts processing
Running: Plugin active
Shutdown: Plugin cleanup
Next Steps06
Writing a Plugin - Create plugins
Plugins & Scripting - The plugin model and honest status
Built-in Plugins - What ships in the box today
Scripting - The embedded Rhai engine