< Summary

Information
Class: LOCKnet.Core.DataAbstractions.CredentialRecord
Assembly: LOCKnet.Core
File(s): /home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Core/DataAbstractions/CredentialRecord.cs
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 37
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_Title()100%11100%
get_Username()100%11100%
get_EncryptedPassword()100%11100%
get_EncryptedMetadata()100%11100%
get_CredentialUuid()100%11100%
get_SecretFormatVersion()100%11100%
get_MetadataFormatVersion()100%11100%
get_Url()100%11100%
get_Notes()100%11100%
get_CreatedAt()100%11100%
get_UpdatedAt()100%11100%
get_IconKey()100%11100%
get_CredentialType()100%11100%

File(s)

/home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Core/DataAbstractions/CredentialRecord.cs

#LineLine coverage
 1namespace LOCKnet.Core.DataAbstractions;
 2
 3/// <summary>
 4/// Credential-Datensatz wie er aus der Datenbank kommt.
 5/// Das Passwort ist immer verschlüsselt — Entschlüsselung passiert im Core-Service.
 6/// </summary>
 7public class CredentialRecord
 8{
 9  /// <summary>Eindeutige Datenbank-ID des Eintrags.</summary>
 49910  public int Id { get; set; }
 11  /// <summary>Bezeichnung des Eintrags (z.B. "GitHub", "E-Mail").</summary>
 107512  public string Title { get; set; } = string.Empty;
 13  /// <summary>Optionaler Benutzername oder E-Mail-Adresse.</summary>
 72014  public string? Username { get; set; }
 15  /// <summary>AES-256-GCM-verschlüsseltes Passwort als Byte-Array. Niemals Klartext.</summary>
 106816  public byte[] EncryptedPassword { get; set; } = [];
 17  /// <summary>Versioniert verschluesselte Credential-Metadaten als Byte-Array.</summary>
 113218  public byte[] EncryptedMetadata { get; set; } = [];
 19  /// <summary>Stabile GUID fuer AAD-Bindung und Record-Swap-Schutz.</summary>
 131320  public string CredentialUuid { get; set; } = string.Empty;
 21  /// <summary>Versionsmarker des gespeicherten Secret-Envelopes.</summary>
 105922  public int SecretFormatVersion { get; set; } = CredentialSecretFormatVersion.Legacy;
 23  /// <summary>Versionsmarker des gespeicherten Metadaten-Envelopes.</summary>
 109024  public int MetadataFormatVersion { get; set; } = CredentialMetadataFormatVersion.Legacy;
 25  /// <summary>Optionale URL des zugehörigen Dienstes.</summary>
 66926  public string? Url { get; set; }
 27  /// <summary>Optionale Freitextnotizen zum Eintrag.</summary>
 66228  public string? Notes { get; set; }
 29  /// <summary>UTC-Zeitstempel der Erstellung (von SQLite gesetzt).</summary>
 42130  public DateTime CreatedAt { get; set; }
 31  /// <summary>UTC-Zeitstempel der letzten Änderung (von SQLite gesetzt).</summary>
 42032  public DateTime UpdatedAt { get; set; }
 33  /// <summary>Optionaler Icon-Schluessel fuer Material-Icon-Darstellung.</summary>
 66034  public string? IconKey { get; set; }
 35  /// <summary>Typ des Credentials (Passwort oder API-Schlüssel). Standard: Password für Abwärtskompatibilität.</summary
 105336  public CredentialType CredentialType { get; set; } = CredentialType.Password;
 37}