diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b316c3d..9d0e235 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - name: Install mockgen - run: go install github.com/golang/mock/mockgen@v1.6.0 + run: go install go.uber.org/mock/mockgen@latest - name: Generate protobufs and ratsd server run: go generate ./... diff --git a/Makefile b/Makefile index 4800b40..2be4635 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,73 @@ # Copyright 2025 Contributors to the Veraison project. # SPDX-License-Identifier: Apache-2.0 -.DEFAULT_TARGET: all +.DEFAULT_GOAL := all BIN := ratsd +.PHONY: help +help: + @echo "RATSD Makefile Commands:" + @echo "" + @echo "Building:" + @echo " all Build everything (check deps, generate code, build binary and attesters)" + @echo " build Build ratsd binary and all attesters" + @echo " build-sa Build sub-attesters only" + @echo " build-la Build ratsd binary only" + @echo "" + @echo "Code Generation:" + @echo " generate Generate code from protobuf and OpenAPI specs" + @echo " install-tools Install Go code generation tools (requires protoc)" + @echo " install-protoc Install protoc compiler (requires sudo)" + @echo " setup-dev Install protoc + Go tools (complete dev setup)" + @echo "" + @echo "Testing:" + @echo " test Run all tests" + @echo "" + @echo "Certificates:" + @echo " gen-certs Generate TLS certificates" + @echo " clean-certs Clean generated certificates" + @echo "" + @echo "Cleanup:" + @echo " clean Clean all build artifacts" + @echo " clean-sa Clean sub-attester build artifacts" + @echo " clean-la Clean ratsd binary" + @echo "" + @echo "Dependency Checks:" + @echo " check-protoc Check if protoc is installed" + @echo " check-generate-deps Check if all code generation tools are available" + @echo "" + @echo "Prerequisites:" + @echo " - Install protoc: sudo apt-get install protobuf-compiler (Ubuntu/Debian)" + @echo " - Run 'make install-tools' to install Go code generation tools" + @echo " - See README.md for detailed installation instructions" + @echo "" + .PHONY: all -all: generate build +all: check-protoc generate build .PHONY: gen-certs gen-certs: ./gen-certs create .PHONY: generate -generate: +generate: check-generate-deps go generate ./... +.PHONY: check-generate-deps +check-generate-deps: check-protoc + @echo "Checking for required code generation tools..." + @which protoc-gen-go > /dev/null 2>&1 || { \ + echo "ERROR: protoc-gen-go is not installed."; \ + echo "Please run 'make install-tools' first."; \ + exit 1; \ + } + @which protoc-gen-go-grpc > /dev/null 2>&1 || { \ + echo "ERROR: protoc-gen-go-grpc is not installed."; \ + echo "Please run 'make install-tools' first."; \ + exit 1; \ + } + @echo "All code generation dependencies are available." + .PHONY: build build-sa build-la build: build-sa build-la @@ -38,11 +91,65 @@ clean-la: rm -f $(BIN) .PHONY: install-tools -install-tools: +install-tools: check-protoc go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen go install google.golang.org/protobuf/cmd/protoc-gen-go - go install google.golang.org/protobuf/cmd/protoc-gen-go-grpc - go install go.uber.org/mock/mockgen + go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + go install go.uber.org/mock/mockgen@latest + +.PHONY: check-protoc +check-protoc: + @echo "Checking for protoc..." + @which protoc > /dev/null 2>&1 || { \ + echo "ERROR: protoc (Protocol Buffer Compiler) is not installed or not in PATH."; \ + echo ""; \ + echo "Please install protoc using one of the following methods:"; \ + echo ""; \ + echo "Ubuntu/Debian:"; \ + echo " sudo apt-get update && sudo apt-get install -y protobuf-compiler"; \ + echo ""; \ + echo "RHEL/CentOS:"; \ + echo " sudo yum install -y protobuf-compiler"; \ + echo ""; \ + echo "Fedora:"; \ + echo " sudo dnf install -y protobuf-compiler"; \ + echo ""; \ + echo "macOS:"; \ + echo " brew install protobuf"; \ + echo ""; \ + echo "Or download from: https://github.com/protocolbuffers/protobuf/releases"; \ + echo ""; \ + exit 1; \ + } + @echo "protoc found: $$(which protoc)" + +.PHONY: install-protoc +install-protoc: + @echo "Attempting to install protoc..." + @if command -v apt-get >/dev/null 2>&1; then \ + echo "Detected apt-get (Ubuntu/Debian). Installing protobuf-compiler..."; \ + sudo apt-get update && sudo apt-get install -y protobuf-compiler; \ + elif command -v yum >/dev/null 2>&1; then \ + echo "Detected yum (RHEL/CentOS). Installing protobuf-compiler..."; \ + sudo yum install -y protobuf-compiler; \ + elif command -v dnf >/dev/null 2>&1; then \ + echo "Detected dnf (Fedora). Installing protobuf-compiler..."; \ + sudo dnf install -y protobuf-compiler; \ + elif command -v brew >/dev/null 2>&1; then \ + echo "Detected brew (macOS). Installing protobuf..."; \ + brew install protobuf; \ + else \ + echo "Unable to detect package manager. Please install protoc manually."; \ + echo "See README.md for installation instructions."; \ + exit 1; \ + fi + @echo "protoc installation completed. Verifying..." + @which protoc || { echo "Installation failed. Please install protoc manually."; exit 1; } + +.PHONY: setup-dev +setup-dev: install-protoc install-tools + @echo "Development environment setup complete!" + @echo "You can now run 'make' to build RATSD." .PHONY: clean-certs clean-certs: diff --git a/README.md b/README.md index fbdfb65..45845a3 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,43 @@ A RATS conceptual message collection daemon # Building + +## Prerequisites + +Before building RATSD, you need to install the following system dependencies: + +### Protocol Buffer Compiler (protoc) + +**Ubuntu/Debian:** +```bash +sudo apt-get update +sudo apt-get install -y protobuf-compiler +``` + +**RHEL/CentOS/Fedora:** +```bash +# For RHEL/CentOS +sudo yum install -y protobuf-compiler +# For Fedora +sudo dnf install -y protobuf-compiler +``` + +**macOS:** +```bash +brew install protobuf +``` + +**From Source (if package not available):** +```bash +# Download and install protoc from https://github.com/protocolbuffers/protobuf/releases +# Example for Linux x86_64: +curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v25.1/protoc-25.1-linux-x86_64.zip +unzip protoc-25.1-linux-x86_64.zip -d $HOME/.local +export PATH="$PATH:$HOME/.local/bin" +``` + +### Go Dependencies + The binary `ratsd` is built by using `make` using the following steps: * Install golang version specified in go.mod * Ensure GOPATH is available in the shell path (`export GOPATH="$HOME/go"; export PATH=$PATH:$GOPATH/bin`) @@ -10,11 +47,27 @@ The binary `ratsd` is built by using `make` using the following steps: * Build RATSd using `make` ## (Optional) Regenerate ratsd core code from OpenAPI spec -Regeneration of the code for ratsd requires the installation of various protobuf packages beforehand. Use the following commands to install them: +Regeneration of the code for ratsd requires the installation of protobuf compiler and Go protobuf plugins. + +**Prerequisites:** Make sure you have installed the `protoc` compiler (see Prerequisites section above). + +Then install the Go code generation tools: ```bash make install-tools ``` -Then generate the code with `make generate` + +Generate the code: +```bash +make generate +``` + +**Note:** The `make install-tools` command installs: +- `protoc-gen-go` - Go protocol buffer plugin +- `protoc-gen-go-grpc` - Go gRPC plugin +- `oapi-codegen` - OpenAPI code generator +- `mockgen` - Mock generation tool + +All of these require the base `protoc` compiler to be installed separately. ## Building ratsd core and leaf attesters @@ -59,7 +112,7 @@ Ratsd currently supports the Trusted Secure Module `tsm` attester. You can speci ```bash curl -X POST http://localhost:8895/ratsd/chares -H "Content-type: application/vnd.veraison.chares+json" -d '{"nonce": "TUlEQk5IMjhpaW9pc2pQeXh4eHh4eHh4eHh4eHh4eHhNSURCTkgyOGlpb2lzalB5eHh4eHh4eHh4eHh4eHh4eA", tsm-report:{"privilege_level": "$level"}}' # Replace $level with a number from 0 to 3 ``` -## Get evidence from the selected attester only +### Get evidence from the selected attester only If more than one leaf attesters present, ratsd adds the evidence generated by all attesters to the response of `/ratsd/chares`. To limit the output to the selected attester, add `list-options: selected` to config.yaml, then specify the name of each attester along with the associated options in `attester-selection`. If the user does not wish to specify the attester-specific option, "$attester_name": "null" should be specified. The following is an example of the request: @@ -79,3 +132,16 @@ If more than one leaf attesters present, ratsd adds the evidence generated by al ``` If `list-options` is not set, or if it's set to `all` in config.yaml, ratsd populates the EAT with CMW from all available attesters as the default behavior. +### Content type selection + +Pick the desired output content type of each sub-attester +by specifying field "content-type" in "attester-selection" as shown in +the following example: +```json +"attester-selection": { + "mock-tsm":{ + "content-type": "application/vnd.veraison.configfs-tsm+json", + "privilege_level": "3" + } +} +``` diff --git a/api/mocks/imanager.go b/api/mocks/imanager.go index 6484b41..9de67c7 100644 --- a/api/mocks/imanager.go +++ b/api/mocks/imanager.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/veraison/ratsd/plugin (interfaces: IManager) +// +// Generated by this command: +// +// mockgen -destination=../api/mocks/imanager.go -package=mocks github.com/veraison/ratsd/plugin IManager +// // Package mocks is a generated GoMock package. package mocks @@ -7,14 +12,15 @@ package mocks import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" plugin "github.com/veraison/ratsd/plugin" + gomock "go.uber.org/mock/gomock" ) // MockIManager is a mock of IManager interface. type MockIManager struct { ctrl *gomock.Controller recorder *MockIManagerMockRecorder + isgomock struct{} } // MockIManagerMockRecorder is the mock recorder for MockIManager. @@ -86,7 +92,7 @@ func (m *MockIManager) LookupByName(arg0 string) (plugin.IPluggable, error) { } // LookupByName indicates an expected call of LookupByName. -func (mr *MockIManagerMockRecorder) LookupByName(arg0 interface{}) *gomock.Call { +func (mr *MockIManagerMockRecorder) LookupByName(arg0 any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LookupByName", reflect.TypeOf((*MockIManager)(nil).LookupByName), arg0) } diff --git a/api/mocks/ipluggable.go b/api/mocks/ipluggable.go index 5da0ced..f13f783 100644 --- a/api/mocks/ipluggable.go +++ b/api/mocks/ipluggable.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/veraison/ratsd/plugin (interfaces: IPluggable) +// +// Generated by this command: +// +// mockgen -destination=../api/mocks/ipluggable.go -package=mocks github.com/veraison/ratsd/plugin IPluggable +// // Package mocks is a generated GoMock package. package mocks @@ -7,14 +12,15 @@ package mocks import ( reflect "reflect" - gomock "github.com/golang/mock/gomock" compositor "github.com/veraison/ratsd/proto/compositor" + gomock "go.uber.org/mock/gomock" ) // MockIPluggable is a mock of IPluggable interface. type MockIPluggable struct { ctrl *gomock.Controller recorder *MockIPluggableMockRecorder + isgomock struct{} } // MockIPluggableMockRecorder is the mock recorder for MockIPluggable. @@ -35,17 +41,31 @@ func (m *MockIPluggable) EXPECT() *MockIPluggableMockRecorder { } // GetEvidence mocks base method. -func (m *MockIPluggable) GetEvidence(arg0 *compositor.EvidenceIn) *compositor.EvidenceOut { +func (m *MockIPluggable) GetEvidence(in *compositor.EvidenceIn) *compositor.EvidenceOut { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetEvidence", arg0) + ret := m.ctrl.Call(m, "GetEvidence", in) ret0, _ := ret[0].(*compositor.EvidenceOut) return ret0 } // GetEvidence indicates an expected call of GetEvidence. -func (mr *MockIPluggableMockRecorder) GetEvidence(arg0 interface{}) *gomock.Call { +func (mr *MockIPluggableMockRecorder) GetEvidence(in any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEvidence", reflect.TypeOf((*MockIPluggable)(nil).GetEvidence), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEvidence", reflect.TypeOf((*MockIPluggable)(nil).GetEvidence), in) +} + +// GetOptions mocks base method. +func (m *MockIPluggable) GetOptions() *compositor.OptionsOut { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetOptions") + ret0, _ := ret[0].(*compositor.OptionsOut) + return ret0 +} + +// GetOptions indicates an expected call of GetOptions. +func (mr *MockIPluggableMockRecorder) GetOptions() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOptions", reflect.TypeOf((*MockIPluggable)(nil).GetOptions)) } // GetSubAttesterID mocks base method. diff --git a/api/server.go b/api/server.go index 21b4c7c..264dff5 100644 --- a/api/server.go +++ b/api/server.go @@ -160,14 +160,53 @@ func (s *Server) RatsdChares(w http.ResponseWriter, r *http.Request, param Ratsd return false } + outputCt := formatOut.Formats[0].ContentType params, hasOption := options[pn] if !hasOption || string(params) == "null" { params = json.RawMessage{} + } else { + attesterOptions := make(map[string]string) + if err := json.Unmarshal(params, &attesterOptions); err != nil { + errMsg := fmt.Sprintf( + "failed to parse options for %s: %v", pn, err) + p := &problems.DefaultProblem{ + Type: string(TagGithubCom2024VeraisonratsdErrorInvalidrequest), + Title: string(InvalidRequest), + Detail: errMsg, + Status: http.StatusBadRequest, + } + s.reportProblem(w, p) + return false + } + + validCt := false + if desiredCt, ok := attesterOptions["content-type"]; ok { + for _, f := range formatOut.Formats { + if f.ContentType == desiredCt { + outputCt = desiredCt + validCt = true + break + } + } + + if !validCt { + errMsg := fmt.Sprintf( + "%s does not support content type %s", pn, desiredCt) + p := &problems.DefaultProblem{ + Type: string(TagGithubCom2024VeraisonratsdErrorInvalidrequest), + Title: string(InvalidRequest), + Detail: errMsg, + Status: http.StatusBadRequest, + } + s.reportProblem(w, p) + return false + } + } } - s.logger.Info("output content type: ", formatOut.Formats[0].ContentType) + s.logger.Info(pn, " output content type: ", outputCt) in := &compositor.EvidenceIn{ - ContentType: formatOut.Formats[0].ContentType, + ContentType: outputCt, Nonce: nonce, Options: params, } diff --git a/api/server_test.go b/api/server_test.go index 14eded2..81587a1 100644 --- a/api/server_test.go +++ b/api/server_test.go @@ -12,7 +12,7 @@ import ( "strings" "testing" - "github.com/golang/mock/gomock" + "go.uber.org/mock/gomock" "github.com/moogar0880/problems" "github.com/stretchr/testify/assert" "github.com/veraison/cmw" @@ -147,13 +147,22 @@ func TestRatsdChares_invalid_body(t *testing.T) { tests := []struct{ name, body, msg string }{ {"missing nonce", `{"noncee": "MIDBNH28iioisjPy"}`, "fail to retrieve nonce from the request"}, - {"invalid attester selecton", + {"invalid attester selection", fmt.Sprintf(`{"nonce": "%s", "attester-selection": "attester-slection"}`, validNonce), "failed to parse attester selection: json: cannot unmarshal string into" + ` Go value of type map[string]json.RawMessage`}, {"no attester specified in selected mode", fmt.Sprintf(`{"nonce": "%s"}`, validNonce), "attester-selection must contain at least one attester"}, + {"invalid attester options", + fmt.Sprintf(`{"nonce": "%s", + "attester-selection": {"mock-tsm":"invalid"}}`, validNonce), + "failed to parse options for mock-tsm: json: cannot unmarshal string into" + + ` Go value of type map[string]string`}, + {"request content type unavailable", + fmt.Sprintf(`{"nonce": "%s", + "attester-selection": {"mock-tsm":{"content-type":"invalid"}}}`, validNonce), + "mock-tsm does not support content type invalid"}, } for _, tt := range tests { diff --git a/go.mod b/go.mod index edc2c32..d3f545e 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,7 @@ go 1.23.0 require ( github.com/fxamacker/cbor/v2 v2.7.0 - github.com/getkin/kin-openapi v0.128.0 - github.com/golang/mock v1.6.0 + github.com/getkin/kin-openapi v0.131.0 github.com/google/go-configfs-tsm v0.3.2 github.com/hashicorp/go-plugin v1.4.4 github.com/moogar0880/problems v0.1.1 @@ -17,8 +16,9 @@ require ( github.com/veraison/services v0.0.2501 go.uber.org/mock v0.5.2 go.uber.org/zap v1.23.0 - golang.org/x/crypto v0.24.0 - google.golang.org/grpc v1.64.0 + golang.org/x/crypto v0.36.0 + google.golang.org/grpc v1.65.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.4 ) @@ -46,7 +46,6 @@ require ( github.com/hashicorp/go-hclog v1.2.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb // indirect - github.com/invopop/yaml v0.3.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect @@ -60,6 +59,8 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect + github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect github.com/oklog/run v1.0.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.0 // indirect @@ -80,10 +81,10 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.7.0 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/net v0.38.0 // indirect + golang.org/x/sync v0.12.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/text v0.23.0 // indirect golang.org/x/tools v0.22.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index 7a6f5ca..a353127 100644 --- a/go.sum +++ b/go.sum @@ -89,8 +89,8 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4= -github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM= +github.com/getkin/kin-openapi v0.131.0 h1:NO2UeHnFKRYhZ8wg6Nyh5Cq7dHk4suQQr72a4pMrDxE= +github.com/getkin/kin-openapi v0.131.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= @@ -126,8 +126,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -197,8 +195,6 @@ github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKe github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso= -github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -258,6 +254,10 @@ github.com/oapi-codegen/oapi-codegen/v2 v2.4.1 h1:ykgG34472DWey7TSjd8vIfNykXgjOg github.com/oapi-codegen/oapi-codegen/v2 v2.4.1/go.mod h1:N5+lY1tiTDV3V1BeHtOxeWXHoPVeApvsvjJqegfoaz8= 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/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY= +github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -338,7 +338,6 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -365,8 +364,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -400,7 +399,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -436,11 +434,10 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -460,9 +457,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -503,10 +499,8 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -514,8 +508,8 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -526,8 +520,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -579,7 +573,6 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -666,8 +659,10 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/proto/compositor/compositor.pb.go b/proto/compositor/compositor.pb.go index 4e7ee2e..8dd7fa0 100644 --- a/proto/compositor/compositor.pb.go +++ b/proto/compositor/compositor.pb.go @@ -3,8 +3,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v3.14.0 +// protoc-gen-go v1.36.4 +// protoc v3.21.12 // source: compositor.proto package compositor @@ -15,6 +15,7 @@ import ( emptypb "google.golang.org/protobuf/types/known/emptypb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -25,21 +26,18 @@ const ( ) type Option struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Option) Reset() { *x = Option{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Option) String() string { @@ -50,7 +48,7 @@ func (*Option) ProtoMessage() {} func (x *Option) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -80,21 +78,18 @@ func (x *Option) GetType() string { } type OptionsOut struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Options []*Option `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty"` unknownFields protoimpl.UnknownFields - - Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Options []*Option `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OptionsOut) Reset() { *x = OptionsOut{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OptionsOut) String() string { @@ -105,7 +100,7 @@ func (*OptionsOut) ProtoMessage() {} func (x *OptionsOut) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -136,21 +131,18 @@ func (x *OptionsOut) GetOptions() []*Option { // Status.result = true on sucess, status.result = false on failure. type Status struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Status) Reset() { *x = Status{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Status) String() string { @@ -161,7 +153,7 @@ func (*Status) ProtoMessage() {} func (x *Status) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -191,21 +183,18 @@ func (x *Status) GetError() string { } type SubAttesterID struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SubAttesterID) Reset() { *x = SubAttesterID{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubAttesterID) String() string { @@ -216,7 +205,7 @@ func (*SubAttesterID) ProtoMessage() {} func (x *SubAttesterID) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -246,21 +235,18 @@ func (x *SubAttesterID) GetVersion() string { } type SubAttesterIDOut struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + SubAttesterID *SubAttesterID `protobuf:"bytes,2,opt,name=subAttesterID,proto3" json:"subAttesterID,omitempty"` unknownFields protoimpl.UnknownFields - - Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - SubAttesterID *SubAttesterID `protobuf:"bytes,2,opt,name=subAttesterID,proto3" json:"subAttesterID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SubAttesterIDOut) Reset() { *x = SubAttesterIDOut{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubAttesterIDOut) String() string { @@ -271,7 +257,7 @@ func (*SubAttesterIDOut) ProtoMessage() {} func (x *SubAttesterIDOut) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -301,21 +287,18 @@ func (x *SubAttesterIDOut) GetSubAttesterID() *SubAttesterID { } type Format struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ContentType string `protobuf:"bytes,1,opt,name=contentType,proto3" json:"contentType,omitempty"` + NonceSize uint32 `protobuf:"varint,2,opt,name=nonceSize,proto3" json:"nonceSize,omitempty"` unknownFields protoimpl.UnknownFields - - ContentType string `protobuf:"bytes,1,opt,name=contentType,proto3" json:"contentType,omitempty"` - NonceSize uint32 `protobuf:"varint,2,opt,name=nonceSize,proto3" json:"nonceSize,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Format) Reset() { *x = Format{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Format) String() string { @@ -326,7 +309,7 @@ func (*Format) ProtoMessage() {} func (x *Format) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -356,21 +339,18 @@ func (x *Format) GetNonceSize() uint32 { } type SupportedFormatsOut struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Formats []*Format `protobuf:"bytes,2,rep,name=formats,proto3" json:"formats,omitempty"` unknownFields protoimpl.UnknownFields - - Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Formats []*Format `protobuf:"bytes,2,rep,name=formats,proto3" json:"formats,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SupportedFormatsOut) Reset() { *x = SupportedFormatsOut{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SupportedFormatsOut) String() string { @@ -381,7 +361,7 @@ func (*SupportedFormatsOut) ProtoMessage() {} func (x *SupportedFormatsOut) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -411,22 +391,19 @@ func (x *SupportedFormatsOut) GetFormats() []*Format { } type EvidenceIn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ContentType string `protobuf:"bytes,1,opt,name=contentType,proto3" json:"contentType,omitempty"` + Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + Options []byte `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"` unknownFields protoimpl.UnknownFields - - ContentType string `protobuf:"bytes,1,opt,name=contentType,proto3" json:"contentType,omitempty"` - Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` - Options []byte `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EvidenceIn) Reset() { *x = EvidenceIn{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EvidenceIn) String() string { @@ -437,7 +414,7 @@ func (*EvidenceIn) ProtoMessage() {} func (x *EvidenceIn) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -474,21 +451,18 @@ func (x *EvidenceIn) GetOptions() []byte { } type EvidenceOut struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Evidence []byte `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"` unknownFields protoimpl.UnknownFields - - Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Evidence []byte `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EvidenceOut) Reset() { *x = EvidenceOut{} - if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_compositor_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EvidenceOut) String() string { @@ -499,7 +473,7 @@ func (*EvidenceOut) ProtoMessage() {} func (x *EvidenceOut) ProtoReflect() protoreflect.Message { mi := &file_compositor_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -530,7 +504,7 @@ func (x *EvidenceOut) GetEvidence() []byte { var File_compositor_proto protoreflect.FileDescriptor -var file_compositor_proto_rawDesc = []byte{ +var file_compositor_proto_rawDesc = string([]byte{ 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, @@ -605,22 +579,22 @@ var file_compositor_proto_rawDesc = []byte{ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x65, 0x72, 0x61, 0x69, 0x73, 0x6f, 0x6e, 0x2f, 0x72, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_compositor_proto_rawDescOnce sync.Once - file_compositor_proto_rawDescData = file_compositor_proto_rawDesc + file_compositor_proto_rawDescData []byte ) func file_compositor_proto_rawDescGZIP() []byte { file_compositor_proto_rawDescOnce.Do(func() { - file_compositor_proto_rawDescData = protoimpl.X.CompressGZIP(file_compositor_proto_rawDescData) + file_compositor_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_compositor_proto_rawDesc), len(file_compositor_proto_rawDesc))) }) return file_compositor_proto_rawDescData } var file_compositor_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_compositor_proto_goTypes = []interface{}{ +var file_compositor_proto_goTypes = []any{ (*Option)(nil), // 0: compositor.Option (*OptionsOut)(nil), // 1: compositor.OptionsOut (*Status)(nil), // 2: compositor.Status @@ -660,121 +634,11 @@ func file_compositor_proto_init() { if File_compositor_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_compositor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Option); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OptionsOut); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Status); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubAttesterID); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubAttesterIDOut); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Format); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SupportedFormatsOut); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvidenceIn); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_compositor_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvidenceOut); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_compositor_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_compositor_proto_rawDesc), len(file_compositor_proto_rawDesc)), NumEnums: 0, NumMessages: 9, NumExtensions: 0, @@ -785,7 +649,6 @@ func file_compositor_proto_init() { MessageInfos: file_compositor_proto_msgTypes, }.Build() File_compositor_proto = out.File - file_compositor_proto_rawDesc = nil file_compositor_proto_goTypes = nil file_compositor_proto_depIdxs = nil } diff --git a/proto/compositor/compositor_grpc.pb.go b/proto/compositor/compositor_grpc.pb.go index e6a9f5b..88cadf0 100644 --- a/proto/compositor/compositor_grpc.pb.go +++ b/proto/compositor/compositor_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v3.14.0 +// - protoc v3.21.12 // source: compositor.proto package compositor diff --git a/tools.go b/tools.go index fef0f8f..0b5537a 100644 --- a/tools.go +++ b/tools.go @@ -6,5 +6,6 @@ package tools import ( _ "github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen" _ "google.golang.org/protobuf/cmd/protoc-gen-go" + _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" _ "go.uber.org/mock/mockgen" )