SPOR

Tillid og data

Jeres data i SPOR: hvor de ligger, og hvordan de er beskyttet

SPOR hjælper virksomheder med overblik over AI, data og ansvar. Her kan I se præcis, hvilke leverandører der indgår, hvilke oplysninger SPOR behandler, hvad SPOR aldrig behandler, og hvordan hvert krav i reglerne er opfyldt og kontrolleret.

Data opbevares i EU

Database og servere står i Frankfurt, og AI kører kun i EU-regioner på jeres egen konto. Vercels tekniske driftslogs (fx IP-adresse) kan behandles i USA under EU-US Data Privacy Framework.

Ingen CPR-numre

Databasen afviser CPR-numre, uanset hvor de kommer fra. Følsomme oplysninger hører ikke til i SPOR.

Jeres data er adskilt

Hver kunde er adskilt i selve databasen. Det testes automatisk ved hver ændring.

Tofaktor for alle

Login kræver adgangskode og kode fra en authenticator-app. Ingen undtagelser.

22krav opfyldt
2delvist opfyldt
0åbne

Levering

Sådan leveres SPOR

Hosting og leverandører her beskriver SPOR, som det kører på spor.martinegesoe.dk. Jeres egen SPOR sættes op med de samme regioner og spærrer, men på jeres egne konti.

  • Jeres egen SPOR på jeres egne konti. Hver kunde får sin egen SPOR på sine egne konti: GitHub, Vercel og Neon (Frankfurt) og en AWS-konto til AI i EU. I ejer og betaler kontiene, og jeres data ligger ikke i en fælles database eller på vores konti.
  • SPOR-drift som inviteret medlem. SPOR-drift inviteres som medlem på jeres konti for at sætte op, drive og opdatere. Adgang til selve jeres SPOR sker med tidsbegrænset, logget supportadgang.
  • Opsætning trin for trin. I opretter kontiene (GitHub, Vercel Pro og AWS i EU) med en personlig guide, der viser ét trin ad gangen, og bekræfter hvert trin. SPOR kontrollerer selv, at jeres GitHub-organisation findes; resten er jeres bekræftelse. SPOR-drift opretter databasen via Vercel og installerer jeres SPOR efter en fast opstartsliste. Selve installationen er ikke automatiseret endnu. Når jeres SPOR kører, kontrollerer siden Opsætning selv SPOR's opsætning (EU-region, database og sikkerhed), AI-forbindelsen med et testkald og mailen; backup og databehandleraftaler bekræfter I selv. Til sidst kan I gemme et opsætningsbevis.
  • Pilot kun med opdigtede data. Indtil jeres egen SPOR kører, kan I afprøve SPOR i en pilot-arbejdsplads i leverandørens SPOR (spor.martinegesoe.dk), men kun med opdigtede data, indtil databehandleraftalerne og de øvrige åbne punkter er på plads.

Hosting og underleverandører

Hvor ligger data, og hvem behandler dem?

Neon (database) og Vercel (hosting) behandler kundedata for SPOR, begge i Frankfurt. Simply (Danmark) sender SPORs mails. AI kører kun på kundens egen konto.

