diff --git a/controllers/compute.go b/controllers/compute.go index a69f01d..12e309a 100755 --- a/controllers/compute.go +++ b/controllers/compute.go @@ -24,7 +24,7 @@ var comp_dt = tools.COMPUTE_RESOURCE // @Success 200 {compute} models.compute // @router /:id [put] func (o *ComputeController) Put() { - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUID var res map[string]interface{} id := o.Ctx.Input.Param(":id") @@ -32,7 +32,7 @@ func (o *ComputeController) Put() { data := oclib.NewRequestAdmin(comp_collection, nil).UpdateOne(res, id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_UPDATE, DataType: comp_dt.EnumIndex(), Payload: data, @@ -54,7 +54,7 @@ func (o *ComputeController) Post() { data := oclib.NewRequest(comp_collection, user, peerID, groups, nil).StoreOne(res) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_CREATE, DataType: comp_dt.EnumIndex(), Payload: data, @@ -113,7 +113,7 @@ func (o *ComputeController) Delete() { data := oclib.NewRequest(comp_collection, user, peerID, groups, nil).DeleteOne(id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_DELETE, DataType: comp_dt.EnumIndex(), Payload: data, diff --git a/controllers/data.go b/controllers/data.go index e5312a3..3a270c9 100755 --- a/controllers/data.go +++ b/controllers/data.go @@ -32,7 +32,7 @@ func (o *DataController) Put() { data := oclib.NewRequest(data_collection, user, peerID, groups, nil).UpdateOne(res, id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_UPDATE, DataType: data_dt.EnumIndex(), Payload: data, @@ -54,7 +54,7 @@ func (o *DataController) Post() { data := oclib.NewRequest(data_collection, user, peerID, groups, nil).StoreOne(res) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_CREATE, DataType: data_dt.EnumIndex(), Payload: data, @@ -114,7 +114,7 @@ func (o *DataController) Delete() { data := oclib.NewRequest(data_collection, user, peerID, groups, nil).DeleteOne(id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_DELETE, DataType: data_dt.EnumIndex(), Payload: data, diff --git a/controllers/processing.go b/controllers/processing.go index 9104f88..ef79d81 100755 --- a/controllers/processing.go +++ b/controllers/processing.go @@ -26,7 +26,7 @@ var processing_dt = tools.PROCESSING_RESOURCE // @router /:id [put] func (o *ProcessingController) Put() { // store and return Id or post with UUID - user, _, _ := oclib.ExtractTokenInfo(*o.Ctx.Request) + user, _, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) var res map[string]interface{} id := o.Ctx.Input.Param(":id") json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res) @@ -34,7 +34,7 @@ func (o *ProcessingController) Put() { data := oclib.NewRequestAdmin(processing_collection, nil).UpdateOne(res, id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_UPDATE, DataType: processing_dt.EnumIndex(), Payload: data, @@ -56,7 +56,7 @@ func (o *ProcessingController) Post() { data := oclib.NewRequest(processing_collection, user, peerID, groups, nil).StoreOne(res) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_CREATE, DataType: processing_dt.EnumIndex(), Payload: data, @@ -115,7 +115,7 @@ func (o *ProcessingController) Delete() { data := oclib.NewRequest(processing_collection, user, peerID, groups, nil).DeleteOne(id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_DELETE, DataType: processing_dt.EnumIndex(), Payload: data, diff --git a/controllers/storage.go b/controllers/storage.go index 749c624..cdd9570 100755 --- a/controllers/storage.go +++ b/controllers/storage.go @@ -32,7 +32,7 @@ func (o *StorageController) Put() { data := oclib.NewRequest(storage_collection, user, peerID, groups, nil).UpdateOne(res, id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_UPDATE, DataType: storage_dt.EnumIndex(), Payload: data, @@ -54,7 +54,7 @@ func (o *StorageController) Post() { data := oclib.NewRequest(storage_collection, user, peerID, groups, nil).StoreOne(res) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_CREATE, DataType: storage_dt.EnumIndex(), Payload: data, @@ -113,7 +113,7 @@ func (o *StorageController) Delete() { data := oclib.NewRequest(storage_collection, user, peerID, groups, nil).DeleteOne(id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_DELETE, DataType: storage_dt.EnumIndex(), Payload: data, diff --git a/controllers/workflow.go b/controllers/workflow.go index 74acfe3..edb4d8c 100755 --- a/controllers/workflow.go +++ b/controllers/workflow.go @@ -32,7 +32,7 @@ func (o *WorkflowController) Put() { data := oclib.NewRequest(workflow_collection, user, peerID, groups, nil).UpdateOne(res, id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_UPDATE, Payload: data, DataType: workflow_dt.EnumIndex(), @@ -54,7 +54,7 @@ func (o *WorkflowController) Post() { data := oclib.NewRequest(workflow_collection, user, peerID, groups, nil).StoreOne(res) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_CREATE, DataType: workflow_dt.EnumIndex(), Payload: data, @@ -113,7 +113,7 @@ func (o *WorkflowController) Delete() { data := oclib.NewRequest(workflow_collection, user, peerID, groups, nil).DeleteOne(id) if data.Err == "" { data, _ := json.Marshal(data.Data.Serialize(data.Data)) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ DataType: workflow_dt.EnumIndex(), Action: tools.PB_DELETE, Payload: data, diff --git a/go.mod b/go.mod index 6a4cf91..ea1d5f7 100755 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module oc-catalog go 1.25.0 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20260304125443-a426bdf655e1 + cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a github.com/beego/beego/v2 v2.3.8 github.com/smartystreets/goconvey v1.7.2 ) diff --git a/go.sum b/go.sum index ea56206..c68423e 100755 --- a/go.sum +++ b/go.sum @@ -42,6 +42,8 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260304125143-2bfcfb5736b3 h1:MwaSiGPc7N2HX cloud.o-forge.io/core/oc-lib v0.0.0-20260304125143-2bfcfb5736b3/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= cloud.o-forge.io/core/oc-lib v0.0.0-20260304125443-a426bdf655e1 h1:bvVWoPSoxVmLm1l4d/upLHTOkif1hbg5dCnEczgrwew= cloud.o-forge.io/core/oc-lib v0.0.0-20260304125443-a426bdf655e1/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a h1:oCkb9l/Cvn0x6iicxIydrjfCNU+UHhKuklFgfzDa174= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312073634-2c9c42dd516a/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/beego/beego/v2 v2.3.4 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI= github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4= diff --git a/infrastructure/nats.go b/infrastructure/nats.go index 5c7f9a9..1dae49f 100644 --- a/infrastructure/nats.go +++ b/infrastructure/nats.go @@ -20,7 +20,7 @@ var ressourceCols = []oclib.LibDataEnum{ var SearchStream = map[string]chan resources.ResourceInterface{} -func EmitNATS(user string, message tools.PropalgationMessage) { +func EmitNATS(user string, groups []string, message tools.PropalgationMessage) { b, _ := json.Marshal(message) if message.Action == tools.PB_SEARCH { SearchStream[user] = make(chan resources.ResourceInterface, 128) @@ -28,6 +28,8 @@ func EmitNATS(user string, message tools.PropalgationMessage) { tools.NewNATSCaller().SetNATSPub(tools.PROPALGATION_EVENT, tools.NATSResponse{ FromApp: "oc-catalog", Datatype: -1, + User: user, + Groups: groups, Method: int(tools.PROPALGATION_EVENT), Payload: b, }) diff --git a/routers/router.go b/routers/router.go index 15cba08..e77b9aa 100755 --- a/routers/router.go +++ b/routers/router.go @@ -29,9 +29,9 @@ func wsSearchHandler(dataType int) http.HandlerFunc { if len(parts) >= 3 { t = parts[len(parts)-3] } - user, _, _ := oclib.ExtractTokenInfo(*r) + user, _, groups := oclib.ExtractTokenInfo(*r) b, _ := json.Marshal(map[string]string{"search": search, "type": t}) - infrastructure.EmitNATS(user, tools.PropalgationMessage{ + infrastructure.EmitNATS(user, groups, tools.PropalgationMessage{ Action: tools.PB_SEARCH, DataType: dataType, Payload: b,