From 612e41583e14d501223aadad9cf4379e91575b07 Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Thu, 16 Nov 2023 15:15:24 +0100 Subject: [PATCH] Api v1.15.0 (#1670) * fix(chalice): fixed assist auto-complete * fix(chalice): fixed exp-sessions without timezone (cherry picked from commit e46df53ddcc598f976119e820766bf513793a075) --- README.md | 3 +- api/routers/core.py | 2 +- ee/api/clean-dev.sh | 3 +- ee/api/schemas/schemas_ee.py | 2 +- ee/recommendation/ml_trainer/requirements.txt | 2 +- frontend/app/components/Session_/Subheader.js | 5 ++- scripts/certbot.sh | 39 ------------------- .../charts/quickwit/templates/deployment.yaml | 1 - 8 files changed, 11 insertions(+), 46 deletions(-) delete mode 100755 scripts/certbot.sh diff --git a/README.md b/README.md index a4dd10811..1efadde90 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,9 @@ OpenReplay is a session replay suite you can host yourself, that lets you see wh - **Session replay:** Lets you relive your users' experience, see where they struggle and how it affects their behavior. Each session replay is automatically analyzed based on heuristics, for easy triage. - **DevTools:** It's like debugging in your own browser. OpenReplay provides you with the full context (network activity, JS errors, store actions/state and 40+ metrics) so you can instantly reproduce bugs and understand performance issues. - **Assist:** Helps you support your users by seeing their live screen and instantly hopping on call (WebRTC) with them without requiring any 3rd-party screen sharing software. +- **Feature flags:** Enable or disable a feature, make gradual releases and A/B test all without redeploying your app. - **Omni-search:** Search and filter by almost any user action/criteria, session attribute or technical event, so you can answer any question. No instrumentation required. -- **Funnels:** For surfacing the most impactful issues causing conversion and revenue loss. +- **Analytics:** For surfacing the most impactful issues causing conversion and revenue loss. - **Fine-grained privacy controls:** Choose what to capture, what to obscure or what to ignore so user data doesn't even reach your servers. - **Plugins oriented:** Get to the root cause even faster by tracking application state (Redux, VueX, MobX, NgRx, Pinia and Zustand) and logging GraphQL queries (Apollo, Relay) and Fetch/Axios requests. - **Integrations:** Sync your backend logs with your session replays and see what happened front-to-back. OpenReplay supports Sentry, Datadog, CloudWatch, Stackdriver, Elastic and more. diff --git a/api/routers/core.py b/api/routers/core.py index 3edcb9045..fa3037841 100644 --- a/api/routers/core.py +++ b/api/routers/core.py @@ -30,7 +30,7 @@ def events_search(projectId: int, q: str, return {"data": []} if live: return assist.autocomplete(project_id=projectId, q=q, - key=key if key is not None else type.value if type is not None else None) + key=key if key is not None else type) if type in [schemas.FetchFilterType._url]: type = schemas.EventType.request elif type in [schemas.GraphqlFilterType._name]: diff --git a/ee/api/clean-dev.sh b/ee/api/clean-dev.sh index 3e28345d6..37913fe91 100755 --- a/ee/api/clean-dev.sh +++ b/ee/api/clean-dev.sh @@ -93,4 +93,5 @@ rm -rf ./build_alerts.sh rm -rf ./run-dev.sh rm -rf ./run-alerts-dev.sh rm -rf ./schemas/overrides.py -rm -rf ./schemas/schemas.py \ No newline at end of file +rm -rf ./schemas/schemas.py +rm -rf ./schemas/transformers_validators.py \ No newline at end of file diff --git a/ee/api/schemas/schemas_ee.py b/ee/api/schemas/schemas_ee.py index a437c8152..2c1f49a36 100644 --- a/ee/api/schemas/schemas_ee.py +++ b/ee/api/schemas/schemas_ee.py @@ -113,7 +113,7 @@ class SessionModel(BaseModel): projectId: int sessionId: str startTs: int - timezone: str + timezone: Optional[str] userAnonymousId: Optional[str] userBrowser: str userCity: str diff --git a/ee/recommendation/ml_trainer/requirements.txt b/ee/recommendation/ml_trainer/requirements.txt index 4b6ae2175..7efa93d01 100644 --- a/ee/recommendation/ml_trainer/requirements.txt +++ b/ee/recommendation/ml_trainer/requirements.txt @@ -1,3 +1,3 @@ argcomplete==3.0.8 -apache-airflow==2.6.1 +apache-airflow==2.6.2 airflow-code-editor==7.2.1 diff --git a/frontend/app/components/Session_/Subheader.js b/frontend/app/components/Session_/Subheader.js index f0fb576f1..8bdb572b8 100644 --- a/frontend/app/components/Session_/Subheader.js +++ b/frontend/app/components/Session_/Subheader.js @@ -13,6 +13,8 @@ import { observer } from 'mobx-react-lite'; import AutoplayToggle from 'Shared/AutoplayToggle'; import { connect } from 'react-redux'; import SessionTabs from 'Components/Session/Player/SharedComponents/SessionTabs' +import { IFRAME } from 'App/constants/storageKeys'; +import cn from 'classnames'; const localhostWarn = (project) => project + '_localhost_warn'; @@ -22,6 +24,7 @@ function SubHeader(props) { const [showWarningModal, setWarning] = React.useState(defaultLocalhostWarn); const { player, store } = React.useContext(PlayerContext); const { width, height, endTime, location: currentLocation = 'loading...', } = store.get(); + const hasIframe = localStorage.getItem(IFRAME) === "true"; const enabledIntegration = useMemo(() => { @@ -104,7 +107,7 @@ function SubHeader(props) { ) : null}