From e9d2e02fe3076d378a81ab1f951b870fb7b1939e Mon Sep 17 00:00:00 2001 From: Hugh Neale Date: Thu, 3 Apr 2025 17:42:58 +0100 Subject: [PATCH 1/7] make function support any --- model/function.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/model/function.go b/model/function.go index 7cf4197..68a6189 100644 --- a/model/function.go +++ b/model/function.go @@ -37,6 +37,8 @@ const ( // FunctionTypeCustom property defines a list of function types that are set by the specification. Some runtime // implementations might support additional function types that extend the ones defined in the specification FunctionTypeCustom FunctionType = "custom" + + FunctionTypeHttp FunctionType = "http" ) // FunctionType ... @@ -51,6 +53,7 @@ func (i FunctionType) KindValues() []string { string(FunctionTypeAsyncAPI), string(FunctionTypeOData), string(FunctionTypeCustom), + string(FunctionTypeHttp), } } @@ -58,6 +61,8 @@ func (i FunctionType) String() string { return string(i) } +type FunctionOperation any + // Function ... // +builder-gen:new-call=ApplyDefault type Function struct { @@ -70,7 +75,7 @@ type Function struct { // If type is `expression`, defines the workflow expression. If the type is `custom`, // #. // +kubebuilder:validation:Required - Operation string `json:"operation" validate:"required"` + Operation FunctionOperation `json:"operation" validate:"required"` // Defines the function type. Is either `custom`, `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`. // Default is `rest`. // +kubebuilder:validation:Enum=rest;rpc;expression;graphql;odata;asyncapi;custom From 00bdf0ff43f9bb23a8da90d0db92e46dc62435f4 Mon Sep 17 00:00:00 2001 From: Hugh Neale Date: Thu, 3 Apr 2025 17:49:13 +0100 Subject: [PATCH 2/7] update mod file for fork --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d2e3b7e..eb7b3ca 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/serverlessworkflow/sdk-go/v2 +module github.com/hneale-jc/serverlessworkflow-sdk-go/v2 go 1.22.0 From 4ad4281812967e1559ef1b7afffe07ed7bf83d8b Mon Sep 17 00:00:00 2001 From: hneale-jc <125897120+hneale-jc@users.noreply.github.com> Date: Fri, 4 Apr 2025 19:20:45 +0100 Subject: [PATCH 3/7] Delete go.mod --- go.mod | 44 -------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 go.mod diff --git a/go.mod b/go.mod deleted file mode 100644 index eb7b3ca..0000000 --- a/go.mod +++ /dev/null @@ -1,44 +0,0 @@ -module github.com/hneale-jc/serverlessworkflow-sdk-go/v2 - -go 1.22.0 - -toolchain go1.23.1 - -require ( - github.com/go-playground/validator/v10 v10.22.1 - github.com/pkg/errors v0.9.1 - github.com/relvacode/iso8601 v1.4.0 - github.com/sosodev/duration v1.3.1 - github.com/stretchr/testify v1.9.0 - gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.31.1 - sigs.k8s.io/controller-runtime v0.19.0 - sigs.k8s.io/yaml v1.4.0 -) - -require ( - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/leodido/go-urn v1.4.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/x448/float16 v0.8.4 // indirect - golang.org/x/crypto v0.31.0 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/text v0.21.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect -) From e938d0d300792944af07d018f3b7bc9816b9186b Mon Sep 17 00:00:00 2001 From: hneale-jc <125897120+hneale-jc@users.noreply.github.com> Date: Fri, 4 Apr 2025 18:22:56 +0000 Subject: [PATCH 4/7] revert go.mod --- go.mod | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 go.mod diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e7947a8 --- /dev/null +++ b/go.mod @@ -0,0 +1,36 @@ +module github.com/serverlessworkflow/sdk-go/v3 + +go 1.23.0 + +toolchain go1.24.0 + +require ( + github.com/go-playground/validator/v10 v10.25.0 + github.com/itchyny/gojq v0.12.17 + github.com/stretchr/testify v1.10.0 + github.com/tidwall/gjson v1.18.0 + github.com/xeipuuv/gojsonschema v1.2.0 + sigs.k8s.io/yaml v1.4.0 +) + +require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/itchyny/timefmt-go v0.1.6 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/relvacode/iso8601 v1.6.0 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.1 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + golang.org/x/crypto v0.36.0 // indirect + golang.org/x/net v0.37.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/text v0.23.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) From 308a1829ff833c3c1867cc0417ea2161dd9dbcef Mon Sep 17 00:00:00 2001 From: hneale-jc <125897120+hneale-jc@users.noreply.github.com> Date: Fri, 4 Apr 2025 18:23:53 +0000 Subject: [PATCH 5/7] revert go.mod --- go.mod | 52 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index e7947a8..d2e3b7e 100644 --- a/go.mod +++ b/go.mod @@ -1,36 +1,44 @@ -module github.com/serverlessworkflow/sdk-go/v3 +module github.com/serverlessworkflow/sdk-go/v2 -go 1.23.0 +go 1.22.0 -toolchain go1.24.0 +toolchain go1.23.1 require ( - github.com/go-playground/validator/v10 v10.25.0 - github.com/itchyny/gojq v0.12.17 - github.com/stretchr/testify v1.10.0 - github.com/tidwall/gjson v1.18.0 - github.com/xeipuuv/gojsonschema v1.2.0 + github.com/go-playground/validator/v10 v10.22.1 + github.com/pkg/errors v0.9.1 + github.com/relvacode/iso8601 v1.4.0 + github.com/sosodev/duration v1.3.1 + github.com/stretchr/testify v1.9.0 + gopkg.in/yaml.v3 v3.0.1 + k8s.io/apimachinery v0.31.1 + sigs.k8s.io/controller-runtime v0.19.0 sigs.k8s.io/yaml v1.4.0 ) require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/google/go-cmp v0.7.0 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/itchyny/timefmt-go v0.1.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/leodido/go-urn v1.4.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/relvacode/iso8601 v1.6.0 // indirect - github.com/tidwall/match v1.1.1 // indirect - github.com/tidwall/pretty v1.2.1 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect - github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/net v0.37.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/text v0.23.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect + github.com/x448/float16 v0.8.4 // indirect + golang.org/x/crypto v0.31.0 // indirect + golang.org/x/net v0.33.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) From d6e742c43d469c33aa29e39025c00cb724b7162c Mon Sep 17 00:00:00 2001 From: hneale-jc <125897120+hneale-jc@users.noreply.github.com> Date: Fri, 4 Apr 2025 18:31:36 +0000 Subject: [PATCH 6/7] updated the code comments for http --- model/function.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/model/function.go b/model/function.go index 68a6189..bcce0bb 100644 --- a/model/function.go +++ b/model/function.go @@ -37,7 +37,7 @@ const ( // FunctionTypeCustom property defines a list of function types that are set by the specification. Some runtime // implementations might support additional function types that extend the ones defined in the specification FunctionTypeCustom FunctionType = "custom" - + // FunctionTypeHttp defines a https://datatracker.ietf.org/doc/html/rfc2616#page-36 as the operation input FunctionTypeHttp FunctionType = "http" ) @@ -75,8 +75,16 @@ type Function struct { // If type is `expression`, defines the workflow expression. If the type is `custom`, // #. // +kubebuilder:validation:Required + // If type is `http`, provide the http requst object. https://datatracker.ietf.org/doc/html/rfc2616#page-36 + // { + // "method": "GET", + // "uri": "https://petstore.swagger.io/v2/pet/", + // "headers": { + // "Content-Type": "application/json" + // } + // } Operation FunctionOperation `json:"operation" validate:"required"` - // Defines the function type. Is either `custom`, `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`. + // Defines the function type. Is either `custom`, `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi` or `http`. // Default is `rest`. // +kubebuilder:validation:Enum=rest;rpc;expression;graphql;odata;asyncapi;custom // +kubebuilder:default=rest From c3674e4c8df37d84c96749c686b61d213e24e5b9 Mon Sep 17 00:00:00 2001 From: hneale-jc <125897120+hneale-jc@users.noreply.github.com> Date: Fri, 4 Apr 2025 18:32:34 +0000 Subject: [PATCH 7/7] fix padding --- model/function.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/model/function.go b/model/function.go index bcce0bb..567cb00 100644 --- a/model/function.go +++ b/model/function.go @@ -77,9 +77,9 @@ type Function struct { // +kubebuilder:validation:Required // If type is `http`, provide the http requst object. https://datatracker.ietf.org/doc/html/rfc2616#page-36 // { - // "method": "GET", - // "uri": "https://petstore.swagger.io/v2/pet/", - // "headers": { + // "method": "POST", + // "uri": "https://petstore.swagger.io/v2/pet/", + // "headers": { // "Content-Type": "application/json" // } // }