quack-on-demand

n8n community node to run SQL and browse the catalog on a Quack on Demand FlightSQL edge

Package Information

Released: 2 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.1

Documentation

n8n-nodes-quack-on-demand

npm version

An n8n community node that runs SQL against a Quack on Demand FlightSQL edge and returns each result row as an n8n item.

It talks to the edge over raw gRPC (Node has no first-party Flight SQL driver) and decodes the Arrow result stream with apache-arrow. The gRPC stack is @grpc/grpc-js, which is pure JavaScript with no native addon, so the node bundles cleanly. The Flight protocol is inlined, so there is no .proto asset to ship.

Operations

Each operation maps to a Flight SQL command the edge implements natively (no raw SQL workarounds). Int64 and Decimal columns are returned as strings so they serialize cleanly into n8n items.

Operation Flight SQL command Result columns
Execute Query CommandStatementQuery your query's columns
List Catalogs CommandGetCatalogs catalog_name
List Schemas CommandGetDbSchemas catalog_name, db_schema_name
List Tables CommandGetTables catalog_name, db_schema_name, table_name, table_type
  • Execute Query runs once per input item and emits one output item per row.
  • List Schemas / List Tables accept optional LIKE filters (e.g. tpch%).
  • List Tables offers a Schema dropdown populated from the edge's schemas (via CommandGetDbSchemas), so you can browse without typing SQL.

Credentials

Quack on Demand API:

Field Default Purpose
Host 127.0.0.1 FlightSQL edge host
Port 31338 FlightSQL edge port
Tenant acme Routing tenant
Pool bi Routing pool
User / Password admin / admin HTTP Basic credential
Superuser true Authenticate against the system realm (bypasses the ACL gate)
Use TLS true Edge listens with TLS (the default)
Verify TLS Certificate false Validate the chain; leave off to accept the auto-generated self-signed cert

Install

The package is published on npm as n8n-nodes-quack-on-demand. All install methods require a self-hosted n8n instance (community nodes are not available on n8n Cloud's verified-only mode unless the package is verified).

In the n8n UI (recommended)

  1. Open Settings → Community Nodes.
  2. Click Install, enter n8n-nodes-quack-on-demand, and confirm.
  3. n8n fetches the package from npm and restarts the node loader; the Quack on Demand node then appears in the node picker.

Manual install with npm

For instances where the Community Nodes UI is disabled, install the package into n8n's user nodes directory:

cd ~/.n8n/nodes        # create it if it does not exist
npm install n8n-nodes-quack-on-demand
# then restart n8n

Docker

Install the package into the container's nodes directory, for example with a derived image:

FROM docker.n8n.io/n8nio/n8n
USER root
RUN mkdir -p /home/node/.n8n/nodes \
 && cd /home/node/.n8n/nodes \
 && npm install n8n-nodes-quack-on-demand \
 && chown -R node:node /home/node/.n8n
USER node

From source (local development)

npm install
npm run build
# link into your n8n custom extensions directory
mkdir -p ~/.n8n/custom
npm link
cd ~/.n8n/custom && npm link n8n-nodes-quack-on-demand
# then restart n8n

Quick start

  1. Start a Quack on Demand FlightSQL edge if you do not have one running yet:

    uvx qod start --demo
    
  2. Install the node (see above) and restart n8n.

  3. Create a Quack on Demand API credential (Settings → Credentials or from the node itself) pointing at your FlightSQL edge; the defaults match the local demo setup from step 1.

  4. Add the Quack on Demand node to a workflow, pick an operation, and run:

    • Execute Query against the TPC-H sample data seeded by the demo, for
      example:

      SELECT c_mktsegment, count(*) AS customers
      FROM tpch1.customer
      GROUP BY c_mktsegment
      ORDER BY customers DESC
      

      Each result row becomes one n8n item, so this emits one item per market segment.

    • List Catalogs / Schemas / Tables to browse the edge's catalog without writing SQL.

Releasing a new version (maintainers)

The package is published on npm as a community node (installable on self-hosted n8n). It is not eligible for n8n verification / n8n Cloud: verified nodes may not declare runtime dependencies, and this node bundles @grpc/grpc-js, @grpc/proto-loader, apache-arrow, and protobufjs.

npm install
npm run lint         # n8n node conventions (eslint-plugin-n8n-nodes-base)
npm run build        # emits dist/ and copies the icon
npm version patch    # or minor / major
npm publish          # publishConfig.access is already "public"

prepublishOnly re-runs build and lint before every publish.

Notes and limitations

  • Self-hosted only in practice. A Code node cannot require these npm packages on n8n Cloud; this packaged node sidesteps that, but installing a community node still needs a self-hosted instance.
  • TLS. The node pins the edge's self-signed certificate off the wire when Verify TLS Certificate is off. For a hardened deployment install a CA-signed cert on the edge and turn verification on.
  • One statement per query. The edge runs a single statement per call; the node does not split multi-statement input.

License

Apache-2.0

Discussion