mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 15:53:27 +00:00
[PS-1878] Feature/selfhost anonaddy (#4056)
* Add selfhosted anonaddy url * Remove newlines * Add serverurl field to web * Show anonaddy api errors * Add forwardedAnonAddyBaseUrl prop to UsernameGeneratorOptions type * Use Alias Domain instead of just Domain name This is easier to distinguish between domain and server url * Only show Server Url on web if on selfhosted bitwarden --------- Co-authored-by: Daniel James Smith <djsmith@web.de> Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
This commit is contained in:
@@ -11,6 +11,10 @@ export class AnonAddyForwarder implements Forwarder {
|
||||
if (options.anonaddy?.domain == null || options.anonaddy.domain === "") {
|
||||
throw "Invalid addy.io domain.";
|
||||
}
|
||||
if (options.anonaddy?.baseUrl == null || options.anonaddy.baseUrl === "") {
|
||||
throw "Invalid addy.io url.";
|
||||
}
|
||||
|
||||
const requestInit: RequestInit = {
|
||||
redirect: "manual",
|
||||
cache: "no-store",
|
||||
@@ -21,7 +25,7 @@ export class AnonAddyForwarder implements Forwarder {
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
}),
|
||||
};
|
||||
const url = "https://app.addy.io/api/v1/aliases";
|
||||
const url = options.anonaddy.baseUrl + "/api/v1/aliases";
|
||||
requestInit.body = JSON.stringify({
|
||||
domain: options.anonaddy.domain,
|
||||
description:
|
||||
@@ -37,6 +41,9 @@ export class AnonAddyForwarder implements Forwarder {
|
||||
if (response.status === 401) {
|
||||
throw "Invalid addy.io API token.";
|
||||
}
|
||||
if (response?.statusText != null) {
|
||||
throw "addy.io error:\n" + response.statusText;
|
||||
}
|
||||
throw "Unknown addy.io error occurred.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ export class FastmailForwarderOptions {
|
||||
|
||||
export class AnonAddyForwarderOptions {
|
||||
domain: string;
|
||||
baseUrl: string;
|
||||
}
|
||||
|
||||
export class ForwardEmailForwarderOptions {
|
||||
|
||||
@@ -10,6 +10,7 @@ export type UsernameGeneratorOptions = {
|
||||
forwardedService?: string;
|
||||
forwardedAnonAddyApiToken?: string;
|
||||
forwardedAnonAddyDomain?: string;
|
||||
forwardedAnonAddyBaseUrl?: string;
|
||||
forwardedDuckDuckGoToken?: string;
|
||||
forwardedFirefoxApiToken?: string;
|
||||
forwardedFastmailApiToken?: string;
|
||||
|
||||
@@ -24,6 +24,7 @@ const DefaultOptions: UsernameGeneratorOptions = {
|
||||
catchallType: "random",
|
||||
forwardedService: "",
|
||||
forwardedAnonAddyDomain: "anonaddy.me",
|
||||
forwardedAnonAddyBaseUrl: "https://app.addy.io",
|
||||
forwardedForwardEmailDomain: "hideaddress.net",
|
||||
};
|
||||
|
||||
@@ -131,6 +132,7 @@ export class UsernameGenerationService implements UsernameGenerationServiceAbstr
|
||||
forwarder = new AnonAddyForwarder();
|
||||
forwarderOptions.apiKey = o.forwardedAnonAddyApiToken;
|
||||
forwarderOptions.anonaddy.domain = o.forwardedAnonAddyDomain;
|
||||
forwarderOptions.anonaddy.baseUrl = o.forwardedAnonAddyBaseUrl;
|
||||
} else if (o.forwardedService === "firefoxrelay") {
|
||||
forwarder = new FirefoxRelayForwarder();
|
||||
forwarderOptions.apiKey = o.forwardedFirefoxApiToken;
|
||||
|
||||
Reference in New Issue
Block a user