Reference

Connectors and WIT

Built-in native, declarative bundle, and authored Wasm component connectors: contracts, builds, conformance, bindings, memory, host imports, and publication.

Custom connectors are capability-surface implementations. They do not get raw host power; they declare a supported surface kind, consume the WIT world for that contract, call only allowed host imports, pass conformance, publish a signed artifact, and bind per project.

Implementation sources

SourceUse forRuntime
BuiltInNativeFirst-party high-performance adapters.CLR class behind adapter boundary.
DeclarativeBundleHTTP-ish adapters, mapping, auth, retries, redaction without code.Canonical declarative engine.
AuthoredComponentCustom provider logic across Rust, Go, AssemblyScript, C, Python, and future languages.Wasm Component Model on Wasmtime with epoch deadlines.

Connector routes

GET  /api/Connector/contracts
GET  /api/Connector/contracts/{kind}/{majorVersion}
GET  /api/Connector/implementations
GET  /api/Connector/implementations/{implementationId}
POST /api/Connector/build/declarative
POST /api/Connector/conformance/run
POST /api/Connector/bindings
GET  /api/Connector/bindings
GET  /api/Connector/bindings/{alias}
POST /api/Connector/invoke
GET  /api/Connector/memory/get
GET  /api/Connector/publication/latest
GET  /api/Connector/publication/version/{publicationVersion}
GET  /api/Connector/publication/version/{publicationVersion}/{implementationId}
POST /api/Connector/publication/invalidate

Declarative connector

vadyl connector build declarative --manifest stripe.connector.json
vadyl connector conformance run --implementation stripe-charge-adapter:1.0.0
vadyl connector binding create stripe --implementation stripe-charge-adapter:1.0.0

WIT and host imports

WIT under wit/worlds/connector/ is the contract source of truth. Component imports are closed: memory operations, observability, secret signing/HMAC/auth attachment, egress plan construction, time, and capability assertions. Any other import fails instantiation.

Host importAuthority
MemoryGetRead connector/capability memory.
MemoryGetSnapshotRead a memory snapshot.
MemoryPutIfAbsentWrite memory only when absent.
MemoryCompareExchangeAtomic compare-and-exchange memory update.
MemoryAppendJournalAppend to a capability journal.
MemoryAcquireLeaseAcquire a host-managed lease.
MemoryReleaseLeaseRelease a host-managed lease.
MemoryDeleteDelete host memory.
MemoryExpireSet memory expiry.
ObservabilityRecordSpanRecord a structured span.
ObservabilityLogWrite a redacted observability log entry.
SecretsSignRequestSign a request without revealing raw secret material.
SecretsHmacCompute HMAC without revealing raw secret material.
SecretsAttachAuthToEgressPlanAttach auth to a host-validated egress plan.
SecretsResolveRedactedMetadataResolve redacted secret metadata only.
SecretsDecryptForHostEgressOnlyDecrypt only inside host egress boundary.
EgressBuildPlanBuild a governed egress plan.
TimeNowRead host-provided current time.
CapabilityAssertAssert a required capability grant at the host boundary.

Conformance output

{
  "runId": "conf_123",
  "implementationId": "impl_stripe_charge_100",
  "passed": true,
  "checks": [
    { "id": "contract.shape", "state": "passed" },
    { "id": "egress.allowed-hosts", "state": "passed" },
    { "id": "secrets.no-raw-material", "state": "passed" },
    { "id": "observability.redaction", "state": "passed" }
  ]
}