plugin-deploy-local
| Version | 2026.181.0001 |
| Repo | superproject |
| Plugin | yes — see the plugin reference |
OUT-OF-TREE charly DEPLOY plugin serving the local deploy SUBSTRATE —
target: local (host:local direct-shell) and host: user@machine (SSH)
deploys. A standalone Go module (go.mod + main.go) served over go-plugin gRPC
via the charly plugin SDK; charly’s loader host-builds the provider binary and
connects it OUT-OF-PROCESS (LocalTransport). The host’s plugin-side deploy target’s
Add Invokes it (OpExecute) with the deployment’s InstallPlan VIEWS (the serializable
per-step IR, with secrets injected + {{.Home}} resolved + each step’s teardown
ops captured host-side) + a venue descriptor, and the host’s executor served on
the broker (ShellExecutor for host:local, SSHExecutor for host:user@machine).
The plugin dials BACK through the SDK Executor and hands the plans to the shared
kit.WalkPlans: the plugin-renderable step kinds (Op/File/ShellHook +
env.d-managed-block/ShellSnippet/Service*/RepoChange) it EXECUTES itself via the
F2 reverse legs (RunSystem/RunUser/PutFile), echoing the host-computed reverse
ops; the HOST-ENGINE kinds (Builder/LocalPkgInstall/SystemPackages/act-Op/
ExternalPlugin) it drives over the RunHostStep reverse leg. It returns the
combined plugin-script + host-step reverse ops the host records in the install
ledger and replays at charly bundle del. The local-substrate production
sibling of candy/plugin-example-deploy (the F2/F3 witness) and candy/plugin-kube
(deploy:k8s); it replaces the former in-proc LocalDeployTarget.
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
check |
the out-of-tree deploy:local plugin ships a buildable Go module (go.mod + the provider main) the host can build + serve out-of-process |