calrissian icon indicating copy to clipboard operation
calrissian copied to clipboard

secrets extension not supported in EnvVarRequirement

Open fabricebrito opened this issue 1 year ago • 0 comments

Calrissian version

0.12.0

Current behaviour: Parameter pw is a secret. using it in an EnvVarRequirement with e.g.:

EnvVarRequirement:
        envDef:
          AWS_ACCESS_KEY_ID: $(inputs.pw)

will not take the parameter value.

Expected behaviour

Secret parameter values used for setting environment variables must have the correct value.

To reproduce

$namespaces:
  cwltool: http://commonwl.org/cwltool#

$graph:

- class: Workflow
  id: main
  hints:
    "cwltool:Secrets":
      secrets: [pw]
    DockerRequirement:
      dockerPull: docker.io/debian:stable-slim
  inputs:
    pw: string
  outputs:
    out:
      type: File
      outputSource: step1/out
  steps:
    step1:
      in:
        pw: pw
      out: [out]
      run: 
        "#secret_job"


- class: CommandLineTool
  id: secret_job
  hints:
    "cwltool:Secrets":
      secrets: [pw]
  requirements:
    InitialWorkDirRequirement:
      listing:
      - entryname: stagein.sh
        entry: |-
          #!/bin/bash
          env
    EnvVarRequirement:
        envDef:
          AWS_ACCESS_KEY_ID: $(inputs.pw)
  inputs:
    pw: string
  outputs:
    out: stdout
  baseCommand: ['/bin/bash', 'stagein.sh']

Run with:

calrissian --tmp-outdir-prefix /calrissian-tmp/bbtest/ --outdir /calrissian-output --stdout /calrissian-output/out.json --max-ram 8Gi --max-cores 4 --debug --enable-ext /calrissian-input/secrets.cwl#main --pw aaa

fabricebrito avatar Mar 28 '23 07:03 fabricebrito