Skip to content

Commit 157462d

Browse files
committed
further fixes
1 parent 36bead9 commit 157462d

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

backend/app/db/repositories/event_repository.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,17 @@ async def get_events_by_user(
159159
docs = await cursor.to_list(length=limit)
160160
return [self.mapper.from_mongo_document(doc) for doc in docs]
161161

162-
async def get_execution_events(self, execution_id: str, limit: int = 100, skip: int = 0) -> EventListResult:
163-
query = {"$or": [{EventFields.PAYLOAD_EXECUTION_ID: execution_id}, {EventFields.AGGREGATE_ID: execution_id}]}
162+
async def get_execution_events(
163+
self, execution_id: str, limit: int = 100, skip: int = 0, exclude_system_events: bool = False
164+
) -> EventListResult:
165+
query: dict[str, Any] = {
166+
"$or": [{EventFields.PAYLOAD_EXECUTION_ID: execution_id}, {EventFields.AGGREGATE_ID: execution_id}]
167+
}
168+
169+
# Filter out system events at DB level for accurate pagination
170+
if exclude_system_events:
171+
query[EventFields.METADATA_SERVICE_NAME] = {"$not": {"$regex": "^system-"}}
172+
164173
total_count = await self._collection.count_documents(query)
165174

166175
cursor = self._collection.find(query).sort(EventFields.TIMESTAMP, ASCENDING).skip(skip).limit(limit)

backend/app/services/event_service.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,13 @@ async def get_execution_events(
3737
limit: int = 1000,
3838
skip: int = 0,
3939
) -> EventListResult | None:
40-
result = await self.repository.get_execution_events(execution_id=execution_id, limit=limit, skip=skip)
40+
# Filter system events at DB level for accurate pagination
41+
result = await self.repository.get_execution_events(
42+
execution_id=execution_id,
43+
limit=limit,
44+
skip=skip,
45+
exclude_system_events=not include_system_events,
46+
)
4147
if not result.events:
4248
return EventListResult(events=[], total=0, skip=skip, limit=limit, has_more=False)
4349

@@ -50,17 +56,6 @@ async def get_execution_events(
5056
if owner and owner != user_id and user_role != UserRole.ADMIN:
5157
return None
5258

53-
if not include_system_events:
54-
filtered = [e for e in result.events if not (e.metadata and e.metadata.service_name.startswith("system-"))]
55-
# Recalculate has_more based on filtered count
56-
return EventListResult(
57-
events=filtered,
58-
total=result.total,
59-
skip=skip,
60-
limit=limit,
61-
has_more=result.has_more,
62-
)
63-
6459
return result
6560

6661
async def get_user_events_paginated(

docs/testing/kafka-test-stability.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
When running tests in parallel (e.g., with `pytest-xdist`), you might encounter sporadic crashes with messages like:
66

7-
```
7+
```text
88
Fatal Python error: Aborted
99
```
1010

0 commit comments

Comments
 (0)