langchain-trigger-server 0.1.15__tar.gz → 0.1.16__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.
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/PKG-INFO +1 -1
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/app.py +4 -4
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/database/interface.py +10 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/database/supabase.py +27 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/pyproject.toml +1 -1
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/.github/workflows/release.yml +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/.vscode/settings.json +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/README.md +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/core.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/cron_manager.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/database/__init__.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/decorators.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/triggers/cron_trigger.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/test_framework.py +0 -0
- {langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/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.16
|
|
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.15 → langchain_trigger_server-0.1.16}/langchain_triggers/app.py
RENAMED
|
@@ -255,18 +255,18 @@ class TriggerServer:
|
|
|
255
255
|
detail=f"Invalid payload for trigger: {str(e)}"
|
|
256
256
|
)
|
|
257
257
|
|
|
258
|
-
# Check for duplicate registration based on resource data
|
|
258
|
+
# Check for duplicate registration based on resource data within this user's scope
|
|
259
259
|
resource_dict = registration_instance.model_dump()
|
|
260
|
-
existing_registration = await self.database.
|
|
260
|
+
existing_registration = await self.database.find_user_registration_by_resource(
|
|
261
|
+
user_id=user_id,
|
|
261
262
|
template_id=trigger.id,
|
|
262
263
|
resource_data=resource_dict
|
|
263
264
|
)
|
|
264
265
|
|
|
265
|
-
# TODO(sam) figure out how to allow duplicates across users.....very unnatural constraint to have
|
|
266
266
|
if existing_registration:
|
|
267
267
|
raise HTTPException(
|
|
268
268
|
status_code=400,
|
|
269
|
-
detail=f"
|
|
269
|
+
detail=f"You already have a registration with this configuration for trigger type '{trigger.id}'. Registration ID: {existing_registration.get('id')}"
|
|
270
270
|
)
|
|
271
271
|
|
|
272
272
|
|
|
@@ -67,6 +67,16 @@ class TriggerDatabaseInterface(ABC):
|
|
|
67
67
|
"""Find trigger registration by matching resource data."""
|
|
68
68
|
pass
|
|
69
69
|
|
|
70
|
+
@abstractmethod
|
|
71
|
+
async def find_user_registration_by_resource(
|
|
72
|
+
self,
|
|
73
|
+
user_id: str,
|
|
74
|
+
template_id: str,
|
|
75
|
+
resource_data: Dict[str, Any]
|
|
76
|
+
) -> Optional[Dict[str, Any]]:
|
|
77
|
+
"""Find trigger registration by matching resource data for a specific user."""
|
|
78
|
+
pass
|
|
79
|
+
|
|
70
80
|
@abstractmethod
|
|
71
81
|
async def get_all_registrations(self, template_id: str) -> List[Dict[str, Any]]:
|
|
72
82
|
"""Get all registrations for a specific trigger template."""
|
|
@@ -250,6 +250,33 @@ class SupabaseTriggerDatabase(TriggerDatabaseInterface):
|
|
|
250
250
|
logger.error(f"Error finding registration by resource: {e}")
|
|
251
251
|
return None
|
|
252
252
|
|
|
253
|
+
async def find_user_registration_by_resource(
|
|
254
|
+
self,
|
|
255
|
+
user_id: str,
|
|
256
|
+
template_id: str,
|
|
257
|
+
resource_data: Dict[str, Any]
|
|
258
|
+
) -> Optional[Dict[str, Any]]:
|
|
259
|
+
"""Find trigger registration by matching resource data for a specific user."""
|
|
260
|
+
try:
|
|
261
|
+
# Build query to match against trigger_registrations with template_id and user_id filter
|
|
262
|
+
query = self.client.table("trigger_registrations").select(
|
|
263
|
+
"*, trigger_templates(id, name, description)"
|
|
264
|
+
).eq("trigger_templates.id", template_id).eq("user_id", user_id)
|
|
265
|
+
|
|
266
|
+
# Add resource field matches
|
|
267
|
+
for field, value in resource_data.items():
|
|
268
|
+
query = query.eq(f"resource->>{field}", value)
|
|
269
|
+
|
|
270
|
+
response = query.execute()
|
|
271
|
+
|
|
272
|
+
if response.data:
|
|
273
|
+
return response.data[0] # Return first match
|
|
274
|
+
return None
|
|
275
|
+
|
|
276
|
+
except Exception as e:
|
|
277
|
+
logger.error(f"Error finding user registration by resource: {e}")
|
|
278
|
+
return None
|
|
279
|
+
|
|
253
280
|
async def get_all_registrations(self, template_id: str) -> List[Dict[str, Any]]:
|
|
254
281
|
"""Get all registrations for a specific trigger template."""
|
|
255
282
|
try:
|
{langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/.github/workflows/release.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/__init__.py
RENAMED
|
File without changes
|
{langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/core.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain_trigger_server-0.1.15 → langchain_trigger_server-0.1.16}/langchain_triggers/decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|