dirigent-examples 0.23.4__tar.gz → 0.24.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/PKG-INFO +3 -3
  2. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/pyproject.toml +3 -3
  3. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/pyproject.toml.orig +3 -3
  4. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/README.md +1 -0
  5. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-item-wise.yaml +5 -2
  6. dirigent_examples-0.24.0/src/dirigent_examples/shelves/sources/README.md +17 -0
  7. dirigent_examples-0.24.0/src/dirigent_examples/shelves/sources/echo-by-hand.yaml +41 -0
  8. dirigent_examples-0.24.0/src/dirigent_examples/shelves/sources/greet-by-hand.yaml +50 -0
  9. dirigent_examples-0.24.0/src/dirigent_examples/shelves/sources/signup-form.yaml +48 -0
  10. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/LICENSE +0 -0
  11. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/README.md +0 -0
  12. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/__init__.py +0 -0
  13. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/py.typed +0 -0
  14. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/composition/README.md +0 -0
  15. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/composition/chained-instances.yaml +0 -0
  16. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/composition/composition-child.yaml +0 -0
  17. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/composition/composition-parent.yaml +0 -0
  18. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/connections.yaml +0 -0
  19. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/README.md +0 -0
  20. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/markdown-showcase.yaml +0 -0
  21. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/params-showcase.yaml +0 -0
  22. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/requires.yaml +0 -0
  23. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/weekly-import-malawi.yaml +0 -0
  24. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/demo/weekly-import-nepal.yaml +0 -0
  25. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/README.md +0 -0
  26. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-build-push.yaml +0 -0
  27. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-build-run.yaml +0 -0
  28. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-compose-database.yaml +0 -0
  29. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-compose-failing-up.yaml +0 -0
  30. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-compose-file.yaml +0 -0
  31. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-compose-profiles-env.yaml +0 -0
  32. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-compose-stack.yaml +0 -0
  33. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-hello.yaml +0 -0
  34. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-remote-daemon.yaml +0 -0
  35. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-run-failing-teardown.yaml +0 -0
  36. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/docker/docker-ticker.yaml +0 -0
  37. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/execute/README.md +0 -0
  38. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/execute/long-log.yaml +0 -0
  39. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/README.md +0 -0
  40. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/error-handler.yaml +0 -0
  41. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/fan-out-too-wide.yaml +0 -0
  42. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/optional-step.yaml +0 -0
  43. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/retries.yaml +0 -0
  44. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/retry-budget.yaml +0 -0
  45. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/failure/step-timeout.yaml +0 -0
  46. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/git/README.md +0 -0
  47. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/git/git-checkout-build.yaml +0 -0
  48. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/git/git-checkout-compose.yaml +0 -0
  49. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/git/git-checkout-public.yaml +0 -0
  50. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/README.md +0 -0
  51. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/deep-chain.yaml +0 -0
  52. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/fan-in.yaml +0 -0
  53. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/fan-out.yaml +0 -0
  54. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/linear.yaml +0 -0
  55. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/parallel-branches.yaml +0 -0
  56. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/parallel-sleep.yaml +0 -0
  57. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/skip-diamond.yaml +0 -0
  58. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/graph/wide-fan.yaml +0 -0
  59. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/hello-world.yaml +0 -0
  60. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/README.md +0 -0
  61. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/feeds-composition.yaml +0 -0
  62. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/gdacs-disaster-updates.yaml +0 -0
  63. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/github-releases-relay.yaml +0 -0
  64. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/hdx-dataset-watch.yaml +0 -0
  65. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/kobo-submissions-to-csv.yaml +0 -0
  66. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/nominatim-geocode-facilities.yaml +0 -0
  67. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/odk-central-submissions.yaml +0 -0
  68. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/open-meteo-weekly-report.yaml +0 -0
  69. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/overpass-health-facilities.yaml +0 -0
  70. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/usgs-earthquakes-alert.yaml +0 -0
  71. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/who-gho-indicators-to-parquet.yaml +0 -0
  72. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/wikidata-country-reference.yaml +0 -0
  73. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/open-data/world-bank-population-trend.yaml +0 -0
  74. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/README.md +0 -0
  75. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/concurrency-queue.yaml +0 -0
  76. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/concurrency-replace.yaml +0 -0
  77. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/concurrency-skip.yaml +0 -0
  78. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/connections-referenced-vs-carried.yaml +0 -0
  79. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/deadline-on-a-sensor.yaml +0 -0
  80. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-continue.yaml +0 -0
  81. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-fail-fast.yaml +0 -0
  82. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-from-params.yaml +0 -0
  83. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-late-after-continue.yaml +0 -0
  84. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-late-item-wise.yaml +0 -0
  85. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-literal-list.yaml +0 -0
  86. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-nested-objects.yaml +0 -0
  87. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-over-a-nested-path.yaml +0 -0
  88. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-over-an-empty-listing.yaml +0 -0
  89. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-over-an-output.yaml +0 -0
  90. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/fan-out-then-join.yaml +0 -0
  91. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/importance-critical.yaml +0 -0
  92. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/log-levels.yaml +0 -0
  93. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/outputs-inline-vs-storage.yaml +0 -0
  94. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/params-every-type.yaml +0 -0
  95. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/params-validation-refuses.yaml +0 -0
  96. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/pipeline-run-child.yaml +0 -0
  97. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/pipeline-run-fire-and-forget.yaml +0 -0
  98. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/pipeline-run-strict.yaml +0 -0
  99. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/pipeline-run-wait.yaml +0 -0
  100. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/pipeline-run-with-params.yaml +0 -0
  101. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/poll-cadence.yaml +0 -0
  102. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/priority-layered.yaml +0 -0
  103. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/references-cheat-sheet.yaml +0 -0
  104. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/retry-budget-exhausted.yaml +0 -0
  105. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/retry-exponential-backoff.yaml +0 -0
  106. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/retry-only-transient.yaml +0 -0
  107. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/retry-with-jitter.yaml +0 -0
  108. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/rule-all-done.yaml +0 -0
  109. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/rule-all-success.yaml +0 -0
  110. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/rule-always.yaml +0 -0
  111. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/rule-one-failed.yaml +0 -0
  112. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/schedule-at-once.yaml +0 -0
  113. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/schedule-cron-timezone.yaml +0 -0
  114. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/schedule-interval.yaml +0 -0
  115. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/schedule-window-half-open.yaml +0 -0
  116. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/sensor-http-ready.yaml +0 -0
  117. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/sensor-storage-exists.yaml +0 -0
  118. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/step-names-and-keys.yaml +0 -0
  119. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/timeout-fails-the-step.yaml +0 -0
  120. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/timeout-skips-the-step.yaml +0 -0
  121. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/webhook-mapping-nested-payload.yaml +0 -0
  122. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/patterns/webhook-signed.yaml +0 -0
  123. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/README.md +0 -0
  124. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/a-gate-catching-drift.yaml +0 -0
  125. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/a-page-at-a-time.yaml +0 -0
  126. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/a-stream-to-read.yaml +0 -0
  127. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/generated-rows.yaml +0 -0
  128. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/in-the-middle-of-a-flow.yaml +0 -0
  129. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/retry-that-really-retries.yaml +0 -0
  130. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/playground/waiting-for-a-batch.yaml +0 -0
  131. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/preview/s3-parquet-to-ingestion.yaml +0 -0
  132. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/README.md +0 -0
  133. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/apply_and_run.py +0 -0
  134. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/ci_gate.py +0 -0
  135. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/connections.py +0 -0
  136. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/error_handling.py +0 -0
  137. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/follow_logs.py +0 -0
  138. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/python/list_and_filter.py +0 -0
  139. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/README.md +0 -0
  140. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/kafka-consume-then-transform.yaml +0 -0
  141. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/kafka-produce-then-consume.yaml +0 -0
  142. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/kafka-watch-then-transform.yaml +0 -0
  143. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/rabbitmq-consume-ack-on-success.yaml +0 -0
  144. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/report-to-kafka.yaml +0 -0
  145. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/queues/report-to-rabbitmq.yaml +0 -0
  146. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/README.md +0 -0
  147. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/csv-header-rules.yaml +0 -0
  148. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/csv-to-ndjson.yaml +0 -0
  149. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/etl-csv-clean-validate-parquet.yaml +0 -0
  150. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/filter-by-predicate.yaml +0 -0
  151. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/filter-then-map-then-reduce.yaml +0 -0
  152. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-fetch-validate-post.yaml +0 -0
  153. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-follow-redirects.yaml +0 -0
  154. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-get-with-query.yaml +0 -0
  155. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-headers-and-auth-connection.yaml +0 -0
  156. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-post-file-from-storage.yaml +0 -0
  157. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-post-json-body.yaml +0 -0
  158. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-post-report.yaml +0 -0
  159. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-save-body-to-storage.yaml +0 -0
  160. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-success-status-list.yaml +0 -0
  161. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/http-timeout-override.yaml +0 -0
  162. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-dedupe-by-key.yaml +0 -0
  163. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-defaults-and-nulls.yaml +0 -0
  164. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-group-by-and-sum.yaml +0 -0
  165. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-join-two-lists.yaml +0 -0
  166. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-long-to-wide.yaml +0 -0
  167. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-nested-to-flat.yaml +0 -0
  168. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-pivot-wide-to-long.yaml +0 -0
  169. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-running-totals.yaml +0 -0
  170. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-string-cleaning.yaml +0 -0
  171. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-top-n.yaml +0 -0
  172. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-validate-in-jq-vs-schema.yaml +0 -0
  173. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/jq-window-dates.yaml +0 -0
  174. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/json-to-csv-flattening.yaml +0 -0
  175. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/large-output-to-storage.yaml +0 -0
  176. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/map-enrich-with-lookup.yaml +0 -0
  177. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/ndjson-to-parquet.yaml +0 -0
  178. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/pagination-by-fan-out.yaml +0 -0
  179. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/parquet-round-trip-types.yaml +0 -0
  180. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/reconcile-two-sources.yaml +0 -0
  181. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/report-built-in.yaml +0 -0
  182. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/report-daily-digest.yaml +0 -0
  183. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/report-to-file.yaml +0 -0
  184. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/report-to-webhook.yaml +0 -0
  185. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/schema-carried.yaml +0 -0
  186. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/schema-formats.yaml +0 -0
  187. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/schema-referenced.yaml +0 -0
  188. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/schema-refuses-then-rule.yaml +0 -0
  189. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/storage-copy-dated-archive.yaml +0 -0
  190. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/storage-exists-gate.yaml +0 -0
  191. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/storage-keep-past-the-run.yaml +0 -0
  192. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/storage-manifest-of-a-fan-out.yaml +0 -0
  193. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/storage-write-then-read.yaml +0 -0
  194. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/webhook-post-hmac.yaml +0 -0
  195. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/recipes/webhook-post-summary.yaml +0 -0
  196. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/README.md +0 -0
  197. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/report-to-s3.yaml +0 -0
  198. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/s3-copy-and-verify.yaml +0 -0
  199. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/s3-csv-report.yaml +0 -0
  200. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/s3-parquet-report.yaml +0 -0
  201. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/s3/s3-round-trip.yaml +0 -0
  202. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/schemas/README.md +0 -0
  203. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/schemas/ou-record.json +0 -0
  204. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/schemas/playground-reading.json +0 -0
  205. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/schemas/station-reading.json +0 -0
  206. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sensors/README.md +0 -0
  207. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sensors/sensor-gate.yaml +0 -0
  208. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sensors/time-window.yaml +0 -0
  209. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/showcase/README.md +0 -0
  210. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/showcase/morning-briefing.yaml +0 -0
  211. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/showcase/nightly-regional-load.yaml +0 -0
  212. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/showcase/one-region-refuses.yaml +0 -0
  213. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/README.md +0 -0
  214. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/duckdb-parquet-to-report.yaml +0 -0
  215. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/sql-postgres-readonly.yaml +0 -0
  216. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/sql-query-to-storage.yaml +0 -0
  217. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/sql-sqlite-roundtrip.yaml +0 -0
  218. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/sql/warehouse.sql +0 -0
  219. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/README.md +0 -0
  220. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/csv-report.yaml +0 -0
  221. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/jq-filter-and-map.yaml +0 -0
  222. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/jq-group-and-aggregate.yaml +0 -0
  223. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/jq-join-two-sources.yaml +0 -0
  224. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/jq-reshape.yaml +0 -0
  225. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/jq-stream-through-storage.yaml +0 -0
  226. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/ndjson-round-trip.yaml +0 -0
  227. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/parquet-round-trip.yaml +0 -0
  228. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/std-convert-fan-out.yaml +0 -0
  229. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/xml-feed-to-ndjson.yaml +0 -0
  230. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/transform/yaml-config-to-json.yaml +0 -0
  231. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/README.md +0 -0
  232. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/at-one-time.yaml +0 -0
  233. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/cron-nightly.yaml +0 -0
  234. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/cron-windowed.yaml +0 -0
  235. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/document-nightly.yaml +0 -0
  236. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/interval-rolling.yaml +0 -0
  237. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/managed-and-manual.yaml +0 -0
  238. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/watch-a-sensor.yaml +0 -0
  239. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/watch-fan-out-per-message.yaml +0 -0
  240. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/triggers/webhook-trigger.yaml +0 -0
  241. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/validate/README.md +0 -0
  242. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/validate/expects-a-shape.yaml +0 -0
  243. {dirigent_examples-0.23.4 → dirigent_examples-0.24.0}/src/dirigent_examples/shelves/validate/the-shape-is-wrong.yaml +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirigent-examples
