void.cat/VoidCat/Model/VoidSettings.cs

91 lines
2.4 KiB
C#
Raw Normal View History

2022-02-22 14:20:31 +00:00
using VoidCat.Services.Strike;
2022-02-21 09:39:59 +00:00
namespace VoidCat.Model
2022-01-25 16:17:48 +00:00
{
public class VoidSettings
{
2022-01-25 23:39:51 +00:00
public string DataDirectory { get; init; } = "./data";
2022-03-07 16:29:52 +00:00
2022-02-13 15:44:17 +00:00
public TorSettings? TorSettings { get; init; }
2022-03-07 16:29:52 +00:00
public JwtSettings JwtSettings { get; init; } = new()
{
Issuer = "void_cat_internal",
Key = "default_key_void_cat_host"
};
2022-02-16 23:19:31 +00:00
public string? Redis { get; init; }
2022-03-07 16:29:52 +00:00
2022-02-21 09:39:59 +00:00
public StrikeApiSettings? Strike { get; init; }
2022-03-07 16:29:52 +00:00
2022-02-22 14:20:31 +00:00
public SmtpSettings? Smtp { get; init; }
2022-02-26 14:22:22 +00:00
public List<Uri> CorsOrigins { get; init; } = new();
2022-03-07 16:29:52 +00:00
2022-03-01 16:48:42 +00:00
public CloudStorageSettings? CloudStorage { get; init; }
2022-03-07 16:29:52 +00:00
2022-03-07 13:38:28 +00:00
public VirusScannerSettings? VirusScanner { get; init; }
2022-03-11 15:59:08 +00:00
public IEnumerable<string>? RequestHeadersLog { get; init; }
public CaptchaSettings? CaptchaSettings { get; init; }
2022-01-25 16:17:48 +00:00
}
2022-02-16 16:33:00 +00:00
2022-03-07 16:29:52 +00:00
public sealed class TorSettings
{
public Uri TorControl { get; init; }
public string PrivateKey { get; init; }
public string ControlPassword { get; init; }
}
2022-02-16 16:33:00 +00:00
2022-03-07 16:29:52 +00:00
public sealed class JwtSettings
{
public string Issuer { get; init; }
public string Key { get; init; }
}
2022-02-22 14:20:31 +00:00
2022-03-07 16:29:52 +00:00
public sealed class SmtpSettings
2022-03-01 16:48:42 +00:00
{
public Uri? Server { get; init; }
public string? Username { get; init; }
public string? Password { get; init; }
}
2022-03-07 16:29:52 +00:00
public sealed class CloudStorageSettings
2022-03-01 16:48:42 +00:00
{
public bool ServeFromCloud { get; init; }
2022-03-01 16:48:42 +00:00
public S3BlobConfig? S3 { get; set; }
}
2022-03-07 16:29:52 +00:00
public sealed class S3BlobConfig
2022-03-01 16:48:42 +00:00
{
public string? AccessKey { get; init; }
public string? SecretKey { get; init; }
public Uri? ServiceUrl { get; init; }
public string? Region { get; init; }
public string? BucketName { get; init; } = "void-cat";
}
2022-03-07 13:38:28 +00:00
2022-03-07 16:29:52 +00:00
public sealed class VirusScannerSettings
2022-03-07 13:38:28 +00:00
{
2022-03-07 16:29:52 +00:00
public ClamAVSettings? ClamAV { get; init; }
public VirusTotalConfig? VirusTotal { get; init; }
2022-03-07 13:38:28 +00:00
}
2022-03-07 14:43:19 +00:00
2022-03-07 16:29:52 +00:00
public sealed class ClamAVSettings
2022-03-07 14:49:23 +00:00
{
public Uri? Endpoint { get; init; }
public long? MaxStreamSize { get; init; }
}
2022-03-07 16:29:52 +00:00
public sealed class VirusTotalConfig
{
public string? ApiKey { get; init; }
}
2022-03-11 15:59:08 +00:00
public sealed class CaptchaSettings
{
public string? SiteKey { get; init; }
public string? Secret { get; init; }
}
2022-03-07 16:29:52 +00:00
}