Skip to content

Conversation

nikitar
Copy link
Member

@nikitar nikitar commented Oct 19, 2026

Beskrivelse

Implementerer dynamiske filtervalg for ThreatActor-siden. Tidligere var filteralternativene hardkodet med mock-data. Nå hentes tilgjengelige filteralternativer og antall tilhørende trusselaktører direkte fra databasen.

Løsningen er laget for å være skalerbar ved at filteralternativene oppdateres i takt med datagrunnlaget, samtidig som Apollo Client cacher resultatene for å redusere unødvendige forespørsler.

Screenshot 2026-10-19 at 12 41 46

Endringer

Backend

  • Implementerte getThreatActorFilterOptions() i threatActorRepository, som returnerer filter options for Country, Region, Motivation, Sector, Status og Danger Level.
  • Hver resultat er på formen {verdi: ACTIVE, label: Active, count: antall treff)
  • Kjører database spørringer parallelt for optimalisering
  • Opprettet nødvendige typer og oppdaterte resolver og defs til å støtte getThreatActorFilterOptions()

Frontend

  • Opprettet en ThreatActorFilterDropdown.tsx som vist på bildet over. Refaktorerte ThreatActorFilter.tsx til å støtte nye componenten
  • Brukte KI tl å midlertidig definere design, men jeg jobber med funksjonaliteten
  • Opprettet GraphQL-query og tilhørende TypeScript-typer for å støtte getThreatActorFilterOptions() (GET_THREAT_ACTOR_FILTER_OPTIONS)
  • Henter filteralternativene med Apollo Clients useQuery() og cache-first. For skalerbarhet og yttelse.
  • Sender filterdata fra ThreatActors.tsx til ThreatActorFilters via props.
  • Beholder sorteringsalternativene som statiske verdier.
  • Bruker KI til å forbedre interaksjon med FilterDropdown komponenten

KI deklarasjon

KI ble brukt som veileder og debugger. Brukte tidligere queries som inspirasjon til å opprette getThreatActorFilterOptions(), samt resolvers og defs. Dermed ble KI brukt hovedsakelig i frontend, blant annet:

  • Refaktorering av filterbox og opprettelse av ThreatActorFilterDropdown og css.
  • Riktig kobling og arkitektur mellom ThreatActor -> ThreatActorFilter -> ThreatActorFilterDropdown
  • Inspirasjon om å cache queries GET_THREAT_ACTOR_FILTER_OPTIONS fikk jeg fra KI, men implementasjonen ble vurdert og testet.

Cache test

Først reload (nullstille cache) deretter åpne ThreatActor

Screenshot 2026-10-19 at 13 02 02

Deretter naviger til Home, og så tilbake til ThreatActor

Screenshot 2026-10-19 at 13 03 23

Resultat

Ingen ekstra getThreatActorFilterOptions() request

Closes #75

@nikitar nikitar added the enhancement New feature or request label Oct 19, 2026
@nikitar nikitar requested a review from a team as a code owner October 19, 2026 11:04
Copy link
Member

@daniekba daniekba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Masse nytt, bra jobba

@daniekba daniekba merged commit e209092 into main Oct 20, 2026
Sign in to join this conversation on GitHub.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Oppretter dynamiske filtervalg for ThreatActor
2 participants