3
- Version: 0.23.4
3
+ Version: 0.24.0
4
4
  Summary: The dirigent example corpus: the shelves of runnable documents, installed.
5
5
  License-Expression: LicenseRef-Proprietary
6
6
  License-File: LICENSE
7
7
  Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Programming Language :: Python :: 3.13
9
- Requires-Dist: dirigent-client==0.23.4
10
- Requires-Dist: dirigent-plugin==0.23.4
9
+ Requires-Dist: dirigent-client==0.24.0
10
+ Requires-Dist: dirigent-plugin==0.24.0
11
11
  Requires-Python: >=3.13
12
12
  Description-Content-Type: text/markdown
13
13
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-examples"
3
- version = "0.23.4"
3
+ version = "0.24.0"
4
4
  description = "The dirigent example corpus: the shelves of runnable documents, installed."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -11,8 +11,8 @@ classifiers = [
11
11
  "Programming Language :: Python :: 3.13",
12
12
  ]
13
13
  dependencies = [
14
- "dirigent-client==0.23.4",
15
- "dirigent-plugin==0.23.4",
14
+ "dirigent-client==0.24.0",
15
+ "dirigent-plugin==0.24.0",
16
16
  ]
17
17
 
18
18
  [project.entry-points."dirigent.plugins.v1"]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-examples"
