Duo Workflow: correctly handle HTTP headers

Problem

We recently made a change to a Cloud Connector Ruby API that creates HTTP headers for upstream services, where those headers were converted to all-lowercase. This is necessary for HTTP requests to be compliant with both HTTP standards 1.1 and 2.0 since the latter requires header fields to be lower-case and the former is case-insensitive.

However, this change broke the Workflow Executor, which passes HTTP headers the Rails app creates around as input parameters to a workflow execution, and this code was not prepared to deal with header field names in a case-insensitive manner.

To mitigate the immediate issue, we reverted !185072 (merged). However, this change should be reinstated ASAP since this is the right thing to do. We should address this issue in the Language server component instead.

Proposal

  • Address the problem with case-sensitivity between the IDE extension and Rails. This needs to be done in language server (see https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/blob/main/src/node/duo_workflow/desktop_workflow_runner.ts#L402). Language server should be able to handle these headers in a case-insensitive matter.
  • Re-revert !186407 (merged)
Edited Apr 03, 2025 by Halil Coban
Assignee Loading
Time tracking Loading