Allow configuring the URL of the Duo Workflow Executor binary

What does this MR do and why?

This is part of the Duo Workflow feature. At present there is a binary called the duo-workflow-executor that is downloaded on local VS Code installations as well as in CI jobs to work as the execution engine for workflows. The binary is developed in https://gitlab.com/gitlab-org/duo-workflow/duo-workflow-executor . Right now the URL to download the binary is hard-coded in the language server code for VS Code.

Since the language server is already fetching other details (such as the URL for Duo Workflow Service) from the direct_access API it also seems reaonable to fetch this binary URL from there as well.

This change is motivated by gitlab-org/duo-workflow/duo-workflow-executor#11 (closed) . The idea is that we will want to serve the duo-workflow-executor binary from the GitLab instance itself in at least the following cases:

  1. Local development where the executor is being developed and compiled locally
  2. Self-managed air-gapped environments

With this change we can update the executor_binary_url to be a URL served by GitLab. Then we can put that binary in a public/assets directory in the GitLab instance so it can just be downloaded like a normal asset. The GDK side of this work is being done in gitlab-development-kit!3956 (merged) .

One downside of relying on this URL from GitLab is that it may take longer to update that releasing an update to the VS Code plugin. But even if we find ourselves needing to rush out an update we still have the option later of ignoring this URL from the GitLab instance so it seems like a low risk decision to make now.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

Edited by Dylan Griffith

Merge request reports

Loading