npm.io
0.9.11 • Published 2d ago

@elyracode/db-tools

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

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:

  1. If .env has DB_CONNECTION=sqlite, uses DB_DATABASE path
  2. Falls back to database/database.sqlite (Laravel default)
  3. Or pass an explicit path: the agent uses db_path parameter

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=true to 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.

Keywords