Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUGFIX: [graph] Hide filtered nodes/edges in correlation graphs #9236

Closed

Conversation

ckane
Copy link
Contributor

@ckane ckane commented Dec 4, 2024

Right now, these are simply greyed out as "disabled". However, when we filter items from the correlation graphs, we want it to "clean up" the graph. So, hide the affected nodes+edges from view so we can explore just the correlated items we include in the filters.

Proposed changes

In buildCorrelationData in the utils/Graph.js, change the "filter" behavior from disabling filtered nodes (which simply changes their color) to remove them from the graph (and their edges). This is how the Correlation feature used to work, and the behavior regressed sometime later.

Keeping the disabled nodes + edges on the graph in correlation view significantly defeats the purpose of being able to filter these nodes out, as it makes large graphs difficult to navigate.

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case (coverage and e2e)
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality

Screenshots

Example of filter behavior fixed with this PR:

image
image

Copy link

codecov bot commented Dec 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 65.24%. Comparing base (671eae4) to head (f1a6daa).
Report is 14 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #9236   +/-   ##
=======================================
  Coverage   65.24%   65.24%           
=======================================
  Files         624      624           
  Lines       59623    59623           
  Branches     6636     6636           
=======================================
  Hits        38899    38899           
  Misses      20724    20724           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ckane ckane changed the title [graph] Hide filtered nodes/edges in correlation graphs BUGFIX: [graph] Hide filtered nodes/edges in correlation graphs Dec 4, 2024
@ckane ckane force-pushed the corr-graph-hide-items-issue branch from 167eb21 to ff92434 Compare December 4, 2024 17:17
@labo-flg labo-flg added community use to identify PR from community graph linked to graph display and manipulation labels Dec 6, 2024
@ckane ckane force-pushed the corr-graph-hide-items-issue branch 3 times, most recently from ce5a0e1 to ff38bac Compare December 11, 2024 14:09
Right now, these are simply greyed out as "disabled". However, when we
filter items from the correlation graphs, we want it to "clean up" the
graph. So, hide the affected nodes+edges from view so we can explore
just the correlated items we include in the filters.
@ckane ckane force-pushed the corr-graph-hide-items-issue branch from ff38bac to f1a6daa Compare December 12, 2024 04:12
@labo-flg
Copy link
Member

Hi @ckane and thanks for your contribution.
We already tested different approaches in the past.
The current version (having filtered items greyed out) is actually the solution we selected in the end for good reasons.

One side effect of removing the filtered items entirely is that the 3D forces are re-applied and you lose the positioning and quickly get lost.

@labo-flg labo-flg closed this Dec 16, 2024
@ckane
Copy link
Contributor Author

ckane commented Dec 16, 2024

Hi @ckane and thanks for your contribution. We already tested different approaches in the past. The current version (having filtered items greyed out) is actually the solution we selected in the end for good reasons.

One side effect of removing the filtered items entirely is that the 3D forces are re-applied and you lose the positioning and quickly get lost.

I understand, especially for the primary knowledge graphs. However, in this situation, when all of the "intermediate nodes" between the current report and a linked report are "greyed out", the linked-report in that case should be "greyed out" too, but it is not, so the existing behavior doesn't solve this problem either.

image

In this chart, as an example, the "Regin Scanner" report at top-right is the "current report". All nodes connected to "OSINT Regin Samples" are greyed out, so that report should also get greyed out, in order to use the filters to "hide correlations based upon linked entity type".

Additionally, I have CTI analysts who say that the "greying the nodes out" in the correlation charts creates charts that are difficult to view when they're trying to explore correlations to other reporting in the system using the correlation graphs, and they similarly describe the experience of "easy to get lost".

I realize the Investigations feature is also one potential option, but this is a lot more time-consuming and requires creating new investigation entities for work that will ultimately get thrown away.

I understand the distinction is probably a matter of having differing use-cases as well as different procedures for research. Can we have the choice between either behavior as an option inside the graphing widget?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community use to identify PR from community graph linked to graph display and manipulation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants