diff --git a/backend/Dockerfile b/backend/Dockerfile index 5d7c484d..c3e3ee87 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -13,10 +13,6 @@ ADD ./go-app/go.mod /app # Required files for code generation ADD ./app_sdk/app_base.py /app_sdk -ADD ./app_sdk_kali/app_base.py /app_sdk_kali -ADD ./app_sdk_kali/static_baseline.py /app_sdk_kali -ADD ./app_sdk_blackarch/app_base.py /app_sdk_blackarch -ADD ./app_sdk_blackarch/static_baseline.py /app_sdk_blackarch ADD ./app_gen /app_gen RUN go get -v @@ -31,8 +27,6 @@ FROM alpine:3.12 COPY --from=builder /app/ /app COPY --from=builder /app_sdk/ /app_sdk -COPY --from=builder /app_sdk_kali/ /app_sdk_kali -COPY --from=builder /app_sdk_blackarch/ /app_sdk_blackarch COPY --from=builder /app_gen/ /app_gen COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt diff --git a/backend/go-app/docker.go b/backend/go-app/docker.go index a4101b61..cf260598 100644 --- a/backend/go-app/docker.go +++ b/backend/go-app/docker.go @@ -220,19 +220,18 @@ func buildImageMemory(fs billy.Filesystem, tags []string, dockerfileFolder strin // docker build --build-arg http_proxy=http://my.proxy.url // Attempt at setting name according to #359: https://github.com/frikky/Shuffle/issues/359 labels := map[string]string{} - target := "" - if len(tags) > 0 { - if strings.Contains(tags[0], ":") { - version := strings.Split(tags[0], ":") - if len(version) == 2 { - target = fmt.Sprintf("shuffle-build-%s", version[1]) - tags = append(tags, target) - labels["name"] = target - } - } - } + //target := "" + //if len(tags) > 0 { + // if strings.Contains(tags[0], ":") { + // version := strings.Split(tags[0], ":") + // if len(version) == 2 { + // target = fmt.Sprintf("shuffle-build-%s", version[1]) + // tags = append(tags, target) + // labels["name"] = target + // } + // } + //} - _ = labels buildOptions := types.ImageBuildOptions{ Remove: true, Tags: tags, diff --git a/backend/go-app/go.mod b/backend/go-app/go.mod index fcc25a96..05370617 100644 --- a/backend/go-app/go.mod +++ b/backend/go-app/go.mod @@ -2,7 +2,7 @@ module shuffle go 1.13 -replace github.com/frikky/shuffle-shared => ../../../../git/shuffle-shared +//replace github.com/frikky/shuffle-shared => ../../../../git/shuffle-shared //replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi @@ -22,7 +22,7 @@ require ( github.com/docker/go-units v0.4.0 // indirect github.com/elastic/go-elasticsearch/v7 v7.13.1 // indirect github.com/frikky/kin-openapi v0.39.0 - github.com/frikky/shuffle-shared v0.0.69 + github.com/frikky/shuffle-shared v0.0.71 github.com/fsouza/go-dockerclient v1.7.2 github.com/ghodss/yaml v1.0.0 github.com/go-git/go-billy/v5 v5.0.0 diff --git a/backend/go-app/main.go b/backend/go-app/main.go index 825a20bb..7d3e7cdb 100644 --- a/backend/go-app/main.go +++ b/backend/go-app/main.go @@ -5304,8 +5304,8 @@ func migrateDatabase(resp http.ResponseWriter, request *http.Request) { } ctx := context.Background() - es := shuffle.GetEsConfig() - _, err := shuffle.RunInit(*dbclient, *es, storage.Client{}, gceProject, "onprem", false, "") + //es := shuffle.GetEsConfig() + _, err := shuffle.RunInit(*dbclient, storage.Client{}, gceProject, "onprem", false, "") if err != nil { log.Printf("[WARNING] Failed to start migration because of init issues: %s", err) resp.WriteHeader(401) @@ -5387,7 +5387,7 @@ func migrateDatabase(resp http.ResponseWriter, request *http.Request) { envSuccess := 0 hookSuccess := 0 scheduleSuccess := 0 - _, err = shuffle.RunInit(*dbclient, *es, storage.Client{}, gceProject, "onprem", false, "elasticsearch") + _, err = shuffle.RunInit(*dbclient, storage.Client{}, gceProject, "onprem", false, "elasticsearch") for _, item := range orgs { err = shuffle.SetOrg(ctx, item, item.Id) @@ -5668,14 +5668,14 @@ func initHandlers() { log.Fatalf("[DEBUG] Database client error during init: %s", err) } - es := shuffle.GetEsConfig() + //es := shuffle.GetEsConfig() elasticConfig := "elasticsearch" if strings.ToLower(os.Getenv("SHUFFLE_ELASTIC")) == "false" { elasticConfig = "" } for { - _, err = shuffle.RunInit(*dbclient, *es, storage.Client{}, gceProject, "onprem", true, elasticConfig) + _, err = shuffle.RunInit(*dbclient, storage.Client{}, gceProject, "onprem", true, elasticConfig) if err != nil { log.Printf("[ERROR] Error in initial database connection. Retrying in 5 seconds. %s", err) time.Sleep(5 * time.Second) diff --git a/docker-compose.yml b/docker-compose.yml index 78e6ae61..26dfad03 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: depends_on: - backend backend: - #build: ./backend + build: ./backend image: ghcr.io/frikky/shuffle-backend:nightly container_name: shuffle-backend hostname: ${BACKEND_HOSTNAME} diff --git a/frontend/src/views/Admin.jsx b/frontend/src/views/Admin.jsx index f32040fb..b1244b51 100644 --- a/frontend/src/views/Admin.jsx +++ b/frontend/src/views/Admin.jsx @@ -559,19 +559,19 @@ const Admin = (props) => { } // Horrible frontend fix for environments - const setDefaultEnvironment = (name) => { - // FIXME - add some check here ROFL - alert.info("Setting default env to " + name) + const setDefaultEnvironment = (environment) => { + // FIXME - add more checks to this + alert.info("Setting default env to " + environment.name) var newEnv = [] for (var key in environments) { - if (environments[key].Name == name) { + if (environments[key].id == environment.id) { if (environments[key].archived) { alert.error("Can't set archived to default") return } environments[key].default = true - } else if (environments[key].default == true && environments[key].name !== name) { + } else if (environments[key].default == true && environments[key].id !== environment.id) { environments[key].default = false } @@ -592,11 +592,15 @@ const Admin = (props) => { response.json().then(responseJson => { if (responseJson["success"] === false) { alert.error(responseJson.reason) - getEnvironments() + setTimeout(() => { + getEnvironments() + }, 1500) } else { setLoginInfo("") setModalOpen(false) - getEnvironments() + setTimeout(() => { + getEnvironments() + }, 1500) } }), ) @@ -632,23 +636,46 @@ const Admin = (props) => { }) } - const deleteEnvironment = (name) => { + const deleteEnvironment = (environment) => { // FIXME - add some check here ROFL - alert.info("Deleting environment " + name) + //const name = environment.name + + //alert.info("Modifying environment " + name) + //var newEnv = [] + //for (var key in environments) { + // if (environments[key].Name == name) { + // if (environments[key].default) { + // alert.error("Can't modify the default environment") + // return + // } + + // if (environments[key].type === "cloud" && !environments[key].archived) { + // alert.error("Can't modify cloud environments") + // return + // } + + // environments[key].archived = !environments[key].archived + // } + + // newEnv.push(environments[key]) + //} + const id = environment.id + + alert.info("Modifying environment " + environment.name) var newEnv = [] for (var key in environments) { - if (environments[key].Name == name) { + if (environments[key].id == id) { if (environments[key].default) { - alert.error("Can't delete the default environment") + alert.error("Can't modify the default environment") return } - if (environments[key].type === "cloud") { - alert.error("Can't delete the cloud environments") + if (environments[key].type === "cloud" && !environments[key].archived) { + alert.error("Can't modify cloud environments") return } - environments[key].archived = true + environments[key].archived = !environments[key].archived } newEnv.push(environments[key]) @@ -2489,7 +2516,7 @@ const Admin = (props) => {

Environments

- Decides what Orborus environment to execute an action in a workflow in.Learn more + Decides what Orborus environment to execute an action in a workflow in. Learn more
+ } - + {/**/} { > {subworkflow.actions.map((action, index) => { //console.log(action) + const isParent = getParents(selectedTrigger).find(parent => parent.id === action.id) return ( - parent.id === action.id) ? "red" : "white"}} value={action}> + {action.label} )