# DBHub Development Guidelines
## Commands
- Build: `pnpm run build` - Compiles TypeScript to JavaScript
- Start: `pnpm run start` - Runs the compiled server
- Dev: `pnpm run dev` - Runs server with tsx (no compilation needed)
## Environment
- Copy `.env.example` to `.env` and configure for your database connection
- Two ways to configure:
- Set `DSN` to a full connection string (recommended)
- Set `DB_CONNECTOR_TYPE` to select a connector with its default DSN
- Transport options:
- Set `--transport=stdio` (default) for stdio transport
- Set `--transport=sse` for SSE transport with HTTP server
## Database Connectors
- Add new connectors in `src/connectors/{db-type}/index.ts`
- Implement the `Connector` and `DSNParser` interfaces from `src/interfaces/connector.ts`
- Register connector with `ConnectorRegistry.register(connector)`
- DSN Examples:
- PostgreSQL: `postgres://user:password@localhost:5432/dbname`
- SQLite: `sqlite:///path/to/database.db`
## Code Style
- TypeScript with strict mode enabled
- ES modules with `.js` extension in imports
- Group imports: Node.js core modules → third-party → local modules
- Use camelCase for variables/functions, PascalCase for classes/types
- Include explicit type annotations for function parameters/returns
- Use try/finally blocks with DB connections (always release clients)
- Prefer async/await over callbacks and Promise chains
- Format error messages consistently
- Use parameterized queries for DB operations
- Validate inputs with zod schemas
- Include fallbacks for environment variables
- Use descriptive variable/function names
- Keep functions focused and single-purpose