LeverandørPlaceringHvadAftale
Neon, ejet af Databricks, Inc. (PostgreSQL-database)
Database. Al data i SPOR ligger her.
Underdatabehandler
AWS eu-central-1, Frankfurt (EU)Alle kundedata, brugerkonti, sessioner og logs. Krypteret under overførsel (TLS) og på disk (leverandørens kryptering).
Data ligger i EU. Leverandøren er amerikansk. Neons vilkår er flyttet under Databricks' hovedaftale; Neons produktbilag (5. august 2026) er indgået med Databricks, Inc., og hovedaftalen definerer databehandleraftalen som Databricks' gældende databehandleraftale (version 3 af 21. juli 2023, kopi arkiveret i docs/juridisk/aftaler). Den indarbejder EU's standardkontraktbestemmelser (2021, modul 2 og 3) for overførsler til lande uden for EU og EØS. Databricks, Inc. står som aktiv på handelsministeriets officielle liste over certificerede virksomheder under EU-US Data Privacy Framework med Neon, LLC som dækket enhed (kontrolleret 4. oktober 2026; næste certificering senest 10. august 2027)
Arkiveret
Vercel Inc. (hosting)
Kører SPORs web- og serverfunktioner.
Underdatabehandler
SPORs serverfunktioner kører i region fra1, Frankfurt (EU). Vercels driftslogs og kontodata kan behandles i USA.Behandler forespørgsler undervejs i Frankfurt. Gemmer ikke kundedata; driftslogs indeholder adresse på siden, tidspunkt og IP-adresse.
Vercel er certificeret under EU-US Data Privacy Framework (Kommissionens tilstrækkelighedsafgørelse 2023/1795). Vercels databehandlertillæg (vercel.com/legal/dpa) indgår automatisk i vilkårene, oplyser at den primære behandling sker i USA, og indeholder EU's standardkontraktbestemmelser fra 2021, som allerede gælder ved siden af Data Privacy Framework. Kopi arkiveret i docs/juridisk/aftaler.
Arkiveret
AWS Bedrock (Claude) på kundens egen AWS-konto
AI til TheOffice og Laura, kun hvis kunden selv forbinder sin AWS-konto.
Kun EU: regionerne eu-central-1, eu-west-1, eu-west-3, eu-north-1 og kun modeller, der bliver i EU (ikke "us."/"global."-profiler). Låst i koden, i databasen og kontrolleret før hvert kald.Kun det, kunden beder en AI-medarbejder om, og uddrag af kundens egne vejledninger. Desuden et testkald med en fast tekst uden kundedata, når kunden trykker "Test forbindelsen" under Opsætning. Hvert kald logges som dataoverførsel. Har kunden selv aktiveret Spire som AI-medarbejder, sendes desuden brugerens besked, navnet på den side og den åbnede post (fx en anvendelse eller et kursus) og det forrige emne (til forståelse af bestillingen), eller det resultat, brugeren selv ser, med e-mailadresser erstattet af betegnelser som "Medarbejder A" (til forklaring), eller anvendelsens nuværende felter og en beskrivelse, brugeren selv har skrevet (til feltforslag). Beskeder og modelsvar gemmes ikke i SPOR, og der sendes ingen lyd.
Kundens egen aftale med AWS. SPOR sender kun, når kundens geografiske politik tillader regionen.
Kundens egen aftale
Amazon Web Services (S3 med Object Lock) på SPORs egen AWS-konto
Ekstern kopi af hændelsesloggen i et lager med Object Lock (Governance), så en ændring i databasen bagefter kan opdages. Låsen kan omgås af en bruger med en særlig rettighed og består ikke, hvis kontoen slettes. Tages først i brug i produktion, når varslet i bilag B.2 er udløbet.
Underdatabehandler
AWS eu-central-1, Frankfurt (EU). Lager med Object Lock i Governance-mode (365 dage), versionering og kryptering (SSE-S3). Governance forhindrer sletning og overskrivning fra brugere uden rettigheden s3:BypassGovernanceRetention; en bruger med den kan slette eller forkorte låsen, og låsen består ikke, hvis AWS-kontoen lukkes og senere slettes. Filerne slettes, når låsen er udløbet. Ikke taget i brug: produktion sender intet, før ejeren har besluttet opbevaring og sletning (docs/S3_LOGKOPI_BESLUTNING.md).Hændelsernes egne felter: id'er, handling, udfald, tidspunkt og kædens fingeraftryk. Ingen navne, adgangskoder, prompts eller svar. Id'er kan henføres til personer og er derfor personoplysninger.
Data ligger i EU. AWS er et amerikansk selskab. Grundlag er AWS' standardaftale om databehandling (AWS GDPR Data Processing Addendum) med efterfølgende overførselsgrundlag efter kapitel V.
Skal arkiveres
GitHub Inc. (kildekode og test)
Kildekode, automatiske tests og udrulning. Guiden til kundens opsætning af konti slår navnet på kundens GitHub-organisation op i GitHubs offentlige API.
USAIngen kundedata. Kun kode og testdata uden personoplysninger. Opslaget sender kun organisationens navn (firmaets) fra SPORs server uden login, cookies eller personoplysninger; svaret bruges kun til at se, om organisationen findes.
Ikke relevant: ingen personoplysninger.
Ikke nødvendig
Google Ireland Limited (Google Analytics 4, kun offentlige sider og kun med samtykke)
Statistik over besøg på de offentlige sider (tilmelding, tillid, privatliv) og på martinegesoe.dk. Slået fra, indtil den besøgende siger ja.
Google Ireland Limited (EU); data kan overføres til USA.Besøgets sider, kilde, enhedstype og få hændelser (tilmelding startet, fejlet eller gemt, kontaktklik) uden navne, mails, telefon, CVR eller formularindhold. Adresser, sidetitler og henvisere renses i koden. Reklamesignaler og Google Signals er slået fra. Opbevaring 14 måneder.
Samtykke (GDPR art. 6, stk. 1, litra a, og cookiebekendtgørelsen). Overførsel til USA: Google LLC er certificeret under EU-US Data Privacy Framework (ikke verificeret mod den aktuelle liste den 5. oktober 2026).
Skal arkiveres
Microsoft Ireland Operations Limited (Microsoft Clarity, kun offentlige sider og kun med samtykke)
Optagelser og varmekort over brugen af de offentlige sider. Slået fra, indtil den besøgende siger ja til netop dette valg.
Microsoft (EU-selskab); data kan behandles i USA.Klik, rul og bevægelser på de offentlige sider med strengeste maskering af tekst og felter (Strict). Formularer og svar er maskeret; der sendes ingen identificerende kald eller kundeoplysninger.
Samtykke (GDPR art. 6, stk. 1, litra a, og cookiebekendtgørelsen). Microsofts vilkår for Clarity og overførselsgrundlag er ikke endeligt vurderet (ikke verificeret).
Skal arkiveres
Simply.com (mail og DNS)
Sender SPORs mails (invitationer, links til ny adgangskode, kundelinks, velkomstmails og opsætningslinks til nye kunder, besked til kunden om svar fra support, driftsalarmer og beskeder til SPOR-support om nye tilmeldinger, supportsager og kundens opsætning af konti) via SMTP fra noreply@martinegesoe.dk; svar og beskeder til SPOR-support går til spor@martinegesoe.dk. Har også domænet og DNS for martinegesoe.dk. Hjemmesiden martinegesoe.dk ligger hos Vercel og er ikke en del af SPOR.
Underdatabehandler
DanmarkKun modtagerens e-mail og navn, afsender, arbejdspladsens eller kundens firmanavn og et link eller en liste over opstartstrin. Beskeder til SPOR-support indeholder kun firmanavnet (tilmelding) eller arbejdspladsens navn, sagens emne og nummer (supportsag) og et link, aldrig sagens tekst eller øvrige oplysninger fra tilmeldingen. Besked til kunden om svar fra support indeholder kun arbejdspladsens navn, sagens emne og nummer og et link, aldrig svarets tekst, og sendes kun til den, der oprettede sagen, mens vedkommende er aktivt medlem. Opsætningslinket til en ny kundes kontaktperson indeholder kun firmanavn, kontaktpersonens navn, linket og udløbsdatoen. Beskeder til SPOR-support om kundens opsætning af konti indeholder kun kundens navn, hændelsen (alle trin bekræftet, eller kunden beder om hjælp ved et navngivet trin) og et link, aldrig kundens besked. Aldrig kundedata, adgangskoder, nøgler, svar, noter eller vedhæftninger. Sendes kun, når SMTP er sat op.
Behandling i Danmark: datacentre i Danmark (Simplys bilag 1, sikringsmiljø v. 1.2). Databehandleraftalen (v. 1.8, pkt. 3.1) tillader kun behandling i EØS, og Simplys audit-svar (1. januar 2024) oplyser ingen overførsel til tredjelande. Underdatabehandlere efter simply.com/compliance: Ping IT (Danmark), B4Restore (Danmark), Webnode (Tjekkiet). Simply krypterer ikke data i hvile; SPOR sender kun over krypteret forbindelse (TLS). Databehandleraftalen er underskrevet elektronisk i Simplys kontrolpanel 30. september 2026; aftale, bilag og audit-svar er arkiveret i docs/juridisk/aftaler.
Arkiveret
Stripe Payments Europe, Ltd. (betaling, kun når betaling er åbnet)
Tager imod kundens betaling af abonnementet (Stripe Checkout) og sender signerede beskeder om abonnementets status. Betaling åbnes kun, når Stripe er sat op; i testmiljøet kun med Stripes testtilstand (ingen rigtige betalinger).
Stripe Payments Europe, Ltd., Irland (EU); Stripe kan overføre data til USA efter sine egne vilkår.Kortoplysninger indtastes hos Stripe og når aldrig SPORs servere eller database. SPOR modtager og gemmer Stripes kunde- og abonnements-id, abonnementets status og periode og bekræftelsen af, at en bestemt version af handelsbetingelserne blev accepteret. Ingen kundeindhold sendes til Stripe.
Stripe behandler betalingsoplysninger som selvstændig dataansvarlig for betalingsbehandlingen efter Stripes egne vilkår (Stripe Services Agreement og databeskyttelsesvilkår); rollen og overførselsgrundlaget er ikke juridisk gennemgået.
Skal arkiveres

Data

Hvilke oplysninger behandler SPOR?

SPOR registrerer, hvilke typer oplysninger en virksomhed arbejder med, ikke selve oplysningerne.

