add dora-node.yml manifest and a service example dataflow

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.
This commit is contained in:
2026-09-12 11:47:06 -03:00
parent fdabf7e241
commit a2bf59065d
4 changed files with 250 additions and 10 deletions
+30
View File
@@ -0,0 +1,30 @@
# 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.