fix(cdc): remove MySQL scaffold from production discovery - #158
Draft
seonghobae wants to merge 3 commits into
Draft
fix(cdc): remove MySQL scaffold from production discovery#158seonghobae wants to merge 3 commits into
seonghobae wants to merge 3 commits into
Conversation
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
This was referenced Aug 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Advance issue #153 one connector at a time by removing the nonfunctional MySQL Debezium scaffold from automatic Spring production discovery until a real maintained MySQL CDC implementation exists.
Exact current identity
develop@622e5e6c3d534f230c390f10e3832efadfc01825;fix/remove-mysql-cdc-scaffold-discovery;2c886bdccee80513136098004fd76f6c8930a364;3b501f823fa0d3d93a5a95c714efdd79242a8a58;6f0669cc1c3b36f14296ab839154991c298a7eec;Every check, review, approval, or synthetic merge from an older head is stale and does not transfer.
RCA / product boundary
Protected
MysqlDebeziumCdcSourcewas a Spring@Componentwhile extendingAbstractScaffoldCdcSource, whose runtime start path refuses operation. Spring component discovery therefore advertised a source that could not start. Production support would additionally require a maintained Debezium MySQL connector dependency, validated binlog prerequisites, lifecycle, offsets/schema-history persistence, retries/recovery, credential boundaries, operational documentation, and realistic integration evidence.The smallest safe remediation is not to invent those missing properties. This PR keeps the reference scaffold instantiable for explicit design/tests but removes it from Spring production discovery. Current
CdcSourceFactorycontinues to register only the live PostgreSQL source; there is no separate production MySQL config/alias surface to retire in this slice.TDD record
RED contract
Commit
2c886bdccee80513136098004fd76f6c8930a364changesCdcSourceRegistryTestfirst.mysqlScaffoldIsNotAutoDiscoveredAsAProductionSourcerequiresMysqlDebeziumCdcSourceto have no Spring@Componentannotation while the protected production class still carried that annotation. The explicit-construction test remains to preserve the reference scaffold as deliberate non-production material.The PR-triggered workflows on this transient RED head were cancelled after the branch advanced, so they are not claimed as hosted RED acceptance evidence.
Production repair
9f64725bf20379d583a53149f2724a9513973994removes@ComponentfromMysqlDebeziumCdcSourceand documents why production discovery must remain disabled;3b501f823fa0d3d93a5a95c714efdd79242a8a58alignsdocs/cdc/any-to-any-cdc.md: MySQL is not registered, configured use resolves as an unknown source type, and the class is a reference scaffold only.SQL Server remains a separate scaffold and is intentionally outside this slice. No MySQL connector JAR, credential, endpoint, or false support claim is introduced.
Exact-head workflow state and Security RCA
For exact source head
3b501f823fa0d3d93a5a95c714efdd79242a8a58:31312834400: success;31312834406: success;31312834436: success;31312834437: success;31312834418: failure;APPROVEDreview: absent.The Security Scan failure is not caused by the MySQL diff. Trivy job
93243221587successfully scanned synthetic merge6f0669cc1c3b36f14296ab839154991c298a7eecand its hard findings gate reported three inherited MEDIUMjackson-databindfindings from the shared protected dependency baseline:CVE-2026-54515,CVE-2026-59889, andGHSA-mhm7-754m-9p8w.Repeating this unchanged scan against the same base cannot change that root cause. Shared direct-
developDraft PR #160 is the bounded remediation: it imports the fixed Jackson 2.21.5 LTS BOM before Spring Boot dependency management, with fail-first dependency-baseline tests and security doctoring. #158 must remain fail-closed until that shared dependency change integrates and this unchanged MySQL head is re-evaluated against the new protected base. No #160 checks/reviews/approvals transfer to #158.The currently protected PR workflows also predate #121's literal-source hard scanner controls. Even after the inherited CVEs are removed, a synthetic-merge Trivy result remains merge-preview evidence rather than accepted literal-source scanner proof under mightyETL governance.
Scope / merge boundary
Keep this PR Draft. Do not suppress the inherited Jackson advisories, patch them locally on this feature branch, or blindly rerun the unchanged failing Security Scan. Do not combine SQL Server, Qlik, Databricks, Snowflake, or a real MySQL implementation into this PR. Merge only after the shared security baseline is fixed, the unchanged source is revalidated against the resulting live base, every required accepted quality/security/dependency/SBOM/review gate passes, zero valid unresolved findings remain, qualifying independent non-author approval exists where required, and branch protection permits expected-head merge without bypass.