From 895eb40621e06d236e4f52361dec5ecaf06a272a Mon Sep 17 00:00:00 2001 From: Rajesh Rajendran Date: Sat, 7 Aug 2021 13:29:50 +0530 Subject: [PATCH 1/7] chore(install): update openreplay version Signed-off-by: Rajesh Rajendran --- scripts/helm/vars.yaml | 4 ++-- scripts/helm/vars_template.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/helm/vars.yaml b/scripts/helm/vars.yaml index d264bc5fc..710fbd496 100644 --- a/scripts/helm/vars.yaml +++ b/scripts/helm/vars.yaml @@ -24,8 +24,8 @@ domain_name: "" docker_registry_username: "" docker_registry_password: "" docker_registry_url: "rg.fr-par.scw.cloud/foss" -image_tag: "v1.2.0" -openreplay_version: "v1.2.0" +image_tag: "v1.3.0" +openreplay_version: "v1.3.0" # Nginx ssl certificates. # in cert format diff --git a/scripts/helm/vars_template.yaml b/scripts/helm/vars_template.yaml index e49892a21..6d92b8a66 100644 --- a/scripts/helm/vars_template.yaml +++ b/scripts/helm/vars_template.yaml @@ -24,8 +24,8 @@ domain_name: "{{ domain_name }}" docker_registry_username: "{{ docker_registry_username }}" docker_registry_password: "{{ docker_registry_password }}" docker_registry_url: "{{ docker_registry_url }}" -image_tag: "v1.2.0" -openreplay_version: "v1.2.0" +image_tag: "v1.3.0" +openreplay_version: "v1.3.0" # Nginx ssl certificates. # in cert format From 675ef9b32fcdcc635e350e80d0196251c30dccc1 Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Sat, 7 Aug 2021 17:01:13 +0800 Subject: [PATCH 2/7] fix (backend-http): sampleRate check only if starting the new one --- backend/services/http/handlers.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/services/http/handlers.go b/backend/services/http/handlers.go index b3527ac3f..761aab764 100644 --- a/backend/services/http/handlers.go +++ b/backend/services/http/handlers.go @@ -66,15 +66,15 @@ func startSessionHandlerWeb(w http.ResponseWriter, r *http.Request) { return } - dice := byte(rand.Intn(100)) // [0, 100) - if dice >= p.SampleRate { - responseWithError(w, http.StatusForbidden, errors.New("cancel")) - return - } - userUUID := getUUID(req.UserUUID) tokenData, err := tokenizer.Parse(req.Token) if err != nil || req.Reset { // Starting the new one + dice := byte(rand.Intn(100)) // [0, 100) + if dice >= p.SampleRate { + responseWithError(w, http.StatusForbidden, errors.New("cancel")) + return + } + ua := uaParser.ParseFromHTTPRequest(r) if ua == nil { responseWithError(w, http.StatusForbidden, errors.New("browser not recognized")) From 6282c6845a371e88d51e91d2280b2931bc274e27 Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Sat, 7 Aug 2021 17:11:22 +0800 Subject: [PATCH 3/7] fix(helm): clean env --- scripts/helm/app/storage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/helm/app/storage.yaml b/scripts/helm/app/storage.yaml index 981a9b885..3da7de460 100644 --- a/scripts/helm/app/storage.yaml +++ b/scripts/helm/app/storage.yaml @@ -43,4 +43,4 @@ env: KAFKA_SERVERS: kafka.db.svc.cluster.local:9092 KAFKA_USE_SSL: false LICENSE_KEY: "" - FS_CLEAN_HRS: 12 + \ No newline at end of file From 8a1ab42dfb62a4bae04ebc82d9996459a20a2935 Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Sat, 7 Aug 2021 17:24:17 +0800 Subject: [PATCH 4/7] fix(backend): no cache if not cachable --- backend/pkg/url/assets/css.go | 3 ++- backend/pkg/url/assets/url.go | 8 ++++---- backend/services/http/assets.go | 7 +++++-- scripts/helm/app/storage.yaml | 1 - 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/pkg/url/assets/css.go b/backend/pkg/url/assets/css.go index d06d62797..633a0f693 100644 --- a/backend/pkg/url/assets/css.go +++ b/backend/pkg/url/assets/css.go @@ -71,7 +71,8 @@ func ResolveCSS(baseURL string, css string) string { func (r *Rewriter) RewriteCSS(sessionID uint64, baseurl string, css string) string { css = rewriteLinks(css, func(rawurl string) string { - return r.RewriteURL(sessionID, baseurl, rawurl) + url , _ := r.RewriteURL(sessionID, baseurl, rawurl) + return url }) return strings.Replace(css, ":hover", ".-asayer-hover", -1) } diff --git a/backend/pkg/url/assets/url.go b/backend/pkg/url/assets/url.go index ea7d45ac7..0905677b6 100644 --- a/backend/pkg/url/assets/url.go +++ b/backend/pkg/url/assets/url.go @@ -82,14 +82,14 @@ func GetCachePathForAssets(sessionID uint64, rawurl string) string { } -func (r *Rewriter) RewriteURL(sessionID uint64, baseURL string, relativeURL string) string { +func (r *Rewriter) RewriteURL(sessionID uint64, baseURL string, relativeURL string) (string, bool) { // TODO: put it in one check within GetFullCachableURL if !isRelativeCachable(relativeURL) { - return relativeURL + return relativeURL, false } fullURL := ResolveURL(baseURL, relativeURL) if !isCachable(fullURL) { - return relativeURL + return relativeURL, false } u := url.URL{ @@ -98,6 +98,6 @@ func (r *Rewriter) RewriteURL(sessionID uint64, baseURL string, relativeURL stri Scheme: r.assetsURL.Scheme, } - return u.String() + return u.String(), true } diff --git a/backend/services/http/assets.go b/backend/services/http/assets.go index 6a1e57243..8ed625859 100644 --- a/backend/services/http/assets.go +++ b/backend/services/http/assets.go @@ -21,8 +21,11 @@ func sendAssetsForCacheFromCSS(sessionID uint64, baseURL string, css string) { func handleURL(sessionID uint64, baseURL string, url string) string { if cacheAssets { - sendAssetForCache(sessionID, baseURL, url) - return rewriter.RewriteURL(sessionID, baseURL, url) + rewrittenURL, isCachable := rewriter.RewriteURL(sessionID, baseURL, url) + if isCachable { + sendAssetForCache(sessionID, baseURL, url) + } + return rewrittenURL } return assets.ResolveURL(baseURL, url) } diff --git a/scripts/helm/app/storage.yaml b/scripts/helm/app/storage.yaml index 3da7de460..836deab4a 100644 --- a/scripts/helm/app/storage.yaml +++ b/scripts/helm/app/storage.yaml @@ -43,4 +43,3 @@ env: KAFKA_SERVERS: kafka.db.svc.cluster.local:9092 KAFKA_USE_SSL: false LICENSE_KEY: "" - \ No newline at end of file From e4a735ce9f7057d302f196c8500e34b26b8eec0b Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Sat, 7 Aug 2021 17:35:42 +0800 Subject: [PATCH 5/7] fix(readme): tracker size --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d75f3c3f1..32421d883 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ OpenReplay is a session replay stack that lets you see what users do on your web app, helping you troubleshoot issues faster. It's the only open-source alternative to products such as FullStory and LogRocket. - **Session replay.** OpenReplay replays what users do, but not only. It also shows you what went under the hood, how your website or app behaves by capturing network activity, console logs, JS errors, store actions/state, page speed metrics, cpu/memory usage and much more. -- **Low footprint**. With a ~16KB (.gz) tracker that asynchronously sends minimal data for a very limited impact on performance. +- **Low footprint**. With a ~18KB (.gz) tracker that asynchronously sends minimal data for a very limited impact on performance. - **Self-hosted**. No more security compliance checks, 3rd-parties processing user data. Everything OpenReplay captures stays in your cloud for a complete control over your data. - **Privacy controls**. Fine-grained security features for sanitizing user data. - **Easy deploy**. With support of major public cloud providers (AWS, GCP, Azure, DigitalOcean). From 917e81a13151336f9e14da89769951ca173f8a44 Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Sat, 7 Aug 2021 17:50:54 +0800 Subject: [PATCH 6/7] fix(backend): cachepath start with '/' --- backend/pkg/url/assets/url.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/pkg/url/assets/url.go b/backend/pkg/url/assets/url.go index 0905677b6..4236fb8b7 100644 --- a/backend/pkg/url/assets/url.go +++ b/backend/pkg/url/assets/url.go @@ -57,7 +57,7 @@ func GetFullCachableURL(baseURL string, relativeURL string) (string, bool) { const OPENREPLAY_QUERY_START = "OPENREPLAY_QUERY" func getCachePath(rawurl string) string { - return strings.ReplaceAll(url.QueryEscape(rawurl), "%", "!") // s3 keys are ok with "!" + return "/" + strings.ReplaceAll(url.QueryEscape(rawurl), "%", "!") // s3 keys are ok with "!" // u, _ := url.Parse(rawurl) // s := "/" + u.Scheme + "/" + u.Hostname() + u.Path // if u.RawQuery != "" { From f8736ac41701d12cfb0adf0fe8055c7c01c21aff Mon Sep 17 00:00:00 2001 From: Rajesh Rajendran Date: Sat, 7 Aug 2021 15:30:58 +0530 Subject: [PATCH 7/7] chore(http): default cache assets to false Signed-off-by: Rajesh Rajendran --- scripts/helm/app/http.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/helm/app/http.yaml b/scripts/helm/app/http.yaml index b34105a6c..5a9ae09ac 100644 --- a/scripts/helm/app/http.yaml +++ b/scripts/helm/app/http.yaml @@ -29,7 +29,7 @@ env: AWS_SECRET_ACCESS_KEY: "m1n10s3CretK3yPassw0rd" AWS_REGION: us-east-1 POSTGRES_STRING: postgres://postgres:asayerPostgres@postgresql.db.svc.cluster.local:5432 - CACHE_ASSETS: true + CACHE_ASSETS: false # REDIS_STRING: redis-master.db.svc.cluster.local:6379 KAFKA_SERVERS: kafka.db.svc.cluster.local:9092