246 Commits
Author SHA1 Message Date
zeekay 6b89892286 merge: upstream/main (preserve Hanzo brand, 494 commits)
# Conflicts:
#	.github/workflows/build-and-publish.yml
#	AGENTS.md
#	AGENTS.md~upstream_main
#	api/adminservice/v1/request_response.go-helpers.pb.go
#	api/adminservice/v1/request_response.pb.go
#	api/adminservice/v1/service.pb.go
#	api/adminservice/v1/service_grpc.pb.go
#	api/adminservicemock/v1/service_grpc.pb.mock.go
#	api/archiver/v1/message.pb.go
#	api/batch/v1/request_response.pb.go
#	api/checksum/v1/message.pb.go
#	api/deployment/v1/message.go-helpers.pb.go
#	api/deployment/v1/message.pb.go
#	api/enums/v1/replication.go-helpers.pb.go
#	api/enums/v1/replication.pb.go
#	api/enums/v1/task.go-helpers.pb.go
#	api/enums/v1/task.pb.go
#	api/errordetails/v1/message.go-helpers.pb.go
#	api/errordetails/v1/message.pb.go
#	api/historyservice/v1/request_response.go-helpers.pb.go
#	api/historyservice/v1/request_response.pb.go
#	api/historyservice/v1/service.pb.go
#	api/historyservice/v1/service_grpc.pb.go
#	api/historyservicemock/v1/service_grpc.pb.mock.go
#	api/matchingservice/v1/request_response.pb.go
#	api/matchingservice/v1/service.pb.go
#	api/persistence/v1/chasm.pb.go
#	api/persistence/v1/executions.go-helpers.pb.go
#	api/persistence/v1/executions.pb.go
#	api/persistence/v1/workflow_mutable_state.pb.go
#	api/replication/v1/message.pb.go
#	api/routing/v1/extension.pb.go
#	api/schedule/v1/message.pb.go
#	api/taskqueue/v1/message.go-helpers.pb.go
#	api/taskqueue/v1/message.pb.go
#	chasm/component.go
#	chasm/component_mock.go
#	chasm/context.go
#	chasm/context_mock.go
#	chasm/engine.go
#	chasm/engine_mock.go
#	chasm/field.go
#	chasm/field_test.go
#	chasm/lib/activity/activity.go
#	chasm/lib/activity/activity_tasks.go
#	chasm/lib/activity/activity_test.go
#	chasm/lib/activity/config.go
#	chasm/lib/activity/frontend.go
#	chasm/lib/activity/fx.go
#	chasm/lib/activity/gen/activitypb/v1/activity_state.pb.go
#	chasm/lib/activity/gen/activitypb/v1/request_response.go-helpers.pb.go
#	chasm/lib/activity/gen/activitypb/v1/request_response.pb.go
#	chasm/lib/activity/gen/activitypb/v1/service.pb.go
#	chasm/lib/activity/gen/activitypb/v1/service_client.pb.go
#	chasm/lib/activity/gen/activitypb/v1/service_grpc.pb.go
#	chasm/lib/activity/handler.go
#	chasm/lib/activity/library.go
#	chasm/lib/activity/proto/v1/activity_state.proto
#	chasm/lib/activity/proto/v1/request_response.proto
#	chasm/lib/activity/proto/v1/service.proto
#	chasm/lib/activity/proto/v1/tasks.proto
#	chasm/lib/activity/statemachine.go
#	chasm/lib/activity/statemachine_test.go
#	chasm/lib/activity/validator.go
#	chasm/lib/activity/validator_test.go
#	chasm/lib/buf.yaml
#	chasm/lib/callback/component.go
#	chasm/lib/callback/config.go
#	chasm/lib/callback/fx.go
#	chasm/lib/callback/invocable_internal.go
#	chasm/lib/callback/invocable_outbound.go
#	chasm/lib/callback/library.go
#	chasm/lib/callback/proto/v1/message.proto
#	chasm/lib/callback/proto/v1/tasks.proto
#	chasm/lib/callback/request.go
#	chasm/lib/callback/request_test.go
#	chasm/lib/callback/tasks.go
#	chasm/lib/callback/tasks_test.go
#	chasm/lib/nexusoperation/cancellation.go
#	chasm/lib/nexusoperation/cancellation_statemachine.go
#	chasm/lib/nexusoperation/config.go
#	chasm/lib/nexusoperation/fx.go
#	chasm/lib/nexusoperation/gen/nexusoperationpb/v1/operation.go-helpers.pb.go
#	chasm/lib/nexusoperation/gen/nexusoperationpb/v1/operation.pb.go
#	chasm/lib/nexusoperation/gen/nexusoperationpb/v1/tasks.go-helpers.pb.go
#	chasm/lib/nexusoperation/gen/nexusoperationpb/v1/tasks.pb.go
#	chasm/lib/nexusoperation/library.go
#	chasm/lib/nexusoperation/metrics.go
#	chasm/lib/nexusoperation/operation.go
#	chasm/lib/nexusoperation/operation_statemachine.go
#	chasm/lib/nexusoperation/proto/v1/operation.proto
#	chasm/lib/nexusoperation/proto/v1/tasks.proto
#	chasm/lib/scheduler/backfiller.go
#	chasm/lib/scheduler/backfiller_tasks.go
#	chasm/lib/scheduler/backfiller_tasks_test.go
#	chasm/lib/scheduler/config.go
#	chasm/lib/scheduler/export_test.go
#	chasm/lib/scheduler/fx.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/message.go-helpers.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/message.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/request_response.go-helpers.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/request_response.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/service.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/service_client.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/service_grpc.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/tasks.go-helpers.pb.go
#	chasm/lib/scheduler/gen/schedulerpb/v1/tasks.pb.go
#	chasm/lib/scheduler/generator.go
#	chasm/lib/scheduler/generator_tasks.go
#	chasm/lib/scheduler/generator_tasks_test.go
#	chasm/lib/scheduler/handler.go
#	chasm/lib/scheduler/handler_test.go
#	chasm/lib/scheduler/helper_test.go
#	chasm/lib/scheduler/invoker.go
#	chasm/lib/scheduler/invoker_execute_task_test.go
#	chasm/lib/scheduler/invoker_process_buffer_task_test.go
#	chasm/lib/scheduler/invoker_tasks.go
#	chasm/lib/scheduler/library.go
#	chasm/lib/scheduler/migration/migration.go
#	chasm/lib/scheduler/migration/migration_test.go
#	chasm/lib/scheduler/proto/v1/message.proto
#	chasm/lib/scheduler/proto/v1/request_response.proto
#	chasm/lib/scheduler/proto/v1/service.proto
#	chasm/lib/scheduler/proto/v1/tasks.proto
#	chasm/lib/scheduler/scheduler.go
#	chasm/lib/scheduler/scheduler_idle_tasks_test.go
#	chasm/lib/scheduler/scheduler_tasks.go
#	chasm/lib/scheduler/scheduler_test.go
#	chasm/lib/scheduler/spec_processor.go
#	chasm/lib/tests/gen/testspb/v1/service.pb.go
#	chasm/lib/tests/handler.go
#	chasm/lib/tests/library.go
#	chasm/lib/tests/payload.go
#	chasm/lib/tests/proto/v1/message.proto
#	chasm/lib/tests/proto/v1/request_response.proto
#	chasm/lib/tests/proto/v1/service.proto
#	chasm/lib/tests/tasks.go
#	chasm/lib/workflow/fx.go
#	chasm/lib/workflow/library.go
#	chasm/lib/workflow/workflow.go
#	chasm/library_core.go
#	chasm/ms_pointer.go
#	chasm/nexus_operation_processor.go
#	chasm/node_backend_mock.go
#	chasm/ref.go
#	chasm/ref_test.go
#	chasm/registrable_component.go
#	chasm/registrable_task.go
#	chasm/registry.go
#	chasm/registry_test.go
#	chasm/search_attribute.go
#	chasm/search_attribute_test.go
#	chasm/statemachine.go
#	chasm/task.go
#	chasm/task_mock.go
#	chasm/test_component_test.go
#	chasm/test_library_test.go
#	chasm/test_task_test.go
#	chasm/test_var_test.go
#	chasm/tree.go
#	chasm/tree_test.go
#	chasm/visibility.go
#	chasm/visibility_manager.go
#	chasm/visibility_manager_mock.go
#	chasm/visibility_test.go
#	chasm/visibility_value.go
#	chasm/visibility_value_test.go
#	chasm/workflow.go
#	client/admin/client_gen.go
#	client/admin/metric_client.go
#	client/admin/metric_client_gen.go
#	client/admin/retryable_client_gen.go
#	client/frontend/client_gen.go
#	client/frontend/metric_client.go
#	client/frontend/metric_client_gen.go
#	client/frontend/retryable_client_gen.go
#	client/history/client_gen.go
#	client/history/metric_client.go
#	client/history/metric_client_gen.go
#	client/history/retryable_client_gen.go
#	client/matching/README.md
#	client/matching/client.go
#	client/matching/client_gen.go
#	client/matching/loadbalancer.go
#	client/matching/metric_client.go
#	client/matching/metric_client_gen.go
#	cmd/tools/genrpcwrappers/main.go
#	cmd/tools/getproto/files.go
#	cmd/tools/getproto/main.go
#	common/api/metadata.go
#	common/archiver/README.md
#	common/archiver/gcloud/connector/client.go
#	common/archiver/provider/provider.go
#	common/archiver/provider/provider_mock.go
#	common/archiver/s3store/history_archiver.go
#	common/archiver/s3store/history_archiver_test.go
#	common/archiver/s3store/mocks/generate.go
#	common/archiver/s3store/mocks/s3api.go
#	common/archiver/s3store/util.go
#	common/archiver/s3store/visibility_archiver.go
#	common/archiver/s3store/visibility_archiver_test.go
#	common/authorization/authorizer.go
#	common/authorization/claim_mapper.go
#	common/authorization/default_authorizer.go
#	common/authorization/default_jwt_claim_mapper.go
#	common/authorization/default_token_key_provider.go
#	common/authorization/interceptor.go
#	common/authorization/interceptor_test.go
#	common/authorization/roles.go
#	common/cluster/metadata.go
#	common/cluster/metadata_test.go
#	common/config/config.go
#	common/config/config_template_embedded.yaml
#	common/config/persistence.go
#	common/config/persistence_test.go
#	common/constants.go
#	common/contextutil/metadata.go
#	common/contextutil/metadata_test.go
#	common/dynamicconfig/constants.go
#	common/dynamicconfig/shared_constants.go
#	common/enums/defaults.go
#	common/headers/caller_info.go
#	common/headers/headers.go
#	common/headers/version_checker.go
#	common/log/tag/values.go
#	common/log/zap_logger.go
#	common/membership/ringpop/factory.go
#	common/membership/ringpop/monitor.go
#	common/membership/ringpop/service_resolver.go
#	common/membership/ringpop/test_cluster.go
#	common/metrics/config.go
#	common/metrics/metric_defs.go
#	common/metrics/tags.go
#	common/metrics/tally_metrics_handler.go
#	common/metrics/tally_metrics_handler_test.go
#	common/metrics/task_queues.go
#	common/namespace/namespace.go
#	common/namespace/nsregistry/registry.go
#	common/namespace/nsregistry/registry_test.go
#	common/namespace/nsregistry/registry_watch_test.go
#	common/namespace/nsreplication/replication_task_executor.go
#	common/namespace/nsreplication/replication_task_executor_test.go
#	common/namespace/nsreplication/transmission_task_handler.go
#	common/namespace/nsreplication/transmission_task_handler_test.go
#	common/namespace/registry.go
#	common/namespace/registry_mock.go
#	common/namespace/replication_resolver.go
#	common/namespace/replication_resolver_test.go
#	common/nexus/callback_token.go
#	common/nexus/endpoint_registry.go
#	common/nexus/endpoint_registry_test.go
#	common/nexus/failure.go
#	common/nexus/failure_test.go
#	common/nexus/link_converter.go
#	common/nexus/link_converter_test.go
#	common/nexus/nexustest/server.go
#	common/nexus/payload_serializer.go
#	common/nexus/payload_serializer_test.go
#	common/payload/payload.go
#	common/payload/payload_test.go
#	common/payloads/payloads.go
#	common/persistence/cassandra/matching_task_store_queue.go
#	common/persistence/cassandra/matching_task_store_user_data.go
#	common/persistence/cassandra/matching_task_store_v1.go
#	common/persistence/cassandra/matching_task_store_v2.go
#	common/persistence/cassandra/queue_v2_store.go
#	common/persistence/data_interfaces.go
#	common/persistence/faultinjection/cluster_metadata_store_gen.go
#	common/persistence/faultinjection/data_store_factory.go
#	common/persistence/faultinjection/execution_store_gen.go
#	common/persistence/faultinjection/fault_generator.go
#	common/persistence/faultinjection/gowrap_template
#	common/persistence/faultinjection/metadata_store_gen.go
#	common/persistence/faultinjection/method_fault_generator.go
#	common/persistence/faultinjection/nexus_endpoint_store_gen.go
#	common/persistence/faultinjection/queue_gen.go
#	common/persistence/faultinjection/queue_v2_gen.go
#	common/persistence/faultinjection/shard_store_gen.go
#	common/persistence/faultinjection/store_fault_generator.go
#	common/persistence/faultinjection/task_store_gen.go
#	common/persistence/persistence_interface.go
#	common/persistence/persistencetest/queues.go
#	common/persistence/persistencetest/queues_test.go
#	common/persistence/serialization/codec.go
#	common/persistence/serialization/codec_test.go
#	common/persistence/serialization/serializer.go
#	common/persistence/serialization/task_serializers.go
#	common/persistence/serialization/task_serializers_test.go
#	common/persistence/sql/sqlplugin/mysql/session/session.go
#	common/persistence/sql/sqlplugin/mysql/visibility.go
#	common/persistence/sql/sqlplugin/postgresql/driver/interface.go
#	common/persistence/sql/sqlplugin/postgresql/driver/pgx.go
#	common/persistence/sql/sqlplugin/postgresql/driver/pq.go
#	common/persistence/sql/sqlplugin/postgresql/plugin.go
#	common/persistence/sql/sqlplugin/postgresql/session/session.go
#	common/persistence/sql/sqlplugin/sqlite/driver.go
#	common/persistence/sql/sqlplugin/sqlite/plugin.go
#	common/persistence/task_manager.go
#	common/persistence/tests/postgresql_test.go
#	common/persistence/tests/postgresql_test_util.go
#	common/persistence/tests/util.go
#	common/persistence/tests/visibility_persistence_suite.go
#	common/persistence/visibility/chasm_visibility_manager.go
#	common/persistence/visibility/chasm_visibility_manager_test.go
#	common/persistence/visibility/manager/visibility_manager.go
#	common/persistence/visibility/manager/visibility_manager_mock.go
#	common/persistence/visibility/store/elasticsearch/client/aws.go
#	common/persistence/visibility/store/elasticsearch/query_interceptors.go
#	common/persistence/visibility/store/elasticsearch/query_interceptors_test.go
#	common/persistence/visibility/store/elasticsearch/visibility_store.go
#	common/persistence/visibility/store/elasticsearch/visibility_store_read_test.go
#	common/persistence/visibility/store/query/converter.go
#	common/persistence/visibility/store/query/converter_test.go
#	common/persistence/visibility/store/sql/query_converter_legacy.go
#	common/persistence/visibility/store/sql/query_converter_legacy_test.go
#	common/persistence/visibility/store/sql/visibility_store.go
#	common/persistence/visibility/store/util.go
#	common/persistence/visibility/store/visibility_store.go
#	common/persistence/visibility/store/visibility_store_mock.go
#	common/persistence/visibility/visibility_manager_dual.go
#	common/persistence/visibility/visibility_manager_impl.go
#	common/persistence/visibility/visibility_manager_rate_limited.go
#	common/persistence/visibility/visiblity_manager_metrics.go
#	common/primitives/task_queues.go
#	common/quotas/clocked_rate_limiter.go
#	common/quotas/dynamic_rate_limiter_impl.go
#	common/quotas/priority_rate_limiter_impl.go
#	common/quotas/rate_burst.go
#	common/resource/fx.go
#	common/rpc/encryption/fixedTLSConfigProvider.go
#	common/rpc/encryption/local_store_tls_provider.go
#	common/rpc/encryption/tls_config_test.go
#	common/rpc/interceptor/dc_redirection_policy.go
#	common/rpc/interceptor/health_check.go
#	common/rpc/interceptor/logtags/admin_service_server_gen.go
#	common/rpc/interceptor/logtags/history_service_server_gen.go
#	common/rpc/interceptor/logtags/workflow_service_server_gen.go
#	common/rpc/interceptor/namespace_handover.go
#	common/rpc/interceptor/namespace_rate_limit.go
#	common/rpc/interceptor/namespace_validator.go
#	common/rpc/interceptor/namespace_validator_test.go
#	common/rpc/interceptor/rate_limit.go
#	common/rpc/interceptor/redirection.go
#	common/rpc/interceptor/redirection_test.go
#	common/rpc/interceptor/request_error_handler.go
#	common/rpc/interceptor/routing_key_interceptor_test.go
#	common/rpc/interceptor/service_error_interceptor.go
#	common/rpc/interceptor/service_error_interceptor_test.go
#	common/rpc/rpc.go
#	common/rpc/test/http_test.go
#	common/rpc/test/rpc_localstore_tls_test.go
#	common/searchattribute/encode.go
#	common/searchattribute/encode_test.go
#	common/searchattribute/manager.go
#	common/searchattribute/mapper.go
#	common/searchattribute/mapper_test.go
#	common/searchattribute/name_type_map.go
#	common/searchattribute/name_type_map_test.go
#	common/searchattribute/sadefs/encode_value.go
#	common/searchattribute/sadefs/encode_value_test.go
#	common/searchattribute/sadefs/util.go
#	common/searchattribute/search_attirbute.go
#	common/searchattribute/stringify.go
#	common/searchattribute/stringify_test.go
#	common/searchattribute/system_provider.go
#	common/searchattribute/test_provider.go
#	common/searchattribute/validator.go
#	common/serviceerror/convert.go
#	common/tasks/interleaved_weighted_round_robin_test.go
#	common/testing/historyrequire/history_require.go
#	common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go
#	common/testing/mocksdk/client_mock.go
#	common/testing/protorequire/require.go
#	common/testing/testhooks/hooks.go
#	common/testing/testhooks/test_impl.go
#	common/testing/testlogger/testlogger.go
#	common/testing/testvars/test_vars.go
#	common/tqid/task_queue_id.go
#	common/tqid/task_queue_id_test.go
#	common/tqid/task_queue_validator.go
#	common/util/util.go
#	common/util/wildcard.go
#	common/worker_versioning/version_membership_cache.go
#	common/worker_versioning/worker_versioning.go
#	common/worker_versioning/worker_versioning_test.go
#	components/callbacks/config.go
#	components/callbacks/config_test.go
#	components/callbacks/request.go
#	components/callbacks/request_test.go
#	components/nexusoperations/config.go
#	components/nexusoperations/executors_test.go
#	components/nexusoperations/fx.go
#	components/nexusoperations/workflow/commands.go
#	components/nexusoperations/workflow/commands_test.go
#	config/development-cluster-a.yaml
#	config/development-cluster-b.yaml
#	config/development-cluster-c.yaml
#	config/dynamicconfig/development-cass.yaml
#	config/dynamicconfig/development-sql.yaml
#	config/dynamicconfig/development-xdc.yaml
#	develop/docker-compose/docker-compose.yml
#	develop/docker-compose/grafana/provisioning/tempo/tempo.yaml
#	develop/github/docker-compose.yml
#	docker/docker-bake.hcl
#	docker/targets/admin-tools.Dockerfile
#	docker/targets/server.Dockerfile
#	docs/Makefile
#	docs/_assets/matching-context.d2
#	docs/_assets/retries.d2
#	docs/architecture/chasm.md
#	docs/architecture/nexus.md
#	docs/development/macos/cassandra.md
#	docs/development/testing.md
#	proto/internal/buf.yaml
#	proto/internal/temporal/server/api/adminservice/v1/request_response.proto
#	proto/internal/temporal/server/api/adminservice/v1/service.proto
#	proto/internal/temporal/server/api/archiver/v1/message.proto
#	proto/internal/temporal/server/api/batch/v1/request_response.proto
#	proto/internal/temporal/server/api/checksum/v1/message.proto
#	proto/internal/temporal/server/api/cli/v1/message.proto
#	proto/internal/temporal/server/api/clock/v1/message.proto
#	proto/internal/temporal/server/api/cluster/v1/message.proto
#	proto/internal/temporal/server/api/common/v1/api_category.proto
#	proto/internal/temporal/server/api/common/v1/dlq.proto
#	proto/internal/temporal/server/api/deployment/v1/message.proto
#	proto/internal/temporal/server/api/enums/v1/cluster.proto
#	proto/internal/temporal/server/api/enums/v1/common.proto
#	proto/internal/temporal/server/api/enums/v1/fairness_state.proto
#	proto/internal/temporal/server/api/enums/v1/nexus.proto
#	proto/internal/temporal/server/api/enums/v1/predicate.proto
#	proto/internal/temporal/server/api/enums/v1/replication.proto
#	proto/internal/temporal/server/api/enums/v1/task.proto
#	proto/internal/temporal/server/api/enums/v1/workflow.proto
#	proto/internal/temporal/server/api/enums/v1/workflow_task_type.proto
#	proto/internal/temporal/server/api/errordetails/v1/message.proto
#	proto/internal/temporal/server/api/health/v1/message.proto
#	proto/internal/temporal/server/api/history/v1/message.proto
#	proto/internal/temporal/server/api/historyservice/v1/request_response.proto
#	proto/internal/temporal/server/api/historyservice/v1/service.proto
#	proto/internal/temporal/server/api/matchingservice/v1/request_response.proto
#	proto/internal/temporal/server/api/matchingservice/v1/service.proto
#	proto/internal/temporal/server/api/metrics/v1/message.proto
#	proto/internal/temporal/server/api/namespace/v1/message.proto
#	proto/internal/temporal/server/api/persistence/v1/chasm.proto
#	proto/internal/temporal/server/api/persistence/v1/chasm_visibility.proto
#	proto/internal/temporal/server/api/persistence/v1/cluster_metadata.proto
#	proto/internal/temporal/server/api/persistence/v1/executions.proto
#	proto/internal/temporal/server/api/persistence/v1/history_tree.proto
#	proto/internal/temporal/server/api/persistence/v1/hsm.proto
#	proto/internal/temporal/server/api/persistence/v1/namespaces.proto
#	proto/internal/temporal/server/api/persistence/v1/nexus.proto
#	proto/internal/temporal/server/api/persistence/v1/predicates.proto
#	proto/internal/temporal/server/api/persistence/v1/queue_metadata.proto
#	proto/internal/temporal/server/api/persistence/v1/queues.proto
#	proto/internal/temporal/server/api/persistence/v1/task_queues.proto
#	proto/internal/temporal/server/api/persistence/v1/tasks.proto
#	proto/internal/temporal/server/api/persistence/v1/update.proto
#	proto/internal/temporal/server/api/persistence/v1/workflow_mutable_state.proto
#	proto/internal/temporal/server/api/replication/v1/message.proto
#	proto/internal/temporal/server/api/routing/v1/extension.proto
#	proto/internal/temporal/server/api/schedule/v1/message.proto
#	proto/internal/temporal/server/api/taskqueue/v1/message.proto
#	proto/internal/temporal/server/api/testservice/v1/request_response.proto
#	proto/internal/temporal/server/api/testservice/v1/service.proto
#	proto/internal/temporal/server/api/token/v1/message.proto
#	proto/internal/temporal/server/api/workflow/v1/message.proto
#	service/frontend/admin_handler.go
#	service/frontend/admin_handler_test.go
#	service/frontend/configs/quotas.go
#	service/frontend/configs/quotas_test.go
#	service/frontend/errors.go
#	service/frontend/fx.go
#	service/frontend/fx_test.go
#	service/frontend/health_check_test.go
#	service/frontend/namespace_handler.go
#	service/frontend/namespace_handler_test.go
#	service/frontend/nexus_completion_http_handler.go
#	service/frontend/nexus_handler.go
#	service/frontend/nexus_handler_test.go
#	service/frontend/nexus_operation_http_handler.go
#	service/frontend/nexus_operation_http_handler_test.go
#	service/frontend/operator_handler.go
#	service/frontend/operator_handler_test.go
#	service/frontend/service.go
#	service/frontend/workflow_handler.go
#	service/frontend/workflow_handler_second_test.go
#	service/frontend/workflow_handler_test.go
#	service/fx.go
#	service/history/api/command_attr_validator.go
#	service/history/api/command_attr_validator_test.go
#	service/history/api/create_workflow_util.go
#	service/history/api/describeworkflow/api.go
#	service/history/api/get_workflow_util.go
#	service/history/api/multioperation/api.go
#	service/history/api/namespace.go
#	service/history/api/pauseactivity/api.go
#	service/history/api/pollupdate/api_test.go
#	service/history/api/queryworkflow/api.go
#	service/history/api/recordactivitytaskstarted/api.go
#	service/history/api/recordactivitytaskstarted/api_test.go
#	service/history/api/recordworkflowtaskstarted/api.go
#	service/history/api/removesignalmutablestate/api.go
#	service/history/api/resetactivity/api.go
#	service/history/api/resetworkflow/api.go
#	service/history/api/respondactivitytaskcanceled/api.go
#	service/history/api/respondactivitytaskcompleted/api.go
#	service/history/api/respondactivitytaskfailed/api.go
#	service/history/api/respondactivitytaskfailed/api_test.go
#	service/history/api/respondworkflowtaskcompleted/api.go
#	service/history/api/respondworkflowtaskcompleted/api_test.go
#	service/history/api/respondworkflowtaskcompleted/workflow_task_completed_handler.go
#	service/history/api/respondworkflowtaskcompleted/workflow_task_completed_handler_test.go
#	service/history/api/respondworkflowtaskfailed/api.go
#	service/history/api/signalwithstartworkflow/api.go
#	service/history/api/signalwithstartworkflow/convert.go
#	service/history/api/signalwithstartworkflow/signal_with_start_workflow.go
#	service/history/api/signalwithstartworkflow/signal_with_start_workflow_test.go
#	service/history/api/signalworkflow/api.go
#	service/history/api/startworkflow/api.go
#	service/history/api/unpauseactivity/api.go
#	service/history/api/updateactivityoptions/api.go
#	service/history/api/updateactivityoptions/api_test.go
#	service/history/api/updateworkflow/api.go
#	service/history/api/updateworkflowoptions/api.go
#	service/history/api/updateworkflowoptions/api_test.go
#	service/history/api/verifychildworkflowcompletionrecorded/api.go
#	service/history/api/verifyfirstworkflowtaskscheduled/api_test.go
#	service/history/api/worker_versioning_util.go
#	service/history/api/workflow_id_dedup.go
#	service/history/api/workflow_id_dedup_test.go
#	service/history/archival_queue_factory_test.go
#	service/history/chasm_engine.go
#	service/history/chasm_engine_test.go
#	service/history/chasm_task_util.go
#	service/history/configs/config.go
#	service/history/configs/quotas.go
#	service/history/consts/const.go
#	service/history/deletemanager/delete_manager.go
#	service/history/deletemanager/delete_manager_test.go
#	service/history/fx.go
#	service/history/handler.go
#	service/history/history_engine.go
#	service/history/history_engine2_test.go
#	service/history/history_engine_factory.go
#	service/history/history_engine_test.go
#	service/history/history_test.go
#	service/history/historybuilder/event_factory.go
#	service/history/historybuilder/event_store.go
#	service/history/historybuilder/history_builder.go
#	service/history/historybuilder/history_builder_categorization_test.go
#	service/history/historybuilder/history_builder_test.go
#	service/history/interfaces/chasm_tree.go
#	service/history/interfaces/chasm_tree_mock.go
#	service/history/interfaces/mutable_state.go
#	service/history/interfaces/mutable_state_mock.go
#	service/history/interfaces/shard_context.go
#	service/history/interfaces/shard_context_mock.go
#	service/history/interfaces/workflow_context.go
#	service/history/interfaces/workflow_context_mock.go
#	service/history/ndc/events_reapplier_test.go
#	service/history/ndc/transaction_manager.go
#	service/history/ndc/transaction_manager_existing_workflow.go
#	service/history/ndc/transaction_manager_existing_workflow_test.go
#	service/history/ndc/transaction_manager_new_workflow.go
#	service/history/ndc/transaction_manager_new_workflow_test.go
#	service/history/ndc/workflow.go
#	service/history/ndc/workflow_mock.go
#	service/history/ndc/workflow_resetter.go
#	service/history/ndc/workflow_resetter_test.go
#	service/history/ndc/workflow_state_replicator_test.go
#	service/history/ndc_standby_task_util.go
#	service/history/ndc_task_util.go
#	service/history/outbound_queue_active_task_executor.go
#	service/history/outbound_queue_active_task_executor_test.go
#	service/history/outbound_queue_factory.go
#	service/history/outbound_queue_standby_task_executor.go
#	service/history/outbound_queue_standby_task_executor_test.go
#	service/history/queue_factory_base.go
#	service/history/queue_factory_base_test.go
#	service/history/queues/active_standby_executor.go
#	service/history/queues/active_standby_executor_test.go
#	service/history/queues/dlq_writer.go
#	service/history/queues/dlq_writer_test.go
#	service/history/queues/executable.go
#	service/history/queues/executable_factory.go
#	service/history/queues/executable_mock.go
#	service/history/queues/executable_test.go
#	service/history/queues/grouper.go
#	service/history/queues/metrics.go
#	service/history/queues/metrics_test.go
#	service/history/queues/priority_assigner.go
#	service/history/queues/queue_base.go
#	service/history/queues/queue_immediate.go
#	service/history/queues/queue_immediate_test.go
#	service/history/queues/reader.go
#	service/history/queues/scheduler.go
#	service/history/queues/speculative_workflow_task_timeout_queue.go
#	service/history/replication/ack_manager.go
#	service/history/replication/dlq_writer.go
#	service/history/replication/dlq_writer_test.go
#	service/history/replication/executable_sync_versioned_transition_task.go
#	service/history/replication/executable_task.go
#	service/history/replication/executable_task_converter.go
#	service/history/replication/executable_task_mock.go
#	service/history/replication/executable_task_tool_box.go
#	service/history/replication/executable_verify_versioned_transition_task.go
#	service/history/replication/fx.go
#	service/history/replication/metrics.go
#	service/history/replication/progress_cache.go
#	service/history/replication/progress_cache_test.go
#	service/history/replication/raw_task_converter.go
#	service/history/replication/raw_task_converter_test.go
#	service/history/replication/stream_receiver.go
#	service/history/replication/stream_receiver_monitor.go
#	service/history/replication/stream_receiver_monitor_test.go
#	service/history/replication/stream_sender.go
#	service/history/replication/task_processor.go
#	service/history/replication/task_processor_manager.go
#	service/history/replication/task_processor_manager_test.go
#	service/history/replication/task_processor_test.go
#	service/history/service.go
#	service/history/shard/context_factory.go
#	service/history/shard/context_impl.go
#	service/history/shard/context_test.go
#	service/history/shard/context_testutil.go
#	service/history/shard/controller_test.go
#	service/history/shard/fx.go
#	service/history/tasks/chasm_task.go
#	service/history/tasks/delete_workflow_execution_stage.go
#	service/history/tasks/predicates.go
#	service/history/tasks/state_machine_task.go
#	service/history/tasks/task.go
#	service/history/tasks/task_mock.go
#	service/history/tasks/utils.go
#	service/history/timer_queue_active_task_executor.go
#	service/history/timer_queue_active_task_executor_test.go
#	service/history/timer_queue_standby_task_executor.go
#	service/history/timer_queue_standby_task_executor_test.go
#	service/history/timer_queue_task_executor_base.go
#	service/history/timer_queue_task_executor_base_test.go
#	service/history/transfer_queue_active_task_executor.go
#	service/history/transfer_queue_active_task_executor_test.go
#	service/history/transfer_queue_factory.go
#	service/history/transfer_queue_standby_task_executor.go
#	service/history/transfer_queue_standby_task_executor_test.go
#	service/history/visibility_queue_factory.go
#	service/history/visibility_queue_task_executor.go
#	service/history/visibility_queue_task_executor_test.go
#	service/history/worker_versioning_util.go
#	service/history/workflow/activity.go
#	service/history/workflow/cache/cache.go
#	service/history/workflow/command_handler.go
#	service/history/workflow/context.go
#	service/history/workflow/fx.go
#	service/history/workflow/metrics.go
#	service/history/workflow/metrics_test.go
#	service/history/workflow/mutable_state_impl.go
#	service/history/workflow/mutable_state_impl_restart_activity_test.go
#	service/history/workflow/mutable_state_impl_test.go
#	service/history/workflow/mutable_state_rebuilder.go
#	service/history/workflow/mutable_state_rebuilder_test.go
#	service/history/workflow/noop_chasm_tree.go
#	service/history/workflow/retry.go
#	service/history/workflow/task_generator.go
#	service/history/workflow/task_generator_mock.go
#	service/history/workflow/task_generator_provider.go
#	service/history/workflow/task_generator_test.go
#	service/history/workflow/task_refresher.go
#	service/history/workflow/timer_sequence.go
#	service/history/workflow/update/abort_reason.go
#	service/history/workflow/update/errors_failures.go
#	service/history/workflow/update/export_test.go
#	service/history/workflow/update/store.go
#	service/history/workflow/update/store_mock_test.go
#	service/history/workflow/update/update.go
#	service/history/workflow/update/update_test.go
#	service/history/workflow/update/validation.go
#	service/history/workflow/util.go
#	service/history/workflow/workflow_task_state_machine.go
#	service/history/workflow/workflow_test/mutable_state_impl_test.go
#	service/matching/backlog_manager_test.go
#	service/matching/config.go
#	service/matching/configs/quotas.go
#	service/matching/counter/cmsketch.go
#	service/matching/counter/cmsketch_test.go
#	service/matching/counter/hybrid.go
#	service/matching/db.go
#	service/matching/fair_backlog_manager.go
#	service/matching/fair_task_reader.go
#	service/matching/forwarder.go
#	service/matching/fx.go
#	service/matching/handler.go
#	service/matching/handler_test.go
#	service/matching/matcher.go
#	service/matching/matcher_data.go
#	service/matching/matcher_data_test.go
#	service/matching/matching_engine.go
#	service/matching/matching_engine_test.go
#	service/matching/physical_task_queue_key.go
#	service/matching/physical_task_queue_key_test.go
#	service/matching/physical_task_queue_manager.go
#	service/matching/physical_task_queue_manager_interface.go
#	service/matching/physical_task_queue_manager_mock.go
#	service/matching/physical_task_queue_manager_test.go
#	service/matching/pri_backlog_manager.go
#	service/matching/pri_forwarder.go
#	service/matching/pri_matcher.go
#	service/matching/pri_matcher_test.go
#	service/matching/pri_task_reader.go
#	service/matching/task.go
#	service/matching/task_queue_partition_manager.go
#	service/matching/task_queue_partition_manager_test.go
#	service/matching/task_tracker.go
#	service/matching/task_tracker_test.go
#	service/matching/task_validation.go
#	service/matching/user_data_manager.go
#	service/matching/user_data_manager_test.go
#	service/matching/workers/registry.go
#	service/matching/workers/registry_impl.go
#	service/matching/workers/registry_impl_test.go
#	service/matching/workers/registry_test.go
#	service/matching/workers/worker_query_engine.go
#	service/matching/workers/worker_query_engine_test.go
#	service/worker/batcher/activities.go
#	service/worker/batcher/activities_test.go
#	service/worker/deletenamespace/deleteexecutions/activities.go
#	service/worker/deletenamespace/deleteexecutions/workflow_test.go
#	service/worker/deletenamespace/fx.go
#	service/worker/dummy/workflow.go
#	service/worker/fx.go
#	service/worker/migration/activities.go
#	service/worker/migration/activities_test.go
#	service/worker/migration/force_replication_workflow.go
#	service/worker/migration/force_replication_workflow_test.go
#	service/worker/migration/fx.go
#	service/worker/migration/handover_workflow.go
#	service/worker/migration/handover_workflow_test.go
#	service/worker/scheduler/activities.go
#	service/worker/scheduler/activities_test.go
#	service/worker/scheduler/workflow.go
#	service/worker/workerdeployment/activities.go
#	service/worker/workerdeployment/client.go
#	service/worker/workerdeployment/fx.go
#	service/worker/workerdeployment/util.go
#	service/worker/workerdeployment/util_test.go
#	service/worker/workerdeployment/version_activities.go
#	service/worker/workerdeployment/version_workflow.go
#	service/worker/workerdeployment/version_workflow_test.go
#	service/worker/workerdeployment/workflow.go
#	service/worker/workerdeployment/workflow_test.go
#	temporal/fx.go
#	temporal/server_option.go
#	temporal/server_options.go
#	tests/acquire_shard_test.go
#	tests/activity_api_batch_reset_test.go
#	tests/activity_api_batch_unpause_test.go
#	tests/activity_api_batch_update_options_test.go
#	tests/activity_api_pause_test.go
#	tests/activity_api_reset_test.go
#	tests/activity_api_rules_test.go
#	tests/activity_api_update_test.go
#	tests/activity_test.go
#	tests/add_tasks_test.go
#	tests/admin_test.go
#	tests/advanced_visibility_test.go
#	tests/archival_test.go
#	tests/callbacks_migration_test.go
#	tests/callbacks_test.go
#	tests/cancel_workflow_test.go
#	tests/chasm_test.go
#	tests/child_workflow_test.go
#	tests/client_data_converter_test.go
#	tests/client_misc_test.go
#	tests/continue_as_new_test.go
#	tests/describe_test.go
#	tests/dlq_test.go
#	tests/links_test.go
#	tests/max_buffered_event_test.go
#	tests/namespace_interceptor_test.go
#	tests/namespace_test.go
#	tests/nexus_api_test.go
#	tests/nexus_api_validation_test.go
#	tests/nexus_endpoint_test.go
#	tests/nexus_test_base.go
#	tests/nexus_workflow_test.go
#	tests/pause_workflow_execution_test.go
#	tests/premature_eos_test.go
#	tests/priority_fairness_test.go
#	tests/purge_dlq_tasks_api_test.go
#	tests/query_workflow_test.go
#	tests/relay_task_test.go
#	tests/schedule_migration_test.go
#	tests/schedule_test.go
#	tests/signal_workflow_test.go
#	tests/sizelimit_test.go
#	tests/stickytq_test.go
#	tests/task_queue_stats_test.go
#	tests/task_queue_test.go
#	tests/testcore/context.go
#	tests/testcore/dynamic_config_overrides.go
#	tests/testcore/functional_test_base.go
#	tests/testcore/matching_behavior.go
#	tests/testcore/onebox.go
#	tests/testcore/shard_salt.txt
#	tests/testcore/test_cluster.go
#	tests/testcore/test_cluster_pool.go
#	tests/testcore/test_env.go
#	tests/transient_task_test.go
#	tests/update_workflow_sdk_test.go
#	tests/update_workflow_test.go
#	tests/user_metadata_test.go
#	tests/user_timers_test.go
#	tests/versioning_3_test.go
#	tests/versioning_test.go
#	tests/worker_deployment_test.go
#	tests/worker_deployment_version_test.go
#	tests/workflow_alias_search_attribute_test.go
#	tests/workflow_buffered_events_test.go
#	tests/workflow_delete_execution_test.go
#	tests/workflow_failures_test.go
#	tests/workflow_memo_test.go
#	tests/workflow_task_reported_problems_test.go
#	tests/workflow_test.go
#	tests/workflow_timer_test.go
#	tests/workflow_visibility_test.go
#	tests/xdc/base.go
#	tests/xdc/chasm_test.go
#	tests/xdc/failover_test.go
#	tests/xdc/history_replication_dlq_test.go
#	tests/xdc/history_replication_signals_and_updates_test.go
#	tests/xdc/nexus_request_forwarding_test.go
#	tests/xdc/nexus_state_replication_test.go
#	tests/xdc/stream_based_replication_test.go
#	tests/xdc/visibility_test.go
#	tools/elasticsearch/handler.go
#	tools/elasticsearch/main.go
#	tools/elasticsearch/tasks.go
#	tools/flakereport/flakereport.go
#	tools/flakereport/github.go
#	tools/flakereport/slack.go
#	tools/flakereport/types.go
#	tools/flakereport/writer.go
#	tools/tdbg/chasm_registry.go
#	tools/tdbg/commands.go
#	tools/tdbg/flags.go
#	tools/tdbg/task_queue_commands.go
#	tools/tdbg/task_queue_commands_test.go
#	tools/tdbg/tdbg_commands.go
#	tools/tdbg/util.go
#	tools/testrunner/junit.go
#	tools/testrunner/junit_test.go
#	tools/testrunner/log.go
#	tools/testrunner/log_test.go
#	tools/testrunner/testdata/junit-alerts-output.xml
#	tools/testrunner/testdata/junit-crash-output.xml
#	tools/testrunner/testdata/junit-empty.xml
#	tools/testrunner/testdata/junit-timeout-output.xml
#	tools/testrunner/testrunner.go
#	tools/testrunner/testrunner_test.go
2026-06-02 10:02:39 -07:00
Roey BermanandGitHub 453df8f1a2 Rename the dynamic config components.callbacks.allowedAddresses to callback.allowedAddresses. (#10234)
## What changed?

Use the new dynamic config instead of leaving it as a placeholder and
update its documentation.

Also bumps the server version constant to `1.32.0`. This was supposed to
be done after the `1.31.0` release and was missed.

## Why?

Remove duplication as we migrate the code to the CHASM backed
implementation.

## Potential risks

This config is only relevant for external endpoints which are
experimental or older server versions, needs to be called out in the
release notes.
2026-05-16 19:32:02 -07:00
zeekay 8f279a783a chore: drop dead config + ship-shape Dockerfile/Makefile/k8s
- rm config/ (cassandra/mysql/postgres/dual-cluster fork yamls)
- rm develop/ (fork docker-compose / grafana / temporalio-dashboards submodule)
- rm docs/{admin,architecture,development,_assets,ui-screenshots,Makefile,README.md,worker-versioning.md}
  (kept docs/red-review-zap-sdk.md — pkg/sdk port review)
- rm k8s/{configmap.yaml,init-db.yaml,kms-secrets.yaml} (dynamic config + Postgres init for fork)
- rm .gitmodules (was: temporalio-dashboards Grafana, gone)
- Dockerfile: 27 lines, no CGO, no SQLite driver, exposes :9999 (ZAP) + :7243 (HTTP)
- Makefile: 30 lines, just build/ui/run/vet/test/tidy/clean
- k8s/deployment.yaml: single Deployment, single Service, single Ingress, /healthz probes
- k8s/kustomization.yaml: 2 resources (deployment + ingress)

Binary: 6.65 MB (-trimpath -ldflags="-s -w"), RSS 13 MB, boots <1s, all probes 200.
2026-04-26 14:57:25 -07:00
zeekay 760c29bb8d rebrand(env): rename all TEMPORAL_* env vars to TASKS_*
- common/config/loader.go: EnvKey* constants now TASKS_ROOT, TASKS_CONFIG_DIR, TASKS_ENVIRONMENT, etc.
- cmd/tasksd/main.go: --services flag EnvVars → TASKS_SERVICES
- tests/testutils: source root lookup uses TASKS_ROOT
- config/docker.yaml + common/config/config_template_embedded.yaml: all TEMPORAL_JWT_*, TEMPORAL_AUTH_*, TEMPORAL_TLS_*, TEMPORAL_BROADCAST_ADDRESS → TASKS_*
- k8s/deployment.yaml: env var names updated
- LLM.md: env var table updated; dropped "TEMPORAL_* prefix preserved" note

No backwards compatibility. Existing clusters must migrate env vars.
go build ./cmd/tasksd/... clean.
2026-04-18 17:24:30 -07:00
zeekay b695fbbfb2 feat: native multi-arch CI build + embedded SQLite deployment
- GitHub Actions: parallel amd64 + arm64 on self-hosted runners
  (lqd-build-amd64/arm64), multi-arch manifest, push to GAR
- Dockerfile: CGO-enabled Go build with sqlite support
- embedded-sqlite.yaml: file-based WAL persistence at /data/
- Build tags on test utility files to fix production builds
- Removed luxfi/zap local replace, using published v0.2.1
2026-04-17 11:22:28 -07:00
Vladyslav SimonenkoandGitHub 3081343d68 Add local JWT development server with key generation scripts (#9647)
## What changed?
- Added `development-jwt.yaml` config that runs Temporal with JWT
authorization enabled using a JWKS file loaded from local disk. Loading
from local disk is added in
https://github.com/temporalio/temporal/pull/9590.
- Added `config/jwt/setup-keys.sh` to generate an RSA key pair and JWKS
file in `/tmp/temporal-jwt-test/`.
- Added `config/jwt/generate-token.sh` to create signed JWTs for
testing.
  - Added `make start-jwt` target.
 
## Why?
Testing JWT authentication currently requires an external identity
provider or manual key/token setup. This provides a self-contained local
workflow: `make start-jwt` generates keys automatically and starts the
server with auth enforced, and `generate-token.sh` produces tokens on
demand.

## How did you test it?
- [X] built
- [X] run locally and tested manually
- [ ] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)

Tested this in conjunction with
https://github.com/temporalio/temporal/pull/9582. Was able to list the
workflows by passing the token and dumping their history. When the token
is not used, the auth fails with "Request denied".

## Potential risks
Keys are stored in /tmp/temporal-jwt-test/ which is world-readable. This
is acceptable for local development but the scripts should not be used
in shared or production environments.
2026-04-15 16:26:53 -07:00
Yu XiaandGitHub ac3d554453 Replace deprecated tctl comment with temporal cli (#9789)
## What changed?
Replace deprecated tctl comment with temporal cli

## Why?
tctl is deprecated

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)

## Potential risks
No. This is only local test config.
2026-04-02 11:17:42 -07:00
Stephan BehnkeandGitHub 379c8a6c6b Remove Nexus feature flag (#9512)
## What changed?

Deleted `"system.enableNexus"`.

## Why?

Nexus has been GA since Dec 2024.

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [x] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2026-03-13 18:50:16 +00:00
Stephan BehnkeandGitHub a008a9c39d Standardize YAML formatting (#9142)
## What changed?

Adds and integrates `yamlfmt` (Go-based, by Google).

Anything not annotated was changed by `yamlfmt`.

## Why?

Consistent YAML formatting. Reduce unrelated diffs caused by formatting
in PRs.

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [x] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2026-02-04 23:57:24 +00:00
Stephan BehnkeandGitHub 16b4884a79 Remove frontend.enableExecuteMultiOperation (#8818)
ExecuteMultiOperation has been GA for a while now.
2025-12-22 22:31:56 +00:00
Fred TzengandDan Davison 8d7bbbb066 Add dynamic config to toggle standalone activity functionality (#8796)
## What changed?
Add dynamic config to toggle standalone activity functionality.
Refactored frontend dynamic config into activity config. Removed
standalone activity dc prefix `chasm`

## Why?
We need the ability to toggle standalone activity functionality as we go
to prod. We also agreed to remove the `chasm` prefix from any chasm
originated dynamic config keys

## How did you test it?
- [X] built
- [X] run locally and tested manually
- [X] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2025-12-19 11:01:46 -05:00
Fred TzengandDan Davison c07ae05f71 Change dev environment to enable chasm (#8778)
## What changed?
Change dev environment to enable Chasm

## Why?
Chasm should be enabled for development by default so devs don't have to
explicitly set the config.

## How did you test it?
- [X] built
- [X] run locally and tested manually
- [X] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2025-12-19 11:01:46 -05:00
Shahab TajikandGitHub 23b8cb6982 Add revision number to Version Data (#8722)
## What changed?
Add revision number to Worker Deployment Version Data that is synced to
Task Queues.

## Why?
This allows making task queue registration also async, but more
importantly, it prevent's race conditions between concurrent
registrations, setCurrent/Ramping, drainage, and deletion.

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [x] added new unit test(s)
- [ ] added new functional test(s)

## Potential risks
None.
2025-12-13 05:51:54 +00:00
Shahab TajikandGitHub a05874dc7a Add replay test for async Versioning wfs (#8721)
## What changed?
WISOTT

## Why?
Prevent incompatible changes in the future.

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [x] added new unit test(s)
- [ ] added new functional test(s)

## Potential risks
None
2025-12-03 14:03:30 -05:00
298643d670 Update Configuration Loading (#8477)
## What Changed

This PR introduces a new `--config-file` flag (and the
`TEMPORAL_SERVER_CONFIG_FILE_PATH ` environment variable) to remove the
dependency on `dockerize` in the Temporal server Docker image.

When a configuration file is specified using either the CLI flag or the
environment variable, the server will load configuration **only** from
that file.
Users who want templating behavior similar to `dockerize` can enable it
by adding the comment `# enable-template` at the top of the
configuration file.

---

### Key Changes

1. **New `--config-file` flag:**

* Adds a global `--config-file` flag that accepts a path to a single
configuration file (absolute or relative to the project root).
* Can also be set via the `TEMPORAL_SERVER_CONFIG_FILE_PATH `
environment variable.

2. **Deprecated legacy flags:**

* The `--config`, `--env`, and `--zone` flags are now marked as
**deprecated** in CLI help text.
   * These flags still work for backward compatibility.

3. **Embedded config template:**

* The `config_template.yaml` file is now embedded in the binary to
support loading configuration from environment variables.
* Templating is supported if the file includes the `# enable-template`
comment at the top.

4. **Templating support:**

* Configuration files can use templating by including `#
enable-template` at the beginning of the YAML file.

---

### Configuration Loading Priority (Highest to Lowest)

1. **`--config-file` specified** → Load that specific file
2. **`--config`, `--env`, or `--zone` specified** → Load from
configuration directory (**deprecated**)
3. **No configuration specified** → Load from embedded template using
environment variables (default)

---

### Expected Behavior

The following examples illustrate how the new configuration loading
logic behaves:

* **Default behavior:**
Running `temporal start` without flags loads configuration from
environment variables only using the embedded template.

* **Using `--config-file`:**
`temporal --config-file=/path/to/config.yaml start` loads configuration
from the specified file path.

* **Using `TEMPORAL_SERVER_CONFIG_FILE_PATH`:**
Setting `TEMPORAL_SERVER_CONFIG_FILE_PATH=/path/to/config.yaml temporal
start` has the same effect as using the flag.

* **Validation and error handling:**
The CLI returns clear error messages when conflicting flags or
environment variables are used, or when a specified file does not exist.
---

## Breaking Change

The default behavior of `temporal start` has changed.
It now loads configuration **from environment variables** instead of
using a default template path.

---------

Co-authored-by: Alex Stanfield <[email protected]>
Co-authored-by: michaely520 <[email protected]>
Co-authored-by: Yichao Yang <[email protected]>
Co-authored-by: David Reiss <[email protected]>
2025-11-18 16:23:25 +00:00
Roey BermanandGitHub ea5089d8e7 Add internal HTTP port in docker config templates (#8332)
## Why?

This was missed in #8327
2025-09-18 00:14:21 +00:00
Will DuanandGitHub 53fc220508 Fix task queue grouping for replication task scheduler (#8315)
## What changed?
Add custom grouping logic at replication low priority task scheduler

## Why?
To allow custom logic to group replication task.

## How did you test it?
- [x] built
- [x] run locally and tested manually
- [x] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)

## Potential risks
No risk.
2025-09-12 00:02:51 +00:00
Roey BermanandGitHub 2ee09dbdd0 Remove frontend.enableClientVersionCheck commented configs (#8288)
## Why?

The config was commented out in our development config files but has
been removed from the codebase since v1.18.
2025-09-05 17:39:10 +00:00
ShivamandGitHub a1a3e831b9 clear drainage status of a rollbacked version workflow (#8119)
## What changed?
- When a deactivated (drained/draining) version gets rollbacked to
becoming active again, the drainage information that was associated with
it will get cleared.
- This is required because when this version were to get deactivated
again, we need the code to start the drainage process on it again. Right
now, it was not doing that since we were not clearing the drainage
information which did not start a fresh drainage tracker for this
version!

*NOTE*: This change requires a patch to be present. This is because when
this scenario is replicated in production, it will result in two new
history calls (syncSummary as well as a CAN of the version workflow).
This will specifically happen when the rolled-back version gets
deactivated eventually, over
[here](https://github.com/temporalio/temporal/blob/d85e67120957a16e0c14278bfb00e80412f16f5c/service/worker/workerdeployment/version_workflow.go#L546)
- note how previously, since the drainage information was not cleared,
[this](https://github.com/temporalio/temporal/blob/d85e67120957a16e0c14278bfb00e80412f16f5c/service/worker/workerdeployment/version_workflow.go#L261)
was never executed!)

*How did I verify that this requires a patch*:

- Ran the replay test script before the fix introduced in this PR and
noticed:
<img width="793" height="79" alt="image"
src="https://github.com/user-attachments/assets/bb975d26-4ad1-4847-b477-b74c7d2f55e4"
/>

- Ran the replay test script after the fix introduced in this PR and
noticed:
<img width="911" height="99" alt="image"
src="https://github.com/user-attachments/assets/ad3ff3e1-666a-49b4-bda4-e05f3412d984"
/>

In other words, the total number of our entity workflows went up after
introducing this change and thus requires a patch gate!

## Why?
- we found a bug in the versioning entity workflows and this is an
effort to fix this!

## How did you test it?
- [ ] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [ ] added new unit test(s)
- [x] added new functional test(s)

## Potential risks
- yes, there is a risk of NDE's happening in production but I mitigated
that risk by placing the fix against a version gate.
2025-07-31 20:29:35 +00:00
Roey BermanandGitHub d32cb42914 Delete config overrides for eager workflow start (#8054)
Follow up to #8048
2025-07-16 18:26:05 +00:00
Adam HoracekandGitHub 74825cfdac Support for regex pattern in DefaultJWTClaimMapper permission parser (#7574)
## What changed?
Added support for parsing permissions from JWT claim using regular
expression

## Why?
Default JWT Claim Mapper expects permission in form `namespace:role`. If
it's not possible to configure JWT issuer to follow `namespace:role`
permissionsPattern can be set to regular expression with named groups to
parse permission. More details in issue gh-7560

## How did you test it?
- Unit tests
- Local tests
- Self hosted environment (ongoing)

## Potential risks
This change is only activated if new configuration is provided

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
WIP

## Is hotfix candidate?
No
2025-07-07 09:33:07 -07:00
YuriandGitHub 02452f21bc remove feature flag for activity commands (#7879)
## What changed?
Enable activity commands - remove feature flag.

## Why?
preparing for GA

## How did you test it?
- [X] built
- [X] run locally and tested manually
- [X] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2025-06-06 13:39:11 -07:00
Chetan GowdaandGitHub 82b29f79ca Implement statsd exporter for otel (#7827) 2025-05-29 19:18:49 -07:00
YuriandGitHub 4525290f98 Add flag to restore activity options to reset and update (#7824)
## What changed?
Added support for flags to restore activity options to reset activity
and update activity commands.

## Why?
Users should be able to reset/restore activity options.

## How did you test it?
- [X] built
- [X] run locally and tested manually
- [X] covered by existing tests
- [X] added new unit test(s)
- [X] added new functional test(s)
2025-05-29 08:31:24 -07:00
Rodrigo ZhouandGitHub eca81d81ab Support add search attribute in dual visibility (#7781) 2025-05-23 21:54:59 +00:00
Yichao YangandGitHub afcce6ffd1 Enable transition history in dev env and tests (#7737)
## What changed?
- Enable transition history in dev env and tests
- Reset state transition count when reporting nexus operation completion to a reset run

## Why?
- Exercise transition history and state-based replication path more
often
- Make chasm development and testing easier since it relies on
transition history

## How did you test it?
- [x] built
- [ ] run locally and tested manually
- [x] covered by existing tests
- [ ] added new unit test(s)
- [ ] added new functional test(s)
2025-05-08 15:23:24 -07:00
81841c1865 Add support for templating in configs (#6251)
## What changed?

Support for text/template was added to the config loading system. Sprig
is used for some useful templating functions, as used by dockerize and
helm.

## Why?

This avoids the need to use dockerize to render config templates when
deploying in containers. Without the need to write the intermediate
config to disk, the image can be immutable. Any volumes used to copy
over an alternative template can be read-only also, enabling more secure
deployment.

## How did you test it?

Built a `FROM scratch` image using the updated temporal-server binary
and confirmed that it would work when deployed using (slightly adjusted)
version of our helm charts.

## Potential risks

None.

## Documentation

Documentation should be updated to explain this new feature, but given
it's so close to the standard deployment setup with dockerize, this
doesn't need to block release of the feature imho.

## Is hotfix candidate?
No

---------

Co-authored-by: David Reiss <[email protected]>
2025-04-01 08:14:41 +01:00
Yichao YangandGitHub 2123bc5013 Enable execution timeout timer by default (#7457)
## What changed?
<!-- Describe what has changed in this PR -->
- Enable execution timeout timer by default

## Why?
<!-- Tell your future self why have you made these changes -->
- it's been several server releases since this feature is merged, it's
safe to enable it by default now without any backward compatibility
concerns
- Will remove the flag after next oss release if not issue reported
about it.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- Existing tests

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
- Very low. Already enabled in all production envs

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2025-03-21 17:44:21 -07:00
ShivamandGitHub b0952f4139 versioning-3.1: better replay tester (#7484)
## What changed?
<!-- Describe what has changed in this PR -->
- A better more robust replay tester covering the different API's made
possible in worker-versioning 3.1

## Why?
<!-- Tell your future self why have you made these changes -->
- To ensure that NDE changes made in these entity wf's can be caught in
the near future

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- These are tests

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2025-03-19 15:44:23 -04:00
Shahab TajikandGitHub f322a6e4ea Keep syncing User Data as long as version changes (#7320)
## What changed?
<!-- Describe what has changed in this PR -->

UserDataManger in child partitions constantly fetches data from the
parent partition. There is a safely mechanism to prevent busy loop in
case the parent returns result immediately instead of only when the data
is updated.
The safety mechanism did not work well with Versioning 3 because many
updates are involved in a single tests. With this update we relax the
safety check to only apply when the user data version remains the same
and continue to fetch the data asap as long as each time it gets new
data.

Here, also I'm relaxing the "requested task queue user data for version
greater than known version" errors to be thrown only for the root
partition, as they can normally happen for child partitions.

## Why?
<!-- Tell your future self why have you made these changes -->
So that back-to-back Versioning 3 APIs do not have to wait for a long
time.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
Existing tests.

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
Yes.
2025-02-12 17:12:56 -08:00
Shahab TajikandGitHub 7d80520546 Bump nexus-rpc/sdk-go tag to v0.2.0 (#7288)
## What changed?
<!-- Describe what has changed in this PR -->
The lib version accidentally went back in a previous PR. Fixing it here.

## Why?
<!-- Tell your future self why have you made these changes -->

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2025-02-07 02:24:44 +00:00
775f4bb264 Worker Deployment Version Drainage Status (#7158)
## What changed?
Add DrainageStatus child workflow to worker deployment system

## Why?
To periodically update the version workflow with results from
visibility.

## How did you test it?
Functional tests. Currently broken (see todo comment in code)

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->

---------

Co-authored-by: Shivam Saraf <[email protected]>
2025-02-06 15:41:35 -08:00
Kevin WooandGitHub 689a75e7f7 readme: fix formatting (#6775)
## What changed?
Fixed README formatting

## Why?
It didn't render correctly, which made it confusing to read.

## How did you test it?
n/a

## Potential risks
n/a

## Documentation
✅

## Is hotfix candidate?
No
2024-11-07 16:22:05 -08:00
Stephan BehnkeandGitHub 66bf867e8a Enable Update Workflow by default (#6385)
## What changed?
<!-- Describe what has changed in this PR -->

Enable Update Workflow (sync and async) by default.

Note that I'm leaving the flag and the code checks for now, in case we
need to disable it again.

## Why?
<!-- Tell your future self why have you made these changes -->

For public preview.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2024-08-08 14:27:00 -07:00
Hazel KimandGitHub e6b7e0e5cf modified ES visibility store to support custom visibility store (#6168)
## What changed?
<!-- Describe what has changed in this PR -->
- changed ES visibilityStore struct and some of its functions to public
- added namespaceRegistry, searchAttributesProvider,
searchAttributesMapperProvider arguments to custom visibility store
factory interface
- added field `closeTime` in DeleteExecutionVisibilityTask

## Why?
<!-- Tell your future self why have you made these changes -->

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2024-07-10 09:25:31 -04:00
pdoernerandGitHub c9e445fcd2 Add dynamic config for callback endpoint config (#6204)
## What changed?
<!-- Describe what has changed in this PR -->
Added a new per-namespace dynamic config for allowed callback addresses.
This dynamic config is a list of maps that currently supports two
entries:
* `Pattern:string` The host:port that this rule applies to. It is a
pattern because wildcard (`*`) matching is supported.
* `AllowInsecure:bool` Indicates whether `https` is required for this
address.

Added validation when processing StartWorkflow requests to ensure that
any attached callback URLs have a matching allowed address entry and
that the scheme matches the `AllowInsecure` setting.

## Why?
<!-- Tell your future self why have you made these changes -->
To be able to white-list allowed callback endpoints.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
Updated functional tests.
2024-06-28 12:31:43 -07:00
Roey BermanandGitHub 51321fc0b9 Remove /api/v1 from development DC (#6171)
We removed this prefix from all of the routes but forgot to modify the
development configs.
2024-06-19 00:06:40 +00:00
Yu XiaandGitHub aeb693805d Add round robin on replication task execution (#6087)
## What changed?
Add round robin on replication task execution

## Why?
With multiple clusters connect together, it is possible one busy cluster
flush the replication stack and cause replication lag on other clusters.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2024-06-07 23:16:35 +00:00
Norbert HuandGitHub a19ad6e260 Enable FE proxying history reads to history service as default (#5992)
This is a re-revert of https://github.com/temporalio/temporal/pull/5797
now that all changes moving forward will be part of 1.25 release.

## Why?
The new logic to proxy all FE history read operations to the history
service has been part of release 1.23 and it is now safe (w.r.t. FE and
history services deployment ordering) as part of release 1.25 to start
deprecating the legacy code.
2024-05-30 13:26:52 +00:00
Roey BermanandGitHub 868bd438e3 Properly dispatch requests for Nexus Worker Endpoints (#5997)
Also changed the semantics of cluster info's HTTPAddress to just be the
address, and not include the scheme.
We now use the TLS configuration to derive the URL scheme.
2024-05-24 18:59:25 +00:00
Hazel KimandGitHub c6bebde733 enabled shadow read for secondary visibility store (#5976)
## What changed?
<!-- Describe what has changed in this PR -->
- added EnableShadowReadMode config (default to false)
- if shadow read mode is enabled, perform shadow read from the secondary
visibility store for visibility read requests

## Why?
<!-- Tell your future self why have you made these changes -->
- to measure latency metrics from both visibility stores

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- tested locally, and verified that visibility read requests from both
visibility stores are getting reasonably same latencies

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
2024-05-23 18:45:58 -04:00
Prathyush PVandGitHub 0256c492f7 Changing MutableState cache to host-level by default (#5894)
## What changed?
We had added a configuration flag to make MutableState cache a
host-level cache.
Changing dynamic config to enable this flag by default and adjusting
cache size to 128K. We found that this size is appropriate for most
workloads we see.

Also setting host-level cache size to be 8K in development dynamic
config.

## Why?
Host level cache is better for cache utilization and it prevents the
problem of a smaller shard-level cache getting full with pinned
elements.

## How did you test it?
Running the cluster with load.

## Potential risks
None

## Documentation

## Is hotfix candidate?
No
2024-05-21 21:21:22 +00:00
Yichao YangandGitHub f65fc5983c Properly update workflow transition history (#5885)
## What changed?
<!-- Describe what has changed in this PR -->
- Properly update workflow transition history.
- Only update transition history when closing transaction as active
- Only update updates to replicated application state as state
transition (NOTE: this is a different concept from the existing state
transition counter we have in executionInfo, which is simply how many
times the mutable state object got updated.)
    - When sub state machine tree is dirty
    - When history event got generated.
    - When there's sync activity
- All other changes are either system level field update or not
replicated (e.g. buffer events or transient workflow task)

## Why?
<!-- Tell your future self why have you made these changes -->
- State-based replication rely on all clusters agree on the same
transition history. and replication task processing logic relies on the
transition history to detect missing or conflicting state transitions.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- Existing tests
- Added unit tests

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
- State transition history is behind a feature flag so no risk.

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
- N/A

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
- No
2024-05-21 13:38:44 -07:00
Roey BermanandGitHub bbaed34b3d Various (mostly) nexus related improvements (#5961)
- Combined all Nexus related feature flags into a single
`system.enableNexus` dynamic config.
  Dynamic configs that were _removed_ (some were namespace specific):
  - `frontend.enableNexusAPIs`
  - `frontend.enableCallbackAttachment`
  - `history.enableMutableStateTransitionHistory`
  - `history.outboundProcessorEnabled`
  - `component.nexusoperations.enabled`

- Added support for callback header attachment and propagation 
- WIP Support for `Worker` endpoint target - localhost only
- Added dynamic config for `cass` and `sql`:

  ```
  - component.nexusoperations.callback.endpoint.template:
- value:
http://localhost:7243/api/v1/namespaces/{{.NamespaceName}}/nexus/callback
  ```

- Properly handle gRPC errors coming from matching in the frontend nexus
handler
- Consider invalid Nexus responses a downstream error
- Fix panic when trying to get event ID for `StateMachineTimerTask`
(used for logging)
- Don't return `errNoRecentPoller` for nexus tasks
- Remove namespace wait in functional tests (not Nexus specific)
2024-05-21 12:21:32 -07:00
Alex ShtinandGitHub e478d75099 Fault Injection: execute operation while still returning an error to the caller (#5869)
## What changed?
<!-- Describe what has changed in this PR -->
Added new fault injection error `ExecuteAndTimeout`.

While working on this, I also figured out that fault injection code
required refactoring and renames. I will do it in separate PR.

## Why?
<!-- Tell your future self why have you made these changes -->
`ExecuteAndTimeout` is a special error which emulates case, when client
got a `Timeout` error, but operation actually reached persistence and
was executed successfully.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
Run locally.

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
No risks.

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
No.

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
No.
2024-05-07 11:43:57 -07:00
Norbert HuandGitHub 426b318601 Revert "Enable FE proxying history reads to history service as default (#5736)" (#5797)
## What changed?
This reverts commit e50c255722.

## Why?
This cleanup of deprecated code must wait until v1.25+
2024-04-25 22:01:25 +00:00
Norbert HuandGitHub e50c255722 Enable FE proxying history reads to history service as default (#5736)
## Why?
The new logic to proxy all FE history read operations to the history
service has been part of release 1.23 and it is now safe (w.r.t. FE and
history services deployment ordering) as part of release 1.24 to start
deprecating the legacy code.
2024-04-18 17:20:25 +00:00
Yichao YangandGitHub 5ba756b27e Workflow Execution Timeout Timer (#5588)
## What changed?
<!-- Describe what has changed in this PR -->
- Add new timer task type for workflow execution timeout & carry over
execution timeout timer state across runs in a workflow chain.
- This change depends on
https://github.com/temporalio/temporal/pull/5531 so that only one timer
task will be created on the standby side as well.
- New behavior is controlled via a feature flag.

## Why?
<!-- Tell your future self why have you made these changes -->
- For a workflow chain, we only need one execution timeout timer task
for the entire chain. Before this change, each run in the chain will
create a run timeout timer. If user set runTimeout == execution timeout
(which is the default if only execution timeout is specified!), then the
timeout timer for all the runs will fire at the exact same time (because
run timeout will be shortened to respect the execution timeout). This
can result in a timer burst for a single workflowID.

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- Added unit tests
- Tested locally with cron workflows.

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
- In worst case, workflow may not timeout properly.

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
- N/A, no change on behavior.

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
- No.
2024-04-08 11:11:24 -07:00
Dan DavisonandGitHub 5e3047850a Comments and docstrings (#5579)
Miscellaneous edits of comments and docstrings
2024-04-01 16:59:27 -07:00
Yichao YangandGitHub 27e52c4be1 Fix replication for UpdateWorkflowExecutionWithNew (#5531)
## What changed?
<!-- Describe what has changed in this PR -->
- When workflow in the source cluster completes and starts a new run in
the same transaction. Replication should also apply that in one
transaction in standby cluster. Today this only happens when the current
workflow closes with continue as new event, but there are other cases
like cron and retry where workflow can close with
completed/timedout/failed event and also has a new run.

## Why?
<!-- Tell your future self why have you made these changes -->
- Transactional guarantee should be preserved by replication

## How did you test it?
<!-- How have you verified this change? Tested locally? Added a unit
test? Checked in staging env? -->
- New unit tests
- Run canary using global namespace.

## Potential risks
<!-- Assuming the worst case, what can be broken when deploying this
change to production? -->
- Replication task may go to dlq in worst case

## Documentation
<!-- Have you made sure this change doesn't falsify anything currently
stated in `docs/`? If significant
new behavior is added, have you described that in `docs/`? -->
- N/A

## Is hotfix candidate?
<!-- Is this PR a hotfix candidate or does it require a notification to
be sent to the broader community? (Yes/No) -->
- No.
2024-03-25 10:47:29 -07:00