The example carried a caveat saying it validated but could not be run, because a `git:` node could not be fetched. The organization is public now, so it can: dora clones dora-webcam at the pinned tag, builds both nodes, and runs them against a real camera to a clean exit. The pin moves to v0.1.1, whose documentation shows the https URL. v0.1.0 points at an ssh:// URL that dora cannot authenticate, so anyone copying the wiring out of that tag would have hit the failure this example exists to demonstrate the absence of. What a `git:` node does require is still recorded, since it is not obvious: anonymous read, which on Gitea means a public organization and not merely a public repository.
41 lines
1.6 KiB
YAML
41 lines
1.6 KiB
YAML
# A real camera into the viewer, and the worked example of wiring this node to
|
|
# something that is not a test fixture.
|
|
#
|
|
# Not run by CI: it needs a camera and it fetches dora-webcam over the network.
|
|
# dataflow.yml is the gate, and needs neither.
|
|
#
|
|
# This needs anonymous read access to the camera's repository. dora-cli 1.0.1
|
|
# fetches through libgit2 with no credential callback, so ssh:// cannot
|
|
# authenticate at all and anything asking for credentials fails with "remote
|
|
# authentication required but no callback set". On Gitea, marking the repository
|
|
# public is not enough: a repository inside a private organization is internal
|
|
# and answers an anonymous clone with 401, so the organization must be public.
|
|
#
|
|
# `strict_types` is deliberately absent. A camera publishes an image and nothing
|
|
# else, and `dora validate --strict` warns about every *typed* input this node
|
|
# declares that a dataflow leaves unwired -- depth, camera_info and text here.
|
|
# The wiring is correct; the strictness is aimed at the self-contained dataflow,
|
|
# which drives all of them.
|
|
|
|
nodes:
|
|
- id: camera
|
|
git: https://gitea.liria.cl/liria/dora-webcam.git
|
|
tag: v0.1.1
|
|
build: uv pip install .
|
|
path: dora-webcam
|
|
inputs:
|
|
tick: dora/timer/millis/33
|
|
outputs:
|
|
- image
|
|
# dora-webcam's own manifest says this, but a `git:` node's manifest is not
|
|
# read at validate time -- only at build. Repeating it here is what makes
|
|
# the two contracts checked against each other now rather than at runtime.
|
|
output_types:
|
|
image: std/media/v1/Image
|
|
|
|
- id: view
|
|
path: dora-image-view
|
|
build: uv pip install .
|
|
inputs:
|
|
image: camera/image
|