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
| Plugin | ID | Type | Mapper Format Key | Status |
|---|---|---|---|---|
| PostgreSQL SQL Plugin | com.sureclinical.sql-postgresql | translator | sql-postgresql | ✅ Built-in |
| DuckDB SQL Plugin | com.sureclinical.sql-duckdb | translator | sql-duckdb | ✅ Built-in |
| Seed Dataset Generator | com.sureclinical.seed-data-generator | translator | seed-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).
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.
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.
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
.jsES module file - Programmatically: call
loadPluginFromUrl(url)orloadPluginFromFile(file)from the Plugin System API