Skip to content

Conversation

@josephjclark
Copy link
Collaborator

Third attempt to set a start key on workflows when loading from app state.

Fixes #1213 I think
Fixes #1204

This turns out to be quite a big deal because basically the handling of start and options just isn't so good.

So changes in this PR:

  • The workflow.json format of { workflow, options } is now considered old hat and legacy
  • Now a workflow.yaml or workflow.json just contains the workflow. No option stuff.
  • A workflow supports a start key as first class citizen
  • When pulling from app state, we set this start key to the trigger (hard coded)
  • Project.yaml and workflow.yaml now have a consistent structure (including options, which I think is never used)

AI Usage

Please disclose how you've used AI in this work (it's cool, we just want to know!):

  • Code generation (copilot but not intellisense)
  • Learning or fact checking
  • Strategy / design
  • Optimisation / refactoring
  • Translation / spellchecking / doc gen
  • Other
  • I have not used AI

You can read more details in our Responsible AI Policy

Release branch checklist

Delete this section if this is not a release PR.

If this IS a release branch:

  • Run pnpm changeset version from root to bump versions
  • Run pnpm install
  • Commit the new version numbers
  • Run pnpm changeset tag to generate tags
  • Push tags git push --tags

Tags may need updating if commits come in after the tags are first generated.

@github-project-automation github-project-automation bot moved this to New Issues in v2 Jan 8, 2026
@josephjclark
Copy link
Collaborator Author

josephjclark commented Jan 8, 2026

Wow I thought this was going to take ages - but I think this is it!

I want to run some manual QA tomorrow with openfnx:

  • Run a { workflow, options } from a workflow.json
  • Run a { workflow, options } from a workflow.yaml
  • Run a (workflow) from a workflow.json
  • Run a (workflow) from a workflow.yaml
  • Respect options.start when it's provided
  • Fetch from the app and run the project: it should start from the correct node

I'll also check what integration tests are like for this stuff

EDIT: I have integration tests for most of this, just a couple of manual tests and we good

@josephjclark josephjclark marked this pull request as ready for review January 8, 2026 18:35
@josephjclark josephjclark changed the title Project start node 3 Include start node when pulling workflows, plus options refactor Jan 9, 2026
@josephjclark josephjclark merged commit b262d10 into release/next Jan 9, 2026
6 checks passed
@josephjclark josephjclark deleted the project-start-node-3 branch January 9, 2026 11:27
@github-project-automation github-project-automation bot moved this from New Issues to Done in v2 Jan 9, 2026
josephjclark added a commit that referenced this pull request Jan 14, 2026
* runtime: update error message

* changeset

* Include start node when pulling workflows, plus options refactor (#1214)

* runtime: support first-class start key

* drop requirement for top level workflow key

* project: refactor support for the start key

* fix tests

* fix an issue where input path isn't parsed correctly

* cli: suppress adaptor warning when running a yaml file

* new tests for running yaml files

* fix more tests

* handle options on a non-nested workflow yaml

* Execute workflow through a project (#1216)

* allow workflow to be executed directly through workspace

* types

* remove default job.js

* changeset

* integration test

* another integration test

* support credentials on workspace config

* remove mock

* project: better handling of start in workflow.yaml

* apply credentials map

* add integration test for execute + credetial map

* fix test

* remove unused test

* format

* go deep on input tests

* throw if workflow not found

* project: fix an issue loading alias for a v1 project

* update v1 integration test

* fix integration test

* better credential map handling

* fix test

It was secretly failing all along

* ensure collections and credential map can both be set

* changesets

* test tweak

* more integration test tweaks

* fix integration tests yet again

Turns out test order is important, so it was passing with .only but failing en masse

* change  v2 test order

* let -> const

* update v2 test

configuration uuids as numbers break things

* yet another test fix

* fix -o alias on output

* versions: cli@1.12.0, worker@1.21.1

* fix output

* add missing diff

* restore  env as an alias

* restore pull --beta

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

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants