summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-12-25 07:07:31 +0100
committerRory& <root@rory.gay>2025-12-25 07:07:31 +0100
commita01fb6ab39cca9c54713e9db5415a574f68f2e71 (patch)
treec8b6d58ea48b63eafdf0f18af65edd469c376516 /extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs
parentConsistent imports and instructions for email (diff)
downloadserver-ts-a01fb6ab39cca9c54713e9db5415a574f68f2e71.tar.xz
WIP C# stuff
Diffstat (limited to 'extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs')
-rw-r--r--extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs b/extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs
new file mode 100644

index 00000000..017e89ba --- /dev/null +++ b/extra/admin-api/Spacebar.ConfigModel/SecurityConfiguration.cs
@@ -0,0 +1,26 @@ +using System.Text.Json.Serialization; + +namespace Spacebar.ConfigModel; + +public class SecurityConfiguration +{ + [JsonPropertyName("captcha")] public CaptchaConfiguration Captcha = new CaptchaConfiguration(); + [JsonPropertyName("twoFactor")] public TwoFactorConfiguration TwoFactor = new TwoFactorConfiguration(); + [JsonPropertyName("autoUpdate")] public bool AutoUpdate = true; + [JsonPropertyName("requestSignature")] public string RequestSignature; // = crypto.randomBytes(32).toString("base64"); + [JsonPropertyName("jwtSecret")] public string? JwtSecret = null; + [JsonPropertyName("forwardedFor")] public string? ForwardedFor = null; + [JsonPropertyName("trustedProxies")] public string TrustedProxies = null; + [JsonPropertyName("abuseIpDbApiKey")] public string? AbuseIpDbApiKey = null; + [JsonPropertyName("abuseipdbBlacklistRatelimit")] public int AbuseipdbBlacklistRatelimit = 5; + [JsonPropertyName("abuseipdbConfidenceScoreTreshold")] public int AbuseipdbConfidenceScoreTreshold = 50; + [JsonPropertyName("ipdataApiKey")] public string? IpdataApiKey = null; + [JsonPropertyName("mfaBackupCodeCount")] public int MfaBackupCodeCount = 10; + [JsonPropertyName("statsWorldReadable")] public bool StatsWorldReadable = true; + [JsonPropertyName("defaultRegistrationTokenExpiration")] public int DefaultRegistrationTokenExpiration = 1000 * 60 * 60 * 24 * 7; + [JsonPropertyName("cdnSignUrls")] public bool CdnSignUrls = false; + [JsonPropertyName("cdnSignatureKey")] public string CdnSignatureKey = crypto.randomBytes(32).toString("base64"); + [JsonPropertyName("cdnSignatureDuration")] public string CdnSignatureDuration = "24h"; + [JsonPropertyName("cdnSignatureIncludeIp")] public bool CdnSignatureIncludeIp = true; + [JsonPropertyName("cdnSignatureIncludeUserAgent")] public bool CdnSignatureIncludeUserAgent = true; +} \ No newline at end of file