Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VKT(Backend): OPHVKTKEH-111 ilmoittautumisten anonymisointi 180pv tutkintopäivän jälkeen #544

Open
wants to merge 17 commits into
base: dev
Choose a base branch
from

Conversation

mikhuttu
Copy link
Contributor

@mikhuttu mikhuttu commented Aug 3, 2023

Yhteenveto

Kun ilmoittautumiseen liittyvästä tutkintopäivästä on kulunut 180 päivää, anonymisoidaan siihen liittyvät ilmoittautumiset. Ilmoittautumisten tehneiden henkilöiden tiedot anonymisoidaan samalla mikäli nämä eivät ole ilmoittautuneet jo toiselle tuoreemmalle tutkintopäivälle.

Logiikkaa voisi testata untuvalla, mutta ainakaan toistaiseksi ei ole vielä tullut tuota tehtyä. Voisi pyytää myös asiakkaalta jotain kommenttia tähän.

@mikhuttu
Copy link
Contributor Author

Hetun tai muun person-taulun yksilöivän tiedon perusteella pseudonymisointi täältä vielä puuttuu. Periaatteessa sen osalta tää toteutus on parhaillaan draft, mutta ei taida pystyä enää draft PR:ksi vaihdettua

@jrkkp jrkkp marked this pull request as draft August 15, 2023 08:09
@@ -88,6 +88,7 @@ COPY public.databasechangelog (id, author, filename, dateexecuted, orderexecuted
2023-06-02-rename-enrollment-status-EXPECTING_PAYMENT mikhuttu migrations.xml 2023-06-02 08:38:57.704377 23 EXECUTED 8:a35dc4c9e0d0d241f4293f0b2ba16224 insert tableName=enrollment_status; sql; sql \N 4.9.1 \N \N 5695137627
2023-06-16-person-latest-identified-at mikhuttu migrations.xml 2023-06-16 09:46:36.462511 24 EXECUTED 8:51d5c16082a3fd83108e9c40e7ae78e6 addColumn tableName=person; sql; addNotNullConstraint columnName=latest_identified_at, tableName=person \N 4.20.0 \N \N 6908796433
2023-06-29-remove-person-identity_number mikhuttu migrations.xml 2023-06-29 09:32:48.572192 25 EXECUTED 8:5b23bce4f54b5583b757ad6bb81c612d dropColumn columnName=identity_number, tableName=person; dropColumn columnName=date_of_birth, tableName=person \N 4.20.0 \N \N 8031168558
2023-08-02-enrollment-is-anonymized mikhuttu migrations.xml 2023-08-02 11:23:02.580439 26 EXECUTED 8:3a3c0039e1c2c3e5a79b4e62612246c1 addColumn tableName=enrollment; dropDefaultValue columnName=is_anonymized, tableName=enrollment \N 4.20.0 \N \N 0975382564
Copy link
Contributor Author

@mikhuttu mikhuttu Aug 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tää 3_liquibase.sql (ja 1_tables.sql) tarttis generoida uusiksi olettaen et OPHVKTKEH-180 pullari mergetään ensin

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Onko tää Mikan kommentti edelleen relevantti?

@mikhuttu
Copy link
Contributor Author

Siirsin tähän liittyvän tiketin Tarvitsee selvittelyä -tilaan jira boardilla

Copy link
Contributor

@pkoivisto pkoivisto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yleistä pohdintaa:
Pitäisikö hashaukseen käytetyn saltin arvon tulla mieluummin tietokannasta kuin applikaation configista? Jos eläisi tietokannassa, niin sitten suolaa voisi myös tarvittaessa rotatoida. Toki sitten vaatii että anonymisoidut tietueet viittaavat aina kulloinkin voimassa olleeseen suolaan. Voisi tietysti myös olla uniikki suola per anonymisoitu tietue.
Toki findByOtherIdentifier-query vaatii muuttamista, jos suola ei ole staattinen.

Tärkeintä varmastikin on että tietoja pystytään jälkikäteen tarvittaessa tulkitsemaan -> pitää varmistua että suolaa ei voi vahingossa muuttaa. Ympäristökohtaisten repojen puolesta puhuisi mahdollisuus tarkastella suolan mahdollisia muutoksia versiohistoriasta. En osaa sanoa löytyykö esim. systems managerin puolelta sitten vastaavasti versioitua tietoa securestringeistä.

@jrkkp
Copy link
Contributor

jrkkp commented Sep 15, 2023

Yleistä pohdintaa: Pitäisikö hashaukseen käytetyn saltin arvon tulla mieluummin tietokannasta kuin applikaation configista? Jos eläisi tietokannassa, niin sitten suolaa voisi myös tarvittaessa rotatoida. Toki sitten vaatii että anonymisoidut tietueet viittaavat aina kulloinkin voimassa olleeseen suolaan. Voisi tietysti myös olla uniikki suola per anonymisoitu tietue. Toki findByOtherIdentifier-query vaatii muuttamista, jos suola ei ole staattinen.

Tärkeintä varmastikin on että tietoja pystytään jälkikäteen tarvittaessa tulkitsemaan -> pitää varmistua että suolaa ei voi vahingossa muuttaa. Ympäristökohtaisten repojen puolesta puhuisi mahdollisuus tarkastella suolan mahdollisia muutoksia versiohistoriasta. En osaa sanoa löytyykö esim. systems managerin puolelta sitten vastaavasti versioitua tietoa securestringeistä.

Voisihan se tietty olla molemmissa: tietokannassa rivikohtainen suola ja lisäksi conffeissa. Mutta ei nämä kai nyt niin kovin supersalaisia tietoja ole, että maksaako vaivaa. Hetu ei kuitenkaan ole enää yhdistettävissä muihin henkilötietoihin siinä kohtaa niin ei sillä varsinaisesti kai tee mitään.

Päädyin tuohon conffiin tosiaan tuosta syystä, että se on sitten tuolla versiohistoriassa kätevästi jemmassa.

@pkoivisto
Copy link
Contributor

Yleistä pohdintaa: Pitäisikö hashaukseen käytetyn saltin arvon tulla mieluummin tietokannasta kuin applikaation configista? Jos eläisi tietokannassa, niin sitten suolaa voisi myös tarvittaessa rotatoida. Toki sitten vaatii että anonymisoidut tietueet viittaavat aina kulloinkin voimassa olleeseen suolaan. Voisi tietysti myös olla uniikki suola per anonymisoitu tietue. Toki findByOtherIdentifier-query vaatii muuttamista, jos suola ei ole staattinen.
Tärkeintä varmastikin on että tietoja pystytään jälkikäteen tarvittaessa tulkitsemaan -> pitää varmistua että suolaa ei voi vahingossa muuttaa. Ympäristökohtaisten repojen puolesta puhuisi mahdollisuus tarkastella suolan mahdollisia muutoksia versiohistoriasta. En osaa sanoa löytyykö esim. systems managerin puolelta sitten vastaavasti versioitua tietoa securestringeistä.

Voisihan se tietty olla molemmissa: tietokannassa rivikohtainen suola ja lisäksi conffeissa. Mutta ei nämä kai nyt niin kovin supersalaisia tietoja ole, että maksaako vaivaa. Hetu ei kuitenkaan ole enää yhdistettävissä muihin henkilötietoihin siinä kohtaa niin ei sillä varsinaisesti kai tee mitään.

Päädyin tuohon conffiin tosiaan tuosta syystä, että se on sitten tuolla versiohistoriassa kätevästi jemmassa.

Jees. Se on tosiaan ihan totta että mitään superluottamuksellista dataahan täällä ei ole. Ehkä näin on ihan hyvä; onpahan ainakin tähän hetkeen ihan selkeä. Olkoon tulevaisuuden murheita sitten mahdolliset jatkokehitysideat.

@jrkkp jrkkp marked this pull request as ready for review October 2, 2023 10:25
Copy link
Contributor

@pkoivisto pkoivisto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jos kertaalleen pseudonymisoitu henkilö ilmoittautuu (tai tunnistautuu) uudelleen, päivittyykö hänelle myös tietokantaan asti taas oikeat, ei-pseudonymisoidut henkilötiedot?

@@ -19,6 +19,7 @@ email.service-url=${virkailija.host.alb}/ryhmasahkoposti-service/email/firewall
reservation.duration=PT30M

public-base-url={{vkt_app_url}}
salt={{vkt_salt}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Varmistetaan että eri ympäristöistä (ympäristökohtaiset repot) löytyvät sopivat arvot tälle ennen mergeä.

@@ -88,6 +88,7 @@ COPY public.databasechangelog (id, author, filename, dateexecuted, orderexecuted
2023-06-02-rename-enrollment-status-EXPECTING_PAYMENT mikhuttu migrations.xml 2023-06-02 08:38:57.704377 23 EXECUTED 8:a35dc4c9e0d0d241f4293f0b2ba16224 insert tableName=enrollment_status; sql; sql \N 4.9.1 \N \N 5695137627
2023-06-16-person-latest-identified-at mikhuttu migrations.xml 2023-06-16 09:46:36.462511 24 EXECUTED 8:51d5c16082a3fd83108e9c40e7ae78e6 addColumn tableName=person; sql; addNotNullConstraint columnName=latest_identified_at, tableName=person \N 4.20.0 \N \N 6908796433
2023-06-29-remove-person-identity_number mikhuttu migrations.xml 2023-06-29 09:32:48.572192 25 EXECUTED 8:5b23bce4f54b5583b757ad6bb81c612d dropColumn columnName=identity_number, tableName=person; dropColumn columnName=date_of_birth, tableName=person \N 4.20.0 \N \N 8031168558
2023-08-02-enrollment-is-anonymized mikhuttu migrations.xml 2023-08-02 11:23:02.580439 26 EXECUTED 8:3a3c0039e1c2c3e5a79b4e62612246c1 addColumn tableName=enrollment; dropDefaultValue columnName=is_anonymized, tableName=enrollment \N 4.20.0 \N \N 0975382564
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Onko tää Mikan kommentti edelleen relevantti?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants