diff --git a/drip/api.gen.go b/drip/api.gen.go index a059d45..a6af079 100644 --- a/drip/api.gen.go +++ b/drip/api.gen.go @@ -2428,15 +2428,6 @@ func (response CreateComfyNodes404JSONResponse) VisitCreateComfyNodesResponse(w return json.NewEncoder(w).Encode(response) } -type CreateComfyNodes409JSONResponse ErrorResponse - -func (response CreateComfyNodes409JSONResponse) VisitCreateComfyNodesResponse(w http.ResponseWriter) error { - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(409) - - return json.NewEncoder(w).Encode(response) -} - type CreateComfyNodes500JSONResponse ErrorResponse func (response CreateComfyNodes500JSONResponse) VisitCreateComfyNodesResponse(w http.ResponseWriter) error { @@ -4874,110 +4865,109 @@ func (sh *strictHandler) GetWorkflowResult(ctx echo.Context, workflowResultId st // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "wQAA", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/go.sum b/go.sum index b13e6a2..c08c66d 100644 --- a/go.sum +++ b/go.sum @@ -199,8 +199,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= @@ -221,8 +219,6 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= @@ -251,10 +247,6 @@ github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= diff --git a/infrastructure/prod/main.tf b/infrastructure/prod/main.tf index 1503f04..f181852 100644 --- a/infrastructure/prod/main.tf +++ b/infrastructure/prod/main.tf @@ -13,7 +13,7 @@ provider "google" { } module "node_pack_extract_trigger" { - source = "../modules/node-pack-extract-trigger" + source = "../modules/node-pack-extract-trigger" providers = { google = google } @@ -23,5 +23,4 @@ module "node_pack_extract_trigger" { cloud_build_service_account = "cloud-scheduler@dreamboothy.iam.gserviceaccount.com" topic_name = "comfy-registry-event" registry_backend_url = "https://api.comfy.org" - backfill_job_name = "comfy-node-pack-backfill" } diff --git a/infrastructure/staging/main.tf b/infrastructure/staging/main.tf index 29c17b4..9db9187 100644 --- a/infrastructure/staging/main.tf +++ b/infrastructure/staging/main.tf @@ -13,7 +13,7 @@ provider "google" { } module "node_pack_extract_trigger" { - source = "../modules/node-pack-extract-trigger" + source = "../modules/node-pack-extract-trigger" providers = { google = google } @@ -23,5 +23,4 @@ module "node_pack_extract_trigger" { cloud_build_service_account = "cloud-scheduler@dreamboothy.iam.gserviceaccount.com" topic_name = "comfy-registry-event-staging" registry_backend_url = "https://stagingapi.comfy.org" - backfill_job_name = "comfy-node-pack-backfill-staging" } diff --git a/integration-tests/registry_integration_test.go b/integration-tests/registry_integration_test.go index caffa77..9cb0172 100644 --- a/integration-tests/registry_integration_test.go +++ b/integration-tests/registry_integration_test.go @@ -976,17 +976,6 @@ func TestRegistryComfyNode(t *testing.T) { } }) - t.Run("Conflict", func(t *testing.T) { - body := drip.CreateComfyNodesJSONRequestBody(comfyNodes) - res, err := withMiddleware(authz, impl.CreateComfyNodes)(ctx, drip.CreateComfyNodesRequestObject{ - NodeId: *node.Id, - Version: *nodeVersion.Version, - Body: &body, - }) - require.NoError(t, err) - require.IsType(t, drip.CreateComfyNodes409JSONResponse{}, res) - }) - t.Run("GetNodeVersion", func(t *testing.T) { res, err := withMiddleware(authz, impl.GetNodeVersion)(ctx, drip.GetNodeVersionRequestObject{ NodeId: *node.Id, diff --git a/node-pack-extract/cloudbuild.yaml b/node-pack-extract/cloudbuild.yaml index 4df866f..7c156ea 100644 --- a/node-pack-extract/cloudbuild.yaml +++ b/node-pack-extract/cloudbuild.yaml @@ -27,8 +27,8 @@ steps: - -c - gcloud auth print-identity-token --audiences="$_REGISTRY_BACKEND_URL" | tee /workspace/token - - name: "gcr.io/cloud-builders/curl" - entrypoint: "bash" + - name: "curlimages/curl" + entrypoint: "sh" args: - -c - | diff --git a/openapi.yml b/openapi.yml index df240cd..36bbc3f 100644 --- a/openapi.yml +++ b/openapi.yml @@ -1803,12 +1803,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - '409': - description: Existing Comfy Nodes exists - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: diff --git a/server/implementation/registry.go b/server/implementation/registry.go index d448102..3ffc37b 100644 --- a/server/implementation/registry.go +++ b/server/implementation/registry.go @@ -2,7 +2,6 @@ package implementation import ( "context" - "errors" "registry-backend/drip" "registry-backend/ent" "registry-backend/ent/publisher" @@ -727,12 +726,6 @@ func (s *DripStrictServerImplementation) InstallNode( // Install node version if request.Params.Version == nil { - s.MixpanelService.Track(ctx, []*mixpanel.Event{ - s.MixpanelService.NewEvent("Install Node", "", map[string]any{ - "Node ID": request.NodeId, - "Version": "latest", - }), - }) nodeVersion, err := s.RegistryService.GetLatestNodeVersion(ctx, s.Client, request.NodeId) if err == nil && nodeVersion == nil { log.Ctx(ctx).Error().Msgf("Latest node version not found") @@ -743,19 +736,22 @@ func (s *DripStrictServerImplementation) InstallNode( log.Ctx(ctx).Error().Msgf("Error retrieving latest node version w/ err: %v", err) return drip.InstallNode500JSONResponse{Message: errMessage}, err } - - _, err = s.RegistryService.RecordNodeInstallation(ctx, s.Client, node) + _, err = s.RegistryService.RecordNodeInstalation(ctx, s.Client, node) if err != nil { errMessage := "Failed to get increment number of node version install: " + err.Error() log.Ctx(ctx).Error().Msgf("Error incrementing number of latest node version install w/ err: %v", err) return drip.InstallNode500JSONResponse{Message: errMessage}, err } - + s.MixpanelService.Track(ctx, []*mixpanel.Event{ + s.MixpanelService.NewEvent("Install Node Latest", "", map[string]any{ + "Node ID": request.NodeId, + "Version": nodeVersion.Version, + }), + }) return drip.InstallNode200JSONResponse( *mapper.DbNodeVersionToApiNodeVersion(nodeVersion), ), nil } else { - nodeVersion, err := s.RegistryService.GetNodeVersionByVersion(ctx, s.Client, request.NodeId, *request.Params.Version) if ent.IsNotFound(err) { log.Ctx(ctx).Error().Msgf("Error retrieving node version w/ err: %v", err) @@ -766,18 +762,18 @@ func (s *DripStrictServerImplementation) InstallNode( log.Ctx(ctx).Error().Msgf("Error retrieving node version w/ err: %v", err) return drip.InstallNode500JSONResponse{Message: errMessage}, err } - s.MixpanelService.Track(ctx, []*mixpanel.Event{ - s.MixpanelService.NewEvent("Install Node", "", map[string]any{ - "Node ID": request.NodeId, - "Version": request.Params.Version, - }), - }) - _, err = s.RegistryService.RecordNodeInstallation(ctx, s.Client, node) + _, err = s.RegistryService.RecordNodeInstalation(ctx, s.Client, node) if err != nil { errMessage := "Failed to get increment number of node version install: " + err.Error() log.Ctx(ctx).Error().Msgf("Error incrementing number of latest node version install w/ err: %v", err) return drip.InstallNode500JSONResponse{Message: errMessage}, err } + s.MixpanelService.Track(ctx, []*mixpanel.Event{ + s.MixpanelService.NewEvent("Install Node", "", map[string]any{ + "Node ID": request.NodeId, + "Version": nodeVersion.Version, + }), + }) return drip.InstallNode200JSONResponse( *mapper.DbNodeVersionToApiNodeVersion(nodeVersion), ), nil @@ -1027,10 +1023,6 @@ func (impl *DripStrictServerImplementation) CreateComfyNodes(ctx context.Context log.Ctx(ctx).Error().Msgf("Node or node version not found w/ err: %v", err) return drip.CreateComfyNodes404JSONResponse{Message: "Node or node version not found", Error: err.Error()}, nil } - if errors.Is(err, drip_services.ErrComfyNodesAlreadyExist) { - log.Ctx(ctx).Error().Msgf("Comfy nodes for %s %s exist", request.NodeId, request.Version) - return drip.CreateComfyNodes409JSONResponse{Message: "Comfy nodes already exist", Error: err.Error()}, nil - } if err != nil { log.Ctx(ctx).Error().Msgf("Failed to create comfy nodes w/ err: %v", err) return drip.CreateComfyNodes500JSONResponse{Message: "Failed to create comfy nodes", Error: err.Error()}, nil diff --git a/server/middleware/authentication/firebase_auth.go b/server/middleware/authentication/firebase_auth.go index 0fd4ba6..139f1b4 100644 --- a/server/middleware/authentication/firebase_auth.go +++ b/server/middleware/authentication/firebase_auth.go @@ -44,7 +44,6 @@ func FirebaseAuthMiddleware(entClient *ent.Client) echo.MiddlewareFunc { regexp.MustCompile(`^/publishers/[^/]+/nodes/[^/]+/ban$`): {"POST"}, regexp.MustCompile(`^/nodes/[^/]+/versions/[^/]+/comfy-nodes$`): {"POST"}, regexp.MustCompile(`^/nodes/[^/]+/versions/[^/]+/comfy-nodes/[^/]+$`): {"GET"}, - regexp.MustCompile(`^/comfy-nodes/backfill$`): {"POST"}, } return func(next echo.HandlerFunc) echo.HandlerFunc { diff --git a/services/registry/registry_svc.go b/services/registry/registry_svc.go index 0f612cb..d0bd607 100644 --- a/services/registry/registry_svc.go +++ b/services/registry/registry_svc.go @@ -585,7 +585,7 @@ func (s *RegistryService) UpdateNodeVersion(ctx context.Context, client *ent.Cli }) } -func (s *RegistryService) RecordNodeInstallation(ctx context.Context, client *ent.Client, node *ent.Node) (*ent.Node, error) { +func (s *RegistryService) RecordNodeInstalation(ctx context.Context, client *ent.Client, node *ent.Node) (*ent.Node, error) { var n *ent.Node err := db.WithTx(ctx, client, func(tx *ent.Tx) (err error) { node, err = tx.Node.UpdateOne(node).AddTotalInstall(1).Save(ctx) @@ -626,64 +626,52 @@ func (s *RegistryService) GetLatestNodeVersion(ctx context.Context, client *ent. return nodeVersion, nil } -var ErrComfyNodesAlreadyExist = errors.New("comfy nodes already exist") - func (s *RegistryService) CreateComfyNodes(ctx context.Context, client *ent.Client, nodeID string, nodeVersion string, comfyNodes map[string]drip.ComfyNode) (err error) { - return db.WithTx(ctx, client, func(tx *ent.Tx) error { - nv, err := client.NodeVersion.Query(). - Where(nodeversion.VersionEQ(nodeVersion)). - Where(nodeversion.NodeIDEQ(nodeID)). - WithComfyNodes(). - ForUpdate(). - Only(ctx) - if err != nil { - return err - } - - if len(nv.Edges.ComfyNodes) > 0 { - return ErrComfyNodesAlreadyExist - } + nv, err := client.NodeVersion.Query(). + Where(nodeversion.VersionEQ(nodeVersion)). + Where(nodeversion.NodeIDEQ(nodeID)).Only(ctx) + if err != nil { + return err + } - comfyNodesCreates := make([]*ent.ComfyNodeCreate, 0, len(comfyNodes)) - for k, n := range comfyNodes { - comfyNodeCreate := client.ComfyNode.Create(). - SetID(k). - SetNodeVersionID(nv.ID) + comfyNodesCreates := make([]*ent.ComfyNodeCreate, 0, len(comfyNodes)) + for k, n := range comfyNodes { + comfyNodeCreate := client.ComfyNode.Create(). + SetID(k). + SetNodeVersionID(nv.ID) - if n.Category != nil { - comfyNodeCreate.SetCategory(*n.Category) - } - if n.Description != nil { - comfyNodeCreate.SetDescription(*n.Description) - } - if n.InputTypes != nil { - comfyNodeCreate.SetInputTypes(*n.InputTypes) - } - if n.Deprecated != nil { - comfyNodeCreate.SetDeprecated(*n.Deprecated) - } - if n.Experimental != nil { - comfyNodeCreate.SetExperimental(*n.Experimental) - } - if n.OutputIsList != nil { - comfyNodeCreate.SetOutputIsList(*n.OutputIsList) - } - if n.ReturnNames != nil { - comfyNodeCreate.SetReturnNames(*n.ReturnNames) - } - if n.ReturnTypes != nil { - comfyNodeCreate.SetReturnTypes(*n.ReturnTypes) - } - if n.Function != nil { - comfyNodeCreate.SetFunction(*n.Function) - } - comfyNodesCreates = append(comfyNodesCreates, comfyNodeCreate) + if n.Category != nil { + comfyNodeCreate.SetCategory(*n.Category) } - return client.ComfyNode. - CreateBulk(comfyNodesCreates...). - Exec(ctx) - }) - + if n.Description != nil { + comfyNodeCreate.SetDescription(*n.Description) + } + if n.InputTypes != nil { + comfyNodeCreate.SetInputTypes(*n.InputTypes) + } + if n.Deprecated != nil { + comfyNodeCreate.SetDeprecated(*n.Deprecated) + } + if n.Experimental != nil { + comfyNodeCreate.SetExperimental(*n.Experimental) + } + if n.OutputIsList != nil { + comfyNodeCreate.SetOutputIsList(*n.OutputIsList) + } + if n.ReturnNames != nil { + comfyNodeCreate.SetReturnNames(*n.ReturnNames) + } + if n.ReturnTypes != nil { + comfyNodeCreate.SetReturnTypes(*n.ReturnTypes) + } + if n.Function != nil { + comfyNodeCreate.SetFunction(*n.Function) + } + comfyNodesCreates = append(comfyNodesCreates, comfyNodeCreate) + } + return client.ComfyNode. + CreateBulk(comfyNodesCreates...). + Exec(ctx) } func (s *RegistryService) GetComfyNode(ctx context.Context, client *ent.Client, nodeID string, nodeVersion string, comfyNodeID string) (*ent.ComfyNode, error) {