Skip to content

Commit

Permalink
wes client auth
Browse files Browse the repository at this point in the history
  • Loading branch information
v-rocheleau committed Aug 21, 2023
1 parent 0213c1a commit 217cf8f
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 10 deletions.
13 changes: 9 additions & 4 deletions src/api/mvc/variants/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,6 @@ func VariantsIngest(c echo.Context) error {
cfg := gc.Config
vcfPath := cfg.Api.VcfPath
drsUrl := cfg.Drs.Url
drsUsername := cfg.Drs.Username
drsPassword := cfg.Drs.Password

// query parameters
assemblyId := gc.AssemblyId
Expand Down Expand Up @@ -149,6 +147,13 @@ func VariantsIngest(c echo.Context) error {
}
//

// Authz related
authHeader := c.Request().Header.Get("Authorization")
datasetId := c.QueryParam("dataset")
projectId := c.QueryParam("project")

c.Logger().Debug(authHeader, datasetId)

dirName := c.QueryParam("directory")
if dirName != "" {
if strings.HasPrefix(dirName, cfg.Drs.BridgeDirectory) {
Expand Down Expand Up @@ -353,7 +358,7 @@ func VariantsIngest(c echo.Context) error {

// --- push compressed to DRS
fmt.Printf("Uploading %s to DRS !\n", gzippedFileName)
drsFileId := ingestionService.UploadVcfGzToDrs(cfg, cfg.Drs.BridgeDirectory, gzippedFileName, drsUrl, drsUsername, drsPassword)
drsFileId := ingestionService.UploadVcfGzToDrs(cfg, cfg.Drs.BridgeDirectory, gzippedFileName, drsUrl, projectId, datasetId, authHeader)
if drsFileId == "" {
msg := "Something went wrong: DRS File Id is empty for " + gzippedFileName
fmt.Println(msg)
Expand All @@ -367,7 +372,7 @@ func VariantsIngest(c echo.Context) error {

// -- push tabix to DRS
fmt.Printf("Uploading %s to DRS !\n", tabixFileNameWithRelativePath)
drsTabixFileId := ingestionService.UploadVcfGzToDrs(cfg, cfg.Drs.BridgeDirectory, tabixFileNameWithRelativePath, drsUrl, drsUsername, drsPassword)
drsTabixFileId := ingestionService.UploadVcfGzToDrs(cfg, cfg.Drs.BridgeDirectory, tabixFileNameWithRelativePath, drsUrl, projectId, datasetId, authHeader)
if drsTabixFileId == "" {
msg := "Something went wrong: DRS Tabix File Id is empty for " + tabixFileNameWithRelativePath
fmt.Println(msg)
Expand Down
17 changes: 12 additions & 5 deletions src/api/services/ingestion.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"io/ioutil"
"log"
"net/http"
"net/url"
"os"
"os/exec"
"path"
Expand Down Expand Up @@ -239,13 +240,13 @@ func (i *IngestionService) GenerateTabix(gzippedFilePath string) (string, string
return dir, file, nil
}

func (i *IngestionService) UploadVcfGzToDrs(cfg *models.Config, drsBridgeDirectory string, gzippedFileName string, drsUrl, drsUsername, drsPassword string) string {
func (i *IngestionService) UploadVcfGzToDrs(cfg *models.Config, drsBridgeDirectory string, gzippedFileName string, drsUrl string, project_id, dataset_id string, authHeader string) string {

if cfg.Debug {
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
}

data := fmt.Sprintf("{\"path\": \"%s/%s\"}", drsBridgeDirectory, gzippedFileName)
path := fmt.Sprintf("%s/%s", drsBridgeDirectory, gzippedFileName)

var (
drsId string
Expand All @@ -257,10 +258,16 @@ func (i *IngestionService) UploadVcfGzToDrs(cfg *models.Config, drsBridgeDirecto
)
for {
// prepare upload request to drs
r, _ := http.NewRequest("POST", drsUrl+"/ingest", bytes.NewBufferString(data))
form := url.Values{}
form.Add("path", path)
form.Add("dataset_id", dataset_id)
form.Add("project_id", project_id)
form.Add("data_type", "variant")

r.SetBasicAuth(drsUsername, drsPassword)
r.Header.Add("Content-Type", "application/json")
r, _ := http.NewRequest("POST", drsUrl+"/ingest", strings.NewReader(form.Encode()))

r.Header.Add("Authorization", authHeader)
r.Header.Add("Content-Type", "application/x-www-form-urlencoded")

client := &http.Client{}

Expand Down
4 changes: 3 additions & 1 deletion src/api/workflows/vcf_gz.wdl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ workflow vcf_gz {
input: gohan_url = service_url,
vcf_gz_file_name = file_name,
assembly_id = assembly_id,
project = project_id,
dataset = dataset_id,
filter_out_references = filter_out_references,
access_token = secret__access_token,
Expand All @@ -23,14 +24,15 @@ task vcf_gz_gohan {
String gohan_url
String vcf_gz_file_name
String assembly_id
String project
String dataset
String filter_out_references
String access_token

command {
echo "Using temporary-token : ${access_token}"

QUERY="fileNames=${vcf_gz_file_name}&assemblyId=${assembly_id}&dataset=${dataset}&filterOutReferences=${filter_out_references}"
QUERY="fileNames=${vcf_gz_file_name}&assemblyId=${assembly_id}&dataset=${dataset}&project=${project}&filterOutReferences=${filter_out_references}"
AUTH_HEADER="Authorization: Bearer ${access_token}"

# TODO: refactor
Expand Down

0 comments on commit 217cf8f

Please sign in to comment.