From 9f514a133e2f04225012589bbfdd07a36b258699 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 12 Mar 2026 11:37:45 +0100 Subject: [PATCH] add verification flow --- .../execution_verification.go | 30 ++++++++++++++++ .../execution_verification_mongo_accessor.go | 35 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100755 models/execution_verification/execution_verification.go create mode 100755 models/execution_verification/execution_verification_mongo_accessor.go diff --git a/models/execution_verification/execution_verification.go b/models/execution_verification/execution_verification.go new file mode 100755 index 0000000..5b79c97 --- /dev/null +++ b/models/execution_verification/execution_verification.go @@ -0,0 +1,30 @@ +package execution_verification + +import ( + "cloud.o-forge.io/core/oc-lib/models/utils" + "cloud.o-forge.io/core/oc-lib/tools" +) + +/* +* ExecutionVerification is a struct that represents a list of workflow executions +* Warning: No user can write (del, post, put) a workflow execution, it is only used by the system +* workflows generate their own executions + */ +type ExecutionVerification struct { + utils.AbstractObject // AbstractObject contains the basic fields of an object (id, name) + WorkflowID string `json:"workflow_id" bson:"workflow_id,omitempty"` // WorkflowID is the ID of the workflow + IsVerified bool `json:"is_verified" bson:"is_verified,omitempty"` + Validate bool `json:"validate" bson:"validate,omitempty"` +} + +func (r *ExecutionVerification) StoreDraftDefault() { + r.IsDraft = false // TODO: TEMPORARY +} + +func (d *ExecutionVerification) GetAccessor(request *tools.APIRequest) utils.Accessor { + return NewAccessor(request) // Create a new instance of the accessor +} + +func (d *ExecutionVerification) VerifyAuth(callName string, request *tools.APIRequest) bool { + return true +} diff --git a/models/execution_verification/execution_verification_mongo_accessor.go b/models/execution_verification/execution_verification_mongo_accessor.go new file mode 100755 index 0000000..70e9ac2 --- /dev/null +++ b/models/execution_verification/execution_verification_mongo_accessor.go @@ -0,0 +1,35 @@ +package execution_verification + +import ( + "cloud.o-forge.io/core/oc-lib/logs" + "cloud.o-forge.io/core/oc-lib/models/utils" + "cloud.o-forge.io/core/oc-lib/tools" +) + +type ExecutionVerificationMongoAccessor struct { + utils.AbstractAccessor[*ExecutionVerification] + shallow bool +} + +func NewAccessor(request *tools.APIRequest) *ExecutionVerificationMongoAccessor { + return &ExecutionVerificationMongoAccessor{ + shallow: false, + AbstractAccessor: utils.AbstractAccessor[*ExecutionVerification]{ + Logger: logs.CreateLogger(tools.WORKFLOW_EXECUTION.String()), // Create a logger with the data type + Request: request, + Type: tools.WORKFLOW_EXECUTION, + New: func() *ExecutionVerification { return &ExecutionVerification{} }, + NotImplemented: []string{"DeleteOne", "StoreOne", "CopyOne"}, + }, + } +} + +func (wfa *ExecutionVerificationMongoAccessor) StoreOne(set utils.DBObject) (utils.DBObject, int, error) { + set.(*ExecutionVerification).IsVerified = false + return utils.GenericStoreOne(set, wfa) +} + +func (wfa *ExecutionVerificationMongoAccessor) UpdateOne(set map[string]interface{}, id string) (utils.DBObject, int, error) { + set["is_verified"] = true + return utils.GenericUpdateOne(set, id, wfa) +}