From a75776aed84aa0fe477d3b7530c5feec0973cce7 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 09:54:17 -0700 Subject: [PATCH 01/10] update harnesses for tls server name --- cmd/run.go | 9 +++++- cmd/run_dotnet.go | 3 ++ cmd/run_go.go | 3 ++ cmd/run_java.go | 3 ++ cmd/run_php.go | 3 ++ cmd/run_python.go | 3 ++ cmd/run_typescript.go | 3 ++ .../dotnet/Temporalio.Features.Harness/App.cs | 32 +++++++++++++------ harness/go/cmd/run.go | 7 ++++ harness/go/harness/runner.go | 3 +- harness/go/harness/util.go | 16 ++++++---- .../java/io/temporal/sdkfeatures/Main.java | 4 +++ .../java/io/temporal/sdkfeatures/Runner.java | 5 +++ harness/php/runner.php | 18 +++++++---- harness/php/src/Input/Command.php | 9 ++++++ harness/python/main.py | 9 +++++- harness/ts/main.ts | 14 +++++--- 17 files changed, 116 insertions(+), 28 deletions(-) diff --git a/cmd/run.go b/cmd/run.go index 0056301a..3749ce06 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -62,6 +62,7 @@ type RunConfig struct { Namespace string ClientCertPath string ClientKeyPath string + TLSServerName string GenerateHistory bool DisableHistoryCheck bool RetainTempDir bool @@ -92,6 +93,11 @@ func (r *RunConfig) dockerRunFlags() []cli.Flag { Usage: "Path of TLS client key to use (optional)", Destination: &r.ClientKeyPath, }, + &cli.StringFlag{ + Name: "tls-server-name", + Usage: "TLS server name to use for verification (optional)", + Destination: &r.TLSServerName, + }, } } @@ -238,7 +244,7 @@ func (r *Runner) Run(ctx context.Context, patterns []string) error { } else { // Wait for namespace to become available err := harness.WaitNamespaceAvailable(ctx, r.log, - r.config.Server, r.config.Namespace, r.config.ClientCertPath, r.config.ClientKeyPath) + r.config.Server, r.config.Namespace, r.config.ClientCertPath, r.config.ClientKeyPath, r.config.TLSServerName) if err != nil { return err } @@ -294,6 +300,7 @@ func (r *Runner) Run(ctx context.Context, patterns []string) error { Namespace: r.config.Namespace, ClientCertPath: r.config.ClientCertPath, ClientKeyPath: r.config.ClientKeyPath, + TLSServerName: r.config.TLSServerName, SummaryURI: r.config.SummaryURI, HTTPProxyURL: r.config.HTTPProxyURL, }).Run(ctx, run) diff --git a/cmd/run_dotnet.go b/cmd/run_dotnet.go index aa06a38e..5f1f2020 100644 --- a/cmd/run_dotnet.go +++ b/cmd/run_dotnet.go @@ -49,6 +49,9 @@ func (r *Runner) RunDotNetExternal(ctx context.Context, run *cmd.Run) error { if r.config.HTTPProxyURL != "" { args = append(args, "--http-proxy-url", r.config.HTTPProxyURL) } + if r.config.TLSServerName != "" { + args = append(args, "--tls-server-name", r.config.TLSServerName) + } args = append(args, run.ToArgs()...) cmd, err := r.program.NewCommand(ctx, args...) if err == nil { diff --git a/cmd/run_go.go b/cmd/run_go.go index 6af576c7..b5252a77 100644 --- a/cmd/run_go.go +++ b/cmd/run_go.go @@ -68,6 +68,9 @@ func (r *Runner) RunGoExternal(ctx context.Context, run *cmd.Run) error { if r.config.HTTPProxyURL != "" { args = append(args, "--http-proxy-url", r.config.HTTPProxyURL) } + if r.config.TLSServerName != "" { + args = append(args, "--tls-server-name", r.config.TLSServerName) + } args = append(args, run.ToArgs()...) cmd, err := r.program.NewCommand(ctx, args...) if err == nil { diff --git a/cmd/run_java.go b/cmd/run_java.go index 27c62c2b..1689a73f 100644 --- a/cmd/run_java.go +++ b/cmd/run_java.go @@ -61,6 +61,9 @@ func (r *Runner) RunJavaExternal(ctx context.Context, run *cmd.Run) error { if r.config.HTTPProxyURL != "" { args = append(args, "--http-proxy-url", r.config.HTTPProxyURL) } + if r.config.TLSServerName != "" { + args = append(args, "--tls-server-name", r.config.TLSServerName) + } args = append(args, run.ToArgs()...) // Run diff --git a/cmd/run_php.go b/cmd/run_php.go index e906e307..9b6d7e7c 100644 --- a/cmd/run_php.go +++ b/cmd/run_php.go @@ -63,6 +63,9 @@ func (r *Runner) RunPhpExternal(ctx context.Context, run *cmd.Run) error { } args = append(args, "tls.key="+clientKeyPath) } + if r.config.TLSServerName != "" { + args = append(args, "tls.server-name="+r.config.TLSServerName) + } // Run cmd, err := r.program.NewCommand(ctx, args...) diff --git a/cmd/run_python.go b/cmd/run_python.go index 9b003720..ab52aab1 100644 --- a/cmd/run_python.go +++ b/cmd/run_python.go @@ -80,6 +80,9 @@ func (r *Runner) RunPythonExternal(ctx context.Context, run *cmd.Run) error { if r.config.HTTPProxyURL != "" { args = append(args, "--http-proxy-url", r.config.HTTPProxyURL) } + if r.config.TLSServerName != "" { + args = append(args, "--tls-server-name", r.config.TLSServerName) + } args = append(args, run.ToArgs()...) // Run diff --git a/cmd/run_typescript.go b/cmd/run_typescript.go index ae2aa905..49b92dbe 100644 --- a/cmd/run_typescript.go +++ b/cmd/run_typescript.go @@ -82,6 +82,9 @@ func (r *Runner) RunTypeScriptExternal(ctx context.Context, run *cmd.Run) error if r.config.HTTPProxyURL != "" { args = append(args, "--http-proxy-url", r.config.HTTPProxyURL) } + if r.config.TLSServerName != "" { + args = append(args, "--tls-server-name", r.config.TLSServerName) + } args = append(args, run.ToArgs()...) // Run diff --git a/harness/dotnet/Temporalio.Features.Harness/App.cs b/harness/dotnet/Temporalio.Features.Harness/App.cs index 88f5ddaf..ecc9b175 100644 --- a/harness/dotnet/Temporalio.Features.Harness/App.cs +++ b/harness/dotnet/Temporalio.Features.Harness/App.cs @@ -31,6 +31,10 @@ public static class App name: "--http-proxy-url", description: "HTTP proxy URL"); + private static readonly Option tlsServerNameOption = new( + name: "--tls-server-name", + description: "TLS server name to use for verification (optional)"); + private static readonly Argument> featuresArgument = new( name: "features", parse: result => result.Tokens.Select(token => @@ -61,6 +65,7 @@ private static Command CreateCommand() cmd.AddOption(clientCertPathOption); cmd.AddOption(clientKeyPathOption); cmd.AddOption(httpProxyUrlOption); + cmd.AddOption(tlsServerNameOption); cmd.AddArgument(featuresArgument); cmd.SetHandler(RunCommandAsync); return cmd; @@ -79,19 +84,28 @@ private static async Task RunCommandAsync(InvocationContext ctx) var logger = loggerFactory.CreateLogger(typeof(App)); // Connect a client + var tlsServerName = ctx.ParseResult.GetValueForOption(tlsServerNameOption); + TlsOptions? tlsOptions = null; + if (ctx.ParseResult.GetValueForOption(clientCertPathOption) is { } certPath) + { + tlsOptions = new() + { + ClientCert = File.ReadAllBytes(certPath.FullName), + ClientPrivateKey = File.ReadAllBytes( + ctx.ParseResult.GetValueForOption(clientKeyPathOption)?.FullName ?? + throw new ArgumentException("Missing key with cert")) + }; + if (!string.IsNullOrEmpty(tlsServerName)) + { + tlsOptions.Domain = tlsServerName; + } + } + var clientOptions = new TemporalClientConnectOptions(ctx.ParseResult.GetValueForOption(serverOption)!) { Namespace = ctx.ParseResult.GetValueForOption(namespaceOption)!, - Tls = ctx.ParseResult.GetValueForOption(clientCertPathOption) is not { } certPath - ? null - : new() - { - ClientCert = File.ReadAllBytes(certPath.FullName), - ClientPrivateKey = File.ReadAllBytes( - ctx.ParseResult.GetValueForOption(clientKeyPathOption)?.FullName ?? - throw new ArgumentException("Missing key with cert")) - } + Tls = tlsOptions }; // Go over each feature, calling the runner for it diff --git a/harness/go/cmd/run.go b/harness/go/cmd/run.go index fff45227..87e0333a 100644 --- a/harness/go/cmd/run.go +++ b/harness/go/cmd/run.go @@ -94,6 +94,7 @@ type RunConfig struct { ClientKeyPath string SummaryURI string HTTPProxyURL string + TLSServerName string } func (r *RunConfig) flags() []cli.Flag { @@ -128,6 +129,11 @@ func (r *RunConfig) flags() []cli.Flag { Usage: "URL for an HTTP CONNECT proxy to the server", Destination: &r.HTTPProxyURL, }, + &cli.StringFlag{ + Name: "tls-server-name", + Usage: "TLS server name to use for verification (optional)", + Destination: &r.TLSServerName, + }, } } @@ -226,6 +232,7 @@ func (r *Runner) Run(ctx context.Context, run *Run) error { TaskQueue: runFeature.TaskQueue, Log: r.log, HTTPProxyURL: r.config.HTTPProxyURL, + TLSServerName: r.config.TLSServerName, } err := r.runFeature(ctx, runnerConfig, feature) diff --git a/harness/go/harness/runner.go b/harness/go/harness/runner.go index 44ecf28f..851bdcfb 100644 --- a/harness/go/harness/runner.go +++ b/harness/go/harness/runner.go @@ -55,6 +55,7 @@ type RunnerConfig struct { ClientKeyPath string Log log.Logger HTTPProxyURL string + TLSServerName string } // NewRunner creates a new runner for the given config and feature. @@ -89,7 +90,7 @@ func NewRunner(config RunnerConfig, feature *PreparedFeature) (*Runner, error) { r.Feature.ClientOptions.Logger = r.Log } var err error - tlsCfg, err := LoadTLSConfig(r.ClientCertPath, r.ClientKeyPath) + tlsCfg, err := LoadTLSConfig(r.ClientCertPath, r.ClientKeyPath, r.TLSServerName) if err != nil { return nil, err } diff --git a/harness/go/harness/util.go b/harness/go/harness/util.go index 6e8874be..01b5793f 100644 --- a/harness/go/harness/util.go +++ b/harness/go/harness/util.go @@ -130,7 +130,7 @@ func GetCountCompletedUpdates(ctx context.Context, client client.Client, workflo // WaitNamespaceAvailable waits for up to 5 seconds for the provided namespace to become available func WaitNamespaceAvailable(ctx context.Context, logger log.Logger, - hostPortStr, namespace, clientCertPath, clientKeyPath string) error { + hostPortStr, namespace, clientCertPath, clientKeyPath, tlsServerName string) error { logger.Info("Waiting for namespace to become available", "namespace", namespace) var myClient client.Client @@ -139,12 +139,12 @@ func WaitNamespaceAvailable(ctx context.Context, logger log.Logger, myClient.Close() } }() - tlsCfg, err := LoadTLSConfig(clientCertPath, clientKeyPath) - clientOpts := client.Options{HostPort: hostPortStr, Namespace: namespace, Logger: logger} - clientOpts.ConnectionOptions.TLS = tlsCfg + tlsCfg, err := LoadTLSConfig(clientCertPath, clientKeyPath, tlsServerName) if err != nil { return err } + clientOpts := client.Options{HostPort: hostPortStr, Namespace: namespace, Logger: logger} + clientOpts.ConnectionOptions.TLS = tlsCfg lastErr := RetryFor(600, 100*time.Millisecond, func() (bool, error) { if myClient == nil { var clientErr error @@ -229,7 +229,7 @@ func RetryFor(maxAttempts int, interval time.Duration, cond func() (bool, error) } // LoadTLSConfig inits a TLS config from the provided cert and key files. -func LoadTLSConfig(clientCertPath, clientKeyPath string) (*tls.Config, error) { +func LoadTLSConfig(clientCertPath, clientKeyPath, tlsServerName string) (*tls.Config, error) { if clientCertPath != "" { if clientKeyPath == "" { return nil, errors.New("got TLS cert with no key") @@ -238,7 +238,11 @@ func LoadTLSConfig(clientCertPath, clientKeyPath string) (*tls.Config, error) { if err != nil { return nil, fmt.Errorf("failed to load certs: %s", err) } - return &tls.Config{Certificates: []tls.Certificate{cert}}, nil + tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}} + if tlsServerName != "" { + tlsConfig.ServerName = tlsServerName + } + return tlsConfig, nil } else if clientKeyPath != "" { return nil, errors.New("got TLS key with no cert") } diff --git a/harness/java/io/temporal/sdkfeatures/Main.java b/harness/java/io/temporal/sdkfeatures/Main.java index 83267c73..f6d4be10 100644 --- a/harness/java/io/temporal/sdkfeatures/Main.java +++ b/harness/java/io/temporal/sdkfeatures/Main.java @@ -89,6 +89,9 @@ BufferedWriter createSummaryServerWriter() { @Option(names = "--http-proxy-url", description = "URL for an HTTP CONNECT proxy to the server") private String httpProxyUrl; + @Option(names = "--tls-server-name", description = "TLS server name to use for verification (optional)") + private String tlsServerName; + @Parameters(description = "Features as dir + ':' + task queue") private List features; @@ -140,6 +143,7 @@ public void run() { config.namespace = namespace; config.httpProxyUrl = httpProxyUrl; config.sslContext = sslContext; + config.tlsServerName = tlsServerName; config.taskQueue = pieces[1]; Outcome outcome = Outcome.PASSED; String message = ""; diff --git a/harness/java/io/temporal/sdkfeatures/Runner.java b/harness/java/io/temporal/sdkfeatures/Runner.java index 16125dde..5acca370 100644 --- a/harness/java/io/temporal/sdkfeatures/Runner.java +++ b/harness/java/io/temporal/sdkfeatures/Runner.java @@ -44,6 +44,7 @@ public static class Config { public Scope metricsScope = new NoopScope(); public SslContext sslContext; public String httpProxyUrl; + public String tlsServerName; } public final Config config; @@ -68,6 +69,10 @@ public static class Config { .setTarget(config.serverHostPort) .setSslContext(config.sslContext) .setMetricsScope(config.metricsScope); + if (config.sslContext != null && config.tlsServerName != null && !config.tlsServerName.isEmpty()) { + serviceBuild.setChannelInitializer( + channelBuilder -> channelBuilder.overrideAuthority(config.tlsServerName)); + } feature.workflowServiceOptions(serviceBuild); service = WorkflowServiceStubs.newServiceStubs(serviceBuild.build()); // Shutdown service on failure diff --git a/harness/php/runner.php b/harness/php/runner.php index fadd78e1..bc6ab4a9 100644 --- a/harness/php/runner.php +++ b/harness/php/runner.php @@ -44,13 +44,19 @@ // Prepare services to be injected -$serviceClient = $runtime->command->tlsKey === null && $runtime->command->tlsCert === null - ? ServiceClient::create($runtime->address) - : ServiceClient::createSSL( +if ($runtime->command->tlsKey === null && $runtime->command->tlsCert === null) { + $serviceClient = ServiceClient::create($runtime->address); +} else { + $sslParams = [ $runtime->address, - clientKey: $runtime->command->tlsKey, - clientPem: $runtime->command->tlsCert, - ); + 'clientKey' => $runtime->command->tlsKey, + 'clientPem' => $runtime->command->tlsCert, + ]; + if ($runtime->command->tlsServerName !== null) { + $sslParams['overrideServerName'] = $runtime->command->tlsServerName; + } + $serviceClient = ServiceClient::createSSL(...$sslParams); +} echo "Connecting to Temporal service at {$runtime->address}... "; try { $serviceClient->getConnection()->connect(5); diff --git a/harness/php/src/Input/Command.php b/harness/php/src/Input/Command.php index 1c39a347..817f9369 100644 --- a/harness/php/src/Input/Command.php +++ b/harness/php/src/Input/Command.php @@ -21,6 +21,9 @@ final class Command /** @var non-empty-string|null */ public ?string $tlsCert = null; + /** @var non-empty-string|null */ + public ?string $tlsServerName = null; + public static function fromCommandLine(array $argv): self { $self = new self(); @@ -47,6 +50,11 @@ public static function fromCommandLine(array $argv): self continue; } + if (\str_starts_with($chunk, 'tls.server-name=')) { + $self->tlsServerName = \substr($chunk, 16); + continue; + } + if (!\str_contains($chunk, ':')) { continue; } @@ -72,6 +80,7 @@ public function toCommandLineArguments(): array $this->address === null or $result[] = "address=$this->address"; $this->tlsCert === null or $result[] = "tls.cert=$this->tlsCert"; $this->tlsKey === null or $result[] = "tls.key=$this->tlsKey"; + $this->tlsServerName === null or $result[] = "tls.server-name=$this->tlsServerName"; foreach ($this->features as $feature) { $result[] = "{$feature->dir}:{$feature->taskQueue}"; } diff --git a/harness/python/main.py b/harness/python/main.py index 0e8274a4..b52ebf08 100644 --- a/harness/python/main.py +++ b/harness/python/main.py @@ -23,6 +23,9 @@ async def run(): parser.add_argument("--client-key-path", help="Path to a client key for TLS") parser.add_argument("--log-level", help="Log level", default="WARNING") parser.add_argument("--http-proxy-url", help="HTTP proxy URL") + parser.add_argument( + "--tls-server-name", help="TLS server name to use for verification (optional)" + ) parser.add_argument( "features", help="Features as dir + ':' + task queue", nargs="+" ) @@ -37,7 +40,11 @@ async def run(): client_cert = f.read() with open(args.client_key_path, "rb") as f: client_key = f.read() - tls_config = TLSConfig(client_cert=client_cert, client_private_key=client_key) + + tls_kwargs = {"client_cert": client_cert, "client_private_key": client_key} + if args.tls_server_name: + tls_kwargs["domain"] = args.tls_server_name + tls_config = TLSConfig(**tls_kwargs) elif args.client_key_path and not args.client_cert_path: raise ValueError("Client key specified, but not client cert!") diff --git a/harness/ts/main.ts b/harness/ts/main.ts index 2ca6a0b7..16a43e26 100644 --- a/harness/ts/main.ts +++ b/harness/ts/main.ts @@ -14,6 +14,7 @@ async function run() { .option('--client-cert-path ', 'Path to a client certificate for TLS') .option('--client-key-path ', 'Path to a client key for TLS') .option('--http-proxy-url ', 'HTTP proxy URL') + .option('--tls-server-name ', 'TLS server name to use for verification (optional)') .argument('', 'Features as dir + ":" + task queue'); const opts = program.parse(process.argv).opts<{ @@ -22,6 +23,7 @@ async function run() { clientCertPath: string; clientKeyPath: string; httpProxyUrl: string; + tlsServerName: string; featureAndTaskQueues: string[]; }>(); opts.featureAndTaskQueues = program.args; @@ -42,11 +44,15 @@ async function run() { } const crt = fs.readFileSync(opts.clientCertPath); const key = fs.readFileSync(opts.clientKeyPath); - tlsConfig = {}; - tlsConfig.clientCertPair = { - crt, - key, + tlsConfig = { + clientCertPair: { + crt, + key, + }, }; + if (opts.tlsServerName) { + tlsConfig.serverNameOverride = opts.tlsServerName; + } } else if (opts.clientKeyPath && !opts.clientCertPath) { throw new Error('Client key path specified but no cert path!'); } From 84f603eacddd002ded82270f9077d51562b9e341 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 10:12:14 -0700 Subject: [PATCH 02/10] formatting --- features/client/http_proxy/feature.go | 8 +++++++- features/update/self/feature.go | 4 +++- harness/dotnet/Temporalio.Features.Harness/App.cs | 2 +- harness/java/io/temporal/sdkfeatures/Main.java | 4 +++- harness/java/io/temporal/sdkfeatures/Runner.java | 4 +++- harness/ts/main.ts | 2 +- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/features/client/http_proxy/feature.go b/features/client/http_proxy/feature.go index cc718fb9..6ef4a05c 100644 --- a/features/client/http_proxy/feature.go +++ b/features/client/http_proxy/feature.go @@ -52,6 +52,7 @@ func (h HTTPProxyTest) Execute(ctx context.Context, r *harness.Runner) (client.W namespace: r.Namespace, clientCertPath: r.ClientCertPath, clientKeyPath: r.ClientKeyPath, + tlsServerName: r.TLSServerName, taskQueue: r.TaskQueue, workflowID: "wf-" + uuid.NewString(), } @@ -93,7 +94,7 @@ func SubprocessExecuteWorkflow(ctx context.Context, args *subprocessArgs) error clientOpts := client.Options{HostPort: fmt.Sprintf("passthrough:///%s", args.server), Namespace: args.namespace} if args.clientCertPath != "" { var err error - clientOpts.ConnectionOptions.TLS, err = harness.LoadTLSConfig(args.clientCertPath, args.clientKeyPath) + clientOpts.ConnectionOptions.TLS, err = harness.LoadTLSConfig(args.clientCertPath, args.clientKeyPath, args.tlsServerName) if err != nil { return fmt.Errorf("failed loading TLS config: %w", err) } @@ -138,6 +139,7 @@ type subprocessArgs struct { namespace string clientCertPath string clientKeyPath string + tlsServerName string taskQueue string workflowID string useAuth bool @@ -149,6 +151,7 @@ func (s *subprocessArgs) flags() []cli.Flag { &cli.StringFlag{Name: "namespace", Destination: &s.namespace, Required: true}, &cli.StringFlag{Name: "client-cert-path", Destination: &s.clientCertPath}, &cli.StringFlag{Name: "client-key-path", Destination: &s.clientKeyPath}, + &cli.StringFlag{Name: "tls-server-name", Destination: &s.tlsServerName}, &cli.StringFlag{Name: "task-queue", Destination: &s.taskQueue, Required: true}, &cli.StringFlag{Name: "workflow-id", Destination: &s.workflowID, Required: true}, } @@ -164,6 +167,9 @@ func (s *subprocessArgs) args() []string { if s.clientCertPath != "" { args = append(args, "--client-cert-path", s.clientCertPath, "--client-key-path", s.clientKeyPath) } + if s.tlsServerName != "" { + args = append(args, "--tls-server-name", s.tlsServerName) + } return args } diff --git a/features/update/self/feature.go b/features/update/self/feature.go index 724a89fa..f954f9e1 100644 --- a/features/update/self/feature.go +++ b/features/update/self/feature.go @@ -24,6 +24,7 @@ type ConnMaterial struct { Identity string ClientCertPath string ClientKeyPath string + TLSServerName string } var Feature = harness.Feature{ @@ -44,6 +45,7 @@ var Feature = harness.Feature{ Identity: runner.Feature.ClientOptions.Identity, ClientCertPath: runner.ClientCertPath, ClientKeyPath: runner.ClientKeyPath, + TLSServerName: runner.TLSServerName, }) }, } @@ -75,7 +77,7 @@ func SelfUpdateWorkflow(ctx workflow.Context, cm ConnMaterial) (string, error) { } func SelfUpdateActivity(ctx context.Context, cm ConnMaterial) error { - tlsCfg, err := harness.LoadTLSConfig(cm.ClientCertPath, cm.ClientKeyPath) + tlsCfg, err := harness.LoadTLSConfig(cm.ClientCertPath, cm.ClientKeyPath, cm.TLSServerName) if err != nil { return err } diff --git a/harness/dotnet/Temporalio.Features.Harness/App.cs b/harness/dotnet/Temporalio.Features.Harness/App.cs index ecc9b175..8dd9ca5d 100644 --- a/harness/dotnet/Temporalio.Features.Harness/App.cs +++ b/harness/dotnet/Temporalio.Features.Harness/App.cs @@ -33,7 +33,7 @@ public static class App private static readonly Option tlsServerNameOption = new( name: "--tls-server-name", - description: "TLS server name to use for verification (optional)"); + description: "TLS server name to use for verification"); private static readonly Argument> featuresArgument = new( name: "features", diff --git a/harness/java/io/temporal/sdkfeatures/Main.java b/harness/java/io/temporal/sdkfeatures/Main.java index f6d4be10..8d04b810 100644 --- a/harness/java/io/temporal/sdkfeatures/Main.java +++ b/harness/java/io/temporal/sdkfeatures/Main.java @@ -89,7 +89,9 @@ BufferedWriter createSummaryServerWriter() { @Option(names = "--http-proxy-url", description = "URL for an HTTP CONNECT proxy to the server") private String httpProxyUrl; - @Option(names = "--tls-server-name", description = "TLS server name to use for verification (optional)") + @Option( + names = "--tls-server-name", + description = "TLS server name to use for verification") private String tlsServerName; @Parameters(description = "Features as dir + ':' + task queue") diff --git a/harness/java/io/temporal/sdkfeatures/Runner.java b/harness/java/io/temporal/sdkfeatures/Runner.java index 5acca370..5606b996 100644 --- a/harness/java/io/temporal/sdkfeatures/Runner.java +++ b/harness/java/io/temporal/sdkfeatures/Runner.java @@ -69,7 +69,9 @@ public static class Config { .setTarget(config.serverHostPort) .setSslContext(config.sslContext) .setMetricsScope(config.metricsScope); - if (config.sslContext != null && config.tlsServerName != null && !config.tlsServerName.isEmpty()) { + if (config.sslContext != null + && config.tlsServerName != null + && !config.tlsServerName.isEmpty()) { serviceBuild.setChannelInitializer( channelBuilder -> channelBuilder.overrideAuthority(config.tlsServerName)); } diff --git a/harness/ts/main.ts b/harness/ts/main.ts index 16a43e26..2af95cad 100644 --- a/harness/ts/main.ts +++ b/harness/ts/main.ts @@ -14,7 +14,7 @@ async function run() { .option('--client-cert-path ', 'Path to a client certificate for TLS') .option('--client-key-path ', 'Path to a client key for TLS') .option('--http-proxy-url ', 'HTTP proxy URL') - .option('--tls-server-name ', 'TLS server name to use for verification (optional)') + .option('--tls-server-name ', 'TLS server name to use for verification') .argument('', 'Features as dir + ":" + task queue'); const opts = program.parse(process.argv).opts<{ From a0fa3b96d9a9e9d4df5400234c53ad8e5ee74df7 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 10:40:33 -0700 Subject: [PATCH 03/10] fix java line --- harness/java/io/temporal/sdkfeatures/Main.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/harness/java/io/temporal/sdkfeatures/Main.java b/harness/java/io/temporal/sdkfeatures/Main.java index 8d04b810..04a1a8f3 100644 --- a/harness/java/io/temporal/sdkfeatures/Main.java +++ b/harness/java/io/temporal/sdkfeatures/Main.java @@ -89,9 +89,7 @@ BufferedWriter createSummaryServerWriter() { @Option(names = "--http-proxy-url", description = "URL for an HTTP CONNECT proxy to the server") private String httpProxyUrl; - @Option( - names = "--tls-server-name", - description = "TLS server name to use for verification") + @Option(names = "--tls-server-name", description = "TLS server name to use for verification") private String tlsServerName; @Parameters(description = "Features as dir + ':' + task queue") From 89e2bf30df128a693f1f7bf4ac238c585cbf79ea Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 10:57:07 -0700 Subject: [PATCH 04/10] try to resolve build --- features/deployment_versioning/common.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/deployment_versioning/common.go b/features/deployment_versioning/common.go index fec9ec7c..5681cfeb 100644 --- a/features/deployment_versioning/common.go +++ b/features/deployment_versioning/common.go @@ -86,7 +86,7 @@ func SetCurrent(r *harness.Runner, ctx context.Context, deploymentName string, v } _, err = dHandle.SetCurrentVersion(ctx, client.WorkerDeploymentSetCurrentVersionOptions{ - BuildID: version.BuildId, + BuildID: version.BuildID, ConflictToken: response1.ConflictToken, }) @@ -110,7 +110,7 @@ func SetRamp(r *harness.Runner, ctx context.Context, deploymentName string, vers } _, err = dHandle.SetRampingVersion(ctx, client.WorkerDeploymentSetRampingVersionOptions{ - BuildID: version.BuildId, + BuildID: version.BuildID, ConflictToken: response1.ConflictToken, Percentage: float32(100.0), }) From c6bab2700738a26b478ab0810c5f38d9813ee1f3 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 10:59:29 -0700 Subject: [PATCH 05/10] build --- features/deployment_versioning/common.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/deployment_versioning/common.go b/features/deployment_versioning/common.go index 5681cfeb..fec9ec7c 100644 --- a/features/deployment_versioning/common.go +++ b/features/deployment_versioning/common.go @@ -86,7 +86,7 @@ func SetCurrent(r *harness.Runner, ctx context.Context, deploymentName string, v } _, err = dHandle.SetCurrentVersion(ctx, client.WorkerDeploymentSetCurrentVersionOptions{ - BuildID: version.BuildID, + BuildID: version.BuildId, ConflictToken: response1.ConflictToken, }) @@ -110,7 +110,7 @@ func SetRamp(r *harness.Runner, ctx context.Context, deploymentName string, vers } _, err = dHandle.SetRampingVersion(ctx, client.WorkerDeploymentSetRampingVersionOptions{ - BuildID: version.BuildID, + BuildID: version.BuildId, ConflictToken: response1.ConflictToken, Percentage: float32(100.0), }) From 0251bb101bbf825fc3287b7dab709434154575b6 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 11:07:45 -0700 Subject: [PATCH 06/10] bump sdk --- go.mod | 10 +++++----- go.sum | 29 ++++++++++------------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 8c1bf7d7..a04aa8c4 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/temporalio/features/features v0.0.0-00010101000000-000000000000 github.com/temporalio/features/harness/go v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.25.7 - go.temporal.io/sdk v1.35.0 + go.temporal.io/sdk v1.37.0 golang.org/x/mod v0.17.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -21,7 +21,7 @@ require ( github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/mock v1.6.0 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect github.com/nexus-rpc/sdk-go v0.3.0 // indirect github.com/robfig/cron v1.2.0 // indirect @@ -31,7 +31,7 @@ require ( github.com/twmb/murmur3 v1.1.8 // indirect github.com/uber-go/tally/v4 v4.1.7 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect - go.temporal.io/api v1.50.0 // indirect + go.temporal.io/api v1.53.0 // indirect go.temporal.io/sdk/contrib/tally v0.2.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -43,8 +43,8 @@ require ( golang.org/x/time v0.5.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect - google.golang.org/grpc v1.66.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.36.6 // indirect ) replace ( diff --git a/go.sum b/go.sum index 0aa56d91..2d984b77 100644 --- a/go.sum +++ b/go.sum @@ -8,7 +8,6 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -69,7 +68,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -88,8 +86,8 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= -github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= @@ -185,11 +183,11 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.temporal.io/api v1.5.0/go.mod h1:BqKxEJJYdxb5dqf0ODfzfMxh8UEQ5L3zKS51FiIYYkA= -go.temporal.io/api v1.50.0 h1:7s8Cn+fKfNx9G0v2Ge9We6X2WiCA3JvJ9JryeNbx1Bc= -go.temporal.io/api v1.50.0/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= +go.temporal.io/api v1.53.0 h1:6vAFpXaC584AIELa6pONV56MTpkm4Ha7gPWL2acNAjo= +go.temporal.io/api v1.53.0/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= go.temporal.io/sdk v1.12.0/go.mod h1:lSp3lH1lI0TyOsus0arnO3FYvjVXBZGi/G7DjnAnm6o= -go.temporal.io/sdk v1.35.0 h1:lRNAQ5As9rLgYa7HBvnmKyzxLcdElTuoFJ0FXM/AsLQ= -go.temporal.io/sdk v1.35.0/go.mod h1:1q5MuLc2MEJ4lneZTHJzpVebW2oZnyxoIOWX3oFVebw= +go.temporal.io/sdk v1.37.0 h1:RbwCkUQuqY4rfCzdrDZF9lgT7QWG/pHlxfZFq0NPpDQ= +go.temporal.io/sdk v1.37.0/go.mod h1:tOy6vGonfAjrpCl6Bbw/8slTgQMiqvoyegRv2ZHPm5M= go.temporal.io/sdk/contrib/tally v0.2.0 h1:XnTJIQcjOv+WuCJ1u8Ve2nq+s2H4i/fys34MnWDRrOo= go.temporal.io/sdk/contrib/tally v0.2.0/go.mod h1:1kpSuCms/tHeJQDPuuKkaBsMqfHnIIRnCtUYlPNXxuE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -197,15 +195,12 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -216,7 +211,6 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -273,7 +267,6 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210910150752-751e447fb3d0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -293,7 +286,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -326,8 +318,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -340,8 +332,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -355,7 +347,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From 585a59eb090fdf656441b9f212156f5a1295f865 Mon Sep 17 00:00:00 2001 From: kepe-temporal Date: Mon, 20 Oct 2025 11:10:15 -0700 Subject: [PATCH 07/10] Update cmd/run.go Co-authored-by: Chad Retz --- cmd/run.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/run.go b/cmd/run.go index 3749ce06..7e6e3ab5 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -95,7 +95,7 @@ func (r *RunConfig) dockerRunFlags() []cli.Flag { }, &cli.StringFlag{ Name: "tls-server-name", - Usage: "TLS server name to use for verification (optional)", + Usage: "TLS server name to use for verification and SNI override (optional)", Destination: &r.TLSServerName, }, } From de7fd050e523d2e4893b11b52458f700fd8bcf50 Mon Sep 17 00:00:00 2001 From: kepe-temporal Date: Mon, 20 Oct 2025 11:18:35 -0700 Subject: [PATCH 08/10] Update harness/go/harness/util.go Co-authored-by: Chad Retz --- harness/go/harness/util.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/harness/go/harness/util.go b/harness/go/harness/util.go index 01b5793f..55c292c5 100644 --- a/harness/go/harness/util.go +++ b/harness/go/harness/util.go @@ -238,10 +238,7 @@ func LoadTLSConfig(clientCertPath, clientKeyPath, tlsServerName string) (*tls.Co if err != nil { return nil, fmt.Errorf("failed to load certs: %s", err) } - tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}} - if tlsServerName != "" { - tlsConfig.ServerName = tlsServerName - } + tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}, ServerName: tlsServerName} return tlsConfig, nil } else if clientKeyPath != "" { return nil, errors.New("got TLS key with no cert") From 9bead16afcd9afba2caffaa386134f589db61ee1 Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 12:45:27 -0700 Subject: [PATCH 09/10] fix BuildId --- features/deployment_versioning/common.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/deployment_versioning/common.go b/features/deployment_versioning/common.go index fec9ec7c..5681cfeb 100644 --- a/features/deployment_versioning/common.go +++ b/features/deployment_versioning/common.go @@ -86,7 +86,7 @@ func SetCurrent(r *harness.Runner, ctx context.Context, deploymentName string, v } _, err = dHandle.SetCurrentVersion(ctx, client.WorkerDeploymentSetCurrentVersionOptions{ - BuildID: version.BuildId, + BuildID: version.BuildID, ConflictToken: response1.ConflictToken, }) @@ -110,7 +110,7 @@ func SetRamp(r *harness.Runner, ctx context.Context, deploymentName string, vers } _, err = dHandle.SetRampingVersion(ctx, client.WorkerDeploymentSetRampingVersionOptions{ - BuildID: version.BuildId, + BuildID: version.BuildID, ConflictToken: response1.ConflictToken, Percentage: float32(100.0), }) From 18b065ee76d6d36f58a5c459074ddaf90514cd9b Mon Sep 17 00:00:00 2001 From: kepe bonner Date: Mon, 20 Oct 2025 12:49:49 -0700 Subject: [PATCH 10/10] field name --- .../deployment_versioning/routing_auto_upgrade/feature.go | 4 ++-- features/deployment_versioning/routing_pinned/feature.go | 4 ++-- .../deployment_versioning/routing_with_override/feature.go | 4 ++-- features/deployment_versioning/routing_with_ramp/feature.go | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/features/deployment_versioning/routing_auto_upgrade/feature.go b/features/deployment_versioning/routing_auto_upgrade/feature.go index 33c99727..7d224218 100644 --- a/features/deployment_versioning/routing_auto_upgrade/feature.go +++ b/features/deployment_versioning/routing_auto_upgrade/feature.go @@ -16,11 +16,11 @@ import ( var deploymentName = uuid.NewString() var v1 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "1.0", + BuildID: "1.0", } var v2 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "2.0", + BuildID: "2.0", } func WaitForSignalOne(ctx workflow.Context) (string, error) { diff --git a/features/deployment_versioning/routing_pinned/feature.go b/features/deployment_versioning/routing_pinned/feature.go index 71cda9ab..c1248cba 100644 --- a/features/deployment_versioning/routing_pinned/feature.go +++ b/features/deployment_versioning/routing_pinned/feature.go @@ -16,11 +16,11 @@ import ( var deploymentName = uuid.NewString() var v1 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "1.0", + BuildID: "1.0", } var v2 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "2.0", + BuildID: "2.0", } func WaitForSignalOne(ctx workflow.Context) (string, error) { diff --git a/features/deployment_versioning/routing_with_override/feature.go b/features/deployment_versioning/routing_with_override/feature.go index ccce8b64..499b9ba7 100644 --- a/features/deployment_versioning/routing_with_override/feature.go +++ b/features/deployment_versioning/routing_with_override/feature.go @@ -16,11 +16,11 @@ import ( var deploymentName = uuid.NewString() var v1 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "1.0", + BuildID: "1.0", } var v2 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "2.0", + BuildID: "2.0", } func WaitForSignalOne(ctx workflow.Context) (string, error) { diff --git a/features/deployment_versioning/routing_with_ramp/feature.go b/features/deployment_versioning/routing_with_ramp/feature.go index c15bc4b0..fc58c8ff 100644 --- a/features/deployment_versioning/routing_with_ramp/feature.go +++ b/features/deployment_versioning/routing_with_ramp/feature.go @@ -16,11 +16,11 @@ import ( var deploymentName = uuid.NewString() var v1 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "1.0", + BuildID: "1.0", } var v2 = worker.WorkerDeploymentVersion{ DeploymentName: deploymentName, - BuildId: "2.0", + BuildID: "2.0", } func WaitForSignalOne(ctx workflow.Context) (string, error) {