langchain-trigger-server 0.1.16__tar.gz → 0.1.18__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 langchain-trigger-server might be problematic. Click here for more details.
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/PKG-INFO +1 -1
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/app.py +31 -1
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/core.py +8 -1
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/database/interface.py +2 -1
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/database/supabase.py +4 -2
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/pyproject.toml +1 -1
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/.github/workflows/release.yml +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/.vscode/settings.json +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/README.md +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/cron_manager.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/database/__init__.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/decorators.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/triggers/cron_trigger.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/test_framework.py +0 -0
- {langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langchain-trigger-server
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.18
|
|
4
4
|
Summary: Generic event-driven triggers framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/langchain-ai/open-agent-platform
|
|
6
6
|
Project-URL: Repository, https://github.com/langchain-ai/open-agent-platform
|
{langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/app.py
RENAMED
|
@@ -72,6 +72,9 @@ class TriggerServer:
|
|
|
72
72
|
self,
|
|
73
73
|
auth_handler: Callable,
|
|
74
74
|
):
|
|
75
|
+
# Configure uvicorn logging to use consistent formatting
|
|
76
|
+
self._configure_uvicorn_logging()
|
|
77
|
+
|
|
75
78
|
self.app = FastAPI(
|
|
76
79
|
title="Triggers Server",
|
|
77
80
|
description="Event-driven triggers framework",
|
|
@@ -123,6 +126,31 @@ class TriggerServer:
|
|
|
123
126
|
async def shutdown_event():
|
|
124
127
|
await self.cron_manager.shutdown()
|
|
125
128
|
|
|
129
|
+
def _configure_uvicorn_logging(self) -> None:
|
|
130
|
+
"""Configure uvicorn loggers to use consistent formatting for production deployments."""
|
|
131
|
+
formatter = logging.Formatter("%(levelname)s: %(name)s - %(message)s")
|
|
132
|
+
|
|
133
|
+
# Configure uvicorn access logger
|
|
134
|
+
uvicorn_access_logger = logging.getLogger("uvicorn.access")
|
|
135
|
+
uvicorn_access_logger.handlers.clear()
|
|
136
|
+
access_handler = logging.StreamHandler()
|
|
137
|
+
access_handler.setFormatter(formatter)
|
|
138
|
+
uvicorn_access_logger.addHandler(access_handler)
|
|
139
|
+
|
|
140
|
+
# Configure uvicorn error logger
|
|
141
|
+
uvicorn_error_logger = logging.getLogger("uvicorn.error")
|
|
142
|
+
uvicorn_error_logger.handlers.clear()
|
|
143
|
+
error_handler = logging.StreamHandler()
|
|
144
|
+
error_handler.setFormatter(formatter)
|
|
145
|
+
uvicorn_error_logger.addHandler(error_handler)
|
|
146
|
+
|
|
147
|
+
# Configure uvicorn main logger
|
|
148
|
+
uvicorn_logger = logging.getLogger("uvicorn")
|
|
149
|
+
uvicorn_logger.handlers.clear()
|
|
150
|
+
main_handler = logging.StreamHandler()
|
|
151
|
+
main_handler.setFormatter(formatter)
|
|
152
|
+
uvicorn_logger.addHandler(main_handler)
|
|
153
|
+
|
|
126
154
|
def add_trigger(self, trigger: TriggerTemplate) -> None:
|
|
127
155
|
"""Add a trigger template to the app."""
|
|
128
156
|
# Check for duplicate IDs
|
|
@@ -152,7 +180,8 @@ class TriggerServer:
|
|
|
152
180
|
provider=trigger.provider,
|
|
153
181
|
name=trigger.name,
|
|
154
182
|
description=trigger.description,
|
|
155
|
-
registration_schema=trigger.registration_model.model_json_schema()
|
|
183
|
+
registration_schema=trigger.registration_model.model_json_schema(),
|
|
184
|
+
require_display_name=getattr(trigger.registration_model, 'require_display_name', False)
|
|
156
185
|
)
|
|
157
186
|
logger.info(f"✓ Successfully created trigger template: {trigger.name} ({trigger.id})")
|
|
158
187
|
else:
|
|
@@ -188,6 +217,7 @@ class TriggerServer:
|
|
|
188
217
|
"path": "/api/triggers/registrations",
|
|
189
218
|
"method": "POST",
|
|
190
219
|
"payloadSchema": template.get("registration_schema", {}),
|
|
220
|
+
"requireDisplayName": template.get("require_display_name", False),
|
|
191
221
|
})
|
|
192
222
|
|
|
193
223
|
return {
|
{langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/core.py
RENAMED
|
@@ -75,4 +75,11 @@ class TriggerRegistrationResult(BaseModel):
|
|
|
75
75
|
|
|
76
76
|
class TriggerRegistrationModel(BaseModel):
|
|
77
77
|
"""Base class for trigger resource models that define how webhooks are matched to registrations."""
|
|
78
|
-
|
|
78
|
+
|
|
79
|
+
require_display_name: bool = False # Class attribute to indicate if display_name is required
|
|
80
|
+
display_name: Optional[str] = Field(default=None, description="Optional display name for this registration")
|
|
81
|
+
|
|
82
|
+
def model_post_init(self, __context) -> None:
|
|
83
|
+
"""Validate that display_name is provided when require_display_name is True."""
|
|
84
|
+
if self.require_display_name and not self.display_name:
|
|
85
|
+
raise ValueError(f"{self.__class__.__name__} requires display_name to be set")
|
|
@@ -16,7 +16,8 @@ class TriggerDatabaseInterface(ABC):
|
|
|
16
16
|
provider: str,
|
|
17
17
|
name: str,
|
|
18
18
|
description: str = None,
|
|
19
|
-
registration_schema: Dict = None
|
|
19
|
+
registration_schema: Dict = None,
|
|
20
|
+
require_display_name: bool = False
|
|
20
21
|
) -> Optional[Dict[str, Any]]:
|
|
21
22
|
"""Create a new trigger template."""
|
|
22
23
|
pass
|
|
@@ -75,7 +75,8 @@ class SupabaseTriggerDatabase(TriggerDatabaseInterface):
|
|
|
75
75
|
provider: str,
|
|
76
76
|
name: str,
|
|
77
77
|
description: str = None,
|
|
78
|
-
registration_schema: Dict = None
|
|
78
|
+
registration_schema: Dict = None,
|
|
79
|
+
require_display_name: bool = False
|
|
79
80
|
) -> Optional[Dict[str, Any]]:
|
|
80
81
|
"""Create a new trigger template."""
|
|
81
82
|
try:
|
|
@@ -84,7 +85,8 @@ class SupabaseTriggerDatabase(TriggerDatabaseInterface):
|
|
|
84
85
|
"provider": provider,
|
|
85
86
|
"name": name,
|
|
86
87
|
"description": description,
|
|
87
|
-
"registration_schema": registration_schema or {}
|
|
88
|
+
"registration_schema": registration_schema or {},
|
|
89
|
+
"require_display_name": require_display_name
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
response = self.client.table("trigger_templates").insert(data).execute()
|
{langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/.github/workflows/release.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain_trigger_server-0.1.16 → langchain_trigger_server-0.1.18}/langchain_triggers/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|