feat(tool): added introspection tools for all db integrations#2780
feat(tool): added introspection tools for all db integrations#2780waleedlatif1 merged 4 commits intostagingfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Greptile OverviewGreptile SummaryThis PR adds introspection capabilities to 8 database integrations (PostgreSQL, MySQL, MongoDB, Neo4j, DynamoDB, RDS, Supabase, Elasticsearch), enabling AI agents to discover database schemas, tables, collections, and relationships. The implementation follows a consistent three-layer architecture: tool configuration files, API route handlers for validation, and utility functions for database-specific introspection logic. Architecture Pattern:
Security Approach: Critical Issue:
Recommendation: Confidence Score: 1/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant User
participant ToolConfig as Tool Config<br/>(introspect.ts)
participant APIRoute as API Route<br/>(route.ts)
participant Utils as DB Utils<br/>(utils.ts)
participant DB as Database
User->>ToolConfig: Configure introspection tool
Note over ToolConfig: Define params (host, port,<br/>credentials, schema)
User->>ToolConfig: Execute introspection
ToolConfig->>APIRoute: POST /api/tools/{db}/introspect
Note over APIRoute: Validate params with Zod
APIRoute->>Utils: createConnection(config)
Utils->>DB: Establish connection
DB-->>Utils: Connection established
APIRoute->>Utils: executeIntrospect(connection, schema)
loop For each table
Utils->>DB: Query INFORMATION_SCHEMA<br/>(parameterized)
DB-->>Utils: Table metadata
Utils->>DB: Query columns, keys, indexes
DB-->>Utils: Schema details
end
Utils-->>APIRoute: IntrospectionResult
APIRoute->>Utils: connection.close()
Utils->>DB: Close connection
APIRoute-->>ToolConfig: JSON response
ToolConfig-->>User: Schema information
|
|
@greptile |
|
@greptile |
* feat(tool): added introspection tools for all db integrations * added sanitization for sql schema * ack pr comments, with clarifying comments * moved util
Summary
Type of Change
Testing
Tested manually
Checklist