IT- & sikkerhedsdokumentation
Denne side er skrevet til IT-afdelinger, sikkerhedsansvarlige og DPO'er der skal vurdere CaseTrace før installation i en organisation — privat eller offentlig. Den beskriver præcist hvad programmet gør, hvilken netværkstrafik det kan lave, og hvordan data håndteres. Indholdet er afstemt med den faktiske kildekode. Den kan læses som beslutningsgrundlag på ca. 5 minutter.
Hvad CaseTrace gør
CaseTrace er et lokalt Windows-skrivebordsprogram til tidsregistrering. Det kører i den enkelte brugers session og registrerer, hvor tiden bruges, ud fra hvilket vindue der er i fokus.
- Mappe- og filtid: Brugeren udvælger selv et antal rodmapper. CaseTrace registrerer aktiv tid pr. mappe og fil, når en fil fra en overvåget mappe er åben i det aktive vindue. Detektionen sker via vinduestitler, åbne fil-handles og Windows' filsystem-hændelser (ReadDirectoryChangesW) — der læses kun metadata (filnavn, sti, tidsstempler), aldrig filindhold.
- Aktivitetstid: Programmet aflæser titlen på det aktive vindue for at kategorisere tid (fx «Word», «Browser», «Mail»). Der gemmes vinduestitler og tidsstempler.
- Inaktivitet (idle): Fravær af tastatur/mus-input ud over en grænse (standard 300 sekunder = 5 minutter, kan ændres til 1–120 min) registreres som pause. Brugeren vælger selv, om pausen skal tælle med. Idle måles via Windows'
GetLastInputInfo, som kun returnerer tid siden sidste input — ikke hvad der blev tastet. - Møder: Er der ikke tastet eller klikket i et stykke tid, tjekker programmet, om brugeren er i et møde — om forgrundsvinduet ligner et mødevindue (Teams, Zoom, Meet, Webex …), eller om en app har mikrofonen åben. Det sidste aflæses i Windows' egen fortegnelse (
HKCU\...\CapabilityAccessManager\ConsentStore\microphone, kun læsning). Er brugeren i et møde, tæller tiden som aktiv (højst 4 timer uden input). Der optages og gemmes ingen lyd. Kan slås fra under Indstillinger → «Tæl møder som aktiv tid». - Lagring: Alle registreringer skrives til en lokal SQLite-database på brugerens egen maskine:
%LOCALAPPDATA%\CaseTrace\tracking.db(typiskC:\Users\<bruger>\AppData\Local\CaseTrace\).
Hvad CaseTrace ikke gør
- Ingen telemetri eller analytics. Programmet indeholder ingen analytics-, telemetri- eller fejlrapporterings-biblioteker, og sender ikke brugs- eller registreringsdata til CaseTrace (leverandøren). En fejllog skrives lokalt til
%LOCALAPPDATA%\CaseTrace\crash.logog forlader aldrig maskinen. - Ingen registreringsdata sendes til CaseTrace. Tidsregistreringer, mappenavne og aktiviteter ligger i den lokale database. De forlader kun maskinen, hvis brugeren selv eksporterer (PDF/CSV), sender en rapport på e-mail eller slår en automatisk e-mail-rapport til (ugerapport/planlagt rapport — se afsnit 3), sender en fakturakladde til e-conomic eller Billy (afsnit 3), vælger en synkroniseret backup-mappe (afsnit 4) eller slår den valgfri deling af mappetid til for en bestemt mappe (afsnit 5). Intet af det går til CaseTrace.
- Ingen keylogging, ingen skærmbilleder. Der opsættes ingen tastatur-/muse-hooks der opfanger indhold, og der tages ingen screenshots. Der læses metadata: vinduestitler, filnavne, stier og tidsstempler.
- Ingen forhøjede rettigheder. Programmet installeres og kører som almindelig bruger. Installeren kører med
PrivilegesRequired=lowest(ingen UAC-elevation), og den kørende .exe anmoder ikke om administrator-rettigheder. Alle filer ligger i brugerens egen profil; al registry-skrivning sker underHKEY_CURRENT_USER.
casetrace.dk bruger en let, cookiefri besøgsstatistik (GoatCounter): besøgstal, sidevisninger, download-klik, henvisningskilde og land — på aggregeret niveau. Der sættes ingen cookies, gemmes ingen personhenførbare data, og intet samtykke-banner er nødvendigt. Land udledes fra IP-adressen ved besøget; IP-adressen gemmes ikke.Komplet liste over udgående trafik
CaseTrace fungerer fuldt ud offline. Nedenstående er samtlige udgående kald koden kan lave. Intet kald sender tidsregistreringer til CaseTrace. Tidsregistreringer forlader kun maskinen via to af kaldene, og kun efter brugerens valg: e-mail-rapporter (via organisationens egen SMTP-server) og fakturakladder til regnskabsprogrammet (e-conomic eller Billy).
Kald appen kan lave automatisk
| Kald | Endpoint | Hvornår | Hvad sendes |
|---|---|---|---|
| Opdateringstjek | api.github.com (CaseTrace-releases) |
Ca. 8 sek. efter opstart, derefter automatisk hver 4. time så længe programmet kører — og når brugeren klikker «Søg efter opdateringer» | Intet (offentligt GET — henter seneste versionsnummer) |
| Hent opdatering | github.com (release-fil) |
Kun når brugeren siger ja til at opdatere | Intet (downloader installeren) |
| Licensfornyelse (tavs) | CaseTraces licens-tjeneste (Google Apps Script, script.google.com/macros/s/…/exec) |
Ved opstart, kun når en tidligere licens ikke længere validerer: den er udløbet, serverens signeringsnøgle er roteret, maskine-ID'et er skiftet, eller licensfilen er lagt i karantæne (Karantaene-licenser\). Ingen klik. Svarer tjenesten ikke (offline, blokeret i firewall), fortsætter programmet med henstand og falder ellers tilbage til prøveperiode-/aktiveringsflowet |
Den e-mail, licensen er registreret på (ellers en fast pladsholder-adresse), maskine-fingerprint (envejs-hash) og programversion. Ingen tidsregistreringer |
User-Agent: «CaseTrace-updatecheck» (identificerer ikke brugeren). Findes der en nyere version, viser programmet en ikke-modal besked med knappen «Opdater nu» — download og installation sker først, når brugeren klikker.Kald der kun sker efter brugerens valg
Disse kald sker kun ved en aktiv brugerhandling eller efter, at brugeren selv har sat funktionen op og slået den til. Ingen af dem er slået til fra start.
| Kald | Endpoint | Udløses af |
|---|---|---|
| CVR-opslag | cvrapi.dk/api | Når brugeren skriver et gyldigt CVR-nummer i kundeformularens CVR-felt (opslaget sker automatisk efter et øjeblik), klikker «Slå op» eller bruger søgefeltets «Hent fra CVR-registret». Resultatet kan udfylde en ny kunde. Der sendes kun CVR-nummeret eller søgeordet — søgefeltet sender aldrig noget af sig selv |
| Hent licens automatisk | CaseTraces licens-tjeneste (Google Apps Script) | Brugeren klikker «Hent licens automatisk» (Hjælp → Anmod om / forny licens). Sender e-mail + maskine-fingerprint + version for at få en gratis nøgle — samme kald som den tavse fornyelse ovenfor, her udløst af brugeren |
| Send rapport på e-mail | Brugerens egen SMTP-server | Brugeren sender en rapport — eller automatisk, når brugeren har slået «ugerapport pr. e-mail» (fredag) eller en planlagt rapport til; derefter sendes uden yderligere klik. Forbindelsen oprettes til den SMTP-server brugeren selv har konfigureret (vært/port/login). Indhold: vinduestitler/aktiviteter med tid for perioden (ugerapporten: de 20 største; planlagt rapport: PDF). Modtageren er den adresse, brugeren har skrevet. CaseTrace driver ingen mailserver |
| Fakturakladde til e-conomic | restapi.e-conomic.com | Brugeren har sat e-conomic op (Indstillinger → Regnskabsprogram) og tester forbindelsen eller sender en fakturakladde (Timeoversigt → «Send fakturakladde til regnskabsprogram»). Henter kunde- og vareliste og opretter en kladde med én linje pr. sag: sagsnavn, periode, fakturerbare timer og timepris. Ingen vinduestitler eller filnavne. Brugerens adgangstoken sendes som header og gemmes lokalt krypteret med Windows DPAPI |
| Fakturakladde til Billy | api.billysbilling.com | Som e-conomic: brugeren har sat Billy op og tester forbindelsen eller sender en kladde. Samme indhold (sagsnavn, periode, timer, timepris) |
Datalagring, kryptering og sletning
Placering
Al data ligger under brugerens profil i %LOCALAPPDATA%\CaseTrace\:
tracking.db— SQLite-database med alle registreringerlicense.key— licensnøgle ·settings.json— indstillinger ·categorize_rules.json— kategoriregleridentity.json— maskine-ID, prøveperiode-tilstand og den e-mail, licensen er aktiveret med (klartekst) ·Karantaene-licenser\— tidligere licensnøgler, der ikke kunne valideres (indeholder e-mailen)Backup\,Logs\,Rapporter\,PDF-rapporter\
Kryptering — nøgtern status
Databasen er ikke applikations-krypteret. tracking.db er en almindelig SQLite-fil i åbent format. Den er beskyttet af styresystemets adgangskontrol — filen ligger i brugerens egen profil og kan kun læses af den pågældende brugerkonto og lokale administratorer — samt af eventuel disk-kryptering på maskinen (fx BitLocker), som organisationen selv styrer. Programmet bruger kryptografi to steder: Ed25519-signaturvalidering af licensnøglen (asymmetrisk; kun den offentlige nøgle ligger i appen, så den kan verificere — aldrig udstede — licenser), og Windows DPAPI til de to hemmeligheder, der kan ligge i databasen: SMTP-adgangskoden og adgangstokenet til e-conomic/Billy. De gemmes krypteret og bundet til brugerens Windows-konto, så en kopieret databasefil ikke afslører dem. En SMTP-adgangskode, der blev gemt med en version før 1.2.75, krypteres automatisk, første gang den nye version starter — før dagens sikkerhedskopi tages. Sikkerhedskopier fra før opgraderingen kan stadig indeholde den i klartekst, indtil de er udskiftet af rotationen (de 14 nyeste beholdes).
tracking.db på linje med organisationens øvrige lokale dokumenter.Backup
Programmets automatiske sikkerhedskopi (%LOCALAPPDATA%\CaseTrace\Backup\, de 14 nyeste beholdes) rummer både en kopi af databasen (tracking-<tid>_<grund>.db) og en kopi af settings.json inkl. kundekartoteket (tracking-<tid>_<grund>.settings.json). Filer → «Slet registreret tid» sletter registreringer i databasen, men rører ikke settings-kopierne; de udskiftes af rotationen eller slettes sammen med datamappen.
Backup til en anden placering er valgfri og skrives kun til en destination brugeren selv vælger: et lokalt drev, et netværksdrev eller en mappe der er cloud-synkroniseret af organisationen. Vælges en synkroniseret mappe (fx OneDrive), er det organisationens egen tenant/konto der opbevarer kopien — CaseTrace uploader intet til egne servere. Gendannelse sker sikkert: den klargøres og lægges på plads ved næste programstart, før databasen åbnes.
Fuld sletning
Afinstallation (via Windows «Tilføj/fjern programmer») fjerner selve programmet: CaseTrace.exe, programikon og programmappen, installerens registry-værdier under HKCU\Software\CaseTrace, registerkopien af aktiverings-e-mailen (email) samt autostart-værdien CaseTrace under HKCU\Software\Microsoft\Windows\CurrentVersion\Run (kun hvis den peger på den installation, der afinstalleres).
Afinstallation fjerner ikke brugerens data. For fuldstændig datasletning slettes desuden manuelt:
- Datamappen:
%LOCALAPPDATA%\CaseTrace\(database, licens, indstillinger inkl. kundekartotek, backups med settings-kopier, logs — ogidentity.jsonmed aktiverings-e-mailen, som afinstallationen ikke fjerner) - Registry-nøglen
HKCU\Software\CaseTrace: værdiernedata(prøveperiodens tilstand — pseudonym; bevares bevidst, så en prøveperiode ikke kan nulstilles ved at geninstallere) ogmachine_fp(maskine-ID-cache, envejs-hash) bliver liggende efter afinstallation og slettes ved at slette nøglen - Store-udgaven skriver ingen Run-værdi (den bruger MSIX-manifestets StartupTask)
- Eventuelle backups på de destinationer brugeren har valgt (netværksdrev/cloud-mappe)
Persondata & GDPR
- Hvilke persondata behandles: CaseTrace gemmer vinduestitler samt fil- og mappenavne fra de overvågede mapper. Indeholder disse navne personoplysninger (fx klientnavne, sagsnumre eller CPR i et filnavn), behandles de oplysninger lokalt i databasen. Det gælder også titler fra mail og samarbejde: Gmail og Outlook på nettet skriver mailens emne og brugerens egen konto (adresse eller navn) i titlen, SharePoint og OneDrive dokumentnavnet, og Teams (i browseren og programmet) kanal- eller chatnavnet. Programmet viser den tid pr. mail-emne, dokument og samtale ud fra de samme titler — der læses intet indhold. Organisationen er dataansvarlig for denne behandling; CaseTrace er ikke databehandler, da leverandøren ikke modtager data.
- Valgfri «Vis enkelte mails fra Outlook-programmet»: slået fra fra start (brugeren spørges én gang; indstillingen
outlook_mail_details). Slås det til, læser programmet emnet og modpartens e-mailadresse på den mail, der er valgt eller åbnet i Outlook-programmet — afsenderen, eller den første modtager på mails brugeren selv har sendt — og gemmer dem som aktivitetens vinduestitel (activity_log, lokalt). Det gælder både det klassiske og det nye Outlook, med samme samtykke: det klassiske Outlook læses via Outlooks eget COM-interface, det nye Outlook via Windows' UI Automation (den tilgængelighedsgrænseflade, skærmlæsere bruger) — kun emnelinjen og afsenderlinjen på den valgte mail, aldrig mappens liste over mails. Aldrig brødtekst, vedhæftninger eller øvrige modtagere; Outlook startes aldrig, og intet element ændres eller markeres som læst. For at undgå Outlooks egen sikkerhedsadvarsel læser programmet lokalt Outlooks sikkerhedsindstilling i registreringsdatabasen og antivirus-status fra Windows Sikkerhedscenter; intet af det gemmes eller sendes. Brugerens egne adresser (indstillingenoutlook_own_addresses) hentes automatisk fra Outlook-kontiene og bruges kun til at holde egne og kollegers mails ude af sagsregler og regel-forslag og til at finde modparten på sendte mails. Da modpartens adresse er en personoplysning, bør funktionen nævnes i fortegnelsen, hvis den tages i brug. - «Automatisk kunde» (slået til fra start): åbner brugeren en fil fra en kunde i en overvåget mappe, lægger CaseTrace den øvrige registrerede tid (browser, mail, programmer) på samme kunde, indtil der arbejdes i en anden kundes filer. Der registreres ingen nye oplysninger — det er kun en fordeling af tid, der allerede registreres lokalt. Private sider, CaseTrace kan genkende (privat browsing, bank, søgninger, private mailkonti som fx Hotmail, beskeder), lægges ikke på af sig selv. Mails, chats og mødevinduer lægges på den aktive kunde, medmindre de tydeligt peger på en anden kunde (afsender, emne, mødets navn eller — for kalendermøder, appen allerede har læst — deltagernes maildomæne); tid, CaseTrace er i tvivl om, mærkes «tjek». Tiden er mærket «automatisk» og står i timeunderlag og kunderapporter med en neutral betegnelse og mærket «automatisk fordelt». Tildelingen kan fjernes igen, og funktionen kan slås fra under Indstillinger → Automatisk kunde. Perioderne, delene og brugerens fravalg ligger i databasens tabeller
active_case_periods,active_case_assignmentsogcase_deselected— mål, tidspunkter og de visningsnavne (fx et mail-emne), der allerede står i aktivitetsloggen — og slettes med «Slet registreret tid». Automatisk fordelt tid deles ikke i «Del mappetid» uden brugerens udtrykkelige ja. - Data forlader ikke maskinen medmindre brugeren selv eksporterer en rapport, sender en rapport på e-mail eller slår en automatisk e-mail-rapport til (vinduestitler med tid, til den modtager brugeren har valgt), sender en fakturakladde til e-conomic/Billy (sagsnavn, periode, timer, timepris — til organisationens eget regnskabsprogram), vælger en synkroniseret backup-destination (afsnit 3–4) eller slår «Del mappetid» til (næste punkt).
- Valgfri «Del mappetid»: slår brugeren deling til for en overvåget mappe, skriver CaseTrace en lille JSON-fil i selve mappen —
<mappe>\.casetrace\tid-<maskinnavn>.json— med dagstotaler for den mappe. Først efter et separat samtykke indeholder filen også tid pr. relativ filsti samt et visningsnavn, brugeren selv vælger. Filen følger blot med organisationens egen OneDrive-/netværksdeling af mappen og sendes aldrig til CaseTrace-servere. Deling er opt-in pr. mappe; slås den fra, slettes filen igen. - Sletning/indsigt: Brugeren kan slette registreringer i programmet — pr. aktivitet/vinduestitel (for en dag), pr. manuel post, pr. tidslinje-post, pr. overvåget mappe (fjernelse af en mappe sletter al registreret tid for den), og for en hel periode eller alt på én gang under Filer → «Slet registreret tid» (der tages en backup først). Hele datasættet kan desuden fjernes ved at slette datamappen (afsnit 4). Dataformatet er åbent (SQLite), så indsigt og udtræk altid er muligt.
- Opbevaring (5 år): Sletning i programmet fjerner også grundlaget for arbejdstidsrapporten, og programmets egne backups roterer (lokalt beholdes de nyeste 14). CaseTrace er derfor ikke et 5-års-arkiv i sig selv: organisationen bør jævnligt gemme «Arbejdstidsrapport» (PDF/CSV) i sit eget arkiv for at opfylde arbejdstidslovens opbevaringskrav.
- Ingen profilering hos leverandøren: da ingen data sendes til CaseTrace, sker der ingen ekstern profilering eller automatiseret beslutningstagning.
- Tilsigtet brug & ansvar: CaseTrace er beregnet til at registrere brugerens egen arbejdstid. Anvendes programmet til at overvåge andre (fx medarbejdere), er den organisation eller person, der udruller det, selv ansvarlig for at overholde gældende lovgivning — herunder GDPR's krav om lovligt grundlag, proportionalitet og oplysningspligt over for de berørte. Leverandøren leverer alene værktøjet og modtager ingen data.
Installation & drift
| Platform | Windows 10 / 11, 64-bit (x64) |
| Installer-størrelse | ca. 68 MB (selvstændig — ingen separate runtime-afhængigheder; Python og biblioteker er bundtet) |
| Installationssti | Brugerens egen profil: %LOCALAPPDATA%\Programs\CaseTrace\ (ingen skrivning til Program Files) |
| Administrator-rettigheder | Nej — installeres og kører som almindelig bruger (lowest privileges, ingen UAC) |
| Code signing | Installeren er pt. ikke kodesigneret. Windows SmartScreen kan derfor vise «Windows beskyttede din PC». Brugeren klikker «Mere info → Kør alligevel». Et kodesigneringscertifikat er på vej; indtil da kan IT verificere integriteten via SHA-256-tjeksummen nedenfor. |
| Autostart | Slået til som standard i den direkte downloadede .exe-udgave: ved første start skrives én værdi CaseTrace under HKCU\...\Run. Brugeren kan slå det fra under Indstillinger → «Start med Windows», hvorefter værdien fjernes. Store-udgaven bruger i stedet MSIX-manifestets StartupTask og skriver ingen Run-værdi |
| Opdateringer | Ingen tvungen eller tavs opdatering. Programmet tjekker selv for nye versioner (ca. 8 sek. efter start og derefter hver 4. time) ved kun at hente en versionsfil fra GitHub — uden identificerende oplysninger. Findes en nyere version, vises en ikke-modal besked med «Opdater nu»; download og installation sker først, når brugeren klikker, og foregår i brugerens egen profil |
| Licensmodel | Gratis. Licensen er bundet til maskinens ID (en envejs-hash af Windows' installations-id), som gemmes i datamappen (identity.json); kopieres datamappen, følger licensen med. Valideres offline via indlejret Ed25519-nøgle |
CaseTrace kan distribueres til arbejdsstationer ved at køre installeren (interaktivt eller silent: CaseTraceSetup_v<version>.exe /VERYSILENT). Da alt installeres pr. bruger uden admin, er der ingen maskinbrede ændringer.
Verificér download (SHA-256)
Da installeren ikke er kodesigneret, kan IT bekræfte at den hentede fil er uændret ved at sammenligne dens SHA-256-tjeksum med den officielle værdi for den aktuelle udgivelse (v1.2.77):
SHA-256: 9f05fec9aaec36c248155c9f5bb1822daf9f75ebf415b9ac0415f2fa80677ba1
Beregn tjeksummen af den hentede fil i en kommandoprompt og sammenlign:
| Windows (indbygget) | certutil -hashfile CaseTraceSetup_v<version>.exe SHA256 |
| PowerShell | Get-FileHash CaseTraceSetup_v<version>.exe -Algorithm SHA256 |
Tekniske & sikkerhedsmæssige henvendelser
Spørgsmål til denne dokumentation eller andre tekniske og sikkerhedsmæssige henvendelser:
info@casetrace.dk
Klar til evaluering.
Download CaseTrace og test det i et kontrolleret miljø. Ingen konto, intet kreditkort, installeres pr. bruger uden admin.