diff --git a/ee/api/Dockerfile b/ee/api/Dockerfile index 34491edeb..33e5bfecf 100644 --- a/ee/api/Dockerfile +++ b/ee/api/Dockerfile @@ -1,8 +1,6 @@ -#FROM python:3.11-alpine -FROM python:3.11-slim +FROM python:3.11-alpine3.17 LABEL Maintainer="KRAIEM Taha Yassine" -#RUN apk add --no-cache build-base libressl libffi-dev libressl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsec tini -RUN apt-get update && apt-get install -y pkg-config libxmlsec1-dev gcc tini && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache build-base libressl libffi-dev libressl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsec tini ARG envarg ENV SOURCE_MAP_VERSION=0.7.4 \ @@ -18,8 +16,7 @@ RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . RUN mv env.default .env -#RUN adduser -u 1001 openreplay -D -RUN useradd -mu 1001 openreplay +RUN adduser -u 1001 openreplay -D USER 1001 ENTRYPOINT ["/sbin/tini", "--"] diff --git a/ee/api/chalicelib/core/sessions_exp.py b/ee/api/chalicelib/core/sessions_exp.py index 8896ea578..fce8811ea 100644 --- a/ee/api/chalicelib/core/sessions_exp.py +++ b/ee/api/chalicelib/core/sessions_exp.py @@ -1,4 +1,4 @@ -import json +import ast from typing import List, Union import schemas @@ -158,7 +158,7 @@ def search_sessions(data: schemas.SessionsSearchPayloadSchema, project_id, user_ meta_keys = metadata.get(project_id=project_id) meta_map = ",map(%s) AS 'metadata'" \ - % ','.join([f"'{m['key']}',metadata_{m['index']}" for m in meta_keys]) + % ','.join([f"'{m['key']}',coalesce(metadata_{m['index']},'None')" for m in meta_keys]) main_query = cur.mogrify(f"""SELECT COUNT(*) AS count, COALESCE(JSONB_AGG(users_sessions) FILTER (WHERE rn>%(sessions_limit_s)s AND rn<=%(sessions_limit_e)s), '[]'::JSONB) AS sessions @@ -238,10 +238,10 @@ def search_sessions(data: schemas.SessionsSearchPayloadSchema, project_id, user_ for i, s in enumerate(sessions): sessions[i] = {**s.pop("last_session")[0], **s} sessions[i].pop("rn") - sessions[i]["metadata"] = json.loads(sessions[i]["metadata"].replace("'", '"')) + sessions[i]["metadata"] = ast.literal_eval(sessions[i]["metadata"]) else: for i in range(len(sessions)): - sessions[i]["metadata"] = json.loads(sessions[i]["metadata"].replace("'", '"')) + sessions[i]["metadata"] = ast.literal_eval(sessions[i]["metadata"]) sessions[i] = schemas_ee.SessionModel.parse_obj(helper.dict_to_camel_case(sessions[i])) # if not data.group_by_user and data.sort is not None and data.sort != "session_id":