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 { DatasourceSchema, DriverDefinitionSchema, DriverType, ExternalDatasourceSettingsSchema, SchemaModeSchema } from '@objectstack/spec/data';
import type { Datasource, DriverDefinition, DriverType, ExternalDatasourceSettings, SchemaMode } from '@objectstack/spec/data';

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

Datasource

Properties

PropertyTypeRequiredDescription
namestringUnique datasource identifier
labelstringoptionalDisplay label
driverstringUnderlying driver type
configRecord<string, any>Driver specific configuration
pool{ min: number; max: number; idleTimeoutMillis: number; connectionTimeoutMillis: number }optionalConnection pool settings
ssl{ enabled: boolean; rejectUnauthorized: boolean; ca?: string; cert?: string; … }optionalSSL/TLS configuration for secure database connections
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
external{ allowedSchemas?: string[]; allowWrites: boolean; validation: object; credentialsRef?: string; … }optionalExternal datasource federation settings (schemaMode != "managed")
originEnum<'code' | 'runtime'>Datasource provenance (server-managed, read-only)
_lockEnum<'none' | 'no-overlay' | 'no-delete' | 'full'>optionalItem-level lock — controls overlay & delete (ADR-0010).
_lockReasonstringoptionalHuman-readable reason shown when a write is refused by _lock.
_lockSourceEnum<'artifact' | 'package' | 'env-forced'>optionalLayer that set _lock (artifact | package | env-forced).
_provenanceEnum<'package' | 'org' | 'env-forced'>optionalOrigin of the item (package | org | env-forced).
_packageIdstringoptionalOwning package machine id.
_packageVersionstringoptionalOwning package version.
_lockDocsUrlstringoptionalOptional documentation link surfaced next to _lockReason.

DriverDefinition

Properties

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

DriverType

Underlying driver identifier

Type: string


ExternalDatasourceSettings

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

Properties

PropertyTypeRequiredDescription
allowedSchemasstring[]optionalWhitelist of remote schemas/databases that may be exposed.
allowWritesbooleanGlobal write gate. Individual objects must also opt in via object.external.writable.
validation{ onMismatch: Enum<'fail' | 'warn' | 'ignore'>; checkOnBoot: boolean; checkIntervalMs?: number }Boot/drift validation policy
credentialsRefstringoptionalReference into the secrets store; never inline credentials.
queryTimeoutMsnumberHard cap on per-query execution time.

SchemaMode

Schema ownership mode

Allowed Values

  • managed
  • external
  • validate-only

On this page