Write A Plugin
The repository ships a working Go provider example under
examples/plugins/provider-go.
Start there when you want a minimal executable provider that speaks the public plugin protocol.
Build The Example Provider
Run this from examples/plugins/provider-go:
go build -o ./provider-go .Add A Manifest
Add a plugin.yaml or plugin.json to the plugin root.
For a releasable provider package, start with:
source: github.com/acme/plugins/example
version: 0.1.0
display_name: Example Provider
description: Minimal example provider
kinds:
- provider
provider:
base_url: https://example.invalid
operations:
- name: greet
method: GET
path: /greetSee Plugin Manifests for the full manifest model.
Package It
For a local package directory:
gestaltd plugin package --input ./my-plugin --output ./dist/my-plugin.tar.gzFor a release build:
gestaltd plugin release --version 0.1.0Use It From config.yaml
During local development, point at the binary directly:
integrations:
example:
plugin:
command: ./provider-go
config:
greeting: Hello from example pluginFor prepared deployments, point at the packaged archive:
integrations:
example:
plugin:
package: ./dist/my-plugin.tar.gz
config:
greeting: Hello from example pluginThen:
gestaltd init --config ./config.yaml
gestaltd serve --locked --config ./config.yamlShip A Web UI Instead
If the package should replace the embedded frontend, add the webui kind and
webui.asset_root to the manifest. The package can then be used from
ui.plugin.