The manifest is the only contract a consumer has, since no source package is shared between node repositories, and dora validate checks a dataflow against it without running the node — so CI needs no robot. request and response are deliberately untyped. They carry request_id, and dora defines that as the marker for a pattern-correlated port where several Arrow schemas legitimately flow, one per service; the runtime skips type checks on those messages, so annotating them would claim a contract neither side keeps. examples/ carries its own manifest because dora resolves a node's manifest by walking up from its path, and a manifest applies only when <manifest dir>/<entrypoint> names the same file as the dataflow's path. Without it the example caller would be matched against the arm node's manifest and strict validation would fail on the entrypoint mismatch.
31 lines
1.0 KiB
YAML
31 lines
1.0 KiB
YAML
# Manifest for the example caller, so `dora validate` matches it against this
|
|
# node rather than against the arm node's manifest at the repository root —
|
|
# dora resolves a node's manifest from its path, and without this the caller
|
|
# would be checked against an entrypoint it does not have.
|
|
apiVersion: 1
|
|
name: caller
|
|
namespace: liria
|
|
description: Example caller showing a non-blocking motion followed on motion_state, then preempted
|
|
categories: [debug]
|
|
|
|
runtime: python
|
|
# Resolved against this manifest's own directory: <manifest dir>/<entrypoint>
|
|
# must name the same file as the dataflow's `path:`.
|
|
entrypoint: caller.py
|
|
|
|
inputs:
|
|
tick:
|
|
type: std/core/v1/UInt64
|
|
required: true
|
|
description: Sends the first motion on the first tick.
|
|
response:
|
|
required: true
|
|
description: The answer to a request, under its request_id.
|
|
motion_state:
|
|
required: true
|
|
description: Where the current motion stands, which is how a non-blocking caller follows it.
|
|
|
|
outputs:
|
|
request:
|
|
description: A service request, carrying a request_id in its metadata.
|