You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`workflow-plugin-digitalocean` v0.14.3 (latest) doesn't register the `workflow.plugin.external.iac.IaCProviderRequired` gRPC service that wfctl v0.27.7+ demands as a strict-cutover gate (workflow PR #609, typed-IaC cutover).
Result: every `wfctl infra plan`/`apply`/`bootstrap` invocation fails immediately with:
```
error: plugin "digitalocean" does not register the required
"workflow.plugin.external.iac.IaCProviderRequired" gRPC service —
upgrade with: wfctl plugin update digitalocean
```
The advice in the error message can't actually be followed — there is no DO plugin release with the service registration.
Root cause
`go.mod` pins `github.com/GoCodeAlone/workflow v0.27.1`, which predates the typed-IaC SDK additions (PR #602/#603/#606/#610/#618 → v0.50.0). The plugin's `cmd/main.go` needs to:
Bump workflow dep to v0.27.7+ (or v0.50.x).
Switch from `sdk.ServePlugin` to whatever the new typed-IaC entry point is (`ServePluginFull` if it accepts an IaCProviderRequired arg, or a dedicated `ServeIaCProvider` helper).
Declare the typed-IaC contract in plugin.contracts.json (or whatever the new mechanism is — see workflow#609 PR description).
Reproduction
BMW pilot deploy chain. Run 25634208295 on sha 68431cc5 (BMW PR 268 merge):
```
Plan staging infra
…
[external-plugins] starting plugin "digitalocean" (version v0.14.3)
[external-plugins] plugin "digitalocean" loaded successfully
[external-plugins] shutting down plugin "digitalocean"
error: plugin "digitalocean" does not register the required
"workflow.plugin.external.iac.IaCProviderRequired" gRPC service
```
The plugin connects, advertises capabilities, then gets rejected by the strict-cutover gate before any provider call lands.
Blast radius
This blocks every BMW deploy + every infra-touching CI pipeline that pins wfctl v0.27.7+. Workarounds are bad:
Pin wfctl ≤ v0.27.6 → loses workflow PR #620 (iac_provider/provider disambiguation) which is also required for BMW eventbus resources. No version of wfctl supports BMW today.
Run wfctl in a non-strict mode → no such mode exists per workflow PR #609 ("force-cutover, no compat" per the user mandate documented in memory `feedback_force_strict_contracts_no_compat`).
Both BMW (`workflow-plugin-eventbus issue #5` for non-cloud resources) and any other consumer pinning v0.27.7+ are blocked until this lands.
Recommendation
Cut a v0.15.0 (or v0.50.x to mirror workflow's major) of `workflow-plugin-digitalocean` with:
workflow dep bumped to v0.50.x
IaCProviderRequired gRPC service registered via the typed-IaC SDK
plugin.contracts.json updated to declare the contract
Related
workflow PR #609 (typed-IaC strict-cutover, in v0.27.7)
workflow PR #618 (typed-RPC capability discovery at 5 dispatch sites, in v0.50.0)
workflow PR #620 (iac_provider/provider disambiguation, in v0.50.1) — also needed
Summary
`workflow-plugin-digitalocean` v0.14.3 (latest) doesn't register the `workflow.plugin.external.iac.IaCProviderRequired` gRPC service that wfctl v0.27.7+ demands as a strict-cutover gate (workflow PR #609, typed-IaC cutover).
Result: every `wfctl infra plan`/`apply`/`bootstrap` invocation fails immediately with:
```
error: plugin "digitalocean" does not register the required
"workflow.plugin.external.iac.IaCProviderRequired" gRPC service —
upgrade with: wfctl plugin update digitalocean
```
The advice in the error message can't actually be followed — there is no DO plugin release with the service registration.
Root cause
`go.mod` pins `github.com/GoCodeAlone/workflow v0.27.1`, which predates the typed-IaC SDK additions (PR #602/#603/#606/#610/#618 → v0.50.0). The plugin's `cmd/main.go` needs to:
Reproduction
BMW pilot deploy chain. Run 25634208295 on sha 68431cc5 (BMW PR 268 merge):
```
Plan staging infra
…
[external-plugins] starting plugin "digitalocean" (version v0.14.3)
[external-plugins] plugin "digitalocean" loaded successfully
[external-plugins] shutting down plugin "digitalocean"
error: plugin "digitalocean" does not register the required
"workflow.plugin.external.iac.IaCProviderRequired" gRPC service
```
The plugin connects, advertises capabilities, then gets rejected by the strict-cutover gate before any provider call lands.
Blast radius
This blocks every BMW deploy + every infra-touching CI pipeline that pins wfctl v0.27.7+. Workarounds are bad:
Both BMW (`workflow-plugin-eventbus issue #5` for non-cloud resources) and any other consumer pinning v0.27.7+ are blocked until this lands.
Recommendation
Cut a v0.15.0 (or v0.50.x to mirror workflow's major) of `workflow-plugin-digitalocean` with:
Related
🤖 Filed by Claude Code on behalf of the BMW deploy debug chain