1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-24 22:32:22 -05:00

Add InstallationUrl to support local development

- Support .pw domains
This commit is contained in:
Micaiah Martin 2025-04-18 08:59:38 -06:00
parent 4379e326a5
commit ce6270337c
3 changed files with 26 additions and 4 deletions

View File

@ -185,6 +185,7 @@ public class Context
{
public Guid InstallationId { get; set; }
public string InstallationKey { get; set; }
public string InstallationUrl { get; set; }
public CloudRegion CloudRegion { get; set; }
public bool DiffieHellman { get; set; }
public bool Trusted { get; set; }

View File

@ -8,4 +8,6 @@ public enum CloudRegion
US = 0,
[Display(Name = "EU")]
EU = 1,
[Display(Name = "DEV")]
DEV = 2,
}

View File

@ -205,6 +205,7 @@ public class Program
{
var installationId = string.Empty;
var installationKey = string.Empty;
var InstallationUrl = string.Empty;
CloudRegion cloudRegion;
if (_context.Parameters.ContainsKey("install-id"))
@ -243,6 +244,11 @@ public class Program
}
}
if (Environment.GetEnvironmentVariable("BW_INSTALLATION_URL") != null)
{
InstallationUrl = Environment.GetEnvironmentVariable("BW_INSTALLATION_URL");
}
if (_context.Parameters.ContainsKey("cloud-region"))
{
Enum.TryParse(_context.Parameters["cloud-region"], out cloudRegion);
@ -263,22 +269,35 @@ public class Program
_context.Install.InstallationId = installationidGuid;
_context.Install.InstallationKey = installationKey;
_context.Install.InstallationUrl = InstallationUrl;
_context.Install.CloudRegion = cloudRegion;
try
{
string url;
string regionBaseUrl;
switch (cloudRegion)
{
case CloudRegion.EU:
url = "https://api.bitwarden.eu/installations/";
regionBaseUrl = "bitwarden.eu";
break;
case CloudRegion.US:
default:
url = "https://api.bitwarden.com/installations/";
regionBaseUrl = "bitwarden.com";
break;
case CloudRegion.DEV:
regionBaseUrl = "bitwarden.pw";
break;
}
var response = new HttpClient().GetAsync(url + _context.Install.InstallationId).GetAwaiter().GetResult();
HttpResponseMessage response;
if (_context.Install.InstallationUrl != null)
{
response = new HttpClient().GetAsync($"https://api.{_context.Install.InstallationUrl}.{regionBaseUrl}/installations/{_context.Install.InstallationId}").GetAwaiter().GetResult();
}
else
{
response = new HttpClient().GetAsync($"https://api.{regionBaseUrl}/installations/{_context.Install.InstallationId}").GetAwaiter().GetResult();
}
if (!response.IsSuccessStatusCode)
{