MCPcopy Create free account
hub / github.com/docker/secrets-engine / GetSecrets

Method GetSecrets

x/api/resolver/resolver.go:42–75  ·  view source on GitHub ↗
(ctx context.Context, c *connect.Request[resolverv1.GetSecretsRequest])

Source from the content-addressed store, hash-verified

40}
41
42func (r resolverService) GetSecrets(ctx context.Context, c *connect.Request[resolverv1.GetSecretsRequest]) (*connect.Response[resolverv1.GetSecretsResponse], error) {
43 msgPattern := c.Msg.GetPattern()
44 pattern, err := secrets.ParsePattern(msgPattern)
45 if err != nil {
46 return nil, connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("invalid pattern %q: %w", msgPattern, err))
47 }
48
49 envelopes, err := r.resolver.GetSecrets(ctx, pattern)
50 if err != nil {
51 if errors.Is(err, secrets.ErrNotFound) {
52 return nil, connect.NewError(connect.CodeNotFound, secrets.ErrNotFound)
53 }
54 return nil, connect.NewError(connect.CodeInternal, fmt.Errorf("failed to get secret %q: %w", msgPattern, err))
55 }
56 if len(envelopes) == 0 {
57 return nil, connect.NewError(connect.CodeNotFound, secrets.ErrNotFound)
58 }
59 var items []*resolverv1.GetSecretsResponse_Envelope
60 for _, envelope := range envelopes {
61 items = append(items, resolverv1.GetSecretsResponse_Envelope_builder{
62 Id: proto.String(envelope.ID.String()),
63 Value: envelope.Value,
64 Metadata: envelope.Metadata,
65 Provider: proto.String(envelope.Provider),
66 Version: proto.String(envelope.Version),
67 CreatedAt: timestamppb.New(envelope.CreatedAt),
68 ResolvedAt: timestamppb.New(envelope.ResolvedAt),
69 ExpiresAt: timestamppb.New(envelope.ExpiresAt),
70 }.Build())
71 }
72 return connect.NewResponse(resolverv1.GetSecretsResponse_builder{
73 Envelopes: items,
74 }.Build()), nil
75}
76
77var _ secrets.Resolver = &resolverClient{}
78

Callers

nothing calls this directly

Calls 5

ErrorfMethod · 0.65
GetSecretsMethod · 0.65
StringMethod · 0.65
GetPatternMethod · 0.45
BuildMethod · 0.45

Tested by

no test coverage detected