confluentinc / confluentinc/confluent-sql
Connection methods to create / check on / tear down Confluent "Connectors"
- Dominant language
- Python
- Stars
- 6
- Forks
- 1
- Avg merge
- 21h 47m
- Merged PRs (30d)
- 26
Description
Add `Connection` methods to create, inspect, and tear down Confluent **managed connectors** — parallel to the Tableflow lifecycle methods from #116 / PR #117, but a substantially larger surface.
## Why this is an epic, not one PR
Tableflow v1 is a 5-endpoint CRUD surface over one resource (we wrapped create/get/delete in a single PR). Connect v1 is seven sub-surfaces sharing a base path `/connect/v1/environments/{env}/clusters/{lkc}/connectors`: core CRUD, lifecycle actions (pause/resume/restart — no Tableflow analog), rich per-task status, offsets, plugin listing + config validation, and a BYO custom-connector upload/build surface. The create config is also an open-ended, connector-class-specific map rather than a small typed spec.
The control-plane plumbing from PR #117 — `controlplane_endpoint`, `_controlplane_request`, CMK `_resolve_kafka_cluster_id`, the `wait_for_` blocking convention — is reused as-is; the new work is connector types + methods on top.
## Architecture (established in #122)
The bulk lands in a new `connectors.py`: a pure layer (typed models + payload/parse, no I/O) and a `ConnectorApi` orchestration class, decoupled from `Connection` by a narrow `ControlPlaneContext` protocol. `Connection` keeps a flat public surface via one-line passthroughs, so its line count stops tracking feature count. Retrofitting the existing Tableflow methods onto this same seam is tracked separately in #129 (outside this epic).
## Scope decisions
- **Auth:** a global/cloud key covers Connect routes; else a dedicated `connect_api_key` / `connect_api_secret` pair (symmetric with `tableflow_api_key`).
- **Custom-connector upload surface** (plugin upload, presigned URLs, build runtimes) is **deferred to a separate later epic** — not a child here.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.