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
| Source | Use for | Runtime |
|---|---|---|
BuiltInNative | First-party high-performance adapters. | CLR class behind adapter boundary. |
DeclarativeBundle | HTTP-ish adapters, mapping, auth, retries, redaction without code. | Canonical declarative engine. |
AuthoredComponent | Custom 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/invalidateDeclarative 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 import | Authority |
|---|---|
MemoryGet | Read connector/capability memory. |
MemoryGetSnapshot | Read a memory snapshot. |
MemoryPutIfAbsent | Write memory only when absent. |
MemoryCompareExchange | Atomic compare-and-exchange memory update. |
MemoryAppendJournal | Append to a capability journal. |
MemoryAcquireLease | Acquire a host-managed lease. |
MemoryReleaseLease | Release a host-managed lease. |
MemoryDelete | Delete host memory. |
MemoryExpire | Set memory expiry. |
ObservabilityRecordSpan | Record a structured span. |
ObservabilityLog | Write a redacted observability log entry. |
SecretsSignRequest | Sign a request without revealing raw secret material. |
SecretsHmac | Compute HMAC without revealing raw secret material. |
SecretsAttachAuthToEgressPlan | Attach auth to a host-validated egress plan. |
SecretsResolveRedactedMetadata | Resolve redacted secret metadata only. |
SecretsDecryptForHostEgressOnly | Decrypt only inside host egress boundary. |
EgressBuildPlan | Build a governed egress plan. |
TimeNow | Read host-provided current time. |
CapabilityAssert | Assert 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" }
]
}