ConduitIO / ConduitIO/conduit

Connectors/processors of an Import-provisioned pipeline stay tagged ProvisionTypeConfig

Open
#2,511 0 comments 0 reactions 0 assignees View on GitHub
housekeeping
Dominant language
Go
Stars
610
Forks
63
Avg merge
12h 28m
Merged PRs (30d)
57

Description

Follow-up from #1274 / PR #2510 (review nit N1).

After #2510, a pipeline created via the programmatic `Service.Import` is correctly tagged `ProvisionTypeAPI`, so it survives restart reconciliation. But its **connectors and processors** are still hardcoded to `connector.ProvisionTypeConfig` / `processor.ProvisionTypeConfig` (`pkg/provisioning/import_actions.go` `createConnectorAction.Do` / `createProcessorAction.Do`).

This does **not** affect #1274 (there is no connector/processor reconciliation sweep — `deleteOldPipelines` only sweeps pipelines, and deleting a pipeline cascade-deletes its connectors), so it's not data loss. But it creates an inconsistency: the orchestrator guards mutation on connector/processor `ProvisionedBy` (`pkg/orchestrator/connectors.go`, `processors.go`), returning `ErrImmutableProvisionedByConfig` ("please change the corresponding config file instead"). So an embedder that provisioned a pipeline via `Import` (API, mutable) **cannot update or delete that pipeline's connectors/processors via the orchestrator API** — they're treated as config-file-owned even though there is no config file.

**Fix:** thread the pipeline's provision type through `createConnectorAction` / `createProcessorAction` the same way #2510 did for the pipeline, so an API-provisioned pipeline's connectors/processors are also `ProvisionTypeAPI`.

Deferred from #2510 to keep that fix minimal and focused on the restart-deletion bug.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Contributor guide

Open the contributing guide

Research direction

Start in pkg/provisioning/import_actions.go at createConnectorAction.Do and createProcessorAction.Do, and compare their provision-type handling with the pipeline change from #2510. Trace the orchestrator guards in pkg/orchestrator/connectors.go and processors.go; done means API-imported connectors and processors are tagged ProvisionTypeAPI and can be mutated or deleted through the orchestrator API.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, data-engineering
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.