diff --git a/client/binding.go b/client/binding.go index 08470d4..84ad0a7 100644 --- a/client/binding.go +++ b/client/binding.go @@ -21,7 +21,7 @@ func (c *Client) InvokeBinding(ctx context.Context, name, op string, in []byte, Metadata: meta, } - _, err := c.protoClient.InvokeBinding(ctx, envelop) + _, err := c.protoClient.InvokeBinding(authContext(ctx), envelop) if err != nil { return errors.Wrapf(err, "error invoking binding %s", name) } diff --git a/client/client.go b/client/client.go index 64051d2..5222514 100644 --- a/client/client.go +++ b/client/client.go @@ -8,6 +8,7 @@ import ( "github.com/pkg/errors" "google.golang.org/grpc" + "google.golang.org/grpc/metadata" pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1" ) @@ -63,3 +64,12 @@ func (c *Client) Close(ctx context.Context) { c.connection.Close() } } + +func authContext(ctx context.Context) context.Context { + token := os.Getenv("DAPR_API_TOKEN") + if token == "" { + return ctx + } + md := metadata.Pairs("dapr-api-token", token) + return metadata.NewOutgoingContext(ctx, md) +} diff --git a/client/invoke.go b/client/invoke.go index 90329fd..8310354 100644 --- a/client/invoke.go +++ b/client/invoke.go @@ -19,7 +19,7 @@ func (c *Client) InvokeService(ctx context.Context, serviceID, method string, in return nil, errors.New("nil method") } - resp, err := c.protoClient.InvokeService(ctx, &pb.InvokeServiceRequest{ + resp, err := c.protoClient.InvokeService(authContext(ctx), &pb.InvokeServiceRequest{ Id: serviceID, Message: &v1.InvokeRequest{ Method: method, diff --git a/client/pubsub.go b/client/pubsub.go index 9e0ece4..aa26cb2 100644 --- a/client/pubsub.go +++ b/client/pubsub.go @@ -19,7 +19,7 @@ func (c *Client) PublishEvent(ctx context.Context, topic string, in []byte) erro Data: in, } - _, err := c.protoClient.PublishEvent(ctx, envelop) + _, err := c.protoClient.PublishEvent(authContext(ctx), envelop) if err != nil { return errors.Wrapf(err, "error publishing event unto %s topic", topic) } diff --git a/client/state.go b/client/state.go index 5c20d47..652b772 100644 --- a/client/state.go +++ b/client/state.go @@ -28,7 +28,7 @@ func (c *Client) SaveState(ctx context.Context, store, key string, in []byte) er }, } - _, err := c.protoClient.SaveState(ctx, envelop) + _, err := c.protoClient.SaveState(authContext(ctx), envelop) if err != nil { return errors.Wrapf(err, "error saving state into %s", store) } @@ -42,7 +42,7 @@ func (c *Client) SaveStateJSON(ctx context.Context, store, key string, in interf if err != nil { return errors.Wrap(err, "error marshaling content") } - return c.SaveState(ctx, store, key, b) + return c.SaveState(authContext(ctx), store, key, b) } // GetState is the message to get key-value states from specific state store @@ -58,7 +58,7 @@ func (c *Client) GetState(ctx context.Context, store, key string) (out []byte, e Key: key, } - result, err := c.protoClient.GetState(ctx, envelop) + result, err := c.protoClient.GetState(authContext(ctx), envelop) if err != nil { return nil, errors.Wrapf(err, "error getting state from %s for %s key", store, key) } @@ -79,7 +79,7 @@ func (c *Client) DeleteState(ctx context.Context, store, key string) error { Key: key, } - _, err := c.protoClient.DeleteState(ctx, envelop) + _, err := c.protoClient.DeleteState(authContext(ctx), envelop) if err != nil { return errors.Wrapf(err, "error deleting state from %s for %s key", store, key) } diff --git a/example/serving/main.go b/example/serving/main.go index 112529e..b7c7a97 100644 --- a/example/serving/main.go +++ b/example/serving/main.go @@ -47,7 +47,7 @@ func (s *server) MyMethod() string { func (s *server) OnInvoke(ctx context.Context, in *commonv1pb.InvokeRequest) (*commonv1pb.InvokeResponse, error) { var response string - fmt.Println(fmt.Sprintf("Got invoked with: %s", string(in.Data.Value))) + fmt.Printf("Got invoked with: %s", string(in.Data.Value)) switch in.Method { case "MyMethod":