Skip to main content

Plugin Config Isolation

Each plugin receives only its own config namespace. It never sees other plugins' config or core config.

Config Isolation Flow

1. Core reads plugins.postgres from config.yaml
2. Core marshals it as json.RawMessage
3. Core passes it to plugin's Bootstrap(ctx, config) function
4. Plugin parses its own config struct
5. Plugin validates and applies (e.g., ctx.SQL("SELECT 1") to verify connectivity)

Config Schema for Wizard Generation

The plugin config schema is defined in the plugin's EngineDescriptor.config_schema field as JSON Schema. The core CLI uses this to:

  • Generate interactive setup wizards (arcan plugin setup postgres)
  • Validate config before passing to plugin
  • Document available config options (arcan plugin info postgres)