Skip to content

Support non-editable workflows #72

Closed

Description

@poautran

In GitLab by @woutdenolf on Jan 10, 2026, 17:19 GMT+1:

For several use cases (bes, ewoksid31, ewoksid29, ewoksmx etc.) we are moving towards workflows shipped with the ewoksapps libraries.

Ewoks itself supports for load/execute/show like this

ewoks show "ewoksid29.workflows.ambigator_run" -o representation=json_module

ewoks show "ambigator_run"  -o root_module="ewoksid29.workflows"

ewoks show "ambigator_run" -o representation=json_module -o root_module="ewoksid29.workflows"

In ewoksserver, all workflows as JSON files in the backend and these workflows have an identifier which is the file name as well.

What we would need:

  • Support loading and executing workflows from ewoksapps libraries.
  • Editing of these workflows should not be allowed.
  • Button to discover workflows and workflows discovery on server startup. So very similar to task discovery.

Migrated from GitLab: https://gitlab.esrf.fr/workflow/ewoks/ewoksserver/-/issues/72

Activity

  1. poautran commented on Jan 10, 2026

    @poautran
    MemberAuthor

    In GitLab by @woutdenolf on Jan 10, 2026, 17:23 GMT+1:

    About current workflow identifiers in ewoksserver:

    • workflow identifier is equal to the file name.
    • workflow identifier is equal to the graph attribute id.

    So that's a duplication. For example PUT /workflow/{identifier} takes a JSON workflow and if identifier != workflows["graph"]["id"] that we get a 400 error.

    The id in the graph attribute is used for logging and ewoks events.

    The file names are used to read, delete and list workflows.

  2. poautran commented on Jan 10, 2026

    @poautran
    MemberAuthor

    In GitLab by @woutdenolf on Jan 10, 2026, 17:35 GMT+1:

    The workflow ewoksid29.workflows.ambigator_run has

    • file name ambigator_run.json
    • workflows["graph"]["id"] = workflow_ID29ESRF_ambigator_run

    These are no equal and the scope is the ewoksid29 package. Neither is guaranteed to be unique in the scope of ewoksserver.

    So the question is, what would be the id in the scope of ewoksserver?

    Should we change the way we handle workflow id's in ewoksserver overall and decouple them from graph id's? That could lead to confusion when debugging. Also the id's in the ewoks events need to be the same as the workflow id's in the server I think.

    Ewoksserver could load the workflows instead of letting the worker load them. In that case it could change workflows["graph"]["id"] when executing to the ewoksserver id. To be discussed.

  3. self-assigned this
    on Jul 6, 2026
  4. woutdenolf commented on Jul 6, 2026

    @woutdenolf
    Member

    Discussed with @loichuder : in the first approach everything will be handled in the backend

    • like task discovery, workflow discovery is done by default at startup
    • the frontend will see the "non-editable workflow ids" like any other workflow id
    • when the frontend saves, the backend stores locally which masks the workflow from site-packages
  5. woutdenolf commented on Jul 6, 2026

    @woutdenolf
    Member

    Needs workflow discovery to be exposed by the workers: ewoks-kit/ewoksjob#341.

  6. linked a pull request that will close this issue72 support non editable workflows 2 #254on Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

priority

None yet

progress

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions