zhangshenghang opened a new pull request, #12971:
URL: https://github.com/apache/seatunnel/pull/12971

   ## Purpose of this PR
   
   Yes — this contribution acknowledges it is made to the **Apache SeaTunnel** 
project.
   
   This PR fixes a batch of real documentation defects found by auditing docs 
(both `docs/en` and `docs/zh`) against the actual source code on `dev`. Every 
fix below was verified against the Java/Shell/YAML sources quoted.
   
   ## What documentation issues were found
   
   **Engine / job configuration (highest impact — several documented keys, CLI 
flags and class names do not exist):**
   - `state-storage-and-recovery.md` (en+zh): documented non-existent 
checkpoint keys `max-concurrent` / `tolerable-failure`; non-existent CLI flag 
`--stop-job` (real flag is `-s/--savepoint <jobId>`); wrong IMap names 
(`running-job-state` etc. → real `engine_runningJobState`, 
`engine_runningJobInfo`, ...); fabricated MapStore config (`initial-load-mode`, 
`hazelcast.fs.*` properties → real `initial-mode` + `FileMapStore` + 
`namespace`/`clusterName`/`businessName`); fabricated WAL directory layout and 
compaction knobs. Rewritten against `CheckpointConfig`, `ServerConfigOptions`, 
`Constant`, `FileMapStore`, `IMapFileStorage`, `FileConstants`, 
`ClientCommandArgs`.
   - `tuning-guide.md` (en+zh): wrong log file name (`seatunnel-server.log` → 
`seatunnel-engine-server.log`, per `seatunnel-cluster.sh`/`log4j2.properties`) 
and references to the fabricated `/tmp/seatunnel/imap` WAL layout (aligned with 
the corrected state-storage doc).
   - `event-listener.md` (en+zh): event types 
`READER_OPEN`/`READER_CLOSE`/`WRITER_OPEN`/`WRITER_CLOSE` do not exist in 
`EventType` (replaced with the real `LIFECYCLE_*` constants + 
`READER_MESSAGE_DELAYED`); wrong import packages; example handler called 
methods that do not exist (`getPluginId`, `getParallelism`, `getRecordCount`, 
`getEventTime`, `getAddedColumns`, `getTableName`) — rewritten with real 
getters.
   - `flink.md` (en+zh): referenced non-existent example module 
`seatunnel-examples/seatunnel-flink-connector-v2-example` and class 
`org.apache.seatunnel.example.flink.v2.SeaTunnelApiExample` — replaced with the 
real modules/classes.
   - `config-encryption-decryption.md` (en+zh): `config/v2.batch.template` does 
not exist → `config/v2.batch.config.template`.
   - `logging.md` (en+zh): `seatunnel.yml` → `seatunnel.yaml`.
   - `getting-started/locally/deployment.md` (en+zh): 
`plugins-mapping.properties` → `plugin-mapping.properties`.
   
   **Connector option tables (doc ↔ code mismatches):**
   - `S3-Redshift.md` (en+zh): option `access_secret` does not exist in code 
(real key `secret_key`); added required `fs.s3a.endpoint` and 
`fs.s3a.aws.credentials.provider` rows (a job configured per the old doc fails 
at runtime).
   - `ObsFile.md` source (en+zh): removed the "OBS STS" section built around 
the non-existent `hadoop_obs_properties` option; added `xml`/`binary` to the 
supported-format checklist (code supports both); fixed broken `sheet_name` 
description.
   - `Persistiq.md` (en+zh): `format` default documented as `json`, code 
default is `TEXT` (inherited `HttpSourceOptions.FORMAT`, no override).
   - `Notion.md` (en+zh): example configured 
`page_type`/`cursor_field`/`cursor_response_field` at top level, but 
`HttpSource` only reads them inside the `pageing` block — the old example 
silently did not enable pagination; fixed table keys (`pageing.*`) and nested 
the example config.
   - `SelectDB-Cloud.md` (en+zh): `selectdb.config` marked required but is 
`optional(...)` in the factory.
   - `Snowflake.md` (en+zh): `generate_sink_sql` referenced throughout but 
missing from the options table — added (boolean, default false).
   - `Oracle-CDC.md` (en+zh): `url` was marked unconditionally required; per 
the factory `hostname`+`port` (bundled) may replace it — added 
`hostname`/`port` rows and made `url` conditionally required.
   - `PostgreSQL-CDC.md` (en+zh): `server-time-zone` default documented as 
`UTC`, code default is the JVM system time zone.
   - `HugeGraph.md` sink (en+zh): documented the multi-table `sourceTable` 
mapping key (functional, produces user-facing errors, but was undocumented).
   - Missing options added to file-connector docs to match the factories' 
`optionRule()`: `excel_use_header_line` 
(S3File/OssFile/OssJindoFile/GcsFile/BosFile/SftpFile/FtpFile sources), 
`enable_header_write` (OssJindoFile/BosFile/CosFile sinks), `tables_configs` 
(OssFile/SftpFile sources), `null_format` (BosFile source), 
`date_format`/`datetime_format`/`time_format`/`metalake_type` (GcsFile source).
   - Type-column accuracy: `format` labeled `String` where code declares 
`enumType` changed to `enum` (AmazonSqs sink+source, RocketMQ sink, Rabbitmq 
source, WebSocket source, Persistiq source).
   
   **Transforms:**
   - `calcite.md` (en+zh): added the `GET_JSON_OBJECT` built-in UDF (registered 
via `GetJsonObjectFunction`, already cross-referenced by `sql-functions.md`).
   - `embedding.md` (en+zh): added `process_batch_size` (int, default 100, 
fallback key `inference_batch_size`) present in the factory rule.
   
   ## Which areas/files were updated
   
   70 files (355 insertions / 319 deletions), always in matched en/zh pairs, 
under:
   - `docs/{en,zh}/engines/**`, `docs/{en,zh}/introduction/configuration/`, 
`docs/{en,zh}/getting-started/locally/`
   - `docs/{en,zh}/connectors/{source,sink}/**` (S3-Redshift, ObsFile, S3File, 
OssFile, OssJindoFile, GcsFile, BosFile, CosFile, FtpFile, SftpFile, Persistiq, 
Notion, FacebookAds, GoogleAds, SelectDB-Cloud, Snowflake, HugeGraph, 
Oracle-CDC, PostgreSQL-CDC, AmazonSqs, RocketMQ, Rabbitmq, WebSocket)
   - `docs/{en,zh}/transforms/{calcite,embedding}.md`
   
   ## Whether English and Chinese docs were both checked
   
   Yes. Every issue above was fixed in both `docs/en` and `docs/zh` (or 
confirmed to only exist in one language).
   
   ## How duplicate PRs from the last 7 days were checked
   
   Searched all PRs created since 2026-10-16 (`gh pr list --search 
"created:>=2026-10-16"`). Recent doc PRs by the same author — #12951, #12941, 
#12932, #12911, #12865 — plus #12859 (Copy transform), #12965 (IRIS link), 
#12856 (OpenAPI contract) were reviewed file-by-file, and this PR avoids every 
file they touch. The one real overlap found (duplicate `sheet_name` row in 
`docs/zh/connectors/source/ObsFile.md`, already fixed by open PR #12911) was 
intentionally reverted from this PR.
   
   ## How the change was verified
   
   - Every doc claim was checked against the source (Options classes, Factory 
`optionRule()`, `ClientCommandArgs`, `CheckpointConfig`/`ServerConfigOptions`, 
`FileMapStore`/`IMapFileStorage`, `EventType`/event classes, shell scripts and 
shipped configs), with file:line evidence.
   - Automated checks over all 70 changed files: markdown table structure 
(column-count consistency) and relative link targets — all pass.
   - The full docusaurus website build was not run locally (it requires 
checking out the separate `apache/seatunnel-website` repo and a full npm 
install, per the `document` CI job); the CI `Build website` job will validate 
rendering.


-- 
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]

Reply via email to