Skip to content

Latest commit

 

History

History
860 lines (629 loc) · 55.7 KB

File metadata and controls

860 lines (629 loc) · 55.7 KB
title Misc
description Misc protocol schemas

{/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs live in the module folders under content/docs/. */}

**Source:** `packages/spec/src/integration/misc.zod.ts`

TypeScript Usage

import { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageFormat, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
import type { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabaseConnector, DatabasePoolConfig, DatabaseTable, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageConnector, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubConnector, GitHubIssueTracking, GitHubProvider, GitHubPullRequestConfig, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, MessageFormat, MessageQueueConnector, ProducerConfig, SaasConnector, SaasObjectType, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelConnector, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';

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

AckMode

Message acknowledgment mode

Allowed Values

  • auto
  • manual
  • client

ApiVersionConfig

Properties

Property Type Required Description
version string API version (e.g., "v2", "2023-10-01")
isDefault boolean Is this the default version
deprecationDate string optional API version deprecation date (ISO 8601)
sunsetDate string optional API version sunset date (ISO 8601)

BuildConfig

Properties

Property Type Required Description
buildCommand string optional Build command (e.g., npm run build)
outputDirectory string optional Output directory (e.g., .next, dist)
installCommand string optional Install command (e.g., npm install, pnpm install)
devCommand string optional Development command (e.g., npm run dev)
nodeVersion string optional Node.js version (e.g., 18.x, 20.x)
env Record<string, string> optional Build environment variables

CdcConfig

Properties

Property Type Required Description
enabled boolean Enable CDC
method Enum<'log_based' | 'trigger_based' | 'query_based' | 'custom'> CDC method
slotName string optional Replication slot name (for log-based CDC)
publicationName string optional Publication name (for PostgreSQL)
startPosition string optional Starting position/LSN for CDC stream
batchSize number CDC batch size
pollIntervalMs number CDC polling interval in ms

DatabaseConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'database'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'postgresql' | 'mysql' | 'mariadb' | 'mssql' | 'oracle' | 'mongodb' | 'redis' | 'cassandra' | 'snowflake' | 'bigquery' | 'redshift' | 'custom'> Database provider type
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
connectionConfig { host: string; port: number; database: string; username: string; … } Database connection configuration
poolConfig { min?: number; max?: number; idleTimeoutMs?: number; connectionTimeoutMs?: number; … } optional Connection pool configuration
sslConfig { enabled?: boolean; rejectUnauthorized?: boolean; ca?: string; cert?: string; … } optional SSL/TLS configuration
tables { name: string; label: string; schema?: string; tableName: string; … }[] Tables to sync
cdcConfig { enabled?: boolean; method: Enum<'log_based' | 'trigger_based' | 'query_based' | 'custom'>; slotName?: string; publicationName?: string; … } optional CDC configuration
readReplicaConfig { enabled?: boolean; hosts: { host: string; port: number; weight?: number }[] } optional Read replica configuration
queryTimeoutMs number optional Query timeout in ms
enableQueryLogging boolean optional Enable SQL query logging

DatabasePoolConfig

Properties

Property Type Required Description
min number Minimum connections in pool
max number Maximum connections in pool
idleTimeoutMs number Idle connection timeout in ms
connectionTimeoutMs number Connection establishment timeout in ms
acquireTimeoutMs number Connection acquisition timeout in ms
evictionRunIntervalMs number Connection eviction check interval in ms
testOnBorrow boolean Test connection before use

DatabaseTable

Properties

Property Type Required Description
name string Table name in ObjectStack (snake_case)
label string Display label
schema string optional Database schema name
tableName string Actual table name in database
primaryKey string Primary key column
enabled boolean optional Enable sync for this table
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Table-specific field mappings
whereClause string optional SQL WHERE clause for filtering

DeliveryGuarantee

Message delivery guarantee

Allowed Values

  • at_most_once
  • at_least_once
  • exactly_once

DeploymentConfig

Properties

Property Type Required Description
autoDeployment boolean Enable automatic deployments
regions Enum<'iad1' | 'sfo1' | 'gru1' | 'lhr1' | 'fra1' | 'sin1' | 'syd1' | 'hnd1' | 'icn1'>[] optional Deployment regions
enablePreview boolean Enable preview deployments
previewComments boolean Post preview URLs in PR comments
productionProtection boolean Require approval for production deployments
deployHooks { name: string; url: string; branch?: string }[] optional Deploy hooks

DlqConfig

Properties

Property Type Required Description
enabled boolean Enable DLQ
queueName string Dead letter queue/topic name
maxRetries number Max retries before DLQ
retryDelayMs number Retry delay in ms

DomainConfig

Properties

Property Type Required Description
domain string Domain name (e.g., app.example.com)
httpsRedirect boolean Redirect HTTP to HTTPS
customCertificate { cert: string; key: string; ca?: string } optional Custom SSL certificate
gitBranch string optional Git branch to deploy to this domain

EdgeFunctionConfig

Properties

Property Type Required Description
name string Edge function name
path string Function path (e.g., /api/*)
regions string[] optional Specific regions for this function
memoryLimit integer Memory limit in MB
timeout integer Timeout in seconds

EnvironmentVariables

Properties

Property Type Required Description
key string Environment variable name
value string Environment variable value
target Enum<'production' | 'preview' | 'development'>[] Target environments
isSecret boolean Encrypt this variable
gitBranch string optional Specific git branch

FileAccessPattern

File access pattern

Allowed Values

  • public_read
  • private
  • authenticated_read
  • bucket_owner_read
  • bucket_owner_full

FileFilterConfig

Properties

Property Type Required Description
includePatterns string[] optional File patterns to include (glob)
excludePatterns string[] optional File patterns to exclude (glob)
minFileSize number optional Minimum file size in bytes
maxFileSize number optional Maximum file size in bytes
allowedExtensions string[] optional Allowed file extensions
blockedExtensions string[] optional Blocked file extensions

FileMetadataConfig

Properties

Property Type Required Description
extractMetadata boolean Extract file metadata
metadataFields Enum<'content_type' | 'file_size' | 'last_modified' | 'etag' | 'checksum' | 'creator' | 'created_at' | 'custom'>[] optional Metadata fields to extract
customMetadata Record<string, string> optional Custom metadata key-value pairs

FileStorageConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'file_storage'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'s3' | 'azure_blob' | 'gcs' | 'dropbox' | 'box' | 'onedrive' | 'google_drive' | 'sharepoint' | 'ftp' | 'local' | 'custom'> File storage provider type
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
storageConfig { endpoint?: string; region?: string; pathStyle?: boolean } optional Storage configuration
buckets { name: string; label: string; bucketName: string; region?: string; … }[] Buckets/containers to sync
metadataConfig { extractMetadata?: boolean; metadataFields?: Enum<'content_type' | 'file_size' | 'last_modified' | 'etag' | 'checksum' | 'creator' | 'created_at' | 'custom'>[]; customMetadata?: Record<string, string> } optional Metadata extraction configuration
multipartConfig { enabled?: boolean; partSize?: number; maxConcurrentParts?: number; threshold?: number } optional Multipart upload configuration
versioningConfig { enabled?: boolean; maxVersions?: number; retentionDays?: number } optional File versioning configuration
encryption { enabled?: boolean; algorithm?: Enum<'AES256' | 'aws:kms' | 'custom'>; kmsKeyId?: string } optional Encryption configuration
lifecyclePolicy { enabled?: boolean; deleteAfterDays?: number; archiveAfterDays?: number } optional Lifecycle policy
contentProcessing { extractText?: boolean; generateThumbnails?: boolean; thumbnailSizes?: { width: number; height: number }[]; virusScan?: boolean } optional Content processing configuration
bufferSize number optional Buffer size in bytes
transferAcceleration boolean optional Enable transfer acceleration

FileStorageProvider

File storage provider type

Allowed Values

  • s3
  • azure_blob
  • gcs
  • dropbox
  • box
  • onedrive
  • google_drive
  • sharepoint
  • ftp
  • local
  • custom

FileVersioningConfig

Properties

Property Type Required Description
enabled boolean Enable file versioning
maxVersions number optional Maximum versions to retain
retentionDays number optional Version retention period in days

GitHubActionsWorkflow

Properties

Property Type Required Description
name string Workflow name
path string Workflow file path (e.g., .github/workflows/ci.yml)
enabled boolean Enable workflow
triggers Enum<'push' | 'pull_request' | 'release' | 'schedule' | 'workflow_dispatch' | 'repository_dispatch'>[] optional Workflow triggers
env Record<string, string> optional Environment variables
secrets string[] optional Required secrets

GitHubCommitConfig

Properties

Property Type Required Description
authorName string optional Commit author name
authorEmail string optional Commit author email
signCommits boolean Sign commits with GPG
messageTemplate string optional Commit message template
useConventionalCommits boolean Use conventional commits format

GitHubConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'saas'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'github' | 'github_enterprise'> GitHub provider
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
baseUrl string optional GitHub API base URL
repositories { owner: string; name: string; defaultBranch?: string; autoMerge?: boolean; … }[] Repositories to manage
commitConfig { authorName?: string; authorEmail?: string; signCommits?: boolean; messageTemplate?: string; … } optional Commit configuration
pullRequestConfig { titleTemplate?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; bodyTemplate?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; defaultReviewers?: string[]; defaultAssignees?: string[]; … } optional Pull request configuration
workflows { name: string; path: string; enabled?: boolean; triggers?: Enum<'push' | 'pull_request' | 'release' | 'schedule' | 'workflow_dispatch' | 'repository_dispatch'>[]; … }[] optional GitHub Actions workflows
releaseConfig { tagPattern?: string; semanticVersioning?: boolean; autoReleaseNotes?: boolean; releaseNameTemplate?: string; … } optional Release configuration
issueTracking { enabled?: boolean; defaultLabels?: string[]; templatePaths?: string[]; autoAssign?: boolean; … } optional Issue tracking configuration
enableWebhooks boolean optional Enable GitHub webhooks
webhookEvents Enum<'push' | 'pull_request' | 'issues' | 'issue_comment' | 'release' | 'workflow_run' | 'deployment' | 'deployment_status' | 'check_run' | 'check_suite' | 'status'>[] optional Webhook events to subscribe to

GitHubIssueTracking

Properties

Property Type Required Description
enabled boolean Enable issue tracking
defaultLabels string[] optional Default issue labels
templatePaths string[] optional Issue template paths
autoAssign boolean Auto-assign issues
autoCloseStale { enabled: boolean; daysBeforeStale: integer; daysBeforeClose: integer; staleLabel: string } optional Auto-close stale issues configuration

GitHubProvider

GitHub provider type

Allowed Values

  • github
  • github_enterprise

GitHubPullRequestConfig

Properties

Property Type Required Description
titleTemplate string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } optional PR title template — supports {{var}} interpolation
bodyTemplate string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } optional PR body template — supports {{var}} interpolation
defaultReviewers string[] optional Default reviewers (usernames)
defaultAssignees string[] optional Default assignees (usernames)
defaultLabels string[] optional Default labels
draftByDefault boolean optional Create draft PRs by default
deleteHeadBranch boolean optional Delete head branch after merge

GitHubReleaseConfig

Properties

Property Type Required Description
tagPattern string Tag name pattern (e.g., v*, release/*)
semanticVersioning boolean Use semantic versioning
autoReleaseNotes boolean Generate release notes automatically
releaseNameTemplate string optional Release name template
preReleasePattern string optional Pre-release pattern (e.g., *-alpha, *-beta)
draftByDefault boolean Create draft releases by default

GitHubRepository

Properties

Property Type Required Description
owner string Repository owner (organization or username)
name string Repository name
defaultBranch string Default branch name
autoMerge boolean Enable auto-merge for pull requests
branchProtection { requiredReviewers: integer; requireStatusChecks: boolean; enforceAdmins: boolean; allowForcePushes: boolean; … } optional Branch protection configuration
topics string[] optional Repository topics

GitRepositoryConfig

Properties

Property Type Required Description
type Enum<'github' | 'gitlab' | 'bitbucket'> Git provider
repo string Repository identifier (e.g., owner/repo)
productionBranch string Production branch name
autoDeployProduction boolean Auto-deploy production branch
autoDeployPreview boolean Auto-deploy preview branches

MessageFormat

Message format/serialization

Allowed Values

  • json
  • xml
  • protobuf
  • avro
  • text
  • binary

MessageQueueConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'message_queue'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'rabbitmq' | 'kafka' | 'redis_pubsub' | 'redis_streams' | 'aws_sqs' | 'aws_sns' | 'google_pubsub' | 'azure_service_bus' | 'azure_event_hubs' | 'nats' | 'pulsar' | 'activemq' | 'custom'> Message queue provider type
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
brokerConfig { brokers: string[]; clientId?: string; connectionTimeoutMs?: number; requestTimeoutMs?: number } Broker connection configuration
topics { name: string; label: string; topicName: string; enabled?: boolean; … }[] Topics/queues to sync
deliveryGuarantee Enum<'at_most_once' | 'at_least_once' | 'exactly_once'> optional Message delivery guarantee
sslConfig { enabled?: boolean; rejectUnauthorized?: boolean; ca?: string; cert?: string; … } optional SSL/TLS configuration
saslConfig { mechanism: Enum<'plain' | 'scram-sha-256' | 'scram-sha-512' | 'aws'>; username?: string; password?: string } optional SASL authentication configuration
schemaRegistry { url: string; auth?: object } optional Schema registry configuration
preserveOrder boolean optional Preserve message ordering
enableMetrics boolean optional Enable message queue metrics
enableTracing boolean optional Enable distributed tracing

ProducerConfig

Properties

Property Type Required Description
enabled boolean Enable producer
acks Enum<'0' | '1' | 'all'> Acknowledgment level
compressionType Enum<'none' | 'gzip' | 'snappy' | 'lz4' | 'zstd'> Compression type
batchSize number Batch size in bytes
lingerMs number Linger time in ms
maxInFlightRequests number Max in-flight requests
idempotence boolean Enable idempotent producer
transactional boolean Enable transactional producer
transactionTimeoutMs number optional Transaction timeout in ms

SaasConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'saas'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'salesforce' | 'hubspot' | 'stripe' | 'shopify' | 'zendesk' | 'intercom' | 'mailchimp' | 'slack' | 'microsoft_dynamics' | 'servicenow' | 'netsuite' | 'custom'> SaaS provider type
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
baseUrl string API base URL
apiVersion { version: string; isDefault?: boolean; deprecationDate?: string; sunsetDate?: string } optional API version configuration
objectTypes { name: string; label: string; apiName: string; enabled?: boolean; … }[] Syncable object types
oauthSettings { scopes: string[]; refreshTokenUrl?: string; revokeTokenUrl?: string; autoRefresh?: boolean } optional OAuth-specific configuration
paginationConfig { type?: Enum<'cursor' | 'offset' | 'page'>; defaultPageSize?: number; maxPageSize?: number } optional Pagination configuration
sandboxConfig { enabled?: boolean; baseUrl?: string } optional Sandbox environment configuration
customHeaders Record<string, string> optional Custom HTTP headers for all requests

SaasObjectType

Properties

Property Type Required Description
name string Object type name (snake_case)
label string Display label
apiName string API name in external system
enabled boolean optional Enable sync for this object
supportsCreate boolean optional Supports record creation
supportsUpdate boolean optional Supports record updates
supportsDelete boolean optional Supports record deletion
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Object-specific field mappings

SaasProvider

SaaS provider type

Allowed Values

  • salesforce
  • hubspot
  • stripe
  • shopify
  • zendesk
  • intercom
  • mailchimp
  • slack
  • microsoft_dynamics
  • servicenow
  • netsuite
  • custom

SslConfig

Properties

Property Type Required Description
enabled boolean Enable SSL/TLS
rejectUnauthorized boolean Reject unauthorized certificates
ca string optional Certificate Authority certificate
cert string optional Client certificate
key string optional Client private key

StorageBucket

Properties

Property Type Required Description
name string Bucket identifier in ObjectStack (snake_case)
label string Display label
bucketName string Actual bucket/container name in storage system
region string optional Storage region
enabled boolean Enable sync for this bucket
prefix string optional Prefix/path within bucket
accessPattern Enum<'public_read' | 'private' | 'authenticated_read' | 'bucket_owner_read' | 'bucket_owner_full'> optional Access pattern
fileFilters { includePatterns?: string[]; excludePatterns?: string[]; minFileSize?: number; maxFileSize?: number; … } optional File filter configuration

TopicQueue

Properties

Property Type Required Description
name string Topic/queue identifier in ObjectStack (snake_case)
label string Display label
topicName string Actual topic/queue name in message queue system
enabled boolean Enable sync for this topic/queue
mode Enum<'consumer' | 'producer' | 'both'> Consumer, producer, or both
messageFormat Enum<'json' | 'xml' | 'protobuf' | 'avro' | 'text' | 'binary'> Message format/serialization
partitions number optional Number of partitions (for Kafka)
replicationFactor number optional Replication factor (for Kafka)
consumerConfig { enabled: boolean; consumerGroup?: string; concurrency: number; prefetchCount: number; … } optional Consumer-specific configuration
producerConfig { enabled: boolean; acks: Enum<'0' | '1' | 'all'>; compressionType: Enum<'none' | 'gzip' | 'snappy' | 'lz4' | 'zstd'>; batchSize: number; … } optional Producer-specific configuration
dlqConfig { enabled: boolean; queueName: string; maxRetries: number; retryDelayMs: number } optional Dead letter queue configuration
routingKey string optional Routing key pattern
messageFilter { headers?: Record<string, string>; attributes?: Record<string, any> } optional Message filter criteria

VercelConnector

Properties

Property Type Required Description
name string Unique connector identifier
label string Display label
type 'saas'
description string optional Connector description
icon string optional Icon identifier
authentication { type: 'oauth2'; authorizationUrl: string; tokenUrl: string; clientId: string; … } | { type: 'api-key'; key: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; password: string } | { type: 'bearer'; token: string } | { type: 'none' } optional Authentication configuration (runtime shape with inline secrets). Provider-bound declarative instances use auth.credentialRef instead.
provider Enum<'vercel'> Vercel provider
providerConfig Record<string, any> optional Provider-specific config validated by the provider factory at boot (e.g. { spec, baseUrl } for openapi, where spec is an inline document, a package-relative file path like './billing-openapi.json', or an http(s) URL). Requires provider.
auth { type: 'none' } | { type: 'bearer'; credentialRef: string } | { type: 'api-key'; credentialRef: string; headerName?: string; paramName?: string } | { type: 'basic'; username: string; credentialRef: string } optional Declarative instance auth — references credentials via credentialRef (resolved at boot), never inline secrets. Requires provider (ADR-0097).
actions { key: string; label: string; description?: string; inputSchema?: Record<string, any>; … }[] optional
triggers { key: string; label: string; description?: string; type: Enum<'polling' | 'webhook'>; … }[] optional Trigger definitions (not yet enforced — never read at registration; see #3197)
syncConfig { strategy?: Enum<'full' | 'incremental' | 'upsert' | 'append_only'>; direction?: Enum<'import' | 'export' | 'bidirectional'>; schedule?: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object }; realtimeSync?: boolean; … } optional Data sync configuration
fieldMappings { source: string; target: string; transform?: { type: 'constant'; value: any } | { type: 'cast'; targetType: Enum<'string' | 'number' | 'boolean' | 'date'> } | { type: 'lookup'; table: string; keyField: string; valueField: string } | { type: 'javascript'; expression: string | { dialect: Enum<'cel' | 'cron' | 'template'>; source?: string; ast?: any; meta?: object } } | { type: 'map'; mappings: Record<string, any> }; defaultValue?: any; … }[] optional Field mapping rules
webhooks { name: string; label?: string; object?: string; triggers?: Enum<'create' | 'update' | 'delete'>[]; … }[] optional Webhook configurations (not yet enforced — never read at registration; see #3197)
rateLimitConfig { strategy?: Enum<'fixed_window' | 'sliding_window' | 'token_bucket' | 'leaky_bucket'>; maxRequests: number; windowSeconds: number; burstCapacity?: number; … } optional Rate limiting configuration
retryConfig { strategy?: Enum<'exponential_backoff' | 'linear_backoff' | 'fixed_delay' | 'no_retry'>; maxAttempts?: number; initialDelayMs?: number; maxDelayMs?: number; … } optional Retry configuration
connectionTimeoutMs number optional Connection timeout in ms
requestTimeoutMs number optional Request timeout in ms
status Enum<'active' | 'inactive' | 'error' | 'configuring'> optional Connector status
enabled boolean optional Enable connector. On declarative stack entries, false marks a deliberate catalog-only descriptor (#2612).
errorMapping { rules: { sourceCode: string | number; sourceMessage?: string; targetCode: string; targetCategory: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; … }[]; defaultCategory?: Enum<'validation' | 'authorization' | 'not_found' | 'conflict' | 'rate_limit' | 'timeout' | 'server_error' | 'integration_error'>; unmappedBehavior: Enum<'passthrough' | 'generic_error' | 'throw'>; logUnmapped?: boolean } optional Error mapping configuration
health { healthCheck?: object; circuitBreaker?: object } optional Health and resilience configuration
metadata Record<string, any> optional Custom connector metadata
baseUrl string optional Vercel API base URL
team { teamId?: string; teamName?: string } optional Vercel team configuration
projects { name: string; framework?: Enum<'nextjs' | 'react' | 'vue' | 'nuxtjs' | 'gatsby' | 'remix' | 'astro' | 'sveltekit' | 'solid' | 'angular' | 'static' | 'other'>; gitRepository?: object; buildConfig?: object; … }[] Vercel projects
monitoring { enableWebAnalytics?: boolean; enableSpeedInsights?: boolean; logDrains?: { name: string; url: string; headers?: Record<string, string>; sources?: Enum<'static' | 'lambda' | 'edge'>[] }[] } optional Monitoring configuration
enableWebhooks boolean optional Enable Vercel webhooks
webhookEvents Enum<'deployment.created' | 'deployment.succeeded' | 'deployment.failed' | 'deployment.ready' | 'deployment.error' | 'deployment.canceled' | 'deployment-checks-completed' | 'deployment-prepared' | 'project.created' | 'project.removed'>[] optional Webhook events to subscribe to

VercelFramework

Frontend framework

Allowed Values

  • nextjs
  • react
  • vue
  • nuxtjs
  • gatsby
  • remix
  • astro
  • sveltekit
  • solid
  • angular
  • static
  • other

VercelMonitoring

Properties

Property Type Required Description
enableWebAnalytics boolean Enable Vercel Web Analytics
enableSpeedInsights boolean Enable Vercel Speed Insights
logDrains { name: string; url: string; headers?: Record<string, string>; sources?: Enum<'static' | 'lambda' | 'edge'>[] }[] optional Log drains configuration

VercelProject

Properties

Property Type Required Description
name string Vercel project name
framework Enum<'nextjs' | 'react' | 'vue' | 'nuxtjs' | 'gatsby' | 'remix' | 'astro' | 'sveltekit' | 'solid' | 'angular' | 'static' | 'other'> optional Frontend framework
gitRepository { type: Enum<'github' | 'gitlab' | 'bitbucket'>; repo: string; productionBranch: string; autoDeployProduction: boolean; … } optional Git repository configuration
buildConfig { buildCommand?: string; outputDirectory?: string; installCommand?: string; devCommand?: string; … } optional Build configuration
deploymentConfig { autoDeployment: boolean; regions?: Enum<'iad1' | 'sfo1' | 'gru1' | 'lhr1' | 'fra1' | 'sin1' | 'syd1' | 'hnd1' | 'icn1'>[]; enablePreview: boolean; previewComments: boolean; … } optional Deployment configuration
domains { domain: string; httpsRedirect: boolean; customCertificate?: object; gitBranch?: string }[] optional Custom domains
environmentVariables { key: string; value: string; target: Enum<'production' | 'preview' | 'development'>[]; isSecret: boolean; … }[] optional Environment variables
edgeFunctions { name: string; path: string; regions?: string[]; memoryLimit: integer; … }[] optional Edge functions
rootDirectory string optional Root directory (for monorepos)

VercelProvider

Vercel provider type

Allowed Values

  • vercel

VercelTeam

Properties

Property Type Required Description
teamId string optional Team ID or slug
teamName string optional Team name