diff --git a/api/Pipfile b/api/Pipfile index 3605368d7..b47121d50 100644 --- a/api/Pipfile +++ b/api/Pipfile @@ -6,7 +6,7 @@ name = "pypi" [packages] urllib3 = "==2.3.0" requests = "==2.32.3" -boto3 = "==1.36.10" +boto3 = "==1.36.12" pyjwt = "==2.10.1" psycopg2-binary = "==2.9.10" psycopg = {extras = ["pool", "binary"], version = "==3.2.4"} @@ -14,7 +14,7 @@ clickhouse-driver = {extras = ["lz4"], version = "==0.2.9"} clickhouse-connect = "==0.8.15" elasticsearch = "==8.17.1" jira = "==3.8.0" -cachetools = "==5.5.0" +cachetools = "==5.5.1" fastapi = "==0.115.8" uvicorn = {extras = ["standard"], version = "==0.34.0"} python-decouple = "==3.8" diff --git a/api/chalicelib/core/log_tools/bugsnag.py b/api/chalicelib/core/log_tools/bugsnag.py index 9f1471421..a49421eac 100644 --- a/api/chalicelib/core/log_tools/bugsnag.py +++ b/api/chalicelib/core/log_tools/bugsnag.py @@ -1,6 +1,5 @@ -from chalicelib.core import log_tools import requests - +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "bugsnag" diff --git a/api/chalicelib/core/log_tools/cloudwatch.py b/api/chalicelib/core/log_tools/cloudwatch.py index e91e36902..338332f7c 100644 --- a/api/chalicelib/core/log_tools/cloudwatch.py +++ b/api/chalicelib/core/log_tools/cloudwatch.py @@ -1,5 +1,5 @@ import boto3 -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "cloudwatch" diff --git a/api/chalicelib/core/log_tools/datadog.py b/api/chalicelib/core/log_tools/datadog.py index 08b089b60..287f258cc 100644 --- a/api/chalicelib/core/log_tools/datadog.py +++ b/api/chalicelib/core/log_tools/datadog.py @@ -1,4 +1,4 @@ -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "datadog" diff --git a/api/chalicelib/core/log_tools/elasticsearch.py b/api/chalicelib/core/log_tools/elasticsearch.py index 496d3eeea..b14909ee9 100644 --- a/api/chalicelib/core/log_tools/elasticsearch.py +++ b/api/chalicelib/core/log_tools/elasticsearch.py @@ -1,8 +1,7 @@ import logging +from chalicelib.core.log_tools import log_tools from elasticsearch import Elasticsearch - -from chalicelib.core import log_tools from schemas import schemas logger = logging.getLogger(__name__) diff --git a/api/chalicelib/core/log_tools/log_tools.py b/api/chalicelib/core/log_tools/log_tools.py index 9b223a66a..6c32b2218 100644 --- a/api/chalicelib/core/log_tools/log_tools.py +++ b/api/chalicelib/core/log_tools/log_tools.py @@ -1,6 +1,7 @@ -from chalicelib.utils import pg_client, helper import json + from chalicelib.core.modules import TENANT_CONDITION +from chalicelib.utils import pg_client, helper EXCEPT = ["jira_server", "jira_cloud"] diff --git a/api/chalicelib/core/log_tools/newrelic.py b/api/chalicelib/core/log_tools/newrelic.py index c25e2d15d..7a6d678f7 100644 --- a/api/chalicelib/core/log_tools/newrelic.py +++ b/api/chalicelib/core/log_tools/newrelic.py @@ -1,4 +1,4 @@ -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "newrelic" diff --git a/api/chalicelib/core/log_tools/rollbar.py b/api/chalicelib/core/log_tools/rollbar.py index 34f934dc9..00aefdf5c 100644 --- a/api/chalicelib/core/log_tools/rollbar.py +++ b/api/chalicelib/core/log_tools/rollbar.py @@ -1,4 +1,4 @@ -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "rollbar" diff --git a/api/chalicelib/core/log_tools/sentry.py b/api/chalicelib/core/log_tools/sentry.py index ce6aff21b..301fb8770 100644 --- a/api/chalicelib/core/log_tools/sentry.py +++ b/api/chalicelib/core/log_tools/sentry.py @@ -1,5 +1,5 @@ import requests -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "sentry" diff --git a/api/chalicelib/core/log_tools/stackdriver.py b/api/chalicelib/core/log_tools/stackdriver.py index 21b1619ea..d4130c9cc 100644 --- a/api/chalicelib/core/log_tools/stackdriver.py +++ b/api/chalicelib/core/log_tools/stackdriver.py @@ -1,4 +1,4 @@ -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "stackdriver" diff --git a/api/chalicelib/core/log_tools/sumologic.py b/api/chalicelib/core/log_tools/sumologic.py index 2e129302a..b9f037c6a 100644 --- a/api/chalicelib/core/log_tools/sumologic.py +++ b/api/chalicelib/core/log_tools/sumologic.py @@ -1,4 +1,4 @@ -from chalicelib.core import log_tools +from chalicelib.core.log_tools import log_tools from schemas import schemas IN_TY = "sumologic" diff --git a/api/chalicelib/core/sessions/sessions_assignments.py b/api/chalicelib/core/sessions/sessions_assignments.py index 7908a7e56..88c9919cf 100644 --- a/api/chalicelib/core/sessions/sessions_assignments.py +++ b/api/chalicelib/core/sessions/sessions_assignments.py @@ -39,8 +39,8 @@ def create_new_assignment(tenant_id, project_id, session_id, creator_id, assigne issue = integration.issue_handler.create_new_assignment(title=title, assignee=assignee, description=description, issue_type=issue_type, integration_project_id=integration_project_id) - except integration_base_issue.RequestException as e: - return integration_base_issue.proxy_issues_handler(e) + except base_issue.RequestException as e: + return base_issue.proxy_issues_handler(e) if issue is None or "id" not in issue: return {"errors": ["something went wrong while creating the issue"]} with pg_client.PostgresClient() as cur: diff --git a/api/env.dev b/api/env.dev index 54634b7a9..74f9f8e1f 100644 --- a/api/env.dev +++ b/api/env.dev @@ -63,4 +63,9 @@ sessions_region=us-east-1 SITE_URL=http://127.0.0.1:3333 sourcemaps_bucket= sourcemaps_reader=http://127.0.0.1:3000/sourcemaps -TZ=UTC \ No newline at end of file +TZ=UTC +EXP_CH_DRIVER=true +EXP_AUTOCOMPLETE=true +EXP_ALERTS=true +EXP_ERRORS_SEARCH=true +EXP_METRICS=true \ No newline at end of file diff --git a/api/requirements-alerts.txt b/api/requirements-alerts.txt index c865083c0..62ccaa740 100644 --- a/api/requirements-alerts.txt +++ b/api/requirements-alerts.txt @@ -1,6 +1,6 @@ urllib3==2.3.0 requests==2.32.3 -boto3==1.36.10 +boto3==1.36.12 pyjwt==2.10.1 psycopg2-binary==2.9.10 psycopg[pool,binary]==3.2.4 @@ -8,7 +8,7 @@ clickhouse-driver[lz4]==0.2.9 clickhouse-connect==0.8.15 elasticsearch==8.17.1 jira==3.8.0 -cachetools==5.5.0 +cachetools==5.5.1 fastapi==0.115.8 uvicorn[standard]==0.34.0 diff --git a/api/requirements.txt b/api/requirements.txt index 6c7de3cac..0d65cca6d 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -1,6 +1,6 @@ urllib3==2.3.0 requests==2.32.3 -boto3==1.36.10 +boto3==1.36.12 pyjwt==2.10.1 psycopg2-binary==2.9.10 psycopg[pool,binary]==3.2.4 @@ -8,7 +8,7 @@ clickhouse-driver[lz4]==0.2.9 clickhouse-connect==0.8.15 elasticsearch==8.17.1 jira==3.8.0 -cachetools==5.5.0 +cachetools==5.5.1 fastapi==0.115.8 uvicorn[standard]==0.34.0 diff --git a/ee/api/Pipfile b/ee/api/Pipfile index 21860b6fc..2b640c877 100644 --- a/ee/api/Pipfile +++ b/ee/api/Pipfile @@ -6,15 +6,15 @@ name = "pypi" [packages] urllib3 = "==2.3.0" requests = "==2.32.3" -boto3 = "==1.36.10" +boto3 = "==1.36.12" pyjwt = "==2.10.1" psycopg2-binary = "==2.9.10" -psycopg = {extras = ["pool", "binary"], version = "==3.2.4"} +psycopg = {extras = ["binary", "pool"], version = "==3.2.4"} clickhouse-driver = {extras = ["lz4"], version = "==0.2.9"} clickhouse-connect = "==0.8.15" elasticsearch = "==8.17.1" jira = "==3.8.0" -cachetools = "==5.5.0" +cachetools = "==5.5.1" fastapi = "==0.115.8" uvicorn = {extras = ["standard"], version = "==0.34.0"} gunicorn = "==23.0.0" diff --git a/ee/api/chalicelib/core/sessions/sessions_search_exp.py b/ee/api/chalicelib/core/sessions/sessions_search_exp.py index a5d6f1398..19380d879 100644 --- a/ee/api/chalicelib/core/sessions/sessions_search_exp.py +++ b/ee/api/chalicelib/core/sessions/sessions_search_exp.py @@ -1,13 +1,10 @@ import ast import logging -from typing import List, Union import schemas -from chalicelib.core import events, metadata, projects -from chalicelib.core.metrics import metrics -from chalicelib.core.sessions import sessions_favorite, performance_event, sessions_legacy, sessions -from chalicelib.utils import pg_client, helper, metrics_helper, ch_client, exp_ch_helper -from chalicelib.utils import sql_helper as sh +from chalicelib.core import metadata, projects +from chalicelib.core.sessions import sessions_favorite, sessions_legacy, sessions +from chalicelib.utils import pg_client, helper, ch_client, exp_ch_helper logger = logging.getLogger(__name__) @@ -167,7 +164,7 @@ def search_sessions(data: schemas.SessionsSearchPayloadSchema, project_id, user_ logging.debug(main_query) logging.debug("--------------------") try: - sessions = cur.execute(main_query) + sessions_list = cur.execute(main_query) except Exception as err: logging.warning("--------- SESSIONS-CH SEARCH QUERY EXCEPTION -----------") logging.warning(main_query) @@ -176,27 +173,27 @@ def search_sessions(data: schemas.SessionsSearchPayloadSchema, project_id, user_ logging.warning("--------------------") raise err if errors_only or ids_only: - return helper.list_to_camel_case(sessions) + return helper.list_to_camel_case(sessions_list) - if len(sessions) > 0: - sessions = sessions[0] + if len(sessions_list) > 0: + sessions_list = sessions_list[0] - total = sessions["count"] - sessions = sessions["sessions"] + total = sessions_list["count"] + sessions_list = sessions_list["sessions"] if data.group_by_user: - for i, s in enumerate(sessions): - sessions[i] = {**s.pop("last_session")[0], **s} - sessions[i].pop("rn") - sessions[i]["metadata"] = ast.literal_eval(sessions[i]["metadata"]) + for i, s in enumerate(sessions_list): + sessions_list[i] = {**s.pop("last_session")[0], **s} + sessions_list[i].pop("rn") + sessions_list[i]["metadata"] = ast.literal_eval(sessions_list[i]["metadata"]) else: - for i in range(len(sessions)): - sessions[i]["metadata"] = ast.literal_eval(sessions[i]["metadata"]) - sessions[i] = schemas.SessionModel.parse_obj(helper.dict_to_camel_case(sessions[i])) + for i in range(len(sessions_list)): + sessions_list[i]["metadata"] = ast.literal_eval(sessions_list[i]["metadata"]) + sessions_list[i] = schemas.SessionModel.parse_obj(helper.dict_to_camel_case(sessions_list[i])) return { 'total': total, - 'sessions': sessions + 'sessions': sessions_list } diff --git a/ee/api/env.dev b/ee/api/env.dev index d2681c584..852fd20c3 100644 --- a/ee/api/env.dev +++ b/ee/api/env.dev @@ -25,14 +25,16 @@ EMAIL_USE_TLS=true EMAIL_USER= ENABLE_SSO=false EXP_7D_MV=false -EXP_ALERTS=false -EXP_AUTOCOMPLETE=true EXP_ERRORS_GET=false -EXP_ERRORS_SEARCH=false EXP_FUNNELS=false EXP_RESOURCES=true EXP_SESSIONS_SEARCH=false EXP_SESSIONS_SEARCH_METRIC=true +EXP_CH_DRIVER=true +EXP_AUTOCOMPLETE=true +EXP_ALERTS=true +EXP_ERRORS_SEARCH=true +EXP_METRICS=true FS_DIR= idp_entityId= idp_name=okta diff --git a/ee/api/requirements-alerts.txt b/ee/api/requirements-alerts.txt index f51f9d662..2f9765929 100644 --- a/ee/api/requirements-alerts.txt +++ b/ee/api/requirements-alerts.txt @@ -1,6 +1,6 @@ urllib3==2.3.0 requests==2.32.3 -boto3==1.36.10 +boto3==1.36.12 pyjwt==2.10.1 psycopg2-binary==2.9.10 psycopg[pool,binary]==3.2.4 @@ -8,7 +8,7 @@ clickhouse-driver[lz4]==0.2.9 clickhouse-connect==0.8.15 elasticsearch==8.17.1 jira==3.8.0 -cachetools==5.5.0 +cachetools==5.5.1 fastapi==0.115.8 uvicorn[standard]==0.34.0 diff --git a/ee/api/requirements-crons.txt b/ee/api/requirements-crons.txt index 256b9bf9d..19de71806 100644 --- a/ee/api/requirements-crons.txt +++ b/ee/api/requirements-crons.txt @@ -1,6 +1,6 @@ urllib3==2.3.0 requests==2.32.3 -boto3==1.36.10 +boto3==1.36.12 pyjwt==2.10.1 psycopg2-binary==2.9.10 psycopg[pool,binary]==3.2.4 @@ -8,7 +8,7 @@ clickhouse-driver[lz4]==0.2.9 clickhouse-connect==0.8.15 elasticsearch==8.17.1 jira==3.8.0 -cachetools==5.5.0 +cachetools==5.5.1 fastapi==0.115.8 python-decouple==3.8 diff --git a/ee/api/requirements.txt b/ee/api/requirements.txt index 318b4f33e..fac45ba54 100644 --- a/ee/api/requirements.txt +++ b/ee/api/requirements.txt @@ -1,6 +1,6 @@ urllib3==2.3.0 requests==2.32.3 -boto3==1.36.10 +boto3==1.36.12 pyjwt==2.10.1 psycopg2-binary==2.9.10 psycopg[pool,binary]==3.2.4 @@ -8,7 +8,7 @@ clickhouse-driver[lz4]==0.2.9 clickhouse-connect==0.8.15 elasticsearch==8.17.1 jira==3.8.0 -cachetools==5.5.0 +cachetools==5.5.1 fastapi==0.115.8 uvicorn[standard]==0.34.0 diff --git a/ee/api/routers/core_dynamic.py b/ee/api/routers/core_dynamic.py index 4f62d49a9..d7c804f9c 100644 --- a/ee/api/routers/core_dynamic.py +++ b/ee/api/routers/core_dynamic.py @@ -12,7 +12,7 @@ from chalicelib.core import assist, signup, feature_flags from chalicelib.core.errors import errors from chalicelib.core.metrics import heatmaps from chalicelib.core.sessions import sessions, sessions_notes, sessions_replay, sessions_favorite, sessions_assignments, \ - sessions_viewed, unprocessed_sessions + sessions_viewed, unprocessed_sessions, sessions_search from chalicelib.core import tenants, users, projects, license from chalicelib.core import webhook from chalicelib.core.collaborations.collaboration_slack import Slack @@ -266,10 +266,10 @@ def get_projects(context: schemas.CurrentContext = Depends(OR_context)): @app.post('/{projectId}/sessions/search', tags=["sessions"], dependencies=[OR_scope(Permissions.SESSION_REPLAY)]) -def sessions_search(projectId: int, data: schemas.SessionsSearchPayloadSchema = Body(...), +def search_sessions(projectId: int, data: schemas.SessionsSearchPayloadSchema = Body(...), context: schemas.CurrentContext = Depends(OR_context)): - data = sessions.search_sessions(data=data, project_id=projectId, user_id=context.user_id, - platform=context.project.platform) + data = sessions_search.search_sessions(data=data, project_id=projectId, user_id=context.user_id, + platform=context.project.platform) return {'data': data} @@ -277,8 +277,8 @@ def sessions_search(projectId: int, data: schemas.SessionsSearchPayloadSchema = dependencies=[OR_scope(Permissions.SESSION_REPLAY)]) def session_ids_search(projectId: int, data: schemas.SessionsSearchPayloadSchema = Body(...), context: schemas.CurrentContext = Depends(OR_context)): - data = sessions.search_sessions(data=data, project_id=projectId, user_id=context.user_id, ids_only=True, - platform=context.project.platform) + data = sessions_search.search_sessions(data=data, project_id=projectId, user_id=context.user_id, ids_only=True, + platform=context.project.platform) return {'data': data} diff --git a/ee/assist-stats/Dockerfile b/ee/assist-stats/Dockerfile index 3df1059d9..ba136d1a2 100644 --- a/ee/assist-stats/Dockerfile +++ b/ee/assist-stats/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine +FROM python:3.12-alpine LABEL Maintainer="Rajesh Rajendran" LABEL Maintainer="Shekar Sirikonda" ARG GIT_SHA diff --git a/ee/assist-stats/Pipfile b/ee/assist-stats/Pipfile index d331c4df9..85782b251 100644 --- a/ee/assist-stats/Pipfile +++ b/ee/assist-stats/Pipfile @@ -4,13 +4,14 @@ verify_ssl = true name = "pypi" [packages] -fastapi = "*" -sqlalchemy = "==2.0.21" -uvicorn = "==0.23.2" +fastapi = "==0.115.8" +sqlalchemy = "==2.0.37" +uvicorn = "==0.34.0" python-decouple = "==3.8" -psycopg2-binary = "==2.9.7" +psycopg2-binary = "==2.9.10" [dev-packages] [requires] -python_version = "3.11" +python_version = "3.12" +python_full_version = "3.12.8" diff --git a/ee/assist-stats/env.default b/ee/assist-stats/env.default index 2224bb8fc..df5de8e8b 100644 --- a/ee/assist-stats/env.default +++ b/ee/assist-stats/env.default @@ -9,4 +9,10 @@ MAX_OVERFLOW=10 POOL_TIMEOUT=30 POOL_RECYCLE=3600 -ACCESS_TOKEN= \ No newline at end of file +ACCESS_TOKEN= + +EXP_CH_DRIVER=true +EXP_AUTOCOMPLETE=true +EXP_ALERTS=true +EXP_ERRORS_SEARCH=true +EXP_METRICS=true \ No newline at end of file diff --git a/ee/assist-stats/requirements.txt b/ee/assist-stats/requirements.txt index 09e1441f0..42c39a8be 100644 --- a/ee/assist-stats/requirements.txt +++ b/ee/assist-stats/requirements.txt @@ -1,6 +1,5 @@ -fastapi -SQLAlchemy==2.0.21 -uvicorn==0.23.2 +fastapi==0.115.8 +SQLAlchemy==2.0.37 +uvicorn==0.34.0 python-decouple==3.8 -psycopg2-binary==2.9.7 - +psycopg2-binary==2.9.10 \ No newline at end of file