References
CommandGoverningDefinition
Re-exports CommandGoverningDefinitionDatasetLayout
Re-exports DatasetLayoutType Aliases
SourceBinding
Ƭ SourceBinding:Object
Type declaration
CommandRefs
Ƭ CommandRefs<A, Contracts>: { readonly [K in keyof A]: CommandHandle<ObjectType<A[K]>, K extends keyof Contracts ? Contracts[K] extends Object | Object ? “collection” : “record” : “record”> }
Not exported: an exported type refers to it.
Type parameters
TransportCollections
Ƭ TransportCollections<S, R, L>: S & L extends LatestProjection<R> ? { latest: R } : {}
Not exported: an exported type refers to it.
Type parameters
HttpParameters
Ƭ HttpParameters<C>: C extends { parameters: infer P } ? P extends Fields ? ObjectType<P> : never : never
Not exported: an exported type refers to it.
Type parameters
IntegrationContext
Ƭ IntegrationContext<H, Setup>: Object
Type parameters
Type declaration
Retention
Ƭ Retention: {kind: "unknown" } | { kind: "stated" ; unit: "minutes" | "hours" | "days" ; value: number }
How long a provider keeps a retained position resumable.
It is not a number of days. DynamoDB’s shard iterator expires in fifteen
MINUTES, and rounding that up to a day holds a recovered position two orders
of magnitude past the point the provider still honours it. Kubernetes has two
expiry boundaries and neither is a duration at all — etcd’s compaction
revision and the apiserver’s in-memory event window — so the honest
statement is unknown. Naming a number of days there would be worse than
naming nothing, because it would make the engine believe it had checked
something.
The unit is the provider’s own word. unknown is the absence of a promise
and never a promise that has run out: a channel whose retention is unknown
never treats a retained position as fresh, so every resume needs the prefix
check and a resume the check cannot decide stays unproved.
ResumePrefix
Ƭ ResumePrefix: {kind: "none" } | { kind: "served_floor" ; floor: Selector } | { kind: "restart" ; field: readonly string[] ; value: string ; restart_status?: number } | { kind: "ancestry" ; descends: Selector }
Not exported: an exported type refers to it.
SourceProtocol
Ƭ SourceProtocol: {kind: "stream_latest" ; policy: { key: string[] ; order_by: string[] ; publish_every: SyncEvery } } | { kind: "snapshot_and_log" } | { kind: "change_feed" ; version?: { kind: "opaque" } ; position: { domain: string ; encoding: "uint64_decimal" | "int64_decimal" } ; checkpoint: { initial: string ; continuity: "complete_prefix" ; retention: Retention } ; records: "full_or_delete" ; atomic_group: "one_change" } | { kind: "record_observation" ; version: { kind: "opaque" } | { kind: "none" } ; coverage: { kind: "enumeration" } | { kind: "query_result" ; max_rows: number } | { kind: "incremental_snapshot" ; max_rows: number } | { kind: "filtered" ; completeness: "stated" | "none" } | { kind: "none" } ; resume: { kind: "opaque_cursor" } | { kind: "none" } }
What an acquisition actually proves. Records with a done flag and a
a resume cursor are not a change feed; declaring one would claim ordering and
completeness the provider never established.
CoupledResult
Ƭ CoupledResult<S>: wire.CoupledResult<{ [K in keyof S]: RecordObservation<ObjectType<S[K]>>[] }, keyof S & string>
What one coupled acquisition attempt claims, as a candidate only.
The envelope is generated; this states the two narrowings that are facts
about the declaration rather than about the wire, exactly as
ProtocolInput and ProtocolResult do below: records is a mapped type
over the author’s own collection schemas, and every collection named by an
unresolved key or a file request is one of the author’s own collections.
Type parameters
TimestampWindowDiscovery
Ƭ TimestampWindowDiscovery:Object
Frozen host-time windows for ServiceNow discovery. Completion advances only
after the final accepted page. Full rediscovery and point verification still
run independently; timestamps establish neither history nor coverage.
Type declaration
CouplingDefinition
Ƭ CouplingDefinition<S, H, Setup>: Object
One acquisition over a whole group of collections: the collections it owns,
the one interval the group is scheduled on, and the one reader.
Type parameters
Type declaration
ProtocolInput
Ƭ ProtocolInput<P>: [P] extends [{ kind: "record_observation" }] ? EnumerationInput | IncrementalInput | SweepInput : [P] extends [{ kind: "change_feed" }] ? FeedInput : SyncInput
Not exported: an exported type refers to it.
Type parameters
ProtocolResult
Ƭ ProtocolResult<P, T>: [P] extends [{ kind: "record_observation" }] ? RecordResult<T> : [P] extends [{ kind: "change_feed" }] ? ChangeFeedResult<T> : ChangeFeedResult<T> | RecordResult<T>
Not exported: an exported type refers to it.
Type parameters
DeliveryField
Ƭ DeliveryField: {kind: "header" ; name: string } | { kind: "body" ; path: WirePath }
Not exported: an exported type refers to it.
IngressAuthentication
Ƭ IngressAuthentication: {kind: "shared_token" ; field: DeliveryField } | { kind: "configured_token" ; field: DeliveryField } | { kind: "timestamped_hmac_sha256" ; header: string ; timestamp: { kind: "element" ; name: string } | { kind: "header" ; name: string } ; signature_element?: string ; elements?: { separator: string ; delimiter: string } ; payload_prefix?: { kind: "literal" ; value: string } | { kind: "header" ; name: string ; separator: string } ; separator: string ; digest: "hex" | "base64" ; tolerance_seconds: number ; timestamp_unit?: "seconds" | "milliseconds" ; timestamp_format?: "unix" | "rfc3339" } | { kind: "timestamped_ed25519" ; header: string ; timestamp_header: string ; tolerance_seconds: number } | { kind: "hmac_sha256" ; header: string ; signature_element?: string ; digest: "hex" | "base64" ; rotation_headers?: readonly string[] } | { kind: "hmac_sha1" ; header: string ; digest: "hex" | "base64" } | { kind: "es256_jwt" ; header: string ; jwks_path: string ; body_digest_claim: string ; digest: "hex" | "base64" ; tolerance_seconds: number ; key_request?: { key_id_field: string ; key_path: WirePath ; expired_path?: WirePath } }
Not exported: an exported type refers to it.
ListenerIngress
Ƭ ListenerIngress:Object
Not exported: an exported type refers to it.
Type declaration
OccurrenceHandler
Ƭ OccurrenceHandler:Object
How change hints reach the engine for one collection, and the whole of what
a listener declares.
The variant is the transport class and it carries what that transport needs.
push has an ingress endpoint because the provider delivers to one; pull
has none, because nothing is delivered to it. Neither is an optional field a
declaration could leave empty.
A hint requests acquisition. A business occurrence retains its exact body
and stable identity for the declared operation.
Type declaration
ListenerProtocol
Ƭ ListenerProtocol: {kind: "queue" ; provider: "sqs" ; visibility_seconds: number ; wait_seconds: number ; poll_interval_ms: number ; proves: "refresh_hint" | "occurrence" ; handler?: OccurrenceHandler } | { kind: "socket" ; open: string ; address: Selector ; envelope: readonly string[] ; frame_kind: readonly string[] ; disconnect: string ; acknowledge: string ; max_frame_bytes: number ; proves: "refresh_hint" } | { kind: "push" ; handler?: OccurrenceHandler ; telemetry?: EventAcquisitionTransport ; ingress: ListenerIngress ; archive?: true ; subscription?: { channel: { resource: readonly string[] ; proof: { channel_id: Selector ; resource_id: Selector ; resource_uri: Selector ; expiration: Selector } ; matching: { tolerated_query?: readonly string[] ; lifetime_ms: number ; renewal_margin_ms: number } } ; watch: string ; stop: string } } | { kind: "pull" ; poll: string ; interval_ms: number ; min_interval_ms: number ; max_interval_ms: number ; continuation: { kind: "validator" ; request_header: string ; response_header: string ; interval_header?: string ; quiet_status: number } | { kind: "cursor" ; parameter: string ; resume: ResumePrefix ; retention: Retention ; link?: { header: string ; relation: string } } ; position: { items?: readonly string[] ; id: readonly string[] ; order: "decimal" | "opaque" | "opaque_ascending" } ; keys?: { list: string ; items?: readonly string[] ; id?: readonly string[] ; parameter: string ; partition: readonly string[] } }
CollectionShape
Ƭ CollectionShape<S, P>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
CollectionDefinition
Ƭ CollectionDefinition<S, H, P, Setup>: CollectionShape<S, P> & { deliveryOnly: true ; sync?: never ; freshness?: never ; listener?: never ; reconcile?: never ; release?: never ; orderingAlias?: never } | { deliveryOnly?: never ; sync: { every: SyncEvery ; discovery?: TimestampWindowDiscovery ; read: (ctx: IntegrationContext<H, Setup>, input: ProtocolInput<P>) => Promise<ProtocolResult<P, ObjectType<S>>> } }
A collection acquired on its own: it declares its own interval and its own
reader.
Type parameters
CoupledCollectionDefinition
Ƭ CoupledCollectionDefinition<S, P>: CollectionShape<S, P> & { sync?: never }
A collection of a coupled group. One acquisition walks the whole group, so
the group’s coupling owns the interval and the read and the collection
declares neither: a per-collection sync here would name a schedule nothing
runs and a reader nothing calls.
Type parameters
CommandInput
Ƭ CommandInput<A>: Object
What a RECORD-TARGETED command’s handlers receive.
Type parameters
Type declaration
CreateCommandInput
Ƭ CreateCommandInput<A>: Object
What a CREATE’s handlers receive.
There is no target at all, and that absence is the declaration: the send
addresses the collection, so there is no record to name and operation_id
is what the request carries in its place. created is the provider’s own
key for the record this operation made, present on the reconcile once the
destination has named it.
Type parameters
Type declaration
CommandResult
Ƭ CommandResult<S>: { evidence: ResponseEvidence } & { outcome: "confirmed" ; observations?: { [K in keyof S]?: Observation<ObjectType<S[K]>>[] } ; readback?: { key: string ; version: string ; value: ObjectType<S[keyof S]> } } | { outcome: "rejected" ; reason: string } | { outcome: "refused" } | { outcome: "pending" | "unknown" } | { outcome: "counted" } | { outcome: "withdrawn" }
Candidate interpretation only. Native retained-response evidence must admit
completion, identity, membership and source progress independently.
Type parameters
CommandCondition
Ƭ CommandCondition: {kind: "target_version" ; from: { kind: "record_observation_position" } | { kind: "record_version" } } | { kind: "unconditional" } | { kind: "field_ownership" } | { kind: "target_state" }
Exact native provenance for the provider’s conditional version. An ordered
feed position and an opaque record token are not interchangeable.
unconditional states that the destination enforces no compare-and-set on
this endpoint, so the request carries no provider conditional token at all.
It is the ABSENCE of a precondition, never an empty or fabricated one, and it
promises nothing about writers acting directly in the provider.
CommandStates
Ƭ CommandStates<A>: Object
The change a record-targeted command’s send REQUESTS of its target record,
field by field: each key is a field of the target collection’s schema, and
each value is the path into this command’s arguments whose value the request
asks that field to take. Every path names REQUIRED arguments, and the
argument’s type must be one the field admits.
On a branch, where nothing is delivered, a held call is shown as this change
with assumed provenance. Standing maintenance uses the same declaration to
define desired values on live. Neither use supplies evidence that the
destination applied anything, and fields the provider
computes — assigned identifiers, totals — are not stated and stay as last
observed. A create cannot state a change: its record’s key is the
provider’s to assign.
Type parameters
Index signature
▪ [field:string]: readonly [keyof A & string, …string[]]
CommandDefinition
Ƭ CommandDefinition<A, S, H, Setup>: CommandShape<A, S> & { scope: "collection" ; condition: { kind: "unconditional" } ; creates?: never ; states?: never ; writes?: never ; group?: never ; send: (ctx: IntegrationContext<H, Setup>, input: CreateCommandInput<A>) => Promise<CommandResult<S>> } & { delivery: { kind: "at_least_once" ; max_delivery_hours: number } ; reconcile?: never } | { delivery: Extract<CommandShape<A, S>["delivery"], { kind: "single_attempt" }> ; reconcile: (ctx: IntegrationContext<H, Setup>, input: Omit<CreateCommandInput<A>, "expires_at">) => Promise<CommandResult<S>> } | CommandShape<A, S> & { scope?: never ; creates?: undefined ; states?: CommandStates<A> ; writes?: readonly string[] ; send: (ctx: IntegrationContext<H, Setup>, input: CommandInput<A>) => Promise<CommandResult<S>> ; reconcile?: (ctx: IntegrationContext<H, Setup>, input: Omit<CommandInput<A>, "expires_at">) => Promise<CommandResult<S>> } | CommandShape<A, S> & { scope?: never ; creates: "deduplicated" | "stored" | "unattributed" ; states?: undefined ; writes?: undefined ; send: (ctx: IntegrationContext<H, Setup>, input: CreateCommandInput<A>) => Promise<CommandResult<S>> ; reconcile: (ctx: IntegrationContext<H, Setup>, input: Omit<CreateCommandInput<A>, "expires_at">) => Promise<CommandResult<S>> } | CommandShape<A, S> & { scope?: never ; creates: "stored_from_record" ; states?: undefined ; writes?: undefined ; group?: undefined ; send: (ctx: IntegrationContext<H, Setup>, input: CommandInput<A> & CreateCommandInput<A>) => Promise<CommandResult<S>> ; reconcile: (ctx: IntegrationContext<H, Setup>, input: Omit<CommandInput<A> & CreateCommandInput<A>, "expires_at">) => Promise<CommandResult<S>> }
One command.
Record commands receive the existing target’s private key; collection
creates receive the operation identity without a target. A child creation
receives both its existing parent’s key and the operation identity. Any
proved child key is retained separately and available during reconciliation.
Type parameters
TransportCommandDefinition
Ƭ TransportCommandDefinition<A, S>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
SourceHandle
Ƭ SourceHandle<S, Scope>: Object
Type parameters
Type declaration
ConnectionBudget
Ƭ ConnectionBudget: {capacity: number ; restorePerSecond: number ; restorePerMinute?: undefined ; perMinute?: undefined } | { capacity: number ; restorePerMinute: number ; restorePerSecond?: undefined ; perMinute?: undefined } | { perMinute: number ; capacity?: undefined ; restorePerSecond?: undefined ; restorePerMinute?: undefined } & { requestCost?: number ; stated?: { available: Selector ; capacity?: Selector ; restorePerSecond?: Selector } }
What one connection may spend, and where the provider’s answers state it.
The budget belongs to the connection rather than to a collection: the
provider counts it against the credential, so every collection, listener and
command that speaks through one connection shares one bucket. Declare it in
whichever form the provider publishes — a cost bucket with a restore rate,
or a count per minute — and the engine keeps one quantity either way.
stated names where an answer carries the provider’s own figure. A stated
availability can only lower what the engine believes it has, because the
engine counts its own requests and the provider counts everybody’s; a stated
ceiling or rate replaces the declared one, because those are the provider’s
contract rather than a measurement.
BackoffRepresentation
Ƭ BackoffRepresentation:"secondsFromResponse" | "epochSeconds" | "epochMillis" | "httpDate" | "retryAfter"
How a stated backoff value is spelled.
secondsFromResponseis a duration from the answer, in seconds. It admits RFC 9110 delta-seconds (Retry-After: 120) and a fractional seconds-remaining (x-ratelimit-reset-after: 0.529) alike: those are one quantity written two ways, and a fraction is always rounded up so a wait never comes out shorter than the one asked for.epochSecondsandepochMillisare an absolute instant. The two cannot be told apart from the value, so the declaration names the unit.httpDateis an absolute instant as an RFC 9110 HTTP-date. The two obsolete date forms are not read.retryAfteris theRetry-Afterheader itself, which RFC 9110 lets a provider spell either way in the same header; the form is decided by the value rather than by the declaration.
ConnectionBackoff
Ƭ ConnectionBackoff:Object
When this provider will accept another request, and where its answers say
so.
It belongs to the connection rather than to a collection or a command,
because a provider throttles the credential. Declare the statuses this
provider states a wait on, where the statement is, and the longest wait this
integration will honour on its own; a provider asking for longer holds the
connection for an operator instead of sleeping for it.
Every declared signal is read and the LATEST instant any of them names is
the one honoured: two fields stating one quantity can disagree, and waiting
longer is the only safe direction.
IT NEVER AUTHORIZES REPEATING AN OPERATION. This says when the provider will
accept another request. Whether a particular external command may be sent
again is decided by that command’s own delivery contract from its retained
operation identity, and nothing declared here reaches that decision.
Type declaration
TransportIntegrationDefinition
Ƭ TransportIntegrationDefinition<S, H, A, R, L, T, C>: Object
Define source collections, sync routines and external command contracts.
Compiler addresses are references, never capabilities or trusted evidence.
Type parameters
Type declaration
Integration
Ƭ Integration<S, H, A, R, L, T, C>: { commands: CommandRefs<A, T> } & { readonly [K in keyof S]: SourceHandle<S[K]> } & L extends LatestProjection<R> ? { latest: SourceHandle<R> } : {} & keyof R extends never ? {} : { stream: StreamRef<R> }
An analyzed integration’s typed source and command handles.
Type parameters
CallbackIntegrationDefinition
Ƭ CallbackIntegrationDefinition<S, A, H, T, C>: { label?: string ; accountIdentity?: AccountIdentity ; terms?: Fields ; transport?: never ; record?: never ; archive?: never ; history?: never ; latest?: never ; series?: never ; requests?: H ; setup?: C ; setupFields?: SetupDeclaration ; budget?: ConnectionBudget ; backoff?: ConnectionBackoff ; discover?: (ctx: IntegrationContext<H, ObjectType<C>>, input: { resume: string | null ; next_page_reference: ResponseEvidence | null }) => Promise<{ resources: { id: string ; label: string | null }[] ; next_page: string | null ; evidence: ResponseEvidence }> ; identify: (ctx: IntegrationContext<H, ObjectType<C>>) => Promise<{ account_id?: string ; incarnation?: string ; evidence: ResponseEvidence }> ; commands: { [K in keyof A]: CommandDefinition<A[K], S, H, ObjectType<C>> } & T } & { coupling: CouplingDefinition<S, H, ObjectType<C>> ; collections: { [K in keyof S]: CoupledCollectionDefinition<S[K], SourceProtocol> } } | { coupling?: undefined ; collections: { [K in keyof S]: CollectionDefinition<S[K], H, SourceProtocol, ObjectType<C>> } }
Source collections and commands acquired through retained HTTP callbacks.
Type parameters
AccountIdentityDefinition
Ƭ AccountIdentityDefinition:Object
A connection that establishes a principal without importing resources.
Type declaration
HttpTelemetryDefinition
Ƭ HttpTelemetryDefinition<R, H, C>: Object
Authenticated HTTP telemetry retains the existing HTTP identity and listener owners.
Type parameters
Type declaration
RequestValue
Ƭ RequestValue<T>: T | HttpValue<T> | T extends infer U[] ? RequestValue<U>[] : T extends object ? { [K in keyof T]: RequestValue<T[K]> } : never
Not exported: an exported type refers to it.
Type parameters
Options
Ƭ Options:Object
Not exported: an exported type refers to it.
Type declaration
MessageFields
Ƭ MessageFields<T>: { [K in keyof T]-?: Validator<Exclude<T[K], undefined>, undefined extends T[K] ? “optional” : “required”, any> }
Not exported: an exported type refers to it.
Type parameters
GrpcMethod
Ƭ GrpcMethod<I, O>: Object
Type parameters
Type declaration
HttpValue
Ƭ HttpValue<T>: Object
A typed host-bound value. JavaScript coercion and computation are refused.
Type parameters
Type declaration
Creation
Ƭ Creation:"deduplicated" | "stored" | "unattributed" | "stored_from_record" | undefined
Not exported: an exported type refers to it.
InputFor
Ƭ InputFor<A, C>: C extends undefined ? CommandInput<A> : C extends "stored_from_record" ? CommandInput<A> & CreateCommandInput<A> : CreateCommandInput<A>
Not exported: an exported type refers to it.
Type parameters
RequestInputs
Ƭ RequestInputs<A, C>: { args: { readonly [K in keyof A]: HttpInput<A[K][“type”]> } ; operationId: HttpValue<string> } & C extends undefined | "stored_from_record" ? { target: { key: HttpValue<string> ; version: HttpValue<string> ; parts: ReadonlyArray<HttpValue<string>> } } : {}
Not exported: an exported type refers to it.
Type parameters
Node
Ƭ Node:string | number | boolean | bigint | ArrayBuffer | null | HttpValue<unknown> | readonly Node[] | { [key: string]: Node; }
Not exported: an exported type refers to it.
RequestShape
Ƭ RequestShape:Object
Not exported: an exported type refers to it.
Type declaration
RequestBuilder
Ƭ RequestBuilder:Object
Not exported: an exported type refers to it.
Type declaration
Exchange
Ƭ Exchange<A, C, Response, Result>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
CommandShape
Ƭ CommandShape<A, Target, C>: C extends undefined ? Extract<CommandDefinition<A, Record<Target, Fields>, any, any>, { creates?: undefined ; scope?: undefined }> : C extends "stored_from_record" ? Extract<CommandDefinition<A, Record<Target, Fields>, any, any>, { creates: "stored_from_record" }> : Extract<CommandDefinition<A, Record<Target, Fields>, any, any>, { creates: "deduplicated" | "stored" | "unattributed" }> & { creates: C } & { target: Target }
Not exported: an exported type refers to it.
Type parameters
WirePath
Ƭ WirePath: readonlystring[]
HttpArgumentReference
Ƭ HttpArgumentReference:Object
A retained command argument, addressed by its own field path.
Type declaration
HttpInputReference
Ƭ HttpInputReference: {input: "setup" ; path: readonly [string] } | { input: "checkpoint" | "resume" | "operation_id" | "expires_at" | "target_version" } | { input: "target_key" ; path?: WirePath } | { input: "created_key" } | { input: "provider_work_key" } | { input: "provider_task_key" } | HttpArgumentReference | { input: "parameter" ; path?: WirePath }
HttpInput
Ƭ HttpInput: {kind: "input" } & HttpInputReference
HttpTemplate
Ƭ HttpTemplate: {kind: "key_component" ; subject: HttpInputReference ; index: number } | { kind: "json_string" ; value: HttpTemplate } | { kind: "host" ; value: "workload_context" | "workload_context_ref" | "listener_channel_id" | "listener_callback_url" | "listener_expiration" | "listener_resource_id" | "listener_channel_token" } | { kind: "resume_path" ; prefix: string } | { kind: "resource_segment" ; subject: HttpInputReference ; prefix: readonly (HttpInput | { kind: "literal" ; value: string })[] ; suffix?: string } | { kind: "literal" ; value: JSONValue } | HttpInput | { kind: "object" ; fields: Record<string, HttpTemplate> } | { kind: "array" ; items: readonly HttpTemplate[] } | { kind: "concat" ; parts: readonly ({ kind: "literal" ; value: string } | HttpInput)[] }
Selector
Ƭ Selector: {kind: "header" ; name: string } | { kind: "body" ; path?: WirePath }
Where one piece of evidence is read in a retained response. A provider’s
conditional token is often a header, so selection cannot assume a body.
DocumentCodec
Ƭ DocumentCodec:"xml" | "jsonl" | "x12" | "edifact" | "hl7v2" | "mt940" | "bai2" | "nacha" | "idoc" | "copybook" | "vda"
Not exported: an exported type refers to it.
VdaLayout
Ƭ VdaLayout:Object
The layouts a vda document reads. records gives each record type’s
fields after its five-character type and version, in order, with their
widths; a prefix of the record suffices. Exactly one declared type ends in
11 (the header) and one in 19 (the trailer), of one family. counts
maps a trailer field to the record type it counts; key names header fields
the host renders as each transmission’s transmission identity.
Type declaration
CopybookField
Ƭ CopybookField: {name: string ; type: "text" ; length: number ; occurs?: number } | { name: string ; type: "filler" ; length: number } | { name: string ; type: "zoned" | "packed" | "binary" ; digits: number ; scale?: number ; signed?: boolean ; occurs?: number }
One elementary item of a COBOL copybook, in record order. Text and filler
state their bytes (PIC X(n)); numeric items state their digits, implied
decimal places (V99) and whether the picture is signed (S). zoned is
usage DISPLAY, packed is COMP-3, binary is COMP, COMP-4, COMP-5 or
BINARY. occurs repeats the item in place. Hyphens in COBOL names become
underscores.
CopybookLayout
Ƭ CopybookLayout:Object
A copybook’s record layout. encoding is the code page of text bytes
(IBM 037, 1140, 500 or 273 EBCDIC, or ASCII); framing is how records are
delimited: back to back (fixed), each behind a four-byte record descriptor
word (rdw), or one per line (lines, ASCII text and zoned items only).
key names the items whose values identify a record; the host renders
them as each record’s record (one value as itself, several as a JSON
array), and without a key a record is named by its position. A key item the
host could not read names the record by the original’s digest and position.
REDEFINES and OCCURS DEPENDING ON are not expressible.
Type declaration
UnwrapStep
Ƭ UnwrapStep: {kind: "gzip" } | { kind: "base64" } | { kind: "charset" ; from: "windows_1252" | "iso_8859_15" | "iso_8859_2" | "shift_jis" | "utf16le" | "utf16be" }
Not exported: an exported type refers to it.
DocumentDeclaration
Ƭ DocumentDeclaration: {codec: "xml" ; validator: Validator<any, any, any> ; markup?: { attributes: string ; text: string } ; unwrap?: readonly UnwrapStep[] } | { codec: "idoc" ; validator: Validator<any, any, any> ; segments: Record<string, readonly { name: string ; length: number }[]> ; unwrap?: readonly UnwrapStep[] } | { codec: "copybook" ; validator: Validator<any, any, any> ; copybook: CopybookLayout ; unwrap?: readonly UnwrapStep[] } | { codec: "vda" ; validator: Validator<any, any, any> ; vda: VdaLayout ; unwrap?: readonly UnwrapStep[] } | { codec: Exclude<DocumentCodec, "xml" | "idoc" | "copybook" | "vda"> ; validator: Validator<any, any, any> ; unwrap?: readonly UnwrapStep[] }
A document the host decodes: its codec, the validator the decoded value
must satisfy, and the codec’s options. At most four unwrap steps; a
copybook or vda document admits no charset step, because its layout
counts bytes.
BodyContract
Ƭ BodyContract: {kind: "grpc" ; exchange: GrpcExchange ; _message?: unknown } | { kind: "text" } | { kind: "none" } | { kind: "json" ; validator: Validator<any, any, any> } | { kind: "json_schema" ; schema: HttpWireSchema ; validator: Validator<any, any, any> } | { kind: "document" } & DocumentDeclaration | { kind: "positional" ; schema: WirePath ; name: WirePath ; column_type: WirePath ; rows: WirePath ; cells: WirePath ; value: WirePath ; columns: Record<string, string> ; validator: Validator<any, any, any> } | { kind: "json_fields" ; fields: readonly string[] ; optional_fields?: readonly string[] ; paths?: Record<string, readonly string[]> ; decimal_fields?: readonly string[] } | { kind: "json_batch" ; selection: { items: WirePath ; fields: readonly string[] ; max_records: number ; scan_key?: string ; string_fields?: readonly WirePath[] ; parents?: { path: WirePath ; key: WirePath ; child_key: WirePath } } } | { kind: "opaque" }
The body an admitted status carries. These are three different things.
none is no body at all: a successful empty 204 declares it, and bytes
arriving anyway violate the contract rather than being an empty success.
json must parse and match the validator; malformed bytes are invalid at
that status and never degrade to an empty success. opaque is bytes the
host retains without interpreting, such as a provider answering an ordinary
error with HTML or plain text. opaque is not “ignore any body”: the status
is still evidence, and the body supplies no field evidence at all.
ResponseContract
Ƭ ResponseContract:Object
What may be interpreted from a response. A status outside statuses is
still retained, but proves only that the provider answered.
Type declaration
ScalarValue
Ƭ ScalarValue: {type: "bool" ; value: boolean } | { type: "text" ; value: string } | { type: "integer" ; value: string } | { type: "null" } | { type: "missing" }
An exact scalar a response field may equal. Matching is by type and value
together, so false, "false", null and an absent field stay four
different things. An integer is canonical decimal text compared against an
exact JSON integer, never through a float.
KeyEncoding
Ƭ KeyEncoding:"text" | "integer"
How one key component is read. integer preserves an exact provider
identifier: a value that is not an exact JSON integer is refused rather than
rounded, so a large numeric id never loses its low digits.
KindMatch
Ƭ KindMatch:Object
Type declaration
RecordKindSource
Ƭ RecordKindSource: {kind: "fixed" ; record: "present" | "deleted" } | { kind: "match" ; path: WirePath ; variants: readonly KindMatch[] }
How a response says what each of its records is. Providers differ: one tags
rows with a string, another with a boolean archived flag, and an endpoint
that only ever returns live records says nothing at all.
KeyPart
Ƭ KeyPart: {kind: "literal" ; value: string } | { kind: "mapped_field" ; path: WirePath ; values: Record<string, string> } | HttpInput | { kind: "field" ; path: WirePath ; encoding: KeyEncoding }
One component of a compound key. A provider returning association rows omits
the parent it was asked about, so identity is completed from the admitted
request context rather than from anything a response invented.
RecordKeySource
Ƭ RecordKeySource: {kind: "input" } & HttpInputReference | { kind: "field" ; path: WirePath ; encoding: KeyEncoding } | { kind: "compound" ; parts: readonly KeyPart[] } | { kind: "first_present" ; paths: readonly WirePath[] ; encoding: KeyEncoding }
How each record’s key is assembled.
ResumeSource
Ƭ ResumeSource: {kind: "stated" ; from: Selector } | { kind: "when" ; from: Selector ; condition: Selector } | { kind: "while_more" ; from: Selector } | { kind: "link_relation" ; header: string ; relation: string } | { kind: "last_record_key" } | { kind: "maximum_field" ; path: WirePath }
Where the position the NEXT acquisition request resumes from comes from.
stated is the provider’s own cursor, read from the position it states it
at. last_record_key is the after=<id> walk: the provider states no cursor
and the next request continues after the LAST record this response returned,
so the HOST derives the position from the keys it already verified against
this same response’s declared key. The connector composes nothing, because
a position the host cannot check against retained evidence is one a guest
could move backwards over records already published. An empty page names no
last row and therefore derives no position.
maximum_field is the third, and it is the same derivation over a different
value: the provider states no cursor and the next request continues from the
LARGEST value a declared ordered field took over this page’s records —
Odoo’s write_date >= <the largest one you saw>, and BigQuery’s APPENDS
instant. It exists because neither other arm can say it: there is no stated
cursor to select, and the last ROW’s key is a different value in a different
domain from the one the request filters on.
Two rules come with it. The values are compared as the PROVIDER spelled them,
so every row must carry the field as text of one width — a fixed-width
timestamp orders by bytes and "9" against "10" does not, so a page mixing
widths is refused rather than positioned wrongly. And the continuation is
INCLUSIVE of its own boundary, because the field’s rendering may be coarser
than the comparison the provider makes on it: Odoo renders write_date to
the second and compares at full stored precision, so a strict > returns the
row it came from. The boundary row is therefore re-read on every resume, and
the declaration owes an opaque record version so that the re-read row is
deduplicated by (key, version) instead of churning history.
That inclusiveness is also why the walk needs an end: the last page returns
its boundary row and nothing else, and its maximum is the position the
request already carried. The host derives a position only where what it
computed is STRICTLY GREATER than the one this request resumed from, and an
empty page derives none, so a finished walk exhausts instead of asking for
the same page for ever.
RecordProjection
Ƭ RecordProjection:Object
Type declaration
HttpEvidence
Ƭ HttpEvidence: {kind: "resources" ; items?: WirePath ; id: { path: WirePath ; encoding: KeyEncoding } ; label?: WirePath ; next_page?: WirePath } | { kind: "query_result" ; collection: string ; items: WirePath ; columns: WirePath ; column_names: readonly string[] ; key_prefix: readonly string[] ; key_columns: readonly number[] ; has_more: WirePath ; is_cached: WirePath ; calculated_at: WirePath ; calculated_at_field: string } | { kind: "identity" ; account?: { path: WirePath ; encoding: KeyEncoding } ; incarnation?: WirePath } | { kind: "feed" ; collection: string ; items: WirePath ; discriminator: WirePath ; variants: Record<string, { kind: "replace" | "delete" ; key: WirePath ; position: WirePath ; version?: WirePath }> ; through: WirePath ; head?: WirePath ; has_more: WirePath } | { kind: "records" ; collection: string ; subject?: HttpInputReference ; items?: WirePath ; parents?: WirePath ; sole?: WirePath ; presence: RecordKindSource ; key: RecordKeySource ; version?: Selector ; complete?: WirePath ; more?: WirePath ; end_cursor?: WirePath ; resume?: ResumeSource ; exact?: readonly { path: WirePath ; encoding: { kind: "decimal_string" } | { kind: "minor_units" ; scale: number } | { kind: "implied_decimals" ; scale: number } }[] } | { kind: "projections" ; records: readonly RecordProjection[] } | { kind: "incremental" ; collection: string ; items: WirePath ; also?: readonly WirePath[] ; items_optional?: boolean ; presence: RecordKindSource ; key: RecordKeySource ; version?: Selector ; removals?: { items: WirePath ; key: RecordKeySource } ; next_page: Selector ; next_sync: Selector ; missing_sync_token?: "refuse" | "retain_committed" ; terminal?: WirePath ; more?: WirePath ; sync_parameter: string ; page_parameter: string ; reset_status?: number ; restart?: { status: number ; code: WirePath ; values: readonly string[] } ; stated_coverage?: { path: WirePath ; values: Record<string, "complete" | "partial"> } } | { kind: "traversal" ; collection: string ; deletions: readonly string[] ; items: readonly { parents?: WirePath ; parents_optional?: boolean ; items: WirePath ; items_optional?: boolean ; key: WirePath ; version?: WirePath ; presence: RecordKindSource }[] ; duplicates: "present" | "deleted" | "last" ; next_page?: Selector ; checkpoint?: Selector ; checkpoint_name: string ; page_parameter?: string ; checkpoint_parameter?: string ; reset_status: number ; terminal_without_checkpoint?: boolean } | { kind: "discovery" ; keyset?: boolean ; collection: string ; items: WirePath ; presence: RecordKindSource ; key: RecordKeySource ; complete?: WirePath ; resume?: Selector ; continuation?: HttpInputReference } | { kind: "data" } | { kind: "checkpoint" ; name: string ; value: Selector } | { kind: "command" ; command: string ; operation_id?: never ; outcome: { kind: "status" } | { kind: "selected" ; from: Selector } | { kind: "by_status" ; selected: Record<number, Selector> } | { kind: "presence" ; of: WirePath } ; outcomes: Record<string, { kind: "confirmed" ; target_key?: Selector ; effects?: readonly { response: WirePath ; input: HttpArgumentReference }[] ; observation?: { key: WirePath ; position?: WirePath ; version?: WirePath ; record?: WirePath } } | { kind: "rejected" | "pending" | "unknown" } | { kind: "counted" } | { kind: "observed" } | { kind: "withdrawn" } | { kind: "refused" }> ; refusal?: { name: Selector ; kinds: Record<string, "precondition_failed" | "member_missing" | "invariant_violated" | "malformed" | "identity_reused"> ; member?: { on: string[] ; reasons: WirePath ; code: WirePath ; unaffected: string } ; current?: { kind: "body" ; path: WirePath } | { kind: "member" ; path: WirePath } } ; attribution?: { kind: "echoed" ; operation_id: Selector } | { kind: "searched" ; list?: WirePath ; operation_id: WirePath ; created_key?: WirePath ; complete?: WirePath ; more?: WirePath ; end_cursor?: WirePath ; page: number } | { kind: "absence" ; target_key: Selector } | { kind: "created" } ; created?: Selector ; created_encoding?: KeyEncoding }
HttpContract
Ƭ HttpContract:Object
Type declaration
ResponseEvidence
Ƭ ResponseEvidence:string
A reference is only a lookup key; native admission checks its invocation.
IdentityKey
Ƭ IdentityKey<S>: Extract<keyof S, string> | readonly [Extract<keyof S, string>, Extract<keyof S, string>, …Extract<keyof S, string>[]]
Not exported: an exported type refers to it.
Type parameters
CommandsOf
Ƭ CommandsOf<I>: I extends { commands: infer C } ? C : {}
Not exported: an exported type refers to it.
Type parameters
Fields
Ƭ Fields:Record<string, GenericValidator>
Not exported: an exported type refers to it.
HttpContracts
Ƭ HttpContracts:Record<string, HttpContract>
Not exported: an exported type refers to it.
Declaration
Ƭ Declaration:Object
Not exported: an exported type refers to it.
Type declaration
ResourceDeclaration
Ƭ ResourceDeclaration<Setup, S, Connector, ConnectionKeys, Credential, Commands>: ResourceTable<S> & { isIntegration: true ; isResource: true ; commands: Commands ; _connectionSetup?: Setup ; _connector?: Connector ; _credential?: Credential ; _connectionKeys?: ConnectionKeys ; exportIntegration: () => string }
Stable public type used in emitted application declarations.
Type parameters
ResourceIdentity
Ƭ ResourceIdentity<S>: Object
Provider identity fields are declared once and selected by acquisition and receipts.
Type parameters
Type declaration
ResourceRead
Ƭ ResourceRead:Object
A collection recipe receives the resource schema and identity exactly once.
Type declaration
ResourceCommand
Ƭ ResourceCommand<A, Target>: Object
A command recipe lowers to ordinary request contracts and governed handlers.
Type parameters
Type declaration
ResourceConnection
Ƭ ResourceConnection<Setup, Kind, Credential, Keys>: { kind: Kind ; credentialKind: Credential ; fields: readonly Keys[] ; address?: ResourceAddress ; requests: HttpContracts } & Pick<CallbackIntegrationDefinition<any, any, any, any, Setup>, "identify" | "discover" | "budget" | "backoff">
Shared connection behavior. Setup is declared once on the resource; fields
selects the immutable connection-owned subset, and the remaining setup selects
a resource on that connection. Private authentication stays in native custody.
Type parameters
ResourceOptions
Ƭ ResourceOptions<S>: Object
Type parameters
Type declaration
ResourceGroupDeclaration
Ƭ ResourceGroupDeclaration<Setup, Tables, Connector, ConnectionKeys, Credential, Commands>: Object
One binding and acquisition responsibility for several inseparable tables.
Type parameters
Type declaration
MultiResourceOptions
Ƭ MultiResourceOptions<I, T, C>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
AccountIdentity
Ƭ AccountIdentity: {method: "GET" ; path: string ; query?: Readonly<Record<string, string>> ; requiredPermissions: readonly string[] ; subject: WirePath ; label?: WirePath } | { method: "signedAssertion" ; requiredPermissions: readonly string[] }
CollectionRecipe
Ƭ CollectionRecipe<S, P>: Object
The request contract and collection a builder stands for once it is named.
Type parameters
Type declaration
ResourceTable
Ƭ ResourceTable<S, Scope>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
FieldsOfKind
Ƭ FieldsOfKind<S, Kind>: { [K in keyof S]: S[K][“isOptional”] extends “required” ? S[K][“kind”] extends Kind ? K : never : never }[keyof S] & string
Not exported: an exported type refers to it.
Type parameters
RecordDefinition
Ƭ RecordDefinition<S>: Object
What one acquired event means. schema validates the decoded payload;
time names its business instant, a required int64 field in an exact
unit. History stores it as timestamptz; series uses exact microseconds.
{ kind: "change_feed", feed } reads a distributed SQL database’s change
feed off Kafka into latest rows only: "cockroachdb" (CREATE CHANGEFEED ... WITH format = 'json', envelope = 'wrapped', updated, resolved) or
"ticdc_canal_json" (TiCDC canal-json with enable-tidb-extension=true).
The schema names the table’s columns; latest.key its primary key, in key
order; latest.orderBy two int64 fields (CockroachDB: wall nanoseconds and
logical) or one (TiCDC: the commit TSO) that the commit timestamp fills.
A deletion withdraws its key, and rows are published only through the
resolved frontier, the least resolved timestamp of every partition.
Type parameters
Type declaration
EventHistory
Ƭ EventHistory<S>: Object
One Iceberg table of decoded events. history: true partitions by day and
sorts by the declared record time, or uses no layout when time is absent.
layout uses the same partition and sort grammar as datasets. Adding a
nullable field or renaming one keeps the same history.
Any other change to its columns, partition or sort is a new history:
declare version: 2 (then 3, …), kept as dataset <export>_v2 and
built from the raw archive, while the previous table stays readable and
receives no more rows.
Type parameters
Type declaration
LatestProjection
Ƭ LatestProjection<S>: Object
The latest row per key, published to the table bound with
defineSyncedTable({ source: source.latest }). orderBy lists one to four distinct int64 fields
compared in order, so ["eventTime", "sequence"] takes the newest instant
and, at that instant, the newest correction. It defaults to the record time
field.
Type parameters
Type declaration
NativeSeriesOutput
Ƭ NativeSeriesOutput<S>: Object
Accepted observations in a declared native series table in this component.
The table’s payload is the record schema. Ordering is a business fact;
Kafka offsets are comparable only within their own partitions.
Type parameters
Type declaration
KafkaTransport
Ƭ KafkaTransport: {kind: "kafka" ; correlation?: never } | { kind: "kafka" ; correlation: string }
Kafka interpretation and acknowledgement semantics; routing is installed through binding setup.
EventBrokerTransport
Ƭ EventBrokerTransport: {kind: "pulsar" } | { kind: "jetstream" } | { kind: "rabbitmq" } | { kind: "redis" } | { kind: "kinesis" } | { kind: "pubsub" ; expectedTopic?: string ; correlation?: string } | { kind: "sqs" ; envelope?: "sns" } | { kind: "servicebus" } | { kind: "rabbitmq_queue" } | { kind: "mqtt" ; identity: readonly string[] ; correlation?: string } | { kind: "stomp" }
Raw broker routing; physical endpoints and subscriptions are privately installed.
PostgresTransport
Ƭ PostgresTransport:Object
A PostgreSQL logical replication slot, pgoutput protocol v1. Physical
relation names, publication and credentials are private installation
configuration and are never declared here.
Type declaration
MailboxTransport
Ƭ MailboxTransport:Object
One mailbox session. The account, endpoint, selected folders and
credentials are private installation configuration; a declaration names only
the three projections it publishes.
Type declaration
EventAcquisitionTransport
Ƭ EventAcquisitionTransport:Object
Bounded native ingestion: the raw archive, the typed event history and
the latest rows of one topic, with command correlation. Broker and registry
connection details stay in private installation data. Acquisition uses the
ordinary source schedule; the latest policy independently bounds database
publication. Acknowledgements never replace rows.
Type declaration
SqlTransport
Ƭ SqlTransport:Object
Not exported: an exported type refers to it.
Type declaration
BayeuxTransport
Ƭ BayeuxTransport:Object
Not exported: an exported type refers to it.
Type declaration
SalesforceTransport
Ƭ SalesforceTransport:Object
Not exported: an exported type refers to it.
Type declaration
As2Transport
Ƭ As2Transport:Object
Not exported: an exported type refers to it.
Type declaration
SftpTransport
Ƭ SftpTransport:Object
Not exported: an exported type refers to it.
Type declaration
SftpRelease
Ƭ SftpRelease: {kind: "remove" } | { kind: "archive" ; directory: string }
Not exported: an exported type refers to it.
ODataTransport
Ƭ ODataTransport:Object
Not exported: an exported type refers to it.
Type declaration
BijectionTransport
Ƭ BijectionTransport:Object
Not exported: an exported type refers to it.
Type declaration
DatasetTransport
Ƭ DatasetTransport:Object
Not exported: an exported type refers to it.
Type declaration
AcquisitionTransport
Ƭ AcquisitionTransport: {transport: "postgres" ; value: PostgresTransport } | { transport: "mailbox" ; value: MailboxTransport } | { transport: "kafka" ; value: EventAcquisitionTransport } | { transport: "broker" ; value: { protocol: Exclude<EventBrokerTransport, { kind: "pubsub" }> | { kind: "pubsub" ; expected_topic?: string } ; collection?: string ; events?: EventAcquisitionTransport } } | { transport: "dynamo_db" ; value: { collection: string } } | { transport: "salesforce" ; value: SalesforceTransport } | { transport: "git" ; value: { collection: string } } | { transport: "big_query" ; value: { collection: string } } | { transport: "sheets" ; value: { collection: string ; columns: number ; page_rows: number ; enrollment_rows: number ; writes?: Record<string, { columns: Record<string, number> }> } } | { transport: "kubernetes" ; value: { collection: string ; projection?: "pod" } } | { transport: "bayeux" ; value: BayeuxTransport } | { transport: "mongo" ; value: { collections: Record<string, { fields: Record<string, string> }> ; page_rows: number ; max_depth: number ; max_values: number } } | { transport: "sql" ; value: SqlTransport } | { transport: "dataset" ; value: DatasetTransport } | { transport: "bijection" ; value: BijectionTransport } | { transport: "sftp" ; value: SftpTransport } | { transport: "odata" ; value: ODataTransport } | { transport: "as2" ; value: As2Transport }
The declared transport. The discriminator is spelled transport because
that is what it selects; there is no acquisition kind beside it.
HttpWireSchema
Ƭ HttpWireSchema: {kind: "null" | "boolean" | "json" } | { kind: "string" ; min_length?: number ; max_length?: number ; pattern?: string } | { kind: "number" ; integer: boolean ; minimum?: number ; maximum?: number } | { kind: "literal" ; value: string | number | boolean | null } | { kind: "array" ; items: HttpWireSchema ; min_items?: number ; max_items?: number } | { kind: "object" ; fields: Record<string, { required: boolean ; schema: HttpWireSchema }> ; forbidden?: readonly string[] ; additional: { kind: "allow" | "deny" } | { kind: "schema" ; schema: HttpWireSchema } } | { kind: "union" ; variants: readonly HttpWireSchema[] ; exclusive: boolean }
Compiled, bounded wire contracts. The native HTTP owner checks these before
dispatch and before projecting a provider response into its native validator.
HttpRequestSchema
Ƭ HttpRequestSchema:Object
Type declaration
SyncInput
Ƭ SyncInput:FeedInput | IncrementalInput | EnumerationInput | SweepInput
The read arguments of one acquisition.
Untagged, because that is the shipped wire and the guest branches on which
fields are present. The three shapes have disjoint required fields and each
refuses unknown ones, so the union stays unambiguous in both directions.
FeedInput
Ƭ FeedInput:Object
Type declaration
IncrementalInput
Ƭ IncrementalInput:Object
Type declaration
EnumerationInput
Ƭ EnumerationInput:Object
Type declaration
DiscoverySlice
Ƭ DiscoverySlice:Object
Not exported: an exported type refers to it.
Type declaration
DiscoveredItem
Ƭ DiscoveredItem:Object
Not exported: an exported type refers to it.
Type declaration
RecordKind
Ƭ RecordKind:"present" | "deleted"
Not exported: an exported type refers to it.
SweepInput
Ƭ SweepInput:Object
One batch of a reconciliation sweep: the keys this engine has already
published that this pass is to read again.
The keys are the HOST’s, resolved from publication and pinned on the
acquisition’s own start, so the read that goes out is addressed at a key the
engine holds rather than one a connector chose. There is no cursor here and
no listing: a sweep asks the provider about named records and the provider
answers about exactly those.
Type declaration
CoupledInput
Ƭ CoupledInput:Object
What the host gives one coupled acquisition attempt.
Every field is host state the attempt is checked against, and none of it is
something an integration may invent. It is its own shape rather than a
member of SyncInput because a coupled group has its own reader: the
group’s coupling.read is called with this, a collection’s own sync.read
is called with a SyncInput, and no handler ever receives both.
Type declaration
CoupledCheckpoint
Ƭ CoupledCheckpoint:Object
Not exported: an exported type refers to it.
Type declaration
CoupledPhase
Ƭ CoupledPhase: {kind: "traversal" } | { kind: "fanout" ; keys: string[] ; terminal: boolean }
Not exported: an exported type refers to it.
ChangeFeedResult
Ƭ ChangeFeedResult<T>: Object
What one change-feed read claims.
Type parameters
Type declaration
Observation
Ƭ Observation<T>: { kind: "replace" ; evidence: string ; item_index: number ; key: string ; position: string ; version?: string ; value: T } | { kind: "delete" ; evidence: string ; item_index: number ; key: string ; position: string }
One observed change in an ordered feed.
evidence cites the retained response that proved it; item_index is the
item’s position within that response, which is how the host matches a
guest’s interpretation to the evidence rather than trusting its order. A
feed item is a replacement or a deletion, and both carry the position the
provider stated. There is no third case: a feed that cannot say which of the
two an item is has no evidence contract here.
Type parameters
RecordResult
Ƭ RecordResult<T>: ResetResult | EnumerationResult<T> | FanoutResult<T> | KeyedFanoutResult<T> | SweepResult<T> | SnapshotResult<T>
What one record-observation read claims.
Untagged, because that is the shipped wire: the guest returns a bare object
and branches on which fields it filled. The four shapes are told apart by
fields no other shape admits — reset, next_page/next_sync, complete,
unresolved — and each refuses the others’ fields, so the union stays
unambiguous in both directions.
Type parameters
ResetResult
Ƭ ResetResult:Object
Type declaration
EnumerationResult
Ƭ EnumerationResult<T>: Object
Type parameters
Type declaration
RecordObservation
Ƭ RecordObservation<T>: { kind: "present" ; evidence: string ; item_index: number ; key: string ; version?: string ; value: T } | { kind: "deleted" ; evidence: string ; item_index: number ; key: string }
One observed record.
version is an opaque equality token and never a position; a deletion
carries neither a version nor a value, because a record the provider says is
gone has no state to project.
Type parameters
FanoutResult
Ƭ FanoutResult<T>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
UnresolvedRecord
Ƭ UnresolvedRecord:Object
Not exported: an exported type refers to it.
Type declaration
KeyedFanoutResult
Ƭ KeyedFanoutResult<T>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
KeyPage
Ƭ KeyPage<T>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
SweepResult
Ƭ SweepResult<T>: Object
Not exported: an exported type refers to it.
Type parameters
Type declaration
SnapshotResult
Ƭ SnapshotResult<T>: Object
Type parameters
Type declaration
SnapshotProgress
Ƭ SnapshotProgress: {kind: "continue" ; token: string } | { kind: "complete" ; resume: SnapshotResume }
Exactly one evidenced transition of an incremental membership acquisition.
SnapshotResume
Ƭ SnapshotResume: {kind: "advance" ; token: string } | { kind: "retain_committed" }
A missing response token never manufactures a new acquisition basis.
SourceMetadataProvider
Ƭ SourceMetadataProvider: {kind: "salesforce" ; api_version: string } | { kind: "odata" ; version: "v2" | "v4" } | { kind: "netsuite" } | { kind: "dataverse" ; api_version: "v9.2" } | { kind: "servicenow" ; api_version: "v1" }
Captured provider descriptions. Runtime authority and coverage come from
native connection and acquisition admission, independently of these types.
SourceMetadataField
Ƭ SourceMetadataField:Object
Type declaration
SourceFieldMeaning
Ƭ SourceFieldMeaning:Object
Type declaration
SourceSemantics
Ƭ SourceSemantics:Object
Type declaration
SourceMetadataObject
Ƭ SourceMetadataObject:Object
Type declaration
CapturedSourceSchema
Ƭ CapturedSourceSchema:Object
Type declaration
SourceMetadataRequirement
Ƭ SourceMetadataRequirement:Object
Type declaration
Properties
post
• post: (shape: RequestShape) => RequestBuilder
Type declaration
▸ (shape): RequestBuilder
Parameters
Returns
RequestBuilder
Variables
http
•Const http: Readonly<{ setup: (name: string) => HttpValue<string> ; parameter: <T>(name: string) => HttpValue<T> ; get: (shape: RequestShape) => RequestBuilder ; post: (shape: RequestShape) => RequestBuilder ; put: (shape: RequestShape) => RequestBuilder ; patch: (shape: RequestShape) => RequestBuilder ; delete: (shape: RequestShape) => RequestBuilder }>
Request builders describe ordinary admitted HTTP templates. Their callbacks
run at declaration time and cannot read credentials or perform provider I/O.
identity
•Const identity: Readonly<{ field: <F>(field: F) => F ; tuple: <F>(…fields: F) => F }>
A tuple’s ordered fields are part of its identity, never a display format.
Functions
admitIntegration
▸ admitIntegration<T>(definition): T
Admit an integration definition authored outside this deployment component.
A definition’s module/export address is assigned by the compiler and names a
module of the deployment being installed. A definition imported from a
package or a sibling directory is not such a module, so it has no address of
its own and cannot be bound by defineSyncedTable({ source: collection }). Re-exporting it through this
function from a module of the component gives it that module’s address:
Type parameters
Parameters
Returns
T
defineAccountIntegration
▸ defineAccountIntegration(definition): Object
Declare an account identity without an acquisition reader.
Parameters
Returns
Object
defineExecutor
▸ defineExecutor<Engine>(definition?): Object
Declare an execution capability. Its engine, inputs and credentials are
installed by deployment administration. It schedules no acquisition.
Type parameters
Parameters
Returns
Object
defineIntegration
▸ defineIntegration<S, H, A, R, L, T, C, D>(definition): Integration<S, H, A, R, L, T, keyof C extends never ? NativeSetupFor<D> : C>
Type parameters
Parameters
Returns
Integration<S, H, A, R, L, T, keyof C extends never ? NativeSetupFor<D> : C>
▸ defineIntegration<S, A, H, T, C>(definition): ReturnType<typeof defineCallbackIntegration>
Type parameters
Parameters
Returns
ReturnType<typeof defineCallbackIntegration>
defineHttpTelemetry
▸ defineHttpTelemetry<R, H, C>(definition): Integration<{ latest: R }, H, {}, {}, undefined, {}, C>
One signed HTTP occurrence contributes to the same native event outputs.
Type parameters
Parameters
Returns
Integration<{ latest: R }, H, {}, {}, undefined, {}, C>
defineCallbackIntegration
▸ defineCallbackIntegration<S, A, H, T, C>(definition): Object
Not exported: an exported type refers to it.
Type parameters
Parameters
Returns
Object
createGrpcMessageValidator
▸ createGrpcMessageValidator<T>(schema, message): VObject<T, MessageFields<T>>
Exact SDK validators derived from the same captured descriptor as native
encoding. The host additionally enforces numeric ranges and wire bounds.
Type parameters
Parameters
Returns
VObject<T, MessageFields<T>>
createGrpcMethod
▸ createGrpcMethod<I, O>(schema, method): GrpcMethod<I, O>
Called by the captured-source preparer. Native admission rechecks the
digest, descriptors, field selectors, request role and full resolved input.
Type parameters
Parameters
Returns
GrpcMethod<I, O>
compileHttpRequest
▸ compileHttpRequest(builder): Object
Lower a declaration without acquiring credentials or performing I/O.
Parameters
Returns
Object
identityFields
▸ identityFields(key): readonly string[]
Parameters
Returns
readonlystring[]
identityContract
▸ identityContract(schema, key, path?): Extract<RecordKeySource, { kind: "field" | "compound" }>
Lower through the existing native exact-key encoding and evidence checks.
Parameters
Returns
Extract<RecordKeySource, { kind: "field" | "compound" }>
encodeIdentity
▸ encodeIdentity(schema, key, read): string
Parameters
Returns
string
defineResource
▸ defineResource<I, S, C>(input): ResourceDeclaration<NonNullable<I["_connectionSetup"]>, S, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
Native transports expose an already admitted collection through the same constructor.
Type parameters
Parameters
Returns
ResourceDeclaration<NonNullable<I["_connectionSetup"]>, S, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
▸ defineResource<Setup, S, Kind, Credential, Keys, Commands>(input): ResourceDeclaration<ObjectType<Setup>, S, Kind, Keys, Credential, { readonly [K in keyof Commands]: CommandHandle<ObjectType<Commands[K][“args”]>, Commands[K][“target”]> }>
One setup schema, one acquisition owner and the explicitly supported commands.
Type parameters
Parameters
Returns
ResourceDeclaration<ObjectType<Setup>, S, Kind, Keys, Credential, { readonly [K in keyof Commands]: CommandHandle<ObjectType<Commands[K][“args”]>, Commands[K][“target”]> }>
defineResourceGroup
▸ defineResourceGroup<I, T, C>(input): ResourceGroupDeclaration<NonNullable<I["_connectionSetup"]>, { readonly [K in string | number | symbol]: T[K] extends SourceHandle<S> ? ResourceTable<S> : never }, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
One coupled acquisition and its inseparable tables.
Type parameters
Parameters
Returns
ResourceGroupDeclaration<NonNullable<I["_connectionSetup"]>, { readonly [K in string | number | symbol]: T[K] extends SourceHandle<S> ? ResourceTable<S> : never }, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
defineResourceBundle
▸ defineResourceBundle<I, T, C>(input): ResourceGroupDeclaration<NonNullable<I["_connectionSetup"]>, { readonly [K in string | number | symbol]: T[K] extends SourceHandle<S> ? ResourceTable<S> : never }, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
Independent callback collections sharing a connection, without joint publication.
Type parameters
Parameters
Returns
ResourceGroupDeclaration<NonNullable<I["_connectionSetup"]>, { readonly [K in string | number | symbol]: T[K] extends SourceHandle<S> ? ResourceTable<S> : never }, C["kind"], keyof C["setup"] & string, C["credentialKind"], CommandsOf<I>>
command
▸ command<A, Target, Send, Reconcile, Sent, Reconciled, C>(definition): Omit<CommandShape<A, Target, C>, "send" | "reconcile"> & { send: (ctx: IntegrationContext<any, any>, input: InputFor<A, C>) => Promise<Sent> ; reconcile: (ctx: IntegrationContext<any, any>, input: Omit<InputFor<A, C>, "expires_at">) => Promise<Reconciled> }
Semantic constructors preserve the existing native command and call owners.
Type parameters
Parameters
Returns
Omit<CommandShape<A, Target, C>, "send" | "reconcile"> & { send: (ctx: IntegrationContext<any, any>, input: InputFor<A, C>) => Promise<Sent> ; reconcile: (ctx: IntegrationContext<any, any>, input: Omit<InputFor<A, C>, "expires_at">) => Promise<Reconciled> }
▸ command<A, Target, Send, Sent, C>(definition): Omit<CommandShape<A, Target, C>, "send" | "reconcile"> & { send: (ctx: IntegrationContext<any, any>, input: InputFor<A, C>) => Promise<Sent> }
Semantic constructors preserve the existing native command and call owners.
Type parameters
Parameters
Returns
Omit<CommandShape<A, Target, C>, "send" | "reconcile"> & { send: (ctx: IntegrationContext<any, any>, input: InputFor<A, C>) => Promise<Sent> }
validateSetupDeclaration
▸ validateSetupDeclaration(setup): SetupDeclaration
Check the declaration itself, at definition time.
Everything here is a defect in the definition rather than in a supplied
value, so it throws: the module never loads with a declaration the backend
would refuse, and an author sees it at bijection dev rather than at the
first connection.
Parameters
Returns
SetupDeclaration
defineCollectionRecipe
▸ defineCollectionRecipe<S, P>(name): CollectionDefinition<S, any, P>
A builder’s collection before defineIntegration names it. Its schema,
protocol and cadence are already the named collection’s; its read refuses,
because the request it reads is named only by the key it is declared under.
The options are checked here, so a malformed builder fails where it is
written.
Type parameters
Parameters
Returns
CollectionDefinition<S, any, P>
connectionReference
▸ connectionReference<Kind, Setup>(kind, id): ConnectionReference<Kind, Setup>
Reference the connection returned by source metadata connect. Native
binding admission checks its connector, setup and private credential.
Type parameters
Parameters
Returns
ConnectionReference<Kind, Setup>