DetectDrift currently classifies only Ghost / InSync / Unknown — Config-drift detection was deferred from PR #46 because the IaCProvider interface receives only refs, not the parsed declared config. Without access to the spec, drivers like VPC and AppPlatform that read desired values from spec.Config can't compute meaningful drift (empty-spec defaults like canonicalExpose=public cause false positives).
Two viable paths:
-
Interface signature change (workflow-side): DetectDrift takes (refs, map[ref]applied-spec) so the workflow caller injects the desired config from state's recorded outputs. Cleanest from the operator's perspective.
-
Plugin-local state access: DetectDrift internally reads from the state-store (via DOProvider's existing client). Couples the provider to state-store implementation but keeps the interface stable.
Either approach unlocks DriftClassConfig classification within DetectDrift. Until then, operators use `wfctl infra plan` which already has the spec and surfaces config drift as plan actions.
DetectDrift currently classifies only Ghost / InSync / Unknown — Config-drift detection was deferred from PR #46 because the IaCProvider interface receives only refs, not the parsed declared config. Without access to the spec, drivers like VPC and AppPlatform that read desired values from spec.Config can't compute meaningful drift (empty-spec defaults like canonicalExpose=public cause false positives).
Two viable paths:
Interface signature change (workflow-side): DetectDrift takes (refs, map[ref]applied-spec) so the workflow caller injects the desired config from state's recorded outputs. Cleanest from the operator's perspective.
Plugin-local state access: DetectDrift internally reads from the state-store (via DOProvider's existing client). Couples the provider to state-store implementation but keeps the interface stable.
Either approach unlocks DriftClassConfig classification within DetectDrift. Until then, operators use `wfctl infra plan` which already has the spec and surfaces config drift as plan actions.