Skip to content

Wasm Nodes

Wasm nodes run sandboxed WebAssembly plugins for safe, portable custom logic using Wasmtime.

  • Text transforms, validation, formatting
  • Scoring, ranking, classification
  • Tenant-defined business logic
  • Cross-language portable extensions
NodeDefinition::wasm("format", "text.transform", "fabric://modules/formatter@v1")
.requires("wasm.execute")
FieldDefaultDescription
modulerequiredModule reference (fabric://modules/name@version)
memory_limit_bytes64 MBMaximum memory
fuel_limit1B instructionsCPU fuel limit
describe() -> module metadata
validate(input, config) -> validation result
execute(input, context, config) -> output
  • Logging
  • Limited asset metadata reads
  • Metrics emission
  • Approved context value reads
  • Structured output return

All Wasm modules run in a sandboxed environment with strict limits:

  • Memory limits enforced
  • CPU/fuel limits enforced
  • Timeout enforced
  • Capability allowlist (only explicitly granted capabilities)
ConcernPolicy
FilesystemDenied
NetworkDenied
Process spawningDenied
Environment variablesDenied
SecretsDenied
Context readsAllowlisted paths only
OutputStructured JSON only

Wasm modules cannot access the filesystem, network, spawn processes, read environment variables, or access secrets. They can only read allowlisted context paths and return structured JSON output.