From e0d8b4820c2fb3d7d0e5efeb62b771eb56362c2a Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Fri, 2 Sep 2022 17:08:11 +0100 Subject: [PATCH 1/5] v1.8.0 --- api/chalicelib/core/integration_jira_cloud.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/api/chalicelib/core/integration_jira_cloud.py b/api/chalicelib/core/integration_jira_cloud.py index 656a22b14..03d75f1e4 100644 --- a/api/chalicelib/core/integration_jira_cloud.py +++ b/api/chalicelib/core/integration_jira_cloud.py @@ -15,6 +15,7 @@ class JIRAIntegration(integration_base.BaseIntegration): self.__tenant_id = tenant_id # TODO: enable super-constructor when OAuth is done # super(JIRAIntegration, self).__init__(jwt, user_id, JIRACloudIntegrationProxy) + self._issue_handler = None self._user_id = user_id self.integration = self.get() @@ -30,15 +31,15 @@ class JIRAIntegration(integration_base.BaseIntegration): @property def issue_handler(self): - if self.integration["url"].endswith('atlassian.net') and self.__issue_handler is None: + if self.integration["url"].endswith('atlassian.net') and self._issue_handler is None: try: - self.__issue_handler = JIRACloudIntegrationIssue(token=self.integration["token"], - username=self.integration["username"], - url=self.integration["url"]) + self._issue_handler = JIRACloudIntegrationIssue(token=self.integration["token"], + username=self.integration["username"], + url=self.integration["url"]) except Exception as e: - self.__issue_handler = None + self._issue_handler = None self.integration["valid"] = False - return self.__issue_handler + return self._issue_handler # TODO: remove this once jira-oauth is done def get(self): From f92619509300d50275ac5843459f51cc1cbdaed4 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 2 Sep 2022 18:21:44 +0200 Subject: [PATCH 2/5] Patch for 1.8.0 (#714) * feat(chalice): fixed jira integration * fix(backend): fixed some issues in db service Co-authored-by: Taha Yassine Kraiem --- backend/pkg/db/postgres/messages-web.go | 1 - backend/pkg/db/postgres/session.go | 9 ++++++--- ee/backend/pkg/db/clickhouse/connector.go | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/pkg/db/postgres/messages-web.go b/backend/pkg/db/postgres/messages-web.go index a130be2cc..9758587b8 100644 --- a/backend/pkg/db/postgres/messages-web.go +++ b/backend/pkg/db/postgres/messages-web.go @@ -189,7 +189,6 @@ func (conn *Conn) InsertWebGraphQLEvent(sessionID uint64, projectID uint32, save } func (conn *Conn) InsertSessionReferrer(sessionID uint64, referrer string) error { - log.Printf("insert referrer, sessID: %d, referrer: %s", sessionID, referrer) if referrer == "" { return nil } diff --git a/backend/pkg/db/postgres/session.go b/backend/pkg/db/postgres/session.go index 08145b567..c402ed703 100644 --- a/backend/pkg/db/postgres/session.go +++ b/backend/pkg/db/postgres/session.go @@ -8,7 +8,7 @@ import ( func (conn *Conn) GetSession(sessionID uint64) (*Session, error) { s := &Session{SessionID: sessionID} - var revID, userOSVersion *string + var revID, userOSVersion, userBrowserVersion *string var issueTypes pgtype.EnumArray if err := conn.c.QueryRow(` SELECT platform, @@ -32,14 +32,17 @@ func (conn *Conn) GetSession(sessionID uint64) (*Session, error) { &revID, &s.TrackerVersion, &s.UserID, &s.UserAnonymousID, &s.Referrer, &s.PagesCount, &s.EventsCount, &s.ErrorsCount, &issueTypes, - &s.UserBrowser, &s.UserBrowserVersion, &s.IssueScore, + &s.UserBrowser, &userBrowserVersion, &s.IssueScore, &s.Metadata1, &s.Metadata2, &s.Metadata3, &s.Metadata4, &s.Metadata5, &s.Metadata6, &s.Metadata7, &s.Metadata8, &s.Metadata9, &s.Metadata10); err != nil { return nil, err } - if userOSVersion != nil { // TODO: choose format, make f + if userOSVersion != nil { s.UserOSVersion = *userOSVersion } + if userBrowserVersion != nil { + s.UserBrowserVersion = *userBrowserVersion + } if revID != nil { s.RevID = *revID } diff --git a/ee/backend/pkg/db/clickhouse/connector.go b/ee/backend/pkg/db/clickhouse/connector.go index dcf603055..8d66e5190 100644 --- a/ee/backend/pkg/db/clickhouse/connector.go +++ b/ee/backend/pkg/db/clickhouse/connector.go @@ -324,7 +324,7 @@ func (c *connectorImpl) InsertWebPerformanceTrackAggr(session *types.Session, ms if err := c.batches["performance"].Append( session.SessionID, uint16(session.ProjectID), - 0, // TODO: find messageID for performance events + uint64(0), // TODO: find messageID for performance events datetime(timestamp), nullableString(msg.Meta().Url), uint8(msg.MinFPS), From 99a4c5e484283f2a70354e51244bf03e8c6768d5 Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Fri, 2 Sep 2022 17:49:15 +0100 Subject: [PATCH 3/5] v1.8.0 (#715) * feat(chalice): fixed jira integration * fix(backend): fixed some issues in db service * feat(assist): catch error event Co-authored-by: Alexander Zavorotynskiy --- ee/utilities/servers/websocket-cluster.js | 1 + ee/utilities/servers/websocket.js | 1 + utilities/servers/websocket.js | 1 + utilities/utils/assistHelper.js | 7 ++++++- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ee/utilities/servers/websocket-cluster.js b/ee/utilities/servers/websocket-cluster.js index 734dbfb4e..4f310468a 100644 --- a/ee/utilities/servers/websocket-cluster.js +++ b/ee/utilities/servers/websocket-cluster.js @@ -351,6 +351,7 @@ module.exports = { socket.on(EVENTS_DEFINITION.listen.CONNECT_ERROR, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_ERROR, err)); socket.on(EVENTS_DEFINITION.listen.CONNECT_FAILED, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_FAILED, err)); + socket.on(EVENTS_DEFINITION.listen.ERROR, err => errorHandler(EVENTS_DEFINITION.listen.ERROR, err)); socket.onAny(async (eventName, ...args) => { if (Object.values(EVENTS_DEFINITION.listen).indexOf(eventName) >= 0) { diff --git a/ee/utilities/servers/websocket.js b/ee/utilities/servers/websocket.js index 782f70348..224f44490 100644 --- a/ee/utilities/servers/websocket.js +++ b/ee/utilities/servers/websocket.js @@ -327,6 +327,7 @@ module.exports = { socket.on(EVENTS_DEFINITION.listen.CONNECT_ERROR, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_ERROR, err)); socket.on(EVENTS_DEFINITION.listen.CONNECT_FAILED, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_FAILED, err)); + socket.on(EVENTS_DEFINITION.listen.ERROR, err => errorHandler(EVENTS_DEFINITION.listen.ERROR, err)); socket.onAny(async (eventName, ...args) => { if (Object.values(EVENTS_DEFINITION.listen).indexOf(eventName) >= 0) { diff --git a/utilities/servers/websocket.js b/utilities/servers/websocket.js index ac8866fbb..70c472e67 100644 --- a/utilities/servers/websocket.js +++ b/utilities/servers/websocket.js @@ -308,6 +308,7 @@ module.exports = { socket.on(EVENTS_DEFINITION.listen.CONNECT_ERROR, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_ERROR, err)); socket.on(EVENTS_DEFINITION.listen.CONNECT_FAILED, err => errorHandler(EVENTS_DEFINITION.listen.CONNECT_FAILED, err)); + socket.on(EVENTS_DEFINITION.listen.ERROR, err => errorHandler(EVENTS_DEFINITION.listen.ERROR, err)); socket.onAny(async (eventName, ...args) => { if (Object.values(EVENTS_DEFINITION.listen).indexOf(eventName) >= 0) { diff --git a/utilities/utils/assistHelper.js b/utilities/utils/assistHelper.js index ed4d083ec..212a3b93d 100644 --- a/utilities/utils/assistHelper.js +++ b/utilities/utils/assistHelper.js @@ -4,7 +4,12 @@ const {geoip} = require('./geoIP'); let debug = process.env.debug === "1" || false; const IDENTITIES = {agent: 'agent', session: 'session'}; const EVENTS_DEFINITION = { - listen: {UPDATE_EVENT: "UPDATE_SESSION", CONNECT_ERROR: "connect_error", CONNECT_FAILED: "connect_failed"} + listen: { + UPDATE_EVENT: "UPDATE_SESSION", + CONNECT_ERROR: "connect_error", + CONNECT_FAILED: "connect_failed", + ERROR: "error" + } }; EVENTS_DEFINITION.emit = { NEW_AGENT: "NEW_AGENT", From 9c4492b0930319105a51363490d71c9619671e7f Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 2 Sep 2022 22:31:57 +0200 Subject: [PATCH 4/5] feat(backend): added extra checks for urlMethod and resourceType in CH connector (#717) --- backend/pkg/url/method.go | 10 ++++++++++ ee/backend/pkg/db/clickhouse/connector.go | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/backend/pkg/url/method.go b/backend/pkg/url/method.go index 31e654fde..a3cfb0dfb 100644 --- a/backend/pkg/url/method.go +++ b/backend/pkg/url/method.go @@ -1,6 +1,7 @@ package url var METHODS = []string{"GET", "HEAD", "POST", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE", "PATCH"} +var TYPES = []string{"other", "script", "stylesheet", "fetch", "img", "media"} func EnsureMethod(method string) string { for _, m := range METHODS { @@ -10,3 +11,12 @@ func EnsureMethod(method string) string { } return "" } + +func EnsureType(tp string) string { + for _, t := range TYPES { + if t == tp { + return tp + } + } + return "" +} diff --git a/ee/backend/pkg/db/clickhouse/connector.go b/ee/backend/pkg/db/clickhouse/connector.go index 8d66e5190..ae7a8177b 100644 --- a/ee/backend/pkg/db/clickhouse/connector.go +++ b/ee/backend/pkg/db/clickhouse/connector.go @@ -217,6 +217,10 @@ func (c *connectorImpl) InsertWebResourceEvent(session *types.Session, msg *mess if method == "" { method = nil } + resourceType := url.EnsureType(msg.Type) + if resourceType == "" { + return fmt.Errorf("can't parse resource type, sess: %s, type: %s", session.SessionID, msg.Type) + } if err := c.batches["resources"].Append( session.SessionID, uint16(session.ProjectID), @@ -363,6 +367,10 @@ func (c *connectorImpl) InsertAutocomplete(session *types.Session, msgType, msgV } func (c *connectorImpl) InsertRequest(session *types.Session, msg *messages.FetchEvent, savePayload bool) error { + urlMethod := url.EnsureMethod(msg.Method) + if urlMethod == "" { + return fmt.Errorf("can't parse http method. sess: %d, method: %s", session.SessionID, msg.Method) + } var request, response *string if savePayload { request = &msg.Request From ef106bf4cc7986f92041942143c0ef5644dfcc54 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Sat, 3 Sep 2022 02:21:30 +0530 Subject: [PATCH 5/5] change(ui) - object to image --- .../shared/AnimatedSVG/AnimatedSVG.tsx | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/frontend/app/components/shared/AnimatedSVG/AnimatedSVG.tsx b/frontend/app/components/shared/AnimatedSVG/AnimatedSVG.tsx index 65545ca99..0ac1d1d5b 100644 --- a/frontend/app/components/shared/AnimatedSVG/AnimatedSVG.tsx +++ b/frontend/app/components/shared/AnimatedSVG/AnimatedSVG.tsx @@ -46,39 +46,39 @@ function AnimatedSVG(props: Props) { const renderSvg = () => { switch (name) { case ICONS.LOADER: - return ; + return ; case ICONS.DASHBOARD_ICON: - return ; + return ; case ICONS.EMPTY_STATE: - return ; + return ; case ICONS.LOGO_SMALL: return ; case ICONS.NO_RESULTS: - return ; + return ; case ICONS.SIGNAL_GREEN: - return ; + return ; case ICONS.SIGNAL_RED: - return ; + return ; case ICONS.NO_BOOKMARKS: - return ; + return ; case ICONS.NO_LIVE_SESSIONS: - return ; + return ; case ICONS.NO_SESSIONS: - return ; + return ; case ICONS.NO_SESSIONS_IN_VAULT: - return ; + return ; case ICONS.NO_WEBHOOKS: - return ; + return ; case ICONS.NO_METADATA: - return ; + return ; case ICONS.NO_ISSUES: - return ; + return ; case ICONS.NO_AUDIT_TRAIL: - return ; + return ; case ICONS.NO_ANNOUNCEMENTS: - return ; + return ; case ICONS.NO_ALERTS: - return ; + return ; default: return null; }