Ikanos — Features¶
A comprehensive list of features available in the current Ikanos release (v1.0.0-alpha3). For a use-case oriented view see Use Cases; for what's coming next see the Roadmap.
Consumes (HTTP client side)¶
- HTTP/HTTPS consumption with templated
baseUriand path parameters - Authentication — Bearer, API key (header or query), Basic, Digest, OAuth 2.1 client credentials
- Input parameters in path, query, header, cookie, and body
- Format conversion for non-JSON payloads (XML, Avro, CSV, TSV, PSV, HTML, Markdown, YAML, Protobuf) → JSON
$refshared consumes — factor common API declarations into separate files- JSONPath output mapping with array extraction and nested-path support
Exposes (server side)¶
MCP (type: mcp)¶
- Streamable HTTP and stdio transport
- Tools, Resources, and Prompts
- Tool annotations derived automatically from aggregate
semantics - Mock mode — static
value:or Mustache-templatedvalue:with noconsumes
Skill (type: skill)¶
- Group MCP tools into named skills with descriptions
- Auto-exposed read-only HTTP catalog:
GET /skillsGET /skills/{name}GET /skills/{name}/downloadGET /skills/{name}/contents
REST (type: rest)¶
- Path templating with
{param}placeholders - HTTP verbs (GET, POST, PUT, PATCH, DELETE)
- Input parameters with explicit
in:(path, query, header, cookie, body) - Resource-level forward proxy via
forward.targetNamespace - OpenAPI 3.0/3.1 export
Control (type: control)¶
GET /health— liveness + readinessGET /metrics— Prometheus RED metricsGET /status— runtime diagnostics- OpenTelemetry tracing (OTLP exporter)
Aggregates and orchestration¶
- Aggregates — reusable functions declared once at capability level
ref:from MCP tools and REST operationssemantics:(safe,idempotent,cacheable) → automatic MCPhintsderivationsteps:withtype: callandtype: lookup- In-memory joins via
lookupagainst previous step output - Cross-step variables via
$.<step-name>.<field>JSONPath references - Mustache templates in
value:andwith:blocks
Inline scripting¶
- JavaScript, Python, and Groovy via the GraalVM Polyglot API
- Sandboxed execution (no host filesystem, no network egress unless allow-listed)
- Use cases: light data transformation between steps, computed fields
Binds and secrets¶
- Externalize variables via
bindsblocks - Sources: file, vault, environment variable
- Per-namespace key maps for clear ownership
OpenAPI interoperability¶
- Import —
ikanos import openapi <file>bootstraps aconsumesadapter from any OAS 3.0 or 3.1 document - Export —
ikanos export openapi <capability>emits OAS 3.0 or 3.1 (YAML or JSON) for any RESTexposesadapter - Auth schemes (Bearer, Basic, API key, Digest) are preserved on round-trip
Cloud-native operations¶
- Single, slim Docker image — same image runs every capability
- Health/readiness endpoints suitable for Kubernetes probes
- OpenTelemetry traces with one span per consumed call and one parent span per exposed operation
- Prometheus RED metrics (Rate, Errors, Duration) per adapter and per operation
What's not yet in 1.0.0-alpha3¶
These are tracked in the Roadmap:
- Conditional / for-each / parallel-join orchestration steps
- HTTP client resiliency (circuit breaker, rate limiter, bulkhead)
- Pagination at the consumes layer
- Client SDK generation (TypeScript, Python, Java, Go)
- Webhook, gRPC, and oRPC server adapters