Licence
MIT
Version
0.9.11
Deps
2
Size
23 kB
Vulns
0
Weekly
0
@elyracode/db-tools
Database tools for Elyra -- query MySQL and ClickHouse with schema awareness and safety guardrails.
Install
elyra install npm:@elyracode/db-tools
Configuration
Automatic: .env file (recommended)
If your project has a .env file (e.g. Laravel), db-tools reads it automatically. Standard key names are mapped:
| .env key | Maps to | Used by |
|---|---|---|
DB_HOST |
ELYRA_MYSQL_HOST |
MySQL |
DB_PORT |
ELYRA_MYSQL_PORT |
MySQL |
DB_DATABASE |
ELYRA_MYSQL_DATABASE |
MySQL |
DB_USERNAME |
ELYRA_MYSQL_USER |
MySQL |
DB_PASSWORD |
ELYRA_MYSQL_PASSWORD |
MySQL |
CLICKHOUSE_HOST |
ELYRA_CLICKHOUSE_HOST |
ClickHouse |
CLICKHOUSE_PORT |
ELYRA_CLICKHOUSE_PORT |
ClickHouse |
CLICKHOUSE_DATABASE |
ELYRA_CLICKHOUSE_DATABASE |
ClickHouse |
CLICKHOUSE_USERNAME |
ELYRA_CLICKHOUSE_USERNAME |
ClickHouse |
CLICKHOUSE_PASSWORD |
ELYRA_CLICKHOUSE_PASSWORD |
ClickHouse |
CLICKHOUSE_HTTPS |
ELYRA_CLICKHOUSE_HTTPS |
ClickHouse |
CLICKHOUSE_TIMEOUT_CONNECT |
ELYRA_CLICKHOUSE_TIMEOUT_CONNECT |
ClickHouse |
CLICKHOUSE_TIMEOUT_QUERY |
ELYRA_CLICKHOUSE_TIMEOUT_QUERY |
ClickHouse |
For a typical Laravel project, your existing .env already has DB_HOST, DB_DATABASE, etc. -- db-tools picks them up with zero configuration.
Manual: environment variables
You can also set ELYRA_* env vars directly. These always take precedence over .env values.
# MySQL
export ELYRA_MYSQL_HOST=localhost
export ELYRA_MYSQL_PORT=3306
export ELYRA_MYSQL_USER=readonly_user
export ELYRA_MYSQL_PASSWORD=secret
export ELYRA_MYSQL_DATABASE=myapp
# ClickHouse
export ELYRA_CLICKHOUSE_HOST=localhost
export ELYRA_CLICKHOUSE_PORT=8123
export ELYRA_CLICKHOUSE_DATABASE=mydb
export ELYRA_CLICKHOUSE_USERNAME=default
export ELYRA_CLICKHOUSE_PASSWORD=secret
export ELYRA_CLICKHOUSE_HTTPS=false
export ELYRA_CLICKHOUSE_TIMEOUT_CONNECT=10000
export ELYRA_CLICKHOUSE_TIMEOUT_QUERY=30000
Tools
| Tool | Description |
|---|---|
query_mysql |
Execute SQL against MySQL. Results returned as JSON. |
query_clickhouse |
Execute SQL against ClickHouse. Optimized for analytical queries on large datasets. |
query_sqlite |
Execute SQL against SQLite. Auto-detects Laravel SQLite databases from .env. |
get_database_schema |
Discover tables, columns, types, and indexes. Supports MySQL, ClickHouse, and SQLite. |
SQLite
SQLite is auto-detected from your project:
- If
.envhasDB_CONNECTION=sqlite, usesDB_DATABASEpath - Falls back to
database/database.sqlite(Laravel default) - Or pass an explicit path: the agent uses
db_pathparameter
No configuration needed for most Laravel projects.
Security
- Read-only by default: Only SELECT, SHOW, DESCRIBE, and EXPLAIN queries are allowed.
- Write access: Set
ELYRA_DB_ALLOW_WRITES=trueto enable INSERT, UPDATE, DELETE. - Recommendation: Use a database user with minimal privileges (SELECT only).
Usage
Once installed, just ask Elyra about your data:
> How many users registered this week?
> Show me the top 10 products by revenue
> What's the average response time from the logs table?
> Describe the schema of the orders table
The agent will automatically use get_database_schema to understand your database structure, then write and execute the appropriate SQL.