Registry / ecommerce / directus-extension-sql-query-panel

directus-extension-sql-query-panel

JSON →
library1.4.0jsnpmunverified

A Directus extension that adds an Insights panel for executing dynamic SQL queries and displaying results in a table. Version 1.4.0 is the latest stable release. It supports global variables, static queries, CALL statements, CSV export, summary rows, configurable columns, and row actions. Unlike generic SQL tools, it integrates directly with Directus permissions, allowing panel-level access control. The package ships TypeScript types. Releases are occasional; maintained by BCC Code.

npm install directus-extension-sql-query-panel
INSTALL
IMPORT
SIG · DIRECTUS-EXTENSION
D
directus-extension-sql-query-panel
ecommercejavascriptv1.4.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default extension registration
import sqlQueryPanel from 'directus-extension-sql-query-panel'
const sqlQueryPanel = require('directus-extension-sql-query-panel')
Uses Directus extension registration pattern; module is ESM-only.
SQLPanel (type)
import type { SQLPanel } from 'directus-extension-sql-query-panel'
import { SQLPanel } from 'directus-extension-sql-query-panel'
Only exported as type, not runtime value.
hooks/emitter events (via Directus)
import { emitter } from '@directus/extensions-sdk'; // then emitter.onFilter('sql-query:request', ...)
import { emitter } from 'directus-extension-sql-query-panel'
Events are emitted by the Directus server, not imported from this extension.

Demonstrates installation, basic panel usage with static and variable queries, and hooking into extension events.

// Install extension // npm install directus-extension-sql-query-panel // After installing, restart Directus and add a panel of type "SQL Query panel" // In the panel configuration, enter: SELECT id, title, status FROM articles WHERE status = 'published'; // Optionally use variables: SELECT id, title, status FROM articles WHERE status = '{{status}}'; // Add global variable 'status' in the panel settings. // For static queries (no variables), check "Static query" to skip parameter input. // Example of listening to events (usually in a custom extension hook): import { defineHook } from '@directus/extensions-sdk'; export default defineHook(({ emitter }) => { emitter.onFilter('sql-query:request', async ({ variables, query }, req) => { // Modify variables or query if (query.includes('{{tenant}}')) { variables.tenant = req.accountability?.user?.id ?? ''; } return { variables, query }; }); });
Debug
Known issues
deprecatedEvent filter name 'sql-query:request' changed to 'sql-query:request' in v1.3.0.
fix
Update filter name if using older version.
affects: <1.3.0
gotchaGlobal variables must be wrapped with double curly braces and exactly match the variable name in the panel settings.
fix
Use format {{variableName}} and ensure variableName is added in panel variable configuration.
affects: >=1.0.0
gotchaStatic queries (no variables) ignore variable inputs; marking as static after saving may cause confusion.
fix
Set 'Static query' only when the query contains no {{variables}}.
affects: >=1.0.0
gotchaPanel permissions follow Directus role access; users without access to the Insights dashboard or panel will get no results.
fix
Check Directus Access settings for the panel and role.
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'directus-extension-sql-query-panel'
Extension not installed or not installed in the correct Directus extensions directory.
fix
Run 'npm install --save directus-extension-sql-query-panel' in the project root and restart Directus.
TypeError: emitter.onFilter is not a function
Using old Directus extension API; emitter is received differently.
fix
Ensure you are using Directus 10+ and import emitter from '@directus/extensions-sdk' in defineHook.
Variables not replaced in query
Variables used in query but not defined in the panel's variable input.
fix
Add the variable name (without curly braces) to the 'Variables' field in the panel settings and provide a default value.
Upgrade
Version history
1.4.0latest on npm
Audit
Dependencies
directusrequiredRuntime peer dependency for extension APIs (emitter, services, hooks)
Agent activity
41 hits · last 30 days
node
34
OpenAI (training)
1
Resources
directus-extension-sql-query-panel — npm install directus-extension-sql-query-panel · libregistry