OplysningerIndholdFormål og opbevaring
Brugerkonti og login
Almindelige personoplysninger
E-mail, adgangskode (kun som scrypt-hash), authenticator-hemmelighed (krypteret AES-256-GCM), gendannelseskoder (hash), sessioner og engangslinks (hash). IP-adresse kun som HMAC til begrænsning af loginforsøg og anmodninger om ny adgangskode.Sikkert login med adgangskode og obligatorisk tofaktor.
Sessioner udløber efter 12 timer uden aktivitet og altid efter 7 dage. Udløbne sessioner, brugte eller udløbne engangslinks og gamle driftstjek er bygget til at blive ryddet af det daglige tjek. Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér. Kontoen findes, så længe brugeren har adgang.
Det, I registrerer i SPOR
Almindelige personoplysninger
Systemer, leverandører, AI-anvendelser, datakategorier (som betegnelser, fx “helbredsoplysninger”, aldrig selve oplysningerne), beslutninger, dokumentation, opgaver (en relevant ændring af et system, en leverandør eller en anvendelse opretter automatisk én genvurderings-opgave, hvor kun feltnavne og evt. begrundelsen står, aldrig feltværdier, og sætter åbne risici til genvurdering), træning, vejledninger, politikker, kundens egne vurderinger af krav (status, begrundelse og link til dokumentation), kundens risikoregister (titel, beskrivelse, vurdering af sandsynlighed og konsekvens, behandling, ansvarlig og dokumenteret accept med begrundelse og udløbsdato), kundens evidens (titel, beskrivelse, link til dokumentet, version, kilde, ansvarlig, gyldighed, niveau og kobling til kontroller, krav, risici m.m.; en version er et link eller en uploadet fil på højst 4 MB, som gemmes krypteret (AES-256-GCM) i databasen og kun kan hentes af medlemmer af arbejdspladsen som download), kundens grænser for AI-forbrug (beløb pr. måned og pr. dag), kundens godkendelser (genstand, titel, spørgsmål, afgørelse og begrundelse; hvem der bad om og traf afgørelsen som medlems-id og tidspunkt; en afgjort godkendelse kan ikke ændres, og ingen personoplysninger gemmes ud over medlems-id), dataformer pr. system (for hver af seks former, som prompts, svar, logs, embeddings, træningsdata og uploadede filer: om den behandles, om den gemmes, hvor mange dage og om den bruges til modeltræning, som valg og tal uden personoplysninger, med en kort note og tidspunkt for bekræftelse), kundens kontroller (ansvarlig, dato og udfald for seneste test, link til dokumentation og en kort note), de brugsområder (faste kategorier, aldrig fritekst) som kunden har bekræftet for et værktøj i AI Audit, med hvem og hvornår, faglige vurderinger af alvorlige fund i AI Audit (hvilket forhold, hvem der vurderede, hvad den bygger på og hvad brugen begrænses til; kan ikke ændres eller slettes), opbevaringsperioder, kundeforløb og supportsager (også anmodninger om hjælp fra SPOR-support til timepris). For politikker gemmes, hvilken medarbejder der har accepteret hvilken version og hvornår; accepten ses kun af personen selv og af ejer og administrator. Kan indeholde navne og arbejdsmails på ansvarlige og kontaktpersoner. Ved en ny supportsag eller et nyt svar får SPOR-support en mail med kun arbejdspladsens navn, sagens emne og et link, aldrig sagens tekst. Når support svarer, får den, der oprettede sagen, tilsvarende en mail med kun navn, emne, sagsnummer og link. Notifikationer: for hvert medlem en kopi af de punkter, der kræver opmærksomhed (titel, begrundelse, næste skridt, link, alvorlighed), kun synlig for personen selv; databasen håndhæver det. Slettes automatisk 90 dage efter oprettelsen. En daglig opsummering på mail (kun arbejdspladsens navn, antal pr. alvorlighed og et link, aldrig titler eller tekst; højst én i døgnet, kan fravælges eller ændres til én om ugen) sendes via Simply til medlemmet selv. Medlemmet vælger selv hyppighed og om vedkommende vil have mail, når support svarer (to valg pr. person, ingen nye personoplysninger); mails om adgang og sikkerhed kan ikke fravælges.Kundens eget overblik over AI, data og ansvar.
Så længe kunden bruger SPOR. Slettes efter aftalt eksportperiode ved ophør (se exit-procedure). Hver tabel har en dokumenteret opbevaringsregel (src/platform/retention.ts, håndhævet af en test).
Hændelser og brud
Almindelige personoplysninger
Beskrivelse af hændelsen, hvilke typer oplysninger der er berørt, vurdering og opfølgning. Hændelser med personoplysninger kan kun ses af indberetter, ansvarlig og ejer/administrator.Dokumentation af hændelser og brud (fx 72-timers fristen).
Som kundens øvrige data. Der er endnu ingen automatisk sletning af historik, og kunden kan ikke selv sætte en historikperiode (databasen har feltet og en oprydningsfunktion, men ingen del af appen bruger dem endnu).
Opsætningen af jeres SPOR
Almindelige personoplysninger
Resultatet af SPORs egne kontroller på siden Opsætning (OK eller skal rettes, en kort forklaring, SPOR-version, tidspunkt og hvem der kontrollerede), resultatet af testkaldet til jeres AI-konto (forbindelse, model, region, tidspunkt og en fejlkode; aldrig nøgle, tekst eller svar) og jeres egne bekræftelser (Neons backupvindue i dage, databehandleraftaler med Vercel, Neon og AWS, om mail er nødvendig) med hvem og hvornår. Kun ejer og administrator kan se dem; databasen håndhæver det.At vise, hvad der mangler i opsætningen, og dokumentere den i opsætningsbeviset.
Som kundens øvrige data. Den nyeste kontrol pr. trin erstatter den forrige; en bekræftelse, der trækkes tilbage, slettes, men hændelsesloggen viser, hvem der gjorde hvad hvornår.
Databehandleraftalen med SPOR
Almindelige personoplysninger
Når jeres ejer eller administrator underskriver databehandleraftalen i SPOR: aftalens version, den viste tekst og dens fingeraftryk (SHA-256), virksomhedens navn og (valgfrit) CVR-nummer, underskriverens navn, stilling, mailadresse og rolle i SPOR, at underskriveren har bekræftet bemyndigelse, underskriftsmetoden (simpel elektronisk underskrift i en logget ind session) og tidspunktet. Det samme gemmes, når ejer eller administrator underskriver handels- og abonnementsbetingelserne (udkast, ikke gennemgået af advokat). Kun ejer og administrator med eget medlemskab kan underskrive, og kun i eget navn; rådgiver- og supportadgang kan ikke. Underskriften kan ikke ændres eller slettes af appen, og alle medlemmer af arbejdspladsen kan se den. Hændelsesloggen viser, hvem der underskrev hvornår, uden navne eller tekst.At indgå og dokumentere databehandleraftalen mellem jer (dataansvarlig) og MLE Gruppo ApS (databehandler) elektronisk (GDPR art. 28, stk. 3 og 9).
Som kundens øvrige data. En ny version af aftalen kræver ny underskrift; tidligere underskrifter bevares som dokumentation.
Hændelseslog
Almindelige personoplysninger
Hvem gjorde hvad hvornår, og hvilke data der blev sendt til hvilken udbyder og region.Sporbarhed og dokumentation over for kunden og tilsyn. Hver hændelse kan kun skrives i den handlendes eget navn, kan ikke ændres, og hændelserne er kædet sammen med fingeraftryk (SHA-256), så en ændring eller fjernelse bagefter kan opdages. Kæden er bygget til at blive kontrolleret hvert døgn og give alarm, hvis den er brudt. Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér. Kæden er en kontrol, ikke en ekstern kopi.
Som kundens øvrige data. Der er endnu ingen automatisk sletning af historik, og kunden kan ikke selv sætte en historikperiode (databasen har feltet og en oprydningsfunktion, men ingen del af appen bruger dem endnu).
Oplysninger om SPORs kunder (kun MLE Gruppo ApS har adgang)
Almindelige personoplysninger
Firmanavn, CVR-nummer, kontaktperson og arbejdsmail, abonnement, fakturaer (beløb, datoer, status), tjekliste over kundens konti, opstartsliste, opgaver, sundhedstjek af kundens installation og en liste over systemer udviklet til kunden (hvor de ligger, AI-værktøjer og hvilke typer oplysninger de behandler, aldrig selve oplysningerne). Leveringsform (pilot i denne SPOR eller egen installation). Guiden til nye kunder og listen over udsendte links læser kun, om invitationer og kundelinks findes, og deres status, i kundens pilot-arbejdsplads; tokens gemmes kun som hash. Når den første faktura er betalt, sendes velkomstmailen med næste skridt automatisk til kontaktpersonen. Kundens opsætning af konti står i afsnittet nedenfor. Kundens egne data ligger på kundens egne konti, ikke her.Kundeforhold, fakturering og drift. Kun leverandøren af SPOR (MLE Gruppo ApS) har adgang; databasen håndhæver det.
Så længe kundeforholdet består, og derefter efter bogføringslovens krav til regnskabsmateriale.
Opsætning af kundens konti (kun MLE Gruppo ApS har adgang)
Almindelige personoplysninger
Det, kunden selv angiver på sin personlige side "Sæt jeres SPOR op" (spor.martinegesoe.dk/start/…): hvilke trin der er bekræftet og hvornår, navn og (valgfri) arbejdsmail på den, der bekræftede, navnet på kundens GitHub-organisation og om SPOR fandt den hos GitHub, og beskeder fra "Bed SPOR-support om hjælp" (trin, kort tekst på højst 1.000 tegn og valgfrit navn; højst 5 pr. link pr. døgn). Linket gemmes kun som hash med udløb (30 dage), første og seneste åbning. SPOR-support får en mail med kun kundens navn, hændelsen og et link, aldrig beskedens tekst. Kontiene selv (GitHub, Vercel, AWS) oprettes af kunden direkte hos leverandørerne; SPOR gemmer ingen adgangskoder, nøgler eller betalingsoplysninger. Alt andet end GitHub-organisationens eksistens er kundens egen bekræftelse og vises sådan.At sætte kundens egen SPOR op efter aftalen (GDPR art. 6, stk. 1, litra b) og dokumentere, hvem der bekræftede hvad. Kun leverandøren af SPOR (MLE Gruppo ApS) har adgang; databasen håndhæver det, og den offentlige side kan kun bruge linkets egne funktioner.
Hjælpebeskeder slettes automatisk 12 måneder efter modtagelsen. Navn og mail på den, der bekræftede et trin, er bygget til at blive fjernet 12 måneder efter bekræftelsen af det daglige tjek (Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér.); trin, tidspunkt, organisationens navn og tjekkets udfald bliver ved kundeoplysningerne som dokumentation af opsætningen. Linket virker højst 30 dage og kan lukkes når som helst.
Tilmeldinger via formularen (kun MLE Gruppo ApS har adgang)
Almindelige personoplysninger
Det, virksomheden selv skriver på spor.martinegesoe.dk/tilmeld: firmanavn, CVR-nummer, kontaktperson, arbejdsmail, telefon (valgfrit), antal medarbejdere og en valgfri tekst om, hvad I vil bruge SPOR til. IP-adresse og e-mail tælles kun som HMAC for at begrænse misbrug (højst 5 tilmeldinger pr. IP og 2 pr. e-mail i timen og højst 30 tilmeldinger i timen i alt; IPv6 tælles pr. /64); rå IP-adresse gemmes ikke. SPOR-support får en mail med kun firmanavnet og et link til admin. Der sendes ingen mail til den tilmeldte adresse, og der oprettes ingen konto.At kontakte virksomheden og eventuelt indgå en aftale (GDPR art. 6, stk. 1, litra b: skridt før en aftale på virksomhedens anmodning, og litra f: legitim interesse i at svare virksomheder, der henvender sig). Kun leverandøren af SPOR (MLE Gruppo ApS) har adgang; databasen håndhæver det.
Er bygget til at blive slettet 12 måneder efter modtagelsen af det daglige tjek. Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér. En afvist tilmelding slettes med det samme. Bliver virksomheden kunde, overføres firmanavn, CVR-nummer, kontaktperson og arbejdsmail til kundeoplysningerne ovenfor.
Selvbetjent oprettelse af en arbejdsplads (kun MLE Gruppo ApS ser det, og kun som tal)
Almindelige personoplysninger
Det, du selv skriver på spor.martinegesoe.dk/opret: virksomhedens navn, land og CVR-nummer (eller tilsvarende nummer i udlandet), dit navn og din arbejdsmail, hvornår du bekræftede at have læst privatlivspolitikken, og valgfrit et gemt AI-tjek-link (gemmes krypteret). Du får ét bekræftelseslink pr. mail (gemmes kun som SHA-256-fingeraftryk, virker i 48 timer); først når du trykker på knappen, oprettes en konto uden adgangskode og en ny arbejdsplads, hvor du er ejer, og virksomhedens navn, nummer, dit navn og din mail lægges i arbejdspladsens profil (du er dataansvarlig for dem). Rækken gemmer også tidspunkter for oprettelse og for milepæle (betaling startet, første AI-anvendelse, første afsluttede opgave fra AI-tjekket), som kun vises samlet som tal til SPOR-drift. IP-adresse og e-mail tælles kun som HMAC for at begrænse misbrug (højst 5 pr. IP og 3 pr. mail i timen, 40 i timen og 200 i døgnet i alt, højst 50 oprettelser i døgnet; IPv6 tælles pr. /64); rå IP-adresse gemmes ikke. Der sendes en bekræftelsesmail til den adresse, du skriver, og en mail med opsætningslinket efter oprettelsen, via SPORs mail hos Simply.com (Danmark).At oprette en arbejdsplads til jer efter jeres anmodning og dokumentere forløbet (GDPR art. 6, stk. 1, litra b: skridt før en aftale på jeres anmodning, og litra f: legitim interesse i at begrænse misbrug). Kun leverandøren af SPOR (MLE Gruppo ApS) har adgang; databasen håndhæver det, og den offentlige side kan kun bruge de snævre funktioner til tilmelding, bekræftelse og oprettelse.
Ubekræftede tilmeldinger slettes automatisk 1 døgn efter, at linket er udløbet. Oprettede rækker slettes automatisk 30 dage efter oprettelsen; arbejdspladsen og kontoen berøres ikke af det (dagligt tjek; Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér.). Et gemt AI-tjek-link slettes, når det er taget i brug, eller sammen med rækken.
Venteliste fra hjemmesiden (kun MLE Gruppo ApS har adgang)
Almindelige personoplysninger
Det, du selv skriver i formularen "Få besked, når SPOR er klar" på martinegesoe.dk: arbejdsmail (påkrævet) og valgfrit navn, firma, rolle og et kort svar om jeres udfordring; desuden tidspunktet for dit samtykke til én besked, når SPOR er klar, om du også vil have nyt om udviklingen (valgfrit), hvilken version af samtykketeksten du sagde ja til, hvilken side du kom fra (fx "forside"), hvornår du bekræftede din mail, om og hvornår du har afmeldt dig, og om beskeden er sendt. Hjemmesiden sender formularen direkte til SPOR; den gemmer den ikke selv. IP-adresse og e-mail tælles kun som HMAC for at begrænse misbrug (højst 10 tilmeldinger pr. IP og 3 pr. e-mail i timen; plus- og punktumvarianter af samme postkasse tælles sammen, 3 i timen og 6 i døgnet; højst 30 i timen pr. domæne og i alt 60 bekræftelsesmails i timen og 300 i døgnet; IPv6 tælles pr. /64); rå IP-adresse gemmes ikke. Der oprettes ingen konto. Dobbelt bekræftelse: du får én kort mail med et personligt link (gemmes kun som SHA-256-fingeraftryk, virker i 7 dage), og først når du trykker "Bekræft" på SPORs side, kommer du på listen; tilmelder samme mail sig igen, sendes en ny bekræftelsesmail højst én gang i timen. Den ene besked, når SPOR er klar, sendes kun til bekræftede, sendes via SPORs mail hos Simply.com (Danmark) og indeholder kun modtagerens e-mail, den tekst, MLE Gruppo ApS selv har skrevet, afsender og et personligt afmeldelink (spor.martinegesoe.dk/afmeld/…).At sende én besked, når SPOR er klar, til dem, der har bedt om det (GDPR art. 6, stk. 1, litra a: samtykke, som kan trækkes tilbage med afmeldelinket eller ved at skrive til os). Samtykket til nyt om udviklingen gemmes, men bruges ikke endnu. Kun leverandøren af SPOR (MLE Gruppo ApS) har adgang; databasen håndhæver det.
Slettes automatisk 12 måneder efter tilmeldingen. Bekræfter du ikke din mail, slettes tilmeldingen automatisk 14 dage efter. Afmelder du dig, får du ingen flere mails, og oplysningerne slettes automatisk 30 dage efter afmeldingen (dagligt tjek).
Gemt AI-tjek fra hjemmesiden (kun hvis du selv vælger det)
Ingen personoplysninger
AI-tjekket på martinegesoe.dk kører i din browser, og intet gemmes, medmindre du selv sætter kryds og trykker "Gem resultatet i SPOR". Så sendes kun dine svar fra tjekket som faste koder (fx "ja", "nej", "10-49"): ingen fritekst, intet navn, ingen e-mail og ingen virksomhed. Du får et tilfældigt personligt link, som kun vises for dig (tokenet står i adressens fragment og sendes aldrig til en server); SPOR gemmer kun et SHA-256-fingeraftryk af det, så en læsning af databasen ikke giver adgang til dit resultat. Rækken gemmer også tidspunktet, hvornår den udløber, og hvilken version af samtykketeksten du sagde ja til. IP-adressen tælles kun som HMAC for at begrænse misbrug (højst 10 gemninger pr. IP i timen og 300 i alt i timen; IPv6 tælles pr. /64); rå IP-adresse gemmes ikke. Der oprettes ingen konto, og rækken hører ikke til nogen virksomhed. Vælger du senere at indsætte linket i din egen SPOR-arbejdsplads (ejer eller administrator), kopieres svarkoderne til arbejdspladsens profil (kunden er dataansvarlig for dem; de er kundens egne, ikke kontrollerede oplysninger), og den anonyme række slettes straks. Intet markeres som godkendt eller dokumenteret.At lade dig tage dit resultat med videre, hvis du senere vælger at bruge SPOR (GDPR art. 6, stk. 1, litra a: dit samtykke, som du kan trække tilbage ved at slette resultatet). Kun den, der kender det personlige link, kan læse eller slette resultatet. Leverandøren af SPOR (MLE Gruppo ApS) kan se de anonyme svarkoder i databasen, men ikke hvem de tilhører.
Slettes automatisk 30 dage efter, at du gemte det (dagligt tjek; Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér.). Et udløbet resultat kan ikke læses. Du kan slette det med det personlige link når som helst.
Offentligt indhold fra leverandører
Ingen personoplysninger
Tekst fra leverandørers offentlige websider, hentet i AI Audit.Vurdering af leverandørens AI-værktøj.
Som kundens øvrige data.

