Pass workflow user ID to the Airflow as part of payload.

This issue was discovered by GC Team when the QA Team was testing a platform. It revolves around triggering workflows and the addition of the User ID into the execution context through the 'x-user-id' header.

Upon further investigation, we came across the(MR) osdu/platform/deployment-and-operations/helm-charts-azure!366 (merged), which appears to implement this logic with a dependency on the infrastructural level.

However, we have to add some kind of validation or additional logic to use a header 'user' in core logic. This adjustment is essential as we might want to use the service without a service mesh or similar infrastructure.

org.opengroup.osdu.workflow.service.WorkflowRunServiceImpl#addUserId

 private Map<String, Object> addUserId(String workflowName, TriggerWorkflowRequest request) {
    final Map<String, Object> executionContext = request.getExecutionContext();

    if (executionContext.get(KEY_USER_ID) != null) {
      String errorMessage = String.format("Request to trigger workflow with name %s failed because execution context contains reserved key 'userId'", workflowName);
      throw new AppException(400, "Failed to trigger workflow run", errorMessage);
    }
    String userId = dpsHeaders.getUserId();
    log.debug("putting user id: " + userId + " in execution context");
    executionContext.put(KEY_USER_ID, userId);
    return executionContext;
  }