@@ -50,6 +50,10 @@ class CliConfig:
5050 local_runner_region : str = "us-west-2"
5151 local_runner_mode : str = "local"
5252
53+ # Store configuration
54+ store_type : str = "memory"
55+ store_path : str | None = None
56+
5357 @classmethod
5458 def from_environment (cls ) -> CliConfig :
5559 """Create configuration from environment variables with defaults."""
@@ -65,6 +69,8 @@ def from_environment(cls) -> CliConfig:
6569 ),
6670 local_runner_region = os .getenv ("AWS_DEX_LOCAL_RUNNER_REGION" , "us-west-2" ),
6771 local_runner_mode = os .getenv ("AWS_DEX_LOCAL_RUNNER_MODE" , "local" ),
72+ store_type = os .getenv ("AWS_DEX_STORE_TYPE" , "memory" ),
73+ store_path = os .getenv ("AWS_DEX_STORE_PATH" ),
6874 )
6975
7076
@@ -175,6 +181,17 @@ def _create_start_server_parser(self, subparsers) -> None:
175181 default = self .config .local_runner_mode ,
176182 help = f"Local Runner mode (default: { self .config .local_runner_mode } , env: AWS_DEX_LOCAL_RUNNER_MODE)" ,
177183 )
184+ start_server_parser .add_argument (
185+ "--store-type" ,
186+ choices = ["memory" , "filesystem" ],
187+ default = self .config .store_type ,
188+ help = f"Store type for execution persistence (default: { self .config .store_type } , env: AWS_DEX_STORE_TYPE)" ,
189+ )
190+ start_server_parser .add_argument (
191+ "--store-path" ,
192+ default = self .config .store_path ,
193+ help = f"Path for filesystem store (default: { self .config .store_path or '.durable_executions' } , env: AWS_DEX_STORE_PATH)" ,
194+ )
178195 start_server_parser .set_defaults (func = self .start_server_command )
179196
180197 def _create_invoke_parser (self , subparsers ) -> None :
@@ -245,6 +262,8 @@ def start_server_command(self, args: argparse.Namespace) -> int:
245262 local_runner_endpoint = args .local_runner_endpoint ,
246263 local_runner_region = args .local_runner_region ,
247264 local_runner_mode = args .local_runner_mode ,
265+ store_type = args .store_type ,
266+ store_path = args .store_path ,
248267 )
249268
250269 logger .info (
@@ -260,6 +279,10 @@ def start_server_command(self, args: argparse.Namespace) -> int:
260279 logger .info (" Local Runner Endpoint: %s" , args .local_runner_endpoint )
261280 logger .info (" Local Runner Region: %s" , args .local_runner_region )
262281 logger .info (" Local Runner Mode: %s" , args .local_runner_mode )
282+ logger .info (" Store Type: %s" , args .store_type )
283+ if args .store_type == "filesystem" :
284+ store_path = args .store_path or ".durable_executions"
285+ logger .info (" Store Path: %s" , store_path )
263286
264287 # Use runner as context manager for proper lifecycle
265288 with WebRunner (runner_config ) as runner :
0 commit comments