mitre-attack / mitre-attack/attack-navigator

Qualitative Colors

Open
#302 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement Points: 8 seeking feedback timescale/imminent
Dominant language
TypeScript
Stars
2.5k
Forks
715
Avg merge
7h 33m
Merged PRs (30d)
4

Description

As a user, I want to be able to color technique cells in the matrix qualitatively according to the comment or a metadata value.

Allow the user to enable qualitative scoring. This interface should probably be found within the color setup interface, which can be moved to the sidebar area implemented in #301.

Values that can be colored qualitatively

The user should be able to select the field used for qualitative scoring. Options should include:

  • comment, wherein I, each unique comment value would get a color. e.g if the user is using comment to denote APT usage (ordered in an alphabetical comma separated list) the color could then uniquely identify the set of APTs using a technique.
  • any defined metadata keys. E.g if the metadata key/value "coverage" ("low"/"medium"/"high") was selected, low would get a color, medium would get a color and high would get a color.

Only one field can be used for quantitative color at a time.

Coloring qualitative data

Once a field has been selected, the user can define the color palate applied the values under that field. There should be two options for quantitative color palates:

  • Ordinal data are defined using a gradient applied to the ordered entries. The user should be able to order the values as desired and the colors within the gradient assigned automatically using that order. The gradient itself should be editable with the same interface as the current score gradient setup.
  • Nominal data allows the user to define the color of each value individually. Predefined nominal data palates should also be available to quickly assign recommended colors to the values, conceptually similar to the options provided by Matplotlib:
    image

Behavior when a new value is added

When a new value is added, e.g a user creates a new comment or metadata value that is not already colored, a new entry should be added to the color palate.

  • For ordinal data, the entry should appear last in the series.
  • For nominal data, a randomized color should be selected (optimally the one furthest from already used colors).

In both cases, the UI should indicate that the user should customize the color, perhaps by flashing highlight on the color setup button or auto-opening the color setup sidebar.

Legend integration

Values of both ordinal and nominal qualitative data should show up in the legend(?). Note: this would be inconsistent with score color which doesn't show up in the legend. Perhaps the legend should be redesigned to show any colors (via score, nominal field) as well as custom user entries are are currently possible.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing color setup interface and the sidebar area described in issue #301. Define the scope for selecting comment or metadata fields, configuring ordinal and nominal palettes, handling new values, and integrating the legend. Done should include the complete qualitative-color workflow and agreed behavior for each listed case.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.