Refaktorering av backend-struktur med Drizzle ORM #38
+4,483
−1,020
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Beskrivelse
I denne endringer rydder jeg opp backend-strukturen og sikrer separasjon av ansvar for videre utvikling av backend.
I steden for å ha en index.ts som gjør alt, så har vi nå denne flyen:
↓
↓
↓
↓
↓
Ny backend struktur:
Drizzle
Fungerer nå som en mellom man mellom backend og databasen. For å oppnå dette måtte man endre på den ren mysql2 basserte strukturen. Dvs,
MITRE-DATA
1.Før så opprettet import-mitre.ts både databasestrukturen og importerte data. Nå tar Drizzle ansvaret for databasestruktur.
2.Nå så er import-mitre.ts kun avsvarlig for å importere selve dataen(radene) inn i tabellen.
En endring er vel at nå har vi en ekstra attributt i hver Entitet, nemlig x_mitre_depricated av typen Boolean. Som diskutert på møtet
Repositories
Selve koden som spør databasen om info skal ligge under repositories/
GraphQL
Mappa er delt opp i:
typeDefs.ts - Beskriver API interfacet, altså hvilke queries backend lover til frontend
resolvers/ - Kobling mellom typeDefs og repositories.
index.ts - Samler resolverne i ett fil før index.ts sendes videre til Apollo Server
Oppdaterte Readme for databasen for å få den kobla gjennom Drizzle. Gjør relevante steg på nytt.
Jeg kommenterte kode så mye som mulig, så sjekk filene hvis det er noe som er uklart
Verifikasjon
Kjørte en eksempel kode under ThreatActors delen av backend. Og fikk ut data fra nye Drizzle "drevet" Database CyberDB
Closes #36
KI deklarasjon
KI ble brukt til: