zhangshenghang opened a new pull request, #12993:
URL: https://github.com/apache/seatunnel/pull/12993
## Acknowledgement
Yes, I am glad to contribute to Apache SeaTunnel.
## What documentation issues were found
All issues below were verified against the actual source code on the current
`dev` branch before editing.
### HTTP-family SaaS sources (Github / Gitlab)
- The pagination options (`page_type`, `cursor_field`,
`cursor_response_field`, `batch_size`, `start_page_number`, `total_page_size`,
`use_placeholder_replacement`) were documented as **top-level** options, but
`HttpSource#buildPagingWithConfig` reads them **only from the nested `pageing`
block** (`connector-http-base/.../source/HttpSource.java`). A user setting
`page_type = "Cursor"` at the source level gets silently no pagination. Renamed
the table rows/sections to `pageing.*` (consistent with `Http.md`) and stated
that top-level pagination keys are ignored.
- Gitlab.md claimed `Cursor` pagination reads the `X-Next-Page` **HTTP
response header**; the code reads the cursor only from the **response body**
via `pageing.cursor_response_field` (`HttpSourceReader.java`). Following the
old text would read exactly one page while the job reports success.
- `format` was documented as `json`/`text` only, but `ResponseFormat` also
has `binary` (BATCH mode), chunked by the undocumented `binary_chunk_size`
option (`HttpConfig.java`, `HttpSourceOptions.java`). Documented both.
### HTTP-based sinks (Feishu / Enterprise-WeChat)
- `retry`, `retry_backoff_multiplier_ms`, `retry_backoff_max_ms` were
documented as functional, but `HttpSink` never reads them (`HttpSink.java`
constructor; `HttpParameter.buildWithConfig` is not called on the sink path),
so the retryer stays a no-op. Marked the options as accepted-but-not-applied
and removed the retry lines from the Feishu examples.
- Enterprise-WeChat.md additionally claimed the connector "inherits the
standard HTTP retry behaviour", and showed message fields rendered on separate
lines. The serializer joins fields with the **literal two-character sequence
`\n`** (`WeChatBotMessageSerializationSchema.java`), so the example output was
corrected to a single line and the behavior is now described accurately.
### Other sink fixes
- **Cassandra sink**: `consistency_level` is parsed and validated but never
applied to write statements (`CassandraSinkWriter` builds statements without
it; the only runtime consumer is the source reader). Also fixed the
`async_write`/`batch_size` note: with the default `async_write = true` each row
is sent as an individual async statement, batching into one `BatchStatement`
happens only in the sync path. Removed the no-op `consistency_level` key from
the CDC example.
- **IoTDB sink**: the declared `batch_size` default (1024) is not applied
because `SinkConfig.loadConfig` only sets it when the key is explicitly
present; unset means rows are flushed only on checkpoint/close. Documented the
actual behavior with a note.
- **Lance sink**: the type table claimed `FLOAT -> float32`, but
`SchemaUtils.convertSchema` maps `FLOAT`/`DOUBLE` to Arrow
`FloatingPoint(DOUBLE)` (`float64`).
- **Couchbase sink**: `upsert-enable = true` fails fast at startup when
`primary-key` is not configured (`CouchbaseSinkFactory`); the prerequisite is
now documented.
### CDC docs
- **PostgreSQL-CDC**: added the missing `incremental.parallelism` option row
(accepted via the CDC base rule and consumed by `IncrementalSource`); the FAQ
listed 3 decoding plugins while the option table and code accept 6 values —
aligned the FAQ and noted schema evolution requires `pgoutput`.
- **MySQL-CDC / PostgreSQL-CDC**: `server-time-zone` has a non-null default
(`ZoneId.systemDefault().getId()`), the Default cell said `-`.
- **MongoDB-CDC**: added a note that the JDBC-oriented base options
`snapshot.split.size` / `snapshot.fetch.size` / `enable_concurrent_read` pass
validation but are unused by MongoDB-CDC.
- **MySQL-CDC**: fixed en/zh divergence in the "read tables without a
primary key" section (each language had a paragraph the other lacked).
### Small fixes
- Zendesk/Shopify sources: "only `json` and `text` are supported" corrected
(underlying HTTP source also accepts `binary`).
- zh Zendesk sink: `multi_table_sink_replica` was described as writer
**concurrency** (并发数); it is a replica number, aligned with en and
`SinkConnectorCommonOptions`.
## What was changed / which areas were updated
27 documentation files (13 connectors, English + Chinese):
`docs/{en,zh}/connectors/source/{Github,Gitlab,Shopify,Zendesk,MongoDB-CDC,MySQL-CDC,PostgreSQL-CDC}.md`,
`docs/{en,zh}/connectors/sink/{Cassandra,IoTDB,Feishu,Enterprise-WeChat,Lance,Couchbase}.md`,
plus the zh Zendesk sink parity fix.
## Were English and Chinese docs both checked?
Yes. Every fix was applied to both language versions; the MySQL-CDC zh page
also received the missing paragraph from the en page (and vice versa) so the
two languages carry the same content.
## Duplicate PR check (last 7 days)
I listed all open PRs with "Docs" in the title before starting (31 PRs) and
collected their changed-file lists (340 files). The connectors fixed here
(Github, Gitlab, Feishu, Enterprise-WeChat, Lance, Couchbase, Cassandra sink,
IoTDB sink, Zendesk, Shopify, MongoDB-CDC, MySQL-CDC, PostgreSQL-CDC) do not
appear in any of those PRs' file lists, including the author's own recent
batches (#12986, #12971, #12951, #12941, #12865, #12813, #12730, #12709,
#12679, #12602) and the older `[Docs][Connector-V2] Improve ...` series
(#11694–#11787). No file modified here overlaps an open docs PR.
## How the change was verified
- Every issue was located in the source code first (option classes,
`optionRule()`, factory identifiers, and the writer/reader implementations
cited above), then the docs were corrected to match the code.
- After editing: automated checks confirmed all 27 files have consistent
markdown table column counts, and all relative links in the modified files
resolve to existing files.
- No Java build was run because this change is documentation-only; no code
paths were touched.
--
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]