diff --git a/headers/headers.go b/headers/headers.go index af368c698..7030e4658 100644 --- a/headers/headers.go +++ b/headers/headers.go @@ -13,6 +13,7 @@ const ( SupportedServerVersionsHeaderName = "supported-server-versions" SupportedFeaturesHeaderName = "supported-features" SupportedFeaturesHeaderDelim = "," + CallerTypeHeaderName = "caller-type" ) const DEV_VERSION = "0.0.0-DEV" @@ -21,7 +22,8 @@ const DEV_VERSION = "0.0.0-DEV" var Version = DEV_VERSION const ( - ClientNameCLI = "temporal-cli" + ClientNameCLI = "temporal-cli" + CallerTypeHeaderCLI = "operator" // SupportedServerVersions is used by CLI and inter role communication. SupportedServerVersions = ">=1.0.0 <2.0.0" @@ -32,6 +34,7 @@ var ( ClientNameHeaderName: ClientNameCLI, ClientVersionHeaderName: Version, SupportedServerVersionsHeaderName: SupportedServerVersions, + CallerTypeHeaderName: CallerTypeHeaderCLI, // TODO: This should include SupportedFeaturesHeaderName with a value that's taken // from the Go SDK (since the cli uses the Go SDK for most operations). }) diff --git a/headersprovider/headers_provider.go b/headersprovider/headers_provider.go index a39d9fac8..79c1d6b56 100644 --- a/headersprovider/headers_provider.go +++ b/headersprovider/headers_provider.go @@ -2,6 +2,8 @@ package headersprovider import ( "context" + + h "github.com/temporalio/cli/headers" ) type HeadersProvider interface { @@ -16,12 +18,18 @@ type grpcHeaderProvider struct { headers map[string]string } +func newGrpcHeaderProvider(headers map[string]string) *grpcHeaderProvider { + provider := &grpcHeaderProvider{headers} + provider.headers[h.CallerTypeHeaderName] = h.CallerTypeHeaderCLI + return provider +} + func (a grpcHeaderProvider) GetHeaders(ctx context.Context) (map[string]string, error) { return a.headers, nil } func SetGRPCHeadersProvider(headers map[string]string) { - headersProvider = &grpcHeaderProvider{headers} + headersProvider = newGrpcHeaderProvider(headers) } func SetCurrent(hp HeadersProvider) {