Skip to content

Latest commit

Β 

History

History
1647 lines (873 loc) Β· 32.2 KB

CHANGELOG.md

File metadata and controls

1647 lines (873 loc) Β· 32.2 KB

✨ Changelog (v2.6.7)

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Version Info

This version -------- v2.6.7
Previous version ---- v1.121.5
Initial version ----- v1.121.5
Total commits ------- 390

[v2.6.7] - 2024-04-16

πŸ”„ Changed

  • change ech-0045 address mapping fallback logic

[v2.6.6] - 2024-04-15

πŸ”„ Changed

  • assert duplicated persons with same ahvn13 in person import

[v2.6.5] - 2024-04-15

πŸ”„ Changed

  • update ech-0045 mapping and alliance name for loganto subsystem.

[v2.6.4] - 2024-04-08

πŸ”„ Changed

  • import doi address for "no correspondence" persons

[v2.6.3] - 2024-04-03

πŸ”„ Changed

  • add whitespace validation for person entity

[v2.6.2] - 2024-04-02

πŸ”„ Changed

  • prevent mapping of invalid circles to a person

[v2.6.1] - 2024-03-28

πŸ”„ Changed

  • enable e-voter flag in ech-0045 export for Swiss abroad
  • update test data to add support for Swiss abroad e-voters

[v2.6.0] - 2024-03-28

πŸ”„ Changed

  • don't write bfs statistics during cobra import

[v2.5.2] - 2024-03-28

πŸ”„ Changed

  • extend entity mapper to apply lifecycle data

[v2.5.1] - 2024-03-28

πŸ”„ Changed

  • update district category mapping in innosolv importer.

[v2.5.0] - 2024-03-28

πŸ”„ Changed

  • refactor import

[v2.4.0] - 2024-03-26

πŸ†• Added

  • evoting registration dashboard

[v2.3.0] - 2024-03-19

πŸ†• Added

  • add support for foreign delivery addresses

[v2.2.8] - 2024-03-19

πŸ”„ Changed

  • allow to skip forwarding of e-voter flag by municipality id configuration

[v2.2.7] - 2024-03-15

πŸ”„ Changed

  • extend filter input validation

[v2.2.6] - 2024-03-14

πŸ”„ Changed

  • add relegion for swiss person type in ech-0045 export

[v2.2.5] - 2024-03-14

❌ Removed

  • remove deprecated person signature

πŸ”„ Changed

  • extend person identification criteria in e-voting registration

πŸ”’ Security

  • dependency and runtime patch policy
  • use latest dotnet runtime v8.0.3

πŸ”„ Changed

  • re-introduce 'Ki' doi type for acl layer.

πŸ”„ Changed

  • remove unused doi type 'Ki'

πŸ†• Added

  • check for dublicated SourceSystemId in the importfile for all import types.
  • unique constraint for SourceSystemId, SourceSystemName and VersionCount.

πŸ†• Added

  • API Authorization Integration Tests

πŸ”„ Changed

  • remove expression based implementation for calculated filters

πŸ†• Added

  • Update voting library to register dll import resolver for pkcs11 driver

BREAKING CHANGE: Updated service to .NET 8 LTS.

πŸ”„ Changed

  • update to dotnet 8

πŸ”’ Security

  • apply patch policy

πŸ†• Added

  • database query monitoring

πŸ†• Added

  • add filter tenant name

πŸ”„ Changed

  • add missing district mappings in innosolv import.

πŸ”„ Changed

  • update entity validation for doi type 'OG' to max. length 50 according to eCH-0011 v8.1

πŸ”„ Changed

  • update license copyright

πŸ”„ Changed

  • Random Webservice with Mockdatagenerator at loganto and cobra

❌ Removed

  • remove deprecated canton address attribute

❌ Removed

  • remove deprecated house number suplement from kewr adapter.

πŸ”„ Changed

  • csv doi and person import errors

πŸ†• Added

  • add eCH from voting lib

πŸ”„ Changed

  • adjust log level for abraxas authentication values

πŸ”„ Changed

  • remove required statements in model builder, update parameter constraints.

πŸ”„ Changed

  • use separate port for metrics endpoint provisioning

πŸ”„ Changed

  • extended anonymization tool for test data

πŸ”„ Changed

  • static code analysis refinment

πŸ†• Added

  • add tests for all filter criteria

πŸ”„ Changed

  • update solution and projects to align with hexagonal architecture requirements
  • update architecture tests (ArchUnit) to align with solution design refactoring.

πŸ”„ Changed

  • exclude ACL children in query to prevent conflicts in entity framework changetracker when updating entities that may have 0..* children set in the navigation property.

πŸ”’ Security

  • decouple port for metrics endpoint from the default application port mapping

πŸ†• Added

  • apply service account scopes client credential flow

πŸ”„ Changed

  • import file tests

πŸ†• Added

  • add cobra mock generator

πŸ”„ Changed

  • exclude tools from bbt deployment

πŸ”„ Changed

  • map innosolv contact address from residence if no contact address is available

πŸ†• Added

  • add allowed person import source system config

πŸ”„ Changed

  • stream persons during rename filter version

πŸ”„ Changed

  • change evoting person nationality to country name short

πŸ”„ Changed

  • ignore acl for evoting person search

πŸ”„ Changed

  • extend continuous deployment pipeline with BBT and UAT jobs.
  • updated ci-cd templates to v1.8.8

πŸ”„ Changed

  • extend filter version signature and verify before renaming

❌ Removed

  • remove enum check constraints

πŸ†• Added

  • add setting to disabled loganto and kewr for eVoting

πŸ”„ Changed

  • replace filter reference id with enum

πŸ”„ Changed

  • deleting a person creates a new version of the person

πŸ†• Added

  • add residence permit dates to innosolv mock generator

πŸ”„ Changed

  • is voting allowed only for valid move in arrival dates

❌ Removed

  • remove age from person model

πŸ†• Added

  • add contact address post office box number

πŸ”„ Changed

  • mock data generator target file for swiss abroads

πŸ†• Added

  • compress queued files with gzip due to huge size of xml files

πŸ†• Added

  • add innosolv file verify command

πŸ†• Added

  • innosolv mock data generator

πŸ”„ Changed

  • pre-assign person-doi ids to calculate correct signature on first import

πŸ†• Added

  • add innosolv support

πŸ”„ Changed

  • verify csv export signature of persons without a filter version

πŸ”„ Changed

  • verify ech export signature of persons without a filter version

πŸ”„ Changed

  • stream csv exports
  • verify signature if exporting a filter version as csv

πŸ”„ Changed

  • Verify filter version signature in eCH exports

πŸ”„ Changed

❌ Removed

  • remove deprecated job extensions

πŸ”„ Changed

  • updated ci-cd template version

❌ Removed

  • removed vulnerable library System.Linq.Dynamic.Core

πŸ”’ Security

  • activate strict policy for dependency check

πŸ”„ Changed

  • set started date same as created date for acl import
  • set modified date when updated for acl import
  • set service user name as default when no user scope is available

πŸ”„ Changed

  • extend 'nicht zustellen' rule nΒ°3 with additional municipality exception behavior.

πŸ”„ Changed

  • extend e-voting exception messages with additional subsystem details.

πŸ”„ Changed

  • Update lib dependency to deterministic version

πŸ”„ Changed

  • exclude deleted persons from bfs integrity

πŸ”„ Changed

  • secure code review security refinments

πŸ”„ Changed

  • adjust cryptographic naming conventions

πŸ”„ Changed

  • stream persons when creating filter versions

πŸ”„ Changed

  • map cobra house number addition to entities dwelling number
  • validate dwelling number to max length of 10 according to eCH
  • validate house number to max length of 12 according to eCH
  • reduce lenght of contact address zip code for foreign codes to 15 according to eCH

πŸ†• Added

  • extend import statistics with AES cipher metadata crypto parameters.

πŸ”„ Changed

  • adjust naming for security operations (classes, methods, etc.).
  • make AES cipher metadata independent from the cryptographic implementation itself.

πŸ”’ Security

  • store AES and MAC attributes as separate cryptographic parameters on database.
  • generate cryptographic attributes IV, AES key and MAC key using save random number generator.
  • the MAC key is now encrypted by the HSM with AES before being saved on the database.

πŸ”„ Changed

  • Set SendVotingCardsToDomainOfInfluenceReturnAddress flag according to updated specification

πŸ†• Added

  • check dateofbirth DateOnly.MinValue for voting rights

πŸ”„ Changed

  • changed RulesForDates (RuleForDateOfBirthType)

❌ Removed

  • remove contact address house number addition attribute and filter

πŸ”’ Security

  • signature breaking change

πŸ”„ Changed

  • add fallback strategy for eCh-0045 address assignment

πŸ”„ Changed

  • map residency valid from/to only for foreigners

πŸ”„ Changed

  • map alliance name and call name in ech export

πŸ”„ Changed

  • evaluate actual number of registered e-voters

πŸ”„ Changed

  • compare entities during import instead of comparing record against entity
  • remove person reactivate logic
  • if a person was soft deleted but reoccurs in the import, create a new revision instead of reactivating all old revisions
  • store dois on person during import

πŸ”„ Changed

  • abort request when ech file streaming fails to notify the client/browser of the failure

πŸ”„ Changed

  • add voting place to ech exports

πŸ”„ Changed

  • add missing school circle filter references to calculated fields evaluation

πŸ”„ Changed

  • update library with AES-GCM hotfix

πŸ”’ Security

  • protect against signature payload attribute shift vulnerability

πŸ”„ Changed

  • update eCH-0045 mapping rules and entity input validators.

πŸ”’ Security

  • Secure code review refinments

also clean up age related code

also clean up the loganto and kewr services

πŸ†• Added

  • add filter metadata endpoint

πŸ”„ Changed

  • count invalid persons

πŸ”„ Changed

  • apply fallback mapping for language of correspondence in eCH-0045 export

πŸ”„ Changed

  • remove voting right criteria for canton

πŸ”„ Changed

  • use cached canton enabled evoters lookup instead of municipality bfs

πŸ”„ Changed

  • changed ProtoVersion
  • changed integration test

πŸ”’ Security

  • separate authentication and access control provisioning.

πŸ†• Added

  • npgsql command timeout setting

πŸ†• Added

  • configure bbt pipeline and quality gates

πŸ”„ Changed

  • person should only be hashed in bfs integrity

πŸ”„ Changed

  • disable person signature validation on filter creation

πŸ”„ Changed

  • server timing

πŸ”„ Changed

  • eVoting filter and sync

πŸ†• Added

  • verify signatures when creating filter versions

πŸ”„ Changed

  • Output detailed error messages (processing errors) only for the ImportObserver role

πŸ†• Added

  • last used parameters api

πŸ”„ Changed

  • TransactionUtil(deprecated) replaced with DbContext.Database.BeginTransactionAsync

πŸ”„ Changed

  • PersonLogantoMappingProfile
  • PersonCobraMappingProfile
  • CobraUtil
  • LogantoUtil

πŸ”„ Changed

  • map contact address lines for swiss abroad according to the eai tool

πŸ”„ Changed

  • ensure that residence permits with length lower than 2 could be mapped

❌ Removed

  • RuleForSexType
  • RuleForReligionType
  • RestrictedVotingAndElectionRightFederation

πŸ†• Added

  • source system name added to PersonEntity

πŸ”„ Changed

  • Cobra Person import, Loganto Person and DOI import with source system name extended

πŸ”„ Changed

  • return id when creating new filter version id

πŸ”„ Changed

  • improve filter version creation ressource consumption by loading only required data once

πŸ”„ Changed

  • additionally validate municipality id against whitelist config in case of swiss foreign source system
  • add gauge to monitor mutuaded datasets count

