1
0
mirror of https://github.com/bitwarden/server.git synced 2025-01-07 19:37:51 +01:00
bitwarden-server/src/Core/GlobalSettings.cs

227 lines
8.3 KiB
C#
Raw Normal View History

2017-08-11 14:57:31 +02:00
using System;
namespace Bit.Core
2015-12-09 04:57:38 +01:00
{
public class GlobalSettings
{
2017-08-02 23:02:55 +02:00
public bool SelfHosted { get; set; }
2019-04-26 15:52:54 +02:00
public virtual string KnownProxies { get; set; }
public virtual string SiteName { get; set; }
2017-04-04 16:13:16 +02:00
public virtual string StripeApiKey { get; set; }
public virtual string ProjectName { get; set; }
public virtual string LogDirectory { get; set; }
public virtual string LicenseDirectory { get; set; }
2019-07-11 02:05:07 +02:00
public string LicenseCertificatePassword { get; set; }
2017-08-11 14:57:31 +02:00
public virtual string PushRelayBaseUri { get; set; }
2018-08-16 00:43:26 +02:00
public virtual string InternalIdentityKey { get; set; }
2019-07-23 03:23:09 +02:00
public virtual string HibpApiKey { get; set; }
public virtual bool DisableUserRegistration { get; set; }
2019-04-01 14:28:36 +02:00
public virtual bool DisableEmailNewDevice { get; set; }
2019-06-11 22:44:59 +02:00
public virtual int OrganizationInviteExpirationHours { get; set; } = 120; // 5 days
2017-08-11 14:57:31 +02:00
public virtual InstallationSettings Installation { get; set; } = new InstallationSettings();
2017-08-04 05:12:05 +02:00
public virtual BaseServiceUriSettings BaseServiceUri { get; set; } = new BaseServiceUriSettings();
2019-01-16 04:07:13 +01:00
public virtual SqlSettings SqlServer { get; set; } = new SqlSettings();
public virtual SqlSettings PostgreSql { get; set; } = new SqlSettings();
2015-12-09 04:57:38 +01:00
public virtual MailSettings Mail { get; set; } = new MailSettings();
public virtual ConnectionStringSettings Storage { get; set; } = new ConnectionStringSettings();
public virtual ConnectionStringSettings Events { get; set; } = new ConnectionStringSettings();
2018-08-22 22:04:27 +02:00
public virtual NotificationsSettings Notifications { get; set; } = new NotificationsSettings();
public virtual AttachmentSettings Attachment { get; set; } = new AttachmentSettings();
public virtual IdentityServerSettings IdentityServer { get; set; } = new IdentityServerSettings();
public virtual DataProtectionSettings DataProtection { get; set; } = new DataProtectionSettings();
2017-01-15 05:24:02 +01:00
public virtual DocumentDbSettings DocumentDb { get; set; } = new DocumentDbSettings();
2018-03-23 18:33:31 +01:00
public virtual SentrySettings Sentry { get; set; } = new SentrySettings();
public virtual NotificationHubSettings NotificationHub { get; set; } = new NotificationHubSettings();
2017-06-15 04:40:33 +02:00
public virtual YubicoSettings Yubico { get; set; } = new YubicoSettings();
2017-06-21 06:04:25 +02:00
public virtual DuoSettings Duo { get; set; } = new DuoSettings();
public virtual BraintreeSettings Braintree { get; set; } = new BraintreeSettings();
2019-02-22 04:43:37 +01:00
public virtual BitPaySettings BitPay { get; set; } = new BitPaySettings();
2019-03-13 19:07:08 +01:00
public virtual AmazonSettings Amazon { get; set; } = new AmazonSettings();
public virtual ServiceBusSettings ServiceBus { get; set; } = new ServiceBusSettings();
2015-12-09 04:57:38 +01:00
2017-08-04 05:12:05 +02:00
public class BaseServiceUriSettings
{
public string Vault { get; set; }
2017-08-17 05:44:14 +02:00
public string VaultWithHash => $"{Vault}/#";
2017-08-04 05:12:05 +02:00
public string Api { get; set; }
public string Identity { get; set; }
public string Admin { get; set; }
2018-08-16 19:50:41 +02:00
public string Notifications { get; set; }
public string InternalNotifications { get; set; }
public string InternalAdmin { get; set; }
2017-08-04 05:12:05 +02:00
public string InternalIdentity { get; set; }
public string InternalApi { get; set; }
public string InternalVault { get; set; }
2017-08-04 05:12:05 +02:00
}
2019-01-16 04:07:13 +01:00
public class SqlSettings
{
private string _connectionString;
private string _readOnlyConnectionString;
public string ConnectionString
{
get => _connectionString;
set
{
_connectionString = value.Trim('"');
}
}
public string ReadOnlyConnectionString
{
get => string.IsNullOrWhiteSpace(_readOnlyConnectionString) ?
_connectionString : _readOnlyConnectionString;
set
{
_readOnlyConnectionString = value.Trim('"');
}
}
}
public class ConnectionStringSettings
{
private string _connectionString;
public string ConnectionString
{
get => _connectionString;
set
{
_connectionString = value.Trim('"');
}
}
}
public class AttachmentSettings
{
private string _connectionString;
public string ConnectionString
{
get => _connectionString;
set
{
_connectionString = value.Trim('"');
}
}
public string BaseDirectory { get; set; }
public string BaseUrl { get; set; }
}
2015-12-09 04:57:38 +01:00
public class MailSettings
{
public string ReplyToEmail { get; set; }
2017-05-31 04:40:02 +02:00
public string SendGridApiKey { get; set; }
2019-03-13 21:19:00 +01:00
public string AmazonConfigSetName { get; set; }
2017-05-31 04:40:02 +02:00
public SmtpSettings Smtp { get; set; } = new SmtpSettings();
public class SmtpSettings
{
public string Host { get; set; }
2017-08-22 03:55:32 +02:00
public int Port { get; set; } = 25;
2019-04-10 14:44:58 +02:00
public bool StartTls { get; set; } = false;
2017-08-22 03:55:32 +02:00
public bool Ssl { get; set; } = false;
public bool SslOverride { get; set; } = false;
2017-05-31 04:40:02 +02:00
public string Username { get; set; }
public string Password { get; set; }
[Obsolete]
2017-10-05 14:34:46 +02:00
public bool UseDefaultCredentials { get; set; } = false;
[Obsolete]
2018-08-23 05:40:50 +02:00
public string AuthType { get; set; }
public bool TrustServer { get; set; } = false;
2017-05-31 04:40:02 +02:00
}
2015-12-09 04:57:38 +01:00
}
public class IdentityServerSettings
{
public string CertificateThumbprint { get; set; }
2017-08-07 17:24:16 +02:00
public string CertificatePassword { get; set; }
}
2017-01-15 05:24:02 +01:00
public class DataProtectionSettings
{
public string CertificateThumbprint { get; set; }
2019-07-11 02:05:07 +02:00
public string CertificatePassword { get; set; }
public string Directory { get; set; }
}
2017-01-15 05:24:02 +01:00
public class DocumentDbSettings
{
public string Uri { get; set; }
public string Key { get; set; }
}
2018-03-23 18:33:31 +01:00
public class SentrySettings
{
public string Dsn { get; set; }
}
public class NotificationsSettings : ConnectionStringSettings
2018-08-22 22:04:27 +02:00
{
public string AzureSignalRConnectionString { get; set; }
}
public class NotificationHubSettings
{
private string _connectionString;
public string ConnectionString
{
get => _connectionString;
set
{
_connectionString = value.Trim('"');
}
}
public string HubName { get; set; }
}
2017-06-15 04:40:33 +02:00
public class YubicoSettings
{
public string ClientId { get; set; }
public string Key { get; set; }
}
2017-06-21 06:04:25 +02:00
public class DuoSettings
{
public string AKey { get; set; }
}
2017-06-22 04:33:45 +02:00
public class BraintreeSettings
{
public bool Production { get; set; }
public string MerchantId { get; set; }
public string PublicKey { get; set; }
public string PrivateKey { get; set; }
}
2017-08-11 14:57:31 +02:00
2019-02-22 04:43:37 +01:00
public class BitPaySettings
{
public bool Production { get; set; }
public string Base58Secret { get; set; }
public string NotificationUrl { get; set; }
2019-02-22 04:43:37 +01:00
}
2017-08-11 14:57:31 +02:00
public class InstallationSettings
{
2017-08-15 02:57:45 +02:00
public Guid Id { get; set; }
2017-08-11 14:57:31 +02:00
public string Key { get; set; }
public string IdentityUri { get; set; }
}
2019-03-13 19:07:08 +01:00
public class AmazonSettings
{
public string AccessKeyId { get; set; }
public string AccessKeySecret { get; set; }
public string Region { get; set; }
}
public class ServiceBusSettings : ConnectionStringSettings
{
public string ApplicationCacheTopicName { get; set; }
public string ApplicationCacheSubscriptionName { get; set; }
}
2015-12-09 04:57:38 +01:00
}
}