Extension Manager Interface

June 17, 2026 · View on GitHub

⚠ Deprecation Warning ⚠

This project is deprecated and not maintained any more.

Build Status npm version

Quality Gate Status

This is the interface definition for Exasol extensions that can be installed by the Exasol extension-manager.

Creating New Extensions

This section describes how to create a new extension.

Base Extension Types

You have the following options for creating a new extensions:

Generic Interface

The generic extension interface is defined in src/api.ts. It is the most flexible option but requires implementing all extension methods from scratch.

Example: row-level-security-lua

Java SCRIPT Base

The base extension interface for Java SCRIPT based extension is defined in src/base/index.ts. It is useful for extensions that only consist of one or multiple Java SCRIPT UDFs and don't use instances.

Example: cloud-storage-extension

Java VIRTUAL SCHEMA Base

The base extension interface for Java VIRTUAL SCHEMAs is defined in src/base-vs/index.ts. It is useful for JDBC or document based Virtual Schemas that are based on Java UDFs.

Examples:

Testing Extensions

Create unit tests for new extensions with Jest. In your test call the function testJavaVirtualSchemaBaseExtension() to also run shared unit tests:

import { testJavaVirtualSchemaBaseExtension } from '@exasol/extension-manager-interface/dist/base-vs-test/vsTestBase';
import { createExtension } from "./extension";

// ...

testJavaVirtualSchemaBaseExtension(createExtension);

These shared tests verify the following criteria:

  • Parameter IDs don't contain a dot .
  • Parameter IDs are unique
  • The extension contains at least one version

Additional Information