– Staten tilbyr åpne API-er. Det vanskelige er å finne veien gjennom dem

Ole Fredrik Lie lagde Wenche for å sende inn tall til staten, og fikk hjelp av Claude Code til å navigere det komplekse landskapet. – Dette er kanskje den mest undervurderte KI-bruken. 

Ole Fredrik Lie har gitt ut Wenche som både åpen kildekode og en tjeneste på wenche.cloud.
Publisert

✍ leserinnlegg

Dette er et leserinnlegg fra en ekstern skribent, som betyr at innholdet ikke nødvendigvis speiler kode24s meninger. Vil du også bidra? Send oss en epost på [email protected], eller les mer her!

Jeg eier et lite holdingselskap med nesten ingen aktivitet. Det eier noen aksjer i et annet selskap, og utover det skjer det ingenting. 

Likevel måtte jeg i årevis betale faste månedlige lisenskostnader for et regnskapsprogram, av én eneste grunn: å sende inn årsregnskap, skattemelding og aksjonærregisteroppgave til Altinn, Brønnøysund og Skatteetaten én gang i året.

Det føltes meningsløst nok til at jeg begynte på et lite open source-prosjekt for å løse det selv. Verktøyet heter Wenche, og det gjør den maskinelle innsendingen av påkrevd dokumentasjon, altså biten som vanligvis selges som dyre tilleggsmoduler. Det er ikke et regnskapsprogram i seg selv.

Den tekniske jobben bak handlet mest om én ting: å få verktøyet til å snakke med myndighetenes systemer.

At API-ene finnes i det hele tatt, er hele forutsetningen

Det er lett å glemme hvor mye som faktisk ligger åpent. Maskinporten, Altinns systembruker-API og Skatteetatens innsendingstjenester er der ute, dokumentert og tilgjengelige, slik at en enkeltperson kan bygge et verktøy som Wenche uten virksomhetssertifikat. 

Autentiseringen går på et selvgenerert nøkkelpar gjennom Maskinporten, og tilgangen til de nødvendige scopene søker du om hos Digdir. Dette er ikke en selvfølge, og det er grunnen til at prosjektet i det hele tatt var mulig.

Ole Fredrik jobber til daglig som produktsjef i teknologiselskapet Justify, hvor han også er medgründer. Wenche er et privat sideprosjekt som han sysler med ved siden av jobb

Utfordringen ligger et annet sted: du må forholde deg til tre aktører på én gang, Digdir, Altinn og Skatteetaten, og hver av dem dokumenterer sin egen del godt for seg. Det som er vanskelig å finne, er hvordan delene henger sammen, og i hvilken rekkefølge ting må skje.

Du oppretter et scope. Du genererer et nøkkelpar. Du registrerer en systembruker. Du ber om en forespørsel som må godkjennes. Et sted i den kjeden kan du få en feilkode som AUTH-00004, og da må du selv finne ut hvilket steg lenger bak som egentlig var årsaken. 

Hver brikke er beskrevet. Sammenhengen mellom dem må du legge selv.

Mange norske utviklere kjenner igjen den følelsen fra integrasjoner mot offentlige tjenester. Det er imponerende mye som er åpnet opp, og selve byggeklossene holder høy kvalitet. Jobben ligger i å koble dem sammen på tvers av etatene.

Hver brikke er beskrevet. Sammenhengen mellom dem må du legge selv.

KI som både kartleser og kodehjelp

Jeg har brukt Claude Code aktivt gjennom hele utviklingen, både til å skrive koden og til å forstå systemene jeg integrerte mot. 

Det er den siste delen jeg synes er mest interessant, for det var der det gjorde størst forskjell: å nøste opp rekkefølge og forutsetninger.

Jeg kunne lime inn en kryptisk feilrespons, et utdrag fra en spesifikasjon og det jeg trodde jeg hadde gjort, og få hjelp til å resonnere meg fram til hvilken antakelse som var feil. Svaret jeg trengte var sjelden «her er koden», men oftere «den feilen betyr sannsynligvis at systembrukeren ble onboardet et annet sted først, og da kan du ikke utløse den på nytt på samme måte».

Det ligner på å ha en utålmodig kollega som har lest hele spesifikasjonen og all diskusjonen rundt den, og som er villig til å gjette på hvorfor noe henger, så lenge du selv verifiserer gjettet mot virkeligheten. Jeg verifiserte alt mot Skatteetatens testmiljø før noe traff prod, og holdt test og prod strengt adskilt. 

KI-en kortet ned tiden fra «dette feiler og jeg vet ikke hvorfor» til «nå har jeg en hypotese jeg kan teste».

Honnør til etatene

KI tok meg langt, men ikke hele veien. Noen feilkoder lot seg ikke resonnere bort fra skrivebordet, og da sendte jeg spørsmål direkte til etatene. 

Her fortjener de skryt. Skatteetaten har svart raskt og presist på Jira-sakene jeg har meldt inn med konkrete feilkoder underveis, og Digdir behandlet søknadene om tilgang til scopes kjapt. 

Den responstiden er ikke en selvfølge fra offentlige aktører, og den utgjorde en reell forskjell for fremdriften i et prosjekt jeg driver på fritiden.

Fra kommandolinje til nettleser

Wenche startet som et enkelt kommandolinjeverktøy. Det holdt for meg, men etter hvert la jeg på et tynt brukergrensesnitt for å gjøre det mer tilgjengelig. 

Og etter hvert som flere begynte å ta det i bruk, ble ett problem tydelig: å sette opp tilgangsnøkler og scopes i et verktøy som kjører lokalt på egen maskin var en reell terskel for mange.

Det ble motivasjonen for en hostet versjon som kjører i nettleseren, tilgjengelig på www.wenche.cloud. Der er det tekniske oppsettet gjort på forhånd, og du trenger i praksis bare BankID for å koble deg på og sende inn. 

Den som heller vil kjøre alt på egen maskin, kan fortsatt gjøre det med eget nøkkelpar og egne scopes.

Hva jeg sitter igjen med

For meg har dette aldri vært vibbekoding for vibbekodingens del. Det løste en reell smerte jeg har kjent på lenge som eier av et holdingselskap. 

Jeg bygget det alene, men gikk open source fra dag én, og har fått mange nyttige innspill fra folk som kjenner på den samme frustrasjonen.

Den største gevinsten med KI i et prosjekt som dette lå i å se sammenhengen mellom biter som er dokumentert hver for seg. Det er kanskje den mest undervurderte bruken for oss som integrerer mot offentlige tjenester, der mulighetene er gode, men helheten er spredt over flere etater.

Wenche ligger på github.com/olefredrik/Wenche for den som vil se hvordan det ble løst, og kan prøves på www.wenche.cloud.

Foretrekk oss i Google Discover

Ved å legge oss til som foretrukket kilde i Google vil du blant annet få opp flere av sakene våre i Google Discover. Tusen takk for støtten!

Foretrekk oss 😻
Bygget med Labrador CMS