Plugin Protocol
Executable plugins let gestaltd extend integrations without compiling new code into the host binary.
What A Plugin Is
A plugin is a separate process started by gestaltd. The host and plugin communicate over a local Unix socket using the Gestalt plugin gRPC protocol.
One plugin kind is supported:
| Kind | Purpose |
|---|---|
| Provider plugin | Adds a provider for providers:. |
Startup Model
When gestaltd starts a plugin process, it:
- creates a temporary Unix socket
- sets
GESTALT_PLUGIN_SOCKETfor the child process - launches the plugin executable
- dials the plugin and validates protocol compatibility
- sends the plugin its name and config
The public Go SDK in sdk/go handles this for you.
Provider Plugin Contract
A provider plugin is expected to:
- report provider metadata such as name, display name, description, and connection mode
- expose its discovery catalog
- execute operations
- optionally expose a request-scoped catalog
- optionally expose a config schema
- optionally run startup logic when the host sends
StartProvider
The SDK’s ProviderStarter path receives:
- the configured integration name
- the plugin config block as a map
Config Placement
Provider plugin config lives here:
providers:
example:
from:
command: ./provider
config:
greeting: hello