//----------------------------------------------------------------------- // // Copyright (c) aliasvault. All rights reserved. // Licensed under the AGPLv3 license. See LICENSE.md file in the project root for full license information. // //----------------------------------------------------------------------- namespace AliasVault.Client; /// /// Configuration class for the Client project with values loaded from appsettings.json. /// public class Config { /// /// Gets or sets the API URL for the AliasVault server. /// public string ApiUrl { get; set; } = string.Empty; /// /// Gets or sets the list of private email domains that the AliasVault server is listening for. /// Email addresses that client vault users use will be registered at the server /// to get exclusive access to the email address. /// public List PrivateEmailDomains { get; set; } = []; /// /// Gets or sets the list of private email domains that should be hidden from UI components. /// These domains still function as private email domains but are not shown in domain selection dropdowns. /// public List HiddenPrivateEmailDomains { get; set; } = []; /// /// Gets or sets the list of public email domains that are allowed to be used by the client vault users. /// public List PublicEmailDomains { get; set; } = [ "spamok.com", "solarflarecorp.com", "spamok.nl", "3060.nl", "landmail.nl", "asdasd.nl", "spamok.de", "spamok.com.ua", "spamok.es", "spamok.fr", ]; /// /// Gets or sets a value indicating whether to use a debug encryption key. /// This should only be set to true in development environments. /// public bool UseDebugEncryptionKey { get; set; } /// /// Gets or sets the type of cryptography to use for password hashing. /// Currently supports "Argon2Id". /// public string? CryptographyOverrideType { get; set; } /// /// Gets or sets the JSON string containing cryptography settings. /// For Argon2Id, this includes DegreeOfParallelism, MemorySize, and Iterations. /// public string? CryptographyOverrideSettings { get; set; } /// /// Gets or sets the support email address that users can contact for password recovery. /// public string? SupportEmail { get; set; } /// /// Gets or sets a value indicating whether public registration is enabled. /// public bool PublicRegistrationEnabled { get; set; } }