headers

package
v1.14.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2021 License: MIT Imports: 6 Imported by: 8

Documentation

Index

Constants

View Source
const (
	ClientNameHeaderName              = "client-name"
	ClientVersionHeaderName           = "client-version"
	SupportedServerVersionsHeaderName = "supported-server-versions"
	SupportedFeaturesHeaderName       = "supported-features"
	SupportedFeaturesHeaderDelim      = ","
)
View Source
const (
	ClientNameServer        = "temporal-server"
	ClientNameGoSDK         = "temporal-go"
	ClientNameJavaSDK       = "temporal-java"
	ClientNamePHPSDK        = "temporal-php"
	ClientNameTypeScriptSDK = "temporal-typescript"
	ClientNameCLI           = "temporal-cli"

	ServerVersion = "1.14.1"
	CLIVersion    = "1.14.1"

	// SupportedServerVersions is used by CLI and inter role communication.
	SupportedServerVersions = ">=1.0.0 <2.0.0"

	// FeatureFollowsNextRunID means that the client supports following next execution run id for
	// completed/failed/timedout completion events when getting the final result of a workflow.
	FeatureFollowsNextRunID = "follows-next-run-id"
)

Variables

View Source
var (
	// AllFeatures contains all known features. This list is used as the value of the supported
	// features header for internal server requests. There is an assumption that if a feature is
	// defined, then the server itself supports it.
	AllFeatures = strings.Join([]string{
		FeatureFollowsNextRunID,
	}, SupportedFeaturesHeaderDelim)

	SupportedClients = map[string]string{
		ClientNameGoSDK:         "<2.0.0",
		ClientNameJavaSDK:       "<2.0.0",
		ClientNamePHPSDK:        "<2.0.0",
		ClientNameTypeScriptSDK: "<2.0.0",
		ClientNameCLI:           "<2.0.0",
		ClientNameServer:        "<2.0.0",
	}
)

Functions

func GetValues

func GetValues(ctx context.Context, headerNames ...string) []string

GetValues returns header values for passed header names. It always returns slice of the same size as number of passed header names.

func NewDefaultVersionChecker added in v1.0.0

func NewDefaultVersionChecker() *versionChecker

NewDefaultVersionChecker constructs a new VersionChecker using default versions from const.

func NewVersionChecker

func NewVersionChecker(supportedClients map[string]string, serverVersion string) *versionChecker

NewVersionChecker constructs a new VersionChecker

func Propagate added in v1.13.0

func Propagate(ctx context.Context) context.Context

Propagate propagates version headers from incoming context to outgoing context. It copies all version headers to outgoing context only if they are exist in incoming context and doesn't exist in outgoing context already.

func SetCLIVersions

func SetCLIVersions(ctx context.Context) context.Context

SetCLIVersions sets headers for CLI requests.

func SetVersions

func SetVersions(ctx context.Context) context.Context

SetVersions sets headers for internal communications.

func SetVersionsForTests

func SetVersionsForTests(ctx context.Context, clientVersion, clientName, supportedServerVersions, supportedFeatures string) context.Context

SetVersionsForTests sets headers as they would be received from the client. Must be used in tests only.

Types

type VersionChecker

type VersionChecker interface {
	ClientSupported(ctx context.Context, enableClientVersionCheck bool) error
	ClientSupportsFeature(ctx context.Context, feature string) bool
}

VersionChecker is used to check client/server compatibility and client's capabilities

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL