@@ -2,15 +2,12 @@ package vault
22
33import (
44 "context"
5- "encoding/hex"
65 "encoding/json"
76 "errors"
87 "fmt"
9- "sort"
108
119 "go.opentelemetry.io/otel/attribute"
1210 "go.opentelemetry.io/otel/metric"
13- "google.golang.org/protobuf/proto"
1411
1512 "github.com/smartcontractkit/chainlink-common/pkg/beholder"
1613 vaultcommon "github.com/smartcontractkit/chainlink-common/pkg/capabilities/actions/vault"
@@ -62,21 +59,19 @@ type GatewayHandler struct {
6259 services.Service
6360 eng * services.Engine
6461
65- capRegistry core.CapabilitiesRegistry
6662 secretsService vaulttypes.SecretsService
6763 gatewayConnector gatewayConnector
6864 lggr logger.Logger
6965 metrics * metrics
7066}
7167
72- func NewGatewayHandler (capabilitiesRegistry core. CapabilitiesRegistry , secretsService vaulttypes.SecretsService , connector gatewayConnector , lggr logger.Logger ) (* GatewayHandler , error ) {
68+ func NewGatewayHandler (secretsService vaulttypes.SecretsService , connector gatewayConnector , lggr logger.Logger ) (* GatewayHandler , error ) {
7369 metrics , err := newMetrics ()
7470 if err != nil {
7571 return nil , fmt .Errorf ("failed to create metrics: %w" , err )
7672 }
7773
7874 gh := & GatewayHandler {
79- capRegistry : capabilitiesRegistry ,
8075 secretsService : secretsService ,
8176 gatewayConnector : connector ,
8277 lggr : lggr .Named (HandlerName ),
@@ -109,7 +104,7 @@ func (h *GatewayHandler) ID(ctx context.Context) (string, error) {
109104}
110105
111106func (h * GatewayHandler ) Methods () []string {
112- return vaulttypes .GetSupportedMethods ( h . lggr )
107+ return vaulttypes .Methods
113108}
114109
115110func (h * GatewayHandler ) HandleGatewayMessage (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ]) (err error ) {
@@ -119,8 +114,6 @@ func (h *GatewayHandler) HandleGatewayMessage(ctx context.Context, gatewayID str
119114 switch req .Method {
120115 case vaulttypes .MethodSecretsCreate :
121116 response = h .handleSecretsCreate (ctx , gatewayID , req )
122- case vaulttypes .MethodSecretsGet :
123- response = h .handleSecretsGet (ctx , gatewayID , req )
124117 case vaulttypes .MethodSecretsUpdate :
125118 response = h .handleSecretsUpdate (ctx , gatewayID , req )
126119 case vaulttypes .MethodSecretsDelete :
@@ -183,51 +176,6 @@ func (h *GatewayHandler) handleSecretsUpdate(ctx context.Context, gatewayID stri
183176 return jsonResponse
184177}
185178
186- func (h * GatewayHandler ) handleSecretsGet (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ]) * jsonrpc.Response [json.RawMessage ] {
187- var request vaultcommon.GetSecretsRequest
188- if err := json .Unmarshal (* req .Params , & request ); err != nil {
189- return h .errorResponse (ctx , gatewayID , req , api .UserMessageParseError , err )
190- }
191- encryptionKeys , err := h .getEncryptionKeys (ctx )
192- if err != nil {
193- return h .errorResponse (ctx , gatewayID , req , api .FatalError , err )
194- }
195- getSecretsRequest := vaultcommon.GetSecretsRequest {}
196- for _ , reqItem := range request .Requests {
197- getSecretsRequest .Requests = append (getSecretsRequest .Requests , & vaultcommon.SecretRequest {
198- Id : & vaultcommon.SecretIdentifier {
199- Owner : reqItem .Id .Owner ,
200- Namespace : reqItem .Id .Namespace ,
201- Key : reqItem .Id .Key ,
202- },
203- EncryptionKeys : encryptionKeys ,
204- })
205- }
206- vaultCapResponse , err := h .secretsService .GetSecrets (ctx , req .ID , & getSecretsRequest )
207- if err != nil {
208- return h .errorResponse (ctx , gatewayID , req , api .FatalError , err )
209- }
210-
211- vaultResponseProto := & vaultcommon.GetSecretsResponse {}
212- err = proto .Unmarshal (vaultCapResponse .Payload , vaultResponseProto )
213- if err != nil {
214- h .lggr .Errorf ("Debugging: handleSecretsCreate failed to unmarshal response: %s. Payload was: %s" , err .Error (), string (vaultCapResponse .Payload ))
215- return h .errorResponse (ctx , gatewayID , req , api .NodeReponseEncodingError , err )
216- }
217-
218- vaultAPIResponseBytes , err := json .Marshal (vaultResponseProto )
219- if err != nil {
220- return h .errorResponse (ctx , gatewayID , req , api .NodeReponseEncodingError , err )
221- }
222- vaultAPIResponseJSON := json .RawMessage (vaultAPIResponseBytes )
223- return & jsonrpc.Response [json.RawMessage ]{
224- Version : jsonrpc .JsonRpcVersion ,
225- ID : req .ID ,
226- Method : req .Method ,
227- Result : & vaultAPIResponseJSON ,
228- }
229- }
230-
231179func (h * GatewayHandler ) handleSecretsDelete (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ]) * jsonrpc.Response [json.RawMessage ] {
232180 r := & vaultcommon.DeleteSecretsRequest {}
233181 if err := json .Unmarshal (* req .Params , r ); err != nil {
@@ -324,26 +272,6 @@ func (h *GatewayHandler) errorResponse(
324272 }
325273}
326274
327- // getEncryptionKeys retrieves the encryption keys of all members in the Workflow DON.
328- func (h * GatewayHandler ) getEncryptionKeys (ctx context.Context ) ([]string , error ) {
329- myNode , err := h .capRegistry .LocalNode (ctx )
330- if err != nil {
331- return nil , errors .New ("failed to get local node from registry" + err .Error ())
332- }
333-
334- encryptionKeys := make ([]string , 0 , len (myNode .WorkflowDON .Members ))
335- for _ , peerID := range myNode .WorkflowDON .Members {
336- peerNode , err := h .capRegistry .NodeByPeerID (ctx , peerID )
337- if err != nil {
338- return nil , errors .New ("failed to get node info for peerID: " + peerID .String () + " - " + err .Error ())
339- }
340- encryptionKeys = append (encryptionKeys , hex .EncodeToString (peerNode .EncryptionPublicKey [:]))
341- }
342- // Sort the encryption keys to ensure consistent ordering across all nodes.
343- sort .Strings (encryptionKeys )
344- return encryptionKeys , nil
345- }
346-
347275func toJSONResponse (vaultCapResponse * vaulttypes.Response , method string ) (* jsonrpc.Response [json.RawMessage ], error ) {
348276 vaultResponseBytes , err := vaultCapResponse .ToJSONRPCResult ()
349277 if err != nil {
0 commit comments