goutamadwant opened a new issue, #12827: URL: https://github.com/apache/seatunnel/issues/12827
### Search before asking - [x] I searched existing feature issues and pull requests. #10443 tracks the Couchbase source gap; I found no separate source issue or implementation PR. ### Description SeaTunnel has a Couchbase sink but no Couchbase source. Add a bounded, read-only source that reads JSON documents from one configured bucket, scope, and collection into an explicitly declared SeaTunnel schema. This is the source-only first slice requested in #10443; the existing sink remains unchanged. The first slice should: - Authenticate with the Couchbase SDK using `connection.string`, `username`, and `password`. Support `couchbase://` and `couchbases://`; private-CA trust uses the SDK's `security.trustCertificate` connection-string parameter, with hostname verification retained. - Require an explicit `schema.fields`. Map document fields case-sensitively through SeaTunnel's JSON conversion; ignore unconfigured fields, map missing/null fields to null, and fail on invalid types or non-object documents without logging document contents. - Query the selected collection with quoted SQL++ identifiers, read-only options, `REQUEST_PLUS` scan consistency, and backpressured row consumption. Require an existing suitable index and query permission; do not create database objects. - Use one reader (`parallelism = 1`). The first slice does not partition into splits or use `LIMIT`/`OFFSET` pagination. - State recovery semantics explicitly: no checkpointed document offset; after failure/restore, the collection query restarts from the beginning and previously emitted rows may be replayed. `REQUEST_PLUS` is not a transactionally consistent snapshot. There is no CDC, incremental read, schema inference, or exactly-once guarantee. - Provide bounded readiness/query timeouts and cancellation. Cancellation of an active query should stop the read; cancellation during the SDK's synchronous bucket-readiness check may wait until the configured readiness timeout before cleanup. ### Usage scenario Run a bounded batch job that exports an existing Couchbase collection to a SeaTunnel sink, with a declared schema and an idempotent downstream write strategy when restart/replay is possible. For a stable export, quiesce concurrent writes to the collection. ### Before and after - **Before:** Couchbase can be a SeaTunnel sink, but cannot be selected as a source. - **After:** A batch job can read a named Couchbase scope/collection as a source without changing existing sink behavior or configuration. ### Validation boundary The candidate implementation has Java 11 connector/config tests and a Testcontainers run against Couchbase Community 7.1.1 across Flink, Zeta, and Spark engine templates, including a named scope/collection and index-readiness check. A real private-CA TLS handshake and non-admin RBAC environment are not available locally; SDK credential/TLS option pass-through is unit-tested. Those limits should be stated in the PR. ### Compatibility No existing Couchbase sink option, default, or behavior changes. This adds a source path and documentation. The single-reader and replay-on-restore limits are intentional first-slice behavior, not compatibility changes. ### Related issues Tracked under #10443. This separate issue records the source-only contract requested by maintainers there. ### Are you willing to submit a PR? - [x] Yes, I am willing to submit a PR. ### Code of Conduct - [x] I agree to follow the project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