3
- version = "0.23.4"
3
+ version = "0.24.0"
4
4
  description = "The dirigent example corpus: the shelves of runnable documents, installed."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -12,8 +12,8 @@ classifiers = [
12
12
  ]
13
13
  dependencies = [
14
14
  # The python/ shelf is SDK scripts a reader runs, so the corpus carries the client.
15
- "dirigent-client==0.23.4",
16
- "dirigent-plugin==0.23.4",
15
+ "dirigent-client==0.24.0",
16
+ "dirigent-plugin==0.24.0",
17
17
  ]
18
18
 
19
19
  [project.entry-points."dirigent.plugins.v1"]
@@ -19,6 +19,7 @@ The documents live on topic shelves, each with its own README:
19
19
  | [`transform/`](transform) | The reshaping verbs: jq programs and the `convert.std` codec, no allowlist anywhere. |
20
20
  | [`recipes/`](recipes) | One question per file: how to group, join, pivot, clean, convert, check, store, and call. |
21
21
  | [`triggers/`](triggers) | What starts a run on its own: the three clocks, the inbound webhook, and a watch on a sensor. |
22
+ | [`sources/`](sources) | A pipeline that starts where an input arrives: a source, a reply, and a run entered by hand. |
22
23
  | [`sensors/`](sensors) | Steps that wait for the world: a drop landing, a clock window opening. |
