04173a93b9
Add validation for logical replication publication configuration. Helps diagnose an issue where runs are no longer replicated to clickhouse because of a configuration issue with the replication publication. ## Problem The `LogicalReplicationClient` only checked if a publication existed, not if it was correctly configured. This caused a silent failure where: - Replication would start successfully - Transaction boundaries (begin/commit) were received - **But no actual data changes were replicated** This happened when a publication existed but: 1. Had no tables associated with it 2. Was missing required actions (e.g., `delete`) ## Solution Added `#validatePublicationConfiguration()` method that validates: - ✅ Publication includes the expected table - ✅ Publication has all required actions configured When validation fails, error messages include the exact SQL command to fix the issue: **Missing table:** ``` Publication 'task_runs_to_clickhouse_v1_publication' exists but has NO TABLES configured. Expected table: "public.TaskRun". Run: ALTER PUBLICATION task_runs_to_clickhouse_v1_publication ADD TABLE "TaskRun"; ``` **Missing actions:** ``` Publication 'task_runs_to_clickhouse_v1_publication' is missing required actions. Expected: [insert, update, delete], Current: [insert, update], Missing: [delete]. Run: ALTER PUBLICATION task_runs_to_clickhouse_v1_publication SET (publish = 'insert, update, delete'); ``` This prevents silent data loss and makes debugging configuration issues much easier.