aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Configuration/AppConfiguration.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Backend/Configuration/AppConfiguration.cs')
-rw-r--r--src/Enmarcha.Backend/Configuration/AppConfiguration.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Enmarcha.Backend/Configuration/AppConfiguration.cs b/src/Enmarcha.Backend/Configuration/AppConfiguration.cs
index 8c6e411..ca2425b 100644
--- a/src/Enmarcha.Backend/Configuration/AppConfiguration.cs
+++ b/src/Enmarcha.Backend/Configuration/AppConfiguration.cs
@@ -7,6 +7,7 @@ public class AppConfiguration
public string NominatimBaseUrl { get; set; } = "https://nominatim.openstreetmap.org";
public string[] OtpFeeds { get; set; } = [];
public OpenTelemetryConfiguration? OpenTelemetry { get; set; }
+ public VapidConfiguration? Vapid { get; set; }
}
public class OpenTelemetryConfiguration
@@ -14,3 +15,22 @@ public class OpenTelemetryConfiguration
public string? Endpoint { get; set; }
public string? Headers { get; set; }
}
+
+public class VapidConfiguration
+{
+ /// <summary>
+ /// VAPID subject — typically "mailto:admin@yourdomain.com" or a URL.
+ /// </summary>
+ public required string Subject { get; set; }
+
+ /// <summary>
+ /// Base64url-encoded VAPID public key. Safe to expose to browsers.
+ /// </summary>
+ public required string PublicKey { get; set; }
+
+ /// <summary>
+ /// Base64url-encoded VAPID private key. Store in user secrets or environment variables only.
+ /// Generate a key pair with: VapidHelper.GenerateVapidKeys() from the WebPush NuGet package.
+ /// </summary>
+ public required string PrivateKey { get; set; }
+}