Det behandler SPOR ikke

CPR-numreTeknisk spærret

Databeskyttelsesloven § 11

Databasen afviser alt, der har form som et CPR-nummer, i alle kundetabeller, uanset hvor det kommer fra (formular, import, kundelink, support, AI-svar). Indhentede websider renses, før de gemmes. AI-svar med CPR-lignende tal gemmes ikke.

Følsomme personoplysningerBrugsregel

GDPR art. 9 (helbred, etnisk oprindelse, politisk, religiøs eller filosofisk overbevisning, fagforening, genetiske og biometriske data, seksuelle forhold)

Må ikke lægges i SPOR. SPOR registrerer kun, AT en kunde behandler en type oplysninger, ikke selve oplysningerne. Reglen står ved de felter, hvor der skrives fritekst.

Oplysninger om strafbare forholdBrugsregel

GDPR art. 10 og databeskyttelsesloven § 8

Må ikke lægges i SPOR. Reglen står ved de felter, hvor der skrives fritekst.

Kundens forretningsdata og kundernes kunders dataBrugsregel

GDPR art. 5, stk. 1, litra c (dataminimering)

SPOR har ingen forbindelser til kundens fagsystemer. Eneste undtagelse er kundens egen AI-konto og de vejledninger, kunden selv lægger ind.

Undtagelse: Jeres egen AI-konto og de vejledninger, I selv lægger ind i SPOR.

BetalingskortdataTeknisk spærret

PCI DSS

SPOR modtager ikke betalinger og gemmer ingen kortdata.

Regelgrundlag

Sådan lever SPOR op til reglerne

Hvert krav har en status og et bevis. 22 er opfyldt, 2 delvist og 0 åbne. Åbne punkter står åbent, indtil de er løst.

Databeskyttelsesforordningen (GDPR, EU 2016/679)11 krav

Myndighed: Datatilsynet. Gælder al behandling af personoplysninger i SPOR.

KravSådan gør SPORBevisStatus
Dataminimering og databeskyttelse gennem design
Art. 5 og 25
SPOR registrerer typer af oplysninger, ikke selve oplysningerne. CPR-numre afvises i databasen. Nye brugere får mindst mulige rettigheder, og roller styrer adgang. Tilmeldinger via formularen, ventelisten og hjælpebeskeder fra kundens opsætning af konti slettes automatisk efter 12 måneder (afmeldte på ventelisten efter 30 dage, ubekræftede efter 14 dage), navn og mail på den, der bekræftede et opsætningstrin, fjernes efter 12 måneder, og beskeder til SPOR-support indeholder kun firmanavn eller sagens emne og et link.
  • Kode: db/migrations/0021_sensitive_data_guard.sql
  • Automatisk test: test/sensitive-data.test.ts
  • Live-kontrol: cpr_guard
  • Automatisk test: test/permissions.test.ts
  • Automatisk test: test/signup.test.ts
  • Automatisk test: test/waitlist.test.ts
  • Automatisk test: test/account-setup.test.ts
Opfyldt
Databehandleraftale med kunderne
Art. 28
SPOR er databehandler for kundens data. Databehandleraftalen er Datatilsynets standardkontraktsbestemmelser (skabelon version 1.2, hentet 4. oktober 2026) uændret, med parter og bilag A-D udfyldt med SPORs forhold; den ligger i SPOR under Konto → Databehandleraftale, hvor kundens ejer eller administrator læser den og underskriver elektronisk (GDPR art. 28, stk. 9). Underdatabehandlerne i bilag B hentes fra denne dokumentation. SPOR gemmer underskriverens navn, stilling og rolle, tidspunktet, aftalens version (2.0) og et fingeraftryk (SHA-256) af den viste tekst; en ny version kræver ny underskrift, og rådgiver- og supportadgang kan ikke underskrive for kunden. Status vises på kundens ledelsesrapport og for leverandøren i admin. Ledelsen har bekræftet tallet for underretning om brud (48 timer, punkt 10.2), kontaktpersonerne og underdatabehandlernes aftaleparter (bilag B, læst hos leverandørerne 4. oktober 2026). Aftalen er ikke gennemgået af en jurist; ledelsen står selv på mål for den.
  • Kode: src/dpa/agreement.ts
  • Kode: src/dpa/service.ts
  • Kode: db/migrations/0032_dpa_signature.sql
  • Kode: src/dpa/clauses.ts
  • Dokument: docs/juridisk/datatilsynet-standardbestemmelser-v1.2.txt
  • Automatisk test: test/dpa.test.ts
Opfyldt
Underdatabehandlere
Art. 28, stk. 2 og 4
Neon (database) og Vercel (hosting) behandler kundedata for SPOR, begge i Frankfurt. Simply (Danmark) sender mails med modtagerens e-mail og et link og beskeder til SPOR-support med kun firmanavn eller sagens emne. Listen står i denne rapport. Databehandleraftalerne med Neon, Vercel og Simply er arkiveret; Simplys er underskrevet 30. september 2026. AI kører på kundens egen konto.
  • Dokument: Afsnittet Hosting og underleverandører
  • Dokument: docs/juridisk/aftaler
  • Live-kontrol: vercel_region
  • Live-kontrol: database_region
Opfyldt
Fortegnelse som databehandler
Art. 30, stk. 2
Fortegnelsen ligger i admin (/admin/fortegnelse) og kan gemmes som PDF. Den rummer SPORs kontaktoplysninger, alle kunder (dataansvarlige) fra kunderegistret, kategorier af behandling, overførsler og sikkerhedsforanstaltninger. Indholdet hentes fra kunderegistret og fra denne dokumentation, så det altid er opdateret.
  • Kode: app/admin/fortegnelse/page.tsx
  • Kode: src/admin/record.ts
  • Kode: src/platform/facts.ts
  • Automatisk test: test/platform.test.ts
Opfyldt
Behandlingssikkerhed
Art. 32
Kundeadskillelse i databasen (Row-Level Security, tvunget), login med adgangskode og obligatorisk tofaktor, kryptering under overførsel (TLS) og af hemmeligheder (AES-256-GCM), app-rollen kan ikke omgå adskillelsen, Content Security Policy, fuld hændelseslog. Adgangskoder skal være på mindst 12 tegn og afvises, hvis de er almindelige eller let at gætte (lokal kontrol uden eksterne opslag). Et nyt opsætningslink ved mistet telefon sendes kun til personens egen e-mail og vises aldrig for administratoren. Det samme gælder opsætningslink til en inviteret ny eller ufærdig konto; operatøren ser kun linket til en helt ny konto, hvis mailen ikke kan sendes. En intern sikkerhedsgennemgang (2026-10-02, docs/SPOR_SECURITY_AUDIT.md og docs/SPOR_AI_SECURITY.md) beskriver fund, rettelser og åbne punkter.
  • Dokument: docs/SPOR_SECURITY_AUDIT.md
  • Dokument: docs/SPOR_AI_SECURITY.md
  • Automatisk test: test/tenant-isolation.test.ts
  • Automatisk test: test/members.test.ts
  • Automatisk test: test/auth-service.test.ts
  • Automatisk test: test/auth-crypto.test.ts
  • Automatisk test: test/agents-prompt-safety.test.ts
  • Live-kontrol: rls
  • Live-kontrol: db_roles
  • Live-kontrol: db_tls
  • Live-kontrol: data_key
Opfyldt
Gendannelse efter hændelser
Art. 32, stk. 1, litra c
Neon tager løbende backup (point-in-time restore). Fremgangsmåden står i driftshåndbogen og har et trin, der gentager sletninger efter en gendannelse (trinnet er afprøvet lokalt i en gendannelsesøvelse på syntetiske data med en skabelonkopi, men ikke mod en Neon-gren; sletning af en hel arbejdsplads findes som operatørfunktion, der er slået fra i drift); en kontrol af den gendannede database er bygget. Neon har gendannelsesvindue på 7 dage, automatiske daglige snapshots med 14 dages opbevaring og ét manuelt snapshot uden slettedato (kontrolleret via Neon 6. oktober 2026; historikvinduet var 7 dage også 4. oktober). Første gendannelsesøvelse 4. oktober 2026: en kopi fra 90 minutter før havde de samme 52 migrationer, RLS og FORCE RLS på alle kundetabeller, roller uden særrettigheder og samme antal tabeller og rækker som produktionen (kun metadata og antal blev læst).
Mangler: En fuld gendannelsesøvelse mangler: kontrollen af login, dekryptering af hemmeligheder og filer og hændelseskæden er bygget og testet mod en engangsdatabase (npm run restore:verify), men ikke kørt på en rigtig gendannet Neon-gren, og det trin, der gentager sletninger, er ikke afprøvet. Øvelsen 4. oktober læste kun metadata og antal. Datanøglen ligger ikke i Neons kopi og skal findes separat. Det manuelle snapshot uden slettedato skal afklares.
  • Dokument: docs/DRIFT.md, afsnit 3
  • Automatisk test: test/restore.test.ts
Delvist
Håndtering af brud
Art. 33 og 34
Procedure for brud i SPOR selv (underretning af kunder uden unødig forsinkelse; anmeldelse inden 72 timer for SPORs egne konti). Kundernes egne brud registreres i SPORs hændelsesmodul med 72-timers frist.
  • Dokument: docs/DRIFT.md, afsnit 4
  • Automatisk test: test/incidents.test.ts
Opfyldt
Overførsel til tredjelande
Art. 44-46
Kundedata opbevares og behandles i EU (database og servere i Frankfurt, mail i Danmark). Vercels tekniske driftslogs (IP-adresse, sideadresse, tidspunkt) kan behandles i USA. Vercel oplyser i sin privatlivspolitik, at Vercel er certificeret under EU-US Data Privacy Framework, og Vercels databehandleraftale bruger EU's standardkontraktbestemmelser (2021) som overførselsmekanisme. Den officielle liste på dataprivacyframework.gov viser (kontrolleret 4. oktober 2026) Databricks, Inc. som aktiv med Neon, LLC som dækket enhed (næste certificering senest 10. august 2027), Vercel Inc. som aktiv (senest 29. april 2027) og GitHub som aktiv (senest 3. august 2027). Neons aftale er nu Databricks' databehandleraftale, som indarbejder EU's standardkontraktbestemmelser (2021, modul 2 og 3). AI kan kun kaldes i EU-regioner med modeller, der bliver i EU; det er låst i koden, i databasen og kontrolleres før hvert kald. Vejledningens IAM-politik for AWS-nøglen (også som færdig CloudFormation-skabelon, som kunden selv starter i sin AWS-konto) tillader kun kald i den valgte region og kun den anbefalede model (ikke jokertegn på modeller). AI er et tilvalg; SPOR kan sættes op og bruges uden AWS. AI-kald går kun til eu-west-1 (Irland) og eu-north-1 (Stockholm), hvor AWS' model-side viser, at Claude Sonnet 5 kan kaldes i selve regionen på Bedrock Mantle (eu-central-1 og eu-west-3 er fravalgt). Model-profiler (også EU-profilen eu., som dækker Schweiz og Storbritannien) afvises; at en bestemt region faktisk behandler kaldet i samme region er ikke verificeret mod en rigtig AWS-konto. Hver dataoverførsel logges. Neon og Vercel er amerikanske selskaber, og deres aftaler tillader behandling i USA; det er en overførsel. En intern overførselsvurdering (2026-10-01) beskriver, hvad der overføres, grundlaget (EU-US Data Privacy Framework, Kommissionens afgørelse 2023/1795, med EU's standardkontraktbestemmelser i aftalerne), de supplerende foranstaltninger, risikoen og planen, hvis Data Privacy Framework underkendes. GitHub modtager ingen personoplysninger om kunder eller brugere. Vurderingen genbesøges årligt og ved ny leverandør.
  • Dokument: docs/juridisk/overfoerselsvurdering.md
  • Dokument: docs/juridisk/aftaler
  • Live-kontrol: vercel_region
  • Live-kontrol: database_region
  • Live-kontrol: bedrock_regions
  • Live-kontrol: ai_eu_only
  • Automatisk test: test/ai-eu.test.ts
  • Automatisk test: test/event-log.test.ts
  • Automatisk test: test/installation-setup.test.ts
Opfyldt
Ingen følsomme oplysninger eller strafbare forhold
Art. 9 og 10
Må ikke lægges i SPOR. Reglen står ved fritekstfelterne. SPOR registrerer kun typer af oplysninger.
  • Kode: src/platform/facts.ts (USAGE_RULE)
Opfyldt
Indsigt, eksport og sletning
Art. 15-20 og 28, stk. 3, litra g
Kunden kan eksportere alle sine data (JSON og CSV) uden hemmeligheder. Ved ophør bliver arbejdspladsen skrivebeskyttet, og forbindelser, agenter og links lukkes. Selve sletningen af arbejdspladsens data efter eksportperioden findes som en operatørfunktion (kontroltælling, sleteregister uden for databasen), som er afprøvet lokalt på syntetiske data og slået fra i drift; kundens egen anmodning, bekræftelse og varsler er ikke bygget, og sletning af en enkelt person eller brugerkonto findes ikke. Eksportens omfang følger test/data-coverage.test.ts.
Mangler: Kundens egen anmodning om sletning (med bekræftelse og varsler), sletning af enkelte personer og brugerkonti og kundens egen historikperiode er ikke bygget; operatørfunktionen er ikke slået til i drift; eksportens dækning se test/data-coverage.test.ts.
  • Automatisk test: test/reports.test.ts
  • Automatisk test: test/exit.test.ts
  • Dokument: docs/DRIFT.md, afsnit 7
Delvist
Oplysning til brugerne
Art. 13
Privatlivspolitikken for SPOR er udgivet på spor.martinegesoe.dk/privatliv og linket fra login, sidehovedet, menuen og tilmeldingsformularen. Den skelner mellem kundens data (kunden er dataansvarlig) og SPORs egne brugerkonti, logs, tilmeldinger og kundeadministration. Hjemmesiden martinegesoe.dk har sin egen politik for henvendelser og kunder. Begge politikker er gennemgået internt den 2026-10-01 punkt for punkt mod art. 13 og 14 og mod denne dokumentation, og manglerne fra gennemgangen er rettet. Gennemgangen gentages ved ændringer af data, leverandører, cookies eller formularer og mindst årligt.
  • Dokument: docs/juridisk/vurdering-art13-oplysning.md
  • Kode: app/privatliv/page.tsx
  • Kode: app/login/page.tsx
  • Kode: docs/juridisk/privatlivspolitik.md
  • Kode: website/privatliv/index.html
Opfyldt
Databeskyttelsesloven (DK)1 krav

Myndighed: Datatilsynet. Danske særregler, bl.a. om CPR-numre.

KravSådan gør SPORBevisStatus
Ingen CPR-numre
§ 11
Databasen afviser CPR-numre i alle kundetabeller, uanset kilde. En test fejler, hvis en ny tabel mangler spærren, og driftstjekket viser det live.
  • Kode: db/migrations/0021_sensitive_data_guard.sql
  • Automatisk test: test/sensitive-data.test.ts
  • Live-kontrol: cpr_guard
Opfyldt
AI-forordningen (EU 2024/1689)3 krav

Myndighed: Digitaliseringsstyrelsen (dansk koordinerende myndighed). SPOR bruger AI som værktøj for kunden og hjælper kunderne med deres egne pligter.

KravSådan gør SPORBevisStatus
Tydeligt, når man arbejder med AI
Art. 50
AI-medarbejdere i TheOffice er tydeligt markeret som software. AI-forslag skal godkendes af et menneske, før de bliver til handlinger.
  • Automatisk test: test/projects-actions.test.ts
  • Automatisk test: test/agents-tasks.test.ts
Opfyldt
SPORs egen brug af AI er ikke højrisiko
Art. 6 og bilag III
AI i SPOR udarbejder udkast og svar ud fra kundens egne kilder. Den træffer ikke afgørelser om personer og indgår ikke i bilag III-områder.
  • Kode: src/agents/catalog.ts
Opfyldt
AI-kundskaber
Art. 4
Artikel 4 (som ændret ved forordning (EU) 2026/1744) lægger op til foranstaltninger, der understøtter udviklingen af AI-kundskaber. SPOR har redigerbare startmoduler (AI-kundskaber, GDPR i hverdagen, Data i AI-værktøjer, Hvad gør jeg ved et brud?), vejledninger og politikker med versioneret accept, så kunderne kan dokumentere deres foranstaltninger.
  • Automatisk test: test/training.test.ts
  • Automatisk test: test/policies.test.ts
Opfyldt
Informationssikkerhed efter ISO/IEC 27001-principperne7 krav

Myndighed: Digitaliseringsstyrelsen kræver ISO 27001 af statslige myndigheder. SPOR er ikke certificeret. Kontrollerne er dokumenteret, så en offentlig kunde kan vurdere SPOR som leverandør.

KravSådan gør SPORBevisStatus
Adgangsstyring og stærk autentifikation
A.5.15-5.18, A.8.5
Konti oprettes ved invitation eller ved selvbetjent oprettelse (B-04 ændret 10. oktober 2026): på /opret skriver en person virksomhedens oplysninger og en arbejdsmail og får ét bekræftelseslink; først når personen trykker på knappen i linket (POST, så en mailscanner ikke kan udløse det), oprettes en konto uden adgangskode og en ny arbejdsplads, hvor personen er ejer. Kontoen kan først logge ind, når adgangskode og authenticator er sat op, og kun den nye arbejdsplads gives; en adresse med en færdig konto eller en aktiv arbejdsplads og en virksomhed, der allerede er oprettet selvbetjent, afvises. Grænser pr. IP, pr. mail, i timen og i døgnet gælder i databasen, kundeporten gælder uændret (i produktion kan ingen oprettes, før de seks betingelser er opfyldt), og SPOR bruger aftaler og abonnement (Stripe) til at åbne for almindelig brug. Tilmeldingsformularen (/tilmeld) opretter kun en henvendelse til leverandøren (MLE Gruppo ApS), aldrig en konto, et medlemskab eller en session, og den offentlige side kan ikke læse tilmeldinger. Ventelisten (/api/faa-besked fra hjemmesiden) gemmer kun en mail med samtykke, kræver dobbelt bekræftelse via et personligt link i en mail, før mailen kommer på listen, og opretter heller ingen konto. Opsætningslinket til en ny kundes konti (/start/…) giver kun adgang til den ene kundes opsætningsside, gemmes kun som hash, udløber efter 30 dage, kan lukkes og opretter ingen konto. Adgangskode og obligatorisk tofaktor for alle. Ny adgangskode kræver både et engangslink på mail og tofaktor. Roller pr. arbejdsplads. En ny konto, der sættes op via invitationens engangslink, bliver medlem ved opsætningen (linket viser, at personen har adgang til mailadressen); en eksisterende konto, der inviteres til en ny arbejdsplads, får først adgang, når personen selv har trykket Acceptér efter login (ejer- og administratorrollen kræver en frisk kode), og kan afvise invitationen. En invitation giver ingen adgang til arbejdspladsens data. Supportadgang kun tidsbegrænset og logget.
  • Automatisk test: test/auth-service.test.ts
  • Automatisk test: test/members.test.ts
  • Automatisk test: test/invitation-accept.test.ts
  • Automatisk test: test/signup.test.ts
  • Automatisk test: test/self-signup.test.ts
  • Automatisk test: test/account-setup.test.ts
  • Automatisk test: test/invite-takeover.test.ts
  • Automatisk test: test/owner-guard.test.ts
Opfyldt
Logning
A.8.15
Alle ændringer, loginhændelser og dataoverførsler logges pr. kunde. Et dagligt tjek er bygget til at overvåge installationer og sende én samlet alarm. Status 6. oktober 2026: det daglige tjek fejler i produktion og er under rettelse; indtil videre er det ikke dokumenteret, at det virker dér.
  • Automatisk test: test/event-log.test.ts
  • Automatisk test: test/admin.test.ts
Opfyldt
Leverandørstyring
A.5.19-5.22
Få leverandører, alle listet med placering og rolle. Nye afhængigheder kan ikke tilføjes, uden at dokumentationen opdateres (automatisk test).
  • Automatisk test: test/platform.test.ts
  • Dokument: docs/juridisk/aftaler
Opfyldt
Ændringsstyring
A.8.32
Al kode går gennem GitHub med automatiske tests. Ændringer afprøves først i et separat testmiljø (dev.spor.martinegesoe.dk) med sin egen database uden kundedata, før de godkendes til produktion. Udrulningen er bygget, så den kun sker efter grønne tests og kørte databasemigrationer; bagefter kontrolleres, at den nye version kører, og at test og produktion ikke deler database. Kun main udrulles til produktion. Kørslen fra 4. oktober 2026 (migrationerne 0033 til 0052) gennemførte alle trin, inklusive driftstjekket, som aflæser den kørende version med en nøgle.
  • Kode: .github/workflows/deploy.yml
  • Live-kontrol: migrations
  • Live-kontrol: env_separation
  • Automatisk test: test/platform.test.ts
Opfyldt
Kryptering
A.8.24
TLS på alle forbindelser. Hemmeligheder krypteres med AES-256-GCM. Adgangskoder gemmes som scrypt-hash.
  • Live-kontrol: db_tls
  • Live-kontrol: data_key
  • Automatisk test: test/auth-crypto.test.ts
Opfyldt
Beskyttelse af webapplikationen
A.8.26
Content Security Policy med nonce pr. forespørgsel, ingen eksterne scripts, beskyttede cookies (__Host-, httpOnly, secure), AI Audit kan ikke kalde interne adresser. Politikken håndhæves som standard i produktion (SPOR_CSP er ikke sat). Røgtesten i en rigtig browser gennemgik de offentlige og de indloggede sider (operatør, ejer, kollega, mobil) og registrerede 0 overtrædelser (4. oktober 2026).
  • Automatisk test: test/csp.test.ts
  • Automatisk test: test/audit.test.ts
  • Automatisk test: scripts/smoke/run.mjs
  • Live-kontrol: csp
Opfyldt
Nøgleskift
A.8.24
Krypteringsnøglen opbevares i Vercel og et sikkert sted uden for Vercel. Nøgleskift krypterer authenticator-hemmeligheder, forbindelsesnøgler og uploadede evidensfiler om, mens den forrige nøgle stadig kan læse; den forrige nøgle udfases først, når en kontrol viser, at intet kræver den. Nøgleskiftet er afprøvet på syntetiske data i test, men er ikke udført i drift.
  • Automatisk test: test/key-rotation.test.ts
  • Dokument: docs/DRIFT.md, afsnit 4
Opfyldt
NIS2 (EU 2022/2555) og den danske NIS2-lov1 krav

Myndighed: Styrelsen for Samfundssikkerhed m.fl.. Cybersikkerhed for væsentlige og vigtige enheder.

KravSådan gør SPORBevisStatus
Omfattet eller ej
Art. 2-3
En intern selvvurdering (2026-10-01) gennemgår størrelsesgrænsen (mellemstor virksomhed: mindst 50 ansatte, eller både omsætning og balance over 10 mio. EUR), sektoren (SPOR kan høre under cloud computing og administrerede tjenester, bilag I) og undtagelserne, hvor små virksomheder alligevel er omfattet; ingen af dem gælder. Selvvurderingen er afsluttet 4. oktober 2026 på ledelsens oplysninger (1 ansat, omsætning og balance langt under grænserne, ejet alene af direktionen personligt, ingen årsrapport endnu): MLE Gruppo ApS er ikke omfattet. Det er en intern vurdering og ikke juridisk rådgivning. SPOR følger frivilligt de samme grundprincipper (risikostyring, hændelseshåndtering, leverandørstyring, kryptering, adgangsstyring). SPOR er ikke ISO 27001-certificeret, og ISO 27001 erstatter ikke NIS2. Vurderingen genbesøges årligt og ved vækst.
  • Dokument: docs/juridisk/nis2-selvvurdering.md
Opfyldt
Cookiebekendtgørelsen1 krav

Myndighed: Digitaliseringsstyrelsen. Samtykke til cookies, der ikke er strengt nødvendige.

KravSådan gør SPORBevisStatus
Kun nødvendige cookies
§ 3
Inde i SPOR (efter login og på alle private sider) sætter SPOR kun login-cookies, der er strengt nødvendige, og efter login en cookie (spor_ws) med id på den sidst brugte arbejdsplads, så knappen »Tilbage til arbejdsplads« kan finde den fra siderne Sikkerhed, Tillid og Support; den indeholder kun et id, ingen personoplysninger, har SameSite=Lax og udløber efter 90 dage. I browserens lokale lager gemmes kun valg, brugeren selv laver: om sidemenuen er klappet sammen, hvilke småtrin i opsætningsguiderne der er markeret som gjort, og om visningen skal være lys eller mørk. Det sendes ikke til serveren. Kun de offentlige sider /tilmeld, /tilmeld/tak, /opret, /opret/tak, /opret/betalt, /tillid og /privatliv kan måles, og kun efter aktivt samtykke (Google Analytics og Microsoft Clarity som to adskilte valg, standard er nej; valget gemmes i den nødvendige cookie mg_consent og kan ændres under »Cookievalg«). Reklamesignaler er altid slået fra. Login, engangslinks (også bekræftelseslinket til oprettelse) og alle sider efter login måles aldrig, og der sendes ingen navne, mails, formularindhold eller kundedata til målingen (public/consent.js, test/tracking-consent.test.ts). Beder en besøgende selv om at blive kontaktet efter AI-tjekket på martinegesoe.dk (navn, mail, evt. firmanavn, svarkoder og kilde, kun med samtykke), gemmes det højst 12 måneder i en tabel, som kun SPORs operatør kan se (migration 0079, test/ai-check-lead.test.ts); det sendes aldrig til Google eller Microsoft. Uafhængigt af samtykke tæller SPOR selv antal pr. dag og trin i kunderejsen (AI-tjek gemt, oprettelse, betaling) i en tabel uden personoplysninger, som kun SPORs operatør kan se (migration 0078, test/funnel-stats.test.ts).
  • Kode: src/server/session.ts
  • Kode: src/ui/guide-steps.tsx
  • Automatisk test: test/csp.test.ts
Opfyldt

Åbne punkter

Det arbejder vi på

Punkter, der ikke er fuldt opfyldt endnu. De løses, før rigtige kundedata lægges i SPOR, eller hurtigst muligt derefter.

  1. Delvist Gendannelse efter hændelser (Databeskyttelsesforordningen, Art. 32, stk. 1, litra c)
    En fuld gendannelsesøvelse mangler: kontrollen af login, dekryptering af hemmeligheder og filer og hændelseskæden er bygget og testet mod en engangsdatabase (npm run restore:verify), men ikke kørt på en rigtig gendannet Neon-gren, og det trin, der gentager sletninger, er ikke afprøvet. Øvelsen 4. oktober læste kun metadata og antal. Datanøglen ligger ikke i Neons kopi og skal findes separat. Det manuelle snapshot uden slettedato skal afklares.
  2. Delvist Indsigt, eksport og sletning (Databeskyttelsesforordningen, Art. 15-20 og 28, stk. 3, litra g)
    Kundens egen anmodning om sletning (med bekræftelse og varsler), sletning af enkelte personer og brugerkonti og kundens egen historikperiode er ikke bygget; operatørfunktionen er ikke slået til i drift; eksportens dækning se test/data-coverage.test.ts.

SPOR · MLE Gruppo ApS · spor.martinegesoe.dk · Version 1.0, gennemgået 11. oktober 2026. SPOR er databehandler for de oplysninger, kunderne lægger i SPOR, og dataansvarlig for SPORs egne brugerkonti og logs.