23
24
  | [`queues/`](queues) | A run started by a message: a Kafka topic and a RabbitMQ queue, waited on as sensors. |
24
25
  | [`execute/`](execute) | Code on the worker: a shell step behind the allowlist. |
@@ -10,7 +10,7 @@
10
10
  # item 3 there, ${item} is the same element in both, and ${steps.<name>.item.output} is the
11
11
  # matching item's output.
12
12
  #
13
- # Three things the pairing buys, and one it costs:
13
+ # Four things the pairing buys, and one it costs:
14
14
  #
15
15
  # 1. The width is the adopted grid's. Here that grid comes from params, so it was fixed when
16
16
  # the run was created; adopting a grid read from a step's output expands when that one does.
@@ -18,7 +18,10 @@
18
18
  # across a step that is not waited for would read an item that has not run.
19
19
  # 3. Adoption chains. A third step may map over the second's items and still reach the
20
20
  # first's, because they are all one grid.
21
- # 4. The cost: an item whose match did not succeed is SKIPPED, not failed and not run. Its
21
+ # 4. Each item goes on its own. shape runs under items: continue, so write_one's file for a
22
+ # region is written as soon as that region is shaped, not once every region has been.
23
+ # Under fail_fast the batch stands or falls together, and write_one waits for all of it.
24
+ # 5. The cost: an item whose match did not succeed is SKIPPED, not failed and not run. Its
22
25
  # input never existed, so there is nothing to attempt. The rest of the grid carries on.
