Mapping
Mapping protocol schemas
Source: packages/spec/src/data/mapping.zod.ts
TypeScript Usage
import { ImportFieldMappingSchema, MappingSchema, TransformType } from '@objectstack/spec/data';
import type { ImportFieldMapping, Mapping, TransformType } from '@objectstack/spec/data';
// Validate data
const result = ImportFieldMappingSchema.parse(data);ImportFieldMapping
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| source | string | string[] | ✅ | Source column header(s) |
| target | string | string[] | ✅ | Target object field(s) |
| transform | Enum<'none' | 'constant' | 'lookup' | 'split' | 'join' | 'javascript' | 'map'> | ✅ | |
| params | { value?: any; object?: string; fromField?: string; toField?: string; … } | optional |
Mapping
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | ✅ | Mapping unique name (lowercase snake_case) |
| label | string | optional | |
| sourceFormat | Enum<'csv' | 'json' | 'xml' | 'sql'> | ✅ | |
| targetObject | string | ✅ | Target Object Name |
| fieldMapping | { source: string | string[]; target: string | string[]; transform: Enum<'none' | 'constant' | 'lookup' | 'split' | 'join' | 'javascript' | 'map'>; params?: object }[] | ✅ | |
| mode | Enum<'insert' | 'update' | 'upsert'> | ✅ | |
| upsertKey | string[] | optional | Fields to match for upsert (e.g. email) |
| _lock | Enum<'none' | 'no-overlay' | 'no-delete' | 'full'> | optional | Item-level lock — controls overlay & delete (ADR-0010). |
| _lockReason | string | optional | Human-readable reason shown when a write is refused by _lock. |
| _lockSource | Enum<'artifact' | 'package' | 'env-forced'> | optional | Layer that set _lock (artifact | package | env-forced). |
| _provenance | Enum<'package' | 'org' | 'env-forced'> | optional | Origin of the item (package | org | env-forced). |
| _packageId | string | optional | Owning package machine id. |
| _packageVersion | string | optional | Owning package version. |
| _lockDocsUrl | string | optional | Optional documentation link surfaced next to _lockReason. |
TransformType
Allowed Values
noneconstantlookupsplitjoinjavascriptmap