feat(connectors): generalize readiness and constraint handling (#212)

* feat(connectors): add postgres maxConnections

* feat(connectors): add mysql maxConnections

* feat(connectors): add sqlserver maxConnections

* feat(connectors): rename snowflake pool config

* docs: document connector maxConnections

* feat(scan): add constraint discovery warning helper

* feat(scan): carry structural warnings through reports

* feat(postgres): soft-fail denied constraint discovery

* feat(mysql): soft-fail denied constraint discovery

* feat(sqlserver): soft-fail denied constraint discovery

* feat(bigquery): soft-fail denied primary key discovery

* feat(snowflake): report denied primary key discovery

* test(scan): verify constraint discovery warnings

* feat(historic-sql): use shared readiness probes

* docs: document query history readiness probes

* test(historic-sql): verify readiness probe registry

* test(ingest): account for live database warnings artifact

* Add skip option for agent setup
This commit is contained in:
Andrey Avtomonov 2026-05-24 19:30:06 +02:00 committed by GitHub
parent cfd1749ab9
commit 78b8a0c025
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
42 changed files with 2763 additions and 554 deletions

View file

@ -284,7 +284,30 @@ describe('runKtxIngest', () => {
return 0;
},
scanConnection: async () => 0,
historicSqlProbe: async () => ({ ok: true, lines: ['PASS Historic SQL probe skipped in test'] }),
historicSqlReadinessProbe: async () => ({
ok: true,
dialect: 'postgres',
runner: {
dialect: 'postgres',
catalogName: 'pg_stat_statements',
async run() {
return { warnings: [], info: [] };
},
formatSuccessDetail() {
return {
detail: 'pg_stat_statements ready (PostgreSQL 16.4)',
warnings: [],
};
},
fixAdvice() {
return {
failHeadline: 'pg_stat_statements unavailable',
remediation: 'Fix query-history grants.',
};
},
},
result: { pgServerVersion: 'PostgreSQL 16.4', warnings: [], info: [] },
}),
},
context: async () => ({ status: 'skipped', projectDir }),
runtime: async () => runtimeReady(projectDir),