diff --git a/bitwarden_license/src/Sso/Views/Shared/_Layout.cshtml b/bitwarden_license/src/Sso/Views/Shared/_Layout.cshtml
index b5330dfa92bf..b3c244a3d435 100644
--- a/bitwarden_license/src/Sso/Views/Shared/_Layout.cshtml
+++ b/bitwarden_license/src/Sso/Views/Shared/_Layout.cshtml
@@ -1,4 +1,4 @@
-@using static Bit.Core.Utilities.AssemblyHelpers;
+@inject Bitwarden.Server.Sdk.Environment.IBitwardenEnvironment BitwardenEnvironment
@@ -30,7 +30,7 @@
- Version @GetVersion()
+ Version @BitwardenEnvironment.Version
diff --git a/src/Admin/Controllers/HomeController.cs b/src/Admin/Controllers/HomeController.cs
index 958c7d17f724..b219bdb34710 100644
--- a/src/Admin/Controllers/HomeController.cs
+++ b/src/Admin/Controllers/HomeController.cs
@@ -5,6 +5,7 @@
using System.Text.Json;
using Bit.Admin.Models;
using Bit.Core.Settings;
+using Bitwarden.Server.Sdk.Environment;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
@@ -18,12 +19,14 @@ public class HomeController : Controller
private readonly GlobalSettings _globalSettings;
private readonly IHttpClientFactory _httpClientFactory;
private readonly ILogger _logger;
+ private readonly IBitwardenEnvironment _bitwardenEnvironment;
- public HomeController(GlobalSettings globalSettings, IHttpClientFactory httpClientFactory, ILogger logger)
+ public HomeController(GlobalSettings globalSettings, IHttpClientFactory httpClientFactory, ILogger logger, IBitwardenEnvironment bitwardenEnvironment)
{
_globalSettings = globalSettings;
_httpClientFactory = httpClientFactory;
_logger = logger;
+ _bitwardenEnvironment = bitwardenEnvironment;
}
[Authorize]
@@ -32,7 +35,7 @@ public IActionResult Index()
return View(new HomeModel
{
GlobalSettings = _globalSettings,
- CurrentVersion = Core.Utilities.AssemblyHelpers.GetVersion()
+ CurrentVersion = _bitwardenEnvironment.Version
});
}
diff --git a/src/Admin/Controllers/InfoController.cs b/src/Admin/Controllers/InfoController.cs
index dc41721de468..7f9680b6db8d 100644
--- a/src/Admin/Controllers/InfoController.cs
+++ b/src/Admin/Controllers/InfoController.cs
@@ -1,5 +1,4 @@
-using Bit.Core.Utilities;
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
namespace Bit.Admin.Controllers;
@@ -11,10 +10,4 @@ public DateTime GetAlive()
{
return DateTime.UtcNow;
}
-
- [HttpGet("~/version")]
- public JsonResult GetVersion()
- {
- return Json(AssemblyHelpers.GetVersion());
- }
}
diff --git a/src/Admin/Startup.cs b/src/Admin/Startup.cs
index 53e971ffcb90..935e225c064e 100644
--- a/src/Admin/Startup.cs
+++ b/src/Admin/Startup.cs
@@ -162,6 +162,10 @@ public void Configure(
// Gates endpoints carrying IFeatureMetadata; required in any app that
// routes requests through endpoints tagged with [RequireFeature].
app.UseFeatureFlagChecks();
- app.UseEndpoints(endpoints => endpoints.MapDefaultControllerRoute());
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapDefaultControllerRoute();
+ endpoints.MapVersionEndpoint();
+ });
}
}
diff --git a/src/Api/Controllers/ConfigController.cs b/src/Api/Controllers/ConfigController.cs
index 899e5b369113..de3011f2c0db 100644
--- a/src/Api/Controllers/ConfigController.cs
+++ b/src/Api/Controllers/ConfigController.cs
@@ -1,5 +1,6 @@
using Bit.Api.Models.Response;
using Bit.Core.Settings;
+using Bitwarden.Server.Sdk.Environment;
using Bitwarden.Server.Sdk.Features;
using Microsoft.AspNetCore.Mvc;
@@ -10,18 +11,21 @@ public class ConfigController : Controller
{
private readonly IGlobalSettings _globalSettings;
private readonly IFeatureService _featureService;
+ private readonly IBitwardenEnvironment _bitwardenEnvironment;
public ConfigController(
IGlobalSettings globalSettings,
- IFeatureService featureService)
+ IFeatureService featureService,
+ IBitwardenEnvironment bitwardenEnvironment)
{
_globalSettings = globalSettings;
_featureService = featureService;
+ _bitwardenEnvironment = bitwardenEnvironment;
}
[HttpGet("")]
public ConfigResponseModel GetConfigs()
{
- return new ConfigResponseModel(_featureService, _globalSettings);
+ return new ConfigResponseModel(_featureService, _globalSettings, _bitwardenEnvironment);
}
}
diff --git a/src/Api/Controllers/InfoController.cs b/src/Api/Controllers/InfoController.cs
index 590a3006c043..65998c9d78e4 100644
--- a/src/Api/Controllers/InfoController.cs
+++ b/src/Api/Controllers/InfoController.cs
@@ -1,5 +1,4 @@
-using Bit.Core.Utilities;
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
namespace Bit.Api.Controllers;
@@ -17,10 +16,4 @@ public DateTime GetNow()
{
return GetAlive();
}
-
- [HttpGet("~/version")]
- public JsonResult GetVersion()
- {
- return Json(AssemblyHelpers.GetVersion());
- }
}
diff --git a/src/Api/Models/Response/ConfigResponseModel.cs b/src/Api/Models/Response/ConfigResponseModel.cs
index 490e28bb020e..cb34fc89a23d 100644
--- a/src/Api/Models/Response/ConfigResponseModel.cs
+++ b/src/Api/Models/Response/ConfigResponseModel.cs
@@ -9,7 +9,7 @@
using Bit.Core.Enums;
using Bit.Core.Models.Api;
using Bit.Core.Settings;
-using Bit.Core.Utilities;
+using Bitwarden.Server.Sdk.Environment;
namespace Bit.Api.Models.Response;
@@ -24,22 +24,14 @@ public class ConfigResponseModel : ResponseModel
public CommunicationSettings Communication { get; set; }
public ServerSettingsResponseModel Settings { get; set; }
- public ConfigResponseModel() : base("config")
- {
- Version = AssemblyHelpers.GetVersion();
- GitHash = AssemblyHelpers.GetGitHash();
- Environment = new EnvironmentConfigResponseModel();
- FeatureStates = new Dictionary();
- Settings = new ServerSettingsResponseModel();
- }
-
public ConfigResponseModel(
Bitwarden.Server.Sdk.Features.IFeatureService featureService,
- IGlobalSettings globalSettings
+ IGlobalSettings globalSettings,
+ IBitwardenEnvironment bitwardenEnvironment
) : base("config")
{
- Version = AssemblyHelpers.GetVersion();
- GitHash = AssemblyHelpers.GetGitHash();
+ Version = bitwardenEnvironment.Version;
+ GitHash = bitwardenEnvironment.GitHash;
Environment = new EnvironmentConfigResponseModel
{
CloudRegion = globalSettings.BaseServiceUri.CloudRegion,
diff --git a/src/Api/Startup.cs b/src/Api/Startup.cs
index b755e286ac50..415dc85495cd 100644
--- a/src/Api/Startup.cs
+++ b/src/Api/Startup.cs
@@ -286,6 +286,7 @@ public void Configure(
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
+ endpoints.MapVersionEndpoint();
#if !OSS
// PAM is a commercial feature; its Minimal API endpoints are only mapped in non-OSS builds.
diff --git a/src/Core/Utilities/AssemblyHelpers.cs b/src/Core/Utilities/AssemblyHelpers.cs
deleted file mode 100644
index 03f7ff986d7e..000000000000
--- a/src/Core/Utilities/AssemblyHelpers.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System.Diagnostics;
-using System.Reflection;
-
-namespace Bit.Core.Utilities;
-
-public static class AssemblyHelpers
-{
- private static string? _version;
- private static string? _gitHash;
-
- static AssemblyHelpers()
- {
- var assemblyInformationalVersionAttribute = typeof(AssemblyHelpers).Assembly.GetCustomAttribute();
- if (assemblyInformationalVersionAttribute == null)
- {
- Debug.Fail("The AssemblyInformationalVersionAttribute is expected to exist in this assembly, possibly its generation was turned off.");
- return;
- }
-
- var informationalVersion = assemblyInformationalVersionAttribute.InformationalVersion.AsSpan();
-
- if (!informationalVersion.TrySplitBy('+', out var version, out var gitHash))
- {
- // Treat the whole thing as the version
- _version = informationalVersion.ToString();
- return;
- }
-
- _version = version.ToString();
- if (gitHash.Length < 8)
- {
- return;
- }
- _gitHash = gitHash[..8].ToString();
- }
-
- public static string? GetVersion()
- {
- return _version;
- }
-
- public static string? GetGitHash()
- {
- return _gitHash;
- }
-}
diff --git a/src/Icons/Controllers/InfoController.cs b/src/Icons/Controllers/InfoController.cs
index 253ee7cc7801..ad0f737e234c 100644
--- a/src/Icons/Controllers/InfoController.cs
+++ b/src/Icons/Controllers/InfoController.cs
@@ -1,5 +1,4 @@
-using Bit.Core.Utilities;
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
namespace Bit.Icons.Controllers;
@@ -11,10 +10,4 @@ public DateTime GetAlive()
{
return DateTime.UtcNow;
}
-
- [HttpGet("~/version")]
- public JsonResult GetVersion()
- {
- return Json(AssemblyHelpers.GetVersion());
- }
}
diff --git a/src/Icons/Startup.cs b/src/Icons/Startup.cs
index e40328ba7e08..b0752055f466 100644
--- a/src/Icons/Startup.cs
+++ b/src/Icons/Startup.cs
@@ -98,6 +98,10 @@ public void Configure(
.AllowAnyMethod().AllowAnyHeader().AllowCredentials());
app.UseRouting();
- app.UseEndpoints(endpoints => endpoints.MapDefaultControllerRoute());
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapDefaultControllerRoute();
+ endpoints.MapVersionEndpoint();
+ });
}
}
diff --git a/src/Notifications/Controllers/InfoController.cs b/src/Notifications/Controllers/InfoController.cs
index afd6911a8de1..38adb456c2eb 100644
--- a/src/Notifications/Controllers/InfoController.cs
+++ b/src/Notifications/Controllers/InfoController.cs
@@ -1,5 +1,4 @@
-using Bit.Core.Utilities;
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
namespace Bit.Notifications.Controllers;
@@ -11,10 +10,4 @@ public DateTime GetAlive()
{
return DateTime.UtcNow;
}
-
- [HttpGet("~/version")]
- public JsonResult GetVersion()
- {
- return Json(AssemblyHelpers.GetVersion());
- }
}
diff --git a/src/Notifications/Startup.cs b/src/Notifications/Startup.cs
index 3a4dc2d4476c..762ac51c6cd5 100644
--- a/src/Notifications/Startup.cs
+++ b/src/Notifications/Startup.cs
@@ -122,6 +122,7 @@ public void Configure(
options.TransportMaxBufferSize = 4096;
});
endpoints.MapDefaultControllerRoute();
+ endpoints.MapVersionEndpoint();
});
}
}
diff --git a/test/Api.IntegrationTest/Controllers/ConfigControllerTests.cs b/test/Api.IntegrationTest/Controllers/ConfigControllerTests.cs
index 73fa3aba7d6d..bf7ef920e1cf 100644
--- a/test/Api.IntegrationTest/Controllers/ConfigControllerTests.cs
+++ b/test/Api.IntegrationTest/Controllers/ConfigControllerTests.cs
@@ -1,13 +1,14 @@
using System.Net.Http.Headers;
using Bit.Api.IntegrationTest.Factories;
using Bit.Api.IntegrationTest.Helpers;
-using Bit.Api.Models.Response;
using Bit.Core.AdminConsole.Entities;
using Bit.Core.Billing.Enums;
using Xunit;
namespace Bit.Api.IntegrationTest.Controllers;
+file record ConfigResponse(string Version);
+
public class ConfigControllerTests : IClassFixture, IAsyncLifetime
{
private readonly HttpClient _client;
@@ -48,7 +49,7 @@ public async Task GetConfigs_Unauthenticated()
var response = await _client.GetAsync("/config");
response.EnsureSuccessStatusCode();
- var result = await response.Content.ReadFromJsonAsync();
+ var result = await response.Content.ReadFromJsonAsync();
Assert.NotNull(result);
Assert.NotEmpty(result!.Version);
@@ -61,7 +62,7 @@ public async Task GetConfigs_Authenticated()
var response = await _client.GetAsync("/config");
response.EnsureSuccessStatusCode();
- var result = await response.Content.ReadFromJsonAsync();
+ var result = await response.Content.ReadFromJsonAsync();
Assert.NotNull(result);
Assert.NotEmpty(result!.Version);
@@ -87,7 +88,7 @@ public async Task GetConfigs_WithOrganizations(int orgCount)
var response = await _client.GetAsync("/config");
response.EnsureSuccessStatusCode();
- var result = await response.Content.ReadFromJsonAsync();
+ var result = await response.Content.ReadFromJsonAsync();
Assert.NotNull(result);
Assert.NotEmpty(result!.Version);
diff --git a/test/Api.Test/Controllers/ConfigControllerTests.cs b/test/Api.Test/Controllers/ConfigControllerTests.cs
index 29125974efe3..3ec637ba9663 100644
--- a/test/Api.Test/Controllers/ConfigControllerTests.cs
+++ b/test/Api.Test/Controllers/ConfigControllerTests.cs
@@ -2,6 +2,7 @@
using AutoFixture.Xunit2;
using Bit.Api.Controllers;
using Bit.Core.Settings;
+using Bitwarden.Server.Sdk.Environment;
using Bitwarden.Server.Sdk.Features;
using NSubstitute;
using Xunit;
@@ -13,16 +14,19 @@ public class ConfigControllerTests : IDisposable
private readonly ConfigController _sut;
private readonly GlobalSettings _globalSettings;
private readonly IFeatureService _featureService;
+ private readonly IBitwardenEnvironment _bitwardenEnvironment;
public ConfigControllerTests()
{
_globalSettings = new GlobalSettings();
_featureService = Substitute.For();
_featureService.GetAll().Returns(new Dictionary());
+ _bitwardenEnvironment = Substitute.For();
_sut = new ConfigController(
_globalSettings,
- _featureService
+ _featureService,
+ _bitwardenEnvironment
);
}
diff --git a/test/Api.Test/Models/Response/ServerSettingsResponseModelTests.cs b/test/Api.Test/Models/Response/ServerSettingsResponseModelTests.cs
index af03d94d67f5..5521452ec9be 100644
--- a/test/Api.Test/Models/Response/ServerSettingsResponseModelTests.cs
+++ b/test/Api.Test/Models/Response/ServerSettingsResponseModelTests.cs
@@ -1,6 +1,7 @@
using System.Text.Json.Nodes;
using Bit.Api.Models.Response;
using Bit.Core.Settings;
+using Bitwarden.Server.Sdk.Environment;
using Bitwarden.Server.Sdk.Features;
using NSubstitute;
using Xunit;
@@ -21,7 +22,9 @@ public void ConfigResponseModel_SuppressOnboardingInterstitialsTrue_MapsToSettin
var featureService = Substitute.For();
featureService.GetAll().Returns(new Dictionary());
- var model = new ConfigResponseModel(featureService, globalSettings);
+ var bitwardenEnvironment = Substitute.For();
+
+ var model = new ConfigResponseModel(featureService, globalSettings, bitwardenEnvironment);
Assert.True(model.Settings.SuppressOnboardingInterstitials);
}
@@ -38,7 +41,9 @@ public void ConfigResponseModel_SuppressOnboardingInterstitialsFalse_MapsToSetti
var featureService = Substitute.For();
featureService.GetAll().Returns(new Dictionary());
- var model = new ConfigResponseModel(featureService, globalSettings);
+ var bitwardenEnvironment = Substitute.For();
+
+ var model = new ConfigResponseModel(featureService, globalSettings, bitwardenEnvironment);
Assert.False(model.Settings.SuppressOnboardingInterstitials);
}
diff --git a/test/Core.Test/Utilities/AssemblyHelpersTests.cs b/test/Core.Test/Utilities/AssemblyHelpersTests.cs
deleted file mode 100644
index 463deb54a112..000000000000
--- a/test/Core.Test/Utilities/AssemblyHelpersTests.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Bit.Core.Utilities;
-using Xunit;
-
-namespace Bit.Core.Test.Utilities;
-
-public class AssemblyHelpersTests
-{
- [Fact]
- public void ReturnsValidVersionAndGitHash()
- {
- var version = AssemblyHelpers.GetVersion();
- _ = Version.Parse(version);
-
- var gitHash = AssemblyHelpers.GetGitHash();
- Assert.NotNull(gitHash);
- Assert.Equal(8, gitHash.Length);
- }
-}
diff --git a/test/SeederApi.IntegrationTest/packages.lock.json b/test/SeederApi.IntegrationTest/packages.lock.json
index 65c0355fc60e..38680bb2f8c4 100644
--- a/test/SeederApi.IntegrationTest/packages.lock.json
+++ b/test/SeederApi.IntegrationTest/packages.lock.json
@@ -1464,7 +1464,17 @@
"seederapi": {
"type": "Project",
"dependencies": {
+ "Bitwarden.Server.Sdk.Environment": "[0.1.0, )",
+ "Bitwarden.Server.Sdk.Features": "[1.4.0, )",
+ "Bitwarden.Server.Sdk.WebEssentials": "[0.5.0, )",
"Core": "[2026.8.0, )",
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.15.3, )",
+ "OpenTelemetry.Extensions.Hosting": "[1.15.3, )",
+ "OpenTelemetry.Instrumentation.AspNetCore": "[1.15.2, )",
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": "[1.12.0-beta.2, )",
+ "OpenTelemetry.Instrumentation.Http": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.Runtime": "[1.15.1, )",
+ "OpenTelemetry.Instrumentation.SqlClient": "[1.15.2, )",
"Seeder": "[2026.8.0, )",
"SharedWeb": "[2026.8.0, )"
}
diff --git a/util/SeederApi/Controllers/InfoController.cs b/util/SeederApi/Controllers/InfoController.cs
index 347f51ef9ca5..138f8714c4b5 100644
--- a/util/SeederApi/Controllers/InfoController.cs
+++ b/util/SeederApi/Controllers/InfoController.cs
@@ -1,5 +1,4 @@
-using Bit.Core.Utilities;
-using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Bit.SeederApi.Controllers;
@@ -13,10 +12,4 @@ public DateTime GetAlive()
{
return DateTime.UtcNow;
}
-
- [HttpGet("~/version")]
- public JsonResult GetVersion()
- {
- return Json(AssemblyHelpers.GetVersion());
- }
}
diff --git a/util/SeederApi/Program.cs b/util/SeederApi/Program.cs
index 2067df307a09..e96b7101ebb2 100644
--- a/util/SeederApi/Program.cs
+++ b/util/SeederApi/Program.cs
@@ -8,6 +8,7 @@ public static void Main(string[] args)
{
Host
.CreateDefaultBuilder(args)
+ .UseBitwardenSdk()
.ConfigureCustomAppConfiguration(args)
.ConfigureWebHostDefaults(webBuilder =>
{
diff --git a/util/SeederApi/SeederApi.csproj b/util/SeederApi/SeederApi.csproj
index 72d8c3d255e5..a7569218774c 100644
--- a/util/SeederApi/SeederApi.csproj
+++ b/util/SeederApi/SeederApi.csproj
@@ -1,4 +1,5 @@
+
bitwarden-seeder-api
diff --git a/util/SeederApi/Startup.cs b/util/SeederApi/Startup.cs
index 3ce616f1fdc0..07239dc000e6 100644
--- a/util/SeederApi/Startup.cs
+++ b/util/SeederApi/Startup.cs
@@ -93,6 +93,7 @@ public void Configure(
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Seed}/{action=Index}/{id?}");
+ endpoints.MapVersionEndpoint();
});
}
}
diff --git a/util/SeederApi/packages.lock.json b/util/SeederApi/packages.lock.json
index d2a6e31f6622..9320265a5ecc 100644
--- a/util/SeederApi/packages.lock.json
+++ b/util/SeederApi/packages.lock.json
@@ -2,6 +2,94 @@
"version": 1,
"dependencies": {
"net10.0": {
+ "Bitwarden.Server.Sdk.Environment": {
+ "type": "Direct",
+ "requested": "[0.1.0, )",
+ "resolved": "0.1.0",
+ "contentHash": "yLK3ik/+zQ4w41iDObvv4vq2QwWPaVMuyKFpzlgsukClOOuZUxJAivwnnZZDMXbp2wipWgaW4yeEY+yLdLVaVQ=="
+ },
+ "Bitwarden.Server.Sdk.Features": {
+ "type": "Direct",
+ "requested": "[1.4.0, )",
+ "resolved": "1.4.0",
+ "contentHash": "74Ir68CSZSUvZvVkb2CaUNHSAZcFMtZY5pReHz+K1eQX6+Am29iWS1i8DbQWq9F6KmCAEbqcGDyfAo4gRCurbg==",
+ "dependencies": {
+ "Bitwarden.Server.Sdk.Environment": "0.1.0",
+ "LaunchDarkly.ServerSdk": "8.14.1"
+ }
+ },
+ "Bitwarden.Server.Sdk.WebEssentials": {
+ "type": "Direct",
+ "requested": "[0.5.0, )",
+ "resolved": "0.5.0",
+ "contentHash": "pMKQCluxCGueZ8DK9NS8Xfa+/oxplS9NoSxd7JrI573JsKKl7THe2yeB772S7yogzmqt+0n3GrvA56b8fKOIsQ==",
+ "dependencies": {
+ "Bitwarden.Server.Sdk.Environment": "0.1.0"
+ }
+ },
+ "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
+ "type": "Direct",
+ "requested": "[1.15.3, )",
+ "resolved": "1.15.3",
+ "contentHash": "FEXJepcseTGbATiCkUfP7ipoFEYYfl/0UmmUwi0KxCPg9PaUA8ab2P1LGopK+/HExasJ1ZutFhZrN6WvUIR23g==",
+ "dependencies": {
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[1.15.3, )",
+ "resolved": "1.15.3",
+ "contentHash": "u8n/W8yIlqv0BXZmvId1iVaeWXG42tGKdTkuLYg5g57Y/r9CeUNzqtrSHNdG5IoO8iPX79w3v+WsbAHgUQbfeg==",
+ "dependencies": {
+ "OpenTelemetry": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Instrumentation.AspNetCore": {
+ "type": "Direct",
+ "requested": "[1.15.2, )",
+ "resolved": "1.15.2",
+ "contentHash": "2nPd7r0ug/gd6/CNFL6Rlu+RSQ9WYGSGHAYQ1ssbSqyzKJpqTunfx2I/1O0WB5k+L0cyXbG4XVZpoSoUc3M7wg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.EntityFrameworkCore": {
+ "type": "Direct",
+ "requested": "[1.12.0-beta.2, )",
+ "resolved": "1.12.0-beta.2",
+ "contentHash": "4D2PLiJWbBbQbauojkIflT11WGVXoRU+xgox1mvOkpfm7YXIfwTtROOlcdscS51sMh5fgwjGKJtLWpLKppe7dw==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.12.0, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Http": {
+ "type": "Direct",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "vFO4Fj/dXkoVNGo/nhoGpO2zYQmZwr4jTID7oRGo+XlQ8LqksyZjUXQ4p39RfUvTID7IzzL8Qe71tW7CcAFymA==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.Runtime": {
+ "type": "Direct",
+ "requested": "[1.15.1, )",
+ "resolved": "1.15.1",
+ "contentHash": "cpPwlUT5HXcLGPaIgsbSy0W9eFYAPGVbTP1p8/uyQ4Osvf5BJuPpEXE7crL09SmEd44r0DGNKDtsqxaAz0HxQw==",
+ "dependencies": {
+ "OpenTelemetry.Api": "[1.15.3, 2.0.0)"
+ }
+ },
+ "OpenTelemetry.Instrumentation.SqlClient": {
+ "type": "Direct",
+ "requested": "[1.15.2, )",
+ "resolved": "1.15.2",
+ "contentHash": "pRB84YJEXD121kygc6CtcF46dtLuTKIjphA2SJye32G4g2Xl3epkCrOcPCOAg4WDagCdMGa16Ge6PPVzFJZsAQ==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.15.3, 2.0.0)"
+ }
+ },
"AdaptiveCards": {
"type": "Transitive",
"resolved": "3.1.0",
@@ -155,20 +243,6 @@
"Newtonsoft.Json": "12.0.2"
}
},
- "Bitwarden.Server.Sdk.Environment": {
- "type": "Transitive",
- "resolved": "0.1.0",
- "contentHash": "yLK3ik/+zQ4w41iDObvv4vq2QwWPaVMuyKFpzlgsukClOOuZUxJAivwnnZZDMXbp2wipWgaW4yeEY+yLdLVaVQ=="
- },
- "Bitwarden.Server.Sdk.Features": {
- "type": "Transitive",
- "resolved": "1.4.0",
- "contentHash": "74Ir68CSZSUvZvVkb2CaUNHSAZcFMtZY5pReHz+K1eQX6+Am29iWS1i8DbQWq9F6KmCAEbqcGDyfAo4gRCurbg==",
- "dependencies": {
- "Bitwarden.Server.Sdk.Environment": "0.1.0",
- "LaunchDarkly.ServerSdk": "8.14.1"
- }
- },
"Bogus": {
"type": "Transitive",
"resolved": "35.6.5",
@@ -760,6 +834,27 @@
"resolved": "3.0.271",
"contentHash": "pqpqeK8xQGggExhr4tesVgJkjdn+9HQAO0QgrYV2hFjE3y90okzk1kQMntMiUOGfV7FrCUfKPaVvPBD4IANqKg=="
},
+ "OpenTelemetry": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "N0i6WjPoHPbZyms1ugbDIFAJFuGlpeExJMU/+XSL0lQRUkg/D0utFkDoLXf8Z1km5B+xVZ2GyMXXiX8qdeNmPg==",
+ "dependencies": {
+ "OpenTelemetry.Api.ProviderBuilderExtensions": "1.15.3"
+ }
+ },
+ "OpenTelemetry.Api": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "fX+fkCysfPut+qCcT3bKqyX4QN9Saf4CgX8HLOHywEVD+Xr7sULtfuypITpoDysjx8R59dn/3mWhgimMH8cm/g=="
+ },
+ "OpenTelemetry.Api.ProviderBuilderExtensions": {
+ "type": "Transitive",
+ "resolved": "1.15.3",
+ "contentHash": "SYn0lqYDwLMWhv/zlNGsQcl2yX++yTumanX46bmOZE/ZDOd1WjPBO2kZaZgKLEZTZk48pavIFGJ6vOvxXgWVFQ==",
+ "dependencies": {
+ "OpenTelemetry.Api": "1.15.3"
+ }
+ },
"Otp.NET": {
"type": "Transitive",
"resolved": "1.4.0",