πŸ†• Added

  • add get single filter version api endpoint

πŸ”„ Changed

  • speed up import person query by disabling acl check and adding an index

πŸ”„ Changed

  • use database transaction instead of ambient transaction to fix weird timing bug where transaction was not yet fully committed after complete call
  • don't override import statistics municipality id with null on import failure

πŸ”„ Changed

  • ensure metrics are initialized at startup to better distinguish between not initialized and no data

πŸ”„ Changed

  • update last updated on integrity update

πŸ”„ Changed

  • read person actuality from bfs integrities

πŸ”„ Changed

  • update SendVotingCardsToDomainOfInfluenceReturnAddress correctly

πŸ”„ Changed

  • add SendVotingCardsToDomainOfInfluenceReturnAddress field on person

πŸ”„ Changed

  • fixes a bug when creating and processing imports which occasionally crashes the service due to the transaction not fully completed when fetching and processing the import job

πŸ”„ Changed

  • optimize import statistics queries

πŸ”„ Changed

Fixed four major bugs

  • Refactor the containing loop to do more than one iteration. (src/Voting.Stimmregister.Adapter.Loganto/Services/BaseDomainOfInfluenceImportService.cs)
  • Refactor the containing loop to do more than one iteration. (src/Voting.Stimmregister.Adapter.Loganto/Services/BasePersonImportService.cs)
  • Remove the 'using' statement; it will cause automatic disposal of 'aes'. (src/Voting.Stimmregister.Core/Services/Supporting/Signing/AesStreamEncryption.cs)

πŸ†• Added

  • store tenant id on filter entity

πŸ”„ Changed

  • only store first two chars of the residence permit

πŸ†• Added

  • new entity validation for mandatory bfs number in acl import

πŸ”„ Changed

  • assign bfs identification number from person doi for eCH-0045 export

❌ Removed

  • remove religion from eCH-0056 export

πŸ†• Added

  • cobra import extended with nationality and municipality name

πŸ”„ Changed

  • extended existing unit tests

πŸ”’ Security

  • avoid raw records in log when bad data detected

πŸ”„ Changed

  • include swiss abroad person property in grpc api response

πŸ†• Added

  • extend eCH-0045 export with additional authorization rules

πŸ”„ Changed

  • extended existing integration tests

❌ Removed

  • cleanup unused snapshots

πŸ”„ Changed

  • allow search with formatted social security number

πŸ”„ Changed

  • Various changes due to SonarQube code smell
  • Sufix "Enum" removed from all enums

πŸ”„ Changed

  • fix(VOTING-3088): support formatted social security number filters

πŸ”„ Changed

  • nationality filter

πŸ”„ Changed

  • correct age filter operations on date of birth

πŸ”„ Changed

  • map domain of influences in eCH-0045 export
  • change residence permission comparison so that only first two digits are checked
  • only include persons from the last revision and not deleted for the eCH-0045 export

πŸ”„ Changed

  • fix voting right evaluation for filter versions

πŸ†• Added

  • add domain of influence entity validation for circle names to report invalid circle references

πŸ”„ Changed

  • enrich person with additional domain of influences

πŸ”„ Changed

  • return id when saving a filter

πŸ”„ Changed

  • include whole import data set in integrity checksum
  • iclude import source and type into integrity entity to distinguish persons and dois
  • rename integrity table to BfsIntegrities

πŸ”„ Changed

  • include filter references in query only if reqired for further processing
  • ensure transaction safety
  • configured detete behavior according to data model definition
  • add unique constraint for filter criteria reference id
  • implement crud for filter criteria
  • ensure filter version can only be saved if user has access to passed filter

πŸ”„ Changed

  • sort filter versions by deadline descending

πŸ”„ Changed

  • adjust duplicated filter name

πŸ”„ Changed

  • replace person streaming methods to use PersonEntity instead of PersonEntityModel

❌ Removed

  • remove unused model mapping statements

πŸ”„ Changed

  • OrignName(1-7), OriginCanton(1-7) and all CircleId undCircleName fields from PersonDoi

