Workflows on data

To make speckle more centralized and allow it to be the central point of information, workflows would be a great addition.
This also allows for the ‘tester/reviewer’ role to be more prominent in the process.
The outcome of the workflow would allow for status on elements, or metadata on commits/streams to change ?or handover to be done?.

Hey @Dickels112 , interesing idea; what would be the anatomy of a workflow? How do you see them work inside Speckle?

@teocomi So we can have multiple scenarios. to keep it simple, I will split it in 2 groups:

  1. changing metadata on a ‘version’/‘commit’ (easiest one)
  2. changing metadata on elements inside a ‘version’/‘commit’

Generally, the anatomy would always be the same, but the outcome might differ:

  • Open a model version in the speckle viewer (online)
  • Push the model version in a workflow
  • Allow the reviewer to do the review and assign status
  • Finish the workflow with ‘actions upon finish’

for scenario 1 the ‘action upon finish’ could mean: Changing the version metadata a major revision, changing the status to ‘shared’

for scenario 2, the ‘action upon finish’ could mean: Updating object status (changing ‘suitability’) and adding a new ‘version’ to the model(stream).

1 Like

Gotcha, thanks for clarifying!

Sounds like an approval/revision system (GitHub PR flow comes to mind) and maybe with the possibility of tagging versions as “releases”.

Would be a great addition, ideally timed with support for issues :slight_smile:

1 Like

Yes, that would fit the best. Personally I would have the status then be in line with ISO19650 (by default ‘WIP’, and then the option to be ‘Shared’ and ‘Published’)

1 Like

Per your previous discussions. This should be simply per-commit or more complicated per-object or both?

2 Likes

So eventually you would want to manage everything per object, as it allows for more flexibility. This, however, is a somewhat complex procedure as it requires baselining of objects, and possibly ‘locking’ during review. so to start, I would suggest to have it per commit first, and then see how the data model can evolve via objects. The main structure of Speckle a.t.m. is commit/version based anyway