@@ -12,8 +12,8 @@ description: Driver protocol schemas
1212## TypeScript Usage
1313
1414``` typescript
15- import { DriverCapabilitiesSchema , DriverInterfaceSchema , DriverOptionsSchema } from ' @objectstack/spec/system' ;
16- import type { DriverCapabilities , DriverInterface , DriverOptions } from ' @objectstack/spec/system' ;
15+ import { DriverCapabilitiesSchema , DriverConfigSchema , DriverInterfaceSchema , DriverOptionsSchema , PoolConfigSchema } from ' @objectstack/spec/system' ;
16+ import type { DriverCapabilities , DriverConfig , DriverInterface , DriverOptions , PoolConfig } from ' @objectstack/spec/system' ;
1717
1818// Validate data
1919const result = DriverCapabilitiesSchema .parse (data );
@@ -27,19 +27,52 @@ const result = DriverCapabilitiesSchema.parse(data);
2727
2828| Property | Type | Required | Description |
2929| :--- | :--- | :--- | :--- |
30- | ** transactions** | ` boolean ` | ✅ | Supports transactions |
31- | ** queryFilters** | ` boolean ` | ✅ | Supports WHERE clause filtering |
32- | ** queryAggregations** | ` boolean ` | ✅ | Supports GROUP BY and aggregation functions |
33- | ** querySorting** | ` boolean ` | ✅ | Supports ORDER BY sorting |
34- | ** queryPagination** | ` boolean ` | ✅ | Supports LIMIT/OFFSET pagination |
35- | ** queryWindowFunctions** | ` boolean ` | ✅ | Supports window functions with OVER clause |
36- | ** querySubqueries** | ` boolean ` | ✅ | Supports subqueries |
37- | ** joins** | ` boolean ` | ✅ | Supports SQL joins |
38- | ** fullTextSearch** | ` boolean ` | ✅ | Supports full-text search |
39- | ** jsonFields** | ` boolean ` | ✅ | Supports JSON field types |
40- | ** arrayFields** | ` boolean ` | ✅ | Supports array field types |
30+ | ** create** | ` boolean ` | optional | Supports CREATE operations |
31+ | ** read** | ` boolean ` | optional | Supports READ operations |
32+ | ** update** | ` boolean ` | optional | Supports UPDATE operations |
33+ | ** delete** | ` boolean ` | optional | Supports DELETE operations |
34+ | ** bulkCreate** | ` boolean ` | optional | Supports bulk CREATE operations |
35+ | ** bulkUpdate** | ` boolean ` | optional | Supports bulk UPDATE operations |
36+ | ** bulkDelete** | ` boolean ` | optional | Supports bulk DELETE operations |
37+ | ** transactions** | ` boolean ` | optional | Supports ACID transactions |
38+ | ** savepoints** | ` boolean ` | optional | Supports transaction savepoints |
39+ | ** isolationLevels** | ` Enum<'read-uncommitted' \| 'read-committed' \| 'repeatable-read' \| 'serializable'>[] ` | optional | Supported transaction isolation levels |
40+ | ** queryFilters** | ` boolean ` | optional | Supports WHERE clause filtering |
41+ | ** queryAggregations** | ` boolean ` | optional | Supports GROUP BY and aggregation functions |
42+ | ** querySorting** | ` boolean ` | optional | Supports ORDER BY sorting |
43+ | ** queryPagination** | ` boolean ` | optional | Supports LIMIT/OFFSET pagination |
44+ | ** queryWindowFunctions** | ` boolean ` | optional | Supports window functions with OVER clause |
45+ | ** querySubqueries** | ` boolean ` | optional | Supports subqueries |
46+ | ** queryCTE** | ` boolean ` | optional | Supports Common Table Expressions (WITH clause) |
47+ | ** joins** | ` boolean ` | optional | Supports SQL joins |
48+ | ** fullTextSearch** | ` boolean ` | optional | Supports full-text search |
49+ | ** jsonQuery** | ` boolean ` | optional | Supports JSON field querying |
50+ | ** geospatialQuery** | ` boolean ` | optional | Supports geospatial queries |
51+ | ** streaming** | ` boolean ` | optional | Supports result streaming (cursors/iterators) |
52+ | ** jsonFields** | ` boolean ` | optional | Supports JSON field types |
53+ | ** arrayFields** | ` boolean ` | optional | Supports array field types |
4154| ** vectorSearch** | ` boolean ` | optional | Supports vector embeddings and similarity search |
42- | ** geoSpatial** | ` boolean ` | optional | Supports geospatial queries |
55+ | ** geoSpatial** | ` boolean ` | optional | Supports geospatial queries (deprecated: use geospatialQuery) |
56+ | ** schemaSync** | ` boolean ` | optional | Supports automatic schema synchronization |
57+ | ** migrations** | ` boolean ` | optional | Supports database migrations |
58+ | ** indexes** | ` boolean ` | optional | Supports index creation and management |
59+ | ** connectionPooling** | ` boolean ` | optional | Supports connection pooling |
60+ | ** preparedStatements** | ` boolean ` | optional | Supports prepared statements (SQL injection prevention) |
61+ | ** queryCache** | ` boolean ` | optional | Supports query result caching |
62+
63+ ---
64+
65+ ## DriverConfig
66+
67+ ### Properties
68+
69+ | Property | Type | Required | Description |
70+ | :--- | :--- | :--- | :--- |
71+ | ** name** | ` string ` | ✅ | Driver instance name |
72+ | ** type** | ` Enum<'sql' \| 'nosql' \| 'cache' \| 'search' \| 'graph' \| 'timeseries'> ` | ✅ | Driver type category |
73+ | ** capabilities** | ` object ` | ✅ | Driver capability flags |
74+ | ** connectionString** | ` string ` | optional | Database connection string (driver-specific format) |
75+ | ** poolConfig** | ` object ` | optional | Connection pool configuration |
4376
4477---
4578
@@ -67,3 +100,16 @@ const result = DriverCapabilitiesSchema.parse(data);
67100| ** traceContext** | ` Record<string, string> ` | optional | OpenTelemetry context or request ID |
68101| ** tenantId** | ` string ` | optional | Tenant Isolation identifier |
69102
103+ ---
104+
105+ ## PoolConfig
106+
107+ ### Properties
108+
109+ | Property | Type | Required | Description |
110+ | :--- | :--- | :--- | :--- |
111+ | ** min** | ` number ` | optional | Minimum number of connections in pool |
112+ | ** max** | ` number ` | optional | Maximum number of connections in pool |
113+ | ** idleTimeoutMillis** | ` number ` | optional | Time in ms before idle connection is closed |
114+ | ** connectionTimeoutMillis** | ` number ` | optional | Time in ms to wait for available connection |
115+
0 commit comments