diff --git a/cognee/api/v1/add/routers/get_add_router.py b/cognee/api/v1/add/routers/get_add_router.py index 62cb96a54..b2e7068b0 100644 --- a/cognee/api/v1/add/routers/get_add_router.py +++ b/cognee/api/v1/add/routers/get_add_router.py @@ -64,8 +64,11 @@ def get_add_router() -> APIRouter: send_telemetry( "Add API Endpoint Invoked", user.id, - additional_properties={"endpoint": "POST /v1/add", "node_set": node_set, "cognee_version": cognee_version}, - + additional_properties={ + "endpoint": "POST /v1/add", + "node_set": node_set, + "cognee_version": cognee_version, + }, ) from cognee.api.v1.add import add as cognee_add diff --git a/cognee/api/v1/cognify/routers/get_cognify_router.py b/cognee/api/v1/cognify/routers/get_cognify_router.py index 231acce16..231bbcd11 100644 --- a/cognee/api/v1/cognify/routers/get_cognify_router.py +++ b/cognee/api/v1/cognify/routers/get_cognify_router.py @@ -98,7 +98,7 @@ def get_cognify_router() -> APIRouter: user.id, additional_properties={ "endpoint": "POST /v1/cognify", - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/datasets/routers/get_datasets_router.py b/cognee/api/v1/datasets/routers/get_datasets_router.py index 3a5d7d3b2..eff87b3af 100644 --- a/cognee/api/v1/datasets/routers/get_datasets_router.py +++ b/cognee/api/v1/datasets/routers/get_datasets_router.py @@ -101,7 +101,7 @@ def get_datasets_router() -> APIRouter: user.id, additional_properties={ "endpoint": "GET /v1/datasets", - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -149,7 +149,7 @@ def get_datasets_router() -> APIRouter: user.id, additional_properties={ "endpoint": "POST /v1/datasets", - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -204,7 +204,7 @@ def get_datasets_router() -> APIRouter: additional_properties={ "endpoint": f"DELETE /v1/datasets/{str(dataset_id)}", "dataset_id": str(dataset_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -250,7 +250,7 @@ def get_datasets_router() -> APIRouter: "endpoint": f"DELETE /v1/datasets/{str(dataset_id)}/data/{str(data_id)}", "dataset_id": str(dataset_id), "data_id": str(data_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -332,7 +332,7 @@ def get_datasets_router() -> APIRouter: additional_properties={ "endpoint": f"GET /v1/datasets/{str(dataset_id)}/data", "dataset_id": str(dataset_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -393,7 +393,7 @@ def get_datasets_router() -> APIRouter: additional_properties={ "endpoint": "GET /v1/datasets/status", "datasets": [str(dataset_id) for dataset_id in datasets], - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -440,7 +440,7 @@ def get_datasets_router() -> APIRouter: "endpoint": f"GET /v1/datasets/{str(dataset_id)}/data/{str(data_id)}/raw", "dataset_id": str(dataset_id), "data_id": str(data_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/delete/routers/get_delete_router.py b/cognee/api/v1/delete/routers/get_delete_router.py index 977b042c9..3ff97681d 100644 --- a/cognee/api/v1/delete/routers/get_delete_router.py +++ b/cognee/api/v1/delete/routers/get_delete_router.py @@ -40,7 +40,7 @@ def get_delete_router() -> APIRouter: "endpoint": "DELETE /v1/delete", "dataset_id": str(dataset_id), "data_id": str(data_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/memify/routers/get_memify_router.py b/cognee/api/v1/memify/routers/get_memify_router.py index 706e3fae5..cc07a3a0c 100644 --- a/cognee/api/v1/memify/routers/get_memify_router.py +++ b/cognee/api/v1/memify/routers/get_memify_router.py @@ -13,6 +13,7 @@ from cognee.shared.utils import send_telemetry from cognee.modules.pipelines.models import PipelineRunErrored from cognee.shared.logging_utils import get_logger from cognee import __version__ as cognee_version + logger = get_logger() diff --git a/cognee/api/v1/permissions/routers/get_permissions_router.py b/cognee/api/v1/permissions/routers/get_permissions_router.py index ee3e9d1a0..565e95732 100644 --- a/cognee/api/v1/permissions/routers/get_permissions_router.py +++ b/cognee/api/v1/permissions/routers/get_permissions_router.py @@ -9,6 +9,7 @@ from cognee.modules.users.methods import get_authenticated_user from cognee.shared.utils import send_telemetry from cognee import __version__ as cognee_version + def get_permissions_router() -> APIRouter: permissions_router = APIRouter() @@ -48,7 +49,7 @@ def get_permissions_router() -> APIRouter: "endpoint": f"POST /v1/permissions/datasets/{str(principal_id)}", "dataset_ids": str(dataset_ids), "principal_id": str(principal_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -90,7 +91,7 @@ def get_permissions_router() -> APIRouter: additional_properties={ "endpoint": "POST /v1/permissions/roles", "role_name": role_name, - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -135,7 +136,7 @@ def get_permissions_router() -> APIRouter: "endpoint": f"POST /v1/permissions/users/{str(user_id)}/roles", "user_id": str(user_id), "role_id": str(role_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -178,7 +179,7 @@ def get_permissions_router() -> APIRouter: "endpoint": f"POST /v1/permissions/users/{str(user_id)}/tenants", "user_id": str(user_id), "tenant_id": str(tenant_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) @@ -213,7 +214,7 @@ def get_permissions_router() -> APIRouter: additional_properties={ "endpoint": "POST /v1/permissions/tenants", "tenant_name": tenant_name, - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/search/routers/get_search_router.py b/cognee/api/v1/search/routers/get_search_router.py index 38c037121..171c03e49 100644 --- a/cognee/api/v1/search/routers/get_search_router.py +++ b/cognee/api/v1/search/routers/get_search_router.py @@ -15,6 +15,7 @@ from cognee.modules.users.methods import get_authenticated_user from cognee.shared.utils import send_telemetry from cognee import __version__ as cognee_version + # Note: Datasets sent by name will only map to datasets owned by the request sender # To search for datasets not owned by the request sender dataset UUID is needed class SearchPayloadDTO(InDTO): @@ -61,10 +62,7 @@ def get_search_router() -> APIRouter: send_telemetry( "Search API Endpoint Invoked", user.id, - additional_properties={ - "endpoint": "GET /v1/search", - "cognee_version": cognee_version - }, + additional_properties={"endpoint": "GET /v1/search", "cognee_version": cognee_version}, ) try: @@ -119,7 +117,7 @@ def get_search_router() -> APIRouter: "top_k": payload.top_k, "only_context": payload.only_context, "use_combined_context": payload.use_combined_context, - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/sync/routers/get_sync_router.py b/cognee/api/v1/sync/routers/get_sync_router.py index dbb2a5cd1..a7d466c10 100644 --- a/cognee/api/v1/sync/routers/get_sync_router.py +++ b/cognee/api/v1/sync/routers/get_sync_router.py @@ -207,7 +207,7 @@ def get_sync_router() -> APIRouter: user.id, additional_properties={ "endpoint": "GET /v1/sync/status", - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/update/routers/get_update_router.py b/cognee/api/v1/update/routers/get_update_router.py index 1befdd16b..95e43b94f 100644 --- a/cognee/api/v1/update/routers/get_update_router.py +++ b/cognee/api/v1/update/routers/get_update_router.py @@ -65,7 +65,7 @@ def get_update_router() -> APIRouter: "dataset_id": str(dataset_id), "data_id": str(data_id), "node_set": str(node_set), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/api/v1/users/routers/get_visualize_router.py b/cognee/api/v1/users/routers/get_visualize_router.py index 4c840c9e1..5dc3868a6 100644 --- a/cognee/api/v1/users/routers/get_visualize_router.py +++ b/cognee/api/v1/users/routers/get_visualize_router.py @@ -47,7 +47,7 @@ def get_visualize_router() -> APIRouter: additional_properties={ "endpoint": "GET /v1/visualize", "dataset_id": str(dataset_id), - "cognee_version": cognee_version + "cognee_version": cognee_version, }, ) diff --git a/cognee/modules/search/methods/search.py b/cognee/modules/search/methods/search.py index db6a78133..93c0ef5c8 100644 --- a/cognee/modules/search/methods/search.py +++ b/cognee/modules/search/methods/search.py @@ -64,7 +64,11 @@ async def search( Searching by dataset is only available in ENABLE_BACKEND_ACCESS_CONTROL mode """ query = await log_query(query_text, query_type.value, user.id) - send_telemetry("cognee.search EXECUTION STARTED", user.id, additional_properties={"cognee_version": cognee_version}) + send_telemetry( + "cognee.search EXECUTION STARTED", + user.id, + additional_properties={"cognee_version": cognee_version}, + ) # Use search function filtered by permissions if access control is enabled if os.getenv("ENABLE_BACKEND_ACCESS_CONTROL", "false").lower() == "true": @@ -101,7 +105,11 @@ async def search( ) ] - send_telemetry("cognee.search EXECUTION COMPLETED", user.id, additional_properties={"cognee_version": cognee_version}) + send_telemetry( + "cognee.search EXECUTION COMPLETED", + user.id, + additional_properties={"cognee_version": cognee_version}, + ) await log_result( query.id, diff --git a/cognee/shared/utils.py b/cognee/shared/utils.py index 5a3b039a9..08b478adf 100644 --- a/cognee/shared/utils.py +++ b/cognee/shared/utils.py @@ -50,6 +50,7 @@ def get_anonymous_id(): anonymous_id = f.read() return anonymous_id + def _sanitize_nested_properties(obj, property_names: list[str]): """ Recursively replaces any property whose key matches one of `property_names` @@ -77,7 +78,9 @@ def send_telemetry(event_name: str, user_id, additional_properties: dict = {}): env = os.getenv("ENV") if env in ["test", "dev"]: return - additional_properties = _sanitize_nested_properties(obj=additional_properties, property_names=['url']) + additional_properties = _sanitize_nested_properties( + obj=additional_properties, property_names=["url"] + ) current_time = datetime.now(timezone.utc) payload = { "anonymous_id": str(get_anonymous_id()),