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/control-center
| 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.