23
26
  #
24
27
  # Hop by hop:
@@ -0,0 +1,17 @@
1
+ # Sources
2
+
3
+ A pipeline that starts where an input arrives. A step is one of three things: a block, a
4
+ source, where an input enters and whose output is that input, or a reply, which the server
5
+ renders from the run's outputs to answer whoever sent it.
6
+
7
+ | Document | What it shows |
8
+ | --- | --- |
9
+ | [`echo-by-hand.yaml`](echo-by-hand.yaml) | The smallest pipeline with a source: the input answered straight back. |
10
+ | [`greet-by-hand.yaml`](greet-by-hand.yaml) | A path parameter, a jq step between the source and the reply, and a status of its own. |
11
+ | [`signup-form.yaml`](signup-form.yaml) | A urlencoded form taken, and its caller answered 202 the moment the run exists. |
12
+
13
+ Each runs by hand: `dg run --local` takes the source's `sample`, and `--input` gives one
14
+ instead (`--source` names which source when a pipeline has several). Applied to a server, an
15
+ endpoint is called at its route under `/endpoints` with the token the apply printed, and
16
+ `dg source call` does that for you. A reply that holds its caller until it answers comes next;
17
+ until then every caller is answered 202.
@@ -0,0 +1,41 @@
1
+ # The smallest pipeline with a source: what arrives is answered straight back.
2
+ #
3
+ # A SOURCE IS WHERE AN INPUT ENTERS. `ask` is not a block: it is the pipeline's first node, and
4
+ # a run of the pipeline starts with it already settled, its output the input that arrived. The
5
+ # endpoint kind's input is the request: method, path, query, headers, and the body, which is
6
+ # what `${steps.ask.output.body}` reads.
7
+ #
8
+ # A REPLY IS WHAT THE CALLER IS ANSWERED WITH. `answer` is rendered by the server the moment
9
+ # the steps it depends on have settled; no worker ever claims it. Run by hand, nobody is
10
+ # waiting on the other end, so it renders and records what it would have answered.
11
+ #
12
+ # RUN IT BY HAND, here, with no server. No --input takes the source's sample:
13
+ #
14
+ # dg run --local examples/sources/echo-by-hand.yaml
15
+ # dg run --local examples/sources/echo-by-hand.yaml --input '{body: {said: hi}}'
16
+ #
17
+ # EXPECT THIS RUN TO SUCCEED in well under a second, the reply's body the sample's.
18
+
19
+ format: dirigent/v1
20
+ kind: pipeline
21
+ code: echo-by-hand
22
+ name: Echo, by hand
23
+ description: |
24
+ A source takes an input and a reply answers with it: the smallest pipeline with a source,
25
+ run by hand with its sample or with an input given.
26
+
27
+ tags: [sources]
28
+
29
+ steps:
30
+ ask:
31
+ source:
32
+ kind: endpoint
33
+ path: /echo
34
+ methods: [POST]
35
+ sample:
36
+ body: {said: hello from the sample}
37
+ answer:
38
+ depends_on: [ask]
39
+ reply:
40
+ status: 200
41
+ body: ${steps.ask.output.body}
@@ -0,0 +1,50 @@
1
+ # A request names someone, a step shapes the greeting, and a reply answers with it.
2
+ #
3
+ # THE PATH CARRIES A VALUE. The route `/greet/{name}` fills `path_params.name` from the path a
4
+ # request is made at; run by hand, the input says it outright. The endpoint kind makes a
5
+ # partial input whole -- the method its route declares, the path its template fills, the
6
+ # body's content type and size -- so a sample or an --input says only what matters.
7
+ #
8
+ # BETWEEN THE SOURCE AND THE REPLY IS AN ORDINARY PIPELINE. `shape` is a jq transform like any
9
+ # other, reading the source's output the way any step reads an upstream one, and the reply
10
+ # answers with what it made, under a status of its own.
11
+ #
12
+ # dg run --local examples/sources/greet-by-hand.yaml
13
+ # dg run --local examples/sources/greet-by-hand.yaml --input '{path_params: {name: Bergen}, body: {mood: wet}}'
14
+ #
15
+ # A method the route does not declare is refused before any run exists:
16
+ #
17
+ # dg run --local examples/sources/greet-by-hand.yaml --input '{method: GET}'
18
+ #
19
+ # EXPECT THIS RUN TO SUCCEED in well under a second, answering 201 with the greeting.
20
+
21
+ format: dirigent/v1
22
+ kind: pipeline
23
+ code: greet-by-hand
24
+ name: Greet, by hand
25
+ description: |
26
+ A request names someone in its path, a jq step shapes the greeting, and a reply answers
27
+ 201 with it. Run by hand with the source's sample, or with an input given.
28
+
29
+ tags: [sources, transform, jq, references]
30
+
31
+ steps:
32
+ ask:
33
+ source:
34
+ kind: endpoint
35
+ path: /greet/{name}
36
+ methods: [POST]
37
+ sample:
38
+ path_params: {name: Oslo}
39
+ body: {mood: cheerful}
40
+ shape:
41
+ block: transform.jq
42
+ depends_on: [ask]
43
+ config:
44
+ input: ${steps.ask.output}
45
+ program: '{greeting: ("hello " + .path_params.name), mood: .body.mood}'
46
+ answer:
47
+ depends_on: [shape]
48
+ reply:
49
+ status: 201
50
+ body: ${steps.shape.output.value}
@@ -0,0 +1,48 @@
1
+ # A form posted to this instance becomes a run, and its caller is answered 202 at once.
2
+ #
3
+ # A SOURCE TAKES A FORM AS WELL AS JSON. `signup` narrows its endpoint to urlencoded forms, so
4
+ # a browser's <form method=post> or `curl -d` reaches it and a JSON body is refused 415. The
5
+ # form arrives as `${steps.signup.output.body}`, each field a string, a repeated one a list.
6
+ #
7
+ # NOTHING WAITS FOR THE RUN. There is no reply, so the caller is answered 202 the moment the
8
+ # run exists, with where to read it, and `tidy` runs afterwards on a worker.
9
+ #
10
+ # RUN IT BY HAND, here, with no server. No --input takes the source's sample:
11
+ #
12
+ # dg run --local examples/sources/signup-form.yaml
13
+ #
14
+ # ON A SERVER, apply it and call it with the token the apply printed:
15
+ #
16
+ # dg apply examples/sources/signup-form.yaml
17
+ # dg source call signup-form signup --form email=ada@example.org --form name=Ada --source-token "$TOKEN"
18
+ # curl -d email=ada@example.org -d name=Ada -H "Authorization: Bearer $TOKEN" \
19
+ # http://localhost:3333/endpoints/signups
20
+ #
21
+ # EXPECT THIS RUN TO SUCCEED in well under a second, `tidy` holding the address lowercased.
22
+
23
+ format: dirigent/v1
24
+ kind: pipeline
25
+ code: signup-form
26
+ name: Signup, by form
27
+ description: |
28
+ A urlencoded form posted to an endpoint becomes a run, and its caller is answered 202 with
29
+ where to read it; a jq step tidies what the form carried.
30
+
31
+ tags: [sources, forms, transform, jq]
32
+
33
+ steps:
34
+ signup:
35
+ source:
36
+ kind: endpoint
37
+ path: /signups
38
+ accepts: [application/x-www-form-urlencoded]
39
+ max_body: 4KB
40
+ sample:
41
+ content_type: application/x-www-form-urlencoded
42
+ body: {email: Ada@Example.org, name: Ada}
43
+ tidy:
44
+ block: transform.jq
45
+ depends_on: [signup]
46
+ config:
47
+ input: ${steps.signup.output.body}
48
+ program: '{email: (.email | ascii_downcase), name: .name}'