Skip to main content

Use Extension

Besides built-in extensions, you could also use the published external extensions which built by VulcanSQL team or other contributor.

Install extension npm package

VulcanSQL provides some external extension packages for you to use them optionally, please see the @vulcan-sql/ prefix npm packages.

Declare used extensions

After you installed extension npm package, please declare which package you used under the extensions key in the vulcan.yaml.

# Declare used external extension package name and give a extension name
extensions:
extension-name1: @vulcan-sql/ext-xxx
extension-name2: contributor-ext

The extensions could let you decide what external extensions you would like to use in the VulcanSQL.

You should declare a extension name and specify to extension package name you installed under the extensions key. For example the extension-name1 is the extension name and specify to @vulcan-sql/ext-xxx package.

Set-up extension options

After you define the extension name, use the set the options under extension name:


extension-name1:
... # The configuration options of the extension-name1

extension-name2:
... # The configuration options of extension-name2

# The configuration options of core feature and built-in extension
...

Here is an specific example, you could see the @vulcan-sql/extension-dbt it looks like the below:

extensions:
dbt: '@vulcan-sql/extension-dbt'

dbt:
modelFiles: path/to/folder

⚠️ Not all extensions have options

Some extension options may rely on internal or built-extensions configuration options and set options under internal or built-extensions configuration options. We should check each document of the extensions npm package.

For example, if you would like to use @vulcan-sql/extension-driver-duckdb it looks like the below:

extensions:
duckdb: '@vulcan-sql/extension-driver-duckdb'

But the duckdb is an data source driver, so if you would like to make your Data API /orders could query orders from duckdb driver, you should define the duckdb data source driver in data source profile like below:

# duckdb-profile.yaml
name: duck
type: duckdb
connection:
persistent-path: ./test-data/moma.db
log-queries: true
log-parameters: true
allow: '*'