aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Configuration/AppConfiguration.cs
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-04-02 12:38:10 +0200
committerAriel Costas Guerrero <ariel@costas.dev>2026-04-02 12:45:33 +0200
commit1b4f4a674ac533c0b51260ba35ab91dd2cf9486d (patch)
tree9fdaf418bef86c51737bcf203483089c9e2b908b /src/Enmarcha.Backend/Configuration/AppConfiguration.cs
parent749e04d6fc2304bb29920db297d1fa4d73b57648 (diff)
Basic push notification system for service alerts
Co-authored-by: Copilot <copilot@github.com>
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; }
+}