Intake exam — Sowknow
Intake exam (MEASURED — every finding carries its evidence)
0 critical 2 warning 27 info
exam at 2026-07-22 12:36:33 UTC ·
target(s): sowknow, (agent host env)
Findings
| Severity | Scanner | Finding | Advice | Evidence |
|---|---|---|---|---|
| warning | exposure | SSL off while listening on '*' | Enable SSL or bind to localhost / a private interface only. | {
"listen_addresses": "*",
"port": "5432",
"ssl": "off",
"target_db": "sowknow"
} |
| warning | privilege | active connection as superuser 'sowknow' | Point the application at a least-privilege role instead. | {
"is_scanner_role": false,
"target_db": "sowknow",
"usename": "sowknow"
} |
| info | anatomy | sowknow.entities: no vacuum on record | Vacuum once, then watch whether autovacuum covers it. | {
"last_vacuum": null,
"live_rows": 38249,
"table": "sowknow.entities",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.graph_edges: no vacuum on record | Vacuum once, then watch whether autovacuum covers it. | {
"last_vacuum": null,
"live_rows": 97511,
"table": "sowknow.graph_edges",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_document_chunks_chunk_text_trgm: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_document_chunks_chunk_text_trgm",
"index_bytes": 174956544,
"table": "sowknow.document_chunks",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_documents_filename_trgm: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_documents_filename_trgm",
"index_bytes": 1753088,
"table": "sowknow.documents",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_documents_original_filename_trgm: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_documents_original_filename_trgm",
"index_bytes": 1269760,
"table": "sowknow.documents",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_entity_synonyms_surface: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_entity_synonyms_surface",
"index_bytes": 4571136,
"table": "sowknow.entity_synonyms",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_edges_conf: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_edges_conf",
"index_bytes": 3284992,
"table": "sowknow.graph_edges",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_edges_source: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_edges_source",
"index_bytes": 1769472,
"table": "sowknow.graph_edges",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_edges_target: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_edges_target",
"index_bytes": 1024000,
"table": "sowknow.graph_edges",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_edges_type: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_edges_type",
"index_bytes": 1064960,
"table": "sowknow.graph_edges",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_nodes_aliases: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_nodes_aliases",
"index_bytes": 21594112,
"table": "sowknow.graph_nodes",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.idx_graph_nodes_canonical: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.idx_graph_nodes_canonical",
"index_bytes": 2260992,
"table": "sowknow.graph_nodes",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_articles_content_hash: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_articles_content_hash",
"index_bytes": 3170304,
"table": "sowknow.articles",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_articles_tags_gin: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_articles_tags_gin",
"index_bytes": 2015232,
"table": "sowknow.articles",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_document_chunks_embedding_hnsw: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_document_chunks_embedding_hnsw",
"index_bytes": 1013841920,
"table": "sowknow.document_chunks",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_entities_name: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_entities_name",
"index_bytes": 1990656,
"table": "sowknow.entities",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_entity_mentions_entity: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_entity_mentions_entity",
"index_bytes": 5218304,
"table": "sowknow.entity_mentions",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_entity_mentions_entity_document: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_entity_mentions_entity_document",
"index_bytes": 8249344,
"table": "sowknow.entity_mentions",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_pipeline_stages_stage_status_started: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_pipeline_stages_stage_status_started",
"index_bytes": 3162112,
"table": "sowknow.pipeline_stages",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_pipeline_stages_stuck: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_pipeline_stages_stuck",
"index_bytes": 11296768,
"table": "sowknow.pipeline_stages",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_sowknow_entities_name: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_sowknow_entities_name",
"index_bytes": 1990656,
"table": "sowknow.entities",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_sowknow_entity_mentions_document_id: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_sowknow_entity_mentions_document_id",
"index_bytes": 3719168,
"table": "sowknow.entity_mentions",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_sowknow_entity_mentions_entity_id: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_sowknow_entity_mentions_entity_id",
"index_bytes": 5218304,
"table": "sowknow.entity_mentions",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_sowknow_entity_relationships_source_id: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_sowknow_entity_relationships_source_id",
"index_bytes": 1015808,
"table": "sowknow.entity_relationships",
"target_db": "sowknow"
} |
| info | anatomy | sowknow.ix_sowknow_entity_relationships_target_id: 0 scans (unused index) | Drop candidate — verify no reporting workload needs it first. | {
"idx_scan": 0,
"index": "sowknow.ix_sowknow_entity_relationships_target_id",
"index_bytes": 1171456,
"table": "sowknow.entity_relationships",
"target_db": "sowknow"
} |
| info | config_drift | connections 8/100 in use (8%) | Connection headroom measured as adequate. | {
"current_connections": 8,
"max_connections": 100,
"target_db": "sowknow",
"used_pct": 8.0
} |
| info | privilege | 1 superuser role(s) | Each one is an unrestricted account — keep the count minimal. | {
"superusers": [
"sowknow"
],
"target_db": "sowknow"
} |
Feature health (per-feature SLOs)
no feature-health signal on the target (no task table with declared success/failure values) — measured as absent, not assumed healthy
Changes since last exam
| Severity | Scanner | New finding | Evidence |
|---|---|---|---|
| No new findings. | |||
Measured trends
- config_drift|connections #/# in use (#%) — current_connections: 9.0 → 8.0 (down 1.0)
- config_drift|connections #/# in use (#%) — used_pct: 9.0 → 8.0 (down 1.0)
Skipped (data source absent — never fabricated)
- query (sowknow): pg_stat_statements not installed on the target
- exposure (sowknow): pg_hba_file_rules unreadable with this role
- workflow (sowknow): no task-table shapes (target/result/created_at) on the target
- env_posture ((agent host env)): no agent config declaring env vars found for tenant 5dd839e2-462d-40f8-8f6a-92f4675afb07