Guides
Author a custom connector
Build a declarative or Wasm connector, pass conformance, publish it, bind it, invoke it, and observe it.
ConnectorsConnectors & WITBuilt-in, declarative, and Wasm connector contracts, WIT worlds, conformance, and host imports.CodingCoding environment referenceWorkspace commands, runtime SDK surfaces, source assets, tests, deploys, and local execution.BindingsExposure bindingsThe shared projection model that binds MCP, REST, GraphQL, gRPC, SDKs, CLI, dashboards, and Runtime Fabric scaling vocabulary.CLICLI command referenceEvery command group, subcommand, flag, sample output, and exit code for automation and CI.
1. Choose the implementation source
BuiltInNative - first-party CLR adapter
DeclarativeBundle - manifest interpreted by the declarative engine
AuthoredComponent - Wasm Component Model artifact compiled from project source2. Build the implementation
vadyl connector build declarative --manifest connectors/stripe.json
{
"implementationId": "impl_123",
"surfaceKind": "GovernedConnectionAdapter",
"artifactHash": "sha256:..."
}3. Run conformance
vadyl connector conformance run --implementation impl_123
{
"passed": true,
"checks": [
{ "id": "wit.contract", "state": "passed" },
{ "id": "host-imports.closed-set", "state": "passed" },
{ "id": "secret-redaction", "state": "passed" }
]
}4. Bind it to a project
vadyl connector binding create stripe \
--implementation impl_123 \
--secret STRIPE_SECRET_KEY=secret:STRIPE_SECRET_KEY \
--allowed-host api.stripe.com
{
"alias": "stripe",
"state": "active"
}5. Invoke through governed connection APIs
const charge = await ctx.connections.stripe.createCharge({
amount: 2999,
currency: "usd",
customer: "cus_123",
idempotencyKey: "charge:ord_123",
});