Altinn / Altinn/info.altinn.no

Kopiere PROD til andre miljøer

Open
#666 0 comments 0 reactions 0 assignees View on GitHub
Teknisk
Dominant language
TypeScript
Stars
1
Forks
2
Avg merge
20h 21m
Merged PRs (30d)
32

Description

Nå kommer det en del feilmeldinger i logger for at23 og tt02 fordi feil knyttet til data er rettet i prod og at22, men ikke i at23 og tt02.

Det er også hensiktsmessig for testing og bruk ellers at mlijøene at22, at23 og tt02 i stor grad gjenspeiler innhold i produksjon.

Kopiering av data fra prod kan ikke gjøres automatisk fortløpende uten å forstyrre brukere av de andre miljøene, men kan løses ved å kjøre en jobb en gang i blant. En slik jobb må utvikles.

Rent teknisk betyr dette at en kopi av database og media-filer fra prod må erstatte database og media-filer i det miljøet som skal oppdateres.

Lenker til innboks, tilgangsstyring og e-post-adresse for kontaktskjema må beholdes miljøspesifikke. Dette innebærer noen få database-endringer som en del av jobben.

Hvordan kjøre jobben bør dokumenteres på Confluence.

### Forslag til teknisk løsning

Forslaget går ut på å lage et shell-script eller program (C# eller TypeScript) som kjører på utviklers PC etter at utvikler har etablert VPN-tilkobling mot plattformen.

Stegene i scriptet / programmet kan være:

1. Eksporter database fra prod (gjenbruk deler av https://github.com/Altinn/info.altinn.no/issues/643)
2. Ta ned Umbraco i målmiljøet (evt. deploy med SQLite i stedet for AzureSQL)
3. Gi et nytt navn til databasen "umbraco" i målmiljøet, f.eks. "umbraco-kopi-"
4. Importer prod-databasen i det nye miljøet. Hvis dette feiler, start om igjen fra steg 1.
5. Kjør SQL-kommandoer for å oppdatere lenker til innboks, tilgangsstyring og e-post for kontaktskjema
6. Lag en sikkerhetskopi av mediafiler for målmiljøet
7. Kopier mediafiler fra prod til målmiljøet (full overskriving)
8. Start opp Umbraco i målmiljøet (evt. deploy med AzureSQL i stedet for` SQLite)

Manuelle steg i etterkant:

1. Teste at innhold i portalen og media-arkivet i Umbraco fra prod er gjenspeilt i målmiljøet
2. Teste at lenker til innboks og tilgangstyring går til samme sted som før oppdateringen
3. Hvis alt ser ok ut, slett kopiene av gammel database og gamle mediafiler manuelt

Kommandoen "sqlcmd" kan brukes for steg 3 og 5. Eksempel:

```
sqlcmd -S infop-at22-vllfov-server.privatelink.database.windows.net -d master -G -C -U -Q "alter database umbraco modify name = 'umbraco-kopi-260806';"

sqlcmd -S infop-at22-vllfov-server.privatelink.database.windows.net -d umbraco -G -C -U -Q "update umbracoPropertyData set varcharValue = 'https://af.at23.altinn.cloud/' where id in (213247, 213248, 213249); update umbracoPropertyData set varcharValue = 'https://am.ui.at23.altinn.cloud/' where id in (213251, 213252, 213253); update umbracoPropertyData set varcharValue = 'test.support@altinn.no' where id = 37881; update umbracoPropertyData set varcharValue = 'altinn.starteogdrive@brreg.no' where id = 37861;"
```

Kommandoen "azcopy sync" kan brukes for steg 6 og 7 (etter tips fra plattform-teamet). Eksempel:

```
az storage container generate-sas --account-name infoportalmediaat23n73s --name umbraco --permissions racwdl --expiry 2026-08-05T23:59:59Z --https-only --auth-mode login --as-user -o tsv

azcopy sync \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media?' \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media-backup-260806?' \
--recursive

azcopy sync \
'https://infoportalmediaprodl08r.blob.core.windows.net/umbraco/media?' \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media?' \
--recursive \
--delete-destination=true
```

Contributor guide

No contributing guide indexed for this repository

Research direction

No repository files or tests are named. Start by reviewing issue #643 and validating the proposed database and media-copy workflow with the platform team, including rollback and environment-specific values. Done means a repeatable job can update at22, at23, or tt02 safely, with backups and Confluence instructions for verification and cleanup.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp, shell, sql, typescript
Domain
cloud, databases, devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.