Skip to content

feat(engine): forcing default values for schema and rigid dynamic port support#2019

Draft
shunski wants to merge 3 commits into
mainfrom
feat/rigid-dynamic-port-support
Draft

feat(engine): forcing default values for schema and rigid dynamic port support#2019
shunski wants to merge 3 commits into
mainfrom
feat/rigid-dynamic-port-support

Conversation

@shunski
Copy link
Copy Markdown
Contributor

@shunski shunski commented Mar 26, 2026

Overview

The aim of this PR is to let factory's port functions (get_input_ports()/get_output_ports()) to consider the ports that can only be determined at the beginning of runtime (i.e. DAG build time).
To this end we will adapt to the convention that all parameters of action implement the default value for the action schema generation. Assuming this, factory's port functions can now depend on the with parameter for the dynamic ports, and it uses the default values for the schema to fill out the port information during the schema generation.

What I've done

  • Implemented the default schema values for parameter of all actions.
    • Also modified the schema generation CLI so that it panics when the default value is not implemented. This effectively means all PRs in the future fails on CI when some action doesn't implement schema default values.
  • Changed the signature of factory port functions to take the with parameter as an argument, so that the dynamic ports can be reported by these functions.
    • Currently, dynamic ports are used only by OutputRouter and FeatureFilter, so look at their implementation for how dynamic ports are reported by these functions.
    • For the schema generation, the engine passes the default schema values to the factory-port functions.

What I haven't done

How I tested

Screenshot

Which point I want you to review particularly

Memo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant