Architecture

LayerLocationRole
Shared RDBMS pluginDataSourcesPlugins/RDBMSDataSource/RDBSource, Dapper usage, entity cache, pagination, resilience partials
Engine coreDataSourcesPluginsCore/<Engine>DataSourceCore/Add-in registration, DataSourceType, optional overrides
Helpers (BeepDM)Resolved by DataSourceTypeDDL/DML templates, capability checks — see BeepDM/.cursor/universal-rdbms-helper, rdbms-helper-facade

Types that inherit RDBSource

All SQL execution, Dapper wiring, schema/CRUD partials, and transaction hooks live on RDBSource in the shared plugin. Engine projects are thin: they set delimiters, optional overrides, and AddinAttribute (DatasourceCategory + DataSourceType).

ImplementationProject folderCategoryHelp
SQLServerDataSourceDataSourcesPluginsCore/SQlServerDataSourceCore/RDBMSSQL Server
PostgreDataSourceDataSourcesPluginsCore/PostgreDataSourceCore/RDBMSPostgreSQL
MySQLDataSourceDataSourcesPluginsCore/MySqlDataSourceCore/RDBMSMySQL
OracleDataSourceDataSourcesPluginsCore/OracleDataSourceCore/RDBMSOracle
SnowFlakeDataSourceDataSourcesPluginsCore/SnowFlakeDataSource/CLOUDSnowflake — see also Cloud & analytics
SpannerDataSourceDataSourcesPluginsCore/SpannerDataSourceCore/CLOUDSpanner
PrestoDataSourceDataSourcesPluginsCore/PrestoDatasource/CLOUDPresto

InMemoryRDBSource (DuckDB & SQLite)

InMemoryRDBSource lives in the same plugin (DataSourcesPlugins/RDBMSDataSource/InMemoryRDBSource.cs): it extends RDBSource and implements IInMemoryDB for structure/load workflows. Two shipped cores build on it:

  • DuckDBDataSource — InMemoryDB/DuckDBDataSourceCore/, DatasourceCategory.INMEMORY, DataSourceType.DuckDB. Uses DuckDB.NET; documented under Local & in-memory.
  • SQLiteDataSource — DataSourcesPluginsCore/SqliteDatasourceCore/, also implements ILocalDB; AddinAttribute category RDBMS, type SqlLite. File lifecycle stays on the local-db path even though SQL behavior comes from the RDBMS stack.

LiteDB does not inherit RDBSource; it is a document store with its own core. See LiteDB.

IDataSourceHelper boundary

Runtime CRUD and metadata on RDBSource delegate dialect work to the helper for the active DataSourceType. Do not duplicate vendor SQL in the core when a helper already exposes the same operation; extend the helper or the shared RDBSource path so all RDBMS drivers stay consistent.

Configuration

Use ConnectionProperties with server fields (Host, Port, Database, SchemaName, Oracle SID/service where applicable), then validate and open. Same editor flow as other datasources (IDMEEditor).

SQLite note

SQLite inherits InMemoryRDBSource (see DuckDB & SQLite above), is registered as RDBMS with DataSourceType.SqlLite, and adds ILocalDB for file lifecycle. See SQLite provider and local & in-memory overview.

Contrast: NOSQL

Document, key-value, and time-series cores use DatasourceCategory.NOSQL and do not inherit RDBSource. See NoSQL overview.

Contrast: REST / SaaS connectors

Vendors under Connectors/ expose HTTP APIs via WebAPIDataSource and typically WebAPIConnectionProperties rather than SQL connection strings. Overview: REST / SaaS connectors; per-vendor command catalogs: flagship conn-* index.

Documented engines

Additional cores (Firebird, Timescale, etc.) follow the same pattern; add HTML pages when you document them.

Plugin Internals

Deep-dive documentation for the shared RDBSource plugin:

  • Architecture — Partial class breakdown (16 files), helper classes, design patterns, database support matrix
  • Configuration — ConnectionProperties, driver setup, resilience settings, cache tuning, bulk operation config
  • Troubleshooting — Common errors, driver issues, Oracle specifics, known bugs and workarounds, performance tuning

For a per-file walkthrough of all sixteen partial classes — member inventories, call flow, extension points and the defect register — read the Markdown reference kept alongside the source at DataSourcesPlugins/RDBMSDataSource/docs/. Start with docs/README.md, and with docs/01-error-model.md before changing anything: how this class reports success and failure is unusual and explains much of the rest. The authoritative defect list is docs/10-known-issues.md.

BeepDM skills

  • BeepDM/.cursor/idatasource/SKILL.md
  • BeepDM/.cursor/universal-helper-factory/SKILL.md
  • BeepDM/.cursor/universal-rdbms-helper/SKILL.md
  • BeepDM/.cursor/rdbms-helper-facade/SKILL.md