Skip to content

Entrypoint swaps feature#1063

Draft
keithmanville wants to merge 4 commits intodevfrom
entrypoint-swaps
Draft

Entrypoint swaps feature#1063
keithmanville wants to merge 4 commits intodevfrom
entrypoint-swaps

Conversation

@keithmanville
Copy link
Copy Markdown
Collaborator

@keithmanville keithmanville commented Dec 12, 2025

jtsextonMITRE and others added 3 commits March 10, 2026 16:29
This commit adds a function to the sdk for rendering swappable entrypoint graphs into a task graph
used by the task engine. It also adds a new test suite for the added functionality.
This commit adds a JSON schema for validating swappable task graphs. Tasks graphs with no swaps
specified should still validate.

It adds new tests with example task graphs.
To support entrypoint task swaps, we need to a way to retrieve a dynamic list of global params that
is dependent on which tasks are specified for each swap. This will allow us to notify the user of
any unused global parameters.

The implementation parses an entrypoint graph YAML and cross reference declared global params for
the entrypoint with the dereferenced variable names in the graph YAML.

The new endpoint is at `/entrypoints/{id}/snapshots/{snapshotId}/dynamicGlobalParameters`. It
returns the list of entrypoint params for the snapshot with the provided swaps, the topologically
sorted graph steps, and the list of active plugins.

The Python client has been updated for the new endpoint.

This commit includes tests for the new functionality.
This feature updates the entrypoints swaps schema to add swap name aliases. The aliases are the
key values under a swap definition. The full task definition is then nested under the alias. This
allows tasks to be defined via any of the task invocation methods (e.g. mixed invocation). The alias
of the swap is what is passed to the render function to specify the swap, not the task name.

The json schema is updated to specify swaps. The render function is updated to properly generate
task graphs from the new schema. New tests are added for the other task invocation types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants