llama-deploy-appserver 0.3.14__tar.gz → 0.3.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/PKG-INFO +2 -2
  2. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/pyproject.toml +2 -2
  3. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/app.py +7 -2
  4. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/bootstrap.py +3 -0
  5. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/workflow_loader.py +21 -0
  6. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/README.md +0 -0
  7. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/__init__.py +0 -0
  8. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/configure_logging.py +0 -0
  9. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/correlation_id.py +0 -0
  10. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/deployment.py +0 -0
  11. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/deployment_config_parser.py +0 -0
  12. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/interrupts.py +0 -0
  13. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/process_utils.py +0 -0
  14. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/py.typed +0 -0
  15. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/routers/__init__.py +0 -0
  16. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/routers/deployments.py +0 -0
  17. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/routers/status.py +0 -0
  18. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/routers/ui_proxy.py +0 -0
  19. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/settings.py +0 -0
  20. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/stats.py +0 -0
  21. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/types.py +0 -0
  22. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/workflow_store/agent_data_store.py +0 -0
  23. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/workflow_store/keyed_lock.py +0 -0
  24. {llama_deploy_appserver-0.3.14 → llama_deploy_appserver-0.3.15}/src/llama_deploy/appserver/workflow_store/lru_cache.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: llama-deploy-appserver
3
- Version: 0.3.14
3
+ Version: 0.3.15
4
4
  Summary: Application server components for LlamaDeploy
5
5
  Author: Massimiliano Pippi, Adrian Lyjak
6
6
  Author-email: Massimiliano Pippi <mpippi@gmail.com>, Adrian Lyjak <adrianlyjak@gmail.com>
@@ -9,7 +9,7 @@ Requires-Dist: llama-index-workflows[server]>=2.6.0
9
9
  Requires-Dist: pydantic-settings>=2.10.1
10
10
  Requires-Dist: fastapi>=0.100.0
11
11
  Requires-Dist: websockets>=12.0
12
- Requires-Dist: llama-deploy-core>=0.3.14,<0.4.0
12
+ Requires-Dist: llama-deploy-core>=0.3.15,<0.4.0
13
13
  Requires-Dist: httpx>=0.24.0,<1.0.0
14
14
  Requires-Dist: prometheus-fastapi-instrumentator>=7.1.0
15
15
  Requires-Dist: packaging>=25.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "llama-deploy-appserver"
3
- version = "0.3.14"
3
+ version = "0.3.15"
4
4
  description = "Application server components for LlamaDeploy"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -14,7 +14,7 @@ dependencies = [
14
14
  "pydantic-settings>=2.10.1",
15
15
  "fastapi>=0.100.0",
16
16
  "websockets>=12.0",
17
- "llama-deploy-core>=0.3.14,<0.4.0",
17
+ "llama-deploy-core>=0.3.15,<0.4.0",
18
18
  "httpx>=0.24.0,<1.0.0",
19
19
  "prometheus-fastapi-instrumentator>=7.1.0",
20
20
  "packaging>=25.0",
@@ -37,6 +37,7 @@ from llama_deploy.appserver.workflow_loader import (
37
37
  load_environment_variables,
38
38
  load_workflows,
39
39
  start_dev_ui_process,
40
+ validate_required_env_vars,
40
41
  )
41
42
  from llama_deploy.core.config import DEFAULT_DEPLOYMENT_FILE_PATH
42
43
  from prometheus_fastapi_instrumentator import Instrumentator
@@ -168,7 +169,9 @@ def prepare_server(
168
169
  configure_settings(
169
170
  deployment_file_path=deployment_file or Path(DEFAULT_DEPLOYMENT_FILE_PATH)
170
171
  )
171
- load_environment_variables(get_deployment_config(), settings.resolved_config_parent)
172
+ cfg = get_deployment_config()
173
+ load_environment_variables(cfg, settings.resolved_config_parent)
174
+ validate_required_env_vars(cfg)
172
175
  if install:
173
176
  config = get_deployment_config()
174
177
  inject_appserver_into_target(config, settings.resolved_config_parent)
@@ -192,7 +195,9 @@ def start_server(
192
195
  deployment_file_path=deployment_file or Path(DEFAULT_DEPLOYMENT_FILE_PATH),
193
196
  reload=reload,
194
197
  )
195
- load_environment_variables(get_deployment_config(), settings.resolved_config_parent)
198
+ cfg = get_deployment_config()
199
+ load_environment_variables(cfg, settings.resolved_config_parent)
200
+ validate_required_env_vars(cfg)
196
201
 
197
202
  ui_process = None
198
203
  if proxy_ui:
@@ -18,6 +18,7 @@ from llama_deploy.appserver.workflow_loader import (
18
18
  inject_appserver_into_target,
19
19
  install_ui,
20
20
  load_environment_variables,
21
+ validate_required_env_vars,
21
22
  )
22
23
  from llama_deploy.core.git.git_util import (
23
24
  clone_repo,
@@ -50,6 +51,8 @@ def bootstrap_app_from_repo(
50
51
  )
51
52
  config = get_deployment_config()
52
53
  load_environment_variables(config, settings.resolved_config_parent)
54
+ # Fail fast if required env vars are missing
55
+ validate_required_env_vars(config)
53
56
 
54
57
  sdists = None
55
58
  if bootstrap_settings.bootstrap_sdists:
@@ -75,6 +75,27 @@ def load_environment_variables(config: DeploymentConfig, source_root: Path) -> N
75
75
  os.environ[key] = value
76
76
 
77
77
 
78
+ def validate_required_env_vars(config: DeploymentConfig) -> None:
79
+ """
80
+ Validate that all required environment variables are present and non-empty.
81
+
82
+ Raises:
83
+ RuntimeError: If any required env vars are missing or empty.
84
+ """
85
+ required = config.required_env_vars
86
+ if not required:
87
+ return
88
+ missing = [name for name in required if not os.environ.get(name)]
89
+ if missing:
90
+ missing_list = ", ".join(sorted(missing))
91
+ raise RuntimeError(
92
+ (
93
+ "Missing required environment variables defined in required_env_vars: "
94
+ f"{missing_list}. Provide them via your environment, .env files, or the deployment secrets."
95
+ )
96
+ )
97
+
98
+
78
99
  def parse_environment_variables(
79
100
  config: DeploymentConfig, source_root: Path
80
101
  ) -> dict[str, str]: