Problem
M3-21 binds the real Chongqing cultural-district ResourceVersion to a JDBC catalog backed by cross-node MinIO, but deliberately creates only empty Iceberg metadata. It does not prove that content-bound real feature rows can be ingested, spatially validated, replayed without duplicate commits, or read back from the object-store-backed table.
Goal
Ingest the bounded 20-feature Chongqing cultural-district slice into an isolated JDBC/S3 Iceberg table through an explicitly authorized Spark/Sedona job. Bind every row set to the existing immutable ResourceVersion, verify spatial quality and direct object-store state, and prove exact replay produces no second snapshot.
Scope
- Require the checked M3-21 promotion evidence and the same ResourceVersion/content SHA.
- Read the source Shapefile only from an explicit local CLI path; do not commit paths or feature payloads.
- Canonicalize BSM, PolygonZ WKB, EPSG:4490 and bbox columns into a path-free row-set fingerprint.
- Create a bounded JDBC/S3 target and authorize one Spark/Sedona ingestion plan before mutation.
- Validate WKB parsing, geometry validity, SRID, positive area, uniqueness and bbox consistency with Sedona.
- Require first execution to append exactly 20 rows and create exactly one snapshot.
- Require immediate replay to use exact table readback and produce no mutation or new snapshot.
- Inspect Parquet, manifest and Iceberg metadata directly through S3.
- Emit sanitized evidence, ADR, Platform Truth/System-of-Record updates and CI validation.
Non-Goals
- Full Chongqing multi-source ingestion.
- Committing source data, feature geometry or absolute local paths.
- Claiming production object storage, protected workload identity, TLS/OIDC, full Spark/Flink conformance or production readiness.
- Persisting the promotion or ingestion result into a production GDA Control deployment.
Acceptance Criteria
- The source bundle and canonical row set bind the M3-21 ResourceVersion/content SHA.
- Exactly 20 unique non-null BSM values and 20 valid PolygonZ geometries are accepted.
- Spark/Sedona writes one append snapshot to the expected JDBC/S3 table.
- Table readback proves exact row fingerprints, SRID, validity, bbox and positive area.
- Replay is no_op with unchanged snapshot, rows, files and row-set fingerprint.
- Direct S3 inventory contains referenced Parquet, manifest and metadata objects with no unexpected prefix.
- Runtime credentials, source paths and feature payloads are absent from evidence and Git.
- Temporary namespace, PVCs, port-forwards and input ConfigMap are cleaned.
Implementation
Status
in_review
Execution Gate
allowed
Problem
M3-21 binds the real Chongqing cultural-district ResourceVersion to a JDBC catalog backed by cross-node MinIO, but deliberately creates only empty Iceberg metadata. It does not prove that content-bound real feature rows can be ingested, spatially validated, replayed without duplicate commits, or read back from the object-store-backed table.
Goal
Ingest the bounded 20-feature Chongqing cultural-district slice into an isolated JDBC/S3 Iceberg table through an explicitly authorized Spark/Sedona job. Bind every row set to the existing immutable ResourceVersion, verify spatial quality and direct object-store state, and prove exact replay produces no second snapshot.
Scope
Non-Goals
Acceptance Criteria
Implementation
0b0c79242abd82613eaf28cb53c64280258bc75dba6cf841f9a513a4c801a9f798b9899Status
in_review
Execution Gate
allowed