From 8942cf3c705bbc78a6b3317599658e9bb86dd31b Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Mon, 16 Mar 2026 13:56:06 +0100 Subject: Add legal document shenanigans Closes #147 --- src/Enmarcha.Backend/Program.cs | 23 +++++++++++++++++++++- .../Services/Geocoding/GeoapifyGeocodingService.cs | 4 +--- .../Geocoding/NominatimGeocodingService.cs | 2 +- 3 files changed, 24 insertions(+), 5 deletions(-) (limited to 'src/Enmarcha.Backend') diff --git a/src/Enmarcha.Backend/Program.cs b/src/Enmarcha.Backend/Program.cs index 6eddfc8..587da78 100644 --- a/src/Enmarcha.Backend/Program.cs +++ b/src/Enmarcha.Backend/Program.cs @@ -46,7 +46,28 @@ builder.Services.AddOpenTelemetry() tracing .SetResourceBuilder(ResourceBuilder.CreateDefault().AddService("Enmarcha.Backend")) .AddSource(Telemetry.Source.Name) - .AddAspNetCoreInstrumentation() + .AddAspNetCoreInstrumentation(options => + { + options.EnrichWithHttpRequest = (activity, request) => + { + var ip = request.HttpContext.Connection.RemoteIpAddress; + if (ip == null) return; + string anonymised; + if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + var bytes = ip.GetAddressBytes(); + bytes[3] = 0; + anonymised = new System.Net.IPAddress(bytes).ToString(); + } + else + { + var bytes = ip.GetAddressBytes(); + for (var i = 6; i < 16; i++) bytes[i] = 0; + anonymised = new System.Net.IPAddress(bytes).ToString(); + } + activity.SetTag("client.address", anonymised); + }; + }) .AddHttpClientInstrumentation(options => { options.EnrichWithHttpRequestMessage = (activity, req) => diff --git a/src/Enmarcha.Backend/Services/Geocoding/GeoapifyGeocodingService.cs b/src/Enmarcha.Backend/Services/Geocoding/GeoapifyGeocodingService.cs index 86386e8..ce86c49 100644 --- a/src/Enmarcha.Backend/Services/Geocoding/GeoapifyGeocodingService.cs +++ b/src/Enmarcha.Backend/Services/Geocoding/GeoapifyGeocodingService.cs @@ -26,7 +26,7 @@ public class GeoapifyGeocodingService : IGeocodingService // Geoapify requires a User-Agent if (!_httpClient.DefaultRequestHeaders.Contains("User-Agent")) { - _httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Compatible; Enmarcha/0.1; https://enmarcha.app; ariel@costas.dev)"); + _httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Compatible; Enmarcha/0.1; https://enmarcha.app; contacto@enmarcha.app)"); } } @@ -76,8 +76,6 @@ public class GeoapifyGeocodingService : IGeocodingService public async Task GetReverseGeocodeAsync(double lat, double lon) { using var activity = Telemetry.Source.StartActivity("GeoapifyReverseGeocode"); - activity?.SetTag("lat", lat); - activity?.SetTag("lon", lon); var cacheKey = $"nominatim_reverse_{lat:F5}_{lon:F5}"; var cacheHit = _cache.TryGetValue(cacheKey, out PlannerSearchResult? cachedResult); diff --git a/src/Enmarcha.Backend/Services/Geocoding/NominatimGeocodingService.cs b/src/Enmarcha.Backend/Services/Geocoding/NominatimGeocodingService.cs index c38b1e6..b58b5a4 100644 --- a/src/Enmarcha.Backend/Services/Geocoding/NominatimGeocodingService.cs +++ b/src/Enmarcha.Backend/Services/Geocoding/NominatimGeocodingService.cs @@ -26,7 +26,7 @@ public class NominatimGeocodingService : IGeocodingService // Nominatim requires a User-Agent if (!_httpClient.DefaultRequestHeaders.Contains("User-Agent")) { - _httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Compatible; Enmarcha/0.1; https://enmarcha.app; ariel@costas.dev)"); + _httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Compatible; Enmarcha/0.1; https://enmarcha.app; contacto@enmarcha.app)"); } } -- cgit v1.3