81 lines
2.1 KiB
C#
81 lines
2.1 KiB
C#
using VoidCat.Services.Strike;
|
|
|
|
namespace VoidCat.Model
|
|
{
|
|
public class VoidSettings
|
|
{
|
|
public string DataDirectory { get; init; } = "./data";
|
|
|
|
public TorSettings? TorSettings { get; init; }
|
|
|
|
public JwtSettings JwtSettings { get; init; } = new()
|
|
{
|
|
Issuer = "void_cat_internal",
|
|
Key = "default_key_void_cat_host"
|
|
};
|
|
|
|
public string? Redis { get; init; }
|
|
|
|
public StrikeApiSettings? Strike { get; init; }
|
|
|
|
public SmtpSettings? Smtp { get; init; }
|
|
|
|
public List<Uri> CorsOrigins { get; init; } = new();
|
|
|
|
public CloudStorageSettings? CloudStorage { get; init; }
|
|
|
|
public VirusScannerSettings? VirusScanner { get; init; }
|
|
}
|
|
|
|
public sealed class TorSettings
|
|
{
|
|
public Uri TorControl { get; init; }
|
|
public string PrivateKey { get; init; }
|
|
public string ControlPassword { get; init; }
|
|
}
|
|
|
|
public sealed class JwtSettings
|
|
{
|
|
public string Issuer { get; init; }
|
|
public string Key { get; init; }
|
|
}
|
|
|
|
public sealed class SmtpSettings
|
|
{
|
|
public Uri? Server { get; init; }
|
|
public string? Username { get; init; }
|
|
public string? Password { get; init; }
|
|
}
|
|
|
|
public sealed class CloudStorageSettings
|
|
{
|
|
public bool ServeFromCloud { get; init; }
|
|
public S3BlobConfig? S3 { get; set; }
|
|
}
|
|
|
|
public sealed class S3BlobConfig
|
|
{
|
|
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";
|
|
}
|
|
|
|
public sealed class VirusScannerSettings
|
|
{
|
|
public ClamAVSettings? ClamAV { get; init; }
|
|
public VirusTotalConfig? VirusTotal { get; init; }
|
|
}
|
|
|
|
public sealed class ClamAVSettings
|
|
{
|
|
public Uri? Endpoint { get; init; }
|
|
public long? MaxStreamSize { get; init; }
|
|
}
|
|
|
|
public sealed class VirusTotalConfig
|
|
{
|
|
public string? ApiKey { get; init; }
|
|
}
|
|
} |