fix(cdc): keep replicated DDL out of logs - #171
Conversation
|
Warning Review limit reached
Next review available in: 52 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
|
Purpose
Fix the protected CDC schema-replication confidentiality defect test-first.
SchemaChangeReplicaApplierhistorically wrote normalized raw DDL into INFO/WARN/ERROR logs and attached parser/database exception diagnostics. DDL can contain literals, object names, tenant/customer identifiers, comments, storage paths, and other deployment-sensitive material. Truncation is a volume bound, not a confidentiality boundary.This remains a direct-
develop, path-disjoint Draft. It changes onlySchemaChangeReplicaApplierand focused logging regressions. Nothing here isimplemented_on_developbefore protected integration.Exact current identity
develop@622e5e6c3d534f230c390f10e3832efadfc01825;fix/schema-ddl-log-redaction-622e5e6;a4276cb66bf479fe9da4c2855198bdbadebb156a;977797d133570662f9f9111705100263cd7aee7b;c5e940dc2e5797fb6e31a3e69fe2e2d754c10f93;develop;Every predecessor-head/base check or review is historical and does not transfer.
RCA
RED → GREEN
Fail-first
a4276cb66bf479fe9da4c2855198bdbadebb156aadds logging assertions at the real production boundary using a DDL literal and provider diagnostics that must not be republished.The current implementation preserves DDL validation, idempotent rewriting, JDBC execution, duplicate classification and exception propagation, while ordinary logs now retain only stable finite outcome/policy metadata. Raw DDL, parser exception objects, JDBC exception objects and stack traces are no longer serialized merely for routine observability.
SchemaChangeReplicaApplierLoggingTestcovers success, policy block, duplicate, execution failure and malformed-event paths.Current hosted evidence
For exact source head
977797d133570662f9f9111705100263cd7aee7b:31342832592: success;31342832631: success;31342832572: success;31342832600: success;31342832564: failure.The hard Trivy job completed its scan and reported the six inherited protected-base Jackson findings (
CVE-2026-54515,CVE-2026-59889, andGHSA-mhm7-754m-9p8wthrough root/ETL dependency views). This PR changes no Maven dependency. Shared remediation #160 owns that root cause; duplicating the BOM change or suppressing the findings here is rejected.The same scanner also warns that some BOM-managed Maven dependency versions cannot be determined. Issue #196 separately requires such incomplete dependency-resolution evidence to fail closed even when a future SARIF has zero findings.
Current protected PR workflows execute GitHub's synthetic merge preview rather than accepted literal source. Protected JaCoCo can also report
Analyzed bundle 'etl-service' with 0 classesuntil #162/#164 integrates. Source identity, dependency vulnerability/completeness, and non-vacuous coverage are independent evidence dimensions.Documentation / traceability boundary
#159 already tracks diagnostic-confidentiality reconciliation in the canonical documentation graph. Active PR #174 carries broader CDC diagnostic-confidentiality doctoring covering raw DDL, parser/driver diagnostics, purpose-bound observability, CWE-532 and OWASP Logging Cheat Sheet guidance; that active-PR document is not shipped truth and does not transfer merge evidence to this branch. Do not duplicate canonical prose simply to make this bounded source PR larger.
Merge boundary
Keep Draft. Merge only after shared dependency remediation is integrated and this unchanged behavior is revalidated against the resulting live base; accepted literal-source CI/security evidence exists; complete same-revision dependency/vulnerability evidence has no #196 incompleteness; non-vacuous owned-production coverage passes; zero valid unresolved findings remain; and qualifying independent non-author approval exists where governance requires it. No predecessor-head, other-PR, incomplete-scanner, status-only, skipped-required, or synthetic-merge-only evidence transfers.