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:
- Local development where the executor is being developed and compiled locally
- 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.