❌ Removed

  • Remove "Alter"/"Age" from CSV export (decision by customer) (VOTING-2990)

πŸ”„ Changed

  • map audit info from job to integrity audit info

❌ Removed

  • remove audit info from doi and acl table since info is available on connected import statistic

πŸ”„ Changed

  • apply null substitution for nullable audit info attributes

πŸ†• Added

  • restrict access to statistic data by access control list and new import observer role

πŸ†• Added

  • add signature for domain of influences

πŸ”„ Changed

  • ensure already soft deleted persons are not deleted again
  • set delete count to the grouped register id and not to every person version
  • add reactivate count to datasets created count since this would reflect the number of delivered datasets compared to the history

πŸ”„ Changed

  • use transaction scope to bundle db updates and ensure rollback

πŸ”„ Changed

  • peek bfs from created file since resetting mulipart request stream position is not possible

πŸ”„ Changed

  • update voting right evaluation based on nationality

πŸ”’ Security

  • update api authorization configuration

πŸ”„ Changed

  • read bfs from import file before queuing
  • reject import when bfs not in acl for user if not service user

πŸ”„ Changed

  • modified audit info migration to cover null value constraints

πŸ†• Added

  • store municipality name on the import stats

πŸ†• Added

  • add manual importer role for cobra import endpoint

❌ Removed

  • remove unused role check functions

πŸ”’ Security

  • Added authentication verification for file encryption

πŸ”„ Changed

  • add audit info

πŸ”„ Changed

  • load latest filter version for filters

πŸ”„ Changed

  • cleanup filter grpc and service implementation

❌ Removed

  • Unused userId field in FilterEntity

❌ Removed

  • remove deprecated import configs

πŸ”„ Changed

  • correct saving of filter criterias

πŸ”„ Changed

  • fixed ignored filter version and filter criteria mappings

πŸ”„ Changed

  • compare against mapped domain of influence circle id if doi reference is available

πŸ†• Added

  • added unit tests for voting right use cases

πŸ”„ Changed

  • update evaluation for canton voting right

πŸ†• Added

  • extend metrics
  • use static diagnostics class for metrics registrations

πŸ”„ Changed

  • get canton by bfs number filter by doi type bfs.

πŸ”„ Changed

  • import statistics list only return latest for each municipality id

πŸ”„ Changed

  • refine and fix open todo's

πŸ”„ Changed

  • use utf8 as default encoding since import files switched from latin1 to utf8

❌ Removed

  • remove old import file model with static encoding default set since it was only used within tests

πŸ”„ Changed

  • Copyright 2022 to 2023

πŸ”„ Changed

  • Moved Entities from Abstractions.Adapter.Data to Domain

❌ Removed

  • remove import service since it has been replaced by rest endpoints

πŸ”„ Changed

  • set abx auth in importers if no authentication is present

πŸ”„ Changed

  • sort person domain of influences

πŸ†• Added

  • SonarQube rule for exceptions added

❌ Removed

  • Removed the Serializable attribute and the constructor (SerializationInfo, StreamingContext) for all exceptions.

πŸ”„ Changed

  • set createdDate/createdBy for integrity entities

πŸ†• Added

  • Return domain of influences when querying latest single person

πŸ†• Added

  • check municipality id against acl on import

πŸ”„ Changed

  • fix import statistics table on data view

πŸ”„ Changed

  • change enum column to be stored as a string
  • regenerate InitTables migration
  • create InitConstraints migration and add existing and new constraints (i.e. CantonEnum, SexTypesEnum, ...)

πŸ”„ Changed

  • regenerate all db migrations

πŸ†• Added

  • canton validation logic

πŸ†• Added

  • set manual upload flag

πŸ†• Added

  • integration test for deleting filter version with version persons

πŸ”„ Changed

  • fix municipality id validation in Proto and set municipality id on failed imports

πŸ”„ Changed

  • rm HasProcessingErrors from ImportStatistics

πŸ”„ Changed

  • fix Cobra import IsUpdateRequired method for origin information
  • problem was when there was no person DOI information in file and DB a new person version was created

πŸ”„ Changed

  • Use paging from voting.lib

πŸ†• Added

  • Person Entity with field countrynameshort extended

πŸ”„ Changed

  • ech replace residence entry date with move in arrival date

πŸ”„ Changed

  • split filter save version to create / rename version

πŸ”„ Changed

  • remove signature of PersonDoiEntity and calculate PersonDoi fields to PersonEntity signature

πŸ”„ Changed

  • technical debt: strict seperation between id and register id for person

πŸ”„ Changed

  • add rest endpoint for doi import
  • refactor doi import

πŸ†• Added

  • add "language of correspondence" to Loganto import

πŸ”’ Security

  • Added file encryption when saving temp file for import

πŸ”„ Changed

  • input validation on "origin" and on "on canton"

πŸ”„ Changed

  • fix concurrency issues in domain of influence to person mapping
  • grab domain of influences once and use a dictionary for faster lookup for mapping
  • fix ResidencePermitValidTill date comparison to use last day of month
  • fix for mapping and comparison of circle information for person doi

πŸ”„ Changed

  • include filter criterias for filter version to display on the filter version overview

πŸ”„ Changed

  • version of VotingRegisterProtoVersion adjusted to 1.26.4

❌ Removed

  • remove unused religions

πŸ”„ Changed

  • ensure test result ordering

πŸ†• Added

  • integration tests for the changes

πŸ”„ Changed

  • normalize DOI information (circle id's & circle names & origin & oncanton)
  • reimplement filters, mappings for origin, oncanton, circle ids and circle names
  • adapt validations, mappings, import, export, change detection

πŸ†• Added

  • setup hsm configuration and drivers

πŸ”„ Changed

  • change image runtime from alpine to bullseye slim

πŸ”„ Changed

  • fix findings out of business rule and database review
  • adjust PostOfficeBox naming convention according to eCH-0010 naming convention
  • update cobra mapping for PostOfficeBox

πŸ†• Added

  • country-iso-helper-service implemention by loganto import
  • loganto unittest (PersonImportServiceUnitTest; "WhenUserWithCountryImported_ShouldCreateNewVersion")

πŸ”„ Changed

  • PersonEntity with the field country short name extended

πŸ”’ Security

  • apply acl post-processing impersonation during person and doi import

πŸ”„ Changed

  • check for control characters in record validation for loganto for one specific field which has no validation in source system

πŸ”„ Changed

  • filter operator and types as enums

πŸ”„ Changed

  • Enum columns

πŸ”„ Changed

  • Minor changes in voting rules

πŸ†• Added

  • Add Rules for voting right

πŸ†• Added

πŸ”„ Changed

  • snapshots

πŸ†• Added

  • add filter save version integration tests

πŸ”„ Changed

  • only save name, modified date, modified by for update

πŸ”„ Changed

  • delete filter version persons on delete filter version

πŸ†• Added

  • add cobra person import
  • add cobra import tests
  • set swiss abroad flag statically for imports from cobra

πŸ”„ Changed

  • refactor person import common parts

πŸ”„ Changed

  • replace singleton MemoryCacheEntryOptions with config object

πŸ†• Added

  • Flag for canton is valid for voting rights

πŸ”„ Changed

  • Calculate age by reference key date

πŸ†• Added

  • add Bfs country iso helper service (BFSCountryList.xml)
    • The BFS number of the country name is used to search for the ISO2 code, and returned.
  • add Loganto country iso helper service (LogantoCountryList.xml)
    • With the Loganto country code the ISO2 code is searched and returned with the short name.

πŸ†• Added

  • add filter count to cache

❌ Removed

  • remove filter count from database

πŸ”„ Changed

  • REST API to upload loganto person imports
  • File System queue of loganto person imports

πŸ”„ Changed

  • change fluent validations for better validation messages
  • adapt tests

πŸ†• Added

  • Add new mapping in EK import for canton abbreviation

πŸ†• Added

  • add indicator of whether the date of birth is valid for the right to vote

πŸ”’ Security

  • Added signing of entities Person, Integrity, FilterVersions

πŸ†• Added

  • unit tests for PersonEntityValidator

πŸ†• Added

  • person import ech validation

πŸ†• Added

  • Return person validation errors

πŸ†• Added

  • add record identifier to RecordValidationErrorModel

πŸ†• Added

  • DB index and constraint added on (RegisterId, IsLatest) combination on table Persons

πŸ†• Added

  • add filter reference id for "HasValidationErrors" mapped to !IsValid

πŸ†• Added

  • unittest for person search (GetAll)
  • integrationstest for person search

πŸ”„ Changed

  • rm unused classes
  • use ef fluent api configurations

πŸ”„ Changed

  • set import user context on import statistics instead of static source system identifier

❌ Removed

  • remove unused field from import statistics table
  • remove created, modified, deleted by fields from person entity since the reference to the latest importstatistic is sufficient

πŸ”„ Changed

  • set filter grpc service roles and adapt Integration tests

πŸ”„ Changed

  • read csv records async instead of reading them all into a list first
  • fix typo in method signature
  • move state modification operations to state model
  • add dicionaries for faster existing person lookups
  • expose state modification methods for privatly accesable state lists on the state class
  • add transaction for db modifications
  • only load latest versions for processing and soft delete persons versions at the end

πŸ”„ Changed

  • fix FK problem when deleting filter version
  • fix query filter for filter criteria

πŸ”„ Changed

  • eCH contact address town as residenc address town fallback

πŸ”„ Changed

  • eCH should support foreigners

πŸ”„ Changed

  • add HasUtcConversion in FilterVersionBuilder and fix snapshots

πŸ†• Added

  • ech 0045 export

πŸ”„ Changed

  • Get always the latest people by person repository

πŸ”„ Changed

  • aligned import type id to proto exact enum
  • update proto including circle id type changes from int to string
  • disable test parallelization for tests writing into database

πŸ†• Added

  • Integration tests for filter grpc service

πŸ”„ Changed

  • fix unittests

πŸ”„ Changed

  • Result model for person by ID. Gets only the latest person data

πŸ†• Added

  • add person import historization

πŸ”„ Changed

  • modified Person Entity model according to new requirements
  • updated Snapper and Newtonsoft to get DateOnly support

πŸ”„ Changed

  • Fixed SonarQube issues in Core, Adapter and Tests

πŸ†• Added

  • add municipality id to filter save and duplicate

πŸ”„ Changed

  • add pre calculated count field for filter version and populate it on save

πŸ”„ Changed

  • combined filter service / filter repository / person service / person repository for a working version

πŸ†• Added

  • add filter operator seed data

πŸ”„ Changed

  • fixed unit tests for FilterProfile and PersonProfile

πŸ”„ Changed

  • Calculate person search age always with day date

πŸ†• Added

  • Workaround logic for case insensitive person search string comparison

πŸ†• Added

  • added count to Filter table / entity / model

πŸ†• Added

  • add icu libs to runtime image to get culture support

πŸ”„ Changed

  • use valid culture modifier

❌ Removed

  • removed dependencies to Voting.Lib.Rest and VotingExports from domain layer

πŸ”„ Changed

  • fix error that filter version were not saved and loaded properly

πŸ†• Added

  • person search pagination validation

πŸ†• Added

  • add csv export for person filter versions
  • add new exporter role

πŸ”„ Changed

  • update csv helper

πŸ†• Added

  • CRUD for filter version
  • CRUD for filter criteria
  • CRUD for filter

πŸ†• Added

  • added additional filter for people search

πŸ”’ Security

  • Added query filters

πŸ†• Added

Add latest version id to PersonModel for filter features.

πŸ”„ Changed

  • Clean SonarQube issues

πŸ†• Added

Add GetByFilterId to IPersonService interface

πŸ†• Added

  • person search filter for age
  • person search GetByFilterId

πŸ”„ Changed

  • some generic expression logic

πŸ”„ Changed

  • make acl synchronization configurable for grpc web or grpc

πŸ†• Added

  • handle further data types and operators for person search

πŸ†• Added

  • add optional evoter limitation on municipality level

πŸ†• Added

  • add single person search service with prepared version support

πŸ†• Added

  • add minimal person search logic

πŸ”„ Changed

  • resolve issue in e-voting unregistraiton model assignment.

πŸ†• Added

  • integrate eService into stimmregister service

πŸ”„ Changed

  • ignore path handling

πŸ”„ Changed

  • fix default cron-tab schedule syntax.

πŸ”’ Security

  • add domain of influence based access control list importer.
  • add access control list DOI synchronization with VOTING Basis.
  • add access control list DOI security layer for domain of influence and person data sets.

πŸ†• Added

  • add request logging

πŸ”„ Changed

  • refactor import

πŸ”’ Security

  • update nuget packages

πŸ†• Added

  • add person service including mock data
  • introduce auto mapper
  • fixed authorization
  • fixed cert pinning

πŸ†• Added

  • person grpc service
  • person service draft
  • person grpc service test

πŸ†• Added

  • added database entities for person import

❌ Removed

  • removed coding examples

πŸ†• Added

  • architecture test project
  • google protobuf package ref

❌ Removed

  • architecture tests

❌ Removed

  • remove unused packages

πŸ”„ Changed

  • try build twice

πŸ”„ Changed

  • update test package references

πŸ”„ Changed

  • update Google.Protobuf version to 3.19.1

πŸ†• Added

  • assembly Google.Protobuf explicitly

πŸ†• Added

  • additional swagger gen settings

πŸ†• Added

  • Integration test setup

πŸ†• Added

  • Unit tests for core module
  • Renamed integration tests project

πŸ†• Added

  • Solution architecture tests

πŸ”„ Changed

  • Resolved SonarQube code smells

πŸ”’ Security

  • use connection string builder for dummy connection string
  • reviewed hard-coded credential which is okay here since it is only a dummy one used at design time

πŸ†• Added

  • CORS configuration support

πŸ†• Added

  • Loganto Adapter Init

[v2.2.4] - 2024-03-14

πŸ”„ Changed

  • extend person identification criteria in e-voting registration

[v2.2.3] - 2024-03-13

πŸ”’ Security

  • dependency and runtime patch policy
  • use latest dotnet runtime v8.0.3

[v2.2.2] - 2024-03-01

πŸ”„ Changed

  • re-introduce 'Ki' doi type for acl layer.

[v2.2.1] - 2024-03-01

πŸ”„ Changed

  • remove unused doi type 'Ki'

[v2.2.0] - 2024-02-28

πŸ†• Added

  • check for dublicated SourceSystemId in the importfile for all import types.
  • unique constraint for SourceSystemId, SourceSystemName and VersionCount.

[v2.1.0] - 2024-02-20

πŸ†• Added

  • API Authorization Integration Tests

πŸ”„ Changed

  • remove expression based implementation for calculated filters

[v2.0.1] - 2024-02-14

πŸ†• Added

  • Update voting library to register dll import resolver for pkcs11 driver

[v2.0.0] - 2024-02-12

BREAKING CHANGE: Updated service to .NET 8 LTS.

πŸ”„ Changed

  • update to dotnet 8

πŸ”’ Security

  • apply patch policy

[v1.123.0] - 2024-02-06

πŸ†• Added

  • database query monitoring

[v1.122.0] - 2024-02-06

πŸ†• Added

  • add filter tenant name

[v1.121.7] - 2024-02-05

πŸ”„ Changed

  • add missing district mappings in innosolv import.

[v1.121.6] - 2024-02-01

πŸ”„ Changed

  • update entity validation for doi type 'OG' to max. length 50 according to eCH-0011 v8.1

[v1.121.5] - 2024-01-31

πŸŽ‰ Initial release for Bug Bounty