Spanda plugins extend the platform without modifying core. They complement the existing package and provider systems — packages supply Spanda language modules and official providers; plugins add Control Center UI, CLI commands, and lifecycle hooks for readiness, assurance, diagnosis, recovery, trust, health, and telemetry.
┌─────────────────────────────────────────────────────────────┐
│ Spanda CLI / API │
├─────────────────────────────────────────────────────────────┤
│ spanda plugin search | install | enable | inspect | trust │
├─────────────────────────────────────────────────────────────┤
│ spanda-plugin crate │
│ manifest · registry · security · loader · runtime · hooks │
├──────────────┬──────────────────────────────┬───────────────┤
│ Plugin API │ Capability enforcement │ Audit log │
│ (stable) │ (deny undeclared access) │ │
├──────────────┴──────────────────────────────┴───────────────┤
│ Packages & providers (unchanged) │
└─────────────────────────────────────────────────────────────┘
| Type | Purpose |
|---|---|
provider |
Extend provider integrations (complements spanda-providers) |
control-center-ui |
Dashboard panels, entity tabs, routes |
cli |
Namespaced CLI commands |
readiness |
Mission/readiness hooks |
assurance |
Assurance workflow hooks |
diagnosis |
Diagnosis completion hooks |
recovery |
Recovery workflow hooks |
trust |
Trust evaluation extensions |
health |
Health change hooks |
telemetry |
Telemetry stream extensions |
device-discovery |
Device discovery integrations |
report-generator |
Report generation |
solution-blueprint |
Solution template bundles |
| Priority | Format | Use case |
|---|---|---|
| P0 (default) | Sandboxed WASM (plugin.wasm) |
Production plugins |
| P1 | Native Rust dynamic library | Trusted local development only |
| P2 | TypeScript/JS (index.js) |
Control Center UI plugins only |
Default execution path: sandboxed WASM. Manifest-only plugins (metadata + hooks, no artifact) are supported for development and tests.
| Tier | Meaning |
|---|---|
official |
Spanda-published; signature required when signed = true |
verified |
Third-party verified publisher |
community |
Community registry entry |
experimental |
Early access |
deprecated |
Still listed; install discouraged |
blocked |
Install rejected |
spanda plugin search readiness
spanda plugin install --path examples/plugins/readiness-plugin
spanda plugin enable spanda-plugin-readiness-example
spanda plugin inspect spanda-plugin-readiness-example --json
spanda plugin trust spanda-plugin-readiness-example verified
spanda plugin disable spanda-plugin-readiness-example
spanda plugin uninstall spanda-plugin-readiness-example
spanda plugin install spanda-plugin-healthcare # registry name (tarball or local example fallback)
spanda healthcare readiness # namespaced command from enabled plugin manifest
Control Center API:
curl -s http://127.0.0.1:8787/v1/plugins
curl -s 'http://127.0.0.1:8787/v1/plugins/search?q=readiness'
curl -s -X POST http://127.0.0.1:8787/v1/plugins/install \
-H "Authorization: Bearer $SPANDA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"path":"examples/plugins/control-center-panel"}'
curl -s -X POST http://127.0.0.1:8787/v1/plugins/spanda-plugin-control-center-panel/enable \
-H "Authorization: Bearer $SPANDA_API_KEY"
curl -s http://127.0.0.1:8787/v1/plugins/control-center
curl -s http://127.0.0.1:8787/v1/plugins/control-center/spanda-plugin-control-center-panel/bundle
GET /v1/plugins returns inspect-style entries including control_center_panels for the
Marketplace UI. Install requires Provision; enable/disable require Operate.
Stable — promotion gate: ./scripts/plugin_stable_promotion_gate.sh ·
plugin-stable-promotion.md. Remote curated marketplace growth remains
Next.
| Example | Path |
|---|---|
| Readiness | examples/plugins/readiness-plugin/ |
| Report generator | examples/plugins/report-plugin/ |
| Device discovery | examples/plugins/device-discovery-plugin/ |
| Control Center panel | examples/plugins/control-center-panel/ |
| Healthcare solution | examples/plugins/healthcare-plugin/ |
| ADAS solution | examples/plugins/adas-plugin/ |
| Recovery orchestrator | examples/plugins/recovery-plugin/ |
Implementation lives in crates/spanda-plugin/. Installed plugins are stored under
.spanda/plugins/ in the project tree.