Datasource Plugins
Connect BigQuery, ClickHouse, DuckDB, MySQL, Snowflake, and Salesforce as Atlas query targets.
Atlas supports PostgreSQL and MySQL natively via ATLAS_DATASOURCE_URL. For other databases and APIs, use datasource plugins. Each plugin provides a connection factory, SQL dialect hints for the agent, query validation rules, and health checks.
All datasource plugins follow the same pattern:
- Install the database driver (optional peer dependency)
- Import the plugin factory in
atlas.config.ts - Pass connection credentials via environment variables
Never commit credentials to version control. Use environment variables (process.env.CLICKHOUSE_URL) in atlas.config.ts and add .env to .gitignore.
Available Datasource Plugins
BigQuery
Google Cloud data warehouse via REST API
ClickHouse
Column-oriented analytics database via HTTP transport
DuckDB
Embedded analytics engine, file-based or in-memory
MySQL
MySQL / MariaDB via connection pool
Snowflake
Snowflake Data Cloud with pool management
Salesforce
Salesforce CRM via SOQL (not SQL)
Comparison
| Feature | BigQuery | ClickHouse | DuckDB | MySQL | Snowflake | Salesforce |
|---|---|---|---|---|---|---|
| Driver package | @google-cloud/bigquery | @clickhouse/client | @duckdb/node-api | mysql2 | snowflake-sdk | jsforce |
| Transport | REST API | HTTP | In-process | TCP pool | SDK pool | REST API |
| Query language | BigQuery SQL | ClickHouse SQL | DuckDB SQL | MySQL SQL | Snowflake SQL | SOQL |
| Parser dialect | BigQuery | PostgreSQL (closest) | PostgreSQL (closest) | MySQL | Snowflake | Custom (regex) |
| Read-only enforcement | SQL validation + IAM | readonly: 1 per query | READ_ONLY access mode (file-based only) | READ ONLY session | SQL validation only | SELECT-only validation |
| Agent tool | executeSQL | executeSQL | executeSQL | executeSQL | executeSQL | querySalesforce |
| Connection caching | No (stateless REST) | No (stateless HTTP) | Yes (in-process) | Yes (pool) | Yes (pool) | Yes (session) |