diff --git a/backend/go-app/codegen.go b/backend/go-app/codegen.go index 8b6c4f0c..48711b1a 100644 --- a/backend/go-app/codegen.go +++ b/backend/go-app/codegen.go @@ -300,6 +300,23 @@ func makePythoncode(swagger *openapi3.Swagger, name, url, method string, paramet urlInline = "{url}" } + // Specific check for SSL verification + // This is critical for onprem stuff. + verifyParam := "" + verifyWrapper := "" + verifyAddin := "" + if len(swagger.Servers) == 0 { + verifyParam = ", verify=True" + verifyWrapper = `if type(ssl_verify) == str: ssl_verify = False if ssl_verify.lower() == "false" or ssl_verify == "0" else True` + verifyAddin = ", verify=ssl_verify" + } else { + if swagger.Servers[0].URL == "" { + verifyParam = ", ssl_verify=True" + verifyWrapper = `if type(ssl_verify) == str: ssl_verify = False if ssl_verify.lower() == "false" or ssl_verify == "0" else True` + verifyAddin = ", verify=ssl_verify" + } + } + if len(parameters) > 0 { parameterData = fmt.Sprintf(", %s", strings.Join(parameters, ", ")) } @@ -334,13 +351,14 @@ func makePythoncode(swagger *openapi3.Swagger, name, url, method string, paramet // Extra param for url if it's changeable // Extra param for authentication scheme(s) - data := fmt.Sprintf(` async def %s(self%s%s%s%s%s): + data := fmt.Sprintf(` async def %s(self%s%s%s%s%s%s): headers={} url=f"%s%s" %s + %s %s %s - return requests.%s(url, headers=headers%s%s).text + return requests.%s(url, headers=headers%s%s%s).text `, functionname, authenticationParameter, @@ -348,16 +366,21 @@ func makePythoncode(swagger *openapi3.Swagger, name, url, method string, paramet parameterData, queryString, bodyParameter, + verifyParam, urlInline, url, + verifyWrapper, authenticationSetup, queryData, bodyFormatter, method, authenticationAddin, bodyAddin, + verifyAddin, ) + log.Printf("CODE: %s", data) + //log.Println(data) //log.Println(functionname) return functionname, data @@ -761,6 +784,32 @@ func handleConnect(swagger *openapi3.Swagger, api WorkflowApp, extraParameters [ optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } + if len(path.Connect.Parameters) > 0 { for _, param := range path.Connect.Parameters { if param.Value.Schema == nil || param.Value.In == "header" { @@ -867,8 +916,33 @@ func handleGet(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wor // FIXME - remove this when authentication is properly introduced parameters := []string{} - optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify the SSL certificate request", + Multiline: false, + Required: false, + Example: "False - default=True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } + if len(path.Get.Parameters) > 0 { for _, param := range path.Get.Parameters { if param.Value.Schema == nil || param.Value.In == "header" { @@ -976,6 +1050,31 @@ func handleHead(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wo optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } if len(path.Head.Parameters) > 0 { for _, param := range path.Head.Parameters { if param.Value.Schema == nil || param.Value.In == "header" { @@ -1081,6 +1180,31 @@ func handleDelete(swagger *openapi3.Swagger, api WorkflowApp, extraParameters [] optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } if len(path.Delete.Parameters) > 0 { for _, param := range path.Delete.Parameters { if param.Value.Schema == nil || param.Value.In == "header" { @@ -1189,6 +1313,31 @@ func handlePost(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wo optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } if len(path.Post.Parameters) > 0 { for _, param := range path.Post.Parameters { @@ -1296,6 +1445,31 @@ func handlePatch(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []W optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } if len(path.Patch.Parameters) > 0 { for _, param := range path.Patch.Parameters { if param.Value.Schema == nil || param.Value.In == "header" { @@ -1401,6 +1575,31 @@ func handlePut(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wor optionalQueries := []string{} parameters := []string{} optionalParameters := []WorkflowAppActionParameter{} + if len(swagger.Servers) == 0 { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } else { + if swagger.Servers[0].URL == "" { + optionalParameters = append(optionalParameters, WorkflowAppActionParameter{ + Name: "ssl_verify", + Description: "Check if you want to verify request", + Multiline: false, + Required: false, + Example: "True", + Schema: SchemaDefinition{ + Type: "string", + }, + }) + } + } if len(path.Put.Parameters) > 0 { for _, param := range path.Put.Parameters { diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go index ef946c42..2f3b6391 100644 --- a/backend/go-app/walkoff.go +++ b/backend/go-app/walkoff.go @@ -1475,7 +1475,6 @@ func saveWorkflow(resp http.ResponseWriter, request *http.Request) { } } - log.Printf("NewActions: %#v", newActions) workflow.Actions = newActions workflow.IsValid = true diff --git a/docker-compose.yml b/docker-compose.yml index 0fbc7c41..c00daf34 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,18 +13,6 @@ services: restart: unless-stopped depends_on: - backend - database: - #build: ./backend/database - image: frikky/shuffle:database - container_name: shuffle-database - hostname: shuffle-database - ports: - - "8000:8000" - networks: - - shuffle - restart: unless-stopped - volumes: - - ${DB_LOCATION}:/etc/shuffle backend: #build: ./backend image: frikky/shuffle:backend @@ -59,6 +47,18 @@ services: - BASE_URL=http://${OUTER_HOSTNAME}:${BACKEND_PORT} - DOCKER_API_VERSION=1.40 restart: unless-stopped + database: + #build: ./backend/database + image: frikky/shuffle:database + container_name: shuffle-database + hostname: shuffle-database + ports: + - "8000:8000" + networks: + - shuffle + restart: unless-stopped + volumes: + - ${DB_LOCATION}:/etc/shuffle networks: shuffle: driver: bridge diff --git a/frontend/src/AngularWorkflow.js b/frontend/src/AngularWorkflow.js index 28feea14..ccb2d3ab 100644 --- a/frontend/src/AngularWorkflow.js +++ b/frontend/src/AngularWorkflow.js @@ -1401,7 +1401,6 @@ const AngularWorkflow = (props) => { display: "flex", } - const paperVariableStyle = { minHeight: "50px", maxHeight: "50px", diff --git a/frontend/src/AppCreator.js b/frontend/src/AppCreator.js index 3a269b5c..690b73ea 100644 --- a/frontend/src/AppCreator.js +++ b/frontend/src/AppCreator.js @@ -67,7 +67,7 @@ const useStyles = makeStyles({ const rewrite = (args) => { return args.reduce(function(args, a){ - if (0 == a.indexOf('-X')) { + if (0 === a.indexOf('-X')) { args.push('-X') args.push(a.slice(2)) } else { @@ -105,35 +105,35 @@ const parseCurl = (s) => { out.url = arg break; - case arg == '-A' || arg == '--user-agent': + case arg === '-A' || arg === '--user-agent': state = 'user-agent' break; - case arg == '-H' || arg == '--header': + case arg === '-H' || arg === '--header': state = 'header' break; - case arg == '-d' || arg == '--data' || arg == '--data-ascii': + case arg === '-d' || arg === '--data' || arg === '--data-ascii': state = 'data' break; - case arg == '-u' || arg == '--user': + case arg === '-u' || arg === '--user': state = 'user' break; - case arg == '-I' || arg == '--head': + case arg === '-I' || arg === '--head': out.method = 'HEAD' break; - case arg == '-X' || arg == '--request': + case arg === '-X' || arg === '--request': state = 'method' break; - case arg == '-b' || arg =='--cookie': + case arg === '-b' || arg === '--cookie': state = 'cookie' break; - case arg == '--compressed': + case arg === '--compressed': out.header['Accept-Encoding'] = out.header['Accept-Encoding'] || 'deflate, gzip' break; @@ -149,7 +149,7 @@ const parseCurl = (s) => { state = '' break; case 'data': - if (out.method == 'GET' || out.method == 'HEAD') out.method = 'POST' + if (out.method === 'GET' || out.method === 'HEAD') out.method = 'POST' out.header['Content-Type'] = out.header['Content-Type'] || 'application/x-www-form-urlencoded' out.body = out.body ? out.body + '&' + arg diff --git a/frontend/src/Apps.js b/frontend/src/Apps.js index c4cd8878..a87bbf4e 100644 --- a/frontend/src/Apps.js +++ b/frontend/src/Apps.js @@ -512,9 +512,9 @@ const Apps = (props) => { } const appView = isLoggedIn ? -
+
1366 ? 1366 : 1200, margin: "auto",}}>
-
+

@@ -532,10 +532,10 @@ const Apps = (props) => {

- +
-
+

Available integrations

{isLoading ? : null}