From d46520432560f3a19dafb40f0e50a8df61c3337e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 07:06:48 -0400 Subject: [PATCH 1/3] Bump actions/setup-node from 2 to 3 (#226) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f2df9abd9..1c932a2fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -249,7 +249,7 @@ jobs: - name: Checkout Code uses: actions/checkout@v3 - name: Install Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 - name: Get WASM Artifacts From ec84c32fef609b461e3b92b2779dd041d6c2e410 Mon Sep 17 00:00:00 2001 From: Steve Maier <82616727+SteveMaier-IRT@users.noreply.github.com> Date: Fri, 5 May 2023 10:46:58 -0400 Subject: [PATCH 2/3] Moved to the CiphertextBallot and removed the deprecated one (#228) Fixed the order of the number of guardians and quorum for creating a new key ceremony --- .../ElectionGuard.UI/ViewModels/BallotUploadViewModel.cs | 2 +- .../ViewModels/CreateKeyCeremonyAdminViewModel.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/electionguard-ui/ElectionGuard.UI/ViewModels/BallotUploadViewModel.cs b/src/electionguard-ui/ElectionGuard.UI/ViewModels/BallotUploadViewModel.cs index 325583143..23f3ce65c 100644 --- a/src/electionguard-ui/ElectionGuard.UI/ViewModels/BallotUploadViewModel.cs +++ b/src/electionguard-ui/ElectionGuard.UI/ViewModels/BallotUploadViewModel.cs @@ -130,7 +130,7 @@ private async Task Upload() { var filename = Path.GetFileName(currentBallot); var ballotData = File.ReadAllText(currentBallot); - SubmittedBallot ballot = new(ballotData); + CiphertextBallot ballot = new(ballotData); if (ballot.ManifestHash != _manifestHash) { diff --git a/src/electionguard-ui/ElectionGuard.UI/ViewModels/CreateKeyCeremonyAdminViewModel.cs b/src/electionguard-ui/ElectionGuard.UI/ViewModels/CreateKeyCeremonyAdminViewModel.cs index 7f1a8deda..134a61c6f 100644 --- a/src/electionguard-ui/ElectionGuard.UI/ViewModels/CreateKeyCeremonyAdminViewModel.cs +++ b/src/electionguard-ui/ElectionGuard.UI/ViewModels/CreateKeyCeremonyAdminViewModel.cs @@ -1,4 +1,4 @@ -using CommunityToolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Input; using ElectionGuard.UI.Lib.Models; namespace ElectionGuard.UI.ViewModels; @@ -40,7 +40,7 @@ public async Task CreateKeyCeremony() return; } - var keyCeremony = new KeyCeremonyRecord(KeyCeremonyName, Quorum, NumberOfGuardians, this.UserName!); + var keyCeremony = new KeyCeremonyRecord(KeyCeremonyName, NumberOfGuardians, Quorum, this.UserName!); var ret = await _keyCeremonyService.SaveAsync(keyCeremony); var keyCeremonyId = ret.KeyCeremonyId!; await NavigationService.GoToPage(typeof(ViewKeyCeremonyViewModel), new Dictionary From d632cbbff8da23707a747f60507af9a182cb8569 Mon Sep 17 00:00:00 2001 From: Steve Maier <82616727+SteveMaier-IRT@users.noreply.github.com> Date: Mon, 8 May 2023 12:45:13 -0400 Subject: [PATCH 3/3] cleanup the mono indexes (#230) fixed the ballot service --- .gitignore | 1 + src/electionguard-db/mongo-init.js | 23 +++++++++++++++++-- .../Services/Database/BallotService.cs | 11 +++------ .../Services/Database/BallotUploadService.cs | 1 - .../Database/CiphertextTallyService.cs | 2 -- .../Services/Database/ConstantsService.cs | 1 - .../Services/Database/ContextService.cs | 1 - .../Services/Database/DbService.cs | 5 ++-- .../Database/GuardianBackupService.cs | 1 - .../Database/GuardianPublicKeyService.cs | 2 -- .../Database/LagrangeCoefficientsService.cs | 1 - .../Database/PlaintextSpoiledBallotService.cs | 1 - .../Database/PlaintextTallyService.cs | 1 - .../Services/Database/TallyService.cs | 2 -- .../Services/Database/VerificationService.cs | 2 -- 15 files changed, 27 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 380dad2ca..8a357d5fb 100644 --- a/.gitignore +++ b/.gitignore @@ -159,6 +159,7 @@ bindings/netstandard/ElectionGuard/*.user lint-results.xml database/ +!src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database node_modules/ diff --git a/src/electionguard-db/mongo-init.js b/src/electionguard-db/mongo-init.js index 148e2d2fb..69eda8bfe 100644 --- a/src/electionguard-db/mongo-init.js +++ b/src/electionguard-db/mongo-init.js @@ -1,3 +1,22 @@ db.createCollection("key_ceremonies"); -db.key_ceremonies.createIndex({ completed_at: 1 }); -db.key_ceremonies.createIndex({ key_ceremony_name: 1 }); +db.createCollection("elections"); +db.createCollection("ballots"); +db.createCollection("tallies"); + +db.key_ceremonies.createIndex({ KeyCeremonyId: 1, DataType: 1 }); +db.key_ceremonies.createIndex({ KeyCeremonyId: 1, DesignatedId: 1, DataType: 1 }); +db.key_ceremonies.createIndex({ KeyCeremonyId: 1, GuardianId: 1, DataType: 1 }); +db.key_ceremonies.createIndex({ State: 1, DataType: 1 }); + +db.elections.createIndex({ ElectionId: 1, DataType: 1 }); +db.elections.createIndex({ Name: 1, DataType: 1 }); + +db.ballots.createIndex({ ElectionId: 1, DataType: 1 }); +db.ballots.createIndex({ UploadId: 1, DataType: 1 }); +db.ballots.createIndex({ BallotCode: 1, DataType: 1 }); +db.ballots.createIndex({ SerialNumber: 1, ElectionId: 1, DataType: 1 }); + +db.tallies.createIndex({ Name: 1, DataType: 1 }); +db.tallies.createIndex({ ElectionId: 1, DataType: 1 }); +db.tallies.createIndex({ TallyId: 1, DataType: 1 }); +db.tallies.createIndex({ State: 1, DataType: 1 }); diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotService.cs index 35a974532..518918444 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotService.cs @@ -50,16 +50,12 @@ public async Task BallotExists(string ballotCode) } /// - /// Check to see if the ballot has already been included + /// Get a ballot based on its ballot code /// /// ballotcode to find - public async Task GetByBallotCodeAsync(string ballotCode) + public async Task GetByBallotCodeAsync(string ballotCode) { - var filterBuilder = Builders.Filter; - var filter = filterBuilder.And(filterBuilder.Eq(Constants.BallotCode, ballotCode)); - - var ballotCount = await CountByFilterAsync(filter); - return ballotCount > 0; + return await GetByFieldAsync(Constants.BallotCode, ballotCode); } /// @@ -73,5 +69,4 @@ public async Task DeleteByBallotCodeAsync(string ballotCode) await MarkAsDeletedAsync(filter); } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotUploadService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotUploadService.cs index ed0856041..b8bf59187 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotUploadService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/BallotUploadService.cs @@ -35,5 +35,4 @@ public async Task DriveUsed(long serialNumber, string electionId) var uploadCount = await CountByFilterAsync(filter); return uploadCount > 0; } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/CiphertextTallyService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/CiphertextTallyService.cs index 8a3295c7e..bd175ee69 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/CiphertextTallyService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/CiphertextTallyService.cs @@ -1,5 +1,4 @@ using ElectionGuard.UI.Lib.Models; -using MongoDB.Driver; namespace ElectionGuard.UI.Lib.Services; @@ -26,5 +25,4 @@ public class CiphertextTallyService : BaseDatabaseService { return await GetByFieldAsync(Constants.TallyId, tallyId); } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ConstantsService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ConstantsService.cs index 6bd02c1e1..e0b018843 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ConstantsService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ConstantsService.cs @@ -25,5 +25,4 @@ public class ConstantsService : BaseDatabaseService { return await GetByFieldAsync(Constants.ElectionId, electionId); } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ContextService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ContextService.cs index 5be86ec19..1c8bebf9d 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ContextService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/ContextService.cs @@ -25,5 +25,4 @@ public class ContextService : BaseDatabaseService { return await GetByFieldAsync(Constants.ElectionId, electionId); } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/DbService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/DbService.cs index 9da721c57..9711ef998 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/DbService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/DbService.cs @@ -147,10 +147,9 @@ public static bool Ping() } var server = client.Cluster.Description.Servers.FirstOrDefault(); - return ( + return server is not null && server.HeartbeatException is null && - server.State == ServerState.Connected - ); + server.State == ServerState.Connected; } } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianBackupService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianBackupService.cs index 747bd5f57..0307ab667 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianBackupService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianBackupService.cs @@ -66,5 +66,4 @@ public async Task CountAsync(string keyCeremonyId, string guardianId) return await CountByFilterAsync(filter); } - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianPublicKeyService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianPublicKeyService.cs index 5df14b788..ab6f18b2a 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianPublicKeyService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/GuardianPublicKeyService.cs @@ -71,6 +71,4 @@ public async Task CountAsync(string keyCeremonyId) var list = await GetAllByFilterAsync(filter); return list.FirstOrDefault(); } - - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/LagrangeCoefficientsService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/LagrangeCoefficientsService.cs index fd646b80d..1bf1dcab0 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/LagrangeCoefficientsService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/LagrangeCoefficientsService.cs @@ -1,5 +1,4 @@ using ElectionGuard.UI.Lib.Models; -using MongoDB.Driver; namespace ElectionGuard.UI.Lib.Services; diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextSpoiledBallotService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextSpoiledBallotService.cs index 4734dbabf..ef7bbe759 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextSpoiledBallotService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextSpoiledBallotService.cs @@ -1,5 +1,4 @@ using ElectionGuard.UI.Lib.Models; -using MongoDB.Driver; namespace ElectionGuard.UI.Lib.Services; diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextTallyService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextTallyService.cs index 1a738cc9b..562740694 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextTallyService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/PlaintextTallyService.cs @@ -1,5 +1,4 @@ using ElectionGuard.UI.Lib.Models; -using MongoDB.Driver; namespace ElectionGuard.UI.Lib.Services; diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/TallyService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/TallyService.cs index 3eea95d35..aa9741617 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/TallyService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/TallyService.cs @@ -58,6 +58,4 @@ virtual public async Task UpdateCompleteAsync(string tallyId) await UpdateAsync(filter, update); } - - } diff --git a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/VerificationService.cs b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/VerificationService.cs index 9b4dd1f03..85cc4573e 100644 --- a/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/VerificationService.cs +++ b/src/electionguard-ui/ElectionGuard.UI.Lib/Services/Database/VerificationService.cs @@ -49,6 +49,4 @@ public async Task CountAsync(string keyCeremonyId) return await CountByFilterAsync(filter); } - - }