vellum-workflow-server 1.7.13__tar.gz → 1.7.13.post1__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.

Potentially problematic release.


This version of vellum-workflow-server might be problematic. Click here for more details.

Files changed (34) hide show
  1. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/PKG-INFO +1 -1
  2. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/pyproject.toml +1 -1
  3. vellum_workflow_server-1.7.13.post1/src/workflow_server/logging_config.py +39 -0
  4. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/server.py +13 -5
  5. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/README.md +0 -0
  6. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/__init__.py +0 -0
  7. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/__init__.py +0 -0
  8. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/auth_middleware.py +0 -0
  9. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/healthz_view.py +0 -0
  10. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/tests/__init__.py +0 -0
  11. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/tests/test_input_display_mapping.py +0 -0
  12. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/tests/test_workflow_view.py +0 -0
  13. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/tests/test_workflow_view_stream_workflow_route.py +0 -0
  14. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/api/workflow_view.py +0 -0
  15. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/code_exec_runner.py +0 -0
  16. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/config.py +0 -0
  17. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/__init__.py +0 -0
  18. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/cancel_workflow.py +0 -0
  19. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/events.py +0 -0
  20. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/executor.py +0 -0
  21. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/utils.py +0 -0
  22. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/core/workflow_executor_context.py +0 -0
  23. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/start.py +0 -0
  24. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/__init__.py +0 -0
  25. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/exit_handler.py +0 -0
  26. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/log_proxy.py +0 -0
  27. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/oom_killer.py +0 -0
  28. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/sentry.py +0 -0
  29. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/system_utils.py +0 -0
  30. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/tests/__init__.py +0 -0
  31. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/tests/test_sentry_integration.py +0 -0
  32. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/tests/test_system_utils.py +0 -0
  33. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/tests/test_utils.py +0 -0
  34. {vellum_workflow_server-1.7.13 → vellum_workflow_server-1.7.13.post1}/src/workflow_server/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-workflow-server
3
- Version: 1.7.13
3
+ Version: 1.7.13.post1
4
4
  Summary:
5
5
  License: AGPL
6
6
  Requires-Python: >=3.9.0,<4
@@ -3,7 +3,7 @@ name = "vellum-workflow-server"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "vellum-workflow-server"
6
- version = "1.7.13"
6
+ version = "1.7.13.post1"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -0,0 +1,39 @@
1
+ from datetime import datetime
2
+ import json
3
+ import logging
4
+
5
+
6
+ class GCPJsonFormatter(logging.Formatter):
7
+ """
8
+ Custom JSON formatter for Google Cloud Platform logging.
9
+
10
+ Outputs logs in JSON format with a 'severity' field that GCP Cloud Logging
11
+ can properly parse. This ensures INFO logs show up as INFO in GCP instead of ERROR.
12
+
13
+ See: https://cloud.google.com/logging/docs/structured-logging
14
+ """
15
+
16
+ SEVERITY_MAP = {
17
+ "DEBUG": "DEBUG",
18
+ "INFO": "INFO",
19
+ "WARNING": "WARNING",
20
+ "ERROR": "ERROR",
21
+ "CRITICAL": "CRITICAL",
22
+ }
23
+
24
+ def format(self, record: logging.LogRecord) -> str:
25
+ log_obj = {
26
+ "severity": self.SEVERITY_MAP.get(record.levelname, "DEFAULT"),
27
+ "message": record.getMessage(),
28
+ "timestamp": datetime.utcfromtimestamp(record.created).isoformat() + "Z",
29
+ "logging.googleapis.com/sourceLocation": {
30
+ "file": record.pathname,
31
+ "line": record.lineno,
32
+ "function": record.funcName,
33
+ },
34
+ }
35
+
36
+ if record.exc_info:
37
+ log_obj["exception"] = self.formatException(record.exc_info)
38
+
39
+ return json.dumps(log_obj)
@@ -7,6 +7,7 @@ from workflow_server.api.auth_middleware import AuthMiddleware
7
7
  from workflow_server.api.healthz_view import bp as healthz_bp
8
8
  from workflow_server.api.workflow_view import bp as workflow_bp
9
9
  from workflow_server.config import is_development
10
+ from workflow_server.logging_config import GCPJsonFormatter
10
11
  from workflow_server.utils.sentry import init_sentry
11
12
  from workflow_server.utils.utils import get_version
12
13
 
@@ -14,11 +15,18 @@ from workflow_server.utils.utils import get_version
14
15
  # enable_log_proxy()
15
16
 
16
17
  logger = logging.getLogger(__name__)
17
- logging.basicConfig(
18
- level=logging.INFO,
19
- format="%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s",
20
- datefmt="%Y-%m-%d %H:%M:%S",
21
- )
18
+
19
+ if is_development():
20
+ logging.basicConfig(
21
+ level=logging.INFO,
22
+ format="%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s",
23
+ datefmt="%Y-%m-%d %H:%M:%S",
24
+ )
25
+ else:
26
+ handler = logging.StreamHandler()
27
+ handler.setFormatter(GCPJsonFormatter())
28
+ logging.root.addHandler(handler)
29
+ logging.root.setLevel(logging.INFO)
22
30
 
23
31
 
24
32
  def create_app() -> Flask: