HomeFeaturesPluginsDocsDownload

Plugin types

SQL Explorer is built around a small set of plugin types. Each is a folder with a manifest and an entry assembly, loaded at runtime.

typeWhat it isHost API
providerA database-engine integration (implements IDbProvider). Every engine is a provider plugin.ProviderHostApi
toolA one-shot action on a connection or node (e.g. backup, BACPAC export).ToolHostApi
mcpContributes tools to the host-owned MCP server for AI access.McpHostApi
extensionA long-lived subsystem: its own bottom panel, background work, menu items and managed connections, each behind per-capability consent.ToolHostApi
An extension is driven by the capabilities it declares (panel, background, menu, storage, connections, process). You consent to those when you install it. See the manifest reference.

Where plugins live

Each plugin is a folder plugins/<id>/ holding its plugin.json, entry DLL and private dependencies. There are two roots: bundled plugins ship next to the app (read-only), and user plugins install into your app-data folder (%AppData%/Lionear/SqlExplorer/plugins) with no admin rights. If both provide the same id, the user copy wins.

Isolation

Every plugin loads into its own AssemblyLoadContext. Only the SqlExplorer.Sdk contract and Avalonia are shared with the host — a plugin's own drivers and dependencies load privately, so it can pin whatever versions it needs without clashing with the app or other plugins. A broken plugin is captured as an error and logged; it never takes down the app.

Host-API versioning

Each plugin type has its own host-API version, bumped independently. A plugin records the hostApiVersion it was built against, and the loader accepts any version within the host's supported range — additive changes stay compatible, while a genuinely breaking change raises the floor. A plugin outside the range is skipped with a clear message rather than crashing the app.

Because load contexts can't be unloaded live, installing, removing, enabling or disabling a plugin takes effect on the next restart. Bundled plugins can't be removed or disabled.

Building your own

A plugin references only the MIT-licensed SqlExplorer.Sdk. For the developer guide and the full contract, see PLUGINS.md, and the manifest reference here for the plugin.json fields.