From 4e17ac56545f18840dc3d939402cb01de081ac9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=2E=20Mert=20Y=C4=B1ld=C4=B1ran?= Date: Tue, 14 Dec 2021 11:36:02 +0300 Subject: [PATCH] Remove unnecessary fields and split `service` into `src.name` and `dst.name` (#525) * Remove unnecessary fields and split `service` into `src.name` and `dst.name` * Don't fall back to IP address but instead display `[Unresolved]` text * Fix the CSS issues in the plus icon position and replace the separator `->` text with `SwapHorizIcon` --- agent/pkg/api/main.go | 2 +- agent/pkg/controllers/entries_controller.go | 2 +- agent/pkg/up9/main.go | 10 +-- tap/api/api.go | 53 ++++--------- tap/extensions/amqp/main.go | 58 +++++--------- tap/extensions/http/main.go | 74 +++++++----------- tap/extensions/kafka/main.go | 60 +++++--------- tap/extensions/redis/main.go | 61 +++++---------- .../EntryListItem/EntryListItem.module.sass | 2 +- .../EntryListItem/EntryListItem.tsx | 55 ++++++++----- ui/src/components/Filters.tsx | 2 +- .../components/assets/filter-ui-example-1.png | Bin 41510 -> 47299 bytes 12 files changed, 151 insertions(+), 228 deletions(-) diff --git a/agent/pkg/api/main.go b/agent/pkg/api/main.go index 97291fc9a..42f86817a 100644 --- a/agent/pkg/api/main.go +++ b/agent/pkg/api/main.go @@ -136,7 +136,7 @@ func startReadingChannel(outputItems <-chan *tapApi.OutputChannelItem, extension harEntry, err := utils.NewEntry(mizuEntry.Request, mizuEntry.Response, mizuEntry.StartTime, mizuEntry.ElapsedTime) if err == nil { - rules, _, _ := models.RunValidationRulesState(*harEntry, mizuEntry.Service) + rules, _, _ := models.RunValidationRulesState(*harEntry, mizuEntry.Destination.Name) baseEntry.Rules = rules } } diff --git a/agent/pkg/controllers/entries_controller.go b/agent/pkg/controllers/entries_controller.go index 2d5e2e536..0b2f0724a 100644 --- a/agent/pkg/controllers/entries_controller.go +++ b/agent/pkg/controllers/entries_controller.go @@ -119,7 +119,7 @@ func GetEntry(c *gin.Context) { var isRulesEnabled bool if entry.Protocol.Name == "http" { harEntry, _ := utils.NewEntry(entry.Request, entry.Response, entry.StartTime, entry.ElapsedTime) - _, rulesMatched, _isRulesEnabled := models.RunValidationRulesState(*harEntry, entry.Service) + _, rulesMatched, _isRulesEnabled := models.RunValidationRulesState(*harEntry, entry.Destination.Name) isRulesEnabled = _isRulesEnabled inrec, _ := json.Marshal(rulesMatched) json.Unmarshal(inrec, &rules) diff --git a/agent/pkg/up9/main.go b/agent/pkg/up9/main.go index 9f0a1d185..e44c2b9e2 100644 --- a/agent/pkg/up9/main.go +++ b/agent/pkg/up9/main.go @@ -251,12 +251,12 @@ func syncEntriesImpl(token string, model string, envPrefix string, uploadInterva if err != nil { continue } - if entry.ResolvedSource != "" { - harEntry.Request.Headers = append(harEntry.Request.Headers, har.Header{Name: "x-mizu-source", Value: entry.ResolvedSource}) + if entry.Source.Name != "" { + harEntry.Request.Headers = append(harEntry.Request.Headers, har.Header{Name: "x-mizu-source", Value: entry.Source.Name}) } - if entry.ResolvedDestination != "" { - harEntry.Request.Headers = append(harEntry.Request.Headers, har.Header{Name: "x-mizu-destination", Value: entry.ResolvedDestination}) - harEntry.Request.URL = utils.SetHostname(harEntry.Request.URL, entry.ResolvedDestination) + if entry.Destination.Name != "" { + harEntry.Request.Headers = append(harEntry.Request.Headers, har.Header{Name: "x-mizu-destination", Value: entry.Destination.Name}) + harEntry.Request.URL = utils.SetHostname(harEntry.Request.URL, entry.Destination.Name) } // go's default marshal behavior is to encode []byte fields to base64, python's default unmarshal behavior is to not decode []byte fields from base64 diff --git a/tap/api/api.go b/tap/api/api.go index 36bd6241f..3b1f9834a 100644 --- a/tap/api/api.go +++ b/tap/api/api.go @@ -129,19 +129,10 @@ type MizuEntry struct { Response map[string]interface{} `json:"response"` Base *BaseEntryDetails `json:"base"` Summary string `json:"summary"` - Url string `json:"url"` Method string `json:"method"` Status int `json:"status"` - RequestSenderIp string `json:"requestSenderIp"` - Service string `json:"service"` ElapsedTime int64 `json:"elapsedTime"` Path string `json:"path"` - ResolvedSource string `json:"resolvedSource,omitempty"` - ResolvedDestination string `json:"resolvedDestination,omitempty"` - SourceIp string `json:"sourceIp,omitempty"` - DestinationIp string `json:"destinationIp,omitempty"` - SourcePort string `json:"sourcePort,omitempty"` - DestinationPort string `json:"destinationPort,omitempty"` IsOutgoing bool `json:"isOutgoing,omitempty"` ContractStatus ContractStatus `json:"contractStatus,omitempty"` ContractRequestReason string `json:"contractRequestReason,omitempty"` @@ -160,24 +151,20 @@ type MizuEntryWrapper struct { } type BaseEntryDetails struct { - Id uint `json:"id"` - Protocol Protocol `json:"protocol,omitempty"` - Url string `json:"url,omitempty"` - RequestSenderIp string `json:"requestSenderIp,omitempty"` - Service string `json:"service,omitempty"` - Path string `json:"path,omitempty"` - Summary string `json:"summary,omitempty"` - StatusCode int `json:"statusCode"` - Method string `json:"method,omitempty"` - Timestamp int64 `json:"timestamp,omitempty"` - SourceIp string `json:"sourceIp,omitempty"` - DestinationIp string `json:"destinationIp,omitempty"` - SourcePort string `json:"sourcePort,omitempty"` - DestinationPort string `json:"destinationPort,omitempty"` - IsOutgoing bool `json:"isOutgoing,omitempty"` - Latency int64 `json:"latency"` - Rules ApplicableRules `json:"rules,omitempty"` - ContractStatus ContractStatus `json:"contractStatus"` + Id uint `json:"id"` + Protocol Protocol `json:"protocol,omitempty"` + Url string `json:"url,omitempty"` + Path string `json:"path,omitempty"` + Summary string `json:"summary,omitempty"` + StatusCode int `json:"statusCode"` + Method string `json:"method,omitempty"` + Timestamp int64 `json:"timestamp,omitempty"` + Source *TCP `json:"src"` + Destination *TCP `json:"dst"` + IsOutgoing bool `json:"isOutgoing,omitempty"` + Latency int64 `json:"latency"` + Rules ApplicableRules `json:"rules,omitempty"` + ContractStatus ContractStatus `json:"contractStatus"` } type ApplicableRules struct { @@ -202,18 +189,13 @@ type DataUnmarshaler interface { func (bed *BaseEntryDetails) UnmarshalData(entry *MizuEntry) error { bed.Protocol = entry.Protocol bed.Id = entry.Id - bed.Url = entry.Url - bed.RequestSenderIp = entry.RequestSenderIp - bed.Service = entry.Service bed.Path = entry.Path - bed.Summary = entry.Path + bed.Summary = entry.Summary bed.StatusCode = entry.Status bed.Method = entry.Method bed.Timestamp = entry.Timestamp - bed.SourceIp = entry.SourceIp - bed.DestinationIp = entry.DestinationIp - bed.SourcePort = entry.SourcePort - bed.DestinationPort = entry.DestinationPort + bed.Source = entry.Source + bed.Destination = entry.Destination bed.IsOutgoing = entry.IsOutgoing bed.Latency = entry.ElapsedTime bed.ContractStatus = entry.ContractStatus @@ -271,7 +253,6 @@ func (h HTTPPayload) MarshalJSON() ([]byte, error) { } return json.Marshal(&HTTPWrapper{ Method: harRequest.Method, - Url: "", Details: harRequest, RawRequest: &HTTPRequestWrapper{Request: h.Data.(*http.Request)}, }) diff --git a/tap/extensions/amqp/main.go b/tap/extensions/amqp/main.go index af9155461..01bd2fac6 100644 --- a/tap/extensions/amqp/main.go +++ b/tap/extensions/amqp/main.go @@ -226,12 +226,6 @@ func (d dissecting) Dissect(b *bufio.Reader, isClient bool, tcpID *api.TcpID, co func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string) *api.MizuEntry { request := item.Pair.Request.Payload.(map[string]interface{}) reqDetails := request["details"].(map[string]interface{}) - service := "amqp" - if resolvedDestination != "" { - service = resolvedDestination - } else if resolvedSource != "" { - service = resolvedSource - } summary := "" switch request["method"] { @@ -279,45 +273,31 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, IP: item.ConnectionInfo.ServerIP, Port: item.ConnectionInfo.ServerPort, }, - Outgoing: item.ConnectionInfo.IsOutgoing, - Request: reqDetails, - Url: fmt.Sprintf("%s%s", service, summary), - Method: request["method"].(string), - Status: 0, - RequestSenderIp: item.ConnectionInfo.ClientIP, - Service: service, - Timestamp: item.Timestamp, - StartTime: item.Pair.Request.CaptureTime, - ElapsedTime: 0, - Summary: summary, - ResolvedSource: resolvedSource, - ResolvedDestination: resolvedDestination, - SourceIp: item.ConnectionInfo.ClientIP, - DestinationIp: item.ConnectionInfo.ServerIP, - SourcePort: item.ConnectionInfo.ClientPort, - DestinationPort: item.ConnectionInfo.ServerPort, - IsOutgoing: item.ConnectionInfo.IsOutgoing, + Outgoing: item.ConnectionInfo.IsOutgoing, + Request: reqDetails, + Method: request["method"].(string), + Status: 0, + Timestamp: item.Timestamp, + StartTime: item.Pair.Request.CaptureTime, + ElapsedTime: 0, + Summary: summary, + IsOutgoing: item.ConnectionInfo.IsOutgoing, } } func (d dissecting) Summarize(entry *api.MizuEntry) *api.BaseEntryDetails { return &api.BaseEntryDetails{ - Id: entry.Id, - Protocol: protocol, - Url: entry.Url, - RequestSenderIp: entry.RequestSenderIp, - Service: entry.Service, - Summary: entry.Summary, - StatusCode: entry.Status, - Method: entry.Method, - Timestamp: entry.Timestamp, - SourceIp: entry.SourceIp, - DestinationIp: entry.DestinationIp, - SourcePort: entry.SourcePort, - DestinationPort: entry.DestinationPort, - IsOutgoing: entry.IsOutgoing, - Latency: entry.ElapsedTime, + Id: entry.Id, + Protocol: protocol, + Summary: entry.Summary, + StatusCode: entry.Status, + Method: entry.Method, + Timestamp: entry.Timestamp, + Source: entry.Source, + Destination: entry.Destination, + IsOutgoing: entry.IsOutgoing, + Latency: entry.ElapsedTime, Rules: api.ApplicableRules{ Latency: 0, Status: false, diff --git a/tap/extensions/http/main.go b/tap/extensions/http/main.go index fa3eea323..26cf40c8c 100644 --- a/tap/extensions/http/main.go +++ b/tap/extensions/http/main.go @@ -158,7 +158,7 @@ func (d dissecting) Dissect(b *bufio.Reader, isClient bool, tcpID *api.TcpID, co } func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string) *api.MizuEntry { - var host, authority, path, service string + var host, authority, path string request := item.Pair.Request.Payload.(map[string]interface{}) response := item.Pair.Response.Payload.(map[string]interface{}) @@ -191,9 +191,13 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, } if item.Protocol.Version == "2.0" && !isRequestUpgradedH2C { - service = authority + if resolvedDestination == "" { + resolvedDestination = authority + } + if resolvedDestination == "" { + resolvedDestination = host + } } else { - service = host u, err := url.Parse(reqDetails["url"].(string)) if err != nil { path = reqDetails["url"].(string) @@ -221,12 +225,6 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, reqDetails["_queryString"] = reqDetails["queryString"] reqDetails["queryString"] = mapSliceRebuildAsMap(reqDetails["_queryString"].([]interface{})) - if resolvedDestination != "" { - service = resolvedDestination - } else if resolvedSource != "" { - service = resolvedSource - } - method := reqDetails["method"].(string) statusCode := int(resDetails["status"].(float64)) if item.Protocol.Abbreviation == "gRPC" { @@ -255,47 +253,33 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, IP: item.ConnectionInfo.ServerIP, Port: item.ConnectionInfo.ServerPort, }, - Outgoing: item.ConnectionInfo.IsOutgoing, - Request: reqDetails, - Response: resDetails, - Url: fmt.Sprintf("%s%s", service, path), - Method: method, - Status: statusCode, - RequestSenderIp: item.ConnectionInfo.ClientIP, - Service: service, - Timestamp: item.Timestamp, - StartTime: item.Pair.Request.CaptureTime, - ElapsedTime: elapsedTime, - Summary: path, - ResolvedSource: resolvedSource, - ResolvedDestination: resolvedDestination, - SourceIp: item.ConnectionInfo.ClientIP, - DestinationIp: item.ConnectionInfo.ServerIP, - SourcePort: item.ConnectionInfo.ClientPort, - DestinationPort: item.ConnectionInfo.ServerPort, - IsOutgoing: item.ConnectionInfo.IsOutgoing, - HTTPPair: string(httpPair), + Outgoing: item.ConnectionInfo.IsOutgoing, + Request: reqDetails, + Response: resDetails, + Method: method, + Status: statusCode, + Timestamp: item.Timestamp, + StartTime: item.Pair.Request.CaptureTime, + ElapsedTime: elapsedTime, + Summary: path, + IsOutgoing: item.ConnectionInfo.IsOutgoing, + HTTPPair: string(httpPair), } } func (d dissecting) Summarize(entry *api.MizuEntry) *api.BaseEntryDetails { return &api.BaseEntryDetails{ - Id: entry.Id, - Protocol: entry.Protocol, - Url: entry.Url, - RequestSenderIp: entry.RequestSenderIp, - Service: entry.Service, - Path: entry.Path, - Summary: entry.Summary, - StatusCode: entry.Status, - Method: entry.Method, - Timestamp: entry.Timestamp, - SourceIp: entry.SourceIp, - DestinationIp: entry.DestinationIp, - SourcePort: entry.SourcePort, - DestinationPort: entry.DestinationPort, - IsOutgoing: entry.IsOutgoing, - Latency: entry.ElapsedTime, + Id: entry.Id, + Protocol: entry.Protocol, + Path: entry.Path, + Summary: entry.Summary, + StatusCode: entry.Status, + Method: entry.Method, + Timestamp: entry.Timestamp, + Source: entry.Source, + Destination: entry.Destination, + IsOutgoing: entry.IsOutgoing, + Latency: entry.ElapsedTime, Rules: api.ApplicableRules{ Latency: 0, Status: false, diff --git a/tap/extensions/kafka/main.go b/tap/extensions/kafka/main.go index 9dff00388..43af66140 100644 --- a/tap/extensions/kafka/main.go +++ b/tap/extensions/kafka/main.go @@ -65,12 +65,6 @@ func (d dissecting) Dissect(b *bufio.Reader, isClient bool, tcpID *api.TcpID, co func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string) *api.MizuEntry { request := item.Pair.Request.Payload.(map[string]interface{}) reqDetails := request["details"].(map[string]interface{}) - service := "kafka" - if resolvedDestination != "" { - service = resolvedDestination - } else if resolvedSource != "" { - service = resolvedSource - } apiKey := ApiKey(reqDetails["apiKey"].(float64)) summary := "" @@ -164,45 +158,31 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, IP: item.ConnectionInfo.ServerIP, Port: item.ConnectionInfo.ServerPort, }, - Outgoing: item.ConnectionInfo.IsOutgoing, - Request: reqDetails, - Response: item.Pair.Response.Payload.(map[string]interface{})["details"].(map[string]interface{}), - Url: fmt.Sprintf("%s%s", service, summary), - Method: apiNames[apiKey], - Status: 0, - RequestSenderIp: item.ConnectionInfo.ClientIP, - Service: service, - Timestamp: item.Timestamp, - StartTime: item.Pair.Request.CaptureTime, - ElapsedTime: elapsedTime, - Summary: summary, - ResolvedSource: resolvedSource, - ResolvedDestination: resolvedDestination, - SourceIp: item.ConnectionInfo.ClientIP, - DestinationIp: item.ConnectionInfo.ServerIP, - SourcePort: item.ConnectionInfo.ClientPort, - DestinationPort: item.ConnectionInfo.ServerPort, - IsOutgoing: item.ConnectionInfo.IsOutgoing, + Outgoing: item.ConnectionInfo.IsOutgoing, + Request: reqDetails, + Response: item.Pair.Response.Payload.(map[string]interface{})["details"].(map[string]interface{}), + Method: apiNames[apiKey], + Status: 0, + Timestamp: item.Timestamp, + StartTime: item.Pair.Request.CaptureTime, + ElapsedTime: elapsedTime, + Summary: summary, + IsOutgoing: item.ConnectionInfo.IsOutgoing, } } func (d dissecting) Summarize(entry *api.MizuEntry) *api.BaseEntryDetails { return &api.BaseEntryDetails{ - Id: entry.Id, - Protocol: _protocol, - Url: entry.Url, - RequestSenderIp: entry.RequestSenderIp, - Service: entry.Service, - Summary: entry.Summary, - StatusCode: entry.Status, - Method: entry.Method, - Timestamp: entry.Timestamp, - SourceIp: entry.SourceIp, - DestinationIp: entry.DestinationIp, - SourcePort: entry.SourcePort, - DestinationPort: entry.DestinationPort, - IsOutgoing: entry.IsOutgoing, - Latency: entry.ElapsedTime, + Id: entry.Id, + Protocol: _protocol, + Summary: entry.Summary, + StatusCode: entry.Status, + Method: entry.Method, + Timestamp: entry.Timestamp, + Source: entry.Source, + Destination: entry.Destination, + IsOutgoing: entry.IsOutgoing, + Latency: entry.ElapsedTime, Rules: api.ApplicableRules{ Latency: 0, Status: false, diff --git a/tap/extensions/redis/main.go b/tap/extensions/redis/main.go index f2d2836d5..e8a6d0f31 100644 --- a/tap/extensions/redis/main.go +++ b/tap/extensions/redis/main.go @@ -65,13 +65,6 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, reqDetails := request["details"].(map[string]interface{}) resDetails := response["details"].(map[string]interface{}) - service := "redis" - if resolvedDestination != "" { - service = resolvedDestination - } else if resolvedSource != "" { - service = resolvedSource - } - method := "" if reqDetails["command"] != nil { method = reqDetails["command"].(string) @@ -99,46 +92,32 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, IP: item.ConnectionInfo.ServerIP, Port: item.ConnectionInfo.ServerPort, }, - Outgoing: item.ConnectionInfo.IsOutgoing, - Request: reqDetails, - Response: resDetails, - Url: fmt.Sprintf("%s%s", service, summary), - Method: method, - Status: 0, - RequestSenderIp: item.ConnectionInfo.ClientIP, - Service: service, - Timestamp: item.Timestamp, - StartTime: item.Pair.Request.CaptureTime, - ElapsedTime: elapsedTime, - Summary: summary, - ResolvedSource: resolvedSource, - ResolvedDestination: resolvedDestination, - SourceIp: item.ConnectionInfo.ClientIP, - DestinationIp: item.ConnectionInfo.ServerIP, - SourcePort: item.ConnectionInfo.ClientPort, - DestinationPort: item.ConnectionInfo.ServerPort, - IsOutgoing: item.ConnectionInfo.IsOutgoing, + Outgoing: item.ConnectionInfo.IsOutgoing, + Request: reqDetails, + Response: resDetails, + Method: method, + Status: 0, + Timestamp: item.Timestamp, + StartTime: item.Pair.Request.CaptureTime, + ElapsedTime: elapsedTime, + Summary: summary, + IsOutgoing: item.ConnectionInfo.IsOutgoing, } } func (d dissecting) Summarize(entry *api.MizuEntry) *api.BaseEntryDetails { return &api.BaseEntryDetails{ - Id: entry.Id, - Protocol: protocol, - Url: entry.Url, - RequestSenderIp: entry.RequestSenderIp, - Service: entry.Service, - Summary: entry.Summary, - StatusCode: entry.Status, - Method: entry.Method, - Timestamp: entry.Timestamp, - SourceIp: entry.SourceIp, - DestinationIp: entry.DestinationIp, - SourcePort: entry.SourcePort, - DestinationPort: entry.DestinationPort, - IsOutgoing: entry.IsOutgoing, - Latency: entry.ElapsedTime, + Id: entry.Id, + Protocol: protocol, + Summary: entry.Summary, + StatusCode: entry.Status, + Method: entry.Method, + Timestamp: entry.Timestamp, + Source: entry.Source, + Destination: entry.Destination, + IsOutgoing: entry.IsOutgoing, + Latency: entry.ElapsedTime, Rules: api.ApplicableRules{ Latency: 0, Status: false, diff --git a/ui/src/components/EntryListItem/EntryListItem.module.sass b/ui/src/components/EntryListItem/EntryListItem.module.sass index 5a86a38ba..7e396d136 100644 --- a/ui/src/components/EntryListItem/EntryListItem.module.sass +++ b/ui/src/components/EntryListItem/EntryListItem.module.sass @@ -45,7 +45,7 @@ .ruleNumberTextSuccess color: #219653 -.service +.resolvedName text-overflow: ellipsis overflow: hidden white-space: nowrap diff --git a/ui/src/components/EntryListItem/EntryListItem.tsx b/ui/src/components/EntryListItem/EntryListItem.tsx index 0a3c12285..0b9a860a4 100644 --- a/ui/src/components/EntryListItem/EntryListItem.tsx +++ b/ui/src/components/EntryListItem/EntryListItem.tsx @@ -1,5 +1,6 @@ import React from "react"; import Moment from 'moment'; +import SwapHorizIcon from '@material-ui/icons/SwapHoriz'; import styles from './EntryListItem.module.sass'; import StatusCode, {getClassification, StatusCodeClassification} from "../UI/StatusCode"; import Protocol, {ProtocolInterface} from "../UI/Protocol" @@ -12,19 +13,21 @@ import outgoingIconSuccess from "../assets/outgoing-traffic-success.svg" import outgoingIconFailure from "../assets/outgoing-traffic-failure.svg" import outgoingIconNeutral from "../assets/outgoing-traffic-neutral.svg" +interface TCPInterface { + ip: string + port: string + name: string +} + interface Entry { protocol: ProtocolInterface, method?: string, summary: string, - service: string, id: number, statusCode?: number; - url?: string; timestamp: Date; - sourceIp: string, - sourcePort: string, - destinationIp: string, - destinationPort: string, + src: TCPInterface, + dst: TCPInterface, isOutgoing?: boolean; latency: number; rules: Rules; @@ -151,17 +154,33 @@ export const EntryItem: React.FC = ({entry, focusedEntryId, setFocus }
-
+
+ + {entry.src.name ? entry.src.name : "[Unresolved]"} + + + + - {entry.service} + {entry.dst.name ? entry.dst.name : "[Unresolved]"}
@@ -182,7 +201,7 @@ export const EntryItem: React.FC = ({entry, focusedEntryId, setFocus }
= ({entry, focusedEntryId, setFocus className={`${styles.tcpInfo} ${styles.ip}`} title="Source IP" > - {entry.sourceIp} + {entry.src.ip} : = ({entry, focusedEntryId, setFocus className={`${styles.tcpInfo} ${styles.port}`} title="Source Port" > - {entry.sourcePort} + {entry.src.port} {entry.isOutgoing ? @@ -243,7 +262,7 @@ export const EntryItem: React.FC = ({entry, focusedEntryId, setFocus } = ({entry, focusedEntryId, setFocus className={`${styles.tcpInfo} ${styles.ip}`} title="Destination IP" > - {entry.destinationIp} + {entry.dst.ip} : = ({entry, focusedEntryId, setFocus className={`${styles.tcpInfo} ${styles.port}`} title="Destination Port" > - {entry.destinationPort} + {entry.dst.port}
diff --git a/ui/src/components/Filters.tsx b/ui/src/components/Filters.tsx index 3ee23001b..0afc7325d 100644 --- a/ui/src/components/Filters.tsx +++ b/ui/src/components/Filters.tsx @@ -244,7 +244,7 @@ export const QueryForm: React.FC = ({query, setQuery, background diff --git a/ui/src/components/assets/filter-ui-example-1.png b/ui/src/components/assets/filter-ui-example-1.png index f8f76b85ae9ffe86f611a5f4bb9d8fd1499f32c0..6f4d8843045687610ca7b5d1ad5d91f7244e5aa4 100644 GIT binary patch literal 47299 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«UZLqh`u2pU@uz+0*Xhx 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 literal 41510 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 B#y0=}