Uge 45: Projekt Update
- Kenneth H Sørensen
- Nov 9
- 2 min read

Kode, sikkerhed, tests og infrastruktur
Den seneste periode har været fokuseret på at færdiggøre use cases, test og infrastruktur, samtidig med at jeg er begyndt at tænke mere IT-sikkerhed ind i udviklingen.
UC1 og UC2 færdiggjort
Begge use cases er nu implementeret på tværs af Ingestion-, Storage- og Media Access-services.
UC1 håndterer oprettelse af upload-sessioner og generering af præsignerede PUT-URLs
UC2 giver sikker adgang til mediefiler gennem præsignerede GET-URLs
Arbejdet har krævet en tydelig afgrænsning af ansvarsområder og en gennemgang af dataflow, nøglestruktur og API-kontrakter mellem services.
API-dokumentation og versionering
De nuværende API-grænseflader er nu dokumenteret med kontrakter, der beskriver input, output og fejlscenarier.
Jeg har desuden indført versionsstyring af API’er, så eksisterende endpoints kan “fryses”.
Det giver mulighed for at udvide og forbedre funktionalitet uden at bryde kompatibilitet for andre i mit team, der integrerer med systemet.
Test og kvalitetssikring
Der er oprettet unit- og integrationstests i Storage-servicen for at validere logikken og interaktionen med den underliggende infrastruktur.
Målet er at udvide testdækningen til de øvrige services, så alle use cases har grundlæggende tests.
Testene fungerer både som dokumentation og som kvalitetssikring under refaktorering.
Infrastruktur og opsætning
Jeg har sat en selvhostet Redpanda-server op, som er fuldt Kafka-kompatibel og bruges til event-streaming mellem services i vores projekt.
Adgangen er sikret gennem Cloudflare Tunnel og en Zero Trust-policy.
Integration og lokal funktionalitet er testet, men det er endnu ikke bekræftet, om serveren kan tilgås eksternt af andre teammedlemmer. Det næste skridt bliver at lade et teammedlem installere Cloudflared klienten og teste ekstern adgang for at bekræfte, at forbindelsen fungerer korrekt.
Jeg anvender fortsat SQLite og MinIO i udviklingsmiljøet, men vil afklare, hvilke teknologier der skal bruges i en mere permanent opsætning, f.eks. SQL Server, PostgreSQL eller Azure Blob Storage.
CI/CD og udviklingsworkflow
CI kører stabilt og anvendes til test og build.
Næste skridt bliver at udvide med sikkerhedsscanning for at sikre kontinuerlig kontrol af kodekvalitet og sårbarheder:
SAST (Static App Sec Testing): analyse af kildekoden for sikkerhedsfejl og usikre mønstre.
DAST (Dynamic App Sec Testing): tester app under kørsel for at finde sårbarheder i endpoints og runtime-adfærd.
SCA (Software Composition Analysis): scanner eksterne biblioteker og afhængigheder for kendte sårbarheder.
Jeg planlægger også at opdatere Docker-filerne i alle mine 3 repositories, så de kan bygges og distribueres via GitHub Container Registry og derefter køres i Kubernetes (styres af teammedlem).
Planer for de kommende uger
De næste uger vil fokus være på at styrke sikkerheden, driften og fleksibiliteten i systemet:
API-kontrakter:
undersøge om metadata som filstørrelse og checksum bør medsendes allerede ved upload-initiering.
Sikkerhed:
integrere SAST, DAST og SCA i CI/CD-pipelinen for at automatisere sikkerhedsscanninger og komponentanalyse.
Gennemgå kode og konfig. ift. CIA-triaden, OWASP-principper og least privilege.
Transport og autentificering:
undersøge transportsikkerhed i praksis. F.eks forskellen mellem HTTPS, TLS og mTLS, og hvordan certifikater og interne tokens kan bruges til sikker kommunikation mellem services.
Drift og stabilitet:
tilføje logging
tilføje rate limiting
og evt. tenant-ejerskab på object keys for klarere dataadskillelse.
Arkitektur:
overveje mulighed for at tilbyde GraphQL-endpoints som supplement til REST, så andre teams kan vælge format efter behov.
Jeg vil tænke IT-sikkerhed direkte ind i udviklingen ved at sikre forbindelser, validere input, forbedre logging og audit samt håndhæve least privilege for alle services.


