Added minor fix to app generation
This commit is contained in:
@@ -2714,6 +2714,8 @@ class AppBase:
|
|||||||
if parameter["name"] == "body":
|
if parameter["name"] == "body":
|
||||||
bodyindex = counter
|
bodyindex = counter
|
||||||
#self.logger.info("PARAM: %s" % parameter)
|
#self.logger.info("PARAM: %s" % parameter)
|
||||||
|
|
||||||
|
# FIXMe: This should also happen after liquid & param parsing..
|
||||||
try:
|
try:
|
||||||
values = parameter["value_replace"]
|
values = parameter["value_replace"]
|
||||||
if values != None:
|
if values != None:
|
||||||
@@ -2721,16 +2723,24 @@ class AppBase:
|
|||||||
for val in values:
|
for val in values:
|
||||||
replace_value = val["value"]
|
replace_value = val["value"]
|
||||||
replace_key = val["key"]
|
replace_key = val["key"]
|
||||||
|
|
||||||
if (val["value"].startswith("{") and val["value"].endswith("}")) or (val["value"].startswith("[") and val["value"].endswith("]")):
|
if (val["value"].startswith("{") and val["value"].endswith("}")) or (val["value"].startswith("[") and val["value"].endswith("]")):
|
||||||
self.logger.info(f"""Trying to parse as JSON: {val["value"]}""")
|
self.logger.info(f"""Trying to parse as JSON: {val["value"]}""")
|
||||||
try:
|
try:
|
||||||
value_replace = json.loads(val["value"])
|
newval = val["value"]
|
||||||
# If it gets here, remove the "" infront and behind the key as well since this is preventing the JSON from being loaded
|
|
||||||
|
# If it gets here, remove the "" infront and behind the key as well
|
||||||
|
# since this is preventing the JSON from being loaded
|
||||||
|
tmpvalue = json.loads(newval)
|
||||||
replace_key = f"\"{replace_key}\""
|
replace_key = f"\"{replace_key}\""
|
||||||
except json.decoder.JSONDecodeError as e:
|
except json.decoder.JSONDecodeError as e:
|
||||||
self.logger.info("Failed JSON replacement for OpenAPI %s", val["key"])
|
self.logger.info("[WARNING] Failed JSON replacement for OpenAPI %s", val["key"])
|
||||||
|
|
||||||
elif val["value"].lower() == "true" or val["value"].lower() == "false":
|
elif val["value"].lower() == "true" or val["value"].lower() == "false":
|
||||||
replace_key = f"\"{replace_key}\""
|
replace_key = f"\"{replace_key}\""
|
||||||
|
else:
|
||||||
|
if "\"" in replace_value and not "\\\"" in replace_value:
|
||||||
|
replace_value = replace_value.replace("\"", "\\\"", -1)
|
||||||
|
|
||||||
action["parameters"][counter]["value"] = action["parameters"][counter]["value"].replace(replace_key, replace_value, 1)
|
action["parameters"][counter]["value"] = action["parameters"][counter]["value"].replace(replace_key, replace_value, 1)
|
||||||
|
|
||||||
@@ -2787,6 +2797,9 @@ class AppBase:
|
|||||||
"exception": f"Value Error: {check}",
|
"exception": f"Value Error: {check}",
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
if parameter["name"] == "body":
|
||||||
|
self.logger.info("[INFO] Should debug field with liquid and other checks as it's BODY: %s" % value)
|
||||||
|
|
||||||
# Custom format for ${name[0,1,2,...]}$
|
# Custom format for ${name[0,1,2,...]}$
|
||||||
#submatch = "([${]{2}([0-9a-zA-Z_-]+)(\[.*\])[}$]{2})"
|
#submatch = "([${]{2}([0-9a-zA-Z_-]+)(\[.*\])[}$]{2})"
|
||||||
#self.logger.info(f"Returnedvalue: {value}")
|
#self.logger.info(f"Returnedvalue: {value}")
|
||||||
@@ -3126,6 +3139,13 @@ class AppBase:
|
|||||||
# FIXME: add this to Multi exec as well.
|
# FIXME: add this to Multi exec as well.
|
||||||
try:
|
try:
|
||||||
for key, value in params.items():
|
for key, value in params.items():
|
||||||
|
if "-" in key:
|
||||||
|
try:
|
||||||
|
newkey = key.replace("-", "_", -1).lower()
|
||||||
|
params[newkey] = params[key]
|
||||||
|
except Exception as e:
|
||||||
|
self.logger.info("[DEBUG] Failed updating key with dash in it: %s" % e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if isinstance(value, str) and ((value.startswith("{") and value.endswith("}")) or (value.startswith("[") and value.endswith("]"))):
|
if isinstance(value, str) and ((value.startswith("{") and value.endswith("}")) or (value.startswith("[") and value.endswith("]"))):
|
||||||
params[key] = json.loads(value)
|
params[key] = json.loads(value)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
### DEFAULT
|
### DEFAULT
|
||||||
NAME=shuffle-app_sdk
|
NAME=shuffle-app_sdk
|
||||||
VERSION=1.0.2
|
VERSION=1.0.4
|
||||||
|
|
||||||
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
|
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
|
||||||
docker build . -f Dockerfile -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION -t ghcr.io/frikky/$NAME:nightly
|
docker build . -f Dockerfile -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION -t ghcr.io/frikky/$NAME:nightly
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module main
|
|||||||
|
|
||||||
go 1.16
|
go 1.16
|
||||||
|
|
||||||
//replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared
|
replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared
|
||||||
|
|
||||||
//replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi
|
//replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi
|
||||||
//replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch
|
//replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch
|
||||||
@@ -24,7 +24,7 @@ require (
|
|||||||
github.com/h2non/filetype v1.1.3
|
github.com/h2non/filetype v1.1.3
|
||||||
github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect
|
github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect
|
||||||
github.com/satori/go.uuid v1.2.0
|
github.com/satori/go.uuid v1.2.0
|
||||||
github.com/shuffle/shuffle-shared v0.2.52
|
github.com/shuffle/shuffle-shared v0.2.53
|
||||||
go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
|
go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
|
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
|
||||||
google.golang.org/api v0.65.0
|
google.golang.org/api v0.65.0
|
||||||
|
|||||||
@@ -91,8 +91,7 @@ const WorkflowPaper = (props) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//console.log("IMG: ", data)
|
//console.log("IMG: ", data)
|
||||||
var parsedUrl = `workflows/${data.objectID}`
|
var parsedUrl = `/workflows/${data.objectID}`
|
||||||
|
|
||||||
if (data.__queryID !== undefined && data.__queryID !== null) {
|
if (data.__queryID !== undefined && data.__queryID !== null) {
|
||||||
parsedUrl += `?queryID=${data.__queryID}`
|
parsedUrl += `?queryID=${data.__queryID}`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,8 +163,8 @@ const data = [
|
|||||||
selector: "node[?isSuggestion]",
|
selector: "node[?isSuggestion]",
|
||||||
css: {
|
css: {
|
||||||
shape: "ellipse",
|
shape: "ellipse",
|
||||||
width: "30px",
|
width: "50px",
|
||||||
height: "30px",
|
height: "50px",
|
||||||
"z-index": "5002",
|
"z-index": "5002",
|
||||||
"font-size": "0px",
|
"font-size": "0px",
|
||||||
border: "1px solid rgba(255,255,255,0.9)",
|
border: "1px solid rgba(255,255,255,0.9)",
|
||||||
|
|||||||
@@ -3752,6 +3752,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
) {
|
) {
|
||||||
cy.getElementById(currentNode.data.id).remove();
|
cy.getElementById(currentNode.data.id).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3892,7 +3893,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
if (parentNode.data("isButton") || parentNode.data("buttonId")) return;
|
if (parentNode.data("isButton") || parentNode.data("buttonId")) return;
|
||||||
|
|
||||||
const px = parentNode.position("x") + 300;
|
const px = parentNode.position("x") + 300;
|
||||||
const py = parentNode.position("y") + 0;
|
const py = parentNode.position("y") + 100;
|
||||||
const circleId = (newNodeId = uuidv4());
|
const circleId = (newNodeId = uuidv4());
|
||||||
|
|
||||||
parentNode.data("circleId", circleId);
|
parentNode.data("circleId", circleId);
|
||||||
@@ -3920,8 +3921,51 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
position: { x: px, y: py },
|
position: { x: px, y: py },
|
||||||
locked: true,
|
locked: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//suggestions[0].id = uuidv4()
|
||||||
|
//cy.add({
|
||||||
|
// group: "nodes",
|
||||||
|
// data: suggestions[0],
|
||||||
|
// position: { x: parentNode.position("x") + 300, y: parentNode.position("y") - 100},
|
||||||
|
// locked: true,
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addDeleteButton2 = (event) => {
|
||||||
|
var parentNode = cy.$("#" + event.target.data("id"));
|
||||||
|
if (parentNode.data("isButton") || parentNode.data("buttonId")) return;
|
||||||
|
|
||||||
|
const px = parentNode.position("x") + 100;
|
||||||
|
const py = parentNode.position("y") + 35;
|
||||||
|
const circleId = (newNodeId = uuidv4());
|
||||||
|
|
||||||
|
parentNode.data("circleId", circleId);
|
||||||
|
|
||||||
|
const iconInfo = {
|
||||||
|
icon: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z",
|
||||||
|
iconColor: buttonColor,
|
||||||
|
iconBackgroundColor: buttonBackgroundColor,
|
||||||
|
};
|
||||||
|
const svg_pin = `<svg width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="${iconInfo.icon}" fill="${iconInfo.iconColor}"></path></svg>`;
|
||||||
|
const svgpin_Url = encodeURI("data:image/svg+xml;utf-8," + svg_pin);
|
||||||
|
|
||||||
|
cy.add({
|
||||||
|
group: "nodes",
|
||||||
|
data: {
|
||||||
|
weight: 30,
|
||||||
|
id: circleId,
|
||||||
|
name: "This is autocomplete",
|
||||||
|
buttonType: "delete",
|
||||||
|
attachedTo: event.target.data("id"),
|
||||||
|
icon: svgpin_Url,
|
||||||
|
iconBackground: iconInfo.iconBackgroundColor,
|
||||||
|
is_valid: true,
|
||||||
|
},
|
||||||
|
position: { x: px, y: py },
|
||||||
|
locked: true,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const addDeleteButton = (event) => {
|
const addDeleteButton = (event) => {
|
||||||
var parentNode = cy.$("#" + event.target.data("id"));
|
var parentNode = cy.$("#" + event.target.data("id"));
|
||||||
if (parentNode.data("isButton") || parentNode.data("buttonId")) return;
|
if (parentNode.data("isButton") || parentNode.data("buttonId")) return;
|
||||||
@@ -3981,12 +4025,19 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
for (var key in allNodes) {
|
for (var key in allNodes) {
|
||||||
const currentNode = allNodes[key];
|
const currentNode = allNodes[key];
|
||||||
if (
|
if (
|
||||||
currentNode.data.isButton &&
|
(currentNode.data.isButton || currentNode.data.isSuggestion) &&
|
||||||
currentNode.data.attachedTo !== nodedata.id
|
currentNode.data.attachedTo !== nodedata.id
|
||||||
) {
|
) {
|
||||||
cy.getElementById(currentNode.data.id).remove();
|
cy.getElementById(currentNode.data.id).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*if (
|
||||||
|
currentNode.data.isSuggestion &&
|
||||||
|
currentNode.data.attachedTo !== nodedata.id
|
||||||
|
) {
|
||||||
|
cy.getElementById(currentNode.data.id).remove();
|
||||||
|
}*/
|
||||||
|
|
||||||
if (
|
if (
|
||||||
currentNode.data.isButton &&
|
currentNode.data.isButton &&
|
||||||
currentNode.data.attachedTo === nodedata.id
|
currentNode.data.attachedTo === nodedata.id
|
||||||
@@ -4007,7 +4058,10 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
addStartnodeButton(event);
|
addStartnodeButton(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//addSuggestionButtons(event)
|
// autocomplete
|
||||||
|
// right click
|
||||||
|
// suggestions
|
||||||
|
//addSuggestionButtons(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5037,7 +5091,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
var thisview = (
|
var thisview = (
|
||||||
<AppView
|
<AppView
|
||||||
allApps={apps}
|
allApps={apps}
|
||||||
extraApps={ExtraApps}
|
extraApps={[]}
|
||||||
prioritizedApps={prioritizedApps}
|
prioritizedApps={prioritizedApps}
|
||||||
filteredApps={filteredApps}
|
filteredApps={filteredApps}
|
||||||
/>
|
/>
|
||||||
@@ -5825,15 +5879,10 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
if (value.length > 0) {
|
if (value.length > 0) {
|
||||||
var newApps = allApps.filter(
|
var newApps = allApps.filter(
|
||||||
(app) =>
|
(app) =>
|
||||||
app.name
|
app.name.toLowerCase().includes(value.trim().toLowerCase())
|
||||||
.toLowerCase()
|
||
|
||||||
.includes(
|
app.description.toLowerCase().includes(value.trim().toLowerCase())
|
||||||
value.trim().toLowerCase() ||
|
)
|
||||||
app.description
|
|
||||||
.toLowerCase()
|
|
||||||
.includes(value.trim().toLowerCase())
|
|
||||||
) && !(!app.activated && app.generated)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Extend search
|
// Extend search
|
||||||
if (newApps.length === 0) {
|
if (newApps.length === 0) {
|
||||||
@@ -6914,7 +6963,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
>
|
>
|
||||||
contains any of
|
contains any of
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem
|
{/*<MenuItem
|
||||||
style={menuItemStyle}
|
style={menuItemStyle}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
conditionValue.value = "matches regex";
|
conditionValue.value = "matches regex";
|
||||||
@@ -6924,7 +6973,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
key={"matches regex"}
|
key={"matches regex"}
|
||||||
>
|
>
|
||||||
matches regex
|
matches regex
|
||||||
</MenuItem>
|
</MenuItem>*/}
|
||||||
<MenuItem
|
<MenuItem
|
||||||
style={menuItemStyle}
|
style={menuItemStyle}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
@@ -10665,11 +10714,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const BottomCytoscapeBar = () => {
|
const BottomCytoscapeBar = () => {
|
||||||
if (
|
if (workflow.id === undefined || workflow.id === null || (!workflow.public && apps.length === 0)) {
|
||||||
workflow.id === undefined ||
|
|
||||||
workflow.id === null ||
|
|
||||||
apps.length === 0
|
|
||||||
) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11333,7 +11378,7 @@ const AngularWorkflow = (defaultprops) => {
|
|||||||
</div>
|
</div>
|
||||||
: null}
|
: null}
|
||||||
|
|
||||||
{userdata.avatar === creatorProfile.github_avatar ?
|
{userdata.avatar === creatorProfile.github_avatar && userdata.avatar !== undefined ?
|
||||||
<div style={{marginTop: 50, }}>
|
<div style={{marginTop: 50, }}>
|
||||||
<Button
|
<Button
|
||||||
color="primary"
|
color="primary"
|
||||||
|
|||||||
@@ -1421,14 +1421,15 @@ const AppCreator = (defaultprops) => {
|
|||||||
//console.log("SECURITYSCHEMES: ", securitySchemes)
|
//console.log("SECURITYSCHEMES: ", securitySchemes)
|
||||||
if (securitySchemes !== undefined) {
|
if (securitySchemes !== undefined) {
|
||||||
console.log("NEWAUTH: ", securitySchemes)
|
console.log("NEWAUTH: ", securitySchemes)
|
||||||
var valueset = false
|
|
||||||
// FIXME: Should add Oauth2 (Microsoft) and JWT (Wazuh)
|
// FIXME: Should add Oauth2 (Microsoft) and JWT (Wazuh)
|
||||||
//console.log("SECURITY: ", securitySchemes)
|
//console.log("SECURITY: ", securitySchemes)
|
||||||
//if (Object.entries(securitySchemes) > 1 &&
|
//if (Object.entries(securitySchemes) > 1 &&
|
||||||
var newauth = [];
|
var newauth = [];
|
||||||
try {
|
try {
|
||||||
|
var optionset = false
|
||||||
for (const [key, value] of Object.entries(securitySchemes)) {
|
for (const [key, value] of Object.entries(securitySchemes)) {
|
||||||
console.log(key, value);
|
console.log(key, value);
|
||||||
|
|
||||||
if (key === "jwt") {
|
if (key === "jwt") {
|
||||||
setAuthenticationOption("JWT");
|
setAuthenticationOption("JWT");
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
@@ -1439,19 +1440,21 @@ const AppCreator = (defaultprops) => {
|
|||||||
value.in.length > 0
|
value.in.length > 0
|
||||||
) {
|
) {
|
||||||
setParameterName(value.in);
|
setParameterName(value.in);
|
||||||
|
optionset = true
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (value.scheme === "bearer") {
|
} else if (value.scheme === "bearer") {
|
||||||
setAuthenticationOption("Bearer auth");
|
setAuthenticationOption("Bearer auth");
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
|
optionset = true
|
||||||
|
|
||||||
} else if (key === "ApiKeyAuth" || key === "Token" || ((value.in === "header" || value.in === "query") && value.name !== undefined)) {
|
} else if (key === "ApiKeyAuth" || key === "Token" || ((value.in === "header" || value.in === "query") && value.name !== undefined)) {
|
||||||
if (authenticationOption === "" || authenticationOption === "No authentication") {
|
//if (optionset === false) {
|
||||||
setAuthenticationOption("API key");
|
// optionset = true
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (valueset === false) {
|
if (optionset === false) {
|
||||||
valueset = true
|
optionset = true
|
||||||
value.in = value.in.charAt(0).toUpperCase() + value.in.slice(1)
|
value.in = value.in.charAt(0).toUpperCase() + value.in.slice(1)
|
||||||
|
|
||||||
setParameterLocation(value.in);
|
setParameterLocation(value.in);
|
||||||
@@ -1461,8 +1464,16 @@ const AppCreator = (defaultprops) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log("PARAM NAME: ", value.name);
|
console.log("PARAM NAME: ", value.name);
|
||||||
|
setAuthenticationOption("API key");
|
||||||
setParameterName(value.name);
|
setParameterName(value.name);
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
|
|
||||||
|
newauth.push({
|
||||||
|
"name": key,
|
||||||
|
"type": value.in.toLowerCase(),
|
||||||
|
"in": value.in.toLowerCase(),
|
||||||
|
"example": "",
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
newauth.push({
|
newauth.push({
|
||||||
"name": key,
|
"name": key,
|
||||||
@@ -1482,15 +1493,18 @@ const AppCreator = (defaultprops) => {
|
|||||||
} else if (value.scheme === "basic") {
|
} else if (value.scheme === "basic") {
|
||||||
setAuthenticationOption("Basic auth");
|
setAuthenticationOption("Basic auth");
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
|
optionset = true
|
||||||
|
|
||||||
} else if (value.scheme === "oauth2") {
|
} else if (value.scheme === "oauth2") {
|
||||||
setAuthenticationOption("Oauth2");
|
setAuthenticationOption("Oauth2");
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
|
optionset = true
|
||||||
|
|
||||||
} else if (value.type === "oauth2" || key === "Oauth2" || key === "Oauth2c" || (key !== undefined && key !== null && key.toLowerCase().includes("oauth2"))) {
|
} else if (value.type === "oauth2" || key === "Oauth2" || key === "Oauth2c" || (key !== undefined && key !== null && key.toLowerCase().includes("oauth2"))) {
|
||||||
//alert.info("Can't handle Oauth2 auth yet.")
|
//alert.info("Can't handle Oauth2 auth yet.")
|
||||||
setAuthenticationOption("Oauth2");
|
setAuthenticationOption("Oauth2");
|
||||||
setAuthenticationRequired(true);
|
setAuthenticationRequired(true);
|
||||||
|
optionset = true
|
||||||
|
|
||||||
//console.log("FLOW-1: ", value)
|
//console.log("FLOW-1: ", value)
|
||||||
const flowkey = value.flow === undefined ? "flows" : "flow";
|
const flowkey = value.flow === undefined ? "flows" : "flow";
|
||||||
@@ -1573,6 +1587,7 @@ const AppCreator = (defaultprops) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newauth.length > 0) {
|
if (newauth.length > 0) {
|
||||||
|
newauth = newauth.filter(data => data.name != "ApiKeyAuth")
|
||||||
setExtraAuth(newauth);
|
setExtraAuth(newauth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1645,9 +1660,9 @@ const AppCreator = (defaultprops) => {
|
|||||||
data.info["contact"] = basedata.info.contact;
|
data.info["contact"] = basedata.info.contact;
|
||||||
} else if (contact === "") {
|
} else if (contact === "") {
|
||||||
data.info["contact"] = {
|
data.info["contact"] = {
|
||||||
name: "@frikkylikeme",
|
name: "@shuffle_platform",
|
||||||
url: "https://twitter.com/frikkylikeme",
|
url: "https://twitter.com/shuffleio",
|
||||||
email: "frikky@shuffler.io",
|
email: "support@shuffler.io",
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
data.info["contact"] = contact;
|
data.info["contact"] = contact;
|
||||||
|
|||||||
Reference in New Issue
Block a user