Browse Source

Add InstallationUrl to support local development

- Support .pw domains
util/support-dev-env-installations
Micaiah Martin 8 months ago
parent
commit
ce6270337c
  1. 1
      util/Setup/Context.cs
  2. 2
      util/Setup/Enums/CloudRegion.cs
  3. 27
      util/Setup/Program.cs

1
util/Setup/Context.cs

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

2
util/Setup/Enums/CloudRegion.cs

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

27
util/Setup/Program.cs

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

Loading…
Cancel
Save