---
title: Misc
description: Misc protocol schemas
---

{/* ⚠️  AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs go in content/docs/guides/. */}

<Callout type="info">
**Source:** `packages/spec/src/integration/misc.zod.ts`
</Callout>

## TypeScript Usage

```typescript
import { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabasePoolConfig, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubIssueTracking, GitHubProvider, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, ProducerConfig, SaasProvider, SslConfig, StorageBucket, TopicQueue, VercelFramework, VercelMonitoring, VercelProject, VercelProvider, VercelTeam } from '@objectstack/spec/integration';
import type { AckMode, ApiVersionConfig, BuildConfig, CdcConfig, DatabasePoolConfig, DeliveryGuarantee, DeploymentConfig, DlqConfig, DomainConfig, EdgeFunctionConfig, EnvironmentVariables, FileAccessPattern, FileFilterConfig, FileMetadataConfig, FileStorageProvider, FileVersioningConfig, GitHubActionsWorkflow, GitHubCommitConfig, GitHubIssueTracking, GitHubProvider, GitHubReleaseConfig, GitHubRepository, GitRepositoryConfig, ProducerConfig, SaasProvider, SslConfig, StorageBucket, TopicQueue, 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 |


---

## 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 |


---

## 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** | `Object[]` | 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** | `Object` | 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 |


---

## 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 |


---

## 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** | `Object` | optional | Auto-close stale issues configuration |


---

## GitHubProvider

GitHub provider type

### Allowed Values

* `github`
* `github_enterprise`


---

## 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** | `Object` | 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 |


---

## 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 |


---

## 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** | `Object` | 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** | `Object` | optional | Consumer-specific configuration |
| **producerConfig** | `Object` | optional | Producer-specific configuration |
| **dlqConfig** | `Object` | optional | Dead letter queue configuration |
| **routingKey** | `string` | optional | Routing key pattern |
| **messageFilter** | `Object` | optional | Message filter criteria |


---

## 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** | `Object[]` | 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** | `Object` | optional | Git repository configuration |
| **buildConfig** | `Object` | optional | Build configuration |
| **deploymentConfig** | `Object` | optional | Deployment configuration |
| **domains** | `Object[]` | optional | Custom domains |
| **environmentVariables** | `Object[]` | optional | Environment variables |
| **edgeFunctions** | `Object[]` | 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 |


---

