ObjectStackObjectStack

Datasource

Datasource protocol schemas

Driver Identifier

Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").

Source: packages/spec/src/data/datasource.zod.ts

TypeScript Usage

import { Datasource, DatasourceCapabilities, DriverDefinition, DriverType, ExternalDatasourceSettings, ModeSchema } from '@objectstack/spec/data';
import type { Datasource, DatasourceCapabilities, DriverDefinition, DriverType, ExternalDatasourceSettings, Mode } from '@objectstack/spec/data';

// Validate data
const result = Datasource.parse(data);

Datasource

Properties

PropertyTypeRequiredDescription
namestringUnique datasource identifier
labelstringoptionalDisplay label
driverstringUnderlying driver type
configRecord<string, any>Driver specific configuration
poolObjectoptionalConnection pool settings
readReplicasRecord<string, any>[]optionalRead-only replica configurations
capabilitiesObjectoptionalCapability overrides
healthCheckObjectoptionalDatasource health check configuration
sslObjectoptionalSSL/TLS configuration for secure database connections
retryPolicyObjectoptionalConnection retry policy for transient failures
descriptionstringoptionalInternal description
activebooleanIs datasource enabled
autoConnectbooleanForce a live driver connection at boot even when managed + unrouted (ADR-0062 D2).
schemaModeEnum<'managed' | 'external' | 'validate-only'>Schema ownership mode
externalObjectoptionalExternal datasource federation settings (schemaMode != "managed")
originEnum<'code' | 'runtime'>Datasource provenance (server-managed, read-only)

DatasourceCapabilities

Properties

PropertyTypeRequiredDescription
transactionsboolean
queryFiltersboolean
queryAggregationsboolean
querySortingboolean
queryPaginationboolean
queryWindowFunctionsboolean
querySubqueriesboolean
joinsboolean
fullTextSearchboolean
readOnlyboolean
dynamicSchemaboolean

DriverDefinition

Properties

PropertyTypeRequiredDescription
idstringUnique driver identifier (e.g. "postgres")
labelstringDisplay label (e.g. "PostgreSQL")
descriptionstringoptional
iconstringoptional
configSchemaRecord<string, any>JSON Schema for connection configuration
capabilitiesObjectoptional


ExternalDatasourceSettings

External datasource federation settings (schemaMode != "managed")

Properties

PropertyTypeRequiredDescription
labelstringoptionalDisplay label, e.g. "Snowflake — ANALYTICS / PROD"
allowedSchemasstring[]optionalWhitelist of remote schemas/databases that may be exposed.
allowWritesbooleanGlobal write gate. Individual objects must also opt in via object.external.writable.
validationObjectBoot/drift validation policy
credentialsRefstringoptionalReference into the secrets store; never inline credentials.
queryTimeoutMsnumberHard cap on per-query execution time.
requirePermissionstringoptionalOptional convenience: gate the entire datasource behind a single role.

ModeSchema

Schema ownership mode

Allowed Values

  • managed
  • external
  • validate-only

On this page