< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Command.Input.ExportMyDataCommand
Assembly: ArturRios.Heimdall.Command
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Command/Input/ExportMyDataCommand.cs
Line coverage
100%
Covered lines: 2
Uncovered lines: 0
Coverable lines: 2
Total lines: 32
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 2
Fully covered methods: 2
Total methods: 2
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ActingPersonId()100%11100%
get_ActingRole()100%11100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Command/Input/ExportMyDataCommand.cs

#LineLine coverage
 1using System.Text.Json.Serialization;
 2using ArturRios.Heimdall.Shared.Security;
 3using ArturRios.Mediator.Command;
 4
 5namespace ArturRios.Heimdall.Command.Input;
 6
 7/// <summary>
 8///     A data subject's request for a copy of everything held about them (UC-41, GDPR Art. 15 and
 9///     20, LGPD Art. 18 II and V).
 10/// </summary>
 11/// <remarks>
 12///     <para>
 13///         The subject is the authenticated caller, always. There is no identifier in the path or
 14///         the body, so the endpoint has no shape in which one identity could export another's data.
 15///     </para>
 16///     <para>
 17///         <b>Why a command for something that reads nothing.</b> Two reasons, and neither is
 18///         tidiness. An export is the single highest-value action a stolen token can perform — it
 19///         discloses everything about a person in one response — so it has to reach the audit trail,
 20///         and in this codebase only commands are audited. And a <c>GET</c> would invite caching: a
 21///         document containing everything about a person is exactly what must never sit in a proxy
 22///         or a browser cache. Both point the same way.
 23///     </para>
 24/// </remarks>
 25public class ExportMyDataCommand : BaseCommand, IActorScoped
 26{
 27    [JsonIgnore]
 4928    public Guid ActingPersonId { get; set; }
 29
 30    [JsonIgnore]
 2431    public int ActingRole { get; set; }
 32}