< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Command.Output.AnonymiseExpiredDeletionsCommandOutput
Assembly: ArturRios.Heimdall.Command
File(s): /home/ci/agent/workspace/heimdall-api-docs_main/app/src/Application/ArturRios.Heimdall.Command/Output/AnonymiseExpiredDeletionsCommandOutput.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 49
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 7
Fully covered methods: 7
Total methods: 7
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_PersonsAnonymised()100%11100%
get_GoogleUsersAnonymised()100%11100%
get_DependentsRemoved()100%11100%
get_AnonymisedIds()100%11100%
get_ScopeOwnerInvitationsVoided()100%11100%
get_Backlog()100%11100%
get_TotalAnonymised()100%11100%

File(s)

/home/ci/agent/workspace/heimdall-api-docs_main/app/src/Application/ArturRios.Heimdall.Command/Output/AnonymiseExpiredDeletionsCommandOutput.cs

#LineLine coverage
 1using ArturRios.Mediator.Command;
 2
 3namespace ArturRios.Heimdall.Command.Output;
 4
 5/// <summary>
 6///     Result of <see cref="Input.AnonymiseExpiredDeletionsCommand" />: how many identities the run
 7///     anonymised. Zero is an ordinary successful run.
 8/// </summary>
 9public class AnonymiseExpiredDeletionsCommandOutput : CommandOutput
 10{
 11    /// <summary>Persons anonymised.</summary>
 16612    public int PersonsAnonymised { get; set; }
 13
 14    /// <summary>Google Users anonymised.</summary>
 5415    public int GoogleUsersAnonymised { get; set; }
 16
 17    /// <summary>Dependent rows removed alongside them — tokens and two-factor configurations.</summary>
 9118    public int DependentsRemoved { get; set; }
 19
 20    /// <summary>
 21    ///     Public identifiers of the identities this run anonymised — the erasure ledger (NFR-25).
 22    /// </summary>
 23    /// <remarks>
 24    ///     Logged by the scheduled service so the list survives outside the database, which is what
 25    ///     makes a restore reconcilable: a backup taken before an erasure request reinstates the
 26    ///     person with no trace of the request, and nothing inside the database then knows to act.
 27    ///     These identifiers are safe to keep and to ship off the host precisely because the
 28    ///     identities they name have been anonymised — a <c>PublicId</c> that resolves to nobody is
 29    ///     not personal data.
 30    /// </remarks>
 13431    public IEnumerable<Guid> AnonymisedIds { get; set; } = [];
 32
 33    /// <summary>
 34    ///     Unended scope owner invitations this run voided (FR-SC-17): those of the persons it anonymised,
 35    ///     and any still open to a person an earlier run anonymised. Each is recorded in the audit trail as
 36    ///     <c>ScopeOwnerInvitationVoided</c>, on that invitation.
 37    /// </summary>
 14938    public int ScopeOwnerInvitationsVoided { get; set; }
 39
 40    /// <summary>
 41    ///     Persons and Google Users still due once the run ended (#206): left because the run reached
 42    ///     <c>MaxBatchesPerTick</c> full batches. Zero when it took everyone due; <c>null</c> when it is
 43    ///     unknown — the run was interrupted, or counting failed after it.
 44    /// </summary>
 7045    public int? Backlog { get; set; }
 46
 47    /// <summary>Identities anonymised across both tables.</summary>
 2048    public int TotalAnonymised => PersonsAnonymised + GoogleUsersAnonymised;
 49}