Skip to content

Tutorial: Order Fulfillment Chain

This fixture is the multi-service SaaS release demo. It fetches customer and inventory records, then creates a sandbox fulfillment order from reviewed request mappings. It demonstrates cross-service data flow, mixed credential binding names, side-effect review, approval JSON, and trusted-runner dry-run evidence.

Fixture path:

examples/eval/order-fulfillment-chain/project.md
examples/eval/order-fulfillment-chain/openapi/customers.yaml
examples/eval/order-fulfillment-chain/openapi/inventory.yaml
examples/eval/order-fulfillment-chain/openapi/orders.yaml
examples/eval/order-fulfillment-chain/reference/intent.hcl

Provider-Free Artifact Loop

For release evidence, run this tutorial in an ignored workdir and build from the checked-in reference intent:

export DEMO_ROOT=.openudon-run/order-fulfillment-tutorial
rm -rf "$DEMO_ROOT"
mkdir -p "$DEMO_ROOT/approvals"
cp -R examples/eval/order-fulfillment-chain "$DEMO_ROOT/order-fulfillment-chain"
mkdir -p "$DEMO_ROOT/order-fulfillment-chain/workflows"
cp "$DEMO_ROOT/order-fulfillment-chain/reference/intent.hcl" \
  "$DEMO_ROOT/order-fulfillment-chain/workflows/intent.hcl"

go run ./cmd/openudon build --example "$DEMO_ROOT/order-fulfillment-chain"
go run ./cmd/openudon assess --example "$DEMO_ROOT/order-fulfillment-chain"

Inspect:

.openudon-run/order-fulfillment-tutorial/order-fulfillment-chain/expected/plan.md
.openudon-run/order-fulfillment-tutorial/order-fulfillment-chain/expected/quality.md
.openudon-run/order-fulfillment-tutorial/order-fulfillment-chain/expected/review.md
.openudon-run/order-fulfillment-tutorial/order-fulfillment-chain/expected/review-handoff.json

The plan should show get_customer and check_inventory feeding create_fulfillment_order. Review evidence should list customers_bearer_token, inventory_api_key, and orders_bearer_token as symbolic bindings only.

Approval Dry Run

Create sandbox approval from the current ignored workdir package, then dry-run the trusted handoff:

go run ./cmd/openudon approval-template \
  --example "$DEMO_ROOT/order-fulfillment-chain" \
  --state approved_for_sandbox \
  --reviewer "Reviewer Name" \
  > "$DEMO_ROOT/approvals/order-fulfillment-chain.json"

go run ./cmd/openudon run \
  --example "$DEMO_ROOT/order-fulfillment-chain" \
  --tier sandbox \
  --approval "$DEMO_ROOT/approvals/order-fulfillment-chain.json" \
  --workdir "$DEMO_ROOT/workdir-order-fulfillment-chain" \
  --dry-run

The dry run checks approval, digest, quality, handoff policy, credential-value policy, and tier compatibility. It does not contact customers, inventory, fulfillment, n8n, desired-state engines, external orchestration, or udon.

Remove --dry-run only in a trusted operator environment with sandbox targets, reviewed credential bindings, and a configured OPENUDON_EXECUTOR.