@@ -2,16 +2,13 @@ package vault
22
33import (
44 "context"
5- "encoding/hex"
65 "encoding/json"
76 "errors"
87 "fmt"
9- "sort"
108 "strings"
119
1210 "go.opentelemetry.io/otel/attribute"
1311 "go.opentelemetry.io/otel/metric"
14- "google.golang.org/protobuf/proto"
1512
1613 "github.com/smartcontractkit/chainlink-common/pkg/beholder"
1714 vaultcommon "github.com/smartcontractkit/chainlink-common/pkg/capabilities/actions/vault"
@@ -63,22 +60,20 @@ type GatewayHandler struct {
6360 services.Service
6461 eng * services.Engine
6562
66- capRegistry core.CapabilitiesRegistry
6763 secretsService vaulttypes.SecretsService
6864 gatewayConnector gatewayConnector
6965 requestAuthorizer RequestAuthorizer
7066 lggr logger.Logger
7167 metrics * metrics
7268}
7369
74- func NewGatewayHandler (capabilitiesRegistry core. CapabilitiesRegistry , secretsService vaulttypes.SecretsService , connector gatewayConnector , requestAuthorizer RequestAuthorizer , lggr logger.Logger ) (* GatewayHandler , error ) {
70+ func NewGatewayHandler (secretsService vaulttypes.SecretsService , connector gatewayConnector , requestAuthorizer RequestAuthorizer , lggr logger.Logger ) (* GatewayHandler , error ) {
7571 metrics , err := newMetrics ()
7672 if err != nil {
7773 return nil , fmt .Errorf ("failed to create metrics: %w" , err )
7874 }
7975
8076 gh := & GatewayHandler {
81- capRegistry : capabilitiesRegistry ,
8277 secretsService : secretsService ,
8378 gatewayConnector : connector ,
8479 requestAuthorizer : requestAuthorizer ,
@@ -112,7 +107,7 @@ func (h *GatewayHandler) ID(ctx context.Context) (string, error) {
112107}
113108
114109func (h * GatewayHandler ) Methods () []string {
115- return vaulttypes .GetSupportedMethods ( h . lggr )
110+ return vaulttypes .Methods
116111}
117112
118113func (h * GatewayHandler ) HandleGatewayMessage (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ]) (err error ) {
@@ -127,8 +122,6 @@ func (h *GatewayHandler) HandleGatewayMessage(ctx context.Context, gatewayID str
127122 break
128123 }
129124 response = h .handleSecretsCreate (ctx , gatewayID , req , owner )
130- case vaulttypes .MethodSecretsGet :
131- response = h .handleSecretsGet (ctx , gatewayID , req )
132125 case vaulttypes .MethodSecretsUpdate :
133126 owner , authErr := h .authorizeAndPrefixRequest (ctx , req )
134127 if authErr != nil {
@@ -256,51 +249,6 @@ func (h *GatewayHandler) handleSecretsUpdate(ctx context.Context, gatewayID stri
256249 return jsonResponse
257250}
258251
259- func (h * GatewayHandler ) handleSecretsGet (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ]) * jsonrpc.Response [json.RawMessage ] {
260- var request vaultcommon.GetSecretsRequest
261- if err := json .Unmarshal (* req .Params , & request ); err != nil {
262- return h .errorResponse (ctx , gatewayID , req , api .UserMessageParseError , err )
263- }
264- encryptionKeys , err := h .getEncryptionKeys (ctx )
265- if err != nil {
266- return h .errorResponse (ctx , gatewayID , req , api .FatalError , err )
267- }
268- getSecretsRequest := vaultcommon.GetSecretsRequest {}
269- for _ , reqItem := range request .Requests {
270- getSecretsRequest .Requests = append (getSecretsRequest .Requests , & vaultcommon.SecretRequest {
271- Id : & vaultcommon.SecretIdentifier {
272- Owner : reqItem .Id .Owner ,
273- Namespace : reqItem .Id .Namespace ,
274- Key : reqItem .Id .Key ,
275- },
276- EncryptionKeys : encryptionKeys ,
277- })
278- }
279- vaultCapResponse , err := h .secretsService .GetSecrets (ctx , req .ID , & getSecretsRequest )
280- if err != nil {
281- return h .errorResponse (ctx , gatewayID , req , api .FatalError , err )
282- }
283-
284- vaultResponseProto := & vaultcommon.GetSecretsResponse {}
285- err = proto .Unmarshal (vaultCapResponse .Payload , vaultResponseProto )
286- if err != nil {
287- h .lggr .Errorf ("Debugging: handleSecretsCreate failed to unmarshal response: %s. Payload was: %s" , err .Error (), string (vaultCapResponse .Payload ))
288- return h .errorResponse (ctx , gatewayID , req , api .NodeReponseEncodingError , err )
289- }
290-
291- vaultAPIResponseBytes , err := json .Marshal (vaultResponseProto )
292- if err != nil {
293- return h .errorResponse (ctx , gatewayID , req , api .NodeReponseEncodingError , err )
294- }
295- vaultAPIResponseJSON := json .RawMessage (vaultAPIResponseBytes )
296- return & jsonrpc.Response [json.RawMessage ]{
297- Version : jsonrpc .JsonRpcVersion ,
298- ID : req .ID ,
299- Method : req .Method ,
300- Result : & vaultAPIResponseJSON ,
301- }
302- }
303-
304252func (h * GatewayHandler ) handleSecretsDelete (ctx context.Context , gatewayID string , req * jsonrpc.Request [json.RawMessage ], owner string ) * jsonrpc.Response [json.RawMessage ] {
305253 r := & vaultcommon.DeleteSecretsRequest {}
306254 if err := json .Unmarshal (* req .Params , r ); err != nil {
@@ -408,26 +356,6 @@ func (h *GatewayHandler) errorResponse(
408356 }
409357}
410358
411- // getEncryptionKeys retrieves the encryption keys of all members in the Workflow DON.
412- func (h * GatewayHandler ) getEncryptionKeys (ctx context.Context ) ([]string , error ) {
413- myNode , err := h .capRegistry .LocalNode (ctx )
414- if err != nil {
415- return nil , errors .New ("failed to get local node from registry" + err .Error ())
416- }
417-
418- encryptionKeys := make ([]string , 0 , len (myNode .WorkflowDON .Members ))
419- for _ , peerID := range myNode .WorkflowDON .Members {
420- peerNode , err := h .capRegistry .NodeByPeerID (ctx , peerID )
421- if err != nil {
422- return nil , errors .New ("failed to get node info for peerID: " + peerID .String () + " - " + err .Error ())
423- }
424- encryptionKeys = append (encryptionKeys , hex .EncodeToString (peerNode .EncryptionPublicKey [:]))
425- }
426- // Sort the encryption keys to ensure consistent ordering across all nodes.
427- sort .Strings (encryptionKeys )
428- return encryptionKeys , nil
429- }
430-
431359func toJSONResponse (vaultCapResponse * vaulttypes.Response , method string ) (* jsonrpc.Response [json.RawMessage ], error ) {
432360 vaultResponseBytes , err := vaultCapResponse .ToJSONRPCResult ()
433361 if err != nil {
0 commit comments