Skip to main content

Plugins Registry

Schema Builder ships with three built-in translator plugins, registered automatically at app startup via registerBuiltins.ts. Additional plugins can be loaded at runtime from a URL or file — see the Plugin System page for the full authoring and loading API.

Built-in Plugins

PluginIDTypeMapper Format KeyStatus
PostgreSQL SQL Plugincom.sureclinical.sql-postgresqltranslatorsql-postgresql✅ Built-in
DuckDB SQL Plugincom.sureclinical.sql-duckdbtranslatorsql-duckdb✅ Built-in
Seed Dataset Generatorcom.sureclinical.seed-data-generatortranslatorseed-data-sql✅ Built-in

PostgreSQL SQL Plugin

ID: com.sureclinical.sql-postgresql · Version: 1.1.0 · Format key: sql-postgresql

Generates CREATE TABLE DDL for PostgreSQL from Mapper View rows. Supports FK inference, REFERENCES constraints, and PostgreSQL-specific type mapping (JSONB, TIMESTAMP WITH TIME ZONE, UUID).

Full documentation →


DuckDB SQL Plugin

ID: com.sureclinical.sql-duckdb · Version: 1.1.0 · Format key: sql-duckdb

Generates CREATE TABLE DDL for DuckDB from Mapper View rows. Uses DuckDB-native types (VARCHAR, DOUBLE, TIMESTAMP, VARCHAR(36) for UUIDs, JSON) and the same FK inference algorithm as the PostgreSQL plugin.

Full documentation →


Seed Dataset Generator

ID: com.sureclinical.seed-data-generator · Version: 1.0.0 · Format key: seed-data-sql

Generates INSERT INTO SQL with realistic, deterministic data using faker.js (faker.seed(42)). Two-pass generation pre-populates IRIs before emitting rows so FK references are always valid.

Full documentation →


Plugin Manager UI

All registered plugins — built-in and user-loaded — are visible in the Plugin Manager dialog:

overflow menu → View Plugins

The Plugin Manager shows each plugin's ID, type, version, description, and an active toggle. Built-in plugins cannot be removed but can be deactivated. User-loaded plugins can be removed entirely.

To load a custom plugin:

  • From URL: paste a CDN or dev-server URL into the Plugin Manager URL field
  • From file: click "Load from file" and select a .js ES module file
  • Programmatically: call loadPluginFromUrl(url) or loadPluginFromFile(file) from the Plugin System API