Gap
Protected develop@622e5e6c3d534f230c390f10e3832efadfc01825 still ships discoverable connector classes whose production methods deliberately refuse or no-op:
AbstractScaffoldTargetConnector.write(...) always throws UnsupportedOperationException;
DatabricksTargetConnector, SnowflakeTargetConnector, and QlikSenseTargetConnector inherit that refusal while appearing in connector discovery/configuration surfaces;
AbstractScaffoldCdcSource.start(...) always throws UnsupportedOperationException and stop() is a no-op;
- MySQL and SQL Server CDC source descriptors inherit that scaffold behavior.
The existing catalog is honest about SCAFFOLD, which is safer than pretending the integrations work, but it still leaves buyer-visible production stubs in the shipped codebase. The product policy requires demo/stub-only production paths to be completed or removed from the production surface.
Product decision
For every scaffold connector, choose one of only two terminal outcomes:
- productionize — implement a real, tested connector with operational support; or
- remove from production discovery/code — retain design documentation/examples outside the production connector registry until implementation exists.
SCAFFOLD is an acceptable temporary migration state, not a permanent commercial endpoint.
Live execution state — 2026-08-09
Status taxonomy: all entries below are active_pr or planned; none is implemented_on_develop until protected integration.
| Connector |
Current bounded decision |
Live work |
Current blocking boundary |
| Qlik Sense |
remove misleading row-sink registry/catalog/config binding; keep reference/design material only |
PR #156, exact head 585b7f9439a9a5a3cf959bb10008d620424b4578 |
Current aggregate CI/dependency/SBOM/SAST/security is green on synthetic merge ec512c7f7e1a579eb20deabe877a8171038afc4d, but literal-source hard evidence, non-vacuous owned-production coverage (#162/#164), and qualifying independent approval remain absent. |
| MySQL CDC |
remove nonfunctional Spring production discovery; retain explicit reference scaffold |
PR #158, exact head 3b501f823fa0d3d93a5a95c714efdd79242a8a58 |
Its current Security Scan fails on inherited protected-base Jackson advisories, not the MySQL diff. Shared remediation is PR #160; after that integrates, #158 must be revalidated against the new protected base. |
| SQL Server CDC |
remove nonfunctional Spring production discovery; retain explicit reference scaffold |
PR #163, exact head 754cce280d71b1745c8514a661e304fd208ccfee |
Current exact-head workflows are queued and therefore not passing; no formal approval exists. |
| Databricks |
unresolved terminal outcome |
planned |
Do not open a competing implementation/removal slice until the already-active connector retirements stabilize/integrate and the production catalog is freshly re-read. |
| Snowflake |
unresolved terminal outcome |
planned |
Same sequencing rule as Databricks. |
Shared security PR #160 (2905c416679dfccf6ad48e7a7f056b22d476a553) has current aggregate-green CI, Dependency Review, SBOM, SAST, and Security Scan, and its Trivy merged-tree scan reports zero CRITICAL/HIGH/MEDIUM findings after moving Jackson to 2.21.5. It is still Draft because current protected workflows execute synthetic PR merge revisions, the inherited JaCoCo durable-job gate can pass with zero analyzed production classes, and no qualifying independent approval exists. No #160 evidence transfers to a connector PR after a base/head change.
This live table is sequencing evidence, not shipped product truth. Any head/base movement invalidates the corresponding exact-head facts above and requires a fresh issue/PR reconciliation.
Target connectors
Databricks
Before implementation, reverify current primary Databricks SQL/Statement Execution/JDBC documentation and select one supported production API. Implement bounded batch semantics, TLS/auth configuration, target identifier validation, transaction/idempotency behavior, retry classification, cancellation/timeouts, observability, and realistic integration tests against a controlled Databricks test environment. Never log PAT/OAuth credentials.
Snowflake
Reverify current Snowflake JDBC/SQL API guidance. Implement explicit warehouse/database/schema/table configuration, identifier safety, bounded batch ingestion, transaction/autocommit semantics, retry classification, query cancellation/timeouts, telemetry, and realistic integration tests. Do not treat successful config validation as write support.
Qlik Sense
The current bounded product decision is removal from the production row-sink surface, not invention of a fake warehouse write path. PR #156 removes Qlik from registry/catalog and Spring configuration binding while retaining only non-registered reference/design material. A future Qlik integration must model Qlik's actual supported reload/data-file/application orchestration boundary and obtain realistic provider evidence before production discovery returns.
CDC sources
MySQL / SQL Server
The current bounded decision for both sources is fail-closed removal from automatic Spring production discovery while retaining explicit reference scaffolds. PR #158 owns MySQL; PR #163 owns SQL Server.
A future productionization must use maintained Debezium source connectors through the existing source SPI or a refactored multi-engine factory. Each source requires:
- connector dependency/version pin;
- complete config validation with secret-safe errors;
- offset/schema-history semantics;
- start/stop/restart lifecycle;
- database-specific snapshot/log/binlog/CDC prerequisites;
- realistic container/integration fixture or supported external test environment;
- no skipped source-specific tests counted as support evidence;
- compatibility and recovery documentation.
TDD / quality gates
For each connector independently:
- RED test proves current scaffold refusal/discovery at the intended runtime boundary;
- production implementation or registry removal follows as the narrowest accepted remedy;
- production statement/branch coverage remains exact and non-vacuous for owned code;
- public API/Javadoc is complete;
- unit + integration + failure + timeout + retry + concurrency/idempotency tests as applicable;
- credentials are supplied only through environment/secret contracts and never committed;
- test environment uses realistic provider/database semantics, not a fake always-success client;
- catalog status becomes production-capable only after all implementation and operational gates pass;
- docs/PRD/TRD/Architecture/UML/API/Threat/Operability/Traceability/CHANGELOG updated truthfully;
- exact-source CI, dependency, SBOM, SAST/security, review and release evidence pass under the integrated protected controls;
- queued, pending, absent, stale-head, predecessor-head, status-only, synthetic-merge-only, or vacuous-coverage evidence is not passing.
Sequencing
Do not attempt all providers in one giant PR. Implement/remove one bounded connector at a time. Existing active connector PRs may proceed independently where their paths and writer leases do not conflict, but do not start Databricks/Snowflake merely to increase parallelism while the current production-surface retirements are unresolved. After each integration, refetch protected develop, the connector registry/catalog/configuration surfaces, exact remaining scaffold classes, checks/reviews, and this issue before selecting the next connector.
Completion definition
This issue closes only when no production registry/discovery/configuration path contains a connector whose only runtime behavior is scaffold validation + refusal/no-op. Experimental designs may remain in documentation or clearly isolated non-production reference code, but not as permanent shipped production stubs. Closure also requires canonical connector support documentation to agree with protected code and machine-checkable tests to prevent retired scaffold discovery from returning.
Gap
Protected
develop@622e5e6c3d534f230c390f10e3832efadfc01825still ships discoverable connector classes whose production methods deliberately refuse or no-op:AbstractScaffoldTargetConnector.write(...)always throwsUnsupportedOperationException;DatabricksTargetConnector,SnowflakeTargetConnector, andQlikSenseTargetConnectorinherit that refusal while appearing in connector discovery/configuration surfaces;AbstractScaffoldCdcSource.start(...)always throwsUnsupportedOperationExceptionandstop()is a no-op;The existing catalog is honest about
SCAFFOLD, which is safer than pretending the integrations work, but it still leaves buyer-visible production stubs in the shipped codebase. The product policy requires demo/stub-only production paths to be completed or removed from the production surface.Product decision
For every scaffold connector, choose one of only two terminal outcomes:
SCAFFOLDis an acceptable temporary migration state, not a permanent commercial endpoint.Live execution state — 2026-08-09
Status taxonomy: all entries below are
active_prorplanned; none isimplemented_on_developuntil protected integration.585b7f9439a9a5a3cf959bb10008d620424b4578ec512c7f7e1a579eb20deabe877a8171038afc4d, but literal-source hard evidence, non-vacuous owned-production coverage (#162/#164), and qualifying independent approval remain absent.3b501f823fa0d3d93a5a95c714efdd79242a8a58754cce280d71b1745c8514a661e304fd208ccfeeShared security PR #160 (
2905c416679dfccf6ad48e7a7f056b22d476a553) has current aggregate-green CI, Dependency Review, SBOM, SAST, and Security Scan, and its Trivy merged-tree scan reports zero CRITICAL/HIGH/MEDIUM findings after moving Jackson to 2.21.5. It is still Draft because current protected workflows execute synthetic PR merge revisions, the inherited JaCoCo durable-job gate can pass with zero analyzed production classes, and no qualifying independent approval exists. No #160 evidence transfers to a connector PR after a base/head change.This live table is sequencing evidence, not shipped product truth. Any head/base movement invalidates the corresponding exact-head facts above and requires a fresh issue/PR reconciliation.
Target connectors
Databricks
Before implementation, reverify current primary Databricks SQL/Statement Execution/JDBC documentation and select one supported production API. Implement bounded batch semantics, TLS/auth configuration, target identifier validation, transaction/idempotency behavior, retry classification, cancellation/timeouts, observability, and realistic integration tests against a controlled Databricks test environment. Never log PAT/OAuth credentials.
Snowflake
Reverify current Snowflake JDBC/SQL API guidance. Implement explicit warehouse/database/schema/table configuration, identifier safety, bounded batch ingestion, transaction/autocommit semantics, retry classification, query cancellation/timeouts, telemetry, and realistic integration tests. Do not treat successful config validation as write support.
Qlik Sense
The current bounded product decision is removal from the production row-sink surface, not invention of a fake warehouse write path. PR #156 removes Qlik from registry/catalog and Spring configuration binding while retaining only non-registered reference/design material. A future Qlik integration must model Qlik's actual supported reload/data-file/application orchestration boundary and obtain realistic provider evidence before production discovery returns.
CDC sources
MySQL / SQL Server
The current bounded decision for both sources is fail-closed removal from automatic Spring production discovery while retaining explicit reference scaffolds. PR #158 owns MySQL; PR #163 owns SQL Server.
A future productionization must use maintained Debezium source connectors through the existing source SPI or a refactored multi-engine factory. Each source requires:
TDD / quality gates
For each connector independently:
Sequencing
Do not attempt all providers in one giant PR. Implement/remove one bounded connector at a time. Existing active connector PRs may proceed independently where their paths and writer leases do not conflict, but do not start Databricks/Snowflake merely to increase parallelism while the current production-surface retirements are unresolved. After each integration, refetch protected
develop, the connector registry/catalog/configuration surfaces, exact remaining scaffold classes, checks/reviews, and this issue before selecting the next connector.Completion definition
This issue closes only when no production registry/discovery/configuration path contains a connector whose only runtime behavior is scaffold validation + refusal/no-op. Experimental designs may remain in documentation or clearly isolated non-production reference code, but not as permanent shipped production stubs. Closure also requires canonical connector support documentation to agree with protected code and machine-checkable tests to prevent retired scaffold discovery from returning.