Source of truth
  • DataSourceType enum in DataManagementModelsStandard
  • DatasourceCategory enum for grouping

Categories

CategoryDescriptionExamples
RDBMSRelational database management systemsSqlServer, PostgreSQL, MySQL, Oracle, SQLite
NOSQLNon-relational/document storesMongoDB, Redis, Cassandra, Couchbase
CLOUDCloud-based data servicesCosmosDB, WebService, REST APIs
GRAPHGraph databasesNeo4j, ArangoDB
SEARCHSearch and analytics enginesElasticSearch
FileBasedFile-based data formatsCSV, Excel, JSON, XML, PDF
MEMORYIn-memory/transient storageInMemory, InMemoryDB

RDBMS

DatasourceTypeDriverConnection String PatternSpecialized Helper
SqlServerMicrosoft.Data.SqlClientServer={Host};Database={Database};RdbmsHelper
PostgresqlNpgsqlHost={Host};Database={Database};RdbmsHelper
MySqlMySqlConnectorServer={Host};Database={Database};RdbmsHelper
OracleOracle.ManagedDataAccessDATA SOURCE={Host}/{ServiceName};RdbmsHelper
SqlLiteMicrosoft.Data.SqliteData Source={FilePath}RdbmsHelper
DB2IBM.Data.DB2Server={Host};Database={Database};RdbmsHelper
SybaseAdoNetCore.AseClientData Source={Host};Port={Port};RdbmsHelper
FirebirdFirebirdSql.Data.FirebirdClientDatabase={FilePath};RdbmsHelper
MsAccessSystem.Data.OleDbProvider=Microsoft.ACE.OLEDB;RdbmsHelper
InformixIBM.Data.InformixServer={Host};Service={Port};RdbmsHelper
TeradataTeradata.ClientData Source={Host};RdbmsHelper
NetezzaIBM.Data.NetezzaServer={Host};Database={Database};RdbmsHelper

NoSQL

DatasourceTypeCategoryHelperFeatures
MongoDBNOSQLMongoDBHelperDocument store, BSON, aggregation pipeline
RedisNOSQLRedisHelperKey-value, pub/sub, cache, streams
CassandraNOSQLCassandraHelperWide-column, CQL, high availability
CosmosDBCLOUDRdbmsHelperMulti-model (SQL, MongoDB, Gremlin, Table)
CouchbaseNOSQLRdbmsHelperDocument store with N1QL

File-Based

DatasourceTypeFormatConnectionHelper
CsvComma-separated valuesFileConnectionFileHelper
ExcelXLS/XLSX spreadsheetsFileConnectionFileHelper
JsonJSON documentsFileConnectionFileHelper
XmlXML documentsFileConnectionFileHelper
ParquetColumnar storageFileConnectionFileHelper
PdfPDF documentsFileConnectionFileHelper
ImageImage filesFileConnectionFileHelper
TextPlain text filesFileConnectionFileHelper
HtmlHTML documentsFileConnectionFileHelper

Cloud & Memory

DatasourceTypeCategoryUse Case
WebServiceCLOUDREST API endpoints via WebAPIDataSource
GraphGRAPHNeo4j, ArangoDB graph traversal
ElasticSearchSEARCHFull-text search and analytics
InMemoryMEMORYTransient runtime-only data
InMemoryDBMEMORYIn-memory with optional persistence
DataViewMEMORYFederated/virtual data views

Capability Matrix

DataSourceCapabilityMatrix maps each DataSourceType to its supported capabilities, enabling intelligent query generation and graceful degradation.

Core Capabilities

CapabilitySQL ServerPostgreSQLMySQLSQLiteMongoDBRedisCSV
SupportsTransactionsYesYesYesYesYesYes*No
SupportsJoinsYesYesYesYesNoNoNo
SupportsAggregationsYesYesYesYesYesNoNo
SupportsIndexesYesYesYesYesYesNoNo
SupportsIdentityYesYesYesYesNoYesNo
SupportsBulkOperationsYesYesYesNoYesYesNo
SupportsFullTextSearchYesYesYesNoYesNoNo
SupportsViewsYesYesYesYesNoNoNo
SupportsStoredProceduresYesYesYesNoNoYes*No
SupportsTTLNoNoNoNoYesYesNo
IsSchemaEnforcedYesYesYesYesNoNoNo

Vector & Graph Capabilities

CapabilityPurposeSupported By
SupportsVectorSearchSimilarity searchVector DBs, PostgreSQL (pgvector), Elasticsearch
SupportsEmbeddingsEmbedding storage/retrievalVector DBs, PostgreSQL, Redis
SupportsANNApproximate Nearest NeighborVector DBs (HNSW, IVF)
SupportsGraphTraversalGraph traversalNeo4j, ArangoDB, CosmosDB
SupportsCypherQueryCypher query languageNeo4j
SupportsGremlinQueryGremlin query languageCosmosDB, JanusGraph

Streaming & Protocol Capabilities

CapabilityPurpose
SupportsStreamingStreaming data operations (Kafka, Kinesis)
SupportsPublishSubscribePub/sub messaging (Redis, Kafka)
SupportsMessageOrderingMessage ordering guarantees
SupportsDeadLetterQueueFailed message routing (Kafka, Azure Service Bus)
SupportsPushNotificationsReal-time push updates (Redis, Firebase)
SupportsContinuousQueriesChange data capture / continuous queries
SupportsAsyncOperationsAsync/await pattern support
SupportsOAuthOAuth authentication (REST APIs, cloud DBs)

Capability API

// Get capabilities for a datasource type
var caps = DataSourceCapabilityMatrix.GetCapabilities(DataSourceType.SqlServer);

// String-based check (case-insensitive)
bool canJoin = caps.IsCapable("SupportsJoins");         // true
bool canVector = caps.IsCapable("SupportsVectorSearch"); // false

// Enum-based check (strongly typed)
bool canBulk = caps.IsCapable(CapabilityType.SupportsBulkOperations); // true

// CapabilityType enum: 36 values
// SupportsTransactions, SupportsJoins, SupportsAggregations,
// SupportsIndexes, SupportsIdentity, SupportsBulkOperations,
// SupportsVectorSearch, SupportsGraphTraversal, SupportsStreaming,
// SupportsPushNotifications, SupportsOAuth, ...

Connection Examples

RDBMS

var props = new ConnectionProperties
{
    ConnectionName = "MyDB",
    DatabaseType = DataSourceType.SqlServer,
    Category = DatasourceCategory.RDBMS,
    Host = "localhost",
    Port = 1433,
    Database = "ProductsDB",
    UserID = "app_user",
    Password = "secret"
};

MongoDB

var props = new ConnectionProperties
{
    ConnectionName = "Mongo",
    ConnectionString = "mongodb://localhost:27017",
    DatabaseType = DataSourceType.MongoDB,
    Category = DatasourceCategory.NOSQL,
    Database = "ProductCatalog"
};

File-Based

var props = new ConnectionProperties
{
    ConnectionName = "CSVData",
    ConnectionString = "./data/",
    FileName = "export.csv",
    DatabaseType = DataSourceType.Csv,
    Category = DatasourceCategory.FileBased
};

Web API

var props = new ConnectionProperties
{
    ConnectionName = "ExternalAPI",
    ConnectionString = "https://api.example.com/v1",
    DatabaseType = DataSourceType.WebService,
    Category = DatasourceCategory.CLOUD,
    Parameters = "Bearer token123"
};