Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Status

OPEN

Impact

HIGH

Driver

ola.enebro (Unlicensed)

Approver

Per Persson

Contributors

Martin Hansson (Unlicensed)

Informed

Due date

Resources

Outcome

\uD83D\uDCD8 Bakgrund

I Confluence finns en övergripande beskrivning för hur vi kan hantera öppen källkod inom Sundsvalls kommun i allmänhet och Utvecklingsfabriken i synnerhet. Dock finns några viktiga beaktanden att göra när det kommer till hur vi delar källkoden (med tillbehör) öppet. Se uppställning nedan.

En annan viktig frågeställning vi behöver ta ställning till är för vilket syfte vi ska tillgängliggöra källkoden för våra tjänster.

  1. Att tillgängliggöra koden för att andra ska kunna bidra i utvecklingen enligt klassisk open source-modell.

  2. Att vi delar med oss av det färdiga resultatet av respektive tjänst vi vill dela med oss av. Dock på ett sånt sätt att vi kan begränsa vad som delas publikt för att säkerställa att känsliga uppgifter inte sprids.

🤝 Beroenden

Oavsett alternativ som väljs behöver Utvecklingsfabrikens SpringBoot-ramverk (a.k.a. Dept44) finnas publikt tillgängligt för den som vill bygga något utifrån den öppna källkoden. Bör inte vara några konstigheter.

\uD83C\uDF08 Alternativ

Option 1

Option 2

Helt öppet Vi låter våra repositories i GitHub vara helt öppna och publika. Självklart att vi då lägger känsliga uppgifter, i den mån det går, som lösenord etc i separat konfigurationsrepo i GitLab. Och vi låter naturligtvis inte vem som helst att committa in saker till ett publikt repository.

Privat & publikt Vi skiljer på publikt och privat genom att ha separata repositories där kod från det privata på lämpligt sätt kan speglas till det publika. O-öppet alltså. Vi jobbar i privata repositoryn, varifrån vi även bygger och deployar. Det är ett aktivt val att “publicera” kod från ett privat till publikt repository.

Kan merge från main till en branch som heter “public” i det privata repositoryt vara det som något ett jobb i Jenkins ska gå på för att kunna skyffla rätt saker till det publika repositoryt.

Pros/cons

(plus) Enkelt. Det vi pushar in till GitHub blir tillgängligt för alla.

(minus) Varje enskild utvecklare behöver vara noggrann och se till att oönskad information inte kommer med. Mänskliga faktorn kan spela in.

(minus) Risk att personuppgifter (framförallt i testdata) slinker med och blir publika.

(minus) Risk att keystores med certifikat slinker med och blir publika.

⚠️ Potentiellt hög säkerhetsrisk om känslig information slinker med.

(plus) Möjlighet att begränsa vilka delar av det privata repositoryt som speglas ut till det publika.

(plus) Möjlighet att förhindra att oönskad historik slipper med - det är enbart skillnaden mellan respektive “publicering” som är önskvärd i det publika repositoryt. Minskar risk för att “fulkod” kommer med (även om vi naturligtvis aldrig fulkodar något, någonsin…).

(plus) Möjlighet att automatisera (förslagsvis via Jenkins) även om det bör vara ett aktivt val att faktiskt publicera ut något till ett publikt repository.

(minus) Mer komplex uppsättning.

(minus) Kräver dubbla repositoryn.

(minus) Oklart hur arbetsflödet bäst sätts upp för att åstadkomma detta.

⚠️ Kräver ändå att det privata repositoryt sätts upp på rätt sätt så att känslig information ska kunna filtreras bort på ett vettigt sätt.

✅ Action items

\uD83C\uDF1F Outcome

Ja, vad blev det?

  • No labels