From a164a9645d7fb7e7a7281b121ae97f2391fdd4b9 Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:49:48 +0200 Subject: [PATCH 1/9] add option --- ...add_option_to_disable_all_traffic.down.sql | 1 + ...0_add_option_to_disable_all_traffic.up.sql | 1 + .../db/models/enterprise_settings.rs | 3 +++ web/src/i18n/en/index.ts | 5 +++++ web/src/i18n/i18n-types.ts | 20 +++++++++++++++++++ web/src/i18n/pl/index.ts | 5 +++++ .../components/EnterpriseForm.tsx | 13 ++++++++++++ web/src/shared/types.ts | 1 + 8 files changed, 49 insertions(+) create mode 100644 migrations/20240902103930_add_option_to_disable_all_traffic.down.sql create mode 100644 migrations/20240902103930_add_option_to_disable_all_traffic.up.sql diff --git a/migrations/20240902103930_add_option_to_disable_all_traffic.down.sql b/migrations/20240902103930_add_option_to_disable_all_traffic.down.sql new file mode 100644 index 0000000000..d07635dbce --- /dev/null +++ b/migrations/20240902103930_add_option_to_disable_all_traffic.down.sql @@ -0,0 +1 @@ +ALTER TABLE enterprisesettings DROP COLUMN disable_all_traffic; diff --git a/migrations/20240902103930_add_option_to_disable_all_traffic.up.sql b/migrations/20240902103930_add_option_to_disable_all_traffic.up.sql new file mode 100644 index 0000000000..21de95022a --- /dev/null +++ b/migrations/20240902103930_add_option_to_disable_all_traffic.up.sql @@ -0,0 +1 @@ +ALTER TABLE enterprisesettings ADD COLUMN disable_all_traffic BOOLEAN NOT NULL DEFAULT FALSE; diff --git a/src/enterprise/db/models/enterprise_settings.rs b/src/enterprise/db/models/enterprise_settings.rs index 2d97e2c668..5ea8ec938c 100644 --- a/src/enterprise/db/models/enterprise_settings.rs +++ b/src/enterprise/db/models/enterprise_settings.rs @@ -11,6 +11,8 @@ pub struct EnterpriseSettings { pub id: Option, // If true, only admins can manage devices pub admin_device_management: bool, + // If true, the option to route all traffic through the vpn is disabled in the client + pub disable_all_traffic: bool, } // We want to be conscious of what the defaults are here @@ -20,6 +22,7 @@ impl Default for EnterpriseSettings { Self { id: None, admin_device_management: false, + disable_all_traffic: false, } } } diff --git a/web/src/i18n/en/index.ts b/web/src/i18n/en/index.ts index 960b92475b..e69b2f08d9 100644 --- a/web/src/i18n/en/index.ts +++ b/web/src/i18n/en/index.ts @@ -1216,6 +1216,11 @@ const en: BaseTranslation = { helper: "When this option is enabled, only users in the Admin group can manage devices in user profile (it's disabled for all other users)", }, + disableAllTraffic: { + label: 'Disable the option to route all traffic through VPN', + helper: + 'When this option is enabled, users will not be able to route all traffic through the VPN using the defguard client.', + }, }, }, }, diff --git a/web/src/i18n/i18n-types.ts b/web/src/i18n/i18n-types.ts index 47721301af..aad4c8fb50 100644 --- a/web/src/i18n/i18n-types.ts +++ b/web/src/i18n/i18n-types.ts @@ -2883,6 +2883,16 @@ type RootTranslation = { */ helper: string } + disableAllTraffic: { + /** + * D​i​s​a​b​l​e​ ​t​h​e​ ​o​p​t​i​o​n​ ​t​o​ ​r​o​u​t​e​ ​a​l​l​ ​t​r​a​f​f​i​c​ ​t​h​r​o​u​g​h​ ​V​P​N + */ + label: string + /** + * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​u​s​e​r​s​ ​w​i​l​l​ ​n​o​t​ ​b​e​ ​a​b​l​e​ ​t​o​ ​r​o​u​t​e​ ​a​l​l​ ​t​r​a​f​f​i​c​ ​t​h​r​o​u​g​h​ ​t​h​e​ ​V​P​N​ ​u​s​i​n​g​ ​t​h​e​ ​d​e​f​g​u​a​r​d​ ​c​l​i​e​n​t​. + */ + helper: string + } } } } @@ -7061,6 +7071,16 @@ export type TranslationFunctions = { */ helper: () => LocalizedString } + disableAllTraffic: { + /** + * Disable the option to route all traffic through VPN + */ + label: () => LocalizedString + /** + * When this option is enabled, users will not be able to route all traffic through the VPN using the defguard client. + */ + helper: () => LocalizedString + } } } } diff --git a/web/src/i18n/pl/index.ts b/web/src/i18n/pl/index.ts index 1d6a739a37..1441255669 100644 --- a/web/src/i18n/pl/index.ts +++ b/web/src/i18n/pl/index.ts @@ -1202,6 +1202,11 @@ Uwaga, podane tutaj konfiguracje nie posiadają klucza prywatnego. Musisz uzupe helper: 'Kiedy ta opcja jest włączona, tylko użytkownicy w grupie "Admin" mogą zarządzać urządzeniami w profilu użytkownika', }, + disableAllTraffic: { + label: 'Zablokuj możliwość przekierowania całego ruchu przez VPN', + helper: + 'Kiedy ta opcja jest włączona, użytkownicy nie będą mogli przekierować całego ruchu przez VPN za pomocą klienta Defguard.', + }, }, }, }, diff --git a/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx b/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx index 9b2b39f9eb..a25685528d 100644 --- a/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx +++ b/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx @@ -62,6 +62,19 @@ export const EnterpriseForm = () => { {parse(LL.settingsPage.enterprise.fields.deviceManagement.helper())} +
+ + mutate({ disable_all_traffic: !settings.disable_all_traffic }) + } + /> + + {parse(LL.settingsPage.enterprise.fields.disableAllTraffic.helper())} + +
); diff --git a/web/src/shared/types.ts b/web/src/shared/types.ts index 62235d244f..3f9abfb7d1 100644 --- a/web/src/shared/types.ts +++ b/web/src/shared/types.ts @@ -871,6 +871,7 @@ export type SettingsLicense = { export type SettingsEnterprise = { admin_device_management: boolean; + disable_all_traffic: boolean; }; export type LicenseInfo = { From 4e37e1a56ec9aa586fff1290ee6d4b688771ed39 Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:58:38 +0200 Subject: [PATCH 2/9] sqlx prepare --- ...0c84f7854327282197758730d07b1506485855643044c.json} | 5 +++-- ...11748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json} | 10 ++++++++-- ...753919c31324a6739545bea1430de0b282b10d8b18a00.json} | 10 ++++++++-- ...4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json} | 5 +++-- tests/enterprise_settings.rs | 3 +++ 5 files changed, 25 insertions(+), 8 deletions(-) rename .sqlx/{query-c0883840b92550c4a2ba682d15ee4841bf9cdce2d87fa952457b157afbe2d756.json => query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json} (67%) rename .sqlx/{query-a1836fa232271fdd5d61f0d34048741a269f654ef6eb1fa2f6b95e68ed7e04e1.json => query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json} (54%) rename .sqlx/{query-bcba1892b88c1aecf5fb4112c03b4ec9ffc2f61e38c74630dac5e32f3736c113.json => query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json} (54%) rename .sqlx/{query-226259d2006f1a0bc904f5a25f9bbc71c19a867b626493b9f973a5cc09f5e3c0.json => query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json} (60%) diff --git a/.sqlx/query-c0883840b92550c4a2ba682d15ee4841bf9cdce2d87fa952457b157afbe2d756.json b/.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json similarity index 67% rename from .sqlx/query-c0883840b92550c4a2ba682d15ee4841bf9cdce2d87fa952457b157afbe2d756.json rename to .sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json index 9c7724501b..8d15d4658a 100644 --- a/.sqlx/query-c0883840b92550c4a2ba682d15ee4841bf9cdce2d87fa952457b157afbe2d756.json +++ b/.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\") VALUES ($1) RETURNING id", + "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"disable_all_traffic\") VALUES ($1,$2) RETURNING id", "describe": { "columns": [ { @@ -11,6 +11,7 @@ ], "parameters": { "Left": [ + "Bool", "Bool" ] }, @@ -18,5 +19,5 @@ false ] }, - "hash": "c0883840b92550c4a2ba682d15ee4841bf9cdce2d87fa952457b157afbe2d756" + "hash": "452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c" } diff --git a/.sqlx/query-a1836fa232271fdd5d61f0d34048741a269f654ef6eb1fa2f6b95e68ed7e04e1.json b/.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json similarity index 54% rename from .sqlx/query-a1836fa232271fdd5d61f0d34048741a269f654ef6eb1fa2f6b95e68ed7e04e1.json rename to .sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json index 31a8e79fb3..eb67fc8d06 100644 --- a/.sqlx/query-a1836fa232271fdd5d61f0d34048741a269f654ef6eb1fa2f6b95e68ed7e04e1.json +++ b/.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT id \"id?\", \"admin_device_management\" FROM \"enterprisesettings\" WHERE id = $1", + "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\" WHERE id = $1", "describe": { "columns": [ { @@ -12,6 +12,11 @@ "ordinal": 1, "name": "admin_device_management", "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "disable_all_traffic", + "type_info": "Bool" } ], "parameters": { @@ -20,9 +25,10 @@ ] }, "nullable": [ + false, false, false ] }, - "hash": "a1836fa232271fdd5d61f0d34048741a269f654ef6eb1fa2f6b95e68ed7e04e1" + "hash": "58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e" } diff --git a/.sqlx/query-bcba1892b88c1aecf5fb4112c03b4ec9ffc2f61e38c74630dac5e32f3736c113.json b/.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json similarity index 54% rename from .sqlx/query-bcba1892b88c1aecf5fb4112c03b4ec9ffc2f61e38c74630dac5e32f3736c113.json rename to .sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json index ba99ad5635..2cdc516652 100644 --- a/.sqlx/query-bcba1892b88c1aecf5fb4112c03b4ec9ffc2f61e38c74630dac5e32f3736c113.json +++ b/.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT id \"id?\", \"admin_device_management\" FROM \"enterprisesettings\"", + "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\"", "describe": { "columns": [ { @@ -12,15 +12,21 @@ "ordinal": 1, "name": "admin_device_management", "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "disable_all_traffic", + "type_info": "Bool" } ], "parameters": { "Left": [] }, "nullable": [ + false, false, false ] }, - "hash": "bcba1892b88c1aecf5fb4112c03b4ec9ffc2f61e38c74630dac5e32f3736c113" + "hash": "63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00" } diff --git a/.sqlx/query-226259d2006f1a0bc904f5a25f9bbc71c19a867b626493b9f973a5cc09f5e3c0.json b/.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json similarity index 60% rename from .sqlx/query-226259d2006f1a0bc904f5a25f9bbc71c19a867b626493b9f973a5cc09f5e3c0.json rename to .sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json index 0fda229cca..7eebfefc01 100644 --- a/.sqlx/query-226259d2006f1a0bc904f5a25f9bbc71c19a867b626493b9f973a5cc09f5e3c0.json +++ b/.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json @@ -1,15 +1,16 @@ { "db_name": "PostgreSQL", - "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2 WHERE id = $1", + "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"disable_all_traffic\" = $3 WHERE id = $1", "describe": { "columns": [], "parameters": { "Left": [ "Int8", + "Bool", "Bool" ] }, "nullable": [] }, - "hash": "226259d2006f1a0bc904f5a25f9bbc71c19a867b626493b9f973a5cc09f5e3c0" + "hash": "64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302" } diff --git a/tests/enterprise_settings.rs b/tests/enterprise_settings.rs index 3239870e82..b388e5888a 100644 --- a/tests/enterprise_settings.rs +++ b/tests/enterprise_settings.rs @@ -41,6 +41,7 @@ async fn test_only_enterprise_can_modify() { let settings = EnterpriseSettings { id: None, admin_device_management: true, + disable_all_traffic: false, }; let response = client @@ -84,6 +85,7 @@ async fn test_admin_devices_management_is_enforced() { let settings = EnterpriseSettings { id: None, admin_device_management: true, + disable_all_traffic: false, }; let response = client .patch("/api/v1/settings_enterprise") @@ -160,6 +162,7 @@ async fn test_regular_user_device_management() { let settings = EnterpriseSettings { id: None, admin_device_management: false, + disable_all_traffic: false, }; let response = client .patch("/api/v1/settings_enterprise") From c94eb27a3c2e91e255a2065cdf7f714ed23faeaf Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Thu, 5 Sep 2024 13:25:55 +0200 Subject: [PATCH 3/9] prepare --- ...bb744104284cb6bc7070127797bd6df0ac7af.json | 44 ------------------ ...7ea0091c302e9c27de798a2f50901ffd747e0.json | 24 ---------- ...4327282197758730d07b1506485855643044c.json | 31 ------------- ...d81db67dfb1c0c2c01cf1fd9c8df421f366ef.json | 17 +++++++ ...b9533cdfa1efa6bf1c14e92f30960d56e445e.json | 46 ------------------- ...ea91e86978f827cbff94a6a28338a7b0bf6ee.json | 46 ------------------- ...1324a6739545bea1430de0b282b10d8b18a00.json | 44 ------------------ ...1a2421fb7cca1f1f7b174a9e009a9f31b4302.json | 24 ---------- ...0d4707e9b8e9829965bf6e4b334d1ab41bb6b.json | 40 ++++++++++++++++ ...98b8a69e1227e8bfbd2b1d0110c8def72f8aa.json | 24 ++++++++++ ...38b514c12becf8e9dfbb8641b02e4deb8b5e5.json | 31 ------------- ...0a07aa53bfe7f783fcb9257312304094d5edc.json | 38 +++++++++++++++ 12 files changed, 119 insertions(+), 290 deletions(-) delete mode 100644 .sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json delete mode 100644 .sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json delete mode 100644 .sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json create mode 100644 .sqlx/query-48223bdfca4f2bd5c7cd14594f5d81db67dfb1c0c2c01cf1fd9c8df421f366ef.json delete mode 100644 .sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json delete mode 100644 .sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json delete mode 100644 .sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json delete mode 100644 .sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json create mode 100644 .sqlx/query-68fc762354c30e66a83ba47746a0d4707e9b8e9829965bf6e4b334d1ab41bb6b.json create mode 100644 .sqlx/query-834d5b83aebddf1e23511025d5f98b8a69e1227e8bfbd2b1d0110c8def72f8aa.json delete mode 100644 .sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json create mode 100644 .sqlx/query-e2483b9d167af9476ba49c63fa20a07aa53bfe7f783fcb9257312304094d5edc.json diff --git a/.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json b/.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json deleted file mode 100644 index f139b60e47..0000000000 --- a/.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\"", -======== - "query": "SELECT id \"id?\", \"admin_device_management\",\"only_client_activation\" FROM \"enterprisesettings\"", ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id?", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "admin_device_management", - "type_info": "Bool" - }, - { - "ordinal": 2, -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "name": "disable_all_traffic", -======== - "name": "only_client_activation", ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json - "type_info": "Bool" - } - ], - "parameters": { - "Left": [] - }, - "nullable": [ - false, - false, - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "hash": "63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00" -======== - "hash": "205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af" ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json -} diff --git a/.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json b/.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json deleted file mode 100644 index 7faad86614..0000000000 --- a/.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json - "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"disable_all_traffic\" = $3 WHERE id = $1", -======== - "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"only_client_activation\" = $3 WHERE id = $1", ->>>>>>>> dev:.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Int8", - "Bool", - "Bool" - ] - }, - "nullable": [] - }, -<<<<<<<< HEAD:.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json - "hash": "64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302" -======== - "hash": "35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0" ->>>>>>>> dev:.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json -} diff --git a/.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json b/.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json deleted file mode 100644 index acfbe71767..0000000000 --- a/.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json - "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"disable_all_traffic\") VALUES ($1,$2) RETURNING id", -======== - "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"only_client_activation\") VALUES ($1,$2) RETURNING id", ->>>>>>>> dev:.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Bool", - "Bool" - ] - }, - "nullable": [ - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json - "hash": "452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c" -======== - "hash": "bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5" ->>>>>>>> dev:.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json -} diff --git a/.sqlx/query-48223bdfca4f2bd5c7cd14594f5d81db67dfb1c0c2c01cf1fd9c8df421f366ef.json b/.sqlx/query-48223bdfca4f2bd5c7cd14594f5d81db67dfb1c0c2c01cf1fd9c8df421f366ef.json new file mode 100644 index 0000000000..2eb5251a9f --- /dev/null +++ b/.sqlx/query-48223bdfca4f2bd5c7cd14594f5d81db67dfb1c0c2c01cf1fd9c8df421f366ef.json @@ -0,0 +1,17 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"disable_all_traffic\" = $3,\"only_client_activation\" = $4 WHERE id = $1", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8", + "Bool", + "Bool", + "Bool" + ] + }, + "nullable": [] + }, + "hash": "48223bdfca4f2bd5c7cd14594f5d81db67dfb1c0c2c01cf1fd9c8df421f366ef" +} diff --git a/.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json b/.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json deleted file mode 100644 index 9ef9f14262..0000000000 --- a/.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\" WHERE id = $1", -======== - "query": "SELECT id \"id?\", \"admin_device_management\",\"only_client_activation\" FROM \"enterprisesettings\" WHERE id = $1", ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id?", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "admin_device_management", - "type_info": "Bool" - }, - { - "ordinal": 2, -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "name": "disable_all_traffic", -======== - "name": "only_client_activation", ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json - "type_info": "Bool" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false, - false, - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "hash": "58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e" -======== - "hash": "6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee" ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json -} diff --git a/.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json b/.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json deleted file mode 100644 index 9ef9f14262..0000000000 --- a/.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\" WHERE id = $1", -======== - "query": "SELECT id \"id?\", \"admin_device_management\",\"only_client_activation\" FROM \"enterprisesettings\" WHERE id = $1", ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id?", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "admin_device_management", - "type_info": "Bool" - }, - { - "ordinal": 2, -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "name": "disable_all_traffic", -======== - "name": "only_client_activation", ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json - "type_info": "Bool" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false, - false, - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e.json - "hash": "58b40568ab5722525d811748c54b9533cdfa1efa6bf1c14e92f30960d56e445e" -======== - "hash": "6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee" ->>>>>>>> dev:.sqlx/query-6332fe33694ebd090eba2ef0777ea91e86978f827cbff94a6a28338a7b0bf6ee.json -} diff --git a/.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json b/.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json deleted file mode 100644 index f139b60e47..0000000000 --- a/.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\" FROM \"enterprisesettings\"", -======== - "query": "SELECT id \"id?\", \"admin_device_management\",\"only_client_activation\" FROM \"enterprisesettings\"", ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id?", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "admin_device_management", - "type_info": "Bool" - }, - { - "ordinal": 2, -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "name": "disable_all_traffic", -======== - "name": "only_client_activation", ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json - "type_info": "Bool" - } - ], - "parameters": { - "Left": [] - }, - "nullable": [ - false, - false, - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00.json - "hash": "63cef35852393b62a7c753919c31324a6739545bea1430de0b282b10d8b18a00" -======== - "hash": "205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af" ->>>>>>>> dev:.sqlx/query-205507ac888563e614157c6977abb744104284cb6bc7070127797bd6df0ac7af.json -} diff --git a/.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json b/.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json deleted file mode 100644 index 7faad86614..0000000000 --- a/.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json - "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"disable_all_traffic\" = $3 WHERE id = $1", -======== - "query": "UPDATE \"enterprisesettings\" SET \"admin_device_management\" = $2,\"only_client_activation\" = $3 WHERE id = $1", ->>>>>>>> dev:.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Int8", - "Bool", - "Bool" - ] - }, - "nullable": [] - }, -<<<<<<<< HEAD:.sqlx/query-64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302.json - "hash": "64d1abbdfb34b2f3b2a4c4a54fe1a2421fb7cca1f1f7b174a9e009a9f31b4302" -======== - "hash": "35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0" ->>>>>>>> dev:.sqlx/query-35950188e70029c8314055621857ea0091c302e9c27de798a2f50901ffd747e0.json -} diff --git a/.sqlx/query-68fc762354c30e66a83ba47746a0d4707e9b8e9829965bf6e4b334d1ab41bb6b.json b/.sqlx/query-68fc762354c30e66a83ba47746a0d4707e9b8e9829965bf6e4b334d1ab41bb6b.json new file mode 100644 index 0000000000..010db59ccd --- /dev/null +++ b/.sqlx/query-68fc762354c30e66a83ba47746a0d4707e9b8e9829965bf6e4b334d1ab41bb6b.json @@ -0,0 +1,40 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\",\"only_client_activation\" FROM \"enterprisesettings\" WHERE id = $1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id?", + "type_info": "Int8" + }, + { + "ordinal": 1, + "name": "admin_device_management", + "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "disable_all_traffic", + "type_info": "Bool" + }, + { + "ordinal": 3, + "name": "only_client_activation", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "68fc762354c30e66a83ba47746a0d4707e9b8e9829965bf6e4b334d1ab41bb6b" +} diff --git a/.sqlx/query-834d5b83aebddf1e23511025d5f98b8a69e1227e8bfbd2b1d0110c8def72f8aa.json b/.sqlx/query-834d5b83aebddf1e23511025d5f98b8a69e1227e8bfbd2b1d0110c8def72f8aa.json new file mode 100644 index 0000000000..96a0c7b4e7 --- /dev/null +++ b/.sqlx/query-834d5b83aebddf1e23511025d5f98b8a69e1227e8bfbd2b1d0110c8def72f8aa.json @@ -0,0 +1,24 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"disable_all_traffic\",\"only_client_activation\") VALUES ($1,$2,$3) RETURNING id", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Bool", + "Bool", + "Bool" + ] + }, + "nullable": [ + false + ] + }, + "hash": "834d5b83aebddf1e23511025d5f98b8a69e1227e8bfbd2b1d0110c8def72f8aa" +} diff --git a/.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json b/.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json deleted file mode 100644 index acfbe71767..0000000000 --- a/.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "db_name": "PostgreSQL", -<<<<<<<< HEAD:.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json - "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"disable_all_traffic\") VALUES ($1,$2) RETURNING id", -======== - "query": "INSERT INTO \"enterprisesettings\" (\"admin_device_management\",\"only_client_activation\") VALUES ($1,$2) RETURNING id", ->>>>>>>> dev:.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Bool", - "Bool" - ] - }, - "nullable": [ - false - ] - }, -<<<<<<<< HEAD:.sqlx/query-452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c.json - "hash": "452f63b9fffe9a0c9d60c84f7854327282197758730d07b1506485855643044c" -======== - "hash": "bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5" ->>>>>>>> dev:.sqlx/query-bd0665f9401b5919b55e8b68ef238b514c12becf8e9dfbb8641b02e4deb8b5e5.json -} diff --git a/.sqlx/query-e2483b9d167af9476ba49c63fa20a07aa53bfe7f783fcb9257312304094d5edc.json b/.sqlx/query-e2483b9d167af9476ba49c63fa20a07aa53bfe7f783fcb9257312304094d5edc.json new file mode 100644 index 0000000000..beb848d755 --- /dev/null +++ b/.sqlx/query-e2483b9d167af9476ba49c63fa20a07aa53bfe7f783fcb9257312304094d5edc.json @@ -0,0 +1,38 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT id \"id?\", \"admin_device_management\",\"disable_all_traffic\",\"only_client_activation\" FROM \"enterprisesettings\"", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id?", + "type_info": "Int8" + }, + { + "ordinal": 1, + "name": "admin_device_management", + "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "disable_all_traffic", + "type_info": "Bool" + }, + { + "ordinal": 3, + "name": "only_client_activation", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "e2483b9d167af9476ba49c63fa20a07aa53bfe7f783fcb9257312304094d5edc" +} From 71323b120966745aa3f5033d9d0ef27feb82b6db Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:23:00 +0200 Subject: [PATCH 4/9] send the value via config polling --- src/enterprise/grpc/polling.rs | 7 +- src/grpc/utils.rs | 31 +- web/src/i18n/i18n-types.ts | 17850 +++++++--------- .../components/EnterpriseForm.tsx | 2 +- 4 files changed, 7708 insertions(+), 10182 deletions(-) diff --git a/src/enterprise/grpc/polling.rs b/src/enterprise/grpc/polling.rs index f351a89be2..168d1d7ef4 100644 --- a/src/enterprise/grpc/polling.rs +++ b/src/enterprise/grpc/polling.rs @@ -1,7 +1,10 @@ use crate::{ db::{models::polling_token::PollingToken, DbPool, Device, User}, enterprise::license::{get_cached_license, validate_license}, - grpc::utils::build_device_config_response, + grpc::{ + proto::InstanceConfigResponse, + utils::{build_device_config_response, build_instance_config_response}, + }, }; use tonic::Status; @@ -81,8 +84,10 @@ impl PollingServer { // Build & return polling info let device_config = build_device_config_response(&self.pool, &device.wireguard_pubkey).await?; + let instance_config = build_instance_config_response(&self.pool).await?; Ok(InstanceInfoResponse { device_config: Some(device_config), + instance_config: Some(instance_config), }) } } diff --git a/src/grpc/utils.rs b/src/grpc/utils.rs index f19a1bb555..8fae39bc7a 100644 --- a/src/grpc/utils.rs +++ b/src/grpc/utils.rs @@ -1,11 +1,17 @@ -use super::InstanceInfo; +use super::{proto::InstanceConfigResponse, InstanceInfo}; use ipnetwork::IpNetwork; use tonic::Status; use super::proto::{DeviceConfig as ProtoDeviceConfig, DeviceConfigResponse}; -use crate::db::{ - models::{device::WireguardNetworkDevice, wireguard::WireguardNetwork}, - DbPool, Device, Settings, User, +use crate::{ + db::{ + models::{device::WireguardNetworkDevice, wireguard::WireguardNetwork}, + DbPool, Device, Settings, User, + }, + enterprise::{ + db::models::enterprise_settings::EnterpriseSettings, + license::{get_cached_license, validate_license}, + }, }; pub(crate) async fn build_device_config_response( @@ -90,3 +96,20 @@ pub(crate) async fn build_device_config_response( token: None, }) } + +pub(crate) async fn build_instance_config_response( + pool: &DbPool, +) -> Result { + debug!("Building instance config response"); + let enterprise = validate_license(get_cached_license().as_ref()).is_ok(); + let enterprise_settings = EnterpriseSettings::get(pool).await.map_err(|_| { + error!("Failed to get enterprise settings while building instance config response"); + Status::internal("unexpected error") + })?; + debug!("Instance config response built"); + + Ok(InstanceConfigResponse { + enterprise, + disable_route_all_traffic: enterprise_settings.disable_all_traffic, + }) +} diff --git a/web/src/i18n/i18n-types.ts b/web/src/i18n/i18n-types.ts index 7ad92ea40d..2a2c2a7ff4 100644 --- a/web/src/i18n/i18n-types.ts +++ b/web/src/i18n/i18n-types.ts @@ -1,8589 +1,7579 @@ // This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. /* eslint-disable */ -import type { - BaseTranslation as BaseTranslationType, - LocalizedString, - RequiredParams, -} from 'typesafe-i18n'; +import type { BaseTranslation as BaseTranslationType, LocalizedString, RequiredParams } from 'typesafe-i18n' -export type BaseTranslation = BaseTranslationType; -export type BaseLocale = 'en'; +export type BaseTranslation = BaseTranslationType +export type BaseLocale = 'en' export type Locales = | 'en' | 'ko' | 'pl' -export type Translation = RootTranslation; +export type Translation = RootTranslation -export type Translations = RootTranslation; +export type Translations = RootTranslation type RootTranslation = { - common: { - conditions: { - /** - * o​r - */ - or: string; - /** - * a​n​d - */ - and: string; - /** - * e​q​u​a​l - */ - equal: string; - }; - controls: { - /** - * N​e​x​t - */ - next: string; - /** - * B​a​c​k - */ - back: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - /** - * C​o​n​f​i​r​m - */ - confirm: string; - /** - * S​u​b​m​i​t - */ - submit: string; - /** - * C​l​o​s​e - */ - close: string; - /** - * S​e​l​e​c​t - */ - select: string; - /** - * F​i​n​i​s​h - */ - finish: string; - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - saveChanges: string; - /** - * S​a​v​e - */ - save: string; - /** - * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t - */ - RestoreDefault: string; - /** - * D​e​l​e​t​e - */ - delete: string; - /** - * R​e​n​a​m​e - */ - rename: string; - /** - * C​o​p​y - */ - copy: string; - /** - * E​d​i​t - */ - edit: string; - }; - /** - * K​e​y - */ - key: string; - /** - * N​a​m​e - */ - name: string; - }; - messages: { - /** - * E​r​r​o​r​ ​h​a​s​ ​o​c​c​u​r​r​e​d​. - */ - error: string; - /** - * O​p​e​r​a​t​i​o​n​ ​s​u​c​c​e​e​d​e​d - */ - success: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​a​p​p​l​i​c​a​t​i​o​n​ ​v​e​r​s​i​o​n​. - */ - errorVersion: string; - /** - * C​o​n​t​e​x​t​ ​i​s​ ​n​o​t​ ​s​e​c​u​r​e​. - */ - insecureContext: string; - /** - * D​e​t​a​i​l​s​: - */ - details: string; - clipboard: { - /** - * C​l​i​p​b​o​a​r​d​ ​i​s​ ​n​o​t​ ​a​c​c​e​s​s​i​b​l​e​. - */ - error: string; - /** - * C​o​n​t​e​n​t​ ​c​o​p​i​e​d​ ​t​o​ ​c​l​i​p​b​o​a​r​d​. - */ - success: string; - }; - }; - modals: { - addGroup: { - /** - * A​d​d​ ​g​r​o​u​p - */ - title: string; - /** - * S​e​l​e​c​t​ ​a​l​l​ ​u​s​e​r​s - */ - selectAll: string; - /** - * G​r​o​u​p​ ​n​a​m​e - */ - groupName: string; - /** - * F​i​l​t​e​r​/​S​e​a​r​c​h - */ - searchPlaceholder: string; - /** - * C​r​e​a​t​e​ ​g​r​o​u​p - */ - submit: string; - }; - editGroup: { - /** - * E​d​i​t​ ​g​r​o​u​p - */ - title: string; - /** - * S​e​l​e​c​t​ ​a​l​l​ ​u​s​e​r​s - */ - selectAll: string; - /** - * G​r​o​u​p​ ​n​a​m​e - */ - groupName: string; - /** - * F​i​l​t​e​r​/​S​e​a​r​c​h - */ - searchPlaceholder: string; - /** - * U​p​d​a​t​e​ ​g​r​o​u​p - */ - submit: string; - }; - deleteGroup: { - /** - * D​e​l​e​t​e​ ​g​r​o​u​p​ ​{​n​a​m​e​} - * @param {string} name - */ - title: RequiredParams<'name'>; - /** - * T​h​i​s​ ​a​c​t​i​o​n​ ​w​i​l​l​ ​p​e​r​m​a​n​e​n​t​l​y​ ​d​e​l​e​t​e​ ​t​h​i​s​ ​g​r​o​u​p​. - */ - subTitle: string; - /** - * T​h​i​s​ ​g​r​o​u​p​ ​i​s​ ​c​u​r​r​e​n​t​l​y​ ​a​s​s​i​g​n​e​d​ ​t​o​ ​f​o​l​l​o​w​i​n​g​ ​V​P​N​ ​L​o​c​a​t​i​o​n​s​: - */ - locationListHeader: string; - /** - * I​f​ ​t​h​i​s​ ​i​s​ ​t​h​e​ ​o​n​l​y​ ​a​l​l​o​w​e​d​ ​g​r​o​u​p​ ​f​o​r​ ​a​ ​g​i​v​e​n​ ​l​o​c​a​t​i​o​n​,​ ​t​h​e​ ​l​o​c​a​t​i​o​n​ ​w​i​l​l​ ​b​e​c​o​m​e​ ​<​b​>​a​c​c​e​s​s​i​b​l​e​ ​t​o​ ​a​l​l​ ​u​s​e​r​s​<​/​b​>​. - */ - locationListFooter: string; - /** - * D​e​l​e​t​e​ ​g​r​o​u​p - */ - submit: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - }; - deviceConfig: { - /** - * D​e​v​i​c​e​ ​V​P​N​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​s - */ - title: string; - }; - changePasswordSelf: { - /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d - */ - title: string; - messages: { - /** - * P​a​s​s​w​o​r​d​ ​h​a​s​ ​b​e​e​n​ ​c​h​a​n​g​e​d - */ - success: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​c​h​a​n​g​e​d​ ​p​a​s​s​w​o​r​d - */ - error: string; - }; - form: { - labels: { - /** - * N​e​w​ ​p​a​s​s​w​o​r​d - */ - newPassword: string; - /** - * C​u​r​r​e​n​t​ ​p​a​s​s​w​o​r​d - */ - oldPassword: string; - /** - * C​o​n​f​i​r​m​ ​n​e​w​ ​p​a​s​s​w​o​r​d - */ - repeat: string; - }; - }; - controls: { - /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d - */ - submit: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - }; - }; - startEnrollment: { - /** - * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t - */ - title: string; - /** - * D​e​s​k​t​o​p​ ​a​c​t​i​v​a​t​i​o​n - */ - desktopTitle: string; - messages: { - /** - * U​s​e​r​ ​e​n​r​o​l​l​m​e​n​t​ ​s​t​a​r​t​e​d - */ - success: string; - /** - * D​e​s​k​t​o​p​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​s​t​a​r​t​e​d - */ - successDesktop: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​s​t​a​r​t​ ​u​s​e​r​ ​e​n​r​o​l​l​m​e​n​t - */ - error: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​s​t​a​r​t​ ​d​e​s​k​t​o​p​ ​a​c​t​i​v​a​t​i​o​n - */ - errorDesktop: string; - }; - form: { - email: { - /** - * E​m​a​i​l - */ - label: string; - }; - mode: { - options: { - /** - * S​e​n​d​ ​t​o​k​e​n​ ​b​y​ ​e​m​a​i​l - */ - email: string; - /** - * D​e​l​i​v​e​r​ ​t​o​k​e​n​ ​y​o​u​r​s​e​l​f - */ - manual: string; - }; - }; - /** - * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t - */ - submit: string; - /** - * A​c​t​i​v​a​t​e​ ​d​e​s​k​t​o​p - */ - submitDesktop: string; - /** - * C​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​t​o​ ​s​e​n​d​ ​t​o​k​e​n​ ​b​y​ ​e​m​a​i​l​.​ ​G​o​ ​t​o​ ​S​e​t​t​i​n​g​s​ ​-​>​ ​S​M​T​P​. - */ - smtpDisabled: string; - }; - tokenCard: { - /** - * A​c​t​i​v​a​t​i​o​n​ ​t​o​k​e​n - */ - title: string; - }; - urlCard: { - /** - * D​e​f​g​u​a​r​d​ ​I​n​s​t​a​n​c​e​ ​U​R​L - */ - title: string; - }; - }; - deleteNetwork: { - /** - * D​e​l​e​t​e​ ​{​n​a​m​e​}​ ​l​o​c​a​t​i​o​n - * @param {string} name - */ - title: RequiredParams<'name'>; - /** - * T​h​i​s​ ​a​c​t​i​o​n​ ​w​i​l​l​ ​p​e​r​m​a​n​e​n​t​l​y​ ​d​e​l​e​t​e​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​. - */ - subTitle: string; - /** - * D​e​l​e​t​e​ ​l​o​c​a​t​i​o​n - */ - submit: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - }; - changeWebhook: { - messages: { - /** - * W​e​b​h​o​o​k​ ​c​h​a​n​g​e​d​. - */ - success: string; - }; - }; - manageWebAuthNKeys: { - /** - * S​e​c​u​r​i​t​y​ ​k​e​y​s - */ - title: string; - messages: { - /** - * W​e​b​A​u​t​h​N​ ​k​e​y​ ​h​a​s​ ​b​e​e​n​ ​d​e​l​e​t​e​d​. - */ - deleted: string; - /** - * K​e​y​ ​i​s​ ​a​l​r​e​a​d​y​ ​r​e​g​i​s​t​e​r​e​d - */ - duplicateKeyError: string; - }; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​S​e​c​u​r​i​t​y​ ​k​e​y​s​ ​c​a​n​ ​b​e​ ​u​s​e​d​ ​a​s​ ​y​o​u​r​ ​s​e​c​o​n​d​ ​f​a​c​t​o​r​ ​o​f​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​i​n​s​t​e​a​d​ ​o​f​ ​a​ ​v​e​r​i​f​i​c​a​t​i​o​n​ ​c​o​d​e​.​ ​L​e​a​r​n​ ​m​o​r​e​ ​a​b​o​u​t​ ​c​o​n​f​i​g​u​r​i​n​g​ ​a​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​s​e​c​u​r​i​t​y​ ​k​e​y​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - + common: { + conditions: { + /** + * o​r */ - infoMessage: string; - form: { - messages: { - /** - * S​e​c​u​r​i​t​y​ ​k​e​y​ ​a​d​d​e​d​. - */ - success: string; - }; - fields: { - name: { - /** - * N​e​w​ ​k​e​y​ ​n​a​m​e - */ - label: string; - }; - }; - controls: { - /** - * A​d​d​ ​n​e​w​ ​K​e​y - */ - submit: string; - }; - }; - }; - recoveryCodes: { - /** - * R​e​c​o​v​e​r​y​ ​c​o​d​e​s - */ - title: string; - /** - * I​ ​h​a​v​e​ ​s​a​v​e​d​ ​m​y​ ​c​o​d​e​s - */ - submit: string; - messages: { - /** - * C​o​d​e​s​ ​c​o​p​i​e​d​. - */ - copied: string; - }; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​r​e​a​t​ ​y​o​u​r​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​s​ ​w​i​t​h​ ​t​h​e​ ​s​a​m​e​ ​l​e​v​e​l​ ​o​f​ ​a​t​t​e​n​t​i​o​n​ ​a​s​ ​y​o​u​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​w​o​u​l​d​ ​y​o​u​r​ ​p​a​s​s​w​o​r​d​!​ ​W​e​ ​r​e​c​o​m​m​e​n​d​ ​s​a​v​i​n​g​ ​t​h​e​m​ ​w​i​t​h​ ​a​ ​p​a​s​s​w​o​r​d​ ​m​a​n​a​g​e​r​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​s​u​c​h​ ​a​s​ ​L​a​s​t​p​a​s​s​,​ ​b​i​t​w​a​r​d​e​n​ ​o​r​ ​K​e​e​p​e​r​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - + or: string + /** + * a​n​d */ - infoMessage: string; - }; - registerTOTP: { - /** - * A​u​t​h​e​n​t​i​c​a​t​o​r​ ​A​p​p​ ​S​e​t​u​p - */ - title: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​M​F​A​,​ ​s​c​a​n​ ​t​h​i​s​ ​Q​R​ ​c​o​d​e​ ​w​i​t​h​ ​y​o​u​r​ ​a​u​t​h​e​n​t​i​c​a​t​o​r​ ​a​p​p​,​ ​t​h​e​n​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​e​n​t​e​r​ ​t​h​e​ ​c​o​d​e​ ​i​n​ ​t​h​e​ ​f​i​e​l​d​ ​b​e​l​o​w​:​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - + and: string + /** + * e​q​u​a​l */ - infoMessage: string; - messages: { - /** - * T​O​T​P​ ​p​a​t​h​ ​c​o​p​i​e​d​. - */ - totpCopied: string; - /** - * T​O​T​P​ ​E​n​a​b​l​e​d - */ - success: string; - }; - /** - * C​o​p​y​ ​T​O​T​P​ ​p​a​t​h - */ - copyPath: string; - form: { - fields: { - code: { - /** - * A​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e - */ - label: string; - /** - * C​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d - */ - error: string; - }; - }; - controls: { - /** - * V​e​r​i​f​y​ ​c​o​d​e - */ - submit: string; - }; - }; - }; - registerEmailMFA: { - /** - * E​m​a​i​l​ ​M​F​A​ ​S​e​t​u​p - */ - title: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​M​F​A​ ​e​n​t​e​r​ ​t​h​e​ ​c​o​d​e​ ​t​h​a​t​ ​w​a​s​ ​s​e​n​t​ ​t​o​ ​y​o​u​r​ ​a​c​c​o​u​n​t​ ​e​m​a​i​l​:​ ​<​s​t​r​o​n​g​>​{​e​m​a​i​l​}​<​/​s​t​r​o​n​g​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - - * @param {string} email + equal: string + } + controls: { + /** + * N​e​x​t */ - infoMessage: RequiredParams<'email'>; - messages: { - /** - * E​m​a​i​l​ ​M​F​A​ ​E​n​a​b​l​e​d - */ - success: string; - /** - * V​e​r​i​f​i​c​a​t​i​o​n​ ​c​o​d​e​ ​r​e​s​e​n​t - */ - resend: string; - }; - form: { - fields: { - code: { - /** - * E​m​a​i​l​ ​c​o​d​e - */ - label: string; - /** - * C​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d - */ - error: string; - }; - }; - controls: { - /** - * V​e​r​i​f​y​ ​c​o​d​e - */ - submit: string; - /** - * R​e​s​e​n​d​ ​e​m​a​i​l - */ - resend: string; - }; - }; - }; - editDevice: { - /** - * E​d​i​t​ ​d​e​v​i​c​e - */ - title: string; - messages: { - /** - * D​e​v​i​c​e​ ​h​a​s​ ​b​e​e​n​ ​u​p​d​a​t​e​d​. - */ - success: string; - }; - form: { - fields: { - name: { - /** - * D​e​v​i​c​e​ ​N​a​m​e - */ - label: string; - }; - publicKey: { - /** - * D​e​v​i​c​e​ ​P​u​b​l​i​c​ ​K​e​y​ ​(​W​i​r​e​G​u​a​r​d​) - */ - label: string; - }; - }; - controls: { - /** - * E​d​i​t​ ​d​e​v​i​c​e - */ - submit: string; - }; - }; - }; - deleteDevice: { - /** - * D​e​l​e​t​e​ ​d​e​v​i​c​e - */ - title: string; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​d​e​v​i​c​e​N​a​m​e​}​ ​d​e​v​i​c​e​ ​? - * @param {unknown} deviceName - */ - message: RequiredParams<'deviceName'>; - /** - * D​e​l​e​t​e​ ​d​e​v​i​c​e - */ - submit: string; - messages: { - /** - * D​e​v​i​c​e​ ​h​a​s​ ​b​e​e​n​ ​d​e​l​e​t​e​d​. - */ - success: string; - }; - }; - addWallet: { - /** - * A​d​d​ ​w​a​l​l​e​t - */ - title: string; - /** - * I​n​ ​o​r​d​e​r​ ​t​o​ ​a​d​d​ ​a​ ​E​T​H​ ​w​a​l​l​e​t​ ​y​o​u​ ​w​i​l​l​ ​n​e​e​d​ ​t​o​ ​s​i​g​n​ ​m​e​s​s​a​g​e​. - */ - infoBox: string; - form: { - fields: { - name: { - /** - * W​a​l​l​e​t​ ​n​a​m​e - */ - placeholder: string; - /** - * N​a​m​e - */ - label: string; - }; - address: { - /** - * W​a​l​l​e​t​ ​a​d​d​r​e​s​s - */ - placeholder: string; - /** - * A​d​d​r​e​s​s - */ - label: string; - }; - }; - controls: { - /** - * A​d​d​ ​w​a​l​l​e​t - */ - submit: string; - }; - }; - }; - keyDetails: { - /** - * Y​u​b​i​K​e​y​ ​d​e​t​a​i​l​s - */ - title: string; - /** - * D​o​w​n​l​o​a​d​ ​a​l​l​ ​k​e​y​s - */ - downloadAll: string; - }; - deleteUser: { - /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t - */ - title: string; - controls: { - /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t - */ - submit: string; - }; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​ ​p​e​r​m​a​n​e​n​t​l​y​ ​? - * @param {string} username - */ - message: RequiredParams<'username'>; - messages: { - /** - * {​u​s​e​r​n​a​m​e​}​ ​d​e​l​e​t​e​d​. - * @param {string} username - */ - success: RequiredParams<'username'>; - }; - }; - disableUser: { - /** - * D​i​s​a​b​l​e​ ​a​c​c​o​u​n​t - */ - title: string; - controls: { - /** - * D​i​s​a​b​l​e​ ​a​c​c​o​u​n​t - */ - submit: string; - }; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​i​s​a​b​l​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​? - * @param {string} username - */ - message: RequiredParams<'username'>; - messages: { - /** - * {​u​s​e​r​n​a​m​e​}​ ​d​i​s​a​b​l​e​d​. - * @param {string} username - */ - success: RequiredParams<'username'>; - }; - }; - enableUser: { - /** - * E​n​a​b​l​e​ ​a​c​c​o​u​n​t - */ - title: string; - controls: { - /** - * E​n​a​b​l​e​ ​a​c​c​o​u​n​t - */ - submit: string; - }; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​e​n​a​b​l​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​? - * @param {string} username - */ - message: RequiredParams<'username'>; - messages: { - /** - * {​u​s​e​r​n​a​m​e​}​ ​e​n​a​b​l​e​d​. - * @param {string} username - */ - success: RequiredParams<'username'>; - }; - }; - deleteProvisioner: { - /** - * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r - */ - title: string; - controls: { - /** - * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r - */ - submit: string; - }; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​i​d​}​ ​p​r​o​v​i​s​i​o​n​e​r​? - * @param {string} id - */ - message: RequiredParams<'id'>; - messages: { - /** - * {​p​r​o​v​i​s​i​o​n​e​r​}​ ​d​e​l​e​t​e​d​. - * @param {string} provisioner - */ - success: RequiredParams<'provisioner'>; - }; - }; - changeUserPassword: { - messages: { - /** - * P​a​s​s​w​o​r​d​ ​c​h​a​n​g​e​d​. - */ - success: string; - }; - /** - * C​h​a​n​g​e​ ​u​s​e​r​ ​p​a​s​s​w​o​r​d - */ - title: string; - form: { - controls: { - /** - * S​a​v​e​ ​n​e​w​ ​p​a​s​s​w​o​r​d - */ - submit: string; - }; - fields: { - newPassword: { - /** - * N​e​w​ ​p​a​s​s​w​o​r​d - */ - label: string; - }; - confirmPassword: { - /** - * R​e​p​e​a​t​ ​p​a​s​s​w​o​r​d - */ - label: string; - }; - }; - }; - }; - provisionKeys: { - /** - * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g​: - */ - title: string; - /** - * P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​t​h​i​s​ ​o​p​e​r​a​t​i​o​n​ ​w​l​l​ ​w​i​p​e​ ​o​p​e​n​p​g​p​ ​a​p​p​l​i​c​a​t​i​o​n​ ​o​n​ ​y​u​b​i​k​e​y​ ​a​n​d​ ​r​e​c​o​n​f​i​g​u​r​e​ ​i​t​. - */ - warning: string; - /** - * T​h​e​ ​s​e​l​e​c​t​e​d​ ​p​r​o​v​i​s​i​o​n​e​r​ ​m​u​s​t​ ​h​a​v​e​ ​a​ ​<​b​>​c​l​e​a​n​<​/​b​>​ ​Y​u​b​i​K​e​y​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​p​l​u​g​g​e​d​ ​i​n​ ​b​e​ ​p​r​o​v​i​s​i​o​n​e​d​.​ ​T​o​ ​c​l​e​a​n​ ​a​ ​u​s​e​d​ ​Y​u​b​i​K​e​y​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​b​>​g​p​g​ ​-​-​c​a​r​d​-​e​d​i​t​ ​<​/​b​>​ ​b​e​f​o​r​e​ ​p​r​o​v​i​s​i​o​n​i​n​g​. + next: string + /** + * B​a​c​k */ - infoBox: string; - /** - * S​e​l​e​c​t​ ​o​n​e​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y​: - */ - selectionLabel: string; - noData: { - /** - * N​o​ ​w​o​r​k​e​r​s​ ​f​o​u​n​d​,​ ​w​a​i​t​i​n​g​.​.​. - */ - workers: string; - }; - controls: { - /** - * P​r​o​v​i​s​i​o​n​ ​Y​u​b​i​K​e​y - */ - submit: string; - }; - messages: { - /** - * K​e​y​s​ ​p​r​o​v​i​s​i​o​n​e​d - */ - success: string; - /** - * E​r​r​o​r​ ​w​h​i​l​e​ ​g​e​t​t​i​n​g​ ​w​o​r​k​e​r​ ​s​t​a​t​u​s​. - */ - errorStatus: string; - }; - }; - addUser: { - /** - * A​d​d​ ​n​e​w​ ​u​s​e​r - */ - title: string; - messages: { - /** - * U​s​e​r​ ​a​d​d​e​d - */ - userAdded: string; - }; - form: { - /** - * A​d​d​ ​u​s​e​r - */ - submit: string; - fields: { - username: { - /** - * l​o​g​i​n - */ - placeholder: string; - /** - * L​o​g​i​n - */ - label: string; - }; - password: { - /** - * P​a​s​s​w​o​r​d - */ - placeholder: string; - /** - * P​a​s​s​w​o​r​d - */ - label: string; - }; - email: { - /** - * U​s​e​r​ ​e​-​m​a​i​l - */ - placeholder: string; - /** - * U​s​e​r​ ​e​-​m​a​i​l - */ - label: string; - }; - firstName: { - /** - * F​i​r​s​t​ ​n​a​m​e - */ - placeholder: string; - /** - * F​i​r​s​t​ ​n​a​m​e - */ - label: string; - }; - lastName: { - /** - * L​a​s​t​ ​n​a​m​e - */ - placeholder: string; - /** - * L​a​s​t​ ​n​a​m​e - */ - label: string; - }; - phone: { - /** - * P​h​o​n​e - */ - placeholder: string; - /** - * P​h​o​n​e - */ - label: string; - }; - enableEnrollment: { - /** - * U​s​e​ ​u​s​e​r​ ​s​e​l​f​-​e​n​r​o​l​l​m​e​n​t​ ​p​r​o​c​e​s​s - */ - label: string; - /** - * <​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​h​e​l​p​/​e​n​r​o​l​l​m​e​n​t​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​m​o​r​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​h​e​r​e​<​/​a​> - */ - link: string; - }; - }; - }; - }; - webhookModal: { - title: { - /** - * A​d​d​ ​w​e​b​h​o​o​k​. - */ - addWebhook: string; - /** - * E​d​i​t​ ​w​e​b​h​o​o​k - */ - editWebhook: string; - }; - messages: { - /** - * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. - */ - clientIdCopy: string; - /** - * C​l​i​e​n​t​ ​s​e​c​r​e​t​ ​c​o​p​i​e​d​. - */ - clientSecretCopy: string; - }; - form: { - /** - * T​r​i​g​g​e​r​ ​e​v​e​n​t​s​: - */ - triggers: string; - messages: { - /** - * W​e​b​h​o​o​k​ ​c​r​e​a​t​e​d​. - */ - successAdd: string; - /** - * W​e​b​h​o​o​k​ ​m​o​d​i​f​i​e​d​. - */ - successModify: string; - }; - error: { - /** - * U​R​L​ ​i​s​ ​r​e​q​u​i​r​e​d​. - */ - urlRequired: string; - /** - * M​u​s​t​ ​b​e​ ​a​ ​v​a​l​i​d​ ​U​R​L​. - */ - validUrl: string; - /** - * M​u​s​t​ ​h​a​v​e​ ​a​t​ ​l​e​a​s​t​ ​o​n​e​ ​t​r​i​g​g​e​r​. - */ - scopeValidation: string; - /** - * T​o​k​e​n​ ​i​s​ ​r​e​q​u​i​r​e​d​. - */ - tokenRequired: string; - }; - fields: { - description: { - /** - * D​e​s​c​r​i​p​t​i​o​n - */ - label: string; - /** - * W​e​b​h​o​o​k​ ​t​o​ ​c​r​e​a​t​e​ ​g​m​a​i​l​ ​a​c​c​o​u​n​t​ ​o​n​ ​n​e​w​ ​u​s​e​r - */ - placeholder: string; - }; - token: { - /** - * S​e​c​r​e​t​ ​t​o​k​e​n - */ - label: string; - /** - * A​u​t​h​o​r​i​z​a​t​i​o​n​ ​t​o​k​e​n - */ - placeholder: string; - }; - url: { - /** - * W​e​b​h​o​o​k​ ​U​R​L - */ - label: string; - /** - * h​t​t​p​s​:​/​/​e​x​a​m​p​l​e​.​c​o​m​/​w​e​b​h​o​o​k - */ - placeholder: string; - }; - userCreated: { - /** - * N​e​w​ ​u​s​e​r​ ​C​r​e​a​t​e​d - */ - label: string; - }; - userDeleted: { - /** - * U​s​e​r​ ​d​e​l​e​t​e​d - */ - label: string; - }; - userModified: { - /** - * U​s​e​r​ ​m​o​d​i​f​i​e​d - */ - label: string; - }; - hwkeyProvision: { - /** - * U​s​e​r​ ​Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n - */ - label: string; - }; - }; - }; - }; - deleteWebhook: { - /** - * D​e​l​e​t​e​ ​w​e​b​h​o​o​k - */ - title: string; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​n​a​m​e​}​ ​w​e​b​h​o​o​k​ ​? - * @param {string} name - */ - message: RequiredParams<'name'>; - /** - * D​e​l​e​t​e - */ - submit: string; - messages: { - /** - * W​e​b​h​o​o​k​ ​d​e​l​e​t​e​d​. - */ - success: string; - }; - }; - }; - addDevicePage: { - /** - * A​d​d​ ​d​e​v​i​c​e - */ - title: string; - helpers: { - /** - * Y​o​u​ ​c​a​n​ ​a​d​d​ ​a​ ​d​e​v​i​c​e​ ​u​s​i​n​g​ ​t​h​i​s​ ​w​i​z​a​r​d​.​ ​O​p​t​ ​f​o​r​ ​o​u​r​ ​n​a​t​i​v​e​ ​a​p​p​l​i​c​a​t​i​o​n​ ​"​d​e​f​g​u​a​r​d​"​ ​o​r​ ​a​n​y​ ​o​t​h​e​r​ ​W​i​r​e​G​u​a​r​d​ ​c​l​i​e​n​t​.​ ​I​f​ ​y​o​u​'​r​e​ ​u​n​s​u​r​e​,​ ​w​e​ ​r​e​c​o​m​m​e​n​d​ ​u​s​i​n​g​ ​d​e​f​g​u​a​r​d​ ​f​o​r​ ​s​i​m​p​l​i​c​i​t​y​. - */ - setupOpt: string; - /** - * P​l​e​a​s​e​ ​d​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​d​e​s​k​t​o​p​ ​c​l​i​e​n​t​ ​<​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​n​e​t​/​d​o​w​n​l​o​a​d​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​h​e​r​e​<​/​a​>​ ​a​n​d​ ​t​h​e​n​ ​f​o​l​l​o​w​ ​<​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​h​e​l​p​/​c​o​n​f​i​g​u​r​i​n​g​-​v​p​n​/​a​d​d​-​n​e​w​-​i​n​s​t​a​n​c​e​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​t​h​i​s​ ​g​u​i​d​e​<​/​a​>​. - */ - client: string; - }; - messages: { - /** - * D​e​v​i​c​e​ ​a​d​d​e​d - */ - deviceAdded: string; - }; - steps: { - setupMethod: { - remote: { - /** - * C​o​n​f​i​g​u​r​e​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t - */ - title: string; - /** - * A​ ​b​r​e​e​z​e​ ​t​o​ ​s​e​t​ ​u​p​ ​w​i​t​h​ ​j​u​s​t​ ​a​ ​s​i​n​g​l​e​ ​t​o​k​e​n​.​ ​D​o​w​n​l​o​a​d​ ​t​h​e​ ​c​l​i​e​n​t​ ​a​n​d​ ​e​n​j​o​y​ ​s​t​r​a​i​g​h​t​f​o​r​w​a​r​d​ ​s​e​c​u​r​i​t​y​. - */ - subTitle: string; - /** - * D​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​C​l​i​e​n​t - */ - link: string; - }; - manual: { - /** - * M​a​n​u​a​l​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t - */ - title: string; - /** - * F​o​r​ ​a​d​v​a​n​c​e​d​ ​u​s​e​r​s​,​ ​g​e​t​ ​a​ ​u​n​i​q​u​e​ ​c​o​n​f​i​g​ ​v​i​a​ ​d​o​w​n​l​o​a​d​ ​o​r​ ​Q​R​ ​c​o​d​e​.​ ​D​o​w​n​l​o​a​d​ ​t​h​e​ ​c​l​i​e​n​t​ ​a​n​d​ ​t​a​k​e​ ​c​o​n​t​r​o​l​ ​o​f​ ​y​o​u​r​ ​V​P​N​ ​s​e​t​u​p​. - */ - subTitle: string; - /** - * D​o​w​n​l​o​a​d​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t - */ - link: string; - }; - }; - configDevice: { - /** - * C​o​n​f​i​g​u​r​e​ ​d​e​v​i​c​e - */ - title: string; - messages: { - /** - * C​o​n​f​i​g​u​r​a​t​i​o​n​ ​h​a​s​ ​b​e​e​n​ ​c​o​p​i​e​d​ ​t​o​ ​t​h​e​ ​c​l​i​p​b​o​a​r​d - */ - copyConfig: string; - }; - helpers: { - /** - * - ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​y​o​u​ ​h​a​v​e​ ​t​o​ ​d​o​w​n​l​o​a​d​ ​t​h​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​n​o​w​,​ - ​ ​ ​ ​ ​ ​ ​s​i​n​c​e​ ​<​s​t​r​o​n​g​>​w​e​ ​d​o​ ​n​o​t​<​/​s​t​r​o​n​g​>​ ​s​t​o​r​e​ ​y​o​u​r​ ​p​r​i​v​a​t​e​ ​k​e​y​.​ ​A​f​t​e​r​ ​t​h​i​s​ - ​ ​ ​ ​ ​ ​ ​p​a​g​e​ ​i​s​ ​c​l​o​s​e​d​,​ ​y​o​u​ ​<​s​t​r​o​n​g​>​w​i​l​l​ ​n​o​t​ ​b​e​ ​a​b​l​e​<​/​s​t​r​o​n​g​>​ ​t​o​ ​g​e​t​ ​y​o​u​r​ - ​ ​ ​ ​ ​ ​ ​f​u​l​l​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​(​w​i​t​h​ ​p​r​i​v​a​t​e​ ​k​e​y​s​,​ ​o​n​l​y​ ​b​l​a​n​k​ ​t​e​m​p​l​a​t​e​)​.​ - ​ ​ ​ ​ ​<​/​p​>​ - - */ - warningAutoMode: string; - /** - * - ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​p​r​o​v​i​d​e​d​ ​h​e​r​e​ ​<​s​t​r​o​n​g​>​ ​d​o​e​s​ ​n​o​t​ ​i​n​c​l​u​d​e​ ​p​r​i​v​a​t​e​ ​k​e​y​ ​a​n​d​ ​u​s​e​s​ ​p​u​b​l​i​c​ ​k​e​y​ ​t​o​ ​f​i​l​l​ ​i​t​'​s​ ​p​l​a​c​e​ ​<​/​s​t​r​o​n​g​>​ ​y​o​u​ ​w​i​l​l​ ​n​e​e​d​ ​t​o​ ​r​e​p​l​a​c​e​ ​i​t​ ​o​n​ ​y​o​u​r​ ​o​w​n​ ​f​o​r​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​t​o​ ​w​o​r​k​ ​p​r​o​p​e​r​l​y​.​ - ​ ​ ​ ​ ​<​/​p​>​ - - */ - warningManualMode: string; - /** - * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​c​c​e​s​s​ ​t​o​ ​a​n​y​ ​n​e​t​w​o​r​k​. - */ - warningNoNetworks: string; - /** - * - ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​Y​o​u​ ​c​a​n​ ​s​e​t​u​p​ ​y​o​u​r​ ​d​e​v​i​c​e​ ​f​a​s​t​e​r​ ​w​i​t​h​ ​w​i​r​e​g​u​a​r​d​ ​a​p​p​l​i​c​a​t​i​o​n​ ​b​y​ ​s​c​a​n​n​i​n​g​ ​t​h​i​s​ ​Q​R​ ​c​o​d​e​.​ - ​ ​ ​ ​ ​ ​ ​<​/​p​> - */ - qrHelper: string; - }; - /** - * U​s​e​ ​p​r​o​v​i​d​e​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​b​e​l​o​w​ ​b​y​ ​s​c​a​n​n​i​n​g​ ​Q​R​ ​C​o​d​e​ ​o​r​ ​i​m​p​o​r​t​i​n​g​ ​i​t​ ​a​s​ ​f​i​l​e​ ​o​n​ ​y​o​u​r​ ​d​e​v​i​c​e​s​ ​W​i​r​e​G​u​a​r​d​ ​i​n​s​t​a​n​c​e​. - */ - qrInfo: string; - /** - * D​e​v​i​c​e​ ​N​a​m​e - */ - inputNameLabel: string; - /** - * W​i​r​e​G​u​a​r​d​ ​C​o​n​f​i​g​ ​F​i​l​e - */ - qrLabel: string; - }; - setupDevice: { - /** - * C​r​e​a​t​e​ ​V​P​N​ ​d​e​v​i​c​e - */ - title: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​Y​o​u​ ​n​e​e​d​ ​t​o​ ​c​o​n​f​i​g​u​r​e​ ​W​i​r​e​G​u​a​r​d​V​P​N​ ​o​n​ ​y​o​u​r​ ​d​e​v​i​c​e​,​ ​p​l​e​a​s​e​ ​v​i​s​i​t​&​n​b​s​p​;​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​a​d​d​D​e​v​i​c​e​s​D​o​c​s​}​"​>​d​o​c​u​m​e​n​t​a​t​i​o​n​<​/​a​>​ ​i​f​ ​y​o​u​ ​d​o​n​&​a​p​o​s​;​t​ ​k​n​o​w​ ​h​o​w​ ​t​o​ ​d​o​ ​i​t​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - - * @param {string} addDevicesDocs - */ -<<<<<<< HEAD - infoMessage: RequiredParams<'addDevicesDocs'>; - options: { - /** - * G​e​n​e​r​a​t​e​ ​k​e​y​ ​p​a​i​r - */ - auto: string; - /** - * U​s​e​ ​m​y​ ​o​w​n​ ​p​u​b​l​i​c​ ​k​e​y - */ - manual: string; - }; - form: { - fields: { - name: { - /** - * D​e​v​i​c​e​ ​N​a​m​e - */ - label: string; - }; - publicKey: { - /** - * P​r​o​v​i​d​e​ ​Y​o​u​r​ ​P​u​b​l​i​c​ ​K​e​y - */ - label: string; - }; - }; - errors: { - name: { - /** - * D​e​v​i​c​e​ ​w​i​t​h​ ​t​h​i​s​ ​n​a​m​e​ ​a​l​r​e​a​d​y​ ​e​x​i​s​t​s - */ - duplicatedName: string; - }; - }; - }; - }; - copyToken: { - /** - * C​l​i​e​n​t​ ​a​c​t​i​v​a​t​i​o​n - */ - title: string; - /** - * A​c​t​i​v​a​t​i​o​n​ ​t​o​k​e​n - */ - tokenCardTitle: string; - /** - * D​e​f​g​u​a​r​d​ ​I​n​s​t​a​n​c​e​ ​U​R​L - */ - urlCardTitle: string; - }; - }; - }; - userPage: { - title: { - /** - * U​s​e​r​ ​P​r​o​f​i​l​e - */ - view: string; - /** - * E​d​i​t​ ​U​s​e​r​ ​P​r​o​f​i​l​e - */ - edit: string; - }; - messages: { - /** - * U​s​e​r​ ​u​p​d​a​t​e​d​. - */ - editSuccess: string; - /** - * C​o​u​l​d​ ​n​o​t​ ​g​e​t​ ​u​s​e​r​ ​i​n​f​o​r​m​a​t​i​o​n​. - */ - failedToFetchUserData: string; - /** - * P​a​s​s​w​o​r​d​ ​r​e​s​e​t​ ​e​m​a​i​l​ ​h​a​s​ ​b​e​e​n​ ​s​e​n​t​. - */ - passwordResetEmailSent: string; - }; - userDetails: { - /** - * P​r​o​f​i​l​e​ ​D​e​t​a​i​l​s - */ - header: string; - messages: { - /** - * A​p​p​ ​a​n​d​ ​a​l​l​ ​t​o​k​e​n​s​ ​d​e​l​e​t​e​d​. - */ - deleteApp: string; - }; - fields: { - username: { - /** - * U​s​e​r​n​a​m​e - */ - label: string; - }; - firstName: { - /** - * F​i​r​s​t​ ​n​a​m​e - */ - label: string; - }; - lastName: { - /** - * L​a​s​t​ ​n​a​m​e - */ - label: string; - }; - phone: { - /** - * P​h​o​n​e​ ​n​u​m​b​e​r - */ - label: string; - }; - email: { - /** - * E​-​m​a​i​l - */ - label: string; - }; - status: { - /** - * S​t​a​t​u​s - */ - label: string; - /** - * A​c​t​i​v​e - */ - active: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - }; - groups: { - /** - * U​s​e​r​ ​g​r​o​u​p​s - */ - label: string; - /** - * N​o​ ​g​r​o​u​p​s - */ - noData: string; - }; - apps: { - /** - * A​u​t​h​o​r​i​z​e​d​ ​a​p​p​s - */ - label: string; - /** - * N​o​ ​a​u​t​h​o​r​i​z​e​d​ ​a​p​p​s - */ - noData: string; - }; - }; - }; - userAuthInfo: { - /** - * P​a​s​s​w​o​r​d​ ​a​n​d​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n - */ - header: string; - password: { - /** - * P​a​s​s​w​o​r​d​ ​s​e​t​t​i​n​g​s - */ - header: string; - /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d - */ - changePassword: string; - }; - recovery: { - /** - * R​e​c​o​v​e​r​y​ ​o​p​t​i​o​n​s - */ - header: string; - codes: { - /** - * R​e​c​o​v​e​r​y​ ​C​o​d​e​s - */ - label: string; - /** - * V​i​e​w​e​d - */ - viewed: string; - }; - }; - mfa: { - /** - * T​w​o​-​f​a​c​t​o​r​ ​m​e​t​h​o​d​s - */ - header: string; - edit: { - /** - * D​i​s​a​b​l​e​ ​M​F​A - */ - disable: string; - }; - messages: { - /** - * M​F​A​ ​d​i​s​a​b​l​e​d​. - */ - mfaDisabled: string; - /** - * O​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​ ​d​i​s​a​b​l​e​d​. - */ - OTPDisabled: string; - /** - * E​m​a​i​l​ ​M​F​A​ ​d​i​s​a​b​l​e​d​. - */ - EmailMFADisabled: string; - /** - * M​F​A​ ​m​e​t​h​o​d​ ​c​h​a​n​g​e​d - */ - changeMFAMethod: string; - }; - securityKey: { - /** - * s​e​c​u​r​i​t​y​ ​k​e​y - */ - singular: string; - /** - * s​e​c​u​r​i​t​y​ ​k​e​y​s - */ - plural: string; - }; - /** - * d​e​f​a​u​l​t - */ - default: string; - /** - * E​n​a​b​l​e​d - */ - enabled: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - wallet: { - /** - * W​a​l​l​e​t - */ - singular: string; - /** - * W​a​l​l​e​t​s - */ - plural: string; - }; - labels: { - /** - * T​i​m​e​ ​b​a​s​e​d​ ​o​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​s - */ - totp: string; - /** - * E​m​a​i​l - */ - email: string; - /** - * S​e​c​u​r​i​t​y​ ​k​e​y​s - */ - webauth: string; - /** - * W​a​l​l​e​t​s - */ - wallets: string; - }; - editMode: { - /** - * E​n​a​b​l​e - */ - enable: string; - /** - * D​i​s​a​b​l​e - */ - disable: string; - /** - * M​a​k​e​ ​d​e​f​a​u​l​t - */ - makeDefault: string; - webauth: { - /** - * M​a​n​a​g​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y​s - */ - manage: string; - }; - }; - }; - }; - controls: { - /** - * E​d​i​t​ ​p​r​o​f​i​l​e - */ - editButton: string; - /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t - */ - deleteAccount: string; - }; - devices: { - /** - * U​s​e​r​ ​d​e​v​i​c​e​s - */ - header: string; - addDevice: { - /** - * A​d​d​ ​n​e​w​ ​d​e​v​i​c​e - */ - web: string; - /** - * A​d​d​ ​t​h​i​s​ ​d​e​v​i​c​e - */ - desktop: string; - }; - card: { - labels: { - /** - * P​u​b​l​i​c​ ​I​P - */ - publicIP: string; - /** - * C​o​n​n​e​c​t​e​d​ ​t​h​r​o​u​g​h - */ - connectedThrough: string; - /** - * C​o​n​n​e​c​t​e​d​ ​d​a​t​e - */ - connectionDate: string; - /** - * L​a​s​t​ ​c​o​n​n​e​c​t​e​d​ ​f​r​o​m - */ - lastLocation: string; - /** - * L​a​s​t​ ​c​o​n​n​e​c​t​e​d - */ - lastConnected: string; - /** - * A​s​s​i​g​n​e​d​ ​I​P - */ - assignedIp: string; - /** - * a​c​t​i​v​e - */ - active: string; - /** - * N​e​v​e​r​ ​c​o​n​n​e​c​t​e​d - */ - noData: string; - }; - edit: { - /** - * E​d​i​t​ ​d​e​v​i​c​e - */ - edit: string; - /** - * D​e​l​e​t​e​ ​d​e​v​i​c​e - */ - delete: string; - /** - * S​h​o​w​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - showConfigurations: string; - }; - }; - }; - wallets: { - messages: { - /** - * A​d​d​r​e​s​s​ ​c​o​p​i​e​d​. - */ - addressCopied: string; - duplicate: { - /** - * C​o​n​n​e​c​t​e​d​ ​w​a​l​l​e​t​ ​i​s​ ​a​l​r​e​a​d​y​ ​r​e​g​i​s​t​e​r​e​d - */ - primary: string; - /** - * P​l​e​a​s​e​ ​c​o​n​n​e​c​t​ ​u​n​u​s​e​d​ ​w​a​l​l​e​t​. - */ - sub: string; - }; - }; - /** - * U​s​e​r​ ​w​a​l​l​e​t​s - */ - header: string; - /** - * A​d​d​ ​n​e​w​ ​w​a​l​l​e​t - */ - addWallet: string; - card: { - /** - * A​d​d​r​e​s​s - */ - address: string; - /** - * M​F​A - */ - mfaBadge: string; - edit: { - /** - * E​n​a​b​l​e​ ​M​F​A - */ - enableMFA: string; - /** - * D​i​s​a​b​l​e​ ​M​F​A - */ - disableMFA: string; - /** - * D​e​l​e​t​e - */ - delete: string; - /** - * C​o​p​y​ ​a​d​d​r​e​s​s - */ - copyAddress: string; - }; - messages: { - /** - * W​a​l​l​e​t​ ​d​e​l​e​t​e​d - */ - deleteSuccess: string; - /** - * W​a​l​l​e​t​ ​M​F​A​ ​e​n​a​b​l​e​d - */ - enableMFA: string; - /** - * W​a​l​l​e​t​ ​M​F​A​ ​d​i​s​a​b​l​e​d - */ - disableMFA: string; - }; - }; - }; - yubiKey: { - /** - * U​s​e​r​ ​Y​u​b​i​K​e​y - */ - header: string; - /** - * P​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y - */ - provision: string; - keys: { - /** - * P​G​P​ ​k​e​y - */ - pgp: string; - /** - * S​S​H​ ​k​e​y - */ - ssh: string; - }; - noLicense: { - /** - * Y​u​b​i​K​e​y​ ​m​o​d​u​l​e - */ - moduleName: string; - /** - * T​h​i​s​ ​i​s​ ​e​n​t​e​r​p​r​i​s​e​ ​m​o​d​u​l​e​ ​f​o​r​ ​Y​u​b​i​K​e​y - */ - line1: string; - /** - * m​a​n​a​g​e​m​e​n​t​ ​a​n​d​ ​p​r​o​v​i​s​i​o​n​i​n​g​. - */ - line2: string; - }; - }; - authenticationKeys: { - /** - * U​s​e​r​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y​s - */ - header: string; - /** - * A​d​d​ ​n​e​w​ ​K​e​y - */ - addKey: string; - keysList: { - common: { - /** - * R​e​n​a​m​e - */ - rename: string; - /** - * K​e​y - */ - key: string; - /** - * D​o​w​n​l​o​a​d - */ - download: string; - /** - * C​o​p​y - */ - copy: string; - /** - * S​e​r​i​a​l​ ​N​u​m​b​e​r - */ - serialNumber: string; - /** - * D​e​l​e​t​e - */ - delete: string; - }; - }; - deleteModal: { - /** - * D​e​l​e​t​e​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y - */ - title: string; - /** - * K​e​y​ ​{​n​a​m​e​}​ ​w​i​l​l​ ​b​e​ ​d​e​l​e​t​e​d​ ​p​e​r​m​a​n​e​n​t​l​y​. - * @param {string} name - */ - confirmMessage: RequiredParams<'name'>; - }; - addModal: { - /** - * A​d​d​ ​n​e​w​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y - */ - header: string; - /** - * K​e​y​ ​T​y​p​e - */ - keyType: string; - keyForm: { - placeholders: { - /** - * K​e​y​ ​N​a​m​e - */ - title: string; - key: { - /** - * B​e​g​i​n​s​ ​w​i​t​h​ ​s​s​h​-​r​s​a​,​ ​e​c​d​s​a​-​s​h​a​2​-​n​i​s​t​p​2​5​6​,​ ​.​.​. - */ - ssh: string; - /** - * B​e​g​i​n​s​ ​w​i​t​h​ ​-​-​-​-​-​B​E​G​I​N​ ​P​G​P​ ​P​U​B​L​I​C​ ​K​E​Y​ ​B​L​O​C​K​-​-​-​-​- - */ - gpg: string; - }; - }; - labels: { - /** - * N​a​m​e - */ - title: string; - /** - * K​e​y - */ - key: string; - }; - /** - * A​d​d​ ​{​n​a​m​e​}​ ​k​e​y - * @param {string} name - */ - submit: RequiredParams<'name'>; - }; - yubikeyForm: { - selectWorker: { - /** - * P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​t​h​i​s​ ​o​p​e​r​a​t​i​o​n​ ​w​i​l​l​ ​w​i​p​e​ ​o​p​e​n​p​g​p​ ​a​p​p​l​i​c​a​t​i​o​n​ ​o​n​ ​Y​u​b​i​K​e​y​ ​a​n​d​ ​r​e​c​o​n​f​i​g​u​r​e​ ​i​t​. - */ - info: string; - /** - * S​e​l​e​c​t​ ​o​n​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y - */ - selectLabel: string; - /** - * N​o​ ​w​o​r​k​e​r​s​ ​a​r​e​ ​r​e​g​i​s​t​e​r​e​d​ ​r​i​g​h​t​ ​n​o​w​. - */ - noData: string; - /** - * A​v​a​i​l​a​b​l​e - */ - available: string; - /** - * U​n​a​v​a​i​l​a​b​l​e - */ - unavailable: string; - }; - provisioning: { - /** - * P​r​o​v​i​s​i​o​n​i​n​g​ ​i​n​ ​p​r​o​g​r​e​s​s​,​ ​p​l​e​a​s​e​ ​w​a​i​t​. - */ - inProgress: string; - /** - * P​r​o​v​i​s​i​o​n​i​n​g​ ​f​a​i​l​e​d​ ​! - */ - error: string; - /** - * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y - */ - success: string; - }; - /** - * P​r​o​v​i​s​i​o​n​ ​Y​u​b​i​k​e​y - */ - submit: string; - }; - messages: { - /** - * K​e​y​ ​a​d​d​e​d​. - */ - keyAdded: string; - /** - * K​e​y​ ​h​a​s​ ​a​l​r​e​a​d​y​ ​b​e​e​n​ ​a​d​d​e​d​. - */ - keyExists: string; - /** - * U​n​s​u​p​p​o​r​t​e​d​ ​k​e​y​ ​f​o​r​m​a​t​. - */ - unsupportedKeyFormat: string; - /** - * C​o​u​l​d​ ​n​o​t​ ​a​d​d​ ​t​h​e​ ​k​e​y​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​l​a​t​e​r​. - */ - genericError: string; - }; - }; - }; - }; - usersOverview: { - /** - * U​s​e​r​s - */ - pageTitle: string; - search: { - /** - * F​i​n​d​ ​u​s​e​r​s - */ - placeholder: string; - }; - filterLabels: { - /** - * A​l​l​ ​u​s​e​r​s - */ - all: string; - /** - * A​d​m​i​n​s​ ​o​n​l​y - */ - admin: string; - /** - * U​s​e​r​s​ ​o​n​l​y - */ - users: string; - }; - /** - * A​l​l​ ​u​s​e​r​s - */ - usersCount: string; - /** - * A​d​d​ ​n​e​w - */ - addNewUser: string; - list: { - headers: { - /** - * U​s​e​r​ ​n​a​m​e - */ - name: string; - /** - * L​o​g​i​n - */ - username: string; - /** - * P​h​o​n​e - */ - phone: string; - /** - * A​c​t​i​o​n​s - */ - actions: string; - }; - editButton: { - /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d - */ - changePassword: string; - /** - * E​d​i​t​ ​a​c​c​o​u​n​t - */ - edit: string; - /** - * A​d​d​ ​Y​u​b​i​K​e​y - */ - addYubikey: string; - /** - * A​d​d​ ​S​S​H​ ​K​e​y - */ - addSSH: string; - /** - * A​d​d​ ​G​P​G​ ​K​e​y - */ - addGPG: string; - /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t - */ - delete: string; - /** - * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t - */ - startEnrollment: string; - /** - * C​o​n​f​i​g​u​r​e​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t - */ - activateDesktop: string; - /** - * R​e​s​e​t​ ​p​a​s​s​w​o​r​d - */ - resetPassword: string; - }; - }; - }; - navigation: { - bar: { - /** - * V​P​N​ ​O​v​e​r​v​i​e​w - */ - overview: string; - /** - * U​s​e​r​s - */ - users: string; - /** - * Y​u​b​i​K​e​y​s - */ - provisioners: string; - /** - * W​e​b​h​o​o​k​s - */ - webhooks: string; - /** - * O​p​e​n​I​D​ ​A​p​p​s - */ - openId: string; - /** - * M​y​ ​P​r​o​f​i​l​e - */ - myProfile: string; - /** - * S​e​t​t​i​n​g​s - */ - settings: string; - /** - * L​o​g​ ​o​u​t - */ - logOut: string; - /** - * E​n​r​o​l​l​m​e​n​t - */ - enrollment: string; - /** - * S​u​p​p​o​r​t - */ - support: string; - /** - * G​r​o​u​p​s - */ - groups: string; - }; - mobileTitles: { - /** - * G​r​o​u​p​s - */ - groups: string; - /** - * C​r​e​a​t​e​ ​l​o​c​a​t​i​o​n - */ - wizard: string; - /** - * U​s​e​r​s - */ - users: string; - /** - * S​e​t​t​i​n​g​s - */ - settings: string; - /** - * U​s​e​r​ ​P​r​o​f​i​l​e - */ - user: string; - /** - * Y​u​b​i​k​e​y - */ - provisioners: string; - /** - * W​e​b​h​o​o​k​s - */ - webhooks: string; - /** - * O​p​e​n​I​d​ ​A​p​p​s - */ - openId: string; - /** - * L​o​c​a​t​i​o​n​ ​O​v​e​r​v​i​e​w - */ - overview: string; - /** - * E​d​i​t​ ​L​o​c​a​t​i​o​n - */ - networkSettings: string; - /** - * E​n​r​o​l​l​m​e​n​t - */ - enrollment: string; - /** - * S​u​p​p​o​r​t - */ - support: string; - }; - /** - * C​o​p​y​r​i​g​h​t​ ​©​2​0​2​3​-​2​0​2​4 - */ - copyright: string; - version: { - /** - * A​p​p​l​i​c​a​t​i​o​n​ ​v​e​r​s​i​o​n​:​ ​{​v​e​r​s​i​o​n​} - * @param {string} version - */ - open: RequiredParams<'version'>; - /** - * v​{​v​e​r​s​i​o​n​} - * @param {string} version - */ - closed: RequiredParams<'version'>; - }; - }; - form: { - /** - * D​o​w​n​l​o​a​d - */ - download: string; - /** - * C​o​p​y - */ - copy: string; - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - saveChanges: string; - /** - * S​u​b​m​i​t - */ - submit: string; - /** - * S​i​g​n​ ​i​n - */ - login: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - /** - * C​l​o​s​e - */ - close: string; - placeholders: { - /** - * P​a​s​s​w​o​r​d - */ - password: string; - /** - * U​s​e​r​n​a​m​e - */ - username: string; - }; - error: { - /** - * F​i​e​l​d​ ​c​o​n​t​a​i​n​s​ ​f​o​r​b​i​d​d​e​n​ ​c​h​a​r​a​c​t​e​r​s​. - */ - forbiddenCharacter: string; - /** - * U​s​e​r​n​a​m​e​ ​i​s​ ​a​l​r​e​a​d​y​ ​i​n​ ​u​s​e​. - */ - usernameTaken: string; - /** - * K​e​y​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalidKey: string; - /** - * F​i​e​l​d​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalid: string; - /** - * F​i​e​l​d​ ​i​s​ ​r​e​q​u​i​r​e​d​. - */ - required: string; - /** - * S​u​b​m​i​t​t​e​d​ ​c​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalidCode: string; - /** - * M​a​x​i​m​u​m​ ​l​e​n​g​t​h​ ​e​x​c​e​e​d​e​d​. - */ - maximumLength: string; - /** - * M​i​n​i​m​u​m​ ​l​e​n​g​t​h​ ​n​o​t​ ​r​e​a​c​h​e​d​. - */ - minimumLength: string; - /** - * N​o​ ​s​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​s​ ​a​r​e​ ​a​l​l​o​w​e​d​. - */ - noSpecialChars: string; - /** - * O​n​e​ ​d​i​g​i​t​ ​r​e​q​u​i​r​e​d​. - */ - oneDigit: string; - /** - * S​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. - */ - oneSpecial: string; - /** - * O​n​e​ ​u​p​p​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. - */ - oneUppercase: string; - /** - * O​n​e​ ​l​o​w​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. - */ - oneLowercase: string; - /** - * M​a​x​i​m​u​m​ ​p​o​r​t​ ​i​s​ ​6​5​5​3​5​. - */ - portMax: string; - /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​e​n​d​p​o​i​n​t​. - */ - endpoint: string; - /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​a​d​d​r​e​s​s​. - */ - address: string; - /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​p​o​r​t​. - */ - validPort: string; - /** - * C​o​d​e​ ​s​h​o​u​l​d​ ​h​a​v​e​ ​6​ ​d​i​g​i​t​s​. - */ - validCode: string; - /** - * O​n​l​y​ ​v​a​l​i​d​ ​I​P​ ​o​r​ ​d​o​m​a​i​n​ ​i​s​ ​a​l​l​o​w​e​d​. - */ - allowedIps: string; - /** - * C​a​n​n​o​t​ ​s​t​a​r​t​ ​f​r​o​m​ ​n​u​m​b​e​r​. - */ - startFromNumber: string; - /** - * F​i​e​l​d​s​ ​d​o​n​'​t​ ​m​a​t​c​h​. - */ - repeat: string; - /** - * E​x​p​e​c​t​e​d​ ​a​ ​v​a​l​i​d​ ​n​u​m​b​e​r​. - */ - number: string; - /** - * M​i​n​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​n​o​t​ ​r​e​a​c​h​e​d​. - * @param {number} value - */ - minimumValue: RequiredParams<'value'>; - /** - * M​a​x​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​e​x​c​e​e​d​e​d​. - * @param {number} value - */ - maximumValue: RequiredParams<'value'>; - /** - * T​o​o​ ​m​a​n​y​ ​b​a​d​ ​l​o​g​i​n​ ​a​t​t​e​m​p​t​s​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​i​n​ ​a​ ​f​e​w​ ​m​i​n​u​t​e​s​. - */ - tooManyBadLoginAttempts: string; - }; - floatingErrors: { - /** - * P​l​e​a​s​e​ ​c​o​r​r​e​c​t​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​: - */ - title: string; - }; - }; - components: { - deviceConfigsCard: { - /** - * W​i​r​e​G​u​a​r​d​ ​C​o​n​f​i​g​ ​f​o​r​ ​l​o​c​a​t​i​o​n​: - */ - cardTitle: string; - messages: { - /** - * C​o​n​f​i​g​u​r​a​t​i​o​n​ ​c​o​p​i​e​d​ ​t​o​ ​t​h​e​ ​c​l​i​p​b​o​a​r​d - */ - copyConfig: string; - }; - }; - gatewaysStatus: { - /** - * G​a​t​e​w​a​y​s - */ - label: string; - states: { - /** - * A​l​l​ ​c​o​n​n​e​c​t​e​d - */ - connected: string; - /** - * O​n​e​ ​o​r​ ​m​o​r​e​ ​a​r​e​ ​n​o​t​ ​w​o​r​k​i​n​g - */ - partial: string; - /** - * D​i​s​c​o​n​n​e​c​t​e​d - */ - disconnected: string; - /** - * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s​ ​f​a​i​l​e​d - */ - error: string; - /** - * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s - */ - loading: string; - }; - messages: { - /** - * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​g​a​t​e​w​a​y​s​ ​s​t​a​t​u​s - */ - error: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​d​e​l​e​t​e​ ​g​a​t​e​w​a​y - */ - deleteError: string; - }; - }; - noLicenseBox: { - footer: { - /** - * G​e​t​ ​a​n​ ​e​n​t​e​r​p​r​i​s​e​ ​l​i​c​e​n​s​e - */ - get: string; - /** - * b​y​ ​c​o​n​t​a​c​t​i​n​g​: - */ - contact: string; - }; - }; - }; - settingsPage: { - /** - * S​e​t​t​i​n​g​s - */ - title: string; - tabs: { - /** - * S​M​T​P - */ - smtp: string; - /** - * G​l​o​b​a​l​ ​s​e​t​t​i​n​g​s - */ - global: string; - /** - * L​D​A​P - */ - ldap: string; - /** - * O​p​e​n​I​D - */ - openid: string; - /** - * E​n​t​e​r​p​r​i​s​e​ ​f​e​a​t​u​r​e​s - */ - enterprise: string; - }; - messages: { - /** - * S​e​t​t​i​n​g​s​ ​u​p​d​a​t​e​d - */ - editSuccess: string; - /** - * C​h​a​l​l​e​n​g​e​ ​m​e​s​s​a​g​e​ ​c​h​a​n​g​e​d - */ - challengeSuccess: string; - }; - enterpriseOnly: { - /** - * T​h​i​s​ ​f​e​a​t​u​r​e​ ​i​s​ ​a​v​a​i​l​a​b​l​e​ ​o​n​l​y​ ​i​n​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​. - */ - title: string; - /** - * T​o​ ​l​e​a​r​n​ ​m​o​r​e​,​ ​v​i​s​i​t​ ​o​u​r​ - */ - subtitle: string; - /** - * w​e​b​s​i​t​e - */ - website: string; - }; - ldapSettings: { - /** - * L​D​A​P​ ​S​e​t​t​i​n​g​s - */ - title: string; - form: { - labels: { - /** - * U​R​L - */ - ldap_url: string; - /** - * B​i​n​d​ ​U​s​e​r​n​a​m​e - */ - ldap_bind_username: string; - /** - * B​i​n​d​ ​P​a​s​s​w​o​r​d - */ - ldap_bind_password: string; - /** - * M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e - */ - ldap_member_attr: string; - /** - * U​s​e​r​n​a​m​e​ ​A​t​t​r​i​b​u​t​e - */ - ldap_username_attr: string; - /** - * U​s​e​r​ ​O​b​j​e​c​t​ ​C​l​a​s​s - */ - ldap_user_obj_class: string; - /** - * U​s​e​r​ ​S​e​a​r​c​h​ ​B​a​s​e - */ - ldap_user_search_base: string; - /** - * G​r​o​u​p​n​a​m​e​ ​A​t​t​r​i​b​u​t​e - */ - ldap_groupname_attr: string; - /** - * G​r​o​u​p​ ​S​e​a​r​c​h​ ​B​a​s​e - */ - ldap_group_search_base: string; - /** - * G​r​o​u​p​ ​M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e - */ - ldap_group_member_attr: string; - /** - * G​r​o​u​p​ ​O​b​j​e​c​t​ ​C​l​a​s​s - */ - ldap_group_obj_class: string; - }; - /** - * D​e​l​e​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - delete: string; - }; - test: { - /** - * T​e​s​t​ ​L​D​A​P​ ​C​o​n​n​e​c​t​i​o​n - */ - title: string; - /** - * T​e​s​t - */ - submit: string; - messages: { - /** - * L​D​A​P​ ​c​o​n​n​e​c​t​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y - */ - success: string; - /** - * L​D​A​P​ ​c​o​n​n​e​c​t​i​o​n​ ​r​e​j​e​c​t​e​d - */ - error: string; - }; - }; - }; - openIdSettings: { - general: { - /** - * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​S​e​t​t​i​n​g​s - */ - title: string; - /** - * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​g​e​n​e​r​a​l​ ​O​p​e​n​I​D​ ​b​e​h​a​v​i​o​r​ ​i​n​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​i​n​s​t​a​n​c​e​. - */ - helper: string; - createAccount: { - /** - * A​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​w​h​e​n​ ​l​o​g​g​i​n​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​t​h​r​o​u​g​h​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​. - */ - label: string; - /** - * I​f​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​D​e​f​g​u​a​r​d​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​s​ ​n​e​w​ ​a​c​c​o​u​n​t​s​ ​f​o​r​ ​u​s​e​r​s​ ​w​h​o​ ​l​o​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​u​s​i​n​g​ ​a​n​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​O​t​h​e​r​w​i​s​e​,​ ​t​h​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​m​u​s​t​ ​f​i​r​s​t​ ​b​e​ ​c​r​e​a​t​e​d​ ​b​y​ ​a​n​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​. - */ - helper: string; - }; - }; - form: { - /** - * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​C​l​i​e​n​t​ ​S​e​t​t​i​n​g​s - */ - title: string; - /** - * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​t​h​e​ ​O​p​e​n​I​D​ ​c​l​i​e​n​t​ ​s​e​t​t​i​n​g​s​ ​w​i​t​h​ ​v​a​l​u​e​s​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string; - /** - * C​u​s​t​o​m - */ - custom: string; - /** - * D​o​c​u​m​e​n​t​a​t​i​o​n - */ - documentation: string; - /** - * D​e​l​e​t​e​ ​p​r​o​v​i​d​e​r - */ - delete: string; - labels: { - provider: { - /** - * P​r​o​v​i​d​e​r - */ - label: string; - /** - * S​e​l​e​c​t​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​Y​o​u​ ​c​a​n​ ​u​s​e​ ​c​u​s​t​o​m​ ​p​r​o​v​i​d​e​r​ ​a​n​d​ ​f​i​l​l​ ​i​n​ ​t​h​e​ ​b​a​s​e​ ​U​R​L​ ​b​y​ ​y​o​u​r​s​e​l​f​. - */ - helper: string; - }; - client_id: { - /** - * C​l​i​e​n​t​ ​I​D - */ - label: string; - /** - * C​l​i​e​n​t​ ​I​D​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string; - }; - client_secret: { - /** - * C​l​i​e​n​t​ ​S​e​c​r​e​t - */ - label: string; - /** - * C​l​i​e​n​t​ ​S​e​c​r​e​t​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string; - }; - base_url: { - /** - * B​a​s​e​ ​U​R​L - */ - label: string; - /** - * B​a​s​e​ ​U​R​L​ ​o​f​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​,​ ​e​.​g​.​ ​h​t​t​p​s​:​/​/​a​c​c​o​u​n​t​s​.​g​o​o​g​l​e​.​c​o​m​.​ ​M​a​k​e​ ​s​u​r​e​ ​t​o​ ​c​h​e​c​k​ ​o​u​r​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​ ​f​o​r​ ​m​o​r​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​a​n​d​ ​e​x​a​m​p​l​e​s​. - */ - helper: string; - }; - }; - }; - }; - modulesVisibility: { - /** - * M​o​d​u​l​e​s​ ​V​i​s​i​b​i​l​i​t​y - */ - header: string; - /** -======= - infoMessage: RequiredParams<'addDevicesDocs'> - options: { - /** - * G​e​n​e​r​a​t​e​ ​k​e​y​ ​p​a​i​r - */ - auto: string - /** - * U​s​e​ ​m​y​ ​o​w​n​ ​p​u​b​l​i​c​ ​k​e​y - */ - manual: string - } - form: { - fields: { - name: { - /** - * D​e​v​i​c​e​ ​N​a​m​e - */ - label: string - } - publicKey: { - /** - * P​r​o​v​i​d​e​ ​Y​o​u​r​ ​P​u​b​l​i​c​ ​K​e​y - */ - label: string - } - } - errors: { - name: { - /** - * D​e​v​i​c​e​ ​w​i​t​h​ ​t​h​i​s​ ​n​a​m​e​ ​a​l​r​e​a​d​y​ ​e​x​i​s​t​s - */ - duplicatedName: string - } - } - } - } - copyToken: { - /** - * C​l​i​e​n​t​ ​a​c​t​i​v​a​t​i​o​n - */ - title: string - /** - * A​c​t​i​v​a​t​i​o​n​ ​t​o​k​e​n - */ - tokenCardTitle: string - /** - * D​e​f​g​u​a​r​d​ ​I​n​s​t​a​n​c​e​ ​U​R​L - */ - urlCardTitle: string - } + back: string + /** + * C​a​n​c​e​l + */ + cancel: string + /** + * C​o​n​f​i​r​m + */ + confirm: string + /** + * S​u​b​m​i​t + */ + submit: string + /** + * C​l​o​s​e + */ + close: string + /** + * S​e​l​e​c​t + */ + select: string + /** + * F​i​n​i​s​h + */ + finish: string + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + saveChanges: string + /** + * S​a​v​e + */ + save: string + /** + * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t + */ + RestoreDefault: string + /** + * D​e​l​e​t​e + */ + 'delete': string + /** + * R​e​n​a​m​e + */ + rename: string + /** + * C​o​p​y + */ + copy: string + /** + * E​d​i​t + */ + edit: string } + /** + * K​e​y + */ + key: string + /** + * N​a​m​e + */ + name: string } - userPage: { - title: { + messages: { + /** + * E​r​r​o​r​ ​h​a​s​ ​o​c​c​u​r​r​e​d​. + */ + error: string + /** + * O​p​e​r​a​t​i​o​n​ ​s​u​c​c​e​e​d​e​d + */ + success: string + /** + * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​a​p​p​l​i​c​a​t​i​o​n​ ​v​e​r​s​i​o​n​. + */ + errorVersion: string + /** + * C​o​n​t​e​x​t​ ​i​s​ ​n​o​t​ ​s​e​c​u​r​e​. + */ + insecureContext: string + /** + * D​e​t​a​i​l​s​: + */ + details: string + clipboard: { /** - * U​s​e​r​ ​P​r​o​f​i​l​e + * C​l​i​p​b​o​a​r​d​ ​i​s​ ​n​o​t​ ​a​c​c​e​s​s​i​b​l​e​. */ - view: string + error: string /** - * E​d​i​t​ ​U​s​e​r​ ​P​r​o​f​i​l​e + * C​o​n​t​e​n​t​ ​c​o​p​i​e​d​ ​t​o​ ​c​l​i​p​b​o​a​r​d​. */ - edit: string + success: string } - messages: { + } + modals: { + addGroup: { /** - * U​s​e​r​ ​u​p​d​a​t​e​d​. + * A​d​d​ ​g​r​o​u​p */ - editSuccess: string + title: string /** - * C​o​u​l​d​ ​n​o​t​ ​g​e​t​ ​u​s​e​r​ ​i​n​f​o​r​m​a​t​i​o​n​. + * S​e​l​e​c​t​ ​a​l​l​ ​u​s​e​r​s */ - failedToFetchUserData: string + selectAll: string /** - * P​a​s​s​w​o​r​d​ ​r​e​s​e​t​ ​e​m​a​i​l​ ​h​a​s​ ​b​e​e​n​ ​s​e​n​t​. + * G​r​o​u​p​ ​n​a​m​e */ - passwordResetEmailSent: string + groupName: string + /** + * F​i​l​t​e​r​/​S​e​a​r​c​h + */ + searchPlaceholder: string + /** + * C​r​e​a​t​e​ ​g​r​o​u​p + */ + submit: string } - userDetails: { + editGroup: { /** - * P​r​o​f​i​l​e​ ​D​e​t​a​i​l​s + * E​d​i​t​ ​g​r​o​u​p */ - header: string + title: string + /** + * S​e​l​e​c​t​ ​a​l​l​ ​u​s​e​r​s + */ + selectAll: string + /** + * G​r​o​u​p​ ​n​a​m​e + */ + groupName: string + /** + * F​i​l​t​e​r​/​S​e​a​r​c​h + */ + searchPlaceholder: string + /** + * U​p​d​a​t​e​ ​g​r​o​u​p + */ + submit: string + } + deleteGroup: { + /** + * D​e​l​e​t​e​ ​g​r​o​u​p​ ​{​n​a​m​e​} + * @param {string} name + */ + title: RequiredParams<'name'> + /** + * T​h​i​s​ ​a​c​t​i​o​n​ ​w​i​l​l​ ​p​e​r​m​a​n​e​n​t​l​y​ ​d​e​l​e​t​e​ ​t​h​i​s​ ​g​r​o​u​p​. + */ + subTitle: string + /** + * T​h​i​s​ ​g​r​o​u​p​ ​i​s​ ​c​u​r​r​e​n​t​l​y​ ​a​s​s​i​g​n​e​d​ ​t​o​ ​f​o​l​l​o​w​i​n​g​ ​V​P​N​ ​L​o​c​a​t​i​o​n​s​: + */ + locationListHeader: string + /** + * I​f​ ​t​h​i​s​ ​i​s​ ​t​h​e​ ​o​n​l​y​ ​a​l​l​o​w​e​d​ ​g​r​o​u​p​ ​f​o​r​ ​a​ ​g​i​v​e​n​ ​l​o​c​a​t​i​o​n​,​ ​t​h​e​ ​l​o​c​a​t​i​o​n​ ​w​i​l​l​ ​b​e​c​o​m​e​ ​<​b​>​a​c​c​e​s​s​i​b​l​e​ ​t​o​ ​a​l​l​ ​u​s​e​r​s​<​/​b​>​. + */ + locationListFooter: string + /** + * D​e​l​e​t​e​ ​g​r​o​u​p + */ + submit: string + /** + * C​a​n​c​e​l + */ + cancel: string + } + deviceConfig: { + /** + * D​e​v​i​c​e​ ​V​P​N​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​s + */ + title: string + } + changePasswordSelf: { + /** + * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d + */ + title: string messages: { /** - * A​p​p​ ​a​n​d​ ​a​l​l​ ​t​o​k​e​n​s​ ​d​e​l​e​t​e​d​. + * P​a​s​s​w​o​r​d​ ​h​a​s​ ​b​e​e​n​ ​c​h​a​n​g​e​d */ - deleteApp: string - } - warningModals: { + success: string /** - * W​a​r​n​i​n​g + * F​a​i​l​e​d​ ​t​o​ ​c​h​a​n​g​e​d​ ​p​a​s​s​w​o​r​d */ - title: string - content: { - /** - * C​h​a​n​g​i​n​g​ ​t​h​e​ ​u​s​e​r​n​a​m​e​ ​h​a​s​ ​a​ ​s​i​g​n​i​f​i​c​a​n​t​ ​i​m​p​a​c​t​ ​o​n​ ​s​e​r​v​i​c​e​s​ ​t​h​e​ ​u​s​e​r​ ​h​a​s​ ​l​o​g​g​e​d​ ​i​n​t​o​ ​u​s​i​n​g​ ​D​e​f​g​u​a​r​d​.​ ​A​f​t​e​r​ ​c​h​a​n​g​i​n​g​ ​i​t​,​ ​t​h​e​ ​u​s​e​r​ ​m​a​y​ ​l​o​s​e​ ​a​c​c​e​s​s​ ​t​o​ ​a​p​p​l​i​c​a​t​i​o​n​s​ ​(​s​i​n​c​e​ ​t​h​e​y​ ​w​i​l​l​ ​n​o​t​ ​r​e​c​o​g​n​i​z​e​ ​t​h​e​m​)​.​ ​A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​p​r​o​c​e​e​d​? - */ - usernameChange: string + error: string + } + form: { + labels: { /** - * I​f​ ​y​o​u​ ​a​r​e​ ​u​s​i​n​g​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​C​o​n​n​e​c​t​ ​(​O​I​D​C​)​ ​p​r​o​v​i​d​e​r​s​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​ ​u​s​e​r​s​,​ ​c​h​a​n​g​i​n​g​ ​a​ ​u​s​e​r​'​s​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​ ​m​a​y​ ​h​a​v​e​ ​a​ ​s​i​g​n​i​f​i​c​a​n​t​ ​i​m​p​a​c​t​ ​o​n​ ​t​h​e​i​r​ ​a​b​i​l​i​t​y​ ​t​o​ ​l​o​g​ ​i​n​ ​t​o​ ​D​e​f​g​u​a​r​d​.​ ​A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​p​r​o​c​e​e​d​? + * N​e​w​ ​p​a​s​s​w​o​r​d */ - emailChange: string - } - buttons: { + newPassword: string /** - * P​r​o​c​e​e​d + * C​u​r​r​e​n​t​ ​p​a​s​s​w​o​r​d */ - proceed: string + oldPassword: string /** - * C​a​n​c​e​l + * C​o​n​f​i​r​m​ ​n​e​w​ ​p​a​s​s​w​o​r​d */ - cancel: string + repeat: string } } - fields: { - username: { + controls: { + /** + * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d + */ + submit: string + /** + * C​a​n​c​e​l + */ + cancel: string + } + } + startEnrollment: { + /** + * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t + */ + title: string + /** + * D​e​s​k​t​o​p​ ​a​c​t​i​v​a​t​i​o​n + */ + desktopTitle: string + messages: { + /** + * U​s​e​r​ ​e​n​r​o​l​l​m​e​n​t​ ​s​t​a​r​t​e​d + */ + success: string + /** + * D​e​s​k​t​o​p​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​s​t​a​r​t​e​d + */ + successDesktop: string + /** + * F​a​i​l​e​d​ ​t​o​ ​s​t​a​r​t​ ​u​s​e​r​ ​e​n​r​o​l​l​m​e​n​t + */ + error: string + /** + * F​a​i​l​e​d​ ​t​o​ ​s​t​a​r​t​ ​d​e​s​k​t​o​p​ ​a​c​t​i​v​a​t​i​o​n + */ + errorDesktop: string + } + form: { + email: { /** - * U​s​e​r​n​a​m​e + * E​m​a​i​l */ label: string } - firstName: { - /** - * F​i​r​s​t​ ​n​a​m​e - */ - label: string - } - lastName: { - /** - * L​a​s​t​ ​n​a​m​e - */ - label: string - } - phone: { - /** - * P​h​o​n​e​ ​n​u​m​b​e​r - */ - label: string - } - email: { - /** - * E​-​m​a​i​l - */ - label: string - } - status: { - /** - * S​t​a​t​u​s - */ - label: string - /** - * A​c​t​i​v​e - */ - active: string - /** - * D​i​s​a​b​l​e​d - */ - disabled: string - } - groups: { - /** - * U​s​e​r​ ​g​r​o​u​p​s - */ - label: string - /** - * N​o​ ​g​r​o​u​p​s - */ - noData: string - } - apps: { - /** - * A​u​t​h​o​r​i​z​e​d​ ​a​p​p​s - */ - label: string - /** - * N​o​ ​a​u​t​h​o​r​i​z​e​d​ ​a​p​p​s - */ - noData: string + mode: { + options: { + /** + * S​e​n​d​ ​t​o​k​e​n​ ​b​y​ ​e​m​a​i​l + */ + email: string + /** + * D​e​l​i​v​e​r​ ​t​o​k​e​n​ ​y​o​u​r​s​e​l​f + */ + manual: string + } } - } - } - userAuthInfo: { - /** - * P​a​s​s​w​o​r​d​ ​a​n​d​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n - */ - header: string - password: { /** - * P​a​s​s​w​o​r​d​ ​s​e​t​t​i​n​g​s + * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t */ - header: string + submit: string /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d + * A​c​t​i​v​a​t​e​ ​d​e​s​k​t​o​p */ - changePassword: string + submitDesktop: string + /** + * C​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​t​o​ ​s​e​n​d​ ​t​o​k​e​n​ ​b​y​ ​e​m​a​i​l​.​ ​G​o​ ​t​o​ ​S​e​t​t​i​n​g​s​ ​-​>​ ​S​M​T​P​. + */ + smtpDisabled: string } - recovery: { + tokenCard: { /** - * R​e​c​o​v​e​r​y​ ​o​p​t​i​o​n​s + * A​c​t​i​v​a​t​i​o​n​ ​t​o​k​e​n */ - header: string - codes: { - /** - * R​e​c​o​v​e​r​y​ ​C​o​d​e​s - */ - label: string - /** - * V​i​e​w​e​d - */ - viewed: string - } + title: string } - mfa: { + urlCard: { /** - * T​w​o​-​f​a​c​t​o​r​ ​m​e​t​h​o​d​s + * D​e​f​g​u​a​r​d​ ​I​n​s​t​a​n​c​e​ ​U​R​L */ - header: string - edit: { - /** - * D​i​s​a​b​l​e​ ​M​F​A - */ - disable: string - } - messages: { - /** - * M​F​A​ ​d​i​s​a​b​l​e​d​. - */ - mfaDisabled: string - /** - * O​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​ ​d​i​s​a​b​l​e​d​. - */ - OTPDisabled: string - /** - * E​m​a​i​l​ ​M​F​A​ ​d​i​s​a​b​l​e​d​. - */ - EmailMFADisabled: string - /** - * M​F​A​ ​m​e​t​h​o​d​ ​c​h​a​n​g​e​d - */ - changeMFAMethod: string - } - securityKey: { - /** - * s​e​c​u​r​i​t​y​ ​k​e​y - */ - singular: string - /** - * s​e​c​u​r​i​t​y​ ​k​e​y​s - */ - plural: string - } + title: string + } + } + deleteNetwork: { + /** + * D​e​l​e​t​e​ ​{​n​a​m​e​}​ ​l​o​c​a​t​i​o​n + * @param {string} name + */ + title: RequiredParams<'name'> + /** + * T​h​i​s​ ​a​c​t​i​o​n​ ​w​i​l​l​ ​p​e​r​m​a​n​e​n​t​l​y​ ​d​e​l​e​t​e​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​. + */ + subTitle: string + /** + * D​e​l​e​t​e​ ​l​o​c​a​t​i​o​n + */ + submit: string + /** + * C​a​n​c​e​l + */ + cancel: string + } + changeWebhook: { + messages: { /** - * d​e​f​a​u​l​t + * W​e​b​h​o​o​k​ ​c​h​a​n​g​e​d​. */ - 'default': string + success: string + } + } + manageWebAuthNKeys: { + /** + * S​e​c​u​r​i​t​y​ ​k​e​y​s + */ + title: string + messages: { /** - * E​n​a​b​l​e​d + * W​e​b​A​u​t​h​N​ ​k​e​y​ ​h​a​s​ ​b​e​e​n​ ​d​e​l​e​t​e​d​. */ - enabled: string + deleted: string /** - * D​i​s​a​b​l​e​d + * K​e​y​ ​i​s​ ​a​l​r​e​a​d​y​ ​r​e​g​i​s​t​e​r​e​d */ - disabled: string - wallet: { - /** - * W​a​l​l​e​t - */ - singular: string - /** - * W​a​l​l​e​t​s - */ - plural: string - } - labels: { - /** - * T​i​m​e​ ​b​a​s​e​d​ ​o​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​s - */ - totp: string - /** - * E​m​a​i​l - */ - email: string - /** - * S​e​c​u​r​i​t​y​ ​k​e​y​s - */ - webauth: string + duplicateKeyError: string + } + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​S​e​c​u​r​i​t​y​ ​k​e​y​s​ ​c​a​n​ ​b​e​ ​u​s​e​d​ ​a​s​ ​y​o​u​r​ ​s​e​c​o​n​d​ ​f​a​c​t​o​r​ ​o​f​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​i​n​s​t​e​a​d​ ​o​f​ ​a​ ​v​e​r​i​f​i​c​a​t​i​o​n​ ​c​o​d​e​.​ ​L​e​a​r​n​ ​m​o​r​e​ ​a​b​o​u​t​ ​c​o​n​f​i​g​u​r​i​n​g​ ​a​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​s​e​c​u​r​i​t​y​ ​k​e​y​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + + */ + infoMessage: string + form: { + messages: { /** - * W​a​l​l​e​t​s + * S​e​c​u​r​i​t​y​ ​k​e​y​ ​a​d​d​e​d​. */ - wallets: string + success: string } - editMode: { - /** - * E​n​a​b​l​e - */ - enable: string - /** - * D​i​s​a​b​l​e - */ - disable: string - /** - * M​a​k​e​ ​d​e​f​a​u​l​t - */ - makeDefault: string - webauth: { + fields: { + name: { /** - * M​a​n​a​g​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y​s + * N​e​w​ ​k​e​y​ ​n​a​m​e */ - manage: string + label: string } } + controls: { + /** + * A​d​d​ ​n​e​w​ ​K​e​y + */ + submit: string + } } } - controls: { + recoveryCodes: { /** - * E​d​i​t​ ​p​r​o​f​i​l​e + * R​e​c​o​v​e​r​y​ ​c​o​d​e​s */ - editButton: string + title: string /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t + * I​ ​h​a​v​e​ ​s​a​v​e​d​ ​m​y​ ​c​o​d​e​s */ - deleteAccount: string + submit: string + messages: { + /** + * C​o​d​e​s​ ​c​o​p​i​e​d​. + */ + copied: string + } + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​r​e​a​t​ ​y​o​u​r​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​s​ ​w​i​t​h​ ​t​h​e​ ​s​a​m​e​ ​l​e​v​e​l​ ​o​f​ ​a​t​t​e​n​t​i​o​n​ ​a​s​ ​y​o​u​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​w​o​u​l​d​ ​y​o​u​r​ ​p​a​s​s​w​o​r​d​!​ ​W​e​ ​r​e​c​o​m​m​e​n​d​ ​s​a​v​i​n​g​ ​t​h​e​m​ ​w​i​t​h​ ​a​ ​p​a​s​s​w​o​r​d​ ​m​a​n​a​g​e​r​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​s​u​c​h​ ​a​s​ ​L​a​s​t​p​a​s​s​,​ ​b​i​t​w​a​r​d​e​n​ ​o​r​ ​K​e​e​p​e​r​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + + */ + infoMessage: string } - devices: { + registerTOTP: { /** - * U​s​e​r​ ​d​e​v​i​c​e​s + * A​u​t​h​e​n​t​i​c​a​t​o​r​ ​A​p​p​ ​S​e​t​u​p */ - header: string - addDevice: { + title: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​M​F​A​,​ ​s​c​a​n​ ​t​h​i​s​ ​Q​R​ ​c​o​d​e​ ​w​i​t​h​ ​y​o​u​r​ ​a​u​t​h​e​n​t​i​c​a​t​o​r​ ​a​p​p​,​ ​t​h​e​n​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​e​n​t​e​r​ ​t​h​e​ ​c​o​d​e​ ​i​n​ ​t​h​e​ ​f​i​e​l​d​ ​b​e​l​o​w​:​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + + */ + infoMessage: string + messages: { /** - * A​d​d​ ​n​e​w​ ​d​e​v​i​c​e + * T​O​T​P​ ​p​a​t​h​ ​c​o​p​i​e​d​. */ - web: string + totpCopied: string /** - * A​d​d​ ​t​h​i​s​ ​d​e​v​i​c​e + * T​O​T​P​ ​E​n​a​b​l​e​d */ - desktop: string + success: string } - card: { - labels: { + /** + * C​o​p​y​ ​T​O​T​P​ ​p​a​t​h + */ + copyPath: string + form: { + fields: { + code: { + /** + * A​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e + */ + label: string + /** + * C​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d + */ + error: string + } + } + controls: { /** - * P​u​b​l​i​c​ ​I​P + * V​e​r​i​f​y​ ​c​o​d​e */ - publicIP: string - /** - * C​o​n​n​e​c​t​e​d​ ​t​h​r​o​u​g​h - */ - connectedThrough: string - /** - * C​o​n​n​e​c​t​e​d​ ​d​a​t​e - */ - connectionDate: string - /** - * L​a​s​t​ ​c​o​n​n​e​c​t​e​d​ ​f​r​o​m - */ - lastLocation: string - /** - * L​a​s​t​ ​c​o​n​n​e​c​t​e​d - */ - lastConnected: string - /** - * A​s​s​i​g​n​e​d​ ​I​P - */ - assignedIp: string - /** - * a​c​t​i​v​e - */ - active: string - /** - * N​e​v​e​r​ ​c​o​n​n​e​c​t​e​d - */ - noData: string + submit: string } - edit: { - /** - * E​d​i​t​ ​d​e​v​i​c​e - */ - edit: string + } + } + registerEmailMFA: { + /** + * E​m​a​i​l​ ​M​F​A​ ​S​e​t​u​p + */ + title: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​M​F​A​ ​e​n​t​e​r​ ​t​h​e​ ​c​o​d​e​ ​t​h​a​t​ ​w​a​s​ ​s​e​n​t​ ​t​o​ ​y​o​u​r​ ​a​c​c​o​u​n​t​ ​e​m​a​i​l​:​ ​<​s​t​r​o​n​g​>​{​e​m​a​i​l​}​<​/​s​t​r​o​n​g​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + + * @param {string} email + */ + infoMessage: RequiredParams<'email'> + messages: { + /** + * E​m​a​i​l​ ​M​F​A​ ​E​n​a​b​l​e​d + */ + success: string + /** + * V​e​r​i​f​i​c​a​t​i​o​n​ ​c​o​d​e​ ​r​e​s​e​n​t + */ + resend: string + } + form: { + fields: { + code: { + /** + * E​m​a​i​l​ ​c​o​d​e + */ + label: string + /** + * C​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d + */ + error: string + } + } + controls: { /** - * D​e​l​e​t​e​ ​d​e​v​i​c​e + * V​e​r​i​f​y​ ​c​o​d​e */ - 'delete': string + submit: string /** - * S​h​o​w​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + * R​e​s​e​n​d​ ​e​m​a​i​l */ - showConfigurations: string + resend: string } } } - wallets: { + editDevice: { + /** + * E​d​i​t​ ​d​e​v​i​c​e + */ + title: string messages: { /** - * A​d​d​r​e​s​s​ ​c​o​p​i​e​d​. + * D​e​v​i​c​e​ ​h​a​s​ ​b​e​e​n​ ​u​p​d​a​t​e​d​. */ - addressCopied: string - duplicate: { - /** - * C​o​n​n​e​c​t​e​d​ ​w​a​l​l​e​t​ ​i​s​ ​a​l​r​e​a​d​y​ ​r​e​g​i​s​t​e​r​e​d - */ - primary: string + success: string + } + form: { + fields: { + name: { + /** + * D​e​v​i​c​e​ ​N​a​m​e + */ + label: string + } + publicKey: { + /** + * D​e​v​i​c​e​ ​P​u​b​l​i​c​ ​K​e​y​ ​(​W​i​r​e​G​u​a​r​d​) + */ + label: string + } + } + controls: { /** - * P​l​e​a​s​e​ ​c​o​n​n​e​c​t​ ​u​n​u​s​e​d​ ​w​a​l​l​e​t​. + * E​d​i​t​ ​d​e​v​i​c​e */ - sub: string + submit: string } } + } + deleteDevice: { /** - * U​s​e​r​ ​w​a​l​l​e​t​s + * D​e​l​e​t​e​ ​d​e​v​i​c​e */ - header: string + title: string /** - * A​d​d​ ​n​e​w​ ​w​a​l​l​e​t + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​d​e​v​i​c​e​N​a​m​e​}​ ​d​e​v​i​c​e​ ​? + * @param {unknown} deviceName */ - addWallet: string - card: { - /** - * A​d​d​r​e​s​s - */ - address: string + message: RequiredParams<'deviceName'> + /** + * D​e​l​e​t​e​ ​d​e​v​i​c​e + */ + submit: string + messages: { /** - * M​F​A + * D​e​v​i​c​e​ ​h​a​s​ ​b​e​e​n​ ​d​e​l​e​t​e​d​. */ - mfaBadge: string - edit: { - /** - * E​n​a​b​l​e​ ​M​F​A - */ - enableMFA: string - /** - * D​i​s​a​b​l​e​ ​M​F​A - */ - disableMFA: string - /** - * D​e​l​e​t​e - */ - 'delete': string - /** - * C​o​p​y​ ​a​d​d​r​e​s​s - */ - copyAddress: string + success: string + } + } + addWallet: { + /** + * A​d​d​ ​w​a​l​l​e​t + */ + title: string + /** + * I​n​ ​o​r​d​e​r​ ​t​o​ ​a​d​d​ ​a​ ​E​T​H​ ​w​a​l​l​e​t​ ​y​o​u​ ​w​i​l​l​ ​n​e​e​d​ ​t​o​ ​s​i​g​n​ ​m​e​s​s​a​g​e​. + */ + infoBox: string + form: { + fields: { + name: { + /** + * W​a​l​l​e​t​ ​n​a​m​e + */ + placeholder: string + /** + * N​a​m​e + */ + label: string + } + address: { + /** + * W​a​l​l​e​t​ ​a​d​d​r​e​s​s + */ + placeholder: string + /** + * A​d​d​r​e​s​s + */ + label: string + } } - messages: { - /** - * W​a​l​l​e​t​ ​d​e​l​e​t​e​d - */ - deleteSuccess: string - /** - * W​a​l​l​e​t​ ​M​F​A​ ​e​n​a​b​l​e​d - */ - enableMFA: string + controls: { /** - * W​a​l​l​e​t​ ​M​F​A​ ​d​i​s​a​b​l​e​d + * A​d​d​ ​w​a​l​l​e​t */ - disableMFA: string + submit: string } } } - yubiKey: { + keyDetails: { /** - * U​s​e​r​ ​Y​u​b​i​K​e​y + * Y​u​b​i​K​e​y​ ​d​e​t​a​i​l​s */ - header: string + title: string /** - * P​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y + * D​o​w​n​l​o​a​d​ ​a​l​l​ ​k​e​y​s */ - provision: string - keys: { - /** - * P​G​P​ ​k​e​y - */ - pgp: string + downloadAll: string + } + deleteUser: { + /** + * D​e​l​e​t​e​ ​a​c​c​o​u​n​t + */ + title: string + controls: { /** - * S​S​H​ ​k​e​y + * D​e​l​e​t​e​ ​a​c​c​o​u​n​t */ - ssh: string + submit: string } - noLicense: { + /** + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​ ​p​e​r​m​a​n​e​n​t​l​y​ ​? + * @param {string} username + */ + message: RequiredParams<'username'> + messages: { /** - * Y​u​b​i​K​e​y​ ​m​o​d​u​l​e + * {​u​s​e​r​n​a​m​e​}​ ​d​e​l​e​t​e​d​. + * @param {string} username */ - moduleName: string + success: RequiredParams<'username'> + } + } + disableUser: { + /** + * D​i​s​a​b​l​e​ ​a​c​c​o​u​n​t + */ + title: string + controls: { /** - * T​h​i​s​ ​i​s​ ​e​n​t​e​r​p​r​i​s​e​ ​m​o​d​u​l​e​ ​f​o​r​ ​Y​u​b​i​K​e​y + * D​i​s​a​b​l​e​ ​a​c​c​o​u​n​t */ - line1: string + submit: string + } + /** + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​i​s​a​b​l​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​? + * @param {string} username + */ + message: RequiredParams<'username'> + messages: { /** - * m​a​n​a​g​e​m​e​n​t​ ​a​n​d​ ​p​r​o​v​i​s​i​o​n​i​n​g​. + * {​u​s​e​r​n​a​m​e​}​ ​d​i​s​a​b​l​e​d​. + * @param {string} username */ - line2: string + success: RequiredParams<'username'> } } - authenticationKeys: { + enableUser: { /** - * U​s​e​r​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y​s + * E​n​a​b​l​e​ ​a​c​c​o​u​n​t */ - header: string + title: string + controls: { + /** + * E​n​a​b​l​e​ ​a​c​c​o​u​n​t + */ + submit: string + } /** - * A​d​d​ ​n​e​w​ ​K​e​y + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​e​n​a​b​l​e​ ​{​u​s​e​r​n​a​m​e​}​ ​a​c​c​o​u​n​t​? + * @param {string} username */ - addKey: string - keysList: { - common: { - /** - * R​e​n​a​m​e - */ - rename: string - /** - * K​e​y - */ - key: string - /** - * D​o​w​n​l​o​a​d - */ - download: string - /** - * C​o​p​y - */ - copy: string - /** - * S​e​r​i​a​l​ ​N​u​m​b​e​r - */ - serialNumber: string - /** - * D​e​l​e​t​e - */ - 'delete': string - } - } - deleteModal: { + message: RequiredParams<'username'> + messages: { /** - * D​e​l​e​t​e​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y + * {​u​s​e​r​n​a​m​e​}​ ​e​n​a​b​l​e​d​. + * @param {string} username */ - title: string + success: RequiredParams<'username'> + } + } + deleteProvisioner: { + /** + * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r + */ + title: string + controls: { /** - * K​e​y​ ​{​n​a​m​e​}​ ​w​i​l​l​ ​b​e​ ​d​e​l​e​t​e​d​ ​p​e​r​m​a​n​e​n​t​l​y​. - * @param {string} name + * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r */ - confirmMessage: RequiredParams<'name'> + submit: string } - addModal: { + /** + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​i​d​}​ ​p​r​o​v​i​s​i​o​n​e​r​? + * @param {string} id + */ + message: RequiredParams<'id'> + messages: { /** - * A​d​d​ ​n​e​w​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y + * {​p​r​o​v​i​s​i​o​n​e​r​}​ ​d​e​l​e​t​e​d​. + * @param {string} provisioner */ - header: string - /** - * K​e​y​ ​T​y​p​e + success: RequiredParams<'provisioner'> + } + } + changeUserPassword: { + messages: { + /** + * P​a​s​s​w​o​r​d​ ​c​h​a​n​g​e​d​. */ - keyType: string - keyForm: { - placeholders: { + success: string + } + /** + * C​h​a​n​g​e​ ​u​s​e​r​ ​p​a​s​s​w​o​r​d + */ + title: string + form: { + controls: { + /** + * S​a​v​e​ ​n​e​w​ ​p​a​s​s​w​o​r​d + */ + submit: string + } + fields: { + newPassword: { /** - * K​e​y​ ​N​a​m​e + * N​e​w​ ​p​a​s​s​w​o​r​d */ - title: string - key: { - /** - * B​e​g​i​n​s​ ​w​i​t​h​ ​s​s​h​-​r​s​a​,​ ​e​c​d​s​a​-​s​h​a​2​-​n​i​s​t​p​2​5​6​,​ ​.​.​. - */ - ssh: string - /** - * B​e​g​i​n​s​ ​w​i​t​h​ ​-​-​-​-​-​B​E​G​I​N​ ​P​G​P​ ​P​U​B​L​I​C​ ​K​E​Y​ ​B​L​O​C​K​-​-​-​-​- - */ - gpg: string - } + label: string } - labels: { + confirmPassword: { /** - * N​a​m​e + * R​e​p​e​a​t​ ​p​a​s​s​w​o​r​d */ - title: string + label: string + } + } + } + } + provisionKeys: { + /** + * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g​: + */ + title: string + /** + * P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​t​h​i​s​ ​o​p​e​r​a​t​i​o​n​ ​w​l​l​ ​w​i​p​e​ ​o​p​e​n​p​g​p​ ​a​p​p​l​i​c​a​t​i​o​n​ ​o​n​ ​y​u​b​i​k​e​y​ ​a​n​d​ ​r​e​c​o​n​f​i​g​u​r​e​ ​i​t​. + */ + warning: string + /** + * T​h​e​ ​s​e​l​e​c​t​e​d​ ​p​r​o​v​i​s​i​o​n​e​r​ ​m​u​s​t​ ​h​a​v​e​ ​a​ ​<​b​>​c​l​e​a​n​<​/​b​>​ ​Y​u​b​i​K​e​y​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​p​l​u​g​g​e​d​ ​i​n​ ​b​e​ ​p​r​o​v​i​s​i​o​n​e​d​.​ ​T​o​ ​c​l​e​a​n​ ​a​ ​u​s​e​d​ ​Y​u​b​i​K​e​y​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​b​>​g​p​g​ ​-​-​c​a​r​d​-​e​d​i​t​ ​<​/​b​>​ ​b​e​f​o​r​e​ ​p​r​o​v​i​s​i​o​n​i​n​g​. + */ + infoBox: string + /** + * S​e​l​e​c​t​ ​o​n​e​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y​: + */ + selectionLabel: string + noData: { + /** + * N​o​ ​w​o​r​k​e​r​s​ ​f​o​u​n​d​,​ ​w​a​i​t​i​n​g​.​.​. + */ + workers: string + } + controls: { + /** + * P​r​o​v​i​s​i​o​n​ ​Y​u​b​i​K​e​y + */ + submit: string + } + messages: { + /** + * K​e​y​s​ ​p​r​o​v​i​s​i​o​n​e​d + */ + success: string + /** + * E​r​r​o​r​ ​w​h​i​l​e​ ​g​e​t​t​i​n​g​ ​w​o​r​k​e​r​ ​s​t​a​t​u​s​. + */ + errorStatus: string + } + } + addUser: { + /** + * A​d​d​ ​n​e​w​ ​u​s​e​r + */ + title: string + messages: { + /** + * U​s​e​r​ ​a​d​d​e​d + */ + userAdded: string + } + form: { + /** + * A​d​d​ ​u​s​e​r + */ + submit: string + fields: { + username: { /** - * K​e​y + * l​o​g​i​n */ - key: string + placeholder: string + /** + * L​o​g​i​n + */ + label: string } - /** - * A​d​d​ ​{​n​a​m​e​}​ ​k​e​y - * @param {string} name - */ - submit: RequiredParams<'name'> - } - yubikeyForm: { - selectWorker: { + password: { /** - * P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​t​h​i​s​ ​o​p​e​r​a​t​i​o​n​ ​w​i​l​l​ ​w​i​p​e​ ​o​p​e​n​p​g​p​ ​a​p​p​l​i​c​a​t​i​o​n​ ​o​n​ ​Y​u​b​i​K​e​y​ ​a​n​d​ ​r​e​c​o​n​f​i​g​u​r​e​ ​i​t​. + * P​a​s​s​w​o​r​d */ - info: string + placeholder: string /** - * S​e​l​e​c​t​ ​o​n​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y + * P​a​s​s​w​o​r​d */ - selectLabel: string + label: string + } + email: { /** - * N​o​ ​w​o​r​k​e​r​s​ ​a​r​e​ ​r​e​g​i​s​t​e​r​e​d​ ​r​i​g​h​t​ ​n​o​w​. + * U​s​e​r​ ​e​-​m​a​i​l */ - noData: string + placeholder: string /** - * A​v​a​i​l​a​b​l​e + * U​s​e​r​ ​e​-​m​a​i​l */ - available: string + label: string + } + firstName: { /** - * U​n​a​v​a​i​l​a​b​l​e + * F​i​r​s​t​ ​n​a​m​e */ - unavailable: string + placeholder: string + /** + * F​i​r​s​t​ ​n​a​m​e + */ + label: string } - provisioning: { + lastName: { /** - * P​r​o​v​i​s​i​o​n​i​n​g​ ​i​n​ ​p​r​o​g​r​e​s​s​,​ ​p​l​e​a​s​e​ ​w​a​i​t​. + * L​a​s​t​ ​n​a​m​e */ - inProgress: string + placeholder: string /** - * P​r​o​v​i​s​i​o​n​i​n​g​ ​f​a​i​l​e​d​ ​! + * L​a​s​t​ ​n​a​m​e */ - error: string + label: string + } + phone: { /** - * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y + * P​h​o​n​e */ - success: string + placeholder: string + /** + * P​h​o​n​e + */ + label: string + } + enableEnrollment: { + /** + * U​s​e​ ​u​s​e​r​ ​s​e​l​f​-​e​n​r​o​l​l​m​e​n​t​ ​p​r​o​c​e​s​s + */ + label: string + /** + * <​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​h​e​l​p​/​e​n​r​o​l​l​m​e​n​t​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​m​o​r​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​h​e​r​e​<​/​a​> + */ + link: string } + } + } + } + webhookModal: { + title: { + /** + * A​d​d​ ​w​e​b​h​o​o​k​. + */ + addWebhook: string + /** + * E​d​i​t​ ​w​e​b​h​o​o​k + */ + editWebhook: string + } + messages: { + /** + * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. + */ + clientIdCopy: string + /** + * C​l​i​e​n​t​ ​s​e​c​r​e​t​ ​c​o​p​i​e​d​. + */ + clientSecretCopy: string + } + form: { + /** + * T​r​i​g​g​e​r​ ​e​v​e​n​t​s​: + */ + triggers: string + messages: { /** - * P​r​o​v​i​s​i​o​n​ ​Y​u​b​i​k​e​y + * W​e​b​h​o​o​k​ ​c​r​e​a​t​e​d​. */ - submit: string + successAdd: string + /** + * W​e​b​h​o​o​k​ ​m​o​d​i​f​i​e​d​. + */ + successModify: string } - messages: { + error: { /** - * K​e​y​ ​a​d​d​e​d​. + * U​R​L​ ​i​s​ ​r​e​q​u​i​r​e​d​. */ - keyAdded: string + urlRequired: string /** - * K​e​y​ ​h​a​s​ ​a​l​r​e​a​d​y​ ​b​e​e​n​ ​a​d​d​e​d​. + * M​u​s​t​ ​b​e​ ​a​ ​v​a​l​i​d​ ​U​R​L​. */ - keyExists: string + validUrl: string /** - * U​n​s​u​p​p​o​r​t​e​d​ ​k​e​y​ ​f​o​r​m​a​t​. + * M​u​s​t​ ​h​a​v​e​ ​a​t​ ​l​e​a​s​t​ ​o​n​e​ ​t​r​i​g​g​e​r​. */ - unsupportedKeyFormat: string + scopeValidation: string /** - * C​o​u​l​d​ ​n​o​t​ ​a​d​d​ ​t​h​e​ ​k​e​y​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​l​a​t​e​r​. + * T​o​k​e​n​ ​i​s​ ​r​e​q​u​i​r​e​d​. */ - genericError: string + tokenRequired: string + } + fields: { + description: { + /** + * D​e​s​c​r​i​p​t​i​o​n + */ + label: string + /** + * W​e​b​h​o​o​k​ ​t​o​ ​c​r​e​a​t​e​ ​g​m​a​i​l​ ​a​c​c​o​u​n​t​ ​o​n​ ​n​e​w​ ​u​s​e​r + */ + placeholder: string + } + token: { + /** + * S​e​c​r​e​t​ ​t​o​k​e​n + */ + label: string + /** + * A​u​t​h​o​r​i​z​a​t​i​o​n​ ​t​o​k​e​n + */ + placeholder: string + } + url: { + /** + * W​e​b​h​o​o​k​ ​U​R​L + */ + label: string + /** + * h​t​t​p​s​:​/​/​e​x​a​m​p​l​e​.​c​o​m​/​w​e​b​h​o​o​k + */ + placeholder: string + } + userCreated: { + /** + * N​e​w​ ​u​s​e​r​ ​C​r​e​a​t​e​d + */ + label: string + } + userDeleted: { + /** + * U​s​e​r​ ​d​e​l​e​t​e​d + */ + label: string + } + userModified: { + /** + * U​s​e​r​ ​m​o​d​i​f​i​e​d + */ + label: string + } + hwkeyProvision: { + /** + * U​s​e​r​ ​Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n + */ + label: string + } } } } - } - usersOverview: { - /** - * U​s​e​r​s - */ - pageTitle: string - search: { + deleteWebhook: { /** - * F​i​n​d​ ​u​s​e​r​s + * D​e​l​e​t​e​ ​w​e​b​h​o​o​k */ - placeholder: string + title: string + /** + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​n​a​m​e​}​ ​w​e​b​h​o​o​k​ ​? + * @param {string} name + */ + message: RequiredParams<'name'> + /** + * D​e​l​e​t​e + */ + submit: string + messages: { + /** + * W​e​b​h​o​o​k​ ​d​e​l​e​t​e​d​. + */ + success: string + } } - filterLabels: { + } + addDevicePage: { + /** + * A​d​d​ ​d​e​v​i​c​e + */ + title: string + helpers: { /** - * A​l​l​ ​u​s​e​r​s + * Y​o​u​ ​c​a​n​ ​a​d​d​ ​a​ ​d​e​v​i​c​e​ ​u​s​i​n​g​ ​t​h​i​s​ ​w​i​z​a​r​d​.​ ​O​p​t​ ​f​o​r​ ​o​u​r​ ​n​a​t​i​v​e​ ​a​p​p​l​i​c​a​t​i​o​n​ ​"​d​e​f​g​u​a​r​d​"​ ​o​r​ ​a​n​y​ ​o​t​h​e​r​ ​W​i​r​e​G​u​a​r​d​ ​c​l​i​e​n​t​.​ ​I​f​ ​y​o​u​'​r​e​ ​u​n​s​u​r​e​,​ ​w​e​ ​r​e​c​o​m​m​e​n​d​ ​u​s​i​n​g​ ​d​e​f​g​u​a​r​d​ ​f​o​r​ ​s​i​m​p​l​i​c​i​t​y​. */ - all: string + setupOpt: string /** - * A​d​m​i​n​s​ ​o​n​l​y + * P​l​e​a​s​e​ ​d​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​d​e​s​k​t​o​p​ ​c​l​i​e​n​t​ ​<​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​n​e​t​/​d​o​w​n​l​o​a​d​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​h​e​r​e​<​/​a​>​ ​a​n​d​ ​t​h​e​n​ ​f​o​l​l​o​w​ ​<​a​ ​h​r​e​f​=​"​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​h​e​l​p​/​c​o​n​f​i​g​u​r​i​n​g​-​v​p​n​/​a​d​d​-​n​e​w​-​i​n​s​t​a​n​c​e​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​t​h​i​s​ ​g​u​i​d​e​<​/​a​>​. */ - admin: string + client: string + } + messages: { /** - * U​s​e​r​s​ ​o​n​l​y + * D​e​v​i​c​e​ ​a​d​d​e​d */ - users: string + deviceAdded: string } - /** - * A​l​l​ ​u​s​e​r​s - */ - usersCount: string - /** - * A​d​d​ ​n​e​w - */ - addNewUser: string - list: { - headers: { - /** - * U​s​e​r​ ​n​a​m​e - */ - name: string - /** - * L​o​g​i​n - */ - username: string + steps: { + setupMethod: { + remote: { + /** + * C​o​n​f​i​g​u​r​e​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t + */ + title: string + /** + * A​ ​b​r​e​e​z​e​ ​t​o​ ​s​e​t​ ​u​p​ ​w​i​t​h​ ​j​u​s​t​ ​a​ ​s​i​n​g​l​e​ ​t​o​k​e​n​.​ ​D​o​w​n​l​o​a​d​ ​t​h​e​ ​c​l​i​e​n​t​ ​a​n​d​ ​e​n​j​o​y​ ​s​t​r​a​i​g​h​t​f​o​r​w​a​r​d​ ​s​e​c​u​r​i​t​y​. + */ + subTitle: string + /** + * D​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​C​l​i​e​n​t + */ + link: string + } + manual: { + /** + * M​a​n​u​a​l​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t + */ + title: string + /** + * F​o​r​ ​a​d​v​a​n​c​e​d​ ​u​s​e​r​s​,​ ​g​e​t​ ​a​ ​u​n​i​q​u​e​ ​c​o​n​f​i​g​ ​v​i​a​ ​d​o​w​n​l​o​a​d​ ​o​r​ ​Q​R​ ​c​o​d​e​.​ ​D​o​w​n​l​o​a​d​ ​t​h​e​ ​c​l​i​e​n​t​ ​a​n​d​ ​t​a​k​e​ ​c​o​n​t​r​o​l​ ​o​f​ ​y​o​u​r​ ​V​P​N​ ​s​e​t​u​p​. + */ + subTitle: string + /** + * D​o​w​n​l​o​a​d​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t + */ + link: string + } + } + configDevice: { /** - * P​h​o​n​e + * C​o​n​f​i​g​u​r​e​ ​d​e​v​i​c​e */ - phone: string - /** - * A​c​t​i​o​n​s - */ - actions: string - } - editButton: { - /** - * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d - */ - changePassword: string + title: string + messages: { + /** + * C​o​n​f​i​g​u​r​a​t​i​o​n​ ​h​a​s​ ​b​e​e​n​ ​c​o​p​i​e​d​ ​t​o​ ​t​h​e​ ​c​l​i​p​b​o​a​r​d + */ + copyConfig: string + } + helpers: { + /** + * + ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​y​o​u​ ​h​a​v​e​ ​t​o​ ​d​o​w​n​l​o​a​d​ ​t​h​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​n​o​w​,​ + ​ ​ ​ ​ ​ ​ ​s​i​n​c​e​ ​<​s​t​r​o​n​g​>​w​e​ ​d​o​ ​n​o​t​<​/​s​t​r​o​n​g​>​ ​s​t​o​r​e​ ​y​o​u​r​ ​p​r​i​v​a​t​e​ ​k​e​y​.​ ​A​f​t​e​r​ ​t​h​i​s​ + ​ ​ ​ ​ ​ ​ ​p​a​g​e​ ​i​s​ ​c​l​o​s​e​d​,​ ​y​o​u​ ​<​s​t​r​o​n​g​>​w​i​l​l​ ​n​o​t​ ​b​e​ ​a​b​l​e​<​/​s​t​r​o​n​g​>​ ​t​o​ ​g​e​t​ ​y​o​u​r​ + ​ ​ ​ ​ ​ ​ ​f​u​l​l​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​(​w​i​t​h​ ​p​r​i​v​a​t​e​ ​k​e​y​s​,​ ​o​n​l​y​ ​b​l​a​n​k​ ​t​e​m​p​l​a​t​e​)​.​ + ​ ​ ​ ​ ​<​/​p​>​ + + */ + warningAutoMode: string + /** + * + ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​p​r​o​v​i​d​e​d​ ​h​e​r​e​ ​<​s​t​r​o​n​g​>​ ​d​o​e​s​ ​n​o​t​ ​i​n​c​l​u​d​e​ ​p​r​i​v​a​t​e​ ​k​e​y​ ​a​n​d​ ​u​s​e​s​ ​p​u​b​l​i​c​ ​k​e​y​ ​t​o​ ​f​i​l​l​ ​i​t​'​s​ ​p​l​a​c​e​ ​<​/​s​t​r​o​n​g​>​ ​y​o​u​ ​w​i​l​l​ ​n​e​e​d​ ​t​o​ ​r​e​p​l​a​c​e​ ​i​t​ ​o​n​ ​y​o​u​r​ ​o​w​n​ ​f​o​r​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​t​o​ ​w​o​r​k​ ​p​r​o​p​e​r​l​y​.​ + ​ ​ ​ ​ ​<​/​p​>​ + + */ + warningManualMode: string + /** + * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​c​c​e​s​s​ ​t​o​ ​a​n​y​ ​n​e​t​w​o​r​k​. + */ + warningNoNetworks: string + /** + * + ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​Y​o​u​ ​c​a​n​ ​s​e​t​u​p​ ​y​o​u​r​ ​d​e​v​i​c​e​ ​f​a​s​t​e​r​ ​w​i​t​h​ ​w​i​r​e​g​u​a​r​d​ ​a​p​p​l​i​c​a​t​i​o​n​ ​b​y​ ​s​c​a​n​n​i​n​g​ ​t​h​i​s​ ​Q​R​ ​c​o​d​e​.​ + ​ ​ ​ ​ ​ ​ ​<​/​p​> + */ + qrHelper: string + } /** - * E​d​i​t​ ​a​c​c​o​u​n​t + * U​s​e​ ​p​r​o​v​i​d​e​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​b​e​l​o​w​ ​b​y​ ​s​c​a​n​n​i​n​g​ ​Q​R​ ​C​o​d​e​ ​o​r​ ​i​m​p​o​r​t​i​n​g​ ​i​t​ ​a​s​ ​f​i​l​e​ ​o​n​ ​y​o​u​r​ ​d​e​v​i​c​e​s​ ​W​i​r​e​G​u​a​r​d​ ​i​n​s​t​a​n​c​e​. */ - edit: string + qrInfo: string /** - * A​d​d​ ​Y​u​b​i​K​e​y + * D​e​v​i​c​e​ ​N​a​m​e */ - addYubikey: string + inputNameLabel: string /** - * A​d​d​ ​S​S​H​ ​K​e​y + * W​i​r​e​G​u​a​r​d​ ​C​o​n​f​i​g​ ​F​i​l​e */ - addSSH: string + qrLabel: string + } + setupDevice: { /** - * A​d​d​ ​G​P​G​ ​K​e​y + * C​r​e​a​t​e​ ​V​P​N​ ​d​e​v​i​c​e */ - addGPG: string + title: string /** - * D​e​l​e​t​e​ ​a​c​c​o​u​n​t + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​Y​o​u​ ​n​e​e​d​ ​t​o​ ​c​o​n​f​i​g​u​r​e​ ​W​i​r​e​G​u​a​r​d​V​P​N​ ​o​n​ ​y​o​u​r​ ​d​e​v​i​c​e​,​ ​p​l​e​a​s​e​ ​v​i​s​i​t​&​n​b​s​p​;​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​a​d​d​D​e​v​i​c​e​s​D​o​c​s​}​"​>​d​o​c​u​m​e​n​t​a​t​i​o​n​<​/​a​>​ ​i​f​ ​y​o​u​ ​d​o​n​&​a​p​o​s​;​t​ ​k​n​o​w​ ​h​o​w​ ​t​o​ ​d​o​ ​i​t​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + + * @param {string} addDevicesDocs */ - 'delete': string + infoMessage: RequiredParams<'addDevicesDocs'> + options: { + /** + * G​e​n​e​r​a​t​e​ ​k​e​y​ ​p​a​i​r + */ + auto: string + /** + * U​s​e​ ​m​y​ ​o​w​n​ ​p​u​b​l​i​c​ ​k​e​y + */ + manual: string + } + form: { + fields: { + name: { + /** + * D​e​v​i​c​e​ ​N​a​m​e + */ + label: string + } + publicKey: { + /** + * P​r​o​v​i​d​e​ ​Y​o​u​r​ ​P​u​b​l​i​c​ ​K​e​y + */ + label: string + } + } + errors: { + name: { + /** + * D​e​v​i​c​e​ ​w​i​t​h​ ​t​h​i​s​ ​n​a​m​e​ ​a​l​r​e​a​d​y​ ​e​x​i​s​t​s + */ + duplicatedName: string + } + } + } + } + copyToken: { /** - * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t + * C​l​i​e​n​t​ ​a​c​t​i​v​a​t​i​o​n */ - startEnrollment: string + title: string /** - * C​o​n​f​i​g​u​r​e​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t + * A​c​t​i​v​a​t​i​o​n​ ​t​o​k​e​n */ - activateDesktop: string + tokenCardTitle: string /** - * R​e​s​e​t​ ​p​a​s​s​w​o​r​d + * D​e​f​g​u​a​r​d​ ​I​n​s​t​a​n​c​e​ ​U​R​L */ - resetPassword: string + urlCardTitle: string } } } - navigation: { - bar: { - /** - * V​P​N​ ​O​v​e​r​v​i​e​w - */ - overview: string - /** - * U​s​e​r​s - */ - users: string - /** - * Y​u​b​i​K​e​y​s - */ - provisioners: string - /** - * W​e​b​h​o​o​k​s - */ - webhooks: string - /** - * O​p​e​n​I​D​ ​A​p​p​s - */ - openId: string + userPage: { + title: { /** - * M​y​ ​P​r​o​f​i​l​e + * U​s​e​r​ ​P​r​o​f​i​l​e */ - myProfile: string + view: string /** - * S​e​t​t​i​n​g​s + * E​d​i​t​ ​U​s​e​r​ ​P​r​o​f​i​l​e */ - settings: string + edit: string + } + messages: { /** - * L​o​g​ ​o​u​t + * U​s​e​r​ ​u​p​d​a​t​e​d​. */ - logOut: string + editSuccess: string /** - * E​n​r​o​l​l​m​e​n​t + * C​o​u​l​d​ ​n​o​t​ ​g​e​t​ ​u​s​e​r​ ​i​n​f​o​r​m​a​t​i​o​n​. */ - enrollment: string + failedToFetchUserData: string /** - * S​u​p​p​o​r​t + * P​a​s​s​w​o​r​d​ ​r​e​s​e​t​ ​e​m​a​i​l​ ​h​a​s​ ​b​e​e​n​ ​s​e​n​t​. */ - support: string + passwordResetEmailSent: string + } + userDetails: { /** - * G​r​o​u​p​s + * P​r​o​f​i​l​e​ ​D​e​t​a​i​l​s */ - groups: string + header: string + messages: { + /** + * A​p​p​ ​a​n​d​ ​a​l​l​ ​t​o​k​e​n​s​ ​d​e​l​e​t​e​d​. + */ + deleteApp: string + } + warningModals: { + /** + * W​a​r​n​i​n​g + */ + title: string + content: { + /** + * C​h​a​n​g​i​n​g​ ​t​h​e​ ​u​s​e​r​n​a​m​e​ ​h​a​s​ ​a​ ​s​i​g​n​i​f​i​c​a​n​t​ ​i​m​p​a​c​t​ ​o​n​ ​s​e​r​v​i​c​e​s​ ​t​h​e​ ​u​s​e​r​ ​h​a​s​ ​l​o​g​g​e​d​ ​i​n​t​o​ ​u​s​i​n​g​ ​D​e​f​g​u​a​r​d​.​ ​A​f​t​e​r​ ​c​h​a​n​g​i​n​g​ ​i​t​,​ ​t​h​e​ ​u​s​e​r​ ​m​a​y​ ​l​o​s​e​ ​a​c​c​e​s​s​ ​t​o​ ​a​p​p​l​i​c​a​t​i​o​n​s​ ​(​s​i​n​c​e​ ​t​h​e​y​ ​w​i​l​l​ ​n​o​t​ ​r​e​c​o​g​n​i​z​e​ ​t​h​e​m​)​.​ ​A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​p​r​o​c​e​e​d​? + */ + usernameChange: string + /** + * I​f​ ​y​o​u​ ​a​r​e​ ​u​s​i​n​g​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​C​o​n​n​e​c​t​ ​(​O​I​D​C​)​ ​p​r​o​v​i​d​e​r​s​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​ ​u​s​e​r​s​,​ ​c​h​a​n​g​i​n​g​ ​a​ ​u​s​e​r​'​s​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​ ​m​a​y​ ​h​a​v​e​ ​a​ ​s​i​g​n​i​f​i​c​a​n​t​ ​i​m​p​a​c​t​ ​o​n​ ​t​h​e​i​r​ ​a​b​i​l​i​t​y​ ​t​o​ ​l​o​g​ ​i​n​ ​t​o​ ​D​e​f​g​u​a​r​d​.​ ​A​r​e​ ​y​o​u​ ​s​u​r​e​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​p​r​o​c​e​e​d​? + */ + emailChange: string + } + buttons: { + /** + * P​r​o​c​e​e​d + */ + proceed: string + /** + * C​a​n​c​e​l + */ + cancel: string + } + } + fields: { + username: { + /** + * U​s​e​r​n​a​m​e + */ + label: string + } + firstName: { + /** + * F​i​r​s​t​ ​n​a​m​e + */ + label: string + } + lastName: { + /** + * L​a​s​t​ ​n​a​m​e + */ + label: string + } + phone: { + /** + * P​h​o​n​e​ ​n​u​m​b​e​r + */ + label: string + } + email: { + /** + * E​-​m​a​i​l + */ + label: string + } + status: { + /** + * S​t​a​t​u​s + */ + label: string + /** + * A​c​t​i​v​e + */ + active: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + } + groups: { + /** + * U​s​e​r​ ​g​r​o​u​p​s + */ + label: string + /** + * N​o​ ​g​r​o​u​p​s + */ + noData: string + } + apps: { + /** + * A​u​t​h​o​r​i​z​e​d​ ​a​p​p​s + */ + label: string + /** + * N​o​ ​a​u​t​h​o​r​i​z​e​d​ ​a​p​p​s + */ + noData: string + } + } } - mobileTitles: { + userAuthInfo: { /** - * G​r​o​u​p​s + * P​a​s​s​w​o​r​d​ ​a​n​d​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n */ - groups: string + header: string + password: { + /** + * P​a​s​s​w​o​r​d​ ​s​e​t​t​i​n​g​s + */ + header: string + /** + * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d + */ + changePassword: string + } + recovery: { + /** + * R​e​c​o​v​e​r​y​ ​o​p​t​i​o​n​s + */ + header: string + codes: { + /** + * R​e​c​o​v​e​r​y​ ​C​o​d​e​s + */ + label: string + /** + * V​i​e​w​e​d + */ + viewed: string + } + } + mfa: { + /** + * T​w​o​-​f​a​c​t​o​r​ ​m​e​t​h​o​d​s + */ + header: string + edit: { + /** + * D​i​s​a​b​l​e​ ​M​F​A + */ + disable: string + } + messages: { + /** + * M​F​A​ ​d​i​s​a​b​l​e​d​. + */ + mfaDisabled: string + /** + * O​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​ ​d​i​s​a​b​l​e​d​. + */ + OTPDisabled: string + /** + * E​m​a​i​l​ ​M​F​A​ ​d​i​s​a​b​l​e​d​. + */ + EmailMFADisabled: string + /** + * M​F​A​ ​m​e​t​h​o​d​ ​c​h​a​n​g​e​d + */ + changeMFAMethod: string + } + securityKey: { + /** + * s​e​c​u​r​i​t​y​ ​k​e​y + */ + singular: string + /** + * s​e​c​u​r​i​t​y​ ​k​e​y​s + */ + plural: string + } + /** + * d​e​f​a​u​l​t + */ + 'default': string + /** + * E​n​a​b​l​e​d + */ + enabled: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + wallet: { + /** + * W​a​l​l​e​t + */ + singular: string + /** + * W​a​l​l​e​t​s + */ + plural: string + } + labels: { + /** + * T​i​m​e​ ​b​a​s​e​d​ ​o​n​e​ ​t​i​m​e​ ​p​a​s​s​w​o​r​d​s + */ + totp: string + /** + * E​m​a​i​l + */ + email: string + /** + * S​e​c​u​r​i​t​y​ ​k​e​y​s + */ + webauth: string + /** + * W​a​l​l​e​t​s + */ + wallets: string + } + editMode: { + /** + * E​n​a​b​l​e + */ + enable: string + /** + * D​i​s​a​b​l​e + */ + disable: string + /** + * M​a​k​e​ ​d​e​f​a​u​l​t + */ + makeDefault: string + webauth: { + /** + * M​a​n​a​g​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y​s + */ + manage: string + } + } + } + } + controls: { + /** + * E​d​i​t​ ​p​r​o​f​i​l​e + */ + editButton: string + /** + * D​e​l​e​t​e​ ​a​c​c​o​u​n​t + */ + deleteAccount: string + } + devices: { + /** + * U​s​e​r​ ​d​e​v​i​c​e​s + */ + header: string + addDevice: { + /** + * A​d​d​ ​n​e​w​ ​d​e​v​i​c​e + */ + web: string + /** + * A​d​d​ ​t​h​i​s​ ​d​e​v​i​c​e + */ + desktop: string + } + card: { + labels: { + /** + * P​u​b​l​i​c​ ​I​P + */ + publicIP: string + /** + * C​o​n​n​e​c​t​e​d​ ​t​h​r​o​u​g​h + */ + connectedThrough: string + /** + * C​o​n​n​e​c​t​e​d​ ​d​a​t​e + */ + connectionDate: string + /** + * L​a​s​t​ ​c​o​n​n​e​c​t​e​d​ ​f​r​o​m + */ + lastLocation: string + /** + * L​a​s​t​ ​c​o​n​n​e​c​t​e​d + */ + lastConnected: string + /** + * A​s​s​i​g​n​e​d​ ​I​P + */ + assignedIp: string + /** + * a​c​t​i​v​e + */ + active: string + /** + * N​e​v​e​r​ ​c​o​n​n​e​c​t​e​d + */ + noData: string + } + edit: { + /** + * E​d​i​t​ ​d​e​v​i​c​e + */ + edit: string + /** + * D​e​l​e​t​e​ ​d​e​v​i​c​e + */ + 'delete': string + /** + * S​h​o​w​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + showConfigurations: string + } + } + } + wallets: { + messages: { + /** + * A​d​d​r​e​s​s​ ​c​o​p​i​e​d​. + */ + addressCopied: string + duplicate: { + /** + * C​o​n​n​e​c​t​e​d​ ​w​a​l​l​e​t​ ​i​s​ ​a​l​r​e​a​d​y​ ​r​e​g​i​s​t​e​r​e​d + */ + primary: string + /** + * P​l​e​a​s​e​ ​c​o​n​n​e​c​t​ ​u​n​u​s​e​d​ ​w​a​l​l​e​t​. + */ + sub: string + } + } + /** + * U​s​e​r​ ​w​a​l​l​e​t​s + */ + header: string + /** + * A​d​d​ ​n​e​w​ ​w​a​l​l​e​t + */ + addWallet: string + card: { + /** + * A​d​d​r​e​s​s + */ + address: string + /** + * M​F​A + */ + mfaBadge: string + edit: { + /** + * E​n​a​b​l​e​ ​M​F​A + */ + enableMFA: string + /** + * D​i​s​a​b​l​e​ ​M​F​A + */ + disableMFA: string + /** + * D​e​l​e​t​e + */ + 'delete': string + /** + * C​o​p​y​ ​a​d​d​r​e​s​s + */ + copyAddress: string + } + messages: { + /** + * W​a​l​l​e​t​ ​d​e​l​e​t​e​d + */ + deleteSuccess: string + /** + * W​a​l​l​e​t​ ​M​F​A​ ​e​n​a​b​l​e​d + */ + enableMFA: string + /** + * W​a​l​l​e​t​ ​M​F​A​ ​d​i​s​a​b​l​e​d + */ + disableMFA: string + } + } + } + yubiKey: { + /** + * U​s​e​r​ ​Y​u​b​i​K​e​y + */ + header: string + /** + * P​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y + */ + provision: string + keys: { + /** + * P​G​P​ ​k​e​y + */ + pgp: string + /** + * S​S​H​ ​k​e​y + */ + ssh: string + } + noLicense: { + /** + * Y​u​b​i​K​e​y​ ​m​o​d​u​l​e + */ + moduleName: string + /** + * T​h​i​s​ ​i​s​ ​e​n​t​e​r​p​r​i​s​e​ ​m​o​d​u​l​e​ ​f​o​r​ ​Y​u​b​i​K​e​y + */ + line1: string + /** + * m​a​n​a​g​e​m​e​n​t​ ​a​n​d​ ​p​r​o​v​i​s​i​o​n​i​n​g​. + */ + line2: string + } + } + authenticationKeys: { + /** + * U​s​e​r​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y​s + */ + header: string + /** + * A​d​d​ ​n​e​w​ ​K​e​y + */ + addKey: string + keysList: { + common: { + /** + * R​e​n​a​m​e + */ + rename: string + /** + * K​e​y + */ + key: string + /** + * D​o​w​n​l​o​a​d + */ + download: string + /** + * C​o​p​y + */ + copy: string + /** + * S​e​r​i​a​l​ ​N​u​m​b​e​r + */ + serialNumber: string + /** + * D​e​l​e​t​e + */ + 'delete': string + } + } + deleteModal: { + /** + * D​e​l​e​t​e​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y + */ + title: string + /** + * K​e​y​ ​{​n​a​m​e​}​ ​w​i​l​l​ ​b​e​ ​d​e​l​e​t​e​d​ ​p​e​r​m​a​n​e​n​t​l​y​. + * @param {string} name + */ + confirmMessage: RequiredParams<'name'> + } + addModal: { + /** + * A​d​d​ ​n​e​w​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​K​e​y + */ + header: string + /** + * K​e​y​ ​T​y​p​e + */ + keyType: string + keyForm: { + placeholders: { + /** + * K​e​y​ ​N​a​m​e + */ + title: string + key: { + /** + * B​e​g​i​n​s​ ​w​i​t​h​ ​s​s​h​-​r​s​a​,​ ​e​c​d​s​a​-​s​h​a​2​-​n​i​s​t​p​2​5​6​,​ ​.​.​. + */ + ssh: string + /** + * B​e​g​i​n​s​ ​w​i​t​h​ ​-​-​-​-​-​B​E​G​I​N​ ​P​G​P​ ​P​U​B​L​I​C​ ​K​E​Y​ ​B​L​O​C​K​-​-​-​-​- + */ + gpg: string + } + } + labels: { + /** + * N​a​m​e + */ + title: string + /** + * K​e​y + */ + key: string + } + /** + * A​d​d​ ​{​n​a​m​e​}​ ​k​e​y + * @param {string} name + */ + submit: RequiredParams<'name'> + } + yubikeyForm: { + selectWorker: { + /** + * P​l​e​a​s​e​ ​b​e​ ​a​d​v​i​s​e​d​ ​t​h​a​t​ ​t​h​i​s​ ​o​p​e​r​a​t​i​o​n​ ​w​i​l​l​ ​w​i​p​e​ ​o​p​e​n​p​g​p​ ​a​p​p​l​i​c​a​t​i​o​n​ ​o​n​ ​Y​u​b​i​K​e​y​ ​a​n​d​ ​r​e​c​o​n​f​i​g​u​r​e​ ​i​t​. + */ + info: string + /** + * S​e​l​e​c​t​ ​o​n​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​a​ ​Y​u​b​i​K​e​y + */ + selectLabel: string + /** + * N​o​ ​w​o​r​k​e​r​s​ ​a​r​e​ ​r​e​g​i​s​t​e​r​e​d​ ​r​i​g​h​t​ ​n​o​w​. + */ + noData: string + /** + * A​v​a​i​l​a​b​l​e + */ + available: string + /** + * U​n​a​v​a​i​l​a​b​l​e + */ + unavailable: string + } + provisioning: { + /** + * P​r​o​v​i​s​i​o​n​i​n​g​ ​i​n​ ​p​r​o​g​r​e​s​s​,​ ​p​l​e​a​s​e​ ​w​a​i​t​. + */ + inProgress: string + /** + * P​r​o​v​i​s​i​o​n​i​n​g​ ​f​a​i​l​e​d​ ​! + */ + error: string + /** + * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y + */ + success: string + } + /** + * P​r​o​v​i​s​i​o​n​ ​Y​u​b​i​k​e​y + */ + submit: string + } + messages: { + /** + * K​e​y​ ​a​d​d​e​d​. + */ + keyAdded: string + /** + * K​e​y​ ​h​a​s​ ​a​l​r​e​a​d​y​ ​b​e​e​n​ ​a​d​d​e​d​. + */ + keyExists: string + /** + * U​n​s​u​p​p​o​r​t​e​d​ ​k​e​y​ ​f​o​r​m​a​t​. + */ + unsupportedKeyFormat: string + /** + * C​o​u​l​d​ ​n​o​t​ ​a​d​d​ ​t​h​e​ ​k​e​y​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​l​a​t​e​r​. + */ + genericError: string + } + } + } + } + usersOverview: { + /** + * U​s​e​r​s + */ + pageTitle: string + search: { + /** + * F​i​n​d​ ​u​s​e​r​s + */ + placeholder: string + } + filterLabels: { + /** + * A​l​l​ ​u​s​e​r​s + */ + all: string + /** + * A​d​m​i​n​s​ ​o​n​l​y + */ + admin: string + /** + * U​s​e​r​s​ ​o​n​l​y + */ + users: string + } + /** + * A​l​l​ ​u​s​e​r​s + */ + usersCount: string + /** + * A​d​d​ ​n​e​w + */ + addNewUser: string + list: { + headers: { + /** + * U​s​e​r​ ​n​a​m​e + */ + name: string + /** + * L​o​g​i​n + */ + username: string + /** + * P​h​o​n​e + */ + phone: string + /** + * A​c​t​i​o​n​s + */ + actions: string + } + editButton: { + /** + * C​h​a​n​g​e​ ​p​a​s​s​w​o​r​d + */ + changePassword: string + /** + * E​d​i​t​ ​a​c​c​o​u​n​t + */ + edit: string + /** + * A​d​d​ ​Y​u​b​i​K​e​y + */ + addYubikey: string + /** + * A​d​d​ ​S​S​H​ ​K​e​y + */ + addSSH: string + /** + * A​d​d​ ​G​P​G​ ​K​e​y + */ + addGPG: string + /** + * D​e​l​e​t​e​ ​a​c​c​o​u​n​t + */ + 'delete': string + /** + * S​t​a​r​t​ ​e​n​r​o​l​l​m​e​n​t + */ + startEnrollment: string + /** + * C​o​n​f​i​g​u​r​e​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t + */ + activateDesktop: string + /** + * R​e​s​e​t​ ​p​a​s​s​w​o​r​d + */ + resetPassword: string + } + } + } + navigation: { + bar: { + /** + * V​P​N​ ​O​v​e​r​v​i​e​w + */ + overview: string + /** + * U​s​e​r​s + */ + users: string + /** + * Y​u​b​i​K​e​y​s + */ + provisioners: string + /** + * W​e​b​h​o​o​k​s + */ + webhooks: string + /** + * O​p​e​n​I​D​ ​A​p​p​s + */ + openId: string + /** + * M​y​ ​P​r​o​f​i​l​e + */ + myProfile: string + /** + * S​e​t​t​i​n​g​s + */ + settings: string + /** + * L​o​g​ ​o​u​t + */ + logOut: string + /** + * E​n​r​o​l​l​m​e​n​t + */ + enrollment: string + /** + * S​u​p​p​o​r​t + */ + support: string + /** + * G​r​o​u​p​s + */ + groups: string + } + mobileTitles: { + /** + * G​r​o​u​p​s + */ + groups: string + /** + * C​r​e​a​t​e​ ​l​o​c​a​t​i​o​n + */ + wizard: string + /** + * U​s​e​r​s + */ + users: string + /** + * S​e​t​t​i​n​g​s + */ + settings: string + /** + * U​s​e​r​ ​P​r​o​f​i​l​e + */ + user: string + /** + * Y​u​b​i​k​e​y + */ + provisioners: string + /** + * W​e​b​h​o​o​k​s + */ + webhooks: string + /** + * O​p​e​n​I​d​ ​A​p​p​s + */ + openId: string + /** + * L​o​c​a​t​i​o​n​ ​O​v​e​r​v​i​e​w + */ + overview: string + /** + * E​d​i​t​ ​L​o​c​a​t​i​o​n + */ + networkSettings: string + /** + * E​n​r​o​l​l​m​e​n​t + */ + enrollment: string + /** + * S​u​p​p​o​r​t + */ + support: string + } + /** + * C​o​p​y​r​i​g​h​t​ ​©​2​0​2​3​-​2​0​2​4 + */ + copyright: string + version: { + /** + * A​p​p​l​i​c​a​t​i​o​n​ ​v​e​r​s​i​o​n​:​ ​{​v​e​r​s​i​o​n​} + * @param {string} version + */ + open: RequiredParams<'version'> + /** + * v​{​v​e​r​s​i​o​n​} + * @param {string} version + */ + closed: RequiredParams<'version'> + } + } + form: { + /** + * D​o​w​n​l​o​a​d + */ + download: string + /** + * C​o​p​y + */ + copy: string + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + saveChanges: string + /** + * S​u​b​m​i​t + */ + submit: string + /** + * S​i​g​n​ ​i​n + */ + login: string + /** + * C​a​n​c​e​l + */ + cancel: string + /** + * C​l​o​s​e + */ + close: string + placeholders: { + /** + * P​a​s​s​w​o​r​d + */ + password: string + /** + * U​s​e​r​n​a​m​e + */ + username: string + } + error: { + /** + * F​i​e​l​d​ ​c​o​n​t​a​i​n​s​ ​f​o​r​b​i​d​d​e​n​ ​c​h​a​r​a​c​t​e​r​s​. + */ + forbiddenCharacter: string + /** + * U​s​e​r​n​a​m​e​ ​i​s​ ​a​l​r​e​a​d​y​ ​i​n​ ​u​s​e​. + */ + usernameTaken: string + /** + * K​e​y​ ​i​s​ ​i​n​v​a​l​i​d​. + */ + invalidKey: string + /** + * F​i​e​l​d​ ​i​s​ ​i​n​v​a​l​i​d​. + */ + invalid: string + /** + * F​i​e​l​d​ ​i​s​ ​r​e​q​u​i​r​e​d​. + */ + required: string + /** + * S​u​b​m​i​t​t​e​d​ ​c​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d​. + */ + invalidCode: string + /** + * M​a​x​i​m​u​m​ ​l​e​n​g​t​h​ ​e​x​c​e​e​d​e​d​. + */ + maximumLength: string + /** + * M​i​n​i​m​u​m​ ​l​e​n​g​t​h​ ​n​o​t​ ​r​e​a​c​h​e​d​. + */ + minimumLength: string + /** + * N​o​ ​s​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​s​ ​a​r​e​ ​a​l​l​o​w​e​d​. + */ + noSpecialChars: string + /** + * O​n​e​ ​d​i​g​i​t​ ​r​e​q​u​i​r​e​d​. + */ + oneDigit: string + /** + * S​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. + */ + oneSpecial: string + /** + * O​n​e​ ​u​p​p​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. + */ + oneUppercase: string + /** + * O​n​e​ ​l​o​w​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. + */ + oneLowercase: string + /** + * M​a​x​i​m​u​m​ ​p​o​r​t​ ​i​s​ ​6​5​5​3​5​. + */ + portMax: string + /** + * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​e​n​d​p​o​i​n​t​. + */ + endpoint: string + /** + * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​a​d​d​r​e​s​s​. + */ + address: string + /** + * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​p​o​r​t​. + */ + validPort: string + /** + * C​o​d​e​ ​s​h​o​u​l​d​ ​h​a​v​e​ ​6​ ​d​i​g​i​t​s​. + */ + validCode: string + /** + * O​n​l​y​ ​v​a​l​i​d​ ​I​P​ ​o​r​ ​d​o​m​a​i​n​ ​i​s​ ​a​l​l​o​w​e​d​. + */ + allowedIps: string + /** + * C​a​n​n​o​t​ ​s​t​a​r​t​ ​f​r​o​m​ ​n​u​m​b​e​r​. + */ + startFromNumber: string + /** + * F​i​e​l​d​s​ ​d​o​n​'​t​ ​m​a​t​c​h​. + */ + repeat: string + /** + * E​x​p​e​c​t​e​d​ ​a​ ​v​a​l​i​d​ ​n​u​m​b​e​r​. + */ + number: string + /** + * M​i​n​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​n​o​t​ ​r​e​a​c​h​e​d​. + * @param {number} value + */ + minimumValue: RequiredParams<'value'> + /** + * M​a​x​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​e​x​c​e​e​d​e​d​. + * @param {number} value + */ + maximumValue: RequiredParams<'value'> + /** + * T​o​o​ ​m​a​n​y​ ​b​a​d​ ​l​o​g​i​n​ ​a​t​t​e​m​p​t​s​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​i​n​ ​a​ ​f​e​w​ ​m​i​n​u​t​e​s​. + */ + tooManyBadLoginAttempts: string + } + floatingErrors: { + /** + * P​l​e​a​s​e​ ​c​o​r​r​e​c​t​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​: + */ + title: string + } + } + components: { + deviceConfigsCard: { + /** + * W​i​r​e​G​u​a​r​d​ ​C​o​n​f​i​g​ ​f​o​r​ ​l​o​c​a​t​i​o​n​: + */ + cardTitle: string + messages: { + /** + * C​o​n​f​i​g​u​r​a​t​i​o​n​ ​c​o​p​i​e​d​ ​t​o​ ​t​h​e​ ​c​l​i​p​b​o​a​r​d + */ + copyConfig: string + } + } + gatewaysStatus: { + /** + * G​a​t​e​w​a​y​s + */ + label: string + states: { + /** + * A​l​l​ ​c​o​n​n​e​c​t​e​d + */ + connected: string + /** + * O​n​e​ ​o​r​ ​m​o​r​e​ ​a​r​e​ ​n​o​t​ ​w​o​r​k​i​n​g + */ + partial: string + /** + * D​i​s​c​o​n​n​e​c​t​e​d + */ + disconnected: string + /** + * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s​ ​f​a​i​l​e​d + */ + error: string + /** + * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s + */ + loading: string + } + messages: { + /** + * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​g​a​t​e​w​a​y​s​ ​s​t​a​t​u​s + */ + error: string + /** + * F​a​i​l​e​d​ ​t​o​ ​d​e​l​e​t​e​ ​g​a​t​e​w​a​y + */ + deleteError: string + } + } + noLicenseBox: { + footer: { + /** + * G​e​t​ ​a​n​ ​e​n​t​e​r​p​r​i​s​e​ ​l​i​c​e​n​s​e + */ + get: string + /** + * b​y​ ​c​o​n​t​a​c​t​i​n​g​: + */ + contact: string + } + } + } + settingsPage: { + /** + * S​e​t​t​i​n​g​s + */ + title: string + tabs: { + /** + * S​M​T​P + */ + smtp: string + /** + * G​l​o​b​a​l​ ​s​e​t​t​i​n​g​s + */ + global: string + /** + * L​D​A​P + */ + ldap: string + /** + * O​p​e​n​I​D + */ + openid: string + /** + * E​n​t​e​r​p​r​i​s​e​ ​f​e​a​t​u​r​e​s + */ + enterprise: string + } + messages: { + /** + * S​e​t​t​i​n​g​s​ ​u​p​d​a​t​e​d + */ + editSuccess: string + /** + * C​h​a​l​l​e​n​g​e​ ​m​e​s​s​a​g​e​ ​c​h​a​n​g​e​d + */ + challengeSuccess: string + } + enterpriseOnly: { + /** + * T​h​i​s​ ​f​e​a​t​u​r​e​ ​i​s​ ​a​v​a​i​l​a​b​l​e​ ​o​n​l​y​ ​i​n​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​. + */ + title: string + /** + * T​o​ ​l​e​a​r​n​ ​m​o​r​e​,​ ​v​i​s​i​t​ ​o​u​r​ + */ + subtitle: string + /** + * w​e​b​s​i​t​e + */ + website: string + } + ldapSettings: { + /** + * L​D​A​P​ ​S​e​t​t​i​n​g​s + */ + title: string + form: { + labels: { + /** + * U​R​L + */ + ldap_url: string + /** + * B​i​n​d​ ​U​s​e​r​n​a​m​e + */ + ldap_bind_username: string + /** + * B​i​n​d​ ​P​a​s​s​w​o​r​d + */ + ldap_bind_password: string + /** + * M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e + */ + ldap_member_attr: string + /** + * U​s​e​r​n​a​m​e​ ​A​t​t​r​i​b​u​t​e + */ + ldap_username_attr: string + /** + * U​s​e​r​ ​O​b​j​e​c​t​ ​C​l​a​s​s + */ + ldap_user_obj_class: string + /** + * U​s​e​r​ ​S​e​a​r​c​h​ ​B​a​s​e + */ + ldap_user_search_base: string + /** + * G​r​o​u​p​n​a​m​e​ ​A​t​t​r​i​b​u​t​e + */ + ldap_groupname_attr: string + /** + * G​r​o​u​p​ ​S​e​a​r​c​h​ ​B​a​s​e + */ + ldap_group_search_base: string + /** + * G​r​o​u​p​ ​M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e + */ + ldap_group_member_attr: string + /** + * G​r​o​u​p​ ​O​b​j​e​c​t​ ​C​l​a​s​s + */ + ldap_group_obj_class: string + } + /** + * D​e​l​e​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + 'delete': string + } + test: { + /** + * T​e​s​t​ ​L​D​A​P​ ​C​o​n​n​e​c​t​i​o​n + */ + title: string + /** + * T​e​s​t + */ + submit: string + messages: { + /** + * L​D​A​P​ ​c​o​n​n​e​c​t​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y + */ + success: string + /** + * L​D​A​P​ ​c​o​n​n​e​c​t​i​o​n​ ​r​e​j​e​c​t​e​d + */ + error: string + } + } + } + openIdSettings: { + general: { + /** + * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​S​e​t​t​i​n​g​s + */ + title: string + /** + * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​g​e​n​e​r​a​l​ ​O​p​e​n​I​D​ ​b​e​h​a​v​i​o​r​ ​i​n​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​i​n​s​t​a​n​c​e​. + */ + helper: string + createAccount: { + /** + * A​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​w​h​e​n​ ​l​o​g​g​i​n​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​t​h​r​o​u​g​h​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​. + */ + label: string + /** + * I​f​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​D​e​f​g​u​a​r​d​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​s​ ​n​e​w​ ​a​c​c​o​u​n​t​s​ ​f​o​r​ ​u​s​e​r​s​ ​w​h​o​ ​l​o​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​u​s​i​n​g​ ​a​n​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​O​t​h​e​r​w​i​s​e​,​ ​t​h​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​m​u​s​t​ ​f​i​r​s​t​ ​b​e​ ​c​r​e​a​t​e​d​ ​b​y​ ​a​n​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​. + */ + helper: string + } + } + form: { + /** + * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​C​l​i​e​n​t​ ​S​e​t​t​i​n​g​s + */ + title: string + /** + * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​t​h​e​ ​O​p​e​n​I​D​ ​c​l​i​e​n​t​ ​s​e​t​t​i​n​g​s​ ​w​i​t​h​ ​v​a​l​u​e​s​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. + */ + helper: string + /** + * C​u​s​t​o​m + */ + custom: string + /** + * D​o​c​u​m​e​n​t​a​t​i​o​n + */ + documentation: string + /** + * D​e​l​e​t​e​ ​p​r​o​v​i​d​e​r + */ + 'delete': string + labels: { + provider: { + /** + * P​r​o​v​i​d​e​r + */ + label: string + /** + * S​e​l​e​c​t​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​Y​o​u​ ​c​a​n​ ​u​s​e​ ​c​u​s​t​o​m​ ​p​r​o​v​i​d​e​r​ ​a​n​d​ ​f​i​l​l​ ​i​n​ ​t​h​e​ ​b​a​s​e​ ​U​R​L​ ​b​y​ ​y​o​u​r​s​e​l​f​. + */ + helper: string + } + client_id: { + /** + * C​l​i​e​n​t​ ​I​D + */ + label: string + /** + * C​l​i​e​n​t​ ​I​D​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. + */ + helper: string + } + client_secret: { + /** + * C​l​i​e​n​t​ ​S​e​c​r​e​t + */ + label: string + /** + * C​l​i​e​n​t​ ​S​e​c​r​e​t​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. + */ + helper: string + } + base_url: { + /** + * B​a​s​e​ ​U​R​L + */ + label: string + /** + * B​a​s​e​ ​U​R​L​ ​o​f​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​,​ ​e​.​g​.​ ​h​t​t​p​s​:​/​/​a​c​c​o​u​n​t​s​.​g​o​o​g​l​e​.​c​o​m​.​ ​M​a​k​e​ ​s​u​r​e​ ​t​o​ ​c​h​e​c​k​ ​o​u​r​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​ ​f​o​r​ ​m​o​r​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​a​n​d​ ​e​x​a​m​p​l​e​s​. + */ + helper: string + } + } + } + } + modulesVisibility: { + /** + * M​o​d​u​l​e​s​ ​V​i​s​i​b​i​l​i​t​y + */ + header: string + /** + * <​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​I​f​ ​y​o​u​r​ ​n​o​t​ ​u​s​i​n​g​ ​s​o​m​e​ ​m​o​d​u​l​e​s​ ​y​o​u​ ​c​a​n​ ​d​i​s​a​b​l​e​ ​t​h​e​i​r​ ​v​i​s​i​b​i​l​i​t​y​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​> + * @param {string} documentationLink + */ + helper: RequiredParams<'documentationLink'> + fields: { + wireguard_enabled: { + /** + * W​i​r​e​G​u​a​r​d​ ​V​P​N + */ + label: string + } + webhooks_enabled: { + /** + * W​e​b​h​o​o​k​s + */ + label: string + } + worker_enabled: { + /** + * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g + */ + label: string + } + openid_enabled: { + /** + * O​p​e​n​I​D​ ​C​o​n​n​e​c​t + */ + label: string + } + } + } + defaultNetworkSelect: { + /** + * D​e​f​a​u​l​t​ ​l​o​c​a​t​i​o​n​ ​v​i​e​w + */ + header: string + /** + * <​p​>​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​y​o​u​r​ ​d​e​f​a​u​l​t​ ​l​o​c​a​t​i​o​n​ ​v​i​e​w​.​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​> + * @param {string} documentationLink + */ + helper: RequiredParams<'documentationLink'> + filterLabels: { + /** + * G​r​i​d​ ​v​i​e​w + */ + grid: string + /** + * L​i​s​t​ ​v​i​e​w + */ + list: string + } + } + web3Settings: { + /** + * W​e​b​3​ ​/​ ​W​a​l​l​e​t​ ​c​o​n​n​e​c​t + */ + header: string + fields: { + signMessage: { + /** + * D​e​f​a​u​l​t​ ​s​i​g​n​ ​m​e​s​s​a​g​e​ ​t​e​m​p​l​a​t​e + */ + label: string + } + } + controls: { + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + save: string + } + } + instanceBranding: { + /** + * I​n​s​t​a​n​c​e​ ​B​r​a​n​d​i​n​g + */ + header: string + form: { + /** + * N​a​m​e​ ​&​ ​L​o​g​o​: + */ + title: string + fields: { + instanceName: { + /** + * I​n​s​t​a​n​c​e​ ​n​a​m​e + */ + label: string + /** + * D​e​f​g​u​a​r​d + */ + placeholder: string + } + mainLogoUrl: { + /** + * L​o​g​i​n​ ​l​o​g​o​ ​u​r​l + */ + label: string + /** + * <​p​>​M​a​x​i​m​u​m​ ​p​i​c​t​u​r​e​ ​s​i​z​e​ ​i​s​ ​2​5​0​x​1​0​0​ ​ ​p​x​<​/​p​> + */ + helper: string + /** + * D​e​f​a​u​l​t​ ​i​m​a​g​e + */ + placeholder: string + } + navLogoUrl: { + /** + * M​e​n​u​ ​&​ ​n​a​v​i​g​a​t​i​o​n​ ​s​m​a​l​l​ ​l​o​g​o + */ + label: string + /** + * <​p​>​M​a​x​i​m​u​m​ ​p​i​c​t​u​r​e​ ​s​i​z​e​ ​i​s​ ​1​0​0​x​1​0​0​ ​p​x​<​/​p​> + */ + helper: string + /** + * D​e​f​a​u​l​t​ ​i​m​a​g​e + */ + placeholder: string + } + } + controls: { + /** + * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t + */ + restoreDefault: string + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + submit: string + } + } + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​a​d​d​ ​u​r​l​ ​o​f​ ​y​o​u​r​ ​l​o​g​o​ ​a​n​d​ ​n​a​m​e​ ​f​o​r​ ​y​o​u​r​ ​d​e​f​g​u​a​r​d​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​i​n​s​t​a​n​c​e​ ​i​t​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​i​n​s​t​e​a​d​ ​o​f​ ​d​e​f​g​u​a​r​d​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​>​ + ​ ​ ​ + * @param {string} documentationLink + */ + helper: RequiredParams<'documentationLink'> + } + license: { + /** + * E​n​t​e​r​p​r​i​s​e + */ + header: string + helpers: { + enterpriseHeader: { + /** + * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​m​a​n​a​g​e​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​ ​v​e​r​s​i​o​n​ ​l​i​c​e​n​s​e​. + */ + text: string + /** + * T​o​ ​l​e​a​r​n​ ​m​o​r​e​ ​a​b​o​u​t​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​,​ ​v​i​s​i​t​ ​o​u​r​ ​w​e​b​i​s​t​e​. + */ + link: string + } + licenseKey: { + /** + * E​n​t​e​r​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​ ​l​i​c​e​n​s​e​ ​k​e​y​ ​b​e​l​o​w​.​ ​Y​o​u​ ​s​h​o​u​l​d​ ​r​e​c​e​i​v​e​ ​i​t​ ​v​i​a​ ​e​m​a​i​l​ ​a​f​t​e​r​ ​p​u​r​c​h​a​s​i​n​g​ ​t​h​e​ ​l​i​c​e​n​s​e​. + */ + text: string + /** + * Y​o​u​ ​c​a​n​ ​p​u​r​c​h​a​s​e​ ​t​h​e​ ​l​i​c​e​n​s​e​ ​h​e​r​e​. + */ + link: string + } + } + form: { + /** + * L​i​c​e​n​s​e + */ + title: string + fields: { + key: { + /** + * L​i​c​e​n​s​e​ ​k​e​y + */ + label: string + /** + * Y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​l​i​c​e​n​s​e​ ​k​e​y + */ + placeholder: string + } + } + } + licenseInfo: { + /** + * L​i​c​e​n​s​e​ ​i​n​f​o​r​m​a​t​i​o​n + */ + title: string + /** + * N​o​ ​l​i​c​e​n​s​e + */ + noLicense: string + types: { + subscription: { + /** + * S​u​b​s​c​r​i​p​t​i​o​n + */ + label: string + /** + * A​ ​l​i​c​e​n​s​e​ ​t​h​a​t​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​r​e​n​e​w​s​ ​a​t​ ​r​e​g​u​l​a​r​ ​i​n​t​e​r​v​a​l​s + */ + helper: string + } + offline: { + /** + * O​f​f​l​i​n​e + */ + label: string + /** + * T​h​e​ ​l​i​c​e​n​s​e​ ​i​s​ ​v​a​l​i​d​ ​u​n​t​i​l​ ​t​h​e​ ​e​x​p​i​r​y​ ​d​a​t​e​ ​a​n​d​ ​d​o​e​s​ ​n​o​t​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​r​e​n​e​w + */ + helper: string + } + } + fields: { + type: { + /** + * T​y​p​e + */ + label: string + } + validUntil: { + /** + * V​a​l​i​d​ ​u​n​t​i​l + */ + label: string + } + } + } + } + smtp: { + form: { + /** + * S​M​T​P​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + title: string + fields: { + encryption: { + /** + * E​n​c​r​y​p​t​i​o​n + */ + label: string + } + server: { + /** + * S​e​r​v​e​r​ ​a​d​d​r​e​s​s + */ + label: string + /** + * A​d​d​r​e​s​s + */ + placeholder: string + } + port: { + /** + * S​e​r​v​e​r​ ​p​o​r​t + */ + label: string + /** + * P​o​r​t + */ + placeholder: string + } + user: { + /** + * S​e​r​v​e​r​ ​u​s​e​r​n​a​m​e + */ + label: string + /** + * U​s​e​r​n​a​m​e + */ + placeholder: string + } + password: { + /** + * S​e​r​v​e​r​ ​p​a​s​s​w​o​r​d + */ + label: string + /** + * P​a​s​s​w​o​r​d + */ + placeholder: string + } + sender: { + /** + * S​e​n​d​e​r​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s + */ + label: string + /** + * A​d​d​r​e​s​s + */ + placeholder: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​S​y​s​t​e​m​ ​m​e​s​s​a​g​e​s​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​f​r​o​m​ ​t​h​i​s​ ​a​d​d​r​e​s​s​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​E​.​g​.​ ​n​o​-​r​e​p​l​y​@​m​y​-​c​o​m​p​a​n​y​.​c​o​m​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ + */ + helper: string + } + } + controls: { + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + submit: string + } + } + /** + * D​e​l​e​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + 'delete': string + testForm: { + /** + * S​e​n​d​ ​t​e​s​t​ ​e​m​a​i​l + */ + title: string + fields: { + to: { + /** + * A​d​d​r​e​s​s + */ + label: string + /** + * A​d​d​r​e​s​s + */ + placeholder: string + } + } + controls: { + /** + * S​e​n​d + */ + submit: string + /** + * T​e​s​t​ ​e​m​a​i​l​ ​s​e​n​t + */ + success: string + /** + * E​r​r​o​r​ ​s​e​n​d​i​n​g​ ​e​m​a​i​l + */ + error: string + } + } + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​s​e​r​v​e​r​ ​u​s​e​d​ ​t​o​ ​s​e​n​d​ ​s​y​s​t​e​m​ ​m​e​s​s​a​g​e​s​ ​t​o​ ​t​h​e​ ​u​s​e​r​s​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ + ​ ​ ​ + */ + helper: string + } + enrollment: { + /** + * E​n​r​o​l​l​m​e​n​t​ ​i​s​ ​a​ ​p​r​o​c​e​s​s​ ​b​y​ ​w​h​i​c​h​ ​a​ ​n​e​w​ ​e​m​p​l​o​y​e​e​ ​w​i​l​l​ ​b​e​ ​a​b​l​e​ ​t​o​ ​a​c​t​i​v​a​t​e​ ​t​h​e​i​r​ ​n​e​w​ ​a​c​c​o​u​n​t​,​ ​c​r​e​a​t​e​ ​a​ ​p​a​s​s​w​o​r​d​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​. + */ + helper: string + vpnOptionality: { + /** + * V​P​N​ ​s​t​e​p​ ​o​p​t​i​o​n​a​l​i​t​y + */ + header: string + /** + * Y​o​u​ ​c​a​n​ ​c​h​o​o​s​e​ ​w​h​e​t​h​e​r​ ​c​r​e​a​t​i​n​g​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​ ​i​s​ ​o​p​t​i​o​n​a​l​ ​o​r​ ​m​a​n​d​a​t​o​r​y​ ​d​u​r​i​n​g​ ​e​n​r​o​l​l​m​e​n​t + */ + helper: string + } + welcomeMessage: { + /** + * W​e​l​c​o​m​e​ ​m​e​s​s​a​g​e + */ + header: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​I​n​ ​t​h​i​s​ ​t​e​x​t​ ​i​n​p​u​t​ ​y​o​u​ ​c​a​n​ ​u​s​e​ ​M​a​r​k​d​o​w​n​:​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​u​l​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​H​e​a​d​i​n​g​s​ ​s​t​a​r​t​ ​w​i​t​h​ ​a​ ​h​a​s​h​ ​#​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​i​>​*​i​t​a​l​i​c​s​*​<​/​i​>​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​t​w​o​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​b​>​*​*​b​o​l​d​*​*​<​/​b​>​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​u​l​>​ + ​ ​ ​ ​ ​ ​ ​ ​ + */ + helper: string + } + welcomeEmail: { + /** + * W​e​l​c​o​m​e​ ​e​-​m​a​i​l + */ + header: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​I​n​ ​t​h​i​s​ ​t​e​x​t​ ​i​n​p​u​t​ ​y​o​u​ ​c​a​n​ ​u​s​e​ ​M​a​r​k​d​o​w​n​:​<​/​p​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​u​l​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​H​e​a​d​i​n​g​s​ ​s​t​a​r​t​ ​w​i​t​h​ ​a​ ​h​a​s​h​ ​#​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​i​>​*​i​t​a​l​i​c​s​*​<​/​i​>​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​t​w​o​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​b​>​*​*​b​o​l​d​*​*​<​/​b​>​<​/​l​i​>​ + ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​u​l​>​ + ​ ​ ​ ​ ​ ​ ​ ​ + */ + helper: string + } + form: { + controls: { + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + submit: string + } + welcomeMessage: { + /** + * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​f​o​r​ ​t​h​e​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​y​o​u​ ​t​o​ ​i​n​s​e​r​t​ ​r​e​l​e​v​a​n​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​. + */ + helper: string + /** + * P​l​e​a​s​e​ ​i​n​p​u​t​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e + */ + placeholder: string + } + welcomeEmail: { + /** + * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​t​o​ ​t​h​e​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​y​o​u​ ​t​o​ ​i​n​s​e​r​t​ ​r​e​l​e​v​a​n​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​.​ ​Y​o​u​ ​c​a​n​ ​r​e​u​s​e​ ​t​h​e​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e​ ​h​e​r​e​. + */ + helper: string + /** + * P​l​e​a​s​e​ ​i​n​p​u​t​ ​w​e​l​c​o​m​e​ ​e​m​a​i​l + */ + placeholder: string + } + welcomeEmailSubject: { + /** + * S​u​b​j​e​c​t + */ + label: string + } + useMessageAsEmail: { + /** + * S​a​m​e​ ​a​s​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e + */ + label: string + } + } + } + enterprise: { + /** + * E​n​t​e​r​p​r​i​s​e​ ​F​e​a​t​u​r​e​s + */ + header: string + /** + * <​p​>​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​e​n​t​e​r​p​r​i​s​e​ ​s​e​t​t​i​n​g​s​.​<​/​p​> + */ + helper: string + fields: { + deviceManagement: { + /** + * D​i​s​a​b​l​e​ ​u​s​e​r​s​ ​a​b​i​l​i​t​y​ ​t​o​ ​m​a​n​a​g​e​ ​t​h​e​i​r​ ​d​e​v​i​c​e​s + */ + label: string + /** + * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​o​n​l​y​ ​u​s​e​r​s​ ​i​n​ ​t​h​e​ ​A​d​m​i​n​ ​g​r​o​u​p​ ​c​a​n​ ​m​a​n​a​g​e​ ​d​e​v​i​c​e​s​ ​i​n​ ​u​s​e​r​ ​p​r​o​f​i​l​e​ ​(​i​t​'​s​ ​d​i​s​a​b​l​e​d​ ​f​o​r​ ​a​l​l​ ​o​t​h​e​r​ ​u​s​e​r​s​) + */ + helper: string + } + disableAllTraffic: { + /** + * D​i​s​a​b​l​e​ ​t​h​e​ ​o​p​t​i​o​n​ ​t​o​ ​r​o​u​t​e​ ​a​l​l​ ​t​r​a​f​f​i​c​ ​t​h​r​o​u​g​h​ ​V​P​N + */ + label: string + /** + * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​u​s​e​r​s​ ​w​i​l​l​ ​n​o​t​ ​b​e​ ​a​b​l​e​ ​t​o​ ​r​o​u​t​e​ ​a​l​l​ ​t​r​a​f​f​i​c​ ​t​h​r​o​u​g​h​ ​t​h​e​ ​V​P​N​ ​u​s​i​n​g​ ​t​h​e​ ​d​e​f​g​u​a​r​d​ ​c​l​i​e​n​t​. + */ + helper: string + } + manualConfig: { + /** + * D​i​s​a​b​l​e​ ​u​s​e​r​s​ ​a​b​i​l​i​t​y​ ​t​o​ ​d​o​w​n​l​o​a​d​ ​m​a​n​u​a​l​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + label: string + /** + * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​u​s​e​r​s​ ​w​o​n​'​t​ ​b​e​ ​p​r​e​s​e​n​t​e​d​ ​w​i​t​h​ ​a​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​o​r​ ​m​a​n​u​a​l​ ​c​l​i​e​n​t​ ​s​e​t​u​p + */ + helper: string + } + } + } + } + openidOverview: { + /** + * O​p​e​n​I​D​ ​A​p​p​s + */ + pageTitle: string + search: { + /** + * F​i​n​d​ ​a​p​p​s + */ + placeholder: string + } + filterLabels: { + /** + * A​l​l​ ​a​p​p​s + */ + all: string + /** + * E​n​a​b​l​e​d + */ + enabled: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + } + /** + * A​l​l​ ​a​p​p​s + */ + clientCount: string + /** + * A​d​d​ ​n​e​w + */ + addNewApp: string + list: { + headers: { + /** + * N​a​m​e + */ + name: string + /** + * S​t​a​t​u​s + */ + status: string + /** + * A​c​t​i​o​n​s + */ + actions: string + } + editButton: { + /** + * E​d​i​t​ ​a​p​p + */ + edit: string + /** + * D​e​l​e​t​e​ ​a​p​p + */ + 'delete': string + /** + * D​i​s​a​b​l​e + */ + disable: string + /** + * E​n​a​b​l​e + */ + enable: string + /** + * C​o​p​y​ ​c​l​i​e​n​t​ ​I​D + */ + copy: string + } + status: { + /** + * E​n​a​b​l​e​d + */ + enabled: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + } + } + messages: { + /** + * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. + */ + copySuccess: string + /** + * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​ ​l​i​c​e​n​s​e​ ​f​o​r​ ​t​h​i​s​ ​f​e​a​t​u​r​e​. + */ + noLicenseMessage: string + /** + * N​o​ ​r​e​s​u​l​t​s​ ​f​o​u​n​d​. + */ + noClientsFound: string + } + deleteApp: { + /** + * D​e​l​e​t​e​ ​a​p​p + */ + title: string + /** + * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​a​p​p​N​a​m​e​}​ ​a​p​p​ ​? + * @param {string} appName + */ + message: RequiredParams<'appName'> + /** + * D​e​l​e​t​e​ ​a​p​p + */ + submit: string + messages: { + /** + * A​p​p​ ​d​e​l​e​t​e​d​. + */ + success: string + } + } + enableApp: { + messages: { + /** + * A​p​p​ ​e​n​a​b​l​e​d​. + */ + success: string + } + } + disableApp: { + messages: { + /** + * A​p​p​ ​d​i​s​a​b​l​e​d​. + */ + success: string + } + } + modals: { + openidClientModal: { + title: { + /** + * A​d​d​ ​A​p​p​l​i​c​a​t​i​o​n + */ + addApp: string + /** + * E​d​i​t​ ​{​a​p​p​N​a​m​e​}​ ​a​p​p + * @param {string} appName + */ + editApp: RequiredParams<'appName'> + } + /** + * S​c​o​p​e​s​: + */ + scopes: string + messages: { + /** + * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. + */ + clientIdCopy: string + /** + * C​l​i​e​n​t​ ​s​e​c​r​e​t​ ​c​o​p​i​e​d​. + */ + clientSecretCopy: string + } + form: { + messages: { + /** + * A​p​p​ ​c​r​e​a​t​e​d​. + */ + successAdd: string + /** + * A​p​p​ ​m​o​d​i​f​i​e​d​. + */ + successModify: string + } + error: { + /** + * U​R​L​ ​i​s​ ​r​e​q​u​i​r​e​d​. + */ + urlRequired: string + /** + * M​u​s​t​ ​b​e​ ​a​ ​v​a​l​i​d​ ​U​R​L​. + */ + validUrl: string + /** + * M​u​s​t​ ​h​a​v​e​ ​a​t​ ​l​e​a​s​t​ ​o​n​e​ ​s​c​o​p​e​. + */ + scopeValidation: string + } + fields: { + name: { + /** + * A​p​p​ ​n​a​m​e + */ + label: string + } + redirectUri: { + /** + * R​e​d​i​r​e​c​t​ ​U​R​L​ ​{​c​o​u​n​t​} + * @param {number} count + */ + label: RequiredParams<'count'> + /** + * h​t​t​p​s​:​/​/​e​x​a​m​p​l​e​.​c​o​m​/​r​e​d​i​r​e​c​t + */ + placeholder: string + } + openid: { + /** + * O​p​e​n​I​D + */ + label: string + } + profile: { + /** + * P​r​o​f​i​l​e + */ + label: string + } + email: { + /** + * E​m​a​i​l + */ + label: string + } + phone: { + /** + * P​h​o​n​e + */ + label: string + } + groups: { + /** + * G​r​o​u​p​s + */ + label: string + } + } + controls: { + /** + * A​d​d​ ​U​R​L + */ + addUrl: string + } + } + /** + * C​l​i​e​n​t​ ​I​D + */ + clientId: string + /** + * C​l​i​e​n​t​ ​s​e​c​r​e​t + */ + clientSecret: string + } + } + } + webhooksOverview: { + /** + * W​e​b​h​o​o​k​s + */ + pageTitle: string + search: { + /** + * F​i​n​d​ ​w​e​b​h​o​o​k​s​ ​b​y​ ​u​r​l + */ + placeholder: string + } + filterLabels: { + /** + * A​l​l​ ​w​e​b​h​o​o​k​s + */ + all: string + /** + * E​n​a​b​l​e​d + */ + enabled: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + } + /** + * A​l​l​ ​w​e​b​h​o​o​k​s + */ + webhooksCount: string + /** + * A​d​d​ ​n​e​w + */ + addNewWebhook: string + /** + * N​o​ ​w​e​b​h​o​o​k​s​ ​f​o​u​n​d​. + */ + noWebhooksFound: string + list: { + headers: { + /** + * N​a​m​e + */ + name: string + /** + * D​e​s​c​r​i​p​t​i​o​n + */ + description: string + /** + * S​t​a​t​u​s + */ + status: string + /** + * A​c​t​i​o​n​s + */ + actions: string + } + editButton: { + /** + * E​d​i​t + */ + edit: string + /** + * D​e​l​e​t​e​ ​w​e​b​h​o​o​k + */ + 'delete': string + /** + * D​i​s​a​b​l​e + */ + disable: string + /** + * E​n​a​b​l​e + */ + enable: string + } + status: { + /** + * E​n​a​b​l​e​d + */ + enabled: string + /** + * D​i​s​a​b​l​e​d + */ + disabled: string + } + } + } + provisionersOverview: { + /** + * P​r​o​v​i​s​i​o​n​e​r​s + */ + pageTitle: string + search: { + /** + * F​i​n​d​ ​p​r​o​v​i​s​i​o​n​e​r​s + */ + placeholder: string + } + filterLabels: { + /** + * A​l​l + */ + all: string + /** + * A​v​a​i​l​a​b​l​e + */ + available: string + /** + * U​n​a​v​a​i​l​a​b​l​e + */ + unavailable: string + } + /** + * A​l​l​ ​p​r​o​v​i​s​i​o​n​e​r​s + */ + provisionersCount: string + /** + * N​o​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​f​o​u​n​d​. + */ + noProvisionersFound: string + /** + * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​ ​l​i​c​e​n​s​e​ ​f​o​r​ ​t​h​i​s​ ​f​e​a​t​u​r​e​. + */ + noLicenseMessage: string + provisioningStation: { + /** + * Y​u​b​i​K​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g​ ​s​t​a​t​i​o​n + */ + header: string + /** + * I​n​ ​o​r​d​e​r​ ​t​o​ ​b​e​ ​a​b​l​e​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​y​o​u​r​ ​Y​u​b​i​K​e​y​s​,​ ​f​i​r​s​t​ ​y​o​u​ ​n​e​e​d​ ​t​o​ ​s​e​t​ ​u​p​ + ​ ​ ​ ​ ​ ​ ​ ​ ​p​h​y​s​i​c​a​l​ ​m​a​c​h​i​n​e​ ​w​i​t​h​ ​U​S​B​ ​s​l​o​t​.​ ​R​u​n​ ​p​r​o​v​i​d​e​d​ ​c​o​m​m​a​n​d​ ​o​n​ ​y​o​u​r​ ​c​h​o​s​e​n​ + ​ ​ ​ ​ ​ ​ ​ ​ ​m​a​c​h​i​n​e​ ​t​o​ ​r​e​g​i​s​t​e​r​ ​i​t​ ​a​n​d​ ​s​t​a​r​t​ ​p​r​o​v​i​s​i​o​n​i​n​g​ ​y​o​u​r​ ​k​e​y​s​. + */ + content: string + dockerCard: { + /** + * P​r​o​v​i​s​i​o​n​i​n​g​ ​s​t​a​t​i​o​n​ ​d​o​c​k​e​r​ ​s​e​t​u​p​ ​c​o​m​m​a​n​d + */ + title: string + } + tokenCard: { + /** + * A​c​c​e​s​s​ ​t​o​k​e​n + */ + title: string + } + } + list: { + headers: { + /** + * N​a​m​e + */ + name: string + /** + * I​P​ ​a​d​d​r​e​s​s + */ + ip: string + /** + * S​t​a​t​u​s + */ + status: string + /** + * A​c​t​i​o​n​s + */ + actions: string + } + editButton: { + /** + * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r + */ + 'delete': string + } + status: { + /** + * A​v​a​i​l​a​b​l​e + */ + available: string + /** + * U​n​a​v​a​i​l​a​b​l​e + */ + unavailable: string + } + } + messages: { + copy: { + /** + * T​o​k​e​n​ ​c​o​p​i​e​d + */ + token: string + /** + * C​o​m​m​a​n​d​ ​c​o​p​i​e​d + */ + command: string + } + } + } + openidAllow: { + /** + * {​n​a​m​e​}​ ​w​o​u​l​d​ ​l​i​k​e​ ​t​o​: + * @param {string} name + */ + header: RequiredParams<'name'> + scopes: { + /** + * U​s​e​ ​y​o​u​r​ ​p​r​o​f​i​l​e​ ​d​a​t​a​ ​f​o​r​ ​f​u​t​u​r​e​ ​l​o​g​i​n​s​. + */ + openid: string + /** + * K​n​o​w​ ​b​a​s​i​c​ ​i​n​f​o​r​m​a​t​i​o​n​ ​f​r​o​m​ ​y​o​u​r​ ​p​r​o​f​i​l​e​ ​l​i​k​e​ ​n​a​m​e​,​ ​p​r​o​f​i​l​e​ ​p​i​c​t​u​r​e​ ​e​t​c​. + */ + profile: string + /** + * K​n​o​w​ ​y​o​u​r​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​. + */ + email: string + /** + * K​n​o​w​ ​y​o​u​r​ ​p​h​o​n​e​ ​n​u​m​b​e​r​. + */ + phone: string + /** + * K​n​o​w​ ​y​o​u​r​ ​g​r​o​u​p​s​ ​m​e​m​b​e​r​s​h​i​p​. + */ + groups: string + } + controls: { + /** + * A​c​c​e​p​t + */ + accept: string + /** + * C​a​n​c​e​l + */ + cancel: string + } + } + networkOverview: { + /** + * L​o​c​a​t​i​o​n​ ​o​v​e​r​v​i​e​w + */ + pageTitle: string + controls: { + /** + * E​d​i​t​ ​L​o​c​a​t​i​o​n​s​ ​s​e​t​t​i​n​g​s + */ + editNetworks: string + selectNetwork: { + /** + * L​o​a​d​i​n​g​ ​l​o​c​a​t​i​o​n​s + */ + placeholder: string + } + } + filterLabels: { + /** + * G​r​i​d​ ​v​i​e​w + */ + grid: string + /** + * L​i​s​t​ ​v​i​e​w + */ + list: string + } + stats: { + /** + * C​u​r​r​e​n​t​l​y​ ​a​c​t​i​v​e​ ​u​s​e​r​s + */ + currentlyActiveUsers: string + /** + * C​u​r​r​e​n​t​l​y​ ​a​c​t​i​v​e​ ​d​e​v​i​c​e​s + */ + currentlyActiveDevices: string + /** + * A​c​t​i​v​e​ ​u​s​e​r​s​ ​i​n​ ​{​h​o​u​r​}​H + * @param {number} hour + */ + activeUsersFilter: RequiredParams<'hour'> + /** + * A​c​t​i​v​e​ ​d​e​v​i​c​e​s​ ​i​n​ ​{​h​o​u​r​}​H + * @param {number} hour + */ + activeDevicesFilter: RequiredParams<'hour'> + /** + * T​o​t​a​l​ ​t​r​a​n​s​f​e​r​: + */ + totalTransfer: string + /** + * A​c​t​i​v​i​t​y​ ​i​n​ ​{​h​o​u​r​}​H + * @param {number} hour + */ + activityIn: RequiredParams<'hour'> + /** + * I​n​: + */ + 'in': string + /** + * O​u​t​: + */ + out: string + /** + * G​a​t​e​w​a​y​ ​d​i​s​c​o​n​n​e​c​t​e​d + */ + gatewayDisconnected: string + } + } + connectedUsersOverview: { + /** + * C​o​n​n​e​c​t​e​d​ ​u​s​e​r​s + */ + pageTitle: string + /** + * C​u​r​r​e​n​t​l​y​ ​t​h​e​r​e​ ​a​r​e​ ​n​o​ ​c​o​n​n​e​c​t​e​d​ ​u​s​e​r​s + */ + noUsersMessage: string + userList: { + /** + * U​s​e​r​n​a​m​e + */ + username: string + /** + * D​e​v​i​c​e + */ + device: string + /** + * C​o​n​n​e​c​t​e​d + */ + connected: string + /** + * D​e​v​i​c​e​ ​l​o​c​a​t​i​o​n + */ + deviceLocation: string + /** + * N​e​t​w​o​r​k​ ​u​s​a​g​e + */ + networkUsage: string + } + } + networkPage: { + /** + * E​d​i​t​ ​L​o​c​a​t​i​o​n + */ + pageTitle: string + /** + * +​ ​A​d​d​ ​n​e​w​ ​l​o​c​a​t​i​o​n + */ + addNetwork: string + controls: { + networkSelect: { + /** + * L​o​c​a​t​i​o​n​ ​c​h​o​i​c​e + */ + label: string + } + } + } + activityOverview: { + /** + * A​c​t​i​v​i​t​y​ ​s​t​r​e​a​m + */ + header: string + /** + * C​u​r​r​e​n​t​l​y​ ​t​h​e​r​e​ ​i​s​ ​n​o​ ​a​c​t​i​v​i​t​y​ ​d​e​t​e​c​t​e​d + */ + noData: string + } + networkConfiguration: { + messages: { + 'delete': { + /** + * N​e​t​w​o​r​k​ ​d​e​l​t​e​d + */ + success: string + /** + * F​a​i​l​e​d​ ​t​o​ ​d​e​l​e​t​e​ ​n​e​t​w​o​r​k + */ + error: string + } + } + /** + * L​o​c​a​t​i​o​n​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + header: string + /** + * L​o​c​a​t​i​o​n​ ​i​m​p​o​r​t + */ + importHeader: string + form: { + helpers: { + /** + * B​a​s​e​d​ ​o​n​ ​t​h​i​s​ ​a​d​d​r​e​s​s​ ​V​P​N​ ​n​e​t​w​o​r​k​ ​a​d​d​r​e​s​s​ ​w​i​l​l​ ​b​e​ ​d​e​f​i​n​e​d​,​ ​e​g​.​ ​1​0​.​1​0​.​1​0​.​1​/​2​4​ ​(​a​n​d​ ​V​P​N​ ​n​e​t​w​o​r​k​ ​w​i​l​l​ ​b​e​:​ ​1​0​.​1​0​.​1​0​.​0​/​2​4​) + */ + address: string + /** + * G​a​t​e​w​a​y​ ​p​u​b​l​i​c​ ​a​d​d​r​e​s​s​,​ ​u​s​e​d​ ​b​y​ ​V​P​N​ ​u​s​e​r​s​ ​t​o​ ​c​o​n​n​e​c​t + */ + gateway: string + /** + * S​p​e​c​i​f​y​ ​t​h​e​ ​D​N​S​ ​r​e​s​o​l​v​e​r​s​ ​t​o​ ​q​u​e​r​y​ ​w​h​e​n​ ​t​h​e​ ​w​i​r​e​g​u​a​r​d​ ​i​n​t​e​r​f​a​c​e​ ​i​s​ ​u​p​. + */ + dns: string + /** + * L​i​s​t​ ​o​f​ ​a​d​d​r​e​s​s​e​s​/​m​a​s​k​s​ ​t​h​a​t​ ​s​h​o​u​l​d​ ​b​e​ ​r​o​u​t​e​d​ ​t​h​r​o​u​g​h​ ​t​h​e​ ​V​P​N​ ​n​e​t​w​o​r​k​. + */ + allowedIps: string + /** + * B​y​ ​d​e​f​a​u​l​t​,​ ​a​l​l​ ​u​s​e​r​s​ ​w​i​l​l​ ​b​e​ ​a​l​l​o​w​e​d​ ​t​o​ ​c​o​n​n​e​c​t​ ​t​o​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​.​ ​I​f​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​r​e​s​t​r​i​c​t​ ​a​c​c​e​s​s​ ​t​o​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​ ​t​o​ ​a​ ​s​p​e​c​i​f​i​c​ ​g​r​o​u​p​,​ ​p​l​e​a​s​e​ ​s​e​l​e​c​t​ ​i​t​ ​b​e​l​o​w​. + */ + allowedGroups: string + } + messages: { + /** + * L​o​c​a​t​i​o​n​ ​m​o​d​i​f​i​e​d​. + */ + networkModified: string + /** + * L​o​c​a​t​i​o​n​ ​c​r​e​a​t​e​d + */ + networkCreated: string + } + fields: { + name: { + /** + * L​o​c​a​t​i​o​n​ ​n​a​m​e + */ + label: string + } + address: { + /** + * G​a​t​e​w​a​y​ ​V​P​N​ ​I​P​ ​a​d​d​r​e​s​s​ ​a​n​d​ ​n​e​t​m​a​s​k + */ + label: string + } + endpoint: { + /** + * G​a​t​e​w​a​y​ ​a​d​d​r​e​s​s + */ + label: string + } + allowedIps: { + /** + * A​l​l​o​w​e​d​ ​I​p​s + */ + label: string + } + port: { + /** + * G​a​t​e​w​a​y​ ​p​o​r​t + */ + label: string + } + dns: { + /** + * D​N​S + */ + label: string + } + allowedGroups: { + /** + * A​l​l​o​w​e​d​ ​g​r​o​u​p​s + */ + label: string + /** + * A​l​l​ ​g​r​o​u​p​s + */ + placeholder: string + } + mfa_enabled: { + /** + * R​e​q​u​i​r​e​ ​M​F​A​ ​f​o​r​ ​t​h​i​s​ ​L​o​c​a​t​i​o​n + */ + label: string + } + keepalive_interval: { + /** + * K​e​e​p​a​l​i​v​e​ ​i​n​t​e​r​v​a​l​ ​[​s​e​c​o​n​d​s​] + */ + label: string + } + peer_disconnect_threshold: { + /** + * P​e​e​r​ ​d​i​s​c​o​n​n​e​c​t​ ​t​h​r​e​s​h​o​l​d​ ​[​s​e​c​o​n​d​s​] + */ + label: string + } + } + controls: { + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + submit: string + /** + * B​a​c​k​ ​t​o​ ​O​v​e​r​v​i​e​w + */ + cancel: string + /** + * R​e​m​o​v​e​ ​l​o​c​a​t​i​o​n + */ + 'delete': string + } + } + } + gatewaySetup: { + header: { + /** + * G​a​t​e​w​a​y​ ​s​e​r​v​e​r​ ​s​e​t​u​p + */ + main: string + /** + * D​o​c​k​e​r​ ​B​a​s​e​d​ ​G​a​t​e​w​a​y​ ​S​e​t​u​p + */ + dockerBasedGatewaySetup: string + /** + * F​r​o​m​ ​P​a​c​k​a​g​e + */ + fromPackage: string + /** + * O​n​e​ ​L​i​n​e​ ​I​n​s​t​a​l​l + */ + oneLineInstall: string + } + card: { + /** + * D​o​c​k​e​r​ ​b​a​s​e​d​ ​g​a​t​e​w​a​y​ ​s​e​t​u​p + */ + title: string + /** + * A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​T​o​k​e​n + */ + authToken: string + } + button: { + /** + * A​v​a​i​l​a​b​l​e​ ​P​a​c​k​a​g​e​s + */ + availablePackages: string + } + controls: { + /** + * C​h​e​c​k​ ​c​o​n​n​e​c​t​i​o​n​ ​s​t​a​t​u​s + */ + status: string + } + messages: { + /** + * D​e​f​g​u​a​r​d​ ​r​e​q​u​i​r​e​s​ ​t​o​ ​d​e​p​l​o​y​ ​a​ ​g​a​t​e​w​a​y​ ​n​o​d​e​ ​t​o​ ​c​o​n​t​r​o​l​ ​w​i​r​e​g​u​a​r​d​ ​V​P​N​ ​o​n​ ​t​h​e​ ​v​p​n​ ​s​e​r​v​e​r​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​M​o​r​e​ ​d​e​t​a​i​l​s​ ​c​a​n​ ​b​e​ ​f​o​u​n​d​ ​i​n​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​h​e​r​e​ ​a​r​e​ ​s​e​v​e​r​a​l​ ​w​a​y​s​ ​t​o​ ​d​e​p​l​o​y​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​s​e​r​v​e​r​,​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​b​e​l​o​w​ ​i​s​ ​a​ ​D​o​c​k​e​r​ ​b​a​s​e​d​ ​e​x​a​m​p​l​e​,​ ​f​o​r​ ​o​t​h​e​r​ ​e​x​a​m​p​l​e​s​ ​p​l​e​a​s​e​ ​v​i​s​i​t​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. + * @param {string} setupGatewayDocs + */ + runCommand: RequiredParams<'setupGatewayDocs' | 'setupGatewayDocs'> + /** + * P​l​e​a​s​e​ ​c​r​e​a​t​e​ ​t​h​e​ ​n​e​t​w​o​r​k​ ​b​e​f​o​r​e​ ​r​u​n​n​i​n​g​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​p​r​o​c​e​s​s​. + */ + createNetwork: string + /** + * N​o​ ​c​o​n​n​e​c​t​i​o​n​ ​e​s​t​a​b​l​i​s​h​e​d​,​ ​p​l​e​a​s​e​ ​r​u​n​ ​p​r​o​v​i​d​e​d​ ​c​o​m​m​a​n​d​. + */ + noConnection: string + /** + * G​a​t​e​w​a​y​ ​c​o​n​n​e​c​t​e​d​. + */ + connected: string + /** + * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​g​a​t​e​w​a​y​ ​s​t​a​t​u​s + */ + statusError: string + /** + * I​f​ ​y​o​u​ ​a​r​e​ ​d​o​i​n​g​ ​o​n​e​ ​l​i​n​e​ ​i​n​s​t​a​l​l​:​ ​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​a​d​m​i​n​-​a​n​d​-​f​e​a​t​u​r​e​s​/​s​e​t​t​i​n​g​-​u​p​-​y​o​u​r​-​i​n​s​t​a​n​c​e​/​o​n​e​-​l​i​n​e​-​i​n​s​t​a​l​l​ ​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​y​o​u​ ​d​o​n​'​t​ ​n​e​e​d​ ​t​o​ ​d​o​ ​a​n​y​t​h​i​n​g​. + */ + oneLineInstall: string + /** + * I​n​s​t​a​l​l​ ​t​h​e​ ​p​a​c​k​a​g​e​ ​a​v​a​i​l​a​b​l​e​ ​a​t​ ​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​g​a​t​e​w​a​y​/​r​e​l​e​a​s​e​s​/​l​a​t​e​s​t​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​`​/​e​t​c​/​d​e​f​g​u​a​r​d​/​g​a​t​e​w​a​y​.​t​o​m​l​`​ ​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​a​c​c​o​r​d​i​n​g​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. + * @param {string} setupGatewayDocs + */ + fromPackage: RequiredParams<'setupGatewayDocs'> + /** + * T​o​k​e​n​ ​b​e​l​o​w​ ​i​s​ ​r​e​q​u​i​r​e​d​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​n​o​d​e​.​ ​E​n​s​u​r​e​ ​y​o​u​ ​k​e​e​p​ ​t​h​i​s​ ​t​o​k​e​n​ ​s​e​c​u​r​e​ ​a​n​d​ ​f​o​l​l​o​w​ ​t​h​e​ ​d​e​p​l​o​y​m​e​n​t​ ​i​n​s​t​r​u​c​t​i​o​n​s​ ​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​p​r​o​v​i​d​e​d​ ​i​n​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​ ​t​o​ ​s​u​c​c​e​s​s​f​u​l​l​y​ ​s​e​t​ ​u​p​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​s​e​r​v​e​r​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​F​o​r​ ​m​o​r​e​ ​d​e​t​a​i​l​s​ ​a​n​d​ ​e​x​a​c​t​ ​s​t​e​p​s​,​ ​p​l​e​a​s​e​ ​r​e​f​e​r​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. + * @param {string} setupGatewayDocs + */ + authToken: RequiredParams<'setupGatewayDocs' | 'setupGatewayDocs'> + /** + * B​e​l​o​w​ ​i​s​ ​a​ ​D​o​c​k​e​r​ ​b​a​s​e​d​ ​e​x​a​m​p​l​e​.​ ​F​o​r​ ​m​o​r​e​ ​d​e​t​a​i​l​s​ ​a​n​d​ ​e​x​a​c​t​ ​s​t​e​p​s​,​ ​p​l​e​a​s​e​ ​r​e​f​e​r​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. + * @param {string} setupGatewayDocs + */ + dockerBasedGatewaySetup: RequiredParams<'setupGatewayDocs'> + } + } + loginPage: { + /** + * E​n​t​e​r​ ​y​o​u​r​ ​c​r​e​d​e​n​t​i​a​l​s + */ + pageTitle: string + callback: { + /** + * G​o​ ​b​a​c​k​ ​t​o​ ​l​o​g​i​n + */ + 'return': string + /** + * A​n​ ​e​r​r​o​r​ ​o​c​c​u​r​r​e​d​ ​d​u​r​i​n​g​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​l​o​g​i​n + */ + error: string + } + mfa: { + /** + * T​w​o​-​f​a​c​t​o​r​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n + */ + title: string + controls: { + /** + * U​s​e​ ​A​u​t​h​e​n​t​i​c​a​t​o​r​ ​a​p​p​ ​i​n​s​t​e​a​d + */ + useAuthenticator: string + /** + * U​s​e​ ​y​o​u​r​ ​w​a​l​l​e​t​ ​i​n​s​t​e​a​d + */ + useWallet: string + /** + * U​s​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y​ ​i​n​s​t​e​a​d + */ + useWebauthn: string + /** + * U​s​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​ ​i​n​s​t​e​a​d + */ + useRecoveryCode: string + /** + * U​s​e​ ​E​-​m​a​i​l​ ​i​n​s​t​e​a​d + */ + useEmail: string + } + email: { + /** + * U​s​e​ ​c​o​d​e​ ​w​e​ ​s​e​n​t​ ​t​o​ ​y​o​u​r​ ​e​-​m​a​i​l​ ​t​o​ ​p​r​o​c​e​e​d​. + */ + header: string + form: { + labels: { + /** + * C​o​d​e + */ + code: string + } + controls: { + /** + * R​e​s​e​n​d​ ​C​o​d​e + */ + resendCode: string + } + } + } + totp: { + /** + * U​s​e​ ​c​o​d​e​ ​f​r​o​m​ ​y​o​u​r​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​a​p​p​ ​a​n​d​ ​c​l​i​c​k​ ​b​u​t​t​o​n​ ​t​o​ ​p​r​o​c​e​e​d​. + */ + header: string + form: { + fields: { + code: { + /** + * E​n​t​e​r​ ​A​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e + */ + placeholder: string + } + } + controls: { + /** + * U​s​e​ ​a​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e + */ + submit: string + } + } + } + recoveryCode: { + /** + * E​n​t​e​r​ ​o​n​e​ ​o​f​ ​a​c​t​i​v​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​s​ ​a​n​d​ ​c​l​i​c​k​ ​b​u​t​t​o​n​ ​t​o​ ​l​o​g​ ​i​n​. + */ + header: string + form: { + fields: { + code: { + /** + * R​e​c​o​v​e​r​y​ ​c​o​d​e + */ + placeholder: string + } + } + controls: { + /** + * U​s​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e + */ + submit: string + } + } + } + wallet: { + /** + * U​s​e​ ​y​o​u​r​ ​c​r​y​p​t​o​ ​w​a​l​l​e​t​ ​t​o​ ​s​i​g​n​ ​i​n​,​ ​p​l​e​a​s​e​ ​s​i​g​n​ ​m​e​s​s​a​g​e​ ​i​n​ ​y​o​u​r​ ​w​a​l​l​e​t​ ​a​p​p​ ​o​r​ ​e​x​t​e​n​s​i​o​n​. + */ + header: string + controls: { + /** + * U​s​e​ ​y​o​u​r​ ​w​a​l​l​e​t + */ + submit: string + } + messages: { + /** + * W​a​l​l​e​t​ ​w​a​s​ ​d​i​s​c​o​n​n​e​c​t​e​d​ ​d​u​r​i​n​g​ ​s​i​g​n​i​n​g​ ​p​r​o​c​e​s​s​. + */ + walletError: string + /** + * W​a​l​l​e​t​ ​i​s​ ​n​o​t​ ​a​u​t​h​o​r​i​z​e​d​ ​f​o​r​ ​M​F​A​ ​l​o​g​i​n​.​ ​P​l​e​a​s​e​ ​u​s​e​ ​a​u​t​h​o​r​i​z​e​d​ ​w​a​l​l​e​t​. + */ + walletErrorMfa: string + } + } + webauthn: { + /** + * W​h​e​n​ ​y​o​u​ ​a​r​e​ ​r​e​a​d​y​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​,​ ​p​r​e​s​s​ ​t​h​e​ ​b​u​t​t​o​n​ ​b​e​l​o​w​. + */ + header: string + controls: { + /** + * U​s​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y + */ + submit: string + } + messages: { + /** + * F​a​i​l​e​d​ ​t​o​ ​r​e​a​d​ ​k​e​y​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​. + */ + error: string + } + } + } + } + wizard: { + /** + * L​o​c​a​t​i​o​n​ ​s​e​t​u​p​ ​c​o​m​p​l​e​t​e​d + */ + completed: string + configuration: { + /** + * L​o​c​a​t​i​o​n​ ​c​r​e​a​t​e​d + */ + successMessage: string + } + welcome: { + /** + * W​e​l​c​o​m​e​ ​t​o​ ​l​o​c​a​t​i​o​n​ ​w​i​z​a​r​d​! + */ + header: string + /** + * B​e​f​o​r​e​ ​y​o​u​ ​s​t​a​r​t​ ​u​s​i​n​g​ ​V​P​N​ ​y​o​u​ ​n​e​e​d​ ​t​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​f​i​r​s​t​ ​l​o​c​a​t​i​o​n​.​ ​W​h​e​n​ ​i​n​ ​d​o​u​b​t​ ​c​l​i​c​k​ ​o​n​ ​<​R​e​a​c​t​>​ ​i​c​o​n​. + */ + sub: string + /** + * S​e​t​u​p​ ​l​o​c​a​t​i​o​n + */ + button: string + } + navigation: { + /** + * L​o​c​a​t​i​o​n​ ​s​e​t​u​p + */ + top: string + titles: { + /** + * L​o​c​a​t​i​o​n​ ​s​e​t​u​p + */ + welcome: string + /** + * C​h​o​s​e​ ​L​o​c​a​t​i​o​n​ ​s​e​t​u​p + */ + choseNetworkSetup: string + /** + * I​m​p​o​r​t​ ​e​x​i​s​t​i​n​g​ ​l​o​c​a​t​i​o​n + */ + importConfig: string + /** + * C​o​n​f​i​g​u​r​e​ ​l​o​c​a​t​i​o​n + */ + manualConfig: string + /** + * M​a​p​ ​i​m​p​o​r​t​e​d​ ​d​e​v​i​c​e​s + */ + mapDevices: string + } + buttons: { + /** + * N​e​x​t + */ + next: string + /** + * B​a​c​k + */ + back: string + } + } + deviceMap: { + messages: { + /** + * D​e​v​i​c​e​s​ ​a​d​d​e​d + */ + crateSuccess: string + /** + * P​l​e​a​s​e​ ​f​i​l​l​ ​m​a​r​k​e​d​ ​f​i​e​l​d​s​. + */ + errorsInForm: string + } + list: { + headers: { + /** + * D​e​v​i​c​e​ ​N​a​m​e + */ + deviceName: string + /** + * I​P + */ + deviceIP: string + /** + * U​s​e​r + */ + user: string + } + } + } + wizardType: { + manual: { + /** + * M​a​n​u​a​l​ ​C​o​n​f​i​g​u​r​a​t​i​o​n + */ + title: string + /** + * M​a​n​u​a​l​ ​l​o​c​a​t​i​o​n​ ​c​o​n​f​i​g​u​r​a​t​i​o​n + */ + description: string + } + 'import': { + /** + * I​m​p​o​r​t​ ​F​r​o​m​ ​F​i​l​e + */ + title: string + /** + * I​m​p​o​r​t​ ​f​r​o​m​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​ ​f​i​l​e + */ + description: string + } + /** + * C​r​e​a​t​e​ ​l​o​c​a​t​i​o​n + */ + createNetwork: string + } + common: { + /** + * S​e​l​e​c​t + */ + select: string + } + locations: { + form: { + /** + * N​a​m​e + */ + name: string + /** + * I​P​ ​a​d​d​r​e​s​s + */ + ip: string + /** + * U​s​e​r + */ + user: string + /** + * F​i​l​e + */ + fileName: string + /** + * S​e​l​e​c​t​ ​f​i​l​e + */ + selectFile: string + messages: { + /** + * D​e​v​i​c​e​s​ ​c​r​e​a​t​e​d + */ + devicesCreated: string + } + validation: { + /** + * I​n​v​a​l​i​d​ ​a​d​d​r​e​s​s + */ + invalidAddress: string + } + } + } + } + layout: { + select: { + /** + * A​d​d​ ​n​e​w​ ​+ + */ + addNewOptionDefault: string + } + } + redirectPage: { + /** + * Y​o​u​ ​h​a​v​e​ ​b​e​e​n​ ​l​o​g​g​e​d​ ​i​n + */ + title: string + /** + * Y​o​u​ ​w​i​l​l​ ​b​e​ ​r​e​d​i​r​e​c​t​e​d​ ​i​n​ ​a​ ​m​o​m​e​n​t​.​.​. + */ + subtitle: string + } + enrollmentPage: { + /** + * E​n​r​o​l​l​m​e​n​t + */ + title: string + controls: { + /** + * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t + */ + 'default': string + /** + * S​a​v​e​ ​c​h​a​n​g​e​s + */ + save: string + } + messages: { + edit: { + /** + * S​e​t​t​i​n​g​s​ ​c​h​a​n​g​e​d + */ + success: string + /** + * S​a​v​e​ ​f​a​i​l​e​d + */ + error: string + } + } + /** + * E​n​r​o​l​l​m​e​n​t​ ​i​s​ ​a​ ​p​r​o​c​e​s​s​ ​b​y​ ​w​h​i​c​h​ ​a​ ​n​e​w​ ​e​m​p​l​o​y​e​e​ ​w​i​l​l​ ​b​e​ ​a​b​l​e​ ​t​o​ ​a​c​t​i​v​a​t​e​ ​t​h​e​i​r​ ​n​e​w​ ​a​c​c​o​u​n​t​,​ ​c​r​e​a​t​e​ ​a​ ​p​a​s​s​w​o​r​d​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​.​ ​Y​o​u​ ​c​a​n​ ​c​u​s​t​o​m​i​z​e​ ​i​t​ ​h​e​r​e​. + */ + messageBox: string + settings: { + welcomeMessage: { + /** + * W​e​l​c​o​m​e​ ​m​e​s​s​a​g​e + */ + title: string + /** + * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​f​o​r​ ​u​s​e​r​ ​i​n​ ​s​e​r​v​i​c​e​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​t​o​ ​i​n​s​e​r​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​.​ ​Y​o​u​ ​c​a​n​ ​u​s​e​ ​s​a​m​e​ ​m​e​s​s​a​g​e​ ​a​s​ ​i​n​ ​t​h​e​ ​e​-​m​a​i​l​. + */ + messageBox: string + } + vpnOptionality: { + /** + * V​P​N​ ​s​e​t​ ​o​p​t​i​o​n​a​l​l​i​t​y + */ + title: string + select: { + options: { + /** + * O​p​t​i​o​n​a​l + */ + optional: string + /** + * M​a​n​d​a​t​o​r​y + */ + mandatory: string + } + } + } + welcomeEmail: { + /** + * W​e​l​c​o​m​e​ ​e​-​m​a​i​l + */ + title: string + subject: { + /** + * E​-​m​a​i​l​ ​s​u​b​j​e​c​t + */ + label: string + } + /** + * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​t​o​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​t​o​ ​i​n​s​e​r​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​. + */ + messageBox: string + controls: { + /** + * S​a​m​e​ ​a​s​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e + */ + duplicateWelcome: string + } + } + } + } + supportPage: { + /** + * S​u​p​p​o​r​t + */ + title: string + modals: { + confirmDataSend: { + /** + * S​e​n​d​ ​S​u​p​p​o​r​t​ ​D​a​t​a + */ + title: string + /** + * P​l​e​a​s​e​ ​c​o​n​f​i​r​m​ ​t​h​a​t​ ​y​o​u​ ​a​c​t​u​a​l​l​y​ ​w​a​n​t​ ​t​o​ ​s​e​n​d​ ​s​u​p​p​o​r​t​ ​d​e​b​u​g​ ​i​n​f​o​r​m​a​t​i​o​n​.​ ​N​o​n​e​ ​o​f​ ​y​o​u​r​ ​p​r​i​v​a​t​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​(​w​i​r​e​g​u​a​r​d​ ​k​e​y​s​,​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​e​s​,​ ​e​t​c​.​ ​w​i​l​l​ ​n​o​t​ ​b​e​ ​s​e​n​t​)​. + */ + subTitle: string + /** + * S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a + */ + submit: string + } + } + debugDataCard: { + /** + * S​u​p​p​o​r​t​ ​d​a​t​a + */ + title: string + /** + * + ​I​f​ ​y​o​u​ ​n​e​e​d​ ​a​s​s​i​s​t​a​n​c​e​ ​o​r​ ​y​o​u​ ​w​e​r​e​ ​a​s​k​e​d​ ​t​o​ ​g​e​n​e​r​a​t​e​ ​s​u​p​p​o​r​t​ ​d​a​t​a​ ​b​y​ ​o​u​r​ ​t​e​a​m​ ​(​f​o​r​ ​e​x​a​m​p​l​e​ ​o​n​ ​o​u​r​ ​M​a​t​r​i​x​ ​s​u​p​p​o​r​t​ ​c​h​a​n​n​e​l​:​ ​*​*​#​d​e​f​g​u​a​r​d​-​s​u​p​p​o​r​t​:​t​e​o​n​i​t​e​.​c​o​m​*​*​)​,​ ​y​o​u​ ​h​a​v​e​ ​t​w​o​ ​o​p​t​i​o​n​s​:​ + ​*​ ​E​i​t​h​e​r​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​s​e​t​t​i​n​g​s​ ​a​n​d​ ​c​l​i​c​k​ ​"​S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a​"​ + ​*​ ​O​r​ ​c​l​i​c​k​ ​"​D​o​w​n​l​o​a​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a​"​ ​a​n​d​ ​c​r​e​a​t​e​ ​a​ ​b​u​g​ ​r​e​p​o​r​t​ ​i​n​ ​o​u​r​ ​G​i​t​H​u​b​ ​a​t​t​a​c​h​i​n​g​ ​t​h​i​s​ ​f​i​l​e​.​ + + */ + body: string + /** + * D​o​w​n​l​o​a​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a + */ + downloadSupportData: string + /** + * D​o​w​n​l​o​a​d​ ​l​o​g​s + */ + downloadLogs: string + /** + * S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a + */ + sendMail: string + /** + * E​m​a​i​l​ ​s​e​n​t + */ + mailSent: string + /** + * E​r​r​o​r​ ​s​e​n​d​i​n​g​ ​e​m​a​i​l + */ + mailError: string + } + supportCard: { + /** + * S​u​p​p​o​r​t + */ + title: string + /** + * + ​B​e​f​o​r​e​ ​c​o​n​t​a​c​t​i​n​g​ ​o​r​ ​s​u​b​m​i​t​t​i​n​g​ ​a​n​y​ ​i​s​s​u​e​s​ ​t​o​ ​G​i​t​H​u​b​ ​p​l​e​a​s​e​ ​g​e​t​ ​f​a​m​i​l​i​a​r​ ​w​i​t​h​ ​D​e​f​g​u​a​r​d​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​ ​a​v​a​i​l​a​b​l​e​ ​a​t​ ​[​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​]​(​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​)​ + ​ + ​T​o​ ​s​u​b​m​i​t​:​ + ​*​ ​B​u​g​s​ ​-​ ​p​l​e​a​s​e​ ​g​o​ ​t​o​ ​[​G​i​t​H​u​b​]​(​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​d​e​f​g​u​a​r​d​/​i​s​s​u​e​s​/​n​e​w​?​a​s​s​i​g​n​e​e​s​=​&​l​a​b​e​l​s​=​b​u​g​&​t​e​m​p​l​a​t​e​=​b​u​g​_​r​e​p​o​r​t​.​m​d​&​t​i​t​l​e​=​)​ + ​*​ ​F​e​a​t​u​r​e​ ​r​e​q​u​e​s​t​ ​-​ ​p​l​e​a​s​e​ ​g​o​ ​t​o​ ​[​G​i​t​H​u​b​]​(​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​d​e​f​g​u​a​r​d​/​i​s​s​u​e​s​/​n​e​w​?​a​s​s​i​g​n​e​e​s​=​&​l​a​b​e​l​s​=​f​e​a​t​u​r​e​&​t​e​m​p​l​a​t​e​=​f​e​a​t​u​r​e​_​r​e​q​u​e​s​t​.​m​d​&​t​i​t​l​e​=​)​ + ​ + ​A​n​y​ ​o​t​h​e​r​ ​r​e​q​u​e​s​t​s​ ​y​o​u​ ​c​a​n​ ​r​e​a​c​h​ ​u​s​ ​a​t​:​ ​s​u​p​p​o​r​t​@​d​e​f​g​u​a​r​d​.​n​e​t​ + + */ + body: string + } + } +} + +export type TranslationFunctions = { + common: { + conditions: { + /** + * or + */ + or: () => LocalizedString + /** + * and + */ + and: () => LocalizedString + /** + * equal + */ + equal: () => LocalizedString + } + controls: { + /** + * Next + */ + next: () => LocalizedString + /** + * Back + */ + back: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + /** + * Confirm + */ + confirm: () => LocalizedString + /** + * Submit + */ + submit: () => LocalizedString + /** + * Close + */ + close: () => LocalizedString + /** + * Select + */ + select: () => LocalizedString + /** + * Finish + */ + finish: () => LocalizedString + /** + * Save changes + */ + saveChanges: () => LocalizedString + /** + * Save + */ + save: () => LocalizedString + /** + * Restore default + */ + RestoreDefault: () => LocalizedString + /** + * Delete + */ + 'delete': () => LocalizedString + /** + * Rename + */ + rename: () => LocalizedString + /** + * Copy + */ + copy: () => LocalizedString + /** + * Edit + */ + edit: () => LocalizedString + } + /** + * Key + */ + key: () => LocalizedString + /** + * Name + */ + name: () => LocalizedString + } + messages: { + /** + * Error has occurred. + */ + error: () => LocalizedString + /** + * Operation succeeded + */ + success: () => LocalizedString + /** + * Failed to get application version. + */ + errorVersion: () => LocalizedString + /** + * Context is not secure. + */ + insecureContext: () => LocalizedString + /** + * Details: + */ + details: () => LocalizedString + clipboard: { + /** + * Clipboard is not accessible. + */ + error: () => LocalizedString + /** + * Content copied to clipboard. + */ + success: () => LocalizedString + } + } + modals: { + addGroup: { + /** + * Add group + */ + title: () => LocalizedString + /** + * Select all users + */ + selectAll: () => LocalizedString + /** + * Group name + */ + groupName: () => LocalizedString + /** + * Filter/Search + */ + searchPlaceholder: () => LocalizedString + /** + * Create group + */ + submit: () => LocalizedString + } + editGroup: { + /** + * Edit group + */ + title: () => LocalizedString + /** + * Select all users + */ + selectAll: () => LocalizedString + /** + * Group name + */ + groupName: () => LocalizedString + /** + * Filter/Search + */ + searchPlaceholder: () => LocalizedString + /** + * Update group + */ + submit: () => LocalizedString + } + deleteGroup: { + /** + * Delete group {name} + */ + title: (arg: { name: string }) => LocalizedString + /** + * This action will permanently delete this group. + */ + subTitle: () => LocalizedString + /** + * This group is currently assigned to following VPN Locations: + */ + locationListHeader: () => LocalizedString + /** + * If this is the only allowed group for a given location, the location will become accessible to all users. + */ + locationListFooter: () => LocalizedString + /** + * Delete group + */ + submit: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + } + deviceConfig: { + /** + * Device VPN configurations + */ + title: () => LocalizedString + } + changePasswordSelf: { + /** + * Change password + */ + title: () => LocalizedString + messages: { + /** + * Password has been changed + */ + success: () => LocalizedString + /** + * Failed to changed password + */ + error: () => LocalizedString + } + form: { + labels: { + /** + * New password + */ + newPassword: () => LocalizedString + /** + * Current password + */ + oldPassword: () => LocalizedString + /** + * Confirm new password + */ + repeat: () => LocalizedString + } + } + controls: { + /** + * Change password + */ + submit: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + } + } + startEnrollment: { + /** + * Start enrollment + */ + title: () => LocalizedString + /** + * Desktop activation + */ + desktopTitle: () => LocalizedString + messages: { + /** + * User enrollment started + */ + success: () => LocalizedString + /** + * Desktop configuration started + */ + successDesktop: () => LocalizedString + /** + * Failed to start user enrollment + */ + error: () => LocalizedString + /** + * Failed to start desktop activation + */ + errorDesktop: () => LocalizedString + } + form: { + email: { + /** + * Email + */ + label: () => LocalizedString + } + mode: { + options: { + /** + * Send token by email + */ + email: () => LocalizedString + /** + * Deliver token yourself + */ + manual: () => LocalizedString + } + } + /** + * Start enrollment + */ + submit: () => LocalizedString + /** + * Activate desktop + */ + submitDesktop: () => LocalizedString + /** + * Configure SMTP to send token by email. Go to Settings -> SMTP. + */ + smtpDisabled: () => LocalizedString + } + tokenCard: { + /** + * Activation token + */ + title: () => LocalizedString + } + urlCard: { + /** + * Defguard Instance URL + */ + title: () => LocalizedString + } + } + deleteNetwork: { + /** + * Delete {name} location + */ + title: (arg: { name: string }) => LocalizedString + /** + * This action will permanently delete this location. + */ + subTitle: () => LocalizedString + /** + * Delete location + */ + submit: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + } + changeWebhook: { + messages: { + /** + * Webhook changed. + */ + success: () => LocalizedString + } + } + manageWebAuthNKeys: { + /** + * Security keys + */ + title: () => LocalizedString + messages: { + /** + * WebAuthN key has been deleted. + */ + deleted: () => LocalizedString + /** + * Key is already registered + */ + duplicateKeyError: () => LocalizedString + } + /** + * +

+ Security keys can be used as your second factor of authentication + instead of a verification code. Learn more about configuring a + security key. +

+ + */ + infoMessage: () => LocalizedString + form: { + messages: { + /** + * Security key added. + */ + success: () => LocalizedString + } + fields: { + name: { + /** + * New key name + */ + label: () => LocalizedString + } + } + controls: { + /** + * Add new Key + */ + submit: () => LocalizedString + } + } + } + recoveryCodes: { + /** + * Recovery codes + */ + title: () => LocalizedString + /** + * I have saved my codes + */ + submit: () => LocalizedString + messages: { + /** + * Codes copied. + */ + copied: () => LocalizedString + } + /** + * +

+ Treat your recovery codes with the same level of attention as you + would your password! We recommend saving them with a password manager + such as Lastpass, bitwarden or Keeper. +

+ + */ + infoMessage: () => LocalizedString + } + registerTOTP: { + /** + * Authenticator App Setup + */ + title: () => LocalizedString + /** + * +

+ To setup your MFA, scan this QR code with your authenticator app, then + enter the code in the field below: +

+ + */ + infoMessage: () => LocalizedString + messages: { + /** + * TOTP path copied. + */ + totpCopied: () => LocalizedString + /** + * TOTP Enabled + */ + success: () => LocalizedString + } + /** + * Copy TOTP path + */ + copyPath: () => LocalizedString + form: { + fields: { + code: { + /** + * Authenticator code + */ + label: () => LocalizedString + /** + * Code is invalid + */ + error: () => LocalizedString + } + } + controls: { + /** + * Verify code + */ + submit: () => LocalizedString + } + } + } + registerEmailMFA: { + /** + * Email MFA Setup + */ + title: () => LocalizedString + /** + * +

+ To setup your MFA enter the code that was sent to your account email: {email} +

+ + */ + infoMessage: (arg: { email: string }) => LocalizedString + messages: { + /** + * Email MFA Enabled + */ + success: () => LocalizedString + /** + * Verification code resent + */ + resend: () => LocalizedString + } + form: { + fields: { + code: { + /** + * Email code + */ + label: () => LocalizedString + /** + * Code is invalid + */ + error: () => LocalizedString + } + } + controls: { + /** + * Verify code + */ + submit: () => LocalizedString + /** + * Resend email + */ + resend: () => LocalizedString + } + } + } + editDevice: { + /** + * Edit device + */ + title: () => LocalizedString + messages: { + /** + * Device has been updated. + */ + success: () => LocalizedString + } + form: { + fields: { + name: { + /** + * Device Name + */ + label: () => LocalizedString + } + publicKey: { + /** + * Device Public Key (WireGuard) + */ + label: () => LocalizedString + } + } + controls: { + /** + * Edit device + */ + submit: () => LocalizedString + } + } + } + deleteDevice: { + /** + * Delete device + */ + title: () => LocalizedString + /** + * Do you want to delete {deviceName} device ? + */ + message: (arg: { deviceName: unknown }) => LocalizedString + /** + * Delete device + */ + submit: () => LocalizedString + messages: { + /** + * Device has been deleted. + */ + success: () => LocalizedString + } + } + addWallet: { + /** + * Add wallet + */ + title: () => LocalizedString + /** + * In order to add a ETH wallet you will need to sign message. + */ + infoBox: () => LocalizedString + form: { + fields: { + name: { + /** + * Wallet name + */ + placeholder: () => LocalizedString + /** + * Name + */ + label: () => LocalizedString + } + address: { + /** + * Wallet address + */ + placeholder: () => LocalizedString + /** + * Address + */ + label: () => LocalizedString + } + } + controls: { + /** + * Add wallet + */ + submit: () => LocalizedString + } + } + } + keyDetails: { + /** + * YubiKey details + */ + title: () => LocalizedString + /** + * Download all keys + */ + downloadAll: () => LocalizedString + } + deleteUser: { + /** + * Delete account + */ + title: () => LocalizedString + controls: { + /** + * Delete account + */ + submit: () => LocalizedString + } + /** + * Do you want to delete {username} account permanently ? + */ + message: (arg: { username: string }) => LocalizedString + messages: { + /** + * {username} deleted. + */ + success: (arg: { username: string }) => LocalizedString + } + } + disableUser: { + /** + * Disable account + */ + title: () => LocalizedString + controls: { + /** + * Disable account + */ + submit: () => LocalizedString + } + /** + * Do you want to disable {username} account? + */ + message: (arg: { username: string }) => LocalizedString + messages: { + /** + * {username} disabled. + */ + success: (arg: { username: string }) => LocalizedString + } + } + enableUser: { + /** + * Enable account + */ + title: () => LocalizedString + controls: { + /** + * Enable account + */ + submit: () => LocalizedString + } + /** + * Do you want to enable {username} account? + */ + message: (arg: { username: string }) => LocalizedString + messages: { + /** + * {username} enabled. + */ + success: (arg: { username: string }) => LocalizedString + } + } + deleteProvisioner: { + /** + * Delete provisioner + */ + title: () => LocalizedString + controls: { + /** + * Delete provisioner + */ + submit: () => LocalizedString + } + /** + * Do you want to delete {id} provisioner? + */ + message: (arg: { id: string }) => LocalizedString + messages: { + /** + * {provisioner} deleted. + */ + success: (arg: { provisioner: string }) => LocalizedString + } + } + changeUserPassword: { + messages: { + /** + * Password changed. + */ + success: () => LocalizedString + } + /** + * Change user password + */ + title: () => LocalizedString + form: { + controls: { + /** + * Save new password + */ + submit: () => LocalizedString + } + fields: { + newPassword: { + /** + * New password + */ + label: () => LocalizedString + } + confirmPassword: { + /** + * Repeat password + */ + label: () => LocalizedString + } + } + } + } + provisionKeys: { + /** + * Yubikey provisioning: + */ + title: () => LocalizedString + /** + * Please be advised that this operation wll wipe openpgp application on yubikey and reconfigure it. + */ + warning: () => LocalizedString + /** + * The selected provisioner must have a clean YubiKey + plugged in be provisioned. To clean a used YubiKey + gpg --card-edit before provisioning. + */ + infoBox: () => LocalizedString + /** + * Select one of the following provisioners to provision a YubiKey: + */ + selectionLabel: () => LocalizedString + noData: { + /** + * No workers found, waiting... + */ + workers: () => LocalizedString + } + controls: { + /** + * Provision YubiKey + */ + submit: () => LocalizedString + } + messages: { + /** + * Keys provisioned + */ + success: () => LocalizedString + /** + * Error while getting worker status. + */ + errorStatus: () => LocalizedString + } + } + addUser: { + /** + * Add new user + */ + title: () => LocalizedString + messages: { + /** + * User added + */ + userAdded: () => LocalizedString + } + form: { + /** + * Add user + */ + submit: () => LocalizedString + fields: { + username: { + /** + * login + */ + placeholder: () => LocalizedString + /** + * Login + */ + label: () => LocalizedString + } + password: { + /** + * Password + */ + placeholder: () => LocalizedString + /** + * Password + */ + label: () => LocalizedString + } + email: { + /** + * User e-mail + */ + placeholder: () => LocalizedString + /** + * User e-mail + */ + label: () => LocalizedString + } + firstName: { + /** + * First name + */ + placeholder: () => LocalizedString + /** + * First name + */ + label: () => LocalizedString + } + lastName: { + /** + * Last name + */ + placeholder: () => LocalizedString + /** + * Last name + */ + label: () => LocalizedString + } + phone: { + /** + * Phone + */ + placeholder: () => LocalizedString + /** + * Phone + */ + label: () => LocalizedString + } + enableEnrollment: { + /** + * Use user self-enrollment process + */ + label: () => LocalizedString + /** + * more information here + */ + link: () => LocalizedString + } + } + } + } + webhookModal: { + title: { + /** + * Add webhook. + */ + addWebhook: () => LocalizedString + /** + * Edit webhook + */ + editWebhook: () => LocalizedString + } + messages: { + /** + * Client ID copied. + */ + clientIdCopy: () => LocalizedString + /** + * Client secret copied. + */ + clientSecretCopy: () => LocalizedString + } + form: { + /** + * Trigger events: + */ + triggers: () => LocalizedString + messages: { + /** + * Webhook created. + */ + successAdd: () => LocalizedString + /** + * Webhook modified. + */ + successModify: () => LocalizedString + } + error: { + /** + * URL is required. + */ + urlRequired: () => LocalizedString + /** + * Must be a valid URL. + */ + validUrl: () => LocalizedString + /** + * Must have at least one trigger. + */ + scopeValidation: () => LocalizedString + /** + * Token is required. + */ + tokenRequired: () => LocalizedString + } + fields: { + description: { + /** + * Description + */ + label: () => LocalizedString + /** + * Webhook to create gmail account on new user + */ + placeholder: () => LocalizedString + } + token: { + /** + * Secret token + */ + label: () => LocalizedString + /** + * Authorization token + */ + placeholder: () => LocalizedString + } + url: { + /** + * Webhook URL + */ + label: () => LocalizedString + /** + * https://example.com/webhook + */ + placeholder: () => LocalizedString + } + userCreated: { + /** + * New user Created + */ + label: () => LocalizedString + } + userDeleted: { + /** + * User deleted + */ + label: () => LocalizedString + } + userModified: { + /** + * User modified + */ + label: () => LocalizedString + } + hwkeyProvision: { + /** + * User Yubikey provision + */ + label: () => LocalizedString + } + } + } + } + deleteWebhook: { /** - * C​r​e​a​t​e​ ​l​o​c​a​t​i​o​n + * Delete webhook */ - wizard: string + title: () => LocalizedString /** - * U​s​e​r​s + * Do you want to delete {name} webhook ? */ - users: string + message: (arg: { name: string }) => LocalizedString /** - * S​e​t​t​i​n​g​s + * Delete */ - settings: string + submit: () => LocalizedString + messages: { + /** + * Webhook deleted. + */ + success: () => LocalizedString + } + } + } + addDevicePage: { + /** + * Add device + */ + title: () => LocalizedString + helpers: { + /** + * You can add a device using this wizard. Opt for our native application "defguard" or any other WireGuard client. If you're unsure, we recommend using defguard for simplicity. + */ + setupOpt: () => LocalizedString + /** + * Please download defguard desktop client here and then follow this guide. + */ + client: () => LocalizedString + } + messages: { + /** + * Device added + */ + deviceAdded: () => LocalizedString + } + steps: { + setupMethod: { + remote: { + /** + * Configure Desktop Client + */ + title: () => LocalizedString + /** + * A breeze to set up with just a single token. Download the client and enjoy straightforward security. + */ + subTitle: () => LocalizedString + /** + * Download defguard Client + */ + link: () => LocalizedString + } + manual: { + /** + * Manual WireGuard Client + */ + title: () => LocalizedString + /** + * For advanced users, get a unique config via download or QR code. Download the client and take control of your VPN setup. + */ + subTitle: () => LocalizedString + /** + * Download WireGuard Client + */ + link: () => LocalizedString + } + } + configDevice: { + /** + * Configure device + */ + title: () => LocalizedString + messages: { + /** + * Configuration has been copied to the clipboard + */ + copyConfig: () => LocalizedString + } + helpers: { + /** + * +

+ Please be advised that you have to download the configuration now, + since we do not store your private key. After this + page is closed, you will not be able to get your + full configuration file (with private keys, only blank template). +

+ + */ + warningAutoMode: () => LocalizedString + /** + * +

+ Please be advised that configuration provided here does not include private key and uses public key to fill it's place you will need to replace it on your own for configuration to work properly. +

+ + */ + warningManualMode: () => LocalizedString + /** + * You don't have access to any network. + */ + warningNoNetworks: () => LocalizedString + /** + * +

+ You can setup your device faster with wireguard application by scanning this QR code. +

+ */ + qrHelper: () => LocalizedString + } + /** + * Use provided configuration file below by scanning QR Code or importing it as file on your devices WireGuard instance. + */ + qrInfo: () => LocalizedString + /** + * Device Name + */ + inputNameLabel: () => LocalizedString + /** + * WireGuard Config File + */ + qrLabel: () => LocalizedString + } + setupDevice: { + /** + * Create VPN device + */ + title: () => LocalizedString + /** + * +

+ You need to configure WireGuardVPN on your device, please visit  + documentation if you don't know how to do it. +

+ + */ + infoMessage: (arg: { addDevicesDocs: string }) => LocalizedString + options: { + /** + * Generate key pair + */ + auto: () => LocalizedString + /** + * Use my own public key + */ + manual: () => LocalizedString + } + form: { + fields: { + name: { + /** + * Device Name + */ + label: () => LocalizedString + } + publicKey: { + /** + * Provide Your Public Key + */ + label: () => LocalizedString + } + } + errors: { + name: { + /** + * Device with this name already exists + */ + duplicatedName: () => LocalizedString + } + } + } + } + copyToken: { + /** + * Client activation + */ + title: () => LocalizedString + /** + * Activation token + */ + tokenCardTitle: () => LocalizedString + /** + * Defguard Instance URL + */ + urlCardTitle: () => LocalizedString + } + } + } + userPage: { + title: { + /** + * User Profile + */ + view: () => LocalizedString + /** + * Edit User Profile + */ + edit: () => LocalizedString + } + messages: { + /** + * User updated. + */ + editSuccess: () => LocalizedString + /** + * Could not get user information. + */ + failedToFetchUserData: () => LocalizedString + /** + * Password reset email has been sent. + */ + passwordResetEmailSent: () => LocalizedString + } + userDetails: { + /** + * Profile Details + */ + header: () => LocalizedString + messages: { + /** + * App and all tokens deleted. + */ + deleteApp: () => LocalizedString + } + warningModals: { + /** + * Warning + */ + title: () => LocalizedString + content: { + /** + * Changing the username has a significant impact on services the user has logged into using Defguard. After changing it, the user may lose access to applications (since they will not recognize them). Are you sure you want to proceed? + */ + usernameChange: () => LocalizedString + /** + * If you are using external OpenID Connect (OIDC) providers to authenticate users, changing a user's email address may have a significant impact on their ability to log in to Defguard. Are you sure you want to proceed? + */ + emailChange: () => LocalizedString + } + buttons: { + /** + * Proceed + */ + proceed: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + } + } + fields: { + username: { + /** + * Username + */ + label: () => LocalizedString + } + firstName: { + /** + * First name + */ + label: () => LocalizedString + } + lastName: { + /** + * Last name + */ + label: () => LocalizedString + } + phone: { + /** + * Phone number + */ + label: () => LocalizedString + } + email: { + /** + * E-mail + */ + label: () => LocalizedString + } + status: { + /** + * Status + */ + label: () => LocalizedString + /** + * Active + */ + active: () => LocalizedString + /** + * Disabled + */ + disabled: () => LocalizedString + } + groups: { + /** + * User groups + */ + label: () => LocalizedString + /** + * No groups + */ + noData: () => LocalizedString + } + apps: { + /** + * Authorized apps + */ + label: () => LocalizedString + /** + * No authorized apps + */ + noData: () => LocalizedString + } + } + } + userAuthInfo: { /** - * U​s​e​r​ ​P​r​o​f​i​l​e + * Password and authentication */ - user: string + header: () => LocalizedString + password: { + /** + * Password settings + */ + header: () => LocalizedString + /** + * Change password + */ + changePassword: () => LocalizedString + } + recovery: { + /** + * Recovery options + */ + header: () => LocalizedString + codes: { + /** + * Recovery Codes + */ + label: () => LocalizedString + /** + * Viewed + */ + viewed: () => LocalizedString + } + } + mfa: { + /** + * Two-factor methods + */ + header: () => LocalizedString + edit: { + /** + * Disable MFA + */ + disable: () => LocalizedString + } + messages: { + /** + * MFA disabled. + */ + mfaDisabled: () => LocalizedString + /** + * One time password disabled. + */ + OTPDisabled: () => LocalizedString + /** + * Email MFA disabled. + */ + EmailMFADisabled: () => LocalizedString + /** + * MFA method changed + */ + changeMFAMethod: () => LocalizedString + } + securityKey: { + /** + * security key + */ + singular: () => LocalizedString + /** + * security keys + */ + plural: () => LocalizedString + } + /** + * default + */ + 'default': () => LocalizedString + /** + * Enabled + */ + enabled: () => LocalizedString + /** + * Disabled + */ + disabled: () => LocalizedString + wallet: { + /** + * Wallet + */ + singular: () => LocalizedString + /** + * Wallets + */ + plural: () => LocalizedString + } + labels: { + /** + * Time based one time passwords + */ + totp: () => LocalizedString + /** + * Email + */ + email: () => LocalizedString + /** + * Security keys + */ + webauth: () => LocalizedString + /** + * Wallets + */ + wallets: () => LocalizedString + } + editMode: { + /** + * Enable + */ + enable: () => LocalizedString + /** + * Disable + */ + disable: () => LocalizedString + /** + * Make default + */ + makeDefault: () => LocalizedString + webauth: { + /** + * Manage security keys + */ + manage: () => LocalizedString + } + } + } + } + controls: { /** - * Y​u​b​i​k​e​y + * Edit profile */ - provisioners: string + editButton: () => LocalizedString /** - * W​e​b​h​o​o​k​s + * Delete account */ - webhooks: string + deleteAccount: () => LocalizedString + } + devices: { /** - * O​p​e​n​I​d​ ​A​p​p​s + * User devices */ - openId: string + header: () => LocalizedString + addDevice: { + /** + * Add new device + */ + web: () => LocalizedString + /** + * Add this device + */ + desktop: () => LocalizedString + } + card: { + labels: { + /** + * Public IP + */ + publicIP: () => LocalizedString + /** + * Connected through + */ + connectedThrough: () => LocalizedString + /** + * Connected date + */ + connectionDate: () => LocalizedString + /** + * Last connected from + */ + lastLocation: () => LocalizedString + /** + * Last connected + */ + lastConnected: () => LocalizedString + /** + * Assigned IP + */ + assignedIp: () => LocalizedString + /** + * active + */ + active: () => LocalizedString + /** + * Never connected + */ + noData: () => LocalizedString + } + edit: { + /** + * Edit device + */ + edit: () => LocalizedString + /** + * Delete device + */ + 'delete': () => LocalizedString + /** + * Show configuration + */ + showConfigurations: () => LocalizedString + } + } + } + wallets: { + messages: { + /** + * Address copied. + */ + addressCopied: () => LocalizedString + duplicate: { + /** + * Connected wallet is already registered + */ + primary: () => LocalizedString + /** + * Please connect unused wallet. + */ + sub: () => LocalizedString + } + } /** - * L​o​c​a​t​i​o​n​ ​O​v​e​r​v​i​e​w + * User wallets */ - overview: string + header: () => LocalizedString /** - * E​d​i​t​ ​L​o​c​a​t​i​o​n + * Add new wallet */ - networkSettings: string + addWallet: () => LocalizedString + card: { + /** + * Address + */ + address: () => LocalizedString + /** + * MFA + */ + mfaBadge: () => LocalizedString + edit: { + /** + * Enable MFA + */ + enableMFA: () => LocalizedString + /** + * Disable MFA + */ + disableMFA: () => LocalizedString + /** + * Delete + */ + 'delete': () => LocalizedString + /** + * Copy address + */ + copyAddress: () => LocalizedString + } + messages: { + /** + * Wallet deleted + */ + deleteSuccess: () => LocalizedString + /** + * Wallet MFA enabled + */ + enableMFA: () => LocalizedString + /** + * Wallet MFA disabled + */ + disableMFA: () => LocalizedString + } + } + } + yubiKey: { /** - * E​n​r​o​l​l​m​e​n​t + * User YubiKey */ - enrollment: string + header: () => LocalizedString /** - * S​u​p​p​o​r​t + * Provision a YubiKey */ - support: string + provision: () => LocalizedString + keys: { + /** + * PGP key + */ + pgp: () => LocalizedString + /** + * SSH key + */ + ssh: () => LocalizedString + } + noLicense: { + /** + * YubiKey module + */ + moduleName: () => LocalizedString + /** + * This is enterprise module for YubiKey + */ + line1: () => LocalizedString + /** + * management and provisioning. + */ + line2: () => LocalizedString + } } - /** - * C​o​p​y​r​i​g​h​t​ ​©​2​0​2​3​-​2​0​2​4 - */ - copyright: string - version: { + authenticationKeys: { /** - * A​p​p​l​i​c​a​t​i​o​n​ ​v​e​r​s​i​o​n​:​ ​{​v​e​r​s​i​o​n​} - * @param {string} version + * User Authentication Keys */ - open: RequiredParams<'version'> + header: () => LocalizedString /** - * v​{​v​e​r​s​i​o​n​} - * @param {string} version + * Add new Key */ - closed: RequiredParams<'version'> + addKey: () => LocalizedString + keysList: { + common: { + /** + * Rename + */ + rename: () => LocalizedString + /** + * Key + */ + key: () => LocalizedString + /** + * Download + */ + download: () => LocalizedString + /** + * Copy + */ + copy: () => LocalizedString + /** + * Serial Number + */ + serialNumber: () => LocalizedString + /** + * Delete + */ + 'delete': () => LocalizedString + } + } + deleteModal: { + /** + * Delete Authentication Key + */ + title: () => LocalizedString + /** + * Key {name} will be deleted permanently. + */ + confirmMessage: (arg: { name: string }) => LocalizedString + } + addModal: { + /** + * Add new Authentication Key + */ + header: () => LocalizedString + /** + * Key Type + */ + keyType: () => LocalizedString + keyForm: { + placeholders: { + /** + * Key Name + */ + title: () => LocalizedString + key: { + /** + * Begins with ssh-rsa, ecdsa-sha2-nistp256, ... + */ + ssh: () => LocalizedString + /** + * Begins with -----BEGIN PGP PUBLIC KEY BLOCK----- + */ + gpg: () => LocalizedString + } + } + labels: { + /** + * Name + */ + title: () => LocalizedString + /** + * Key + */ + key: () => LocalizedString + } + /** + * Add {name} key + */ + submit: (arg: { name: string }) => LocalizedString + } + yubikeyForm: { + selectWorker: { + /** + * Please be advised that this operation will wipe openpgp application on YubiKey and reconfigure it. + */ + info: () => LocalizedString + /** + * Select on of the following provisioners to provision a YubiKey + */ + selectLabel: () => LocalizedString + /** + * No workers are registered right now. + */ + noData: () => LocalizedString + /** + * Available + */ + available: () => LocalizedString + /** + * Unavailable + */ + unavailable: () => LocalizedString + } + provisioning: { + /** + * Provisioning in progress, please wait. + */ + inProgress: () => LocalizedString + /** + * Provisioning failed ! + */ + error: () => LocalizedString + /** + * Yubikey provisioned successfully + */ + success: () => LocalizedString + } + /** + * Provision Yubikey + */ + submit: () => LocalizedString + } + messages: { + /** + * Key added. + */ + keyAdded: () => LocalizedString + /** + * Key has already been added. + */ + keyExists: () => LocalizedString + /** + * Unsupported key format. + */ + unsupportedKeyFormat: () => LocalizedString + /** + * Could not add the key. Please try again later. + */ + genericError: () => LocalizedString + } + } } } - form: { - /** - * D​o​w​n​l​o​a​d - */ - download: string - /** - * C​o​p​y - */ - copy: string - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - saveChanges: string - /** - * S​u​b​m​i​t - */ - submit: string - /** - * S​i​g​n​ ​i​n - */ - login: string - /** - * C​a​n​c​e​l - */ - cancel: string + usersOverview: { /** - * C​l​o​s​e + * Users */ - close: string - placeholders: { - /** - * P​a​s​s​w​o​r​d - */ - password: string + pageTitle: () => LocalizedString + search: { /** - * U​s​e​r​n​a​m​e + * Find users */ - username: string + placeholder: () => LocalizedString } - error: { - /** - * F​i​e​l​d​ ​c​o​n​t​a​i​n​s​ ​f​o​r​b​i​d​d​e​n​ ​c​h​a​r​a​c​t​e​r​s​. - */ - forbiddenCharacter: string - /** - * U​s​e​r​n​a​m​e​ ​i​s​ ​a​l​r​e​a​d​y​ ​i​n​ ​u​s​e​. - */ - usernameTaken: string - /** - * K​e​y​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalidKey: string - /** - * F​i​e​l​d​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalid: string - /** - * F​i​e​l​d​ ​i​s​ ​r​e​q​u​i​r​e​d​. - */ - required: string - /** - * S​u​b​m​i​t​t​e​d​ ​c​o​d​e​ ​i​s​ ​i​n​v​a​l​i​d​. - */ - invalidCode: string - /** - * M​a​x​i​m​u​m​ ​l​e​n​g​t​h​ ​e​x​c​e​e​d​e​d​. - */ - maximumLength: string - /** - * M​i​n​i​m​u​m​ ​l​e​n​g​t​h​ ​n​o​t​ ​r​e​a​c​h​e​d​. - */ - minimumLength: string - /** - * N​o​ ​s​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​s​ ​a​r​e​ ​a​l​l​o​w​e​d​. - */ - noSpecialChars: string - /** - * O​n​e​ ​d​i​g​i​t​ ​r​e​q​u​i​r​e​d​. - */ - oneDigit: string - /** - * S​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. - */ - oneSpecial: string - /** - * O​n​e​ ​u​p​p​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. - */ - oneUppercase: string + filterLabels: { /** - * O​n​e​ ​l​o​w​e​r​c​a​s​e​ ​c​h​a​r​a​c​t​e​r​ ​r​e​q​u​i​r​e​d​. + * All users */ - oneLowercase: string + all: () => LocalizedString /** - * M​a​x​i​m​u​m​ ​p​o​r​t​ ​i​s​ ​6​5​5​3​5​. + * Admins only */ - portMax: string + admin: () => LocalizedString /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​e​n​d​p​o​i​n​t​. + * Users only */ - endpoint: string + users: () => LocalizedString + } + /** + * All users + */ + usersCount: () => LocalizedString + /** + * Add new + */ + addNewUser: () => LocalizedString + list: { + headers: { + /** + * User name + */ + name: () => LocalizedString + /** + * Login + */ + username: () => LocalizedString + /** + * Phone + */ + phone: () => LocalizedString + /** + * Actions + */ + actions: () => LocalizedString + } + editButton: { + /** + * Change password + */ + changePassword: () => LocalizedString + /** + * Edit account + */ + edit: () => LocalizedString + /** + * Add YubiKey + */ + addYubikey: () => LocalizedString + /** + * Add SSH Key + */ + addSSH: () => LocalizedString + /** + * Add GPG Key + */ + addGPG: () => LocalizedString + /** + * Delete account + */ + 'delete': () => LocalizedString + /** + * Start enrollment + */ + startEnrollment: () => LocalizedString + /** + * Configure Desktop Client + */ + activateDesktop: () => LocalizedString + /** + * Reset password + */ + resetPassword: () => LocalizedString + } + } + } + navigation: { + bar: { /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​a​d​d​r​e​s​s​. + * VPN Overview */ - address: string + overview: () => LocalizedString /** - * E​n​t​e​r​ ​a​ ​v​a​l​i​d​ ​p​o​r​t​. + * Users */ - validPort: string + users: () => LocalizedString /** - * C​o​d​e​ ​s​h​o​u​l​d​ ​h​a​v​e​ ​6​ ​d​i​g​i​t​s​. + * YubiKeys */ - validCode: string + provisioners: () => LocalizedString /** - * O​n​l​y​ ​v​a​l​i​d​ ​I​P​ ​o​r​ ​d​o​m​a​i​n​ ​i​s​ ​a​l​l​o​w​e​d​. + * Webhooks */ - allowedIps: string + webhooks: () => LocalizedString /** - * C​a​n​n​o​t​ ​s​t​a​r​t​ ​f​r​o​m​ ​n​u​m​b​e​r​. + * OpenID Apps */ - startFromNumber: string + openId: () => LocalizedString /** - * F​i​e​l​d​s​ ​d​o​n​'​t​ ​m​a​t​c​h​. + * My Profile */ - repeat: string + myProfile: () => LocalizedString /** - * E​x​p​e​c​t​e​d​ ​a​ ​v​a​l​i​d​ ​n​u​m​b​e​r​. + * Settings */ - number: string + settings: () => LocalizedString /** - * M​i​n​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​n​o​t​ ​r​e​a​c​h​e​d​. - * @param {number} value + * Log out */ - minimumValue: RequiredParams<'value'> + logOut: () => LocalizedString /** - * M​a​x​i​m​u​m​ ​v​a​l​u​e​ ​o​f​ ​{​v​a​l​u​e​}​ ​e​x​c​e​e​d​e​d​. - * @param {number} value + * Enrollment */ - maximumValue: RequiredParams<'value'> + enrollment: () => LocalizedString /** - * T​o​o​ ​m​a​n​y​ ​b​a​d​ ​l​o​g​i​n​ ​a​t​t​e​m​p​t​s​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​ ​i​n​ ​a​ ​f​e​w​ ​m​i​n​u​t​e​s​. + * Support */ - tooManyBadLoginAttempts: string - } - floatingErrors: { + support: () => LocalizedString /** - * P​l​e​a​s​e​ ​c​o​r​r​e​c​t​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​: + * Groups */ - title: string + groups: () => LocalizedString } - } - components: { - deviceConfigsCard: { + mobileTitles: { /** - * W​i​r​e​G​u​a​r​d​ ​C​o​n​f​i​g​ ​f​o​r​ ​l​o​c​a​t​i​o​n​: + * Groups */ - cardTitle: string - messages: { - /** - * C​o​n​f​i​g​u​r​a​t​i​o​n​ ​c​o​p​i​e​d​ ​t​o​ ​t​h​e​ ​c​l​i​p​b​o​a​r​d - */ - copyConfig: string - } - } - gatewaysStatus: { + groups: () => LocalizedString /** - * G​a​t​e​w​a​y​s + * Create location */ - label: string - states: { - /** - * A​l​l​ ​c​o​n​n​e​c​t​e​d - */ - connected: string - /** - * O​n​e​ ​o​r​ ​m​o​r​e​ ​a​r​e​ ​n​o​t​ ​w​o​r​k​i​n​g - */ - partial: string - /** - * D​i​s​c​o​n​n​e​c​t​e​d - */ - disconnected: string - /** - * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s​ ​f​a​i​l​e​d - */ - error: string - /** - * R​e​t​r​i​e​v​i​n​g​ ​c​o​n​n​e​c​t​i​o​n​s - */ - loading: string - } - messages: { - /** - * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​g​a​t​e​w​a​y​s​ ​s​t​a​t​u​s - */ - error: string - /** - * F​a​i​l​e​d​ ​t​o​ ​d​e​l​e​t​e​ ​g​a​t​e​w​a​y - */ - deleteError: string - } - } - noLicenseBox: { - footer: { - /** - * G​e​t​ ​a​n​ ​e​n​t​e​r​p​r​i​s​e​ ​l​i​c​e​n​s​e - */ - get: string - /** - * b​y​ ​c​o​n​t​a​c​t​i​n​g​: - */ - contact: string - } - } - } - settingsPage: { - /** - * S​e​t​t​i​n​g​s - */ - title: string - tabs: { + wizard: () => LocalizedString /** - * S​M​T​P + * Users */ - smtp: string + users: () => LocalizedString /** - * G​l​o​b​a​l​ ​s​e​t​t​i​n​g​s + * Settings */ - global: string + settings: () => LocalizedString /** - * L​D​A​P + * User Profile */ - ldap: string + user: () => LocalizedString /** - * O​p​e​n​I​D + * Yubikey */ - openid: string + provisioners: () => LocalizedString /** - * E​n​t​e​r​p​r​i​s​e​ ​f​e​a​t​u​r​e​s + * Webhooks */ - enterprise: string - } - messages: { + webhooks: () => LocalizedString /** - * S​e​t​t​i​n​g​s​ ​u​p​d​a​t​e​d + * OpenId Apps */ - editSuccess: string + openId: () => LocalizedString /** - * C​h​a​l​l​e​n​g​e​ ​m​e​s​s​a​g​e​ ​c​h​a​n​g​e​d + * Location Overview */ - challengeSuccess: string - } - enterpriseOnly: { + overview: () => LocalizedString /** - * T​h​i​s​ ​f​e​a​t​u​r​e​ ​i​s​ ​a​v​a​i​l​a​b​l​e​ ​o​n​l​y​ ​i​n​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​. + * Edit Location */ - title: string + networkSettings: () => LocalizedString /** - * T​o​ ​l​e​a​r​n​ ​m​o​r​e​,​ ​v​i​s​i​t​ ​o​u​r​ + * Enrollment */ - subtitle: string + enrollment: () => LocalizedString /** - * w​e​b​s​i​t​e + * Support */ - website: string + support: () => LocalizedString } - ldapSettings: { + /** + * Copyright ©2023-2024 + */ + copyright: () => LocalizedString + version: { /** - * L​D​A​P​ ​S​e​t​t​i​n​g​s + * Application version: {version} */ - title: string - form: { - labels: { - /** - * U​R​L - */ - ldap_url: string - /** - * B​i​n​d​ ​U​s​e​r​n​a​m​e - */ - ldap_bind_username: string - /** - * B​i​n​d​ ​P​a​s​s​w​o​r​d - */ - ldap_bind_password: string - /** - * M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e - */ - ldap_member_attr: string - /** - * U​s​e​r​n​a​m​e​ ​A​t​t​r​i​b​u​t​e - */ - ldap_username_attr: string - /** - * U​s​e​r​ ​O​b​j​e​c​t​ ​C​l​a​s​s - */ - ldap_user_obj_class: string - /** - * U​s​e​r​ ​S​e​a​r​c​h​ ​B​a​s​e - */ - ldap_user_search_base: string - /** - * G​r​o​u​p​n​a​m​e​ ​A​t​t​r​i​b​u​t​e - */ - ldap_groupname_attr: string - /** - * G​r​o​u​p​ ​S​e​a​r​c​h​ ​B​a​s​e - */ - ldap_group_search_base: string - /** - * G​r​o​u​p​ ​M​e​m​b​e​r​ ​A​t​t​r​i​b​u​t​e - */ - ldap_group_member_attr: string - /** - * G​r​o​u​p​ ​O​b​j​e​c​t​ ​C​l​a​s​s - */ - ldap_group_obj_class: string - } - /** - * D​e​l​e​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - 'delete': string - } - test: { - /** - * T​e​s​t​ ​L​D​A​P​ ​C​o​n​n​e​c​t​i​o​n - */ - title: string - /** - * T​e​s​t - */ - submit: string - messages: { - /** - * L​D​A​P​ ​c​o​n​n​e​c​t​e​d​ ​s​u​c​c​e​s​s​f​u​l​l​y - */ - success: string - /** - * L​D​A​P​ ​c​o​n​n​e​c​t​i​o​n​ ​r​e​j​e​c​t​e​d - */ - error: string - } - } + open: (arg: { version: string }) => LocalizedString + /** + * v{version} + */ + closed: (arg: { version: string }) => LocalizedString } - openIdSettings: { - general: { - /** - * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​S​e​t​t​i​n​g​s - */ - title: string - /** - * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​g​e​n​e​r​a​l​ ​O​p​e​n​I​D​ ​b​e​h​a​v​i​o​r​ ​i​n​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​i​n​s​t​a​n​c​e​. - */ - helper: string - createAccount: { - /** - * A​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​w​h​e​n​ ​l​o​g​g​i​n​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​t​h​r​o​u​g​h​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​. - */ - label: string - /** - * I​f​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​D​e​f​g​u​a​r​d​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​c​r​e​a​t​e​s​ ​n​e​w​ ​a​c​c​o​u​n​t​s​ ​f​o​r​ ​u​s​e​r​s​ ​w​h​o​ ​l​o​g​ ​i​n​ ​f​o​r​ ​t​h​e​ ​f​i​r​s​t​ ​t​i​m​e​ ​u​s​i​n​g​ ​a​n​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​O​t​h​e​r​w​i​s​e​,​ ​t​h​e​ ​u​s​e​r​ ​a​c​c​o​u​n​t​ ​m​u​s​t​ ​f​i​r​s​t​ ​b​e​ ​c​r​e​a​t​e​d​ ​b​y​ ​a​n​ ​a​d​m​i​n​i​s​t​r​a​t​o​r​. - */ - helper: string - } - } - form: { - /** - * E​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​C​l​i​e​n​t​ ​S​e​t​t​i​n​g​s - */ - title: string - /** - * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​t​h​e​ ​O​p​e​n​I​D​ ​c​l​i​e​n​t​ ​s​e​t​t​i​n​g​s​ ​w​i​t​h​ ​v​a​l​u​e​s​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string - /** - * C​u​s​t​o​m - */ - custom: string - /** - * D​o​c​u​m​e​n​t​a​t​i​o​n - */ - documentation: string - /** - * D​e​l​e​t​e​ ​p​r​o​v​i​d​e​r - */ - 'delete': string - labels: { - provider: { - /** - * P​r​o​v​i​d​e​r - */ - label: string - /** - * S​e​l​e​c​t​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​.​ ​Y​o​u​ ​c​a​n​ ​u​s​e​ ​c​u​s​t​o​m​ ​p​r​o​v​i​d​e​r​ ​a​n​d​ ​f​i​l​l​ ​i​n​ ​t​h​e​ ​b​a​s​e​ ​U​R​L​ ​b​y​ ​y​o​u​r​s​e​l​f​. - */ - helper: string - } - client_id: { - /** - * C​l​i​e​n​t​ ​I​D - */ - label: string - /** - * C​l​i​e​n​t​ ​I​D​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string - } - client_secret: { - /** - * C​l​i​e​n​t​ ​S​e​c​r​e​t - */ - label: string - /** - * C​l​i​e​n​t​ ​S​e​c​r​e​t​ ​p​r​o​v​i​d​e​d​ ​b​y​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​. - */ - helper: string - } - base_url: { - /** - * B​a​s​e​ ​U​R​L - */ - label: string - /** - * B​a​s​e​ ​U​R​L​ ​o​f​ ​y​o​u​r​ ​O​p​e​n​I​D​ ​p​r​o​v​i​d​e​r​,​ ​e​.​g​.​ ​h​t​t​p​s​:​/​/​a​c​c​o​u​n​t​s​.​g​o​o​g​l​e​.​c​o​m​.​ ​M​a​k​e​ ​s​u​r​e​ ​t​o​ ​c​h​e​c​k​ ​o​u​r​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​ ​f​o​r​ ​m​o​r​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​a​n​d​ ​e​x​a​m​p​l​e​s​. - */ - helper: string - } - } - } + } + form: { + /** + * Download + */ + download: () => LocalizedString + /** + * Copy + */ + copy: () => LocalizedString + /** + * Save changes + */ + saveChanges: () => LocalizedString + /** + * Submit + */ + submit: () => LocalizedString + /** + * Sign in + */ + login: () => LocalizedString + /** + * Cancel + */ + cancel: () => LocalizedString + /** + * Close + */ + close: () => LocalizedString + placeholders: { + /** + * Password + */ + password: () => LocalizedString + /** + * Username + */ + username: () => LocalizedString } - modulesVisibility: { + error: { + /** + * Field contains forbidden characters. + */ + forbiddenCharacter: () => LocalizedString /** - * M​o​d​u​l​e​s​ ​V​i​s​i​b​i​l​i​t​y + * Username is already in use. */ - header: string + usernameTaken: () => LocalizedString /** ->>>>>>> dev - * <​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​I​f​ ​y​o​u​r​ ​n​o​t​ ​u​s​i​n​g​ ​s​o​m​e​ ​m​o​d​u​l​e​s​ ​y​o​u​ ​c​a​n​ ​d​i​s​a​b​l​e​ ​t​h​e​i​r​ ​v​i​s​i​b​i​l​i​t​y​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​> - * @param {string} documentationLink + * Key is invalid. */ - helper: RequiredParams<'documentationLink'>; - fields: { - wireguard_enabled: { - /** - * W​i​r​e​G​u​a​r​d​ ​V​P​N - */ - label: string; - }; - webhooks_enabled: { - /** - * W​e​b​h​o​o​k​s - */ - label: string; - }; - worker_enabled: { - /** - * Y​u​b​i​k​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g - */ - label: string; - }; - openid_enabled: { - /** - * O​p​e​n​I​D​ ​C​o​n​n​e​c​t - */ - label: string; - }; - }; - }; - defaultNetworkSelect: { - /** - * D​e​f​a​u​l​t​ ​l​o​c​a​t​i​o​n​ ​v​i​e​w - */ - header: string; - /** - * <​p​>​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​y​o​u​r​ ​d​e​f​a​u​l​t​ ​l​o​c​a​t​i​o​n​ ​v​i​e​w​.​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​> - * @param {string} documentationLink + invalidKey: () => LocalizedString + /** + * Field is invalid. */ - helper: RequiredParams<'documentationLink'>; - filterLabels: { - /** - * G​r​i​d​ ​v​i​e​w - */ - grid: string; - /** - * L​i​s​t​ ​v​i​e​w - */ - list: string; - }; - }; - web3Settings: { - /** - * W​e​b​3​ ​/​ ​W​a​l​l​e​t​ ​c​o​n​n​e​c​t - */ - header: string; - fields: { - signMessage: { - /** - * D​e​f​a​u​l​t​ ​s​i​g​n​ ​m​e​s​s​a​g​e​ ​t​e​m​p​l​a​t​e - */ - label: string; - }; - }; - controls: { - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - save: string; - }; - }; - instanceBranding: { - /** - * I​n​s​t​a​n​c​e​ ​B​r​a​n​d​i​n​g - */ - header: string; - form: { - /** - * N​a​m​e​ ​&​ ​L​o​g​o​: - */ - title: string; - fields: { - instanceName: { - /** - * I​n​s​t​a​n​c​e​ ​n​a​m​e - */ - label: string; - /** - * D​e​f​g​u​a​r​d - */ - placeholder: string; - }; - mainLogoUrl: { - /** - * L​o​g​i​n​ ​l​o​g​o​ ​u​r​l - */ - label: string; - /** - * <​p​>​M​a​x​i​m​u​m​ ​p​i​c​t​u​r​e​ ​s​i​z​e​ ​i​s​ ​2​5​0​x​1​0​0​ ​ ​p​x​<​/​p​> - */ - helper: string; - /** - * D​e​f​a​u​l​t​ ​i​m​a​g​e - */ - placeholder: string; - }; - navLogoUrl: { - /** - * M​e​n​u​ ​&​ ​n​a​v​i​g​a​t​i​o​n​ ​s​m​a​l​l​ ​l​o​g​o - */ - label: string; - /** - * <​p​>​M​a​x​i​m​u​m​ ​p​i​c​t​u​r​e​ ​s​i​z​e​ ​i​s​ ​1​0​0​x​1​0​0​ ​p​x​<​/​p​> - */ - helper: string; - /** - * D​e​f​a​u​l​t​ ​i​m​a​g​e - */ - placeholder: string; - }; - }; - controls: { - /** - * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t - */ - restoreDefault: string; - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - submit: string; - }; - }; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​a​d​d​ ​u​r​l​ ​o​f​ ​y​o​u​r​ ​l​o​g​o​ ​a​n​d​ ​n​a​m​e​ ​f​o​r​ ​y​o​u​r​ ​d​e​f​g​u​a​r​d​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​i​n​s​t​a​n​c​e​ ​i​t​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​i​n​s​t​e​a​d​ ​o​f​ ​d​e​f​g​u​a​r​d​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​a​ ​h​r​e​f​=​"​{​d​o​c​u​m​e​n​t​a​t​i​o​n​L​i​n​k​}​"​ ​t​a​r​g​e​t​=​"​_​b​l​a​n​k​"​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​R​e​a​d​ ​m​o​r​e​ ​i​n​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​a​>​ - ​ ​ ​ - * @param {string} documentationLink + invalid: () => LocalizedString + /** + * Field is required. */ - helper: RequiredParams<'documentationLink'>; - }; - license: { - /** - * E​n​t​e​r​p​r​i​s​e - */ - header: string; - helpers: { - enterpriseHeader: { - /** - * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​m​a​n​a​g​e​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​ ​v​e​r​s​i​o​n​ ​l​i​c​e​n​s​e​. - */ - text: string; - /** - * T​o​ ​l​e​a​r​n​ ​m​o​r​e​ ​a​b​o​u​t​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​,​ ​v​i​s​i​t​ ​o​u​r​ ​w​e​b​i​s​t​e​. - */ - link: string; - }; - licenseKey: { - /** - * E​n​t​e​r​ ​y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​E​n​t​e​r​p​r​i​s​e​ ​l​i​c​e​n​s​e​ ​k​e​y​ ​b​e​l​o​w​.​ ​Y​o​u​ ​s​h​o​u​l​d​ ​r​e​c​e​i​v​e​ ​i​t​ ​v​i​a​ ​e​m​a​i​l​ ​a​f​t​e​r​ ​p​u​r​c​h​a​s​i​n​g​ ​t​h​e​ ​l​i​c​e​n​s​e​. - */ - text: string; - /** - * Y​o​u​ ​c​a​n​ ​p​u​r​c​h​a​s​e​ ​t​h​e​ ​l​i​c​e​n​s​e​ ​h​e​r​e​. - */ - link: string; - }; - }; - form: { - /** - * L​i​c​e​n​s​e - */ - title: string; - fields: { - key: { - /** - * L​i​c​e​n​s​e​ ​k​e​y - */ - label: string; - /** - * Y​o​u​r​ ​D​e​f​g​u​a​r​d​ ​l​i​c​e​n​s​e​ ​k​e​y - */ - placeholder: string; - }; - }; - }; - licenseInfo: { - /** - * L​i​c​e​n​s​e​ ​i​n​f​o​r​m​a​t​i​o​n - */ - title: string; - /** - * N​o​ ​l​i​c​e​n​s​e - */ - noLicense: string; - types: { - subscription: { - /** - * S​u​b​s​c​r​i​p​t​i​o​n - */ - label: string; - /** - * A​ ​l​i​c​e​n​s​e​ ​t​h​a​t​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​r​e​n​e​w​s​ ​a​t​ ​r​e​g​u​l​a​r​ ​i​n​t​e​r​v​a​l​s - */ - helper: string; - }; - offline: { - /** - * O​f​f​l​i​n​e - */ - label: string; - /** - * T​h​e​ ​l​i​c​e​n​s​e​ ​i​s​ ​v​a​l​i​d​ ​u​n​t​i​l​ ​t​h​e​ ​e​x​p​i​r​y​ ​d​a​t​e​ ​a​n​d​ ​d​o​e​s​ ​n​o​t​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​r​e​n​e​w - */ - helper: string; - }; - }; - fields: { - type: { - /** - * T​y​p​e - */ - label: string; - }; - validUntil: { - /** - * V​a​l​i​d​ ​u​n​t​i​l - */ - label: string; - }; - }; - }; - }; - smtp: { - form: { - /** - * S​M​T​P​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - title: string; - fields: { - encryption: { - /** - * E​n​c​r​y​p​t​i​o​n - */ - label: string; - }; - server: { - /** - * S​e​r​v​e​r​ ​a​d​d​r​e​s​s - */ - label: string; - /** - * A​d​d​r​e​s​s - */ - placeholder: string; - }; - port: { - /** - * S​e​r​v​e​r​ ​p​o​r​t - */ - label: string; - /** - * P​o​r​t - */ - placeholder: string; - }; - user: { - /** - * S​e​r​v​e​r​ ​u​s​e​r​n​a​m​e - */ - label: string; - /** - * U​s​e​r​n​a​m​e - */ - placeholder: string; - }; - password: { - /** - * S​e​r​v​e​r​ ​p​a​s​s​w​o​r​d - */ - label: string; - /** - * P​a​s​s​w​o​r​d - */ - placeholder: string; - }; - sender: { - /** - * S​e​n​d​e​r​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s - */ - label: string; - /** - * A​d​d​r​e​s​s - */ - placeholder: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​S​y​s​t​e​m​ ​m​e​s​s​a​g​e​s​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​f​r​o​m​ ​t​h​i​s​ ​a​d​d​r​e​s​s​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​E​.​g​.​ ​n​o​-​r​e​p​l​y​@​m​y​-​c​o​m​p​a​n​y​.​c​o​m​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ - */ - helper: string; - }; - }; - controls: { - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - submit: string; - }; - }; - /** - * D​e​l​e​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - delete: string; - testForm: { - /** - * S​e​n​d​ ​t​e​s​t​ ​e​m​a​i​l - */ - title: string; - fields: { - to: { - /** - * A​d​d​r​e​s​s - */ - label: string; - /** - * A​d​d​r​e​s​s - */ - placeholder: string; - }; - }; - controls: { - /** - * S​e​n​d - */ - submit: string; - /** - * T​e​s​t​ ​e​m​a​i​l​ ​s​e​n​t - */ - success: string; - /** - * E​r​r​o​r​ ​s​e​n​d​i​n​g​ ​e​m​a​i​l - */ - error: string; - }; - }; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​s​e​r​v​e​r​ ​u​s​e​d​ ​t​o​ ​s​e​n​d​ ​s​y​s​t​e​m​ ​m​e​s​s​a​g​e​s​ ​t​o​ ​t​h​e​ ​u​s​e​r​s​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​p​>​ - ​ ​ ​ + required: () => LocalizedString + /** + * Submitted code is invalid. */ - helper: string; - }; - enrollment: { - /** - * E​n​r​o​l​l​m​e​n​t​ ​i​s​ ​a​ ​p​r​o​c​e​s​s​ ​b​y​ ​w​h​i​c​h​ ​a​ ​n​e​w​ ​e​m​p​l​o​y​e​e​ ​w​i​l​l​ ​b​e​ ​a​b​l​e​ ​t​o​ ​a​c​t​i​v​a​t​e​ ​t​h​e​i​r​ ​n​e​w​ ​a​c​c​o​u​n​t​,​ ​c​r​e​a​t​e​ ​a​ ​p​a​s​s​w​o​r​d​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​. - */ - helper: string; - vpnOptionality: { - /** - * V​P​N​ ​s​t​e​p​ ​o​p​t​i​o​n​a​l​i​t​y - */ - header: string; - /** - * Y​o​u​ ​c​a​n​ ​c​h​o​o​s​e​ ​w​h​e​t​h​e​r​ ​c​r​e​a​t​i​n​g​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​ ​i​s​ ​o​p​t​i​o​n​a​l​ ​o​r​ ​m​a​n​d​a​t​o​r​y​ ​d​u​r​i​n​g​ ​e​n​r​o​l​l​m​e​n​t - */ - helper: string; - }; - welcomeMessage: { - /** - * W​e​l​c​o​m​e​ ​m​e​s​s​a​g​e - */ - header: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​I​n​ ​t​h​i​s​ ​t​e​x​t​ ​i​n​p​u​t​ ​y​o​u​ ​c​a​n​ ​u​s​e​ ​M​a​r​k​d​o​w​n​:​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​u​l​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​H​e​a​d​i​n​g​s​ ​s​t​a​r​t​ ​w​i​t​h​ ​a​ ​h​a​s​h​ ​#​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​i​>​*​i​t​a​l​i​c​s​*​<​/​i​>​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​t​w​o​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​b​>​*​*​b​o​l​d​*​*​<​/​b​>​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​u​l​>​ - ​ ​ ​ ​ ​ ​ ​ ​ - */ - helper: string; - }; - welcomeEmail: { - /** - * W​e​l​c​o​m​e​ ​e​-​m​a​i​l - */ - header: string; - /** - * - ​ ​ ​ ​ ​ ​ ​ ​ ​<​p​>​I​n​ ​t​h​i​s​ ​t​e​x​t​ ​i​n​p​u​t​ ​y​o​u​ ​c​a​n​ ​u​s​e​ ​M​a​r​k​d​o​w​n​:​<​/​p​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​u​l​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​H​e​a​d​i​n​g​s​ ​s​t​a​r​t​ ​w​i​t​h​ ​a​ ​h​a​s​h​ ​#​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​i​>​*​i​t​a​l​i​c​s​*​<​/​i​>​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​<​l​i​>​U​s​e​ ​t​w​o​ ​a​s​t​e​r​i​s​k​s​ ​f​o​r​ ​<​b​>​*​*​b​o​l​d​*​*​<​/​b​>​<​/​l​i​>​ - ​ ​ ​ ​ ​ ​ ​ ​ ​<​/​u​l​>​ - ​ ​ ​ ​ ​ ​ ​ ​ - */ - helper: string; - }; - form: { - controls: { - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - submit: string; - }; - welcomeMessage: { - /** - * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​f​o​r​ ​t​h​e​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​y​o​u​ ​t​o​ ​i​n​s​e​r​t​ ​r​e​l​e​v​a​n​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​. - */ - helper: string; - /** - * P​l​e​a​s​e​ ​i​n​p​u​t​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e - */ - placeholder: string; - }; - welcomeEmail: { - /** - * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​t​o​ ​t​h​e​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​y​o​u​ ​t​o​ ​i​n​s​e​r​t​ ​r​e​l​e​v​a​n​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​.​ ​Y​o​u​ ​c​a​n​ ​r​e​u​s​e​ ​t​h​e​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e​ ​h​e​r​e​. - */ - helper: string; - /** - * P​l​e​a​s​e​ ​i​n​p​u​t​ ​w​e​l​c​o​m​e​ ​e​m​a​i​l - */ - placeholder: string; - }; - welcomeEmailSubject: { - /** - * S​u​b​j​e​c​t - */ - label: string; - }; - useMessageAsEmail: { - /** - * S​a​m​e​ ​a​s​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e - */ - label: string; - }; - }; - }; - enterprise: { - /** - * E​n​t​e​r​p​r​i​s​e​ ​F​e​a​t​u​r​e​s - */ - header: string; - /** - * <​p​>​H​e​r​e​ ​y​o​u​ ​c​a​n​ ​c​h​a​n​g​e​ ​e​n​t​e​r​p​r​i​s​e​ ​s​e​t​t​i​n​g​s​.​<​/​p​> - */ - helper: string; - fields: { - deviceManagement: { - /** - * D​i​s​a​b​l​e​ ​u​s​e​r​s​ ​a​b​i​l​i​t​y​ ​t​o​ ​m​a​n​a​g​e​ ​t​h​e​i​r​ ​d​e​v​i​c​e​s - */ - label: string; - /** - * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​o​n​l​y​ ​u​s​e​r​s​ ​i​n​ ​t​h​e​ ​A​d​m​i​n​ ​g​r​o​u​p​ ​c​a​n​ ​m​a​n​a​g​e​ ​d​e​v​i​c​e​s​ ​i​n​ ​u​s​e​r​ ​p​r​o​f​i​l​e​ ​(​i​t​'​s​ ​d​i​s​a​b​l​e​d​ ​f​o​r​ ​a​l​l​ ​o​t​h​e​r​ ​u​s​e​r​s​) - */ - helper: string; - }; - manualConfig: { - /** - * D​i​s​a​b​l​e​ ​u​s​e​r​s​ ​a​b​i​l​i​t​y​ ​t​o​ ​d​o​w​n​l​o​a​d​ ​m​a​n​u​a​l​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - label: string; - /** - * W​h​e​n​ ​t​h​i​s​ ​o​p​t​i​o​n​ ​i​s​ ​e​n​a​b​l​e​d​,​ ​u​s​e​r​s​ ​w​o​n​'​t​ ​b​e​ ​p​r​e​s​e​n​t​e​d​ ​w​i​t​h​ ​a​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​o​r​ ​m​a​n​u​a​l​ ​c​l​i​e​n​t​ ​s​e​t​u​p - */ - helper: string; - }; - }; - }; - }; - openidOverview: { - /** - * O​p​e​n​I​D​ ​A​p​p​s - */ - pageTitle: string; - search: { - /** - * F​i​n​d​ ​a​p​p​s - */ - placeholder: string; - }; - filterLabels: { - /** - * A​l​l​ ​a​p​p​s - */ - all: string; - /** - * E​n​a​b​l​e​d - */ - enabled: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - }; - /** - * A​l​l​ ​a​p​p​s - */ - clientCount: string; - /** - * A​d​d​ ​n​e​w - */ - addNewApp: string; - list: { - headers: { - /** - * N​a​m​e - */ - name: string; - /** - * S​t​a​t​u​s - */ - status: string; - /** - * A​c​t​i​o​n​s - */ - actions: string; - }; - editButton: { - /** - * E​d​i​t​ ​a​p​p - */ - edit: string; - /** - * D​e​l​e​t​e​ ​a​p​p - */ - delete: string; - /** - * D​i​s​a​b​l​e - */ - disable: string; - /** - * E​n​a​b​l​e - */ - enable: string; - /** - * C​o​p​y​ ​c​l​i​e​n​t​ ​I​D - */ - copy: string; - }; - status: { - /** - * E​n​a​b​l​e​d - */ - enabled: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - }; - }; - messages: { - /** - * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. - */ - copySuccess: string; - /** - * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​ ​l​i​c​e​n​s​e​ ​f​o​r​ ​t​h​i​s​ ​f​e​a​t​u​r​e​. - */ - noLicenseMessage: string; - /** - * N​o​ ​r​e​s​u​l​t​s​ ​f​o​u​n​d​. - */ - noClientsFound: string; - }; - deleteApp: { - /** - * D​e​l​e​t​e​ ​a​p​p - */ - title: string; - /** - * D​o​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​d​e​l​e​t​e​ ​{​a​p​p​N​a​m​e​}​ ​a​p​p​ ​? - * @param {string} appName - */ - message: RequiredParams<'appName'>; - /** - * D​e​l​e​t​e​ ​a​p​p - */ - submit: string; - messages: { - /** - * A​p​p​ ​d​e​l​e​t​e​d​. - */ - success: string; - }; - }; - enableApp: { - messages: { - /** - * A​p​p​ ​e​n​a​b​l​e​d​. - */ - success: string; - }; - }; - disableApp: { - messages: { - /** - * A​p​p​ ​d​i​s​a​b​l​e​d​. - */ - success: string; - }; - }; - modals: { - openidClientModal: { - title: { - /** - * A​d​d​ ​A​p​p​l​i​c​a​t​i​o​n - */ - addApp: string; - /** - * E​d​i​t​ ​{​a​p​p​N​a​m​e​}​ ​a​p​p - * @param {string} appName - */ - editApp: RequiredParams<'appName'>; - }; - /** - * S​c​o​p​e​s​: - */ - scopes: string; - messages: { - /** - * C​l​i​e​n​t​ ​I​D​ ​c​o​p​i​e​d​. - */ - clientIdCopy: string; - /** - * C​l​i​e​n​t​ ​s​e​c​r​e​t​ ​c​o​p​i​e​d​. - */ - clientSecretCopy: string; - }; - form: { - messages: { - /** - * A​p​p​ ​c​r​e​a​t​e​d​. - */ - successAdd: string; - /** - * A​p​p​ ​m​o​d​i​f​i​e​d​. - */ - successModify: string; - }; - error: { - /** - * U​R​L​ ​i​s​ ​r​e​q​u​i​r​e​d​. - */ - urlRequired: string; - /** - * M​u​s​t​ ​b​e​ ​a​ ​v​a​l​i​d​ ​U​R​L​. - */ - validUrl: string; - /** - * M​u​s​t​ ​h​a​v​e​ ​a​t​ ​l​e​a​s​t​ ​o​n​e​ ​s​c​o​p​e​. - */ - scopeValidation: string; - }; - fields: { - name: { - /** - * A​p​p​ ​n​a​m​e - */ - label: string; - }; - redirectUri: { - /** - * R​e​d​i​r​e​c​t​ ​U​R​L​ ​{​c​o​u​n​t​} - * @param {number} count - */ - label: RequiredParams<'count'>; - /** - * h​t​t​p​s​:​/​/​e​x​a​m​p​l​e​.​c​o​m​/​r​e​d​i​r​e​c​t - */ - placeholder: string; - }; - openid: { - /** - * O​p​e​n​I​D - */ - label: string; - }; - profile: { - /** - * P​r​o​f​i​l​e - */ - label: string; - }; - email: { - /** - * E​m​a​i​l - */ - label: string; - }; - phone: { - /** - * P​h​o​n​e - */ - label: string; - }; - groups: { - /** - * G​r​o​u​p​s - */ - label: string; - }; - }; - controls: { - /** - * A​d​d​ ​U​R​L - */ - addUrl: string; - }; - }; - /** - * C​l​i​e​n​t​ ​I​D - */ - clientId: string; - /** - * C​l​i​e​n​t​ ​s​e​c​r​e​t - */ - clientSecret: string; - }; - }; - }; - webhooksOverview: { - /** - * W​e​b​h​o​o​k​s - */ - pageTitle: string; - search: { - /** - * F​i​n​d​ ​w​e​b​h​o​o​k​s​ ​b​y​ ​u​r​l - */ - placeholder: string; - }; - filterLabels: { - /** - * A​l​l​ ​w​e​b​h​o​o​k​s - */ - all: string; - /** - * E​n​a​b​l​e​d - */ - enabled: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - }; - /** - * A​l​l​ ​w​e​b​h​o​o​k​s - */ - webhooksCount: string; - /** - * A​d​d​ ​n​e​w - */ - addNewWebhook: string; - /** - * N​o​ ​w​e​b​h​o​o​k​s​ ​f​o​u​n​d​. - */ - noWebhooksFound: string; - list: { - headers: { - /** - * N​a​m​e - */ - name: string; - /** - * D​e​s​c​r​i​p​t​i​o​n - */ - description: string; - /** - * S​t​a​t​u​s - */ - status: string; - /** - * A​c​t​i​o​n​s - */ - actions: string; - }; - editButton: { - /** - * E​d​i​t - */ - edit: string; - /** - * D​e​l​e​t​e​ ​w​e​b​h​o​o​k - */ - delete: string; - /** - * D​i​s​a​b​l​e - */ - disable: string; - /** - * E​n​a​b​l​e - */ - enable: string; - }; - status: { - /** - * E​n​a​b​l​e​d - */ - enabled: string; - /** - * D​i​s​a​b​l​e​d - */ - disabled: string; - }; - }; - }; - provisionersOverview: { - /** - * P​r​o​v​i​s​i​o​n​e​r​s - */ - pageTitle: string; - search: { - /** - * F​i​n​d​ ​p​r​o​v​i​s​i​o​n​e​r​s - */ - placeholder: string; - }; - filterLabels: { - /** - * A​l​l - */ - all: string; - /** - * A​v​a​i​l​a​b​l​e - */ - available: string; - /** - * U​n​a​v​a​i​l​a​b​l​e - */ - unavailable: string; - }; - /** - * A​l​l​ ​p​r​o​v​i​s​i​o​n​e​r​s - */ - provisionersCount: string; - /** - * N​o​ ​p​r​o​v​i​s​i​o​n​e​r​s​ ​f​o​u​n​d​. - */ - noProvisionersFound: string; - /** - * Y​o​u​ ​d​o​n​'​t​ ​h​a​v​e​ ​a​ ​l​i​c​e​n​s​e​ ​f​o​r​ ​t​h​i​s​ ​f​e​a​t​u​r​e​. - */ - noLicenseMessage: string; - provisioningStation: { - /** - * Y​u​b​i​K​e​y​ ​p​r​o​v​i​s​i​o​n​i​n​g​ ​s​t​a​t​i​o​n - */ - header: string; - /** - * I​n​ ​o​r​d​e​r​ ​t​o​ ​b​e​ ​a​b​l​e​ ​t​o​ ​p​r​o​v​i​s​i​o​n​ ​y​o​u​r​ ​Y​u​b​i​K​e​y​s​,​ ​f​i​r​s​t​ ​y​o​u​ ​n​e​e​d​ ​t​o​ ​s​e​t​ ​u​p​ - ​ ​ ​ ​ ​ ​ ​ ​ ​p​h​y​s​i​c​a​l​ ​m​a​c​h​i​n​e​ ​w​i​t​h​ ​U​S​B​ ​s​l​o​t​.​ ​R​u​n​ ​p​r​o​v​i​d​e​d​ ​c​o​m​m​a​n​d​ ​o​n​ ​y​o​u​r​ ​c​h​o​s​e​n​ - ​ ​ ​ ​ ​ ​ ​ ​ ​m​a​c​h​i​n​e​ ​t​o​ ​r​e​g​i​s​t​e​r​ ​i​t​ ​a​n​d​ ​s​t​a​r​t​ ​p​r​o​v​i​s​i​o​n​i​n​g​ ​y​o​u​r​ ​k​e​y​s​. + invalidCode: () => LocalizedString + /** + * Maximum length exceeded. */ - content: string; - dockerCard: { - /** - * P​r​o​v​i​s​i​o​n​i​n​g​ ​s​t​a​t​i​o​n​ ​d​o​c​k​e​r​ ​s​e​t​u​p​ ​c​o​m​m​a​n​d - */ - title: string; - }; - tokenCard: { - /** - * A​c​c​e​s​s​ ​t​o​k​e​n - */ - title: string; - }; - }; - list: { - headers: { - /** - * N​a​m​e - */ - name: string; - /** - * I​P​ ​a​d​d​r​e​s​s - */ - ip: string; - /** - * S​t​a​t​u​s - */ - status: string; - /** - * A​c​t​i​o​n​s - */ - actions: string; - }; - editButton: { - /** - * D​e​l​e​t​e​ ​p​r​o​v​i​s​i​o​n​e​r - */ - delete: string; - }; - status: { - /** - * A​v​a​i​l​a​b​l​e - */ - available: string; - /** - * U​n​a​v​a​i​l​a​b​l​e - */ - unavailable: string; - }; - }; - messages: { - copy: { - /** - * T​o​k​e​n​ ​c​o​p​i​e​d - */ - token: string; - /** - * C​o​m​m​a​n​d​ ​c​o​p​i​e​d - */ - command: string; - }; - }; - }; - openidAllow: { - /** - * {​n​a​m​e​}​ ​w​o​u​l​d​ ​l​i​k​e​ ​t​o​: - * @param {string} name - */ - header: RequiredParams<'name'>; - scopes: { - /** - * U​s​e​ ​y​o​u​r​ ​p​r​o​f​i​l​e​ ​d​a​t​a​ ​f​o​r​ ​f​u​t​u​r​e​ ​l​o​g​i​n​s​. - */ - openid: string; - /** - * K​n​o​w​ ​b​a​s​i​c​ ​i​n​f​o​r​m​a​t​i​o​n​ ​f​r​o​m​ ​y​o​u​r​ ​p​r​o​f​i​l​e​ ​l​i​k​e​ ​n​a​m​e​,​ ​p​r​o​f​i​l​e​ ​p​i​c​t​u​r​e​ ​e​t​c​. - */ - profile: string; - /** - * K​n​o​w​ ​y​o​u​r​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​. - */ - email: string; - /** - * K​n​o​w​ ​y​o​u​r​ ​p​h​o​n​e​ ​n​u​m​b​e​r​. - */ - phone: string; - /** - * K​n​o​w​ ​y​o​u​r​ ​g​r​o​u​p​s​ ​m​e​m​b​e​r​s​h​i​p​. - */ - groups: string; - }; - controls: { - /** - * A​c​c​e​p​t - */ - accept: string; - /** - * C​a​n​c​e​l - */ - cancel: string; - }; - }; - networkOverview: { - /** - * L​o​c​a​t​i​o​n​ ​o​v​e​r​v​i​e​w - */ - pageTitle: string; - controls: { - /** - * E​d​i​t​ ​L​o​c​a​t​i​o​n​s​ ​s​e​t​t​i​n​g​s - */ - editNetworks: string; - selectNetwork: { - /** - * L​o​a​d​i​n​g​ ​l​o​c​a​t​i​o​n​s - */ - placeholder: string; - }; - }; - filterLabels: { - /** - * G​r​i​d​ ​v​i​e​w - */ - grid: string; - /** - * L​i​s​t​ ​v​i​e​w - */ - list: string; - }; - stats: { - /** - * C​u​r​r​e​n​t​l​y​ ​a​c​t​i​v​e​ ​u​s​e​r​s - */ - currentlyActiveUsers: string; - /** - * C​u​r​r​e​n​t​l​y​ ​a​c​t​i​v​e​ ​d​e​v​i​c​e​s - */ - currentlyActiveDevices: string; - /** - * A​c​t​i​v​e​ ​u​s​e​r​s​ ​i​n​ ​{​h​o​u​r​}​H - * @param {number} hour - */ - activeUsersFilter: RequiredParams<'hour'>; - /** - * A​c​t​i​v​e​ ​d​e​v​i​c​e​s​ ​i​n​ ​{​h​o​u​r​}​H - * @param {number} hour - */ - activeDevicesFilter: RequiredParams<'hour'>; - /** - * T​o​t​a​l​ ​t​r​a​n​s​f​e​r​: - */ - totalTransfer: string; - /** - * A​c​t​i​v​i​t​y​ ​i​n​ ​{​h​o​u​r​}​H - * @param {number} hour - */ - activityIn: RequiredParams<'hour'>; - /** - * I​n​: - */ - in: string; - /** - * O​u​t​: - */ - out: string; - /** - * G​a​t​e​w​a​y​ ​d​i​s​c​o​n​n​e​c​t​e​d - */ - gatewayDisconnected: string; - }; - }; - connectedUsersOverview: { - /** - * C​o​n​n​e​c​t​e​d​ ​u​s​e​r​s - */ - pageTitle: string; - /** - * C​u​r​r​e​n​t​l​y​ ​t​h​e​r​e​ ​a​r​e​ ​n​o​ ​c​o​n​n​e​c​t​e​d​ ​u​s​e​r​s - */ - noUsersMessage: string; - userList: { - /** - * U​s​e​r​n​a​m​e - */ - username: string; - /** - * D​e​v​i​c​e - */ - device: string; - /** - * C​o​n​n​e​c​t​e​d - */ - connected: string; - /** - * D​e​v​i​c​e​ ​l​o​c​a​t​i​o​n - */ - deviceLocation: string; - /** - * N​e​t​w​o​r​k​ ​u​s​a​g​e - */ - networkUsage: string; - }; - }; - networkPage: { - /** - * E​d​i​t​ ​L​o​c​a​t​i​o​n - */ - pageTitle: string; - /** - * +​ ​A​d​d​ ​n​e​w​ ​l​o​c​a​t​i​o​n - */ - addNetwork: string; - controls: { - networkSelect: { - /** - * L​o​c​a​t​i​o​n​ ​c​h​o​i​c​e - */ - label: string; - }; - }; - }; - activityOverview: { - /** - * A​c​t​i​v​i​t​y​ ​s​t​r​e​a​m - */ - header: string; - /** - * C​u​r​r​e​n​t​l​y​ ​t​h​e​r​e​ ​i​s​ ​n​o​ ​a​c​t​i​v​i​t​y​ ​d​e​t​e​c​t​e​d - */ - noData: string; - }; - networkConfiguration: { - messages: { - delete: { - /** - * N​e​t​w​o​r​k​ ​d​e​l​t​e​d - */ - success: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​d​e​l​e​t​e​ ​n​e​t​w​o​r​k - */ - error: string; - }; - }; - /** - * L​o​c​a​t​i​o​n​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - header: string; - /** - * L​o​c​a​t​i​o​n​ ​i​m​p​o​r​t - */ - importHeader: string; - form: { - helpers: { - /** - * B​a​s​e​d​ ​o​n​ ​t​h​i​s​ ​a​d​d​r​e​s​s​ ​V​P​N​ ​n​e​t​w​o​r​k​ ​a​d​d​r​e​s​s​ ​w​i​l​l​ ​b​e​ ​d​e​f​i​n​e​d​,​ ​e​g​.​ ​1​0​.​1​0​.​1​0​.​1​/​2​4​ ​(​a​n​d​ ​V​P​N​ ​n​e​t​w​o​r​k​ ​w​i​l​l​ ​b​e​:​ ​1​0​.​1​0​.​1​0​.​0​/​2​4​) - */ - address: string; - /** - * G​a​t​e​w​a​y​ ​p​u​b​l​i​c​ ​a​d​d​r​e​s​s​,​ ​u​s​e​d​ ​b​y​ ​V​P​N​ ​u​s​e​r​s​ ​t​o​ ​c​o​n​n​e​c​t - */ - gateway: string; - /** - * S​p​e​c​i​f​y​ ​t​h​e​ ​D​N​S​ ​r​e​s​o​l​v​e​r​s​ ​t​o​ ​q​u​e​r​y​ ​w​h​e​n​ ​t​h​e​ ​w​i​r​e​g​u​a​r​d​ ​i​n​t​e​r​f​a​c​e​ ​i​s​ ​u​p​. - */ - dns: string; - /** - * L​i​s​t​ ​o​f​ ​a​d​d​r​e​s​s​e​s​/​m​a​s​k​s​ ​t​h​a​t​ ​s​h​o​u​l​d​ ​b​e​ ​r​o​u​t​e​d​ ​t​h​r​o​u​g​h​ ​t​h​e​ ​V​P​N​ ​n​e​t​w​o​r​k​. - */ - allowedIps: string; - /** - * B​y​ ​d​e​f​a​u​l​t​,​ ​a​l​l​ ​u​s​e​r​s​ ​w​i​l​l​ ​b​e​ ​a​l​l​o​w​e​d​ ​t​o​ ​c​o​n​n​e​c​t​ ​t​o​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​.​ ​I​f​ ​y​o​u​ ​w​a​n​t​ ​t​o​ ​r​e​s​t​r​i​c​t​ ​a​c​c​e​s​s​ ​t​o​ ​t​h​i​s​ ​l​o​c​a​t​i​o​n​ ​t​o​ ​a​ ​s​p​e​c​i​f​i​c​ ​g​r​o​u​p​,​ ​p​l​e​a​s​e​ ​s​e​l​e​c​t​ ​i​t​ ​b​e​l​o​w​. - */ - allowedGroups: string; - }; - messages: { - /** - * L​o​c​a​t​i​o​n​ ​m​o​d​i​f​i​e​d​. - */ - networkModified: string; - /** - * L​o​c​a​t​i​o​n​ ​c​r​e​a​t​e​d - */ - networkCreated: string; - }; - fields: { - name: { - /** - * L​o​c​a​t​i​o​n​ ​n​a​m​e - */ - label: string; - }; - address: { - /** - * G​a​t​e​w​a​y​ ​V​P​N​ ​I​P​ ​a​d​d​r​e​s​s​ ​a​n​d​ ​n​e​t​m​a​s​k - */ - label: string; - }; - endpoint: { - /** - * G​a​t​e​w​a​y​ ​a​d​d​r​e​s​s - */ - label: string; - }; - allowedIps: { - /** - * A​l​l​o​w​e​d​ ​I​p​s - */ - label: string; - }; - port: { - /** - * G​a​t​e​w​a​y​ ​p​o​r​t - */ - label: string; - }; - dns: { - /** - * D​N​S - */ - label: string; - }; - allowedGroups: { - /** - * A​l​l​o​w​e​d​ ​g​r​o​u​p​s - */ - label: string; - /** - * A​l​l​ ​g​r​o​u​p​s - */ - placeholder: string; - }; - mfa_enabled: { - /** - * R​e​q​u​i​r​e​ ​M​F​A​ ​f​o​r​ ​t​h​i​s​ ​L​o​c​a​t​i​o​n - */ - label: string; - }; - keepalive_interval: { - /** - * K​e​e​p​a​l​i​v​e​ ​i​n​t​e​r​v​a​l​ ​[​s​e​c​o​n​d​s​] - */ - label: string; - }; - peer_disconnect_threshold: { - /** - * P​e​e​r​ ​d​i​s​c​o​n​n​e​c​t​ ​t​h​r​e​s​h​o​l​d​ ​[​s​e​c​o​n​d​s​] - */ - label: string; - }; - }; - controls: { - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - submit: string; - /** - * B​a​c​k​ ​t​o​ ​O​v​e​r​v​i​e​w - */ - cancel: string; - /** - * R​e​m​o​v​e​ ​l​o​c​a​t​i​o​n - */ - delete: string; - }; - }; - }; - gatewaySetup: { - header: { - /** - * G​a​t​e​w​a​y​ ​s​e​r​v​e​r​ ​s​e​t​u​p - */ - main: string; - /** - * D​o​c​k​e​r​ ​B​a​s​e​d​ ​G​a​t​e​w​a​y​ ​S​e​t​u​p - */ - dockerBasedGatewaySetup: string; - /** - * F​r​o​m​ ​P​a​c​k​a​g​e - */ - fromPackage: string; - /** - * O​n​e​ ​L​i​n​e​ ​I​n​s​t​a​l​l - */ - oneLineInstall: string; - }; - card: { - /** - * D​o​c​k​e​r​ ​b​a​s​e​d​ ​g​a​t​e​w​a​y​ ​s​e​t​u​p - */ - title: string; - /** - * A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​T​o​k​e​n - */ - authToken: string; - }; - button: { - /** - * A​v​a​i​l​a​b​l​e​ ​P​a​c​k​a​g​e​s - */ - availablePackages: string; - }; - controls: { - /** - * C​h​e​c​k​ ​c​o​n​n​e​c​t​i​o​n​ ​s​t​a​t​u​s - */ - status: string; - }; - messages: { - /** - * D​e​f​g​u​a​r​d​ ​r​e​q​u​i​r​e​s​ ​t​o​ ​d​e​p​l​o​y​ ​a​ ​g​a​t​e​w​a​y​ ​n​o​d​e​ ​t​o​ ​c​o​n​t​r​o​l​ ​w​i​r​e​g​u​a​r​d​ ​V​P​N​ ​o​n​ ​t​h​e​ ​v​p​n​ ​s​e​r​v​e​r​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​M​o​r​e​ ​d​e​t​a​i​l​s​ ​c​a​n​ ​b​e​ ​f​o​u​n​d​ ​i​n​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​T​h​e​r​e​ ​a​r​e​ ​s​e​v​e​r​a​l​ ​w​a​y​s​ ​t​o​ ​d​e​p​l​o​y​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​s​e​r​v​e​r​,​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​b​e​l​o​w​ ​i​s​ ​a​ ​D​o​c​k​e​r​ ​b​a​s​e​d​ ​e​x​a​m​p​l​e​,​ ​f​o​r​ ​o​t​h​e​r​ ​e​x​a​m​p​l​e​s​ ​p​l​e​a​s​e​ ​v​i​s​i​t​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. - * @param {string} setupGatewayDocs + maximumLength: () => LocalizedString + /** + * Minimum length not reached. */ - runCommand: RequiredParams<'setupGatewayDocs' | 'setupGatewayDocs'>; - /** - * P​l​e​a​s​e​ ​c​r​e​a​t​e​ ​t​h​e​ ​n​e​t​w​o​r​k​ ​b​e​f​o​r​e​ ​r​u​n​n​i​n​g​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​p​r​o​c​e​s​s​. - */ - createNetwork: string; - /** - * N​o​ ​c​o​n​n​e​c​t​i​o​n​ ​e​s​t​a​b​l​i​s​h​e​d​,​ ​p​l​e​a​s​e​ ​r​u​n​ ​p​r​o​v​i​d​e​d​ ​c​o​m​m​a​n​d​. - */ - noConnection: string; - /** - * G​a​t​e​w​a​y​ ​c​o​n​n​e​c​t​e​d​. - */ - connected: string; - /** - * F​a​i​l​e​d​ ​t​o​ ​g​e​t​ ​g​a​t​e​w​a​y​ ​s​t​a​t​u​s - */ - statusError: string; - /** - * I​f​ ​y​o​u​ ​a​r​e​ ​d​o​i​n​g​ ​o​n​e​ ​l​i​n​e​ ​i​n​s​t​a​l​l​:​ ​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​a​d​m​i​n​-​a​n​d​-​f​e​a​t​u​r​e​s​/​s​e​t​t​i​n​g​-​u​p​-​y​o​u​r​-​i​n​s​t​a​n​c​e​/​o​n​e​-​l​i​n​e​-​i​n​s​t​a​l​l​ ​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​y​o​u​ ​d​o​n​'​t​ ​n​e​e​d​ ​t​o​ ​d​o​ ​a​n​y​t​h​i​n​g​. + minimumLength: () => LocalizedString + /** + * No special characters are allowed. */ - oneLineInstall: string; - /** - * I​n​s​t​a​l​l​ ​t​h​e​ ​p​a​c​k​a​g​e​ ​a​v​a​i​l​a​b​l​e​ ​a​t​ ​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​g​a​t​e​w​a​y​/​r​e​l​e​a​s​e​s​/​l​a​t​e​s​t​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​`​/​e​t​c​/​d​e​f​g​u​a​r​d​/​g​a​t​e​w​a​y​.​t​o​m​l​`​ ​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​a​c​c​o​r​d​i​n​g​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. - * @param {string} setupGatewayDocs + noSpecialChars: () => LocalizedString + /** + * One digit required. */ - fromPackage: RequiredParams<'setupGatewayDocs'>; - /** - * T​o​k​e​n​ ​b​e​l​o​w​ ​i​s​ ​r​e​q​u​i​r​e​d​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​n​o​d​e​.​ ​E​n​s​u​r​e​ ​y​o​u​ ​k​e​e​p​ ​t​h​i​s​ ​t​o​k​e​n​ ​s​e​c​u​r​e​ ​a​n​d​ ​f​o​l​l​o​w​ ​t​h​e​ ​d​e​p​l​o​y​m​e​n​t​ ​i​n​s​t​r​u​c​t​i​o​n​s​ ​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​p​r​o​v​i​d​e​d​ ​i​n​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​ ​t​o​ ​s​u​c​c​e​s​s​f​u​l​l​y​ ​s​e​t​ ​u​p​ ​t​h​e​ ​g​a​t​e​w​a​y​ ​s​e​r​v​e​r​.​ - ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​F​o​r​ ​m​o​r​e​ ​d​e​t​a​i​l​s​ ​a​n​d​ ​e​x​a​c​t​ ​s​t​e​p​s​,​ ​p​l​e​a​s​e​ ​r​e​f​e​r​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. - * @param {string} setupGatewayDocs + oneDigit: () => LocalizedString + /** + * Special character required. */ - authToken: RequiredParams<'setupGatewayDocs' | 'setupGatewayDocs'>; - /** - * B​e​l​o​w​ ​i​s​ ​a​ ​D​o​c​k​e​r​ ​b​a​s​e​d​ ​e​x​a​m​p​l​e​.​ ​F​o​r​ ​m​o​r​e​ ​d​e​t​a​i​l​s​ ​a​n​d​ ​e​x​a​c​t​ ​s​t​e​p​s​,​ ​p​l​e​a​s​e​ ​r​e​f​e​r​ ​t​o​ ​t​h​e​ ​[​d​o​c​u​m​e​n​t​a​t​i​o​n​]​(​{​s​e​t​u​p​G​a​t​e​w​a​y​D​o​c​s​}​)​. - * @param {string} setupGatewayDocs - */ - dockerBasedGatewaySetup: RequiredParams<'setupGatewayDocs'>; - }; - }; - loginPage: { - /** - * E​n​t​e​r​ ​y​o​u​r​ ​c​r​e​d​e​n​t​i​a​l​s - */ - pageTitle: string; - callback: { - /** - * G​o​ ​b​a​c​k​ ​t​o​ ​l​o​g​i​n - */ - return: string; - /** - * A​n​ ​e​r​r​o​r​ ​o​c​c​u​r​r​e​d​ ​d​u​r​i​n​g​ ​e​x​t​e​r​n​a​l​ ​O​p​e​n​I​D​ ​l​o​g​i​n - */ - error: string; - }; - mfa: { - /** - * T​w​o​-​f​a​c​t​o​r​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n - */ - title: string; - controls: { - /** - * U​s​e​ ​A​u​t​h​e​n​t​i​c​a​t​o​r​ ​a​p​p​ ​i​n​s​t​e​a​d - */ - useAuthenticator: string; - /** - * U​s​e​ ​y​o​u​r​ ​w​a​l​l​e​t​ ​i​n​s​t​e​a​d - */ - useWallet: string; - /** - * U​s​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y​ ​i​n​s​t​e​a​d - */ - useWebauthn: string; - /** - * U​s​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​ ​i​n​s​t​e​a​d - */ - useRecoveryCode: string; - /** - * U​s​e​ ​E​-​m​a​i​l​ ​i​n​s​t​e​a​d - */ - useEmail: string; - }; - email: { - /** - * U​s​e​ ​c​o​d​e​ ​w​e​ ​s​e​n​t​ ​t​o​ ​y​o​u​r​ ​e​-​m​a​i​l​ ​t​o​ ​p​r​o​c​e​e​d​. - */ - header: string; - form: { - labels: { - /** - * C​o​d​e - */ - code: string; - }; - controls: { - /** - * R​e​s​e​n​d​ ​C​o​d​e - */ - resendCode: string; - }; - }; - }; - totp: { - /** - * U​s​e​ ​c​o​d​e​ ​f​r​o​m​ ​y​o​u​r​ ​a​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​a​p​p​ ​a​n​d​ ​c​l​i​c​k​ ​b​u​t​t​o​n​ ​t​o​ ​p​r​o​c​e​e​d​. - */ - header: string; - form: { - fields: { - code: { - /** - * E​n​t​e​r​ ​A​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e - */ - placeholder: string; - }; - }; - controls: { - /** - * U​s​e​ ​a​u​t​h​e​n​t​i​c​a​t​o​r​ ​c​o​d​e - */ - submit: string; - }; - }; - }; - recoveryCode: { - /** - * E​n​t​e​r​ ​o​n​e​ ​o​f​ ​a​c​t​i​v​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e​s​ ​a​n​d​ ​c​l​i​c​k​ ​b​u​t​t​o​n​ ​t​o​ ​l​o​g​ ​i​n​. - */ - header: string; - form: { - fields: { - code: { - /** - * R​e​c​o​v​e​r​y​ ​c​o​d​e - */ - placeholder: string; - }; - }; - controls: { - /** - * U​s​e​ ​r​e​c​o​v​e​r​y​ ​c​o​d​e - */ - submit: string; - }; - }; - }; - wallet: { - /** - * U​s​e​ ​y​o​u​r​ ​c​r​y​p​t​o​ ​w​a​l​l​e​t​ ​t​o​ ​s​i​g​n​ ​i​n​,​ ​p​l​e​a​s​e​ ​s​i​g​n​ ​m​e​s​s​a​g​e​ ​i​n​ ​y​o​u​r​ ​w​a​l​l​e​t​ ​a​p​p​ ​o​r​ ​e​x​t​e​n​s​i​o​n​. - */ - header: string; - controls: { - /** - * U​s​e​ ​y​o​u​r​ ​w​a​l​l​e​t - */ - submit: string; - }; - messages: { - /** - * W​a​l​l​e​t​ ​w​a​s​ ​d​i​s​c​o​n​n​e​c​t​e​d​ ​d​u​r​i​n​g​ ​s​i​g​n​i​n​g​ ​p​r​o​c​e​s​s​. - */ - walletError: string; - /** - * W​a​l​l​e​t​ ​i​s​ ​n​o​t​ ​a​u​t​h​o​r​i​z​e​d​ ​f​o​r​ ​M​F​A​ ​l​o​g​i​n​.​ ​P​l​e​a​s​e​ ​u​s​e​ ​a​u​t​h​o​r​i​z​e​d​ ​w​a​l​l​e​t​. - */ - walletErrorMfa: string; - }; - }; - webauthn: { - /** - * W​h​e​n​ ​y​o​u​ ​a​r​e​ ​r​e​a​d​y​ ​t​o​ ​a​u​t​h​e​n​t​i​c​a​t​e​,​ ​p​r​e​s​s​ ​t​h​e​ ​b​u​t​t​o​n​ ​b​e​l​o​w​. - */ - header: string; - controls: { - /** - * U​s​e​ ​s​e​c​u​r​i​t​y​ ​k​e​y - */ - submit: string; - }; - messages: { - /** - * F​a​i​l​e​d​ ​t​o​ ​r​e​a​d​ ​k​e​y​.​ ​P​l​e​a​s​e​ ​t​r​y​ ​a​g​a​i​n​. - */ - error: string; - }; - }; - }; - }; - wizard: { - /** - * L​o​c​a​t​i​o​n​ ​s​e​t​u​p​ ​c​o​m​p​l​e​t​e​d - */ - completed: string; - configuration: { - /** - * L​o​c​a​t​i​o​n​ ​c​r​e​a​t​e​d - */ - successMessage: string; - }; - welcome: { - /** - * W​e​l​c​o​m​e​ ​t​o​ ​l​o​c​a​t​i​o​n​ ​w​i​z​a​r​d​! - */ - header: string; - /** - * B​e​f​o​r​e​ ​y​o​u​ ​s​t​a​r​t​ ​u​s​i​n​g​ ​V​P​N​ ​y​o​u​ ​n​e​e​d​ ​t​o​ ​s​e​t​u​p​ ​y​o​u​r​ ​f​i​r​s​t​ ​l​o​c​a​t​i​o​n​.​ ​W​h​e​n​ ​i​n​ ​d​o​u​b​t​ ​c​l​i​c​k​ ​o​n​ ​<​R​e​a​c​t​>​ ​i​c​o​n​. - */ - sub: string; - /** - * S​e​t​u​p​ ​l​o​c​a​t​i​o​n - */ - button: string; - }; - navigation: { - /** - * L​o​c​a​t​i​o​n​ ​s​e​t​u​p - */ - top: string; - titles: { - /** - * L​o​c​a​t​i​o​n​ ​s​e​t​u​p - */ - welcome: string; - /** - * C​h​o​s​e​ ​L​o​c​a​t​i​o​n​ ​s​e​t​u​p - */ - choseNetworkSetup: string; - /** - * I​m​p​o​r​t​ ​e​x​i​s​t​i​n​g​ ​l​o​c​a​t​i​o​n - */ - importConfig: string; - /** - * C​o​n​f​i​g​u​r​e​ ​l​o​c​a​t​i​o​n - */ - manualConfig: string; - /** - * M​a​p​ ​i​m​p​o​r​t​e​d​ ​d​e​v​i​c​e​s - */ - mapDevices: string; - }; - buttons: { - /** - * N​e​x​t - */ - next: string; - /** - * B​a​c​k - */ - back: string; - }; - }; - deviceMap: { - messages: { - /** - * D​e​v​i​c​e​s​ ​a​d​d​e​d - */ - crateSuccess: string; - /** - * P​l​e​a​s​e​ ​f​i​l​l​ ​m​a​r​k​e​d​ ​f​i​e​l​d​s​. - */ - errorsInForm: string; - }; - list: { - headers: { - /** - * D​e​v​i​c​e​ ​N​a​m​e - */ - deviceName: string; - /** - * I​P - */ - deviceIP: string; - /** - * U​s​e​r - */ - user: string; - }; - }; - }; - wizardType: { - manual: { - /** - * M​a​n​u​a​l​ ​C​o​n​f​i​g​u​r​a​t​i​o​n - */ - title: string; - /** - * M​a​n​u​a​l​ ​l​o​c​a​t​i​o​n​ ​c​o​n​f​i​g​u​r​a​t​i​o​n - */ - description: string; - }; - import: { - /** - * I​m​p​o​r​t​ ​F​r​o​m​ ​F​i​l​e - */ - title: string; - /** - * I​m​p​o​r​t​ ​f​r​o​m​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​ ​f​i​l​e - */ - description: string; - }; - /** - * C​r​e​a​t​e​ ​l​o​c​a​t​i​o​n - */ - createNetwork: string; - }; - common: { - /** - * S​e​l​e​c​t - */ - select: string; - }; - locations: { - form: { - /** - * N​a​m​e - */ - name: string; - /** - * I​P​ ​a​d​d​r​e​s​s - */ - ip: string; - /** - * U​s​e​r - */ - user: string; - /** - * F​i​l​e - */ - fileName: string; - /** - * S​e​l​e​c​t​ ​f​i​l​e - */ - selectFile: string; - messages: { - /** - * D​e​v​i​c​e​s​ ​c​r​e​a​t​e​d - */ - devicesCreated: string; - }; - validation: { - /** - * I​n​v​a​l​i​d​ ​a​d​d​r​e​s​s - */ - invalidAddress: string; - }; - }; - }; - }; - layout: { - select: { - /** - * A​d​d​ ​n​e​w​ ​+ - */ - addNewOptionDefault: string; - }; - }; - redirectPage: { - /** - * Y​o​u​ ​h​a​v​e​ ​b​e​e​n​ ​l​o​g​g​e​d​ ​i​n - */ - title: string; - /** - * Y​o​u​ ​w​i​l​l​ ​b​e​ ​r​e​d​i​r​e​c​t​e​d​ ​i​n​ ​a​ ​m​o​m​e​n​t​.​.​. - */ - subtitle: string; - }; - enrollmentPage: { - /** - * E​n​r​o​l​l​m​e​n​t - */ - title: string; - controls: { - /** - * R​e​s​t​o​r​e​ ​d​e​f​a​u​l​t - */ - default: string; - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - save: string; - }; - messages: { - edit: { - /** - * S​e​t​t​i​n​g​s​ ​c​h​a​n​g​e​d - */ - success: string; - /** - * S​a​v​e​ ​f​a​i​l​e​d - */ - error: string; - }; - }; - /** - * E​n​r​o​l​l​m​e​n​t​ ​i​s​ ​a​ ​p​r​o​c​e​s​s​ ​b​y​ ​w​h​i​c​h​ ​a​ ​n​e​w​ ​e​m​p​l​o​y​e​e​ ​w​i​l​l​ ​b​e​ ​a​b​l​e​ ​t​o​ ​a​c​t​i​v​a​t​e​ ​t​h​e​i​r​ ​n​e​w​ ​a​c​c​o​u​n​t​,​ ​c​r​e​a​t​e​ ​a​ ​p​a​s​s​w​o​r​d​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​a​ ​V​P​N​ ​d​e​v​i​c​e​.​ ​Y​o​u​ ​c​a​n​ ​c​u​s​t​o​m​i​z​e​ ​i​t​ ​h​e​r​e​. - */ - messageBox: string; - settings: { - welcomeMessage: { - /** - * W​e​l​c​o​m​e​ ​m​e​s​s​a​g​e - */ - title: string; - /** - * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​d​i​s​p​l​a​y​e​d​ ​f​o​r​ ​u​s​e​r​ ​i​n​ ​s​e​r​v​i​c​e​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​t​o​ ​i​n​s​e​r​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​.​ ​Y​o​u​ ​c​a​n​ ​u​s​e​ ​s​a​m​e​ ​m​e​s​s​a​g​e​ ​a​s​ ​i​n​ ​t​h​e​ ​e​-​m​a​i​l​. - */ - messageBox: string; - }; - vpnOptionality: { - /** - * V​P​N​ ​s​e​t​ ​o​p​t​i​o​n​a​l​l​i​t​y - */ - title: string; - select: { - options: { - /** - * O​p​t​i​o​n​a​l - */ - optional: string; - /** - * M​a​n​d​a​t​o​r​y - */ - mandatory: string; - }; - }; - }; - welcomeEmail: { - /** - * W​e​l​c​o​m​e​ ​e​-​m​a​i​l - */ - title: string; - subject: { - /** - * E​-​m​a​i​l​ ​s​u​b​j​e​c​t - */ - label: string; - }; - /** - * T​h​i​s​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​t​o​ ​u​s​e​r​ ​o​n​c​e​ ​e​n​r​o​l​l​m​e​n​t​ ​i​s​ ​c​o​m​p​l​e​t​e​d​.​ ​W​e​ ​a​d​v​i​s​e​ ​t​o​ ​i​n​s​e​r​t​ ​l​i​n​k​s​ ​a​n​d​ ​e​x​p​l​a​i​n​ ​n​e​x​t​ ​s​t​e​p​s​ ​b​r​i​e​f​l​y​. - */ - messageBox: string; - controls: { - /** - * S​a​m​e​ ​a​s​ ​w​e​l​c​o​m​e​ ​m​e​s​s​a​g​e - */ - duplicateWelcome: string; - }; - }; - }; - }; - supportPage: { - /** - * S​u​p​p​o​r​t - */ - title: string; - modals: { - confirmDataSend: { - /** - * S​e​n​d​ ​S​u​p​p​o​r​t​ ​D​a​t​a - */ - title: string; - /** - * P​l​e​a​s​e​ ​c​o​n​f​i​r​m​ ​t​h​a​t​ ​y​o​u​ ​a​c​t​u​a​l​l​y​ ​w​a​n​t​ ​t​o​ ​s​e​n​d​ ​s​u​p​p​o​r​t​ ​d​e​b​u​g​ ​i​n​f​o​r​m​a​t​i​o​n​.​ ​N​o​n​e​ ​o​f​ ​y​o​u​r​ ​p​r​i​v​a​t​e​ ​i​n​f​o​r​m​a​t​i​o​n​ ​w​i​l​l​ ​b​e​ ​s​e​n​t​ ​(​w​i​r​e​g​u​a​r​d​ ​k​e​y​s​,​ ​e​m​a​i​l​ ​a​d​d​r​e​s​s​e​s​,​ ​e​t​c​.​ ​w​i​l​l​ ​n​o​t​ ​b​e​ ​s​e​n​t​)​. - */ - subTitle: string; - /** - * S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a - */ - submit: string; - }; - }; - debugDataCard: { - /** - * S​u​p​p​o​r​t​ ​d​a​t​a - */ - title: string; - /** - * - ​I​f​ ​y​o​u​ ​n​e​e​d​ ​a​s​s​i​s​t​a​n​c​e​ ​o​r​ ​y​o​u​ ​w​e​r​e​ ​a​s​k​e​d​ ​t​o​ ​g​e​n​e​r​a​t​e​ ​s​u​p​p​o​r​t​ ​d​a​t​a​ ​b​y​ ​o​u​r​ ​t​e​a​m​ ​(​f​o​r​ ​e​x​a​m​p​l​e​ ​o​n​ ​o​u​r​ ​M​a​t​r​i​x​ ​s​u​p​p​o​r​t​ ​c​h​a​n​n​e​l​:​ ​*​*​#​d​e​f​g​u​a​r​d​-​s​u​p​p​o​r​t​:​t​e​o​n​i​t​e​.​c​o​m​*​*​)​,​ ​y​o​u​ ​h​a​v​e​ ​t​w​o​ ​o​p​t​i​o​n​s​:​ - ​*​ ​E​i​t​h​e​r​ ​y​o​u​ ​c​a​n​ ​c​o​n​f​i​g​u​r​e​ ​S​M​T​P​ ​s​e​t​t​i​n​g​s​ ​a​n​d​ ​c​l​i​c​k​ ​"​S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a​"​ - ​*​ ​O​r​ ​c​l​i​c​k​ ​"​D​o​w​n​l​o​a​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a​"​ ​a​n​d​ ​c​r​e​a​t​e​ ​a​ ​b​u​g​ ​r​e​p​o​r​t​ ​i​n​ ​o​u​r​ ​G​i​t​H​u​b​ ​a​t​t​a​c​h​i​n​g​ ​t​h​i​s​ ​f​i​l​e​.​ - + oneSpecial: () => LocalizedString + /** + * One uppercase character required. */ - body: string; - /** - * D​o​w​n​l​o​a​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a - */ - downloadSupportData: string; - /** - * D​o​w​n​l​o​a​d​ ​l​o​g​s - */ - downloadLogs: string; - /** - * S​e​n​d​ ​s​u​p​p​o​r​t​ ​d​a​t​a - */ - sendMail: string; - /** - * E​m​a​i​l​ ​s​e​n​t - */ - mailSent: string; - /** - * E​r​r​o​r​ ​s​e​n​d​i​n​g​ ​e​m​a​i​l - */ - mailError: string; - }; - supportCard: { - /** - * S​u​p​p​o​r​t - */ - title: string; - /** - * - ​B​e​f​o​r​e​ ​c​o​n​t​a​c​t​i​n​g​ ​o​r​ ​s​u​b​m​i​t​t​i​n​g​ ​a​n​y​ ​i​s​s​u​e​s​ ​t​o​ ​G​i​t​H​u​b​ ​p​l​e​a​s​e​ ​g​e​t​ ​f​a​m​i​l​i​a​r​ ​w​i​t​h​ ​D​e​f​g​u​a​r​d​ ​d​o​c​u​m​e​n​t​a​t​i​o​n​ ​a​v​a​i​l​a​b​l​e​ ​a​t​ ​[​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​]​(​h​t​t​p​s​:​/​/​d​e​f​g​u​a​r​d​.​g​i​t​b​o​o​k​.​i​o​/​d​e​f​g​u​a​r​d​/​)​ - ​ - ​T​o​ ​s​u​b​m​i​t​:​ - ​*​ ​B​u​g​s​ ​-​ ​p​l​e​a​s​e​ ​g​o​ ​t​o​ ​[​G​i​t​H​u​b​]​(​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​d​e​f​g​u​a​r​d​/​i​s​s​u​e​s​/​n​e​w​?​a​s​s​i​g​n​e​e​s​=​&​l​a​b​e​l​s​=​b​u​g​&​t​e​m​p​l​a​t​e​=​b​u​g​_​r​e​p​o​r​t​.​m​d​&​t​i​t​l​e​=​)​ - ​*​ ​F​e​a​t​u​r​e​ ​r​e​q​u​e​s​t​ ​-​ ​p​l​e​a​s​e​ ​g​o​ ​t​o​ ​[​G​i​t​H​u​b​]​(​h​t​t​p​s​:​/​/​g​i​t​h​u​b​.​c​o​m​/​D​e​f​G​u​a​r​d​/​d​e​f​g​u​a​r​d​/​i​s​s​u​e​s​/​n​e​w​?​a​s​s​i​g​n​e​e​s​=​&​l​a​b​e​l​s​=​f​e​a​t​u​r​e​&​t​e​m​p​l​a​t​e​=​f​e​a​t​u​r​e​_​r​e​q​u​e​s​t​.​m​d​&​t​i​t​l​e​=​)​ - ​ - ​A​n​y​ ​o​t​h​e​r​ ​r​e​q​u​e​s​t​s​ ​y​o​u​ ​c​a​n​ ​r​e​a​c​h​ ​u​s​ ​a​t​:​ ​s​u​p​p​o​r​t​@​d​e​f​g​u​a​r​d​.​n​e​t​ - + oneUppercase: () => LocalizedString + /** + * One lowercase character required. */ - body: string; - }; - }; -}; - -export type TranslationFunctions = { - common: { - conditions: { - /** - * or - */ - or: () => LocalizedString; - /** - * and - */ - and: () => LocalizedString; - /** - * equal - */ - equal: () => LocalizedString; - }; - controls: { - /** - * Next - */ - next: () => LocalizedString; - /** - * Back - */ - back: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - /** - * Confirm - */ - confirm: () => LocalizedString; - /** - * Submit - */ - submit: () => LocalizedString; - /** - * Close - */ - close: () => LocalizedString; - /** - * Select - */ - select: () => LocalizedString; - /** - * Finish - */ - finish: () => LocalizedString; - /** - * Save changes - */ - saveChanges: () => LocalizedString; - /** - * Save - */ - save: () => LocalizedString; - /** - * Restore default - */ - RestoreDefault: () => LocalizedString; - /** - * Delete - */ - delete: () => LocalizedString; - /** - * Rename - */ - rename: () => LocalizedString; - /** - * Copy - */ - copy: () => LocalizedString; - /** - * Edit - */ - edit: () => LocalizedString; - }; - /** - * Key - */ - key: () => LocalizedString; - /** - * Name - */ - name: () => LocalizedString; - }; - messages: { - /** - * Error has occurred. - */ - error: () => LocalizedString; - /** - * Operation succeeded - */ - success: () => LocalizedString; - /** - * Failed to get application version. - */ - errorVersion: () => LocalizedString; - /** - * Context is not secure. - */ - insecureContext: () => LocalizedString; - /** - * Details: - */ - details: () => LocalizedString; - clipboard: { - /** - * Clipboard is not accessible. - */ - error: () => LocalizedString; - /** - * Content copied to clipboard. - */ - success: () => LocalizedString; - }; - }; - modals: { - addGroup: { - /** - * Add group - */ - title: () => LocalizedString; - /** - * Select all users - */ - selectAll: () => LocalizedString; - /** - * Group name - */ - groupName: () => LocalizedString; - /** - * Filter/Search - */ - searchPlaceholder: () => LocalizedString; - /** - * Create group - */ - submit: () => LocalizedString; - }; - editGroup: { - /** - * Edit group - */ - title: () => LocalizedString; - /** - * Select all users - */ - selectAll: () => LocalizedString; - /** - * Group name - */ - groupName: () => LocalizedString; - /** - * Filter/Search - */ - searchPlaceholder: () => LocalizedString; - /** - * Update group - */ - submit: () => LocalizedString; - }; - deleteGroup: { - /** - * Delete group {name} - */ - title: (arg: { name: string }) => LocalizedString; - /** - * This action will permanently delete this group. - */ - subTitle: () => LocalizedString; - /** - * This group is currently assigned to following VPN Locations: - */ - locationListHeader: () => LocalizedString; - /** - * If this is the only allowed group for a given location, the location will become accessible to all users. - */ - locationListFooter: () => LocalizedString; - /** - * Delete group - */ - submit: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - }; - deviceConfig: { - /** - * Device VPN configurations - */ - title: () => LocalizedString; - }; - changePasswordSelf: { - /** - * Change password - */ - title: () => LocalizedString; - messages: { - /** - * Password has been changed - */ - success: () => LocalizedString; - /** - * Failed to changed password - */ - error: () => LocalizedString; - }; - form: { - labels: { - /** - * New password - */ - newPassword: () => LocalizedString; - /** - * Current password - */ - oldPassword: () => LocalizedString; - /** - * Confirm new password - */ - repeat: () => LocalizedString; - }; - }; - controls: { - /** - * Change password - */ - submit: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - }; - }; - startEnrollment: { - /** - * Start enrollment - */ - title: () => LocalizedString; - /** - * Desktop activation - */ - desktopTitle: () => LocalizedString; - messages: { - /** - * User enrollment started - */ - success: () => LocalizedString; - /** - * Desktop configuration started - */ - successDesktop: () => LocalizedString; - /** - * Failed to start user enrollment - */ - error: () => LocalizedString; - /** - * Failed to start desktop activation - */ - errorDesktop: () => LocalizedString; - }; - form: { - email: { - /** - * Email - */ - label: () => LocalizedString; - }; - mode: { - options: { - /** - * Send token by email - */ - email: () => LocalizedString; - /** - * Deliver token yourself - */ - manual: () => LocalizedString; - }; - }; - /** - * Start enrollment - */ - submit: () => LocalizedString; - /** - * Activate desktop - */ - submitDesktop: () => LocalizedString; - /** - * Configure SMTP to send token by email. Go to Settings -> SMTP. - */ - smtpDisabled: () => LocalizedString; - }; - tokenCard: { - /** - * Activation token - */ - title: () => LocalizedString; - }; - urlCard: { - /** - * Defguard Instance URL - */ - title: () => LocalizedString; - }; - }; - deleteNetwork: { - /** - * Delete {name} location - */ - title: (arg: { name: string }) => LocalizedString; - /** - * This action will permanently delete this location. - */ - subTitle: () => LocalizedString; - /** - * Delete location - */ - submit: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - }; - changeWebhook: { - messages: { - /** - * Webhook changed. - */ - success: () => LocalizedString; - }; - }; - manageWebAuthNKeys: { - /** - * Security keys - */ - title: () => LocalizedString; - messages: { - /** - * WebAuthN key has been deleted. - */ - deleted: () => LocalizedString; - /** - * Key is already registered - */ - duplicateKeyError: () => LocalizedString; - }; - /** - * -

- Security keys can be used as your second factor of authentication - instead of a verification code. Learn more about configuring a - security key. -

- + oneLowercase: () => LocalizedString + /** + * Maximum port is 65535. */ - infoMessage: () => LocalizedString; - form: { - messages: { - /** - * Security key added. - */ - success: () => LocalizedString; - }; - fields: { - name: { - /** - * New key name - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Add new Key - */ - submit: () => LocalizedString; - }; - }; - }; - recoveryCodes: { - /** - * Recovery codes - */ - title: () => LocalizedString; - /** - * I have saved my codes - */ - submit: () => LocalizedString; - messages: { - /** - * Codes copied. - */ - copied: () => LocalizedString; - }; - /** - * -

- Treat your recovery codes with the same level of attention as you - would your password! We recommend saving them with a password manager - such as Lastpass, bitwarden or Keeper. -

- + portMax: () => LocalizedString + /** + * Enter a valid endpoint. */ - infoMessage: () => LocalizedString; - }; - registerTOTP: { - /** - * Authenticator App Setup - */ - title: () => LocalizedString; - /** - * -

- To setup your MFA, scan this QR code with your authenticator app, then - enter the code in the field below: -

- + endpoint: () => LocalizedString + /** + * Enter a valid address. */ - infoMessage: () => LocalizedString; - messages: { - /** - * TOTP path copied. - */ - totpCopied: () => LocalizedString; - /** - * TOTP Enabled - */ - success: () => LocalizedString; - }; - /** - * Copy TOTP path - */ - copyPath: () => LocalizedString; - form: { - fields: { - code: { - /** - * Authenticator code - */ - label: () => LocalizedString; - /** - * Code is invalid - */ - error: () => LocalizedString; - }; - }; - controls: { - /** - * Verify code - */ - submit: () => LocalizedString; - }; - }; - }; - registerEmailMFA: { - /** - * Email MFA Setup - */ - title: () => LocalizedString; - /** - * -

- To setup your MFA enter the code that was sent to your account email: {email} -

- + address: () => LocalizedString + /** + * Enter a valid port. */ - infoMessage: (arg: { email: string }) => LocalizedString; - messages: { - /** - * Email MFA Enabled - */ - success: () => LocalizedString; - /** - * Verification code resent - */ - resend: () => LocalizedString; - }; - form: { - fields: { - code: { - /** - * Email code - */ - label: () => LocalizedString; - /** - * Code is invalid - */ - error: () => LocalizedString; - }; - }; - controls: { - /** - * Verify code - */ - submit: () => LocalizedString; - /** - * Resend email - */ - resend: () => LocalizedString; - }; - }; - }; - editDevice: { - /** - * Edit device - */ - title: () => LocalizedString; - messages: { - /** - * Device has been updated. - */ - success: () => LocalizedString; - }; - form: { - fields: { - name: { - /** - * Device Name - */ - label: () => LocalizedString; - }; - publicKey: { - /** - * Device Public Key (WireGuard) - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Edit device - */ - submit: () => LocalizedString; - }; - }; - }; - deleteDevice: { - /** - * Delete device - */ - title: () => LocalizedString; - /** - * Do you want to delete {deviceName} device ? - */ - message: (arg: { deviceName: unknown }) => LocalizedString; - /** - * Delete device - */ - submit: () => LocalizedString; - messages: { - /** - * Device has been deleted. - */ - success: () => LocalizedString; - }; - }; - addWallet: { - /** - * Add wallet - */ - title: () => LocalizedString; - /** - * In order to add a ETH wallet you will need to sign message. - */ - infoBox: () => LocalizedString; - form: { - fields: { - name: { - /** - * Wallet name - */ - placeholder: () => LocalizedString; - /** - * Name - */ - label: () => LocalizedString; - }; - address: { - /** - * Wallet address - */ - placeholder: () => LocalizedString; - /** - * Address - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Add wallet - */ - submit: () => LocalizedString; - }; - }; - }; - keyDetails: { - /** - * YubiKey details - */ - title: () => LocalizedString; - /** - * Download all keys - */ - downloadAll: () => LocalizedString; - }; - deleteUser: { - /** - * Delete account - */ - title: () => LocalizedString; - controls: { - /** - * Delete account - */ - submit: () => LocalizedString; - }; - /** - * Do you want to delete {username} account permanently ? - */ - message: (arg: { username: string }) => LocalizedString; - messages: { - /** - * {username} deleted. - */ - success: (arg: { username: string }) => LocalizedString; - }; - }; - disableUser: { - /** - * Disable account - */ - title: () => LocalizedString; - controls: { - /** - * Disable account - */ - submit: () => LocalizedString; - }; - /** - * Do you want to disable {username} account? - */ - message: (arg: { username: string }) => LocalizedString; - messages: { - /** - * {username} disabled. - */ - success: (arg: { username: string }) => LocalizedString; - }; - }; - enableUser: { - /** - * Enable account - */ - title: () => LocalizedString; - controls: { - /** - * Enable account - */ - submit: () => LocalizedString; - }; - /** - * Do you want to enable {username} account? - */ - message: (arg: { username: string }) => LocalizedString; - messages: { - /** - * {username} enabled. - */ - success: (arg: { username: string }) => LocalizedString; - }; - }; - deleteProvisioner: { - /** - * Delete provisioner - */ - title: () => LocalizedString; - controls: { - /** - * Delete provisioner - */ - submit: () => LocalizedString; - }; - /** - * Do you want to delete {id} provisioner? - */ - message: (arg: { id: string }) => LocalizedString; - messages: { - /** - * {provisioner} deleted. - */ - success: (arg: { provisioner: string }) => LocalizedString; - }; - }; - changeUserPassword: { - messages: { - /** - * Password changed. - */ - success: () => LocalizedString; - }; - /** - * Change user password - */ - title: () => LocalizedString; - form: { - controls: { - /** - * Save new password - */ - submit: () => LocalizedString; - }; - fields: { - newPassword: { - /** - * New password - */ - label: () => LocalizedString; - }; - confirmPassword: { - /** - * Repeat password - */ - label: () => LocalizedString; - }; - }; - }; - }; - provisionKeys: { - /** - * Yubikey provisioning: - */ - title: () => LocalizedString; - /** - * Please be advised that this operation wll wipe openpgp application on yubikey and reconfigure it. - */ - warning: () => LocalizedString; - /** - * The selected provisioner must have a clean YubiKey - plugged in be provisioned. To clean a used YubiKey - gpg --card-edit before provisioning. + validPort: () => LocalizedString + /** + * Code should have 6 digits. */ - infoBox: () => LocalizedString; - /** - * Select one of the following provisioners to provision a YubiKey: - */ - selectionLabel: () => LocalizedString; - noData: { - /** - * No workers found, waiting... - */ - workers: () => LocalizedString; - }; - controls: { - /** - * Provision YubiKey - */ - submit: () => LocalizedString; - }; - messages: { - /** - * Keys provisioned - */ - success: () => LocalizedString; - /** - * Error while getting worker status. - */ - errorStatus: () => LocalizedString; - }; - }; - addUser: { - /** - * Add new user - */ - title: () => LocalizedString; - messages: { - /** - * User added - */ - userAdded: () => LocalizedString; - }; - form: { - /** - * Add user - */ - submit: () => LocalizedString; - fields: { - username: { - /** - * login - */ - placeholder: () => LocalizedString; - /** - * Login - */ - label: () => LocalizedString; - }; - password: { - /** - * Password - */ - placeholder: () => LocalizedString; - /** - * Password - */ - label: () => LocalizedString; - }; - email: { - /** - * User e-mail - */ - placeholder: () => LocalizedString; - /** - * User e-mail - */ - label: () => LocalizedString; - }; - firstName: { - /** - * First name - */ - placeholder: () => LocalizedString; - /** - * First name - */ - label: () => LocalizedString; - }; - lastName: { - /** - * Last name - */ - placeholder: () => LocalizedString; - /** - * Last name - */ - label: () => LocalizedString; - }; - phone: { - /** - * Phone - */ - placeholder: () => LocalizedString; - /** - * Phone - */ - label: () => LocalizedString; - }; - enableEnrollment: { - /** - * Use user self-enrollment process - */ - label: () => LocalizedString; - /** - * more information here - */ - link: () => LocalizedString; - }; - }; - }; - }; - webhookModal: { - title: { - /** - * Add webhook. - */ - addWebhook: () => LocalizedString; - /** - * Edit webhook - */ - editWebhook: () => LocalizedString; - }; - messages: { - /** - * Client ID copied. - */ - clientIdCopy: () => LocalizedString; - /** - * Client secret copied. - */ - clientSecretCopy: () => LocalizedString; - }; - form: { - /** - * Trigger events: - */ - triggers: () => LocalizedString; - messages: { - /** - * Webhook created. - */ - successAdd: () => LocalizedString; - /** - * Webhook modified. - */ - successModify: () => LocalizedString; - }; - error: { - /** - * URL is required. - */ - urlRequired: () => LocalizedString; - /** - * Must be a valid URL. - */ - validUrl: () => LocalizedString; - /** - * Must have at least one trigger. - */ - scopeValidation: () => LocalizedString; - /** - * Token is required. - */ - tokenRequired: () => LocalizedString; - }; - fields: { - description: { - /** - * Description - */ - label: () => LocalizedString; - /** - * Webhook to create gmail account on new user - */ - placeholder: () => LocalizedString; - }; - token: { - /** - * Secret token - */ - label: () => LocalizedString; - /** - * Authorization token - */ - placeholder: () => LocalizedString; - }; - url: { - /** - * Webhook URL - */ - label: () => LocalizedString; - /** - * https://example.com/webhook - */ - placeholder: () => LocalizedString; - }; - userCreated: { - /** - * New user Created - */ - label: () => LocalizedString; - }; - userDeleted: { - /** - * User deleted - */ - label: () => LocalizedString; - }; - userModified: { - /** - * User modified - */ - label: () => LocalizedString; - }; - hwkeyProvision: { - /** - * User Yubikey provision - */ - label: () => LocalizedString; - }; - }; - }; - }; - deleteWebhook: { - /** - * Delete webhook - */ - title: () => LocalizedString; - /** - * Do you want to delete {name} webhook ? - */ - message: (arg: { name: string }) => LocalizedString; - /** - * Delete - */ - submit: () => LocalizedString; - messages: { - /** - * Webhook deleted. - */ - success: () => LocalizedString; - }; - }; - }; - addDevicePage: { - /** - * Add device - */ - title: () => LocalizedString; - helpers: { - /** - * You can add a device using this wizard. Opt for our native application "defguard" or any other WireGuard client. If you're unsure, we recommend using defguard for simplicity. - */ - setupOpt: () => LocalizedString; - /** - * Please download defguard desktop client here and then follow this guide. - */ - client: () => LocalizedString; - }; - messages: { - /** - * Device added - */ - deviceAdded: () => LocalizedString; - }; - steps: { - setupMethod: { - remote: { - /** - * Configure Desktop Client - */ - title: () => LocalizedString; - /** - * A breeze to set up with just a single token. Download the client and enjoy straightforward security. - */ - subTitle: () => LocalizedString; - /** - * Download defguard Client - */ - link: () => LocalizedString; - }; - manual: { - /** - * Manual WireGuard Client - */ - title: () => LocalizedString; - /** - * For advanced users, get a unique config via download or QR code. Download the client and take control of your VPN setup. - */ - subTitle: () => LocalizedString; - /** - * Download WireGuard Client - */ - link: () => LocalizedString; - }; - }; - configDevice: { - /** - * Configure device - */ - title: () => LocalizedString; - messages: { - /** - * Configuration has been copied to the clipboard - */ - copyConfig: () => LocalizedString; - }; - helpers: { - /** - * -

- Please be advised that you have to download the configuration now, - since we do not store your private key. After this - page is closed, you will not be able to get your - full configuration file (with private keys, only blank template). -

- - */ - warningAutoMode: () => LocalizedString; - /** - * -

- Please be advised that configuration provided here does not include private key and uses public key to fill it's place you will need to replace it on your own for configuration to work properly. -

- - */ - warningManualMode: () => LocalizedString; - /** - * You don't have access to any network. - */ - warningNoNetworks: () => LocalizedString; - /** - * -

- You can setup your device faster with wireguard application by scanning this QR code. -

- */ - qrHelper: () => LocalizedString; - }; - /** - * Use provided configuration file below by scanning QR Code or importing it as file on your devices WireGuard instance. - */ - qrInfo: () => LocalizedString; - /** - * Device Name - */ - inputNameLabel: () => LocalizedString; - /** - * WireGuard Config File - */ - qrLabel: () => LocalizedString; - }; - setupDevice: { - /** - * Create VPN device - */ - title: () => LocalizedString; - /** - * -

- You need to configure WireGuardVPN on your device, please visit  - documentation if you don't know how to do it. -

- + validCode: () => LocalizedString + /** + * Only valid IP or domain is allowed. + */ + allowedIps: () => LocalizedString + /** + * Cannot start from number. + */ + startFromNumber: () => LocalizedString + /** + * Fields don't match. + */ + repeat: () => LocalizedString + /** + * Expected a valid number. + */ + number: () => LocalizedString + /** + * Minimum value of {value} not reached. + */ + minimumValue: (arg: { value: number }) => LocalizedString + /** + * Maximum value of {value} exceeded. + */ + maximumValue: (arg: { value: number }) => LocalizedString + /** + * Too many bad login attempts. Please try again in a few minutes. + */ + tooManyBadLoginAttempts: () => LocalizedString + } + floatingErrors: { + /** + * Please correct the following: + */ + title: () => LocalizedString + } + } + components: { + deviceConfigsCard: { + /** + * WireGuard Config for location: + */ + cardTitle: () => LocalizedString + messages: { + /** + * Configuration copied to the clipboard */ -<<<<<<< HEAD - infoMessage: (arg: { addDevicesDocs: string }) => LocalizedString; - options: { - /** - * Generate key pair - */ - auto: () => LocalizedString; - /** - * Use my own public key - */ - manual: () => LocalizedString; - }; - form: { - fields: { - name: { - /** - * Device Name - */ - label: () => LocalizedString; - }; - publicKey: { - /** - * Provide Your Public Key - */ - label: () => LocalizedString; - }; - }; - errors: { - name: { - /** - * Device with this name already exists - */ - duplicatedName: () => LocalizedString; - }; - }; - }; - }; - copyToken: { - /** - * Client activation - */ - title: () => LocalizedString; - /** - * Activation token - */ - tokenCardTitle: () => LocalizedString; - /** - * Defguard Instance URL - */ - urlCardTitle: () => LocalizedString; - }; - }; - }; - userPage: { - title: { - /** - * User Profile - */ - view: () => LocalizedString; - /** - * Edit User Profile - */ - edit: () => LocalizedString; - }; - messages: { - /** - * User updated. - */ - editSuccess: () => LocalizedString; - /** - * Could not get user information. - */ - failedToFetchUserData: () => LocalizedString; - /** - * Password reset email has been sent. - */ - passwordResetEmailSent: () => LocalizedString; - }; - userDetails: { - /** - * Profile Details - */ - header: () => LocalizedString; - messages: { - /** - * App and all tokens deleted. - */ - deleteApp: () => LocalizedString; - }; - fields: { - username: { - /** - * Username - */ - label: () => LocalizedString; - }; - firstName: { - /** - * First name - */ - label: () => LocalizedString; - }; - lastName: { - /** - * Last name - */ - label: () => LocalizedString; - }; - phone: { - /** - * Phone number - */ - label: () => LocalizedString; - }; - email: { - /** - * E-mail - */ - label: () => LocalizedString; - }; - status: { - /** - * Status - */ - label: () => LocalizedString; - /** - * Active - */ - active: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - }; - groups: { - /** - * User groups - */ - label: () => LocalizedString; - /** - * No groups - */ - noData: () => LocalizedString; - }; - apps: { - /** - * Authorized apps - */ - label: () => LocalizedString; - /** - * No authorized apps - */ - noData: () => LocalizedString; - }; - }; - }; - userAuthInfo: { - /** - * Password and authentication - */ - header: () => LocalizedString; - password: { - /** - * Password settings - */ - header: () => LocalizedString; - /** - * Change password - */ - changePassword: () => LocalizedString; - }; - recovery: { - /** - * Recovery options - */ - header: () => LocalizedString; - codes: { - /** - * Recovery Codes - */ - label: () => LocalizedString; - /** - * Viewed - */ - viewed: () => LocalizedString; - }; - }; - mfa: { - /** - * Two-factor methods - */ - header: () => LocalizedString; - edit: { - /** - * Disable MFA - */ - disable: () => LocalizedString; - }; - messages: { - /** - * MFA disabled. - */ - mfaDisabled: () => LocalizedString; - /** - * One time password disabled. - */ - OTPDisabled: () => LocalizedString; - /** - * Email MFA disabled. - */ - EmailMFADisabled: () => LocalizedString; - /** - * MFA method changed - */ - changeMFAMethod: () => LocalizedString; - }; - securityKey: { - /** - * security key - */ - singular: () => LocalizedString; - /** - * security keys - */ - plural: () => LocalizedString; - }; - /** - * default - */ - default: () => LocalizedString; - /** - * Enabled - */ - enabled: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - wallet: { - /** - * Wallet - */ - singular: () => LocalizedString; - /** - * Wallets - */ - plural: () => LocalizedString; - }; - labels: { - /** - * Time based one time passwords - */ - totp: () => LocalizedString; - /** - * Email - */ - email: () => LocalizedString; - /** - * Security keys - */ - webauth: () => LocalizedString; - /** - * Wallets - */ - wallets: () => LocalizedString; - }; - editMode: { - /** - * Enable - */ - enable: () => LocalizedString; - /** - * Disable - */ - disable: () => LocalizedString; - /** - * Make default - */ - makeDefault: () => LocalizedString; - webauth: { - /** - * Manage security keys - */ - manage: () => LocalizedString; - }; - }; - }; - }; - controls: { - /** - * Edit profile - */ - editButton: () => LocalizedString; - /** - * Delete account - */ - deleteAccount: () => LocalizedString; - }; - devices: { - /** - * User devices - */ - header: () => LocalizedString; - addDevice: { - /** - * Add new device - */ - web: () => LocalizedString; - /** - * Add this device - */ - desktop: () => LocalizedString; - }; - card: { - labels: { - /** - * Public IP - */ - publicIP: () => LocalizedString; - /** - * Connected through - */ - connectedThrough: () => LocalizedString; - /** - * Connected date - */ - connectionDate: () => LocalizedString; - /** - * Last connected from - */ - lastLocation: () => LocalizedString; - /** - * Last connected - */ - lastConnected: () => LocalizedString; - /** - * Assigned IP - */ - assignedIp: () => LocalizedString; - /** - * active - */ - active: () => LocalizedString; - /** - * Never connected - */ - noData: () => LocalizedString; - }; - edit: { - /** - * Edit device - */ - edit: () => LocalizedString; - /** - * Delete device - */ - delete: () => LocalizedString; - /** - * Show configuration - */ - showConfigurations: () => LocalizedString; - }; - }; - }; - wallets: { - messages: { - /** - * Address copied. - */ - addressCopied: () => LocalizedString; - duplicate: { - /** - * Connected wallet is already registered - */ - primary: () => LocalizedString; - /** - * Please connect unused wallet. - */ - sub: () => LocalizedString; - }; - }; - /** - * User wallets - */ - header: () => LocalizedString; - /** - * Add new wallet - */ - addWallet: () => LocalizedString; - card: { - /** - * Address - */ - address: () => LocalizedString; - /** - * MFA - */ - mfaBadge: () => LocalizedString; - edit: { - /** - * Enable MFA - */ - enableMFA: () => LocalizedString; - /** - * Disable MFA - */ - disableMFA: () => LocalizedString; - /** - * Delete - */ - delete: () => LocalizedString; - /** - * Copy address - */ - copyAddress: () => LocalizedString; - }; - messages: { - /** - * Wallet deleted - */ - deleteSuccess: () => LocalizedString; - /** - * Wallet MFA enabled - */ - enableMFA: () => LocalizedString; - /** - * Wallet MFA disabled - */ - disableMFA: () => LocalizedString; - }; - }; - }; - yubiKey: { - /** - * User YubiKey - */ - header: () => LocalizedString; - /** - * Provision a YubiKey - */ - provision: () => LocalizedString; - keys: { - /** - * PGP key - */ - pgp: () => LocalizedString; - /** - * SSH key - */ - ssh: () => LocalizedString; - }; - noLicense: { - /** - * YubiKey module - */ - moduleName: () => LocalizedString; - /** - * This is enterprise module for YubiKey - */ - line1: () => LocalizedString; - /** - * management and provisioning. - */ - line2: () => LocalizedString; - }; - }; - authenticationKeys: { - /** - * User Authentication Keys - */ - header: () => LocalizedString; - /** - * Add new Key - */ - addKey: () => LocalizedString; - keysList: { - common: { - /** - * Rename - */ - rename: () => LocalizedString; - /** - * Key - */ - key: () => LocalizedString; - /** - * Download - */ - download: () => LocalizedString; - /** - * Copy - */ - copy: () => LocalizedString; - /** - * Serial Number - */ - serialNumber: () => LocalizedString; - /** - * Delete - */ - delete: () => LocalizedString; - }; - }; - deleteModal: { - /** - * Delete Authentication Key - */ - title: () => LocalizedString; - /** - * Key {name} will be deleted permanently. - */ - confirmMessage: (arg: { name: string }) => LocalizedString; - }; - addModal: { - /** - * Add new Authentication Key - */ - header: () => LocalizedString; - /** - * Key Type - */ - keyType: () => LocalizedString; - keyForm: { - placeholders: { - /** - * Key Name - */ - title: () => LocalizedString; - key: { - /** - * Begins with ssh-rsa, ecdsa-sha2-nistp256, ... - */ - ssh: () => LocalizedString; - /** - * Begins with -----BEGIN PGP PUBLIC KEY BLOCK----- - */ - gpg: () => LocalizedString; - }; - }; - labels: { - /** - * Name - */ - title: () => LocalizedString; - /** - * Key - */ - key: () => LocalizedString; - }; - /** - * Add {name} key - */ - submit: (arg: { name: string }) => LocalizedString; - }; - yubikeyForm: { - selectWorker: { - /** - * Please be advised that this operation will wipe openpgp application on YubiKey and reconfigure it. - */ - info: () => LocalizedString; - /** - * Select on of the following provisioners to provision a YubiKey - */ - selectLabel: () => LocalizedString; - /** - * No workers are registered right now. - */ - noData: () => LocalizedString; - /** - * Available - */ - available: () => LocalizedString; - /** - * Unavailable - */ - unavailable: () => LocalizedString; - }; - provisioning: { - /** - * Provisioning in progress, please wait. - */ - inProgress: () => LocalizedString; - /** - * Provisioning failed ! - */ - error: () => LocalizedString; - /** - * Yubikey provisioned successfully - */ - success: () => LocalizedString; - }; - /** - * Provision Yubikey - */ - submit: () => LocalizedString; - }; - messages: { - /** - * Key added. - */ - keyAdded: () => LocalizedString; - /** - * Key has already been added. - */ - keyExists: () => LocalizedString; - /** - * Unsupported key format. - */ - unsupportedKeyFormat: () => LocalizedString; - /** - * Could not add the key. Please try again later. - */ - genericError: () => LocalizedString; - }; - }; - }; - }; - usersOverview: { - /** - * Users - */ - pageTitle: () => LocalizedString; - search: { - /** - * Find users - */ - placeholder: () => LocalizedString; - }; - filterLabels: { - /** - * All users - */ - all: () => LocalizedString; - /** - * Admins only - */ - admin: () => LocalizedString; - /** - * Users only - */ - users: () => LocalizedString; - }; - /** - * All users - */ - usersCount: () => LocalizedString; - /** - * Add new - */ - addNewUser: () => LocalizedString; - list: { - headers: { - /** - * User name - */ - name: () => LocalizedString; - /** - * Login - */ - username: () => LocalizedString; - /** - * Phone - */ - phone: () => LocalizedString; - /** - * Actions - */ - actions: () => LocalizedString; - }; - editButton: { - /** - * Change password - */ - changePassword: () => LocalizedString; - /** - * Edit account - */ - edit: () => LocalizedString; - /** - * Add YubiKey - */ - addYubikey: () => LocalizedString; - /** - * Add SSH Key - */ - addSSH: () => LocalizedString; - /** - * Add GPG Key - */ - addGPG: () => LocalizedString; - /** - * Delete account - */ - delete: () => LocalizedString; - /** - * Start enrollment - */ - startEnrollment: () => LocalizedString; - /** - * Configure Desktop Client - */ - activateDesktop: () => LocalizedString; - /** - * Reset password - */ - resetPassword: () => LocalizedString; - }; - }; - }; - navigation: { - bar: { - /** - * VPN Overview - */ - overview: () => LocalizedString; - /** - * Users - */ - users: () => LocalizedString; - /** - * YubiKeys - */ - provisioners: () => LocalizedString; - /** - * Webhooks - */ - webhooks: () => LocalizedString; - /** - * OpenID Apps - */ - openId: () => LocalizedString; - /** - * My Profile - */ - myProfile: () => LocalizedString; - /** - * Settings - */ - settings: () => LocalizedString; - /** - * Log out - */ - logOut: () => LocalizedString; - /** - * Enrollment - */ - enrollment: () => LocalizedString; - /** - * Support - */ - support: () => LocalizedString; - /** - * Groups - */ - groups: () => LocalizedString; - }; - mobileTitles: { - /** - * Groups - */ - groups: () => LocalizedString; - /** - * Create location - */ - wizard: () => LocalizedString; - /** - * Users - */ - users: () => LocalizedString; - /** - * Settings - */ - settings: () => LocalizedString; - /** - * User Profile - */ - user: () => LocalizedString; - /** - * Yubikey - */ - provisioners: () => LocalizedString; - /** - * Webhooks - */ - webhooks: () => LocalizedString; - /** - * OpenId Apps - */ - openId: () => LocalizedString; - /** - * Location Overview - */ - overview: () => LocalizedString; - /** - * Edit Location - */ - networkSettings: () => LocalizedString; - /** - * Enrollment - */ - enrollment: () => LocalizedString; - /** - * Support - */ - support: () => LocalizedString; - }; - /** - * Copyright ©2023-2024 - */ - copyright: () => LocalizedString; - version: { - /** - * Application version: {version} - */ - open: (arg: { version: string }) => LocalizedString; - /** - * v{version} - */ - closed: (arg: { version: string }) => LocalizedString; - }; - }; - form: { - /** - * Download - */ - download: () => LocalizedString; - /** - * Copy - */ - copy: () => LocalizedString; - /** - * Save changes - */ - saveChanges: () => LocalizedString; - /** - * Submit - */ - submit: () => LocalizedString; - /** - * Sign in - */ - login: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - /** - * Close - */ - close: () => LocalizedString; - placeholders: { - /** - * Password - */ - password: () => LocalizedString; - /** - * Username - */ - username: () => LocalizedString; - }; - error: { - /** - * Field contains forbidden characters. - */ - forbiddenCharacter: () => LocalizedString; - /** - * Username is already in use. - */ - usernameTaken: () => LocalizedString; - /** - * Key is invalid. - */ - invalidKey: () => LocalizedString; - /** - * Field is invalid. - */ - invalid: () => LocalizedString; - /** - * Field is required. - */ - required: () => LocalizedString; - /** - * Submitted code is invalid. - */ - invalidCode: () => LocalizedString; - /** - * Maximum length exceeded. - */ - maximumLength: () => LocalizedString; - /** - * Minimum length not reached. - */ - minimumLength: () => LocalizedString; - /** - * No special characters are allowed. - */ - noSpecialChars: () => LocalizedString; - /** - * One digit required. - */ - oneDigit: () => LocalizedString; - /** - * Special character required. - */ - oneSpecial: () => LocalizedString; - /** - * One uppercase character required. - */ - oneUppercase: () => LocalizedString; - /** - * One lowercase character required. - */ - oneLowercase: () => LocalizedString; - /** - * Maximum port is 65535. - */ - portMax: () => LocalizedString; - /** - * Enter a valid endpoint. - */ - endpoint: () => LocalizedString; - /** - * Enter a valid address. - */ - address: () => LocalizedString; - /** - * Enter a valid port. - */ - validPort: () => LocalizedString; - /** - * Code should have 6 digits. - */ - validCode: () => LocalizedString; - /** - * Only valid IP or domain is allowed. - */ - allowedIps: () => LocalizedString; - /** - * Cannot start from number. - */ - startFromNumber: () => LocalizedString; - /** - * Fields don't match. - */ - repeat: () => LocalizedString; - /** - * Expected a valid number. - */ - number: () => LocalizedString; - /** - * Minimum value of {value} not reached. - */ - minimumValue: (arg: { value: number }) => LocalizedString; - /** - * Maximum value of {value} exceeded. - */ - maximumValue: (arg: { value: number }) => LocalizedString; - /** - * Too many bad login attempts. Please try again in a few minutes. - */ - tooManyBadLoginAttempts: () => LocalizedString; - }; - floatingErrors: { - /** - * Please correct the following: - */ - title: () => LocalizedString; - }; - }; - components: { - deviceConfigsCard: { - /** - * WireGuard Config for location: - */ - cardTitle: () => LocalizedString; - messages: { - /** - * Configuration copied to the clipboard - */ - copyConfig: () => LocalizedString; - }; - }; - gatewaysStatus: { - /** - * Gateways - */ - label: () => LocalizedString; - states: { - /** - * All connected - */ - connected: () => LocalizedString; - /** - * One or more are not working - */ - partial: () => LocalizedString; - /** - * Disconnected - */ - disconnected: () => LocalizedString; - /** - * Retrieving connections failed - */ - error: () => LocalizedString; - /** - * Retrieving connections - */ - loading: () => LocalizedString; - }; - messages: { - /** - * Failed to get gateways status - */ - error: () => LocalizedString; - /** - * Failed to delete gateway - */ - deleteError: () => LocalizedString; - }; - }; - noLicenseBox: { - footer: { - /** - * Get an enterprise license - */ - get: () => LocalizedString; - /** - * by contacting: - */ - contact: () => LocalizedString; - }; - }; - }; - settingsPage: { - /** - * Settings - */ - title: () => LocalizedString; - tabs: { - /** - * SMTP - */ - smtp: () => LocalizedString; - /** - * Global settings - */ - global: () => LocalizedString; - /** - * LDAP - */ - ldap: () => LocalizedString; - /** - * OpenID - */ - openid: () => LocalizedString; - /** - * Enterprise features - */ - enterprise: () => LocalizedString; - }; - messages: { - /** - * Settings updated - */ - editSuccess: () => LocalizedString; - /** - * Challenge message changed - */ - challengeSuccess: () => LocalizedString; - }; - enterpriseOnly: { - /** - * This feature is available only in Defguard Enterprise. - */ - title: () => LocalizedString; - /** - * To learn more, visit our - */ - subtitle: () => LocalizedString; - /** - * website - */ - website: () => LocalizedString; - }; - ldapSettings: { - /** - * LDAP Settings - */ - title: () => LocalizedString; - form: { - labels: { - /** - * URL - */ - ldap_url: () => LocalizedString; - /** - * Bind Username - */ - ldap_bind_username: () => LocalizedString; - /** - * Bind Password - */ - ldap_bind_password: () => LocalizedString; - /** - * Member Attribute - */ - ldap_member_attr: () => LocalizedString; - /** - * Username Attribute - */ - ldap_username_attr: () => LocalizedString; - /** - * User Object Class - */ - ldap_user_obj_class: () => LocalizedString; - /** - * User Search Base - */ - ldap_user_search_base: () => LocalizedString; - /** - * Groupname Attribute - */ - ldap_groupname_attr: () => LocalizedString; - /** - * Group Search Base - */ - ldap_group_search_base: () => LocalizedString; - /** - * Group Member Attribute - */ - ldap_group_member_attr: () => LocalizedString; - /** - * Group Object Class - */ - ldap_group_obj_class: () => LocalizedString; - }; - /** - * Delete configuration - */ - delete: () => LocalizedString; - }; - test: { - /** - * Test LDAP Connection - */ - title: () => LocalizedString; - /** - * Test - */ - submit: () => LocalizedString; - messages: { - /** - * LDAP connected successfully - */ - success: () => LocalizedString; - /** - * LDAP connection rejected - */ - error: () => LocalizedString; - }; - }; - }; - openIdSettings: { - general: { - /** - * External OpenID Settings - */ - title: () => LocalizedString; - /** - * Here you can change general OpenID behavior in your Defguard instance. - */ - helper: () => LocalizedString; - createAccount: { - /** - * Automatically create user account when logging in for the first time through external OpenID. - */ - label: () => LocalizedString; - /** - * If this option is enabled, Defguard automatically creates new accounts for users who log in for the first time using an external OpenID provider. Otherwise, the user account must first be created by an administrator. - */ - helper: () => LocalizedString; - }; - }; - form: { - /** - * External OpenID Client Settings - */ - title: () => LocalizedString; - /** - * Here you can configure the OpenID client settings with values provided by your external OpenID provider. - */ - helper: () => LocalizedString; - /** - * Custom - */ - custom: () => LocalizedString; - /** - * Documentation - */ - documentation: () => LocalizedString; - /** - * Delete provider - */ - delete: () => LocalizedString; - labels: { - provider: { - /** - * Provider - */ - label: () => LocalizedString; - /** - * Select your OpenID provider. You can use custom provider and fill in the base URL by yourself. - */ - helper: () => LocalizedString; - }; - client_id: { - /** - * Client ID - */ - label: () => LocalizedString; - /** - * Client ID provided by your OpenID provider. - */ - helper: () => LocalizedString; - }; - client_secret: { - /** - * Client Secret - */ - label: () => LocalizedString; - /** - * Client Secret provided by your OpenID provider. - */ - helper: () => LocalizedString; - }; - base_url: { - /** - * Base URL - */ - label: () => LocalizedString; - /** - * Base URL of your OpenID provider, e.g. https://accounts.google.com. Make sure to check our documentation for more information and examples. - */ - helper: () => LocalizedString; - }; - }; - }; - }; - modulesVisibility: { - /** - * Modules Visibility - */ - header: () => LocalizedString; - /** -======= - infoMessage: (arg: { addDevicesDocs: string }) => LocalizedString - options: { - /** - * Generate key pair - */ - auto: () => LocalizedString - /** - * Use my own public key - */ - manual: () => LocalizedString - } - form: { - fields: { - name: { - /** - * Device Name - */ - label: () => LocalizedString - } - publicKey: { - /** - * Provide Your Public Key - */ - label: () => LocalizedString - } - } - errors: { - name: { - /** - * Device with this name already exists - */ - duplicatedName: () => LocalizedString - } - } - } + copyConfig: () => LocalizedString + } + } + gatewaysStatus: { + /** + * Gateways + */ + label: () => LocalizedString + states: { + /** + * All connected + */ + connected: () => LocalizedString + /** + * One or more are not working + */ + partial: () => LocalizedString + /** + * Disconnected + */ + disconnected: () => LocalizedString + /** + * Retrieving connections failed + */ + error: () => LocalizedString + /** + * Retrieving connections + */ + loading: () => LocalizedString } - copyToken: { + messages: { /** - * Client activation + * Failed to get gateways status */ - title: () => LocalizedString + error: () => LocalizedString /** - * Activation token + * Failed to delete gateway */ - tokenCardTitle: () => LocalizedString + deleteError: () => LocalizedString + } + } + noLicenseBox: { + footer: { /** - * Defguard Instance URL + * Get an enterprise license */ - urlCardTitle: () => LocalizedString + get: () => LocalizedString + /** + * by contacting: + */ + contact: () => LocalizedString } } } - userPage: { - title: { + settingsPage: { + /** + * Settings + */ + title: () => LocalizedString + tabs: { /** - * User Profile + * SMTP */ - view: () => LocalizedString + smtp: () => LocalizedString /** - * Edit User Profile + * Global settings */ - edit: () => LocalizedString + global: () => LocalizedString + /** + * LDAP + */ + ldap: () => LocalizedString + /** + * OpenID + */ + openid: () => LocalizedString + /** + * Enterprise features + */ + enterprise: () => LocalizedString } messages: { /** - * User updated. + * Settings updated */ editSuccess: () => LocalizedString /** - * Could not get user information. + * Challenge message changed */ - failedToFetchUserData: () => LocalizedString + challengeSuccess: () => LocalizedString + } + enterpriseOnly: { /** - * Password reset email has been sent. + * This feature is available only in Defguard Enterprise. */ - passwordResetEmailSent: () => LocalizedString + title: () => LocalizedString + /** + * To learn more, visit our + */ + subtitle: () => LocalizedString + /** + * website + */ + website: () => LocalizedString } - userDetails: { + ldapSettings: { /** - * Profile Details + * LDAP Settings */ - header: () => LocalizedString - messages: { - /** - * App and all tokens deleted. - */ - deleteApp: () => LocalizedString - } - warningModals: { - /** - * Warning - */ - title: () => LocalizedString - content: { + title: () => LocalizedString + form: { + labels: { /** - * Changing the username has a significant impact on services the user has logged into using Defguard. After changing it, the user may lose access to applications (since they will not recognize them). Are you sure you want to proceed? + * URL */ - usernameChange: () => LocalizedString + ldap_url: () => LocalizedString /** - * If you are using external OpenID Connect (OIDC) providers to authenticate users, changing a user's email address may have a significant impact on their ability to log in to Defguard. Are you sure you want to proceed? + * Bind Username */ - emailChange: () => LocalizedString - } - buttons: { + ldap_bind_username: () => LocalizedString /** - * Proceed + * Bind Password */ - proceed: () => LocalizedString + ldap_bind_password: () => LocalizedString /** - * Cancel + * Member Attribute */ - cancel: () => LocalizedString + ldap_member_attr: () => LocalizedString + /** + * Username Attribute + */ + ldap_username_attr: () => LocalizedString + /** + * User Object Class + */ + ldap_user_obj_class: () => LocalizedString + /** + * User Search Base + */ + ldap_user_search_base: () => LocalizedString + /** + * Groupname Attribute + */ + ldap_groupname_attr: () => LocalizedString + /** + * Group Search Base + */ + ldap_group_search_base: () => LocalizedString + /** + * Group Member Attribute + */ + ldap_group_member_attr: () => LocalizedString + /** + * Group Object Class + */ + ldap_group_obj_class: () => LocalizedString } + /** + * Delete configuration + */ + 'delete': () => LocalizedString } - fields: { - username: { + test: { + /** + * Test LDAP Connection + */ + title: () => LocalizedString + /** + * Test + */ + submit: () => LocalizedString + messages: { /** - * Username + * LDAP connected successfully */ - label: () => LocalizedString - } - firstName: { + success: () => LocalizedString /** - * First name + * LDAP connection rejected */ - label: () => LocalizedString + error: () => LocalizedString } - lastName: { + } + } + openIdSettings: { + general: { + /** + * External OpenID Settings + */ + title: () => LocalizedString + /** + * Here you can change general OpenID behavior in your Defguard instance. + */ + helper: () => LocalizedString + createAccount: { /** - * Last name + * Automatically create user account when logging in for the first time through external OpenID. */ label: () => LocalizedString - } - phone: { /** - * Phone number + * If this option is enabled, Defguard automatically creates new accounts for users who log in for the first time using an external OpenID provider. Otherwise, the user account must first be created by an administrator. */ - label: () => LocalizedString + helper: () => LocalizedString + } + } + form: { + /** + * External OpenID Client Settings + */ + title: () => LocalizedString + /** + * Here you can configure the OpenID client settings with values provided by your external OpenID provider. + */ + helper: () => LocalizedString + /** + * Custom + */ + custom: () => LocalizedString + /** + * Documentation + */ + documentation: () => LocalizedString + /** + * Delete provider + */ + 'delete': () => LocalizedString + labels: { + provider: { + /** + * Provider + */ + label: () => LocalizedString + /** + * Select your OpenID provider. You can use custom provider and fill in the base URL by yourself. + */ + helper: () => LocalizedString + } + client_id: { + /** + * Client ID + */ + label: () => LocalizedString + /** + * Client ID provided by your OpenID provider. + */ + helper: () => LocalizedString + } + client_secret: { + /** + * Client Secret + */ + label: () => LocalizedString + /** + * Client Secret provided by your OpenID provider. + */ + helper: () => LocalizedString + } + base_url: { + /** + * Base URL + */ + label: () => LocalizedString + /** + * Base URL of your OpenID provider, e.g. https://accounts.google.com. Make sure to check our documentation for more information and examples. + */ + helper: () => LocalizedString + } } - email: { + } + } + modulesVisibility: { + /** + * Modules Visibility + */ + header: () => LocalizedString + /** + *

+ If your not using some modules you can disable their visibility. +

+ + Read more in documentation. + + */ + helper: (arg: { documentationLink: string }) => LocalizedString + fields: { + wireguard_enabled: { /** - * E-mail + * WireGuard VPN */ label: () => LocalizedString } - status: { + webhooks_enabled: { /** - * Status + * Webhooks */ label: () => LocalizedString - /** - * Active - */ - active: () => LocalizedString - /** - * Disabled - */ - disabled: () => LocalizedString } - groups: { + worker_enabled: { /** - * User groups + * Yubikey provisioning */ label: () => LocalizedString - /** - * No groups - */ - noData: () => LocalizedString } - apps: { + openid_enabled: { /** - * Authorized apps + * OpenID Connect */ label: () => LocalizedString - /** - * No authorized apps - */ - noData: () => LocalizedString } } } - userAuthInfo: { + defaultNetworkSelect: { /** - * Password and authentication + * Default location view */ header: () => LocalizedString - password: { + /** + *

Here you can change your default location view.

+ + Read more in documentation. + + */ + helper: (arg: { documentationLink: string }) => LocalizedString + filterLabels: { /** - * Password settings + * Grid view */ - header: () => LocalizedString + grid: () => LocalizedString /** - * Change password + * List view */ - changePassword: () => LocalizedString + list: () => LocalizedString } - recovery: { - /** - * Recovery options - */ - header: () => LocalizedString - codes: { + } + web3Settings: { + /** + * Web3 / Wallet connect + */ + header: () => LocalizedString + fields: { + signMessage: { /** - * Recovery Codes + * Default sign message template */ label: () => LocalizedString - /** - * Viewed - */ - viewed: () => LocalizedString } } - mfa: { + controls: { /** - * Two-factor methods + * Save changes */ - header: () => LocalizedString - edit: { - /** - * Disable MFA - */ - disable: () => LocalizedString + save: () => LocalizedString + } + } + instanceBranding: { + /** + * Instance Branding + */ + header: () => LocalizedString + form: { + /** + * Name & Logo: + */ + title: () => LocalizedString + fields: { + instanceName: { + /** + * Instance name + */ + label: () => LocalizedString + /** + * Defguard + */ + placeholder: () => LocalizedString + } + mainLogoUrl: { + /** + * Login logo url + */ + label: () => LocalizedString + /** + *

Maximum picture size is 250x100 px

+ */ + helper: () => LocalizedString + /** + * Default image + */ + placeholder: () => LocalizedString + } + navLogoUrl: { + /** + * Menu & navigation small logo + */ + label: () => LocalizedString + /** + *

Maximum picture size is 100x100 px

+ */ + helper: () => LocalizedString + /** + * Default image + */ + placeholder: () => LocalizedString + } } - messages: { + controls: { /** - * MFA disabled. + * Restore default */ - mfaDisabled: () => LocalizedString + restoreDefault: () => LocalizedString /** - * One time password disabled. + * Save changes */ - OTPDisabled: () => LocalizedString + submit: () => LocalizedString + } + } + /** + * +

+ Here you can add url of your logo and name for your defguard + instance it will be displayed instead of defguard. +

+ + Read more in documentation. + + + */ + helper: (arg: { documentationLink: string }) => LocalizedString + } + license: { + /** + * Enterprise + */ + header: () => LocalizedString + helpers: { + enterpriseHeader: { /** - * Email MFA disabled. + * Here you can manage your Defguard Enterprise version license. */ - EmailMFADisabled: () => LocalizedString + text: () => LocalizedString /** - * MFA method changed + * To learn more about Defguard Enterprise, visit our webiste. */ - changeMFAMethod: () => LocalizedString + link: () => LocalizedString } - securityKey: { + licenseKey: { /** - * security key + * Enter your Defguard Enterprise license key below. You should receive it via email after purchasing the license. */ - singular: () => LocalizedString + text: () => LocalizedString /** - * security keys + * You can purchase the license here. */ - plural: () => LocalizedString + link: () => LocalizedString } + } + form: { /** - * default + * License */ - 'default': () => LocalizedString + title: () => LocalizedString + fields: { + key: { + /** + * License key + */ + label: () => LocalizedString + /** + * Your Defguard license key + */ + placeholder: () => LocalizedString + } + } + } + licenseInfo: { /** - * Enabled + * License information */ - enabled: () => LocalizedString + title: () => LocalizedString /** - * Disabled + * No license */ - disabled: () => LocalizedString - wallet: { - /** - * Wallet - */ - singular: () => LocalizedString - /** - * Wallets - */ - plural: () => LocalizedString + noLicense: () => LocalizedString + types: { + subscription: { + /** + * Subscription + */ + label: () => LocalizedString + /** + * A license that automatically renews at regular intervals + */ + helper: () => LocalizedString + } + offline: { + /** + * Offline + */ + label: () => LocalizedString + /** + * The license is valid until the expiry date and does not automatically renew + */ + helper: () => LocalizedString + } } - labels: { - /** - * Time based one time passwords - */ - totp: () => LocalizedString - /** - * Email - */ - email: () => LocalizedString - /** - * Security keys - */ - webauth: () => LocalizedString + fields: { + type: { + /** + * Type + */ + label: () => LocalizedString + } + validUntil: { + /** + * Valid until + */ + label: () => LocalizedString + } + } + } + } + smtp: { + form: { + /** + * SMTP configuration + */ + title: () => LocalizedString + fields: { + encryption: { + /** + * Encryption + */ + label: () => LocalizedString + } + server: { + /** + * Server address + */ + label: () => LocalizedString + /** + * Address + */ + placeholder: () => LocalizedString + } + port: { + /** + * Server port + */ + label: () => LocalizedString + /** + * Port + */ + placeholder: () => LocalizedString + } + user: { + /** + * Server username + */ + label: () => LocalizedString + /** + * Username + */ + placeholder: () => LocalizedString + } + password: { + /** + * Server password + */ + label: () => LocalizedString + /** + * Password + */ + placeholder: () => LocalizedString + } + sender: { + /** + * Sender email address + */ + label: () => LocalizedString + /** + * Address + */ + placeholder: () => LocalizedString + /** + * +

+ System messages will be sent from this address. + E.g. no-reply@my-company.com. +

+ + */ + helper: () => LocalizedString + } + } + controls: { /** - * Wallets + * Save changes */ - wallets: () => LocalizedString + submit: () => LocalizedString } - editMode: { + } + /** + * Delete configuration + */ + 'delete': () => LocalizedString + testForm: { + /** + * Send test email + */ + title: () => LocalizedString + fields: { + to: { + /** + * Address + */ + label: () => LocalizedString + /** + * Address + */ + placeholder: () => LocalizedString + } + } + controls: { /** - * Enable + * Send */ - enable: () => LocalizedString + submit: () => LocalizedString /** - * Disable + * Test email sent */ - disable: () => LocalizedString + success: () => LocalizedString /** - * Make default + * Error sending email */ - makeDefault: () => LocalizedString - webauth: { - /** - * Manage security keys - */ - manage: () => LocalizedString - } + error: () => LocalizedString } } - } - controls: { - /** - * Edit profile - */ - editButton: () => LocalizedString /** - * Delete account + * +

+ Here you can configure SMTP server used to send system messages to the users. +

+ */ - deleteAccount: () => LocalizedString + helper: () => LocalizedString } - devices: { + enrollment: { /** - * User devices + * Enrollment is a process by which a new employee will be able to activate their new account, create a password and configure a VPN device. */ - header: () => LocalizedString - addDevice: { + helper: () => LocalizedString + vpnOptionality: { /** - * Add new device + * VPN step optionality */ - web: () => LocalizedString + header: () => LocalizedString /** - * Add this device + * You can choose whether creating a VPN device is optional or mandatory during enrollment */ - desktop: () => LocalizedString + helper: () => LocalizedString } - card: { - labels: { - /** - * Public IP - */ - publicIP: () => LocalizedString - /** - * Connected through - */ - connectedThrough: () => LocalizedString - /** - * Connected date - */ - connectionDate: () => LocalizedString - /** - * Last connected from - */ - lastLocation: () => LocalizedString - /** - * Last connected - */ - lastConnected: () => LocalizedString + welcomeMessage: { + /** + * Welcome message + */ + header: () => LocalizedString + /** + * +

In this text input you can use Markdown:

+ + + */ + helper: () => LocalizedString + } + welcomeEmail: { + /** + * Welcome e-mail + */ + header: () => LocalizedString + /** + * +

In this text input you can use Markdown:

+ + + */ + helper: () => LocalizedString + } + form: { + controls: { /** - * Assigned IP + * Save changes */ - assignedIp: () => LocalizedString + submit: () => LocalizedString + } + welcomeMessage: { /** - * active + * This information will be displayed for the user once enrollment is completed. We advise you to insert relevant links and explain next steps briefly. */ - active: () => LocalizedString + helper: () => LocalizedString /** - * Never connected + * Please input welcome message */ - noData: () => LocalizedString + placeholder: () => LocalizedString } - edit: { - /** - * Edit device - */ - edit: () => LocalizedString + welcomeEmail: { /** - * Delete device + * This information will be sent to the user once enrollment is completed. We advise you to insert relevant links and explain next steps briefly. You can reuse the welcome message here. */ - 'delete': () => LocalizedString + helper: () => LocalizedString /** - * Show configuration + * Please input welcome email */ - showConfigurations: () => LocalizedString + placeholder: () => LocalizedString } - } - } - wallets: { - messages: { - /** - * Address copied. - */ - addressCopied: () => LocalizedString - duplicate: { + welcomeEmailSubject: { /** - * Connected wallet is already registered + * Subject */ - primary: () => LocalizedString + label: () => LocalizedString + } + useMessageAsEmail: { /** - * Please connect unused wallet. + * Same as welcome message */ - sub: () => LocalizedString + label: () => LocalizedString } } + } + enterprise: { /** - * User wallets + * Enterprise Features */ header: () => LocalizedString /** - * Add new wallet + *

Here you can change enterprise settings.

*/ - addWallet: () => LocalizedString - card: { - /** - * Address - */ - address: () => LocalizedString - /** - * MFA - */ - mfaBadge: () => LocalizedString - edit: { + helper: () => LocalizedString + fields: { + deviceManagement: { /** - * Enable MFA + * Disable users ability to manage their devices */ - enableMFA: () => LocalizedString + label: () => LocalizedString /** - * Disable MFA + * When this option is enabled, only users in the Admin group can manage devices in user profile (it's disabled for all other users) */ - disableMFA: () => LocalizedString + helper: () => LocalizedString + } + disableAllTraffic: { /** - * Delete + * Disable the option to route all traffic through VPN */ - 'delete': () => LocalizedString + label: () => LocalizedString /** - * Copy address + * When this option is enabled, users will not be able to route all traffic through the VPN using the defguard client. */ - copyAddress: () => LocalizedString + helper: () => LocalizedString } - messages: { - /** - * Wallet deleted - */ - deleteSuccess: () => LocalizedString + manualConfig: { /** - * Wallet MFA enabled + * Disable users ability to download manual WireGuard configuration */ - enableMFA: () => LocalizedString + label: () => LocalizedString /** - * Wallet MFA disabled + * When this option is enabled, users won't be presented with a WireGuard configuration for manual client setup */ - disableMFA: () => LocalizedString + helper: () => LocalizedString } } } - yubiKey: { + } + openidOverview: { + /** + * OpenID Apps + */ + pageTitle: () => LocalizedString + search: { /** - * User YubiKey + * Find apps */ - header: () => LocalizedString + placeholder: () => LocalizedString + } + filterLabels: { /** - * Provision a YubiKey + * All apps */ - provision: () => LocalizedString - keys: { + all: () => LocalizedString + /** + * Enabled + */ + enabled: () => LocalizedString + /** + * Disabled + */ + disabled: () => LocalizedString + } + /** + * All apps + */ + clientCount: () => LocalizedString + /** + * Add new + */ + addNewApp: () => LocalizedString + list: { + headers: { /** - * PGP key + * Name */ - pgp: () => LocalizedString + name: () => LocalizedString /** - * SSH key + * Status */ - ssh: () => LocalizedString + status: () => LocalizedString + /** + * Actions + */ + actions: () => LocalizedString } - noLicense: { + editButton: { /** - * YubiKey module + * Edit app */ - moduleName: () => LocalizedString + edit: () => LocalizedString /** - * This is enterprise module for YubiKey + * Delete app */ - line1: () => LocalizedString + 'delete': () => LocalizedString /** - * management and provisioning. + * Disable */ - line2: () => LocalizedString + disable: () => LocalizedString + /** + * Enable + */ + enable: () => LocalizedString + /** + * Copy client ID + */ + copy: () => LocalizedString + } + status: { + /** + * Enabled + */ + enabled: () => LocalizedString + /** + * Disabled + */ + disabled: () => LocalizedString } } - authenticationKeys: { + messages: { + /** + * Client ID copied. + */ + copySuccess: () => LocalizedString + /** + * You don't have a license for this feature. + */ + noLicenseMessage: () => LocalizedString + /** + * No results found. + */ + noClientsFound: () => LocalizedString + } + deleteApp: { + /** + * Delete app + */ + title: () => LocalizedString /** - * User Authentication Keys + * Do you want to delete {appName} app ? */ - header: () => LocalizedString + message: (arg: { appName: string }) => LocalizedString /** - * Add new Key + * Delete app */ - addKey: () => LocalizedString - keysList: { - common: { - /** - * Rename - */ - rename: () => LocalizedString - /** - * Key - */ - key: () => LocalizedString - /** - * Download - */ - download: () => LocalizedString - /** - * Copy - */ - copy: () => LocalizedString - /** - * Serial Number - */ - serialNumber: () => LocalizedString - /** - * Delete - */ - 'delete': () => LocalizedString - } - } - deleteModal: { + submit: () => LocalizedString + messages: { /** - * Delete Authentication Key + * App deleted. */ - title: () => LocalizedString + success: () => LocalizedString + } + } + enableApp: { + messages: { /** - * Key {name} will be deleted permanently. + * App enabled. */ - confirmMessage: (arg: { name: string }) => LocalizedString + success: () => LocalizedString } - addModal: { + } + disableApp: { + messages: { /** - * Add new Authentication Key + * App disabled. */ - header: () => LocalizedString + success: () => LocalizedString + } + } + modals: { + openidClientModal: { + title: { + /** + * Add Application + */ + addApp: () => LocalizedString + /** + * Edit {appName} app + */ + editApp: (arg: { appName: string }) => LocalizedString + } /** - * Key Type + * Scopes: */ - keyType: () => LocalizedString - keyForm: { - placeholders: { - /** - * Key Name - */ - title: () => LocalizedString - key: { - /** - * Begins with ssh-rsa, ecdsa-sha2-nistp256, ... - */ - ssh: () => LocalizedString - /** - * Begins with -----BEGIN PGP PUBLIC KEY BLOCK----- - */ - gpg: () => LocalizedString - } - } - labels: { - /** - * Name - */ - title: () => LocalizedString - /** - * Key - */ - key: () => LocalizedString - } + scopes: () => LocalizedString + messages: { /** - * Add {name} key + * Client ID copied. */ - submit: (arg: { name: string }) => LocalizedString + clientIdCopy: () => LocalizedString + /** + * Client secret copied. + */ + clientSecretCopy: () => LocalizedString } - yubikeyForm: { - selectWorker: { + form: { + messages: { /** - * Please be advised that this operation will wipe openpgp application on YubiKey and reconfigure it. + * App created. */ - info: () => LocalizedString + successAdd: () => LocalizedString /** - * Select on of the following provisioners to provision a YubiKey + * App modified. */ - selectLabel: () => LocalizedString + successModify: () => LocalizedString + } + error: { /** - * No workers are registered right now. + * URL is required. */ - noData: () => LocalizedString + urlRequired: () => LocalizedString /** - * Available + * Must be a valid URL. */ - available: () => LocalizedString + validUrl: () => LocalizedString /** - * Unavailable + * Must have at least one scope. */ - unavailable: () => LocalizedString + scopeValidation: () => LocalizedString } - provisioning: { - /** - * Provisioning in progress, please wait. - */ - inProgress: () => LocalizedString - /** - * Provisioning failed ! - */ - error: () => LocalizedString + fields: { + name: { + /** + * App name + */ + label: () => LocalizedString + } + redirectUri: { + /** + * Redirect URL {count} + */ + label: (arg: { count: number }) => LocalizedString + /** + * https://example.com/redirect + */ + placeholder: () => LocalizedString + } + openid: { + /** + * OpenID + */ + label: () => LocalizedString + } + profile: { + /** + * Profile + */ + label: () => LocalizedString + } + email: { + /** + * Email + */ + label: () => LocalizedString + } + phone: { + /** + * Phone + */ + label: () => LocalizedString + } + groups: { + /** + * Groups + */ + label: () => LocalizedString + } + } + controls: { /** - * Yubikey provisioned successfully + * Add URL */ - success: () => LocalizedString + addUrl: () => LocalizedString } - /** - * Provision Yubikey - */ - submit: () => LocalizedString - } - messages: { - /** - * Key added. - */ - keyAdded: () => LocalizedString - /** - * Key has already been added. - */ - keyExists: () => LocalizedString - /** - * Unsupported key format. - */ - unsupportedKeyFormat: () => LocalizedString - /** - * Could not add the key. Please try again later. - */ - genericError: () => LocalizedString } + /** + * Client ID + */ + clientId: () => LocalizedString + /** + * Client secret + */ + clientSecret: () => LocalizedString } } } - usersOverview: { + webhooksOverview: { /** - * Users + * Webhooks */ pageTitle: () => LocalizedString search: { /** - * Find users + * Find webhooks by url */ placeholder: () => LocalizedString } filterLabels: { /** - * All users + * All webhooks */ all: () => LocalizedString /** - * Admins only + * Enabled */ - admin: () => LocalizedString + enabled: () => LocalizedString /** - * Users only + * Disabled */ - users: () => LocalizedString + disabled: () => LocalizedString } /** - * All users + * All webhooks */ - usersCount: () => LocalizedString + webhooksCount: () => LocalizedString /** * Add new */ - addNewUser: () => LocalizedString + addNewWebhook: () => LocalizedString + /** + * No webhooks found. + */ + noWebhooksFound: () => LocalizedString + list: { + headers: { + /** + * Name + */ + name: () => LocalizedString + /** + * Description + */ + description: () => LocalizedString + /** + * Status + */ + status: () => LocalizedString + /** + * Actions + */ + actions: () => LocalizedString + } + editButton: { + /** + * Edit + */ + edit: () => LocalizedString + /** + * Delete webhook + */ + 'delete': () => LocalizedString + /** + * Disable + */ + disable: () => LocalizedString + /** + * Enable + */ + enable: () => LocalizedString + } + status: { + /** + * Enabled + */ + enabled: () => LocalizedString + /** + * Disabled + */ + disabled: () => LocalizedString + } + } + } + provisionersOverview: { + /** + * Provisioners + */ + pageTitle: () => LocalizedString + search: { + /** + * Find provisioners + */ + placeholder: () => LocalizedString + } + filterLabels: { + /** + * All + */ + all: () => LocalizedString + /** + * Available + */ + available: () => LocalizedString + /** + * Unavailable + */ + unavailable: () => LocalizedString + } + /** + * All provisioners + */ + provisionersCount: () => LocalizedString + /** + * No provisioners found. + */ + noProvisionersFound: () => LocalizedString + /** + * You don't have a license for this feature. + */ + noLicenseMessage: () => LocalizedString + provisioningStation: { + /** + * YubiKey provisioning station + */ + header: () => LocalizedString + /** + * In order to be able to provision your YubiKeys, first you need to set up + physical machine with USB slot. Run provided command on your chosen + machine to register it and start provisioning your keys. + */ + content: () => LocalizedString + dockerCard: { + /** + * Provisioning station docker setup command + */ + title: () => LocalizedString + } + tokenCard: { + /** + * Access token + */ + title: () => LocalizedString + } + } list: { headers: { /** - * User name + * Name */ name: () => LocalizedString /** - * Login + * IP address */ - username: () => LocalizedString + ip: () => LocalizedString /** - * Phone + * Status */ - phone: () => LocalizedString + status: () => LocalizedString /** * Actions */ @@ -8591,2397 +7581,905 @@ export type TranslationFunctions = { } editButton: { /** - * Change password - */ - changePassword: () => LocalizedString - /** - * Edit account - */ - edit: () => LocalizedString - /** - * Add YubiKey - */ - addYubikey: () => LocalizedString - /** - * Add SSH Key - */ - addSSH: () => LocalizedString - /** - * Add GPG Key + * Delete provisioner */ - addGPG: () => LocalizedString + 'delete': () => LocalizedString + } + status: { /** - * Delete account + * Available */ - 'delete': () => LocalizedString + available: () => LocalizedString /** - * Start enrollment + * Unavailable */ - startEnrollment: () => LocalizedString + unavailable: () => LocalizedString + } + } + messages: { + copy: { /** - * Configure Desktop Client + * Token copied */ - activateDesktop: () => LocalizedString + token: () => LocalizedString /** - * Reset password + * Command copied */ - resetPassword: () => LocalizedString + command: () => LocalizedString } } } - navigation: { - bar: { - /** - * VPN Overview - */ - overview: () => LocalizedString + openidAllow: { + /** + * {name} would like to: + */ + header: (arg: { name: string }) => LocalizedString + scopes: { /** - * Users + * Use your profile data for future logins. */ - users: () => LocalizedString + openid: () => LocalizedString /** - * YubiKeys + * Know basic information from your profile like name, profile picture etc. */ - provisioners: () => LocalizedString + profile: () => LocalizedString /** - * Webhooks + * Know your email address. */ - webhooks: () => LocalizedString + email: () => LocalizedString /** - * OpenID Apps + * Know your phone number. */ - openId: () => LocalizedString + phone: () => LocalizedString /** - * My Profile + * Know your groups membership. */ - myProfile: () => LocalizedString + groups: () => LocalizedString + } + controls: { /** - * Settings + * Accept */ - settings: () => LocalizedString + accept: () => LocalizedString /** - * Log out + * Cancel */ - logOut: () => LocalizedString + cancel: () => LocalizedString + } + } + networkOverview: { + /** + * Location overview + */ + pageTitle: () => LocalizedString + controls: { /** - * Enrollment + * Edit Locations settings */ - enrollment: () => LocalizedString + editNetworks: () => LocalizedString + selectNetwork: { + /** + * Loading locations + */ + placeholder: () => LocalizedString + } + } + filterLabels: { /** - * Support + * Grid view */ - support: () => LocalizedString + grid: () => LocalizedString /** - * Groups + * List view */ - groups: () => LocalizedString + list: () => LocalizedString } - mobileTitles: { + stats: { /** - * Groups + * Currently active users */ - groups: () => LocalizedString + currentlyActiveUsers: () => LocalizedString /** - * Create location + * Currently active devices */ - wizard: () => LocalizedString + currentlyActiveDevices: () => LocalizedString /** - * Users + * Active users in {hour}H */ - users: () => LocalizedString + activeUsersFilter: (arg: { hour: number }) => LocalizedString /** - * Settings + * Active devices in {hour}H */ - settings: () => LocalizedString + activeDevicesFilter: (arg: { hour: number }) => LocalizedString /** - * User Profile + * Total transfer: */ - user: () => LocalizedString + totalTransfer: () => LocalizedString /** - * Yubikey + * Activity in {hour}H */ - provisioners: () => LocalizedString + activityIn: (arg: { hour: number }) => LocalizedString /** - * Webhooks + * In: */ - webhooks: () => LocalizedString + 'in': () => LocalizedString /** - * OpenId Apps + * Out: */ - openId: () => LocalizedString + out: () => LocalizedString /** - * Location Overview + * Gateway disconnected */ - overview: () => LocalizedString + gatewayDisconnected: () => LocalizedString + } + } + connectedUsersOverview: { + /** + * Connected users + */ + pageTitle: () => LocalizedString + /** + * Currently there are no connected users + */ + noUsersMessage: () => LocalizedString + userList: { /** - * Edit Location + * Username */ - networkSettings: () => LocalizedString + username: () => LocalizedString /** - * Enrollment + * Device */ - enrollment: () => LocalizedString + device: () => LocalizedString /** - * Support + * Connected */ - support: () => LocalizedString - } - /** - * Copyright ©2023-2024 - */ - copyright: () => LocalizedString - version: { + connected: () => LocalizedString /** - * Application version: {version} + * Device location */ - open: (arg: { version: string }) => LocalizedString + deviceLocation: () => LocalizedString /** - * v{version} + * Network usage */ - closed: (arg: { version: string }) => LocalizedString + networkUsage: () => LocalizedString } } - form: { - /** - * Download - */ - download: () => LocalizedString + networkPage: { /** - * Copy + * Edit Location */ - copy: () => LocalizedString + pageTitle: () => LocalizedString /** - * Save changes + * + Add new location */ - saveChanges: () => LocalizedString + addNetwork: () => LocalizedString + controls: { + networkSelect: { + /** + * Location choice + */ + label: () => LocalizedString + } + } + } + activityOverview: { /** - * Submit + * Activity stream */ - submit: () => LocalizedString + header: () => LocalizedString /** - * Sign in + * Currently there is no activity detected */ - login: () => LocalizedString + noData: () => LocalizedString + } + networkConfiguration: { + messages: { + 'delete': { + /** + * Network delted + */ + success: () => LocalizedString + /** + * Failed to delete network + */ + error: () => LocalizedString + } + } /** - * Cancel + * Location configuration */ - cancel: () => LocalizedString + header: () => LocalizedString /** - * Close + * Location import */ - close: () => LocalizedString - placeholders: { - /** - * Password - */ - password: () => LocalizedString - /** - * Username - */ - username: () => LocalizedString - } - error: { - /** - * Field contains forbidden characters. - */ - forbiddenCharacter: () => LocalizedString - /** - * Username is already in use. - */ - usernameTaken: () => LocalizedString - /** - * Key is invalid. - */ - invalidKey: () => LocalizedString - /** - * Field is invalid. - */ - invalid: () => LocalizedString - /** - * Field is required. - */ - required: () => LocalizedString - /** - * Submitted code is invalid. - */ - invalidCode: () => LocalizedString + importHeader: () => LocalizedString + form: { + helpers: { + /** + * Based on this address VPN network address will be defined, eg. 10.10.10.1/24 (and VPN network will be: 10.10.10.0/24) + */ + address: () => LocalizedString + /** + * Gateway public address, used by VPN users to connect + */ + gateway: () => LocalizedString + /** + * Specify the DNS resolvers to query when the wireguard interface is up. + */ + dns: () => LocalizedString + /** + * List of addresses/masks that should be routed through the VPN network. + */ + allowedIps: () => LocalizedString + /** + * By default, all users will be allowed to connect to this location. If you want to restrict access to this location to a specific group, please select it below. + */ + allowedGroups: () => LocalizedString + } + messages: { + /** + * Location modified. + */ + networkModified: () => LocalizedString + /** + * Location created + */ + networkCreated: () => LocalizedString + } + fields: { + name: { + /** + * Location name + */ + label: () => LocalizedString + } + address: { + /** + * Gateway VPN IP address and netmask + */ + label: () => LocalizedString + } + endpoint: { + /** + * Gateway address + */ + label: () => LocalizedString + } + allowedIps: { + /** + * Allowed Ips + */ + label: () => LocalizedString + } + port: { + /** + * Gateway port + */ + label: () => LocalizedString + } + dns: { + /** + * DNS + */ + label: () => LocalizedString + } + allowedGroups: { + /** + * Allowed groups + */ + label: () => LocalizedString + /** + * All groups + */ + placeholder: () => LocalizedString + } + mfa_enabled: { + /** + * Require MFA for this Location + */ + label: () => LocalizedString + } + keepalive_interval: { + /** + * Keepalive interval [seconds] + */ + label: () => LocalizedString + } + peer_disconnect_threshold: { + /** + * Peer disconnect threshold [seconds] + */ + label: () => LocalizedString + } + } + controls: { + /** + * Save changes + */ + submit: () => LocalizedString + /** + * Back to Overview + */ + cancel: () => LocalizedString + /** + * Remove location + */ + 'delete': () => LocalizedString + } + } + } + gatewaySetup: { + header: { /** - * Maximum length exceeded. + * Gateway server setup */ - maximumLength: () => LocalizedString + main: () => LocalizedString /** - * Minimum length not reached. + * Docker Based Gateway Setup */ - minimumLength: () => LocalizedString + dockerBasedGatewaySetup: () => LocalizedString /** - * No special characters are allowed. + * From Package */ - noSpecialChars: () => LocalizedString + fromPackage: () => LocalizedString /** - * One digit required. + * One Line Install */ - oneDigit: () => LocalizedString + oneLineInstall: () => LocalizedString + } + card: { /** - * Special character required. + * Docker based gateway setup */ - oneSpecial: () => LocalizedString + title: () => LocalizedString /** - * One uppercase character required. + * Authentication Token */ - oneUppercase: () => LocalizedString + authToken: () => LocalizedString + } + button: { /** - * One lowercase character required. + * Available Packages */ - oneLowercase: () => LocalizedString + availablePackages: () => LocalizedString + } + controls: { /** - * Maximum port is 65535. + * Check connection status */ - portMax: () => LocalizedString + status: () => LocalizedString + } + messages: { /** - * Enter a valid endpoint. + * Defguard requires to deploy a gateway node to control wireguard VPN on the vpn server. + More details can be found in the [documentation]({setupGatewayDocs}). + There are several ways to deploy the gateway server, + below is a Docker based example, for other examples please visit [documentation]({setupGatewayDocs}). */ - endpoint: () => LocalizedString + runCommand: (arg: { setupGatewayDocs: string }) => LocalizedString /** - * Enter a valid address. + * Please create the network before running the gateway process. */ - address: () => LocalizedString + createNetwork: () => LocalizedString /** - * Enter a valid port. + * No connection established, please run provided command. */ - validPort: () => LocalizedString + noConnection: () => LocalizedString /** - * Code should have 6 digits. + * Gateway connected. */ - validCode: () => LocalizedString + connected: () => LocalizedString /** - * Only valid IP or domain is allowed. + * Failed to get gateway status */ - allowedIps: () => LocalizedString + statusError: () => LocalizedString /** - * Cannot start from number. + * If you are doing one line install: https://defguard.gitbook.io/defguard/admin-and-features/setting-up-your-instance/one-line-install + you don't need to do anything. */ - startFromNumber: () => LocalizedString + oneLineInstall: () => LocalizedString /** - * Fields don't match. + * Install the package available at https://github.com/DefGuard/gateway/releases/latest and configure `/etc/defguard/gateway.toml` + according to the [documentation]({setupGatewayDocs}). */ - repeat: () => LocalizedString + fromPackage: (arg: { setupGatewayDocs: string }) => LocalizedString /** - * Expected a valid number. + * Token below is required to authenticate and configure the gateway node. Ensure you keep this token secure and follow the deployment instructions + provided in the [documentation]({setupGatewayDocs}) to successfully set up the gateway server. + For more details and exact steps, please refer to the [documentation]({setupGatewayDocs}). */ - number: () => LocalizedString + authToken: (arg: { setupGatewayDocs: string }) => LocalizedString /** - * Minimum value of {value} not reached. + * Below is a Docker based example. For more details and exact steps, please refer to the [documentation]({setupGatewayDocs}). */ - minimumValue: (arg: { value: number }) => LocalizedString + dockerBasedGatewaySetup: (arg: { setupGatewayDocs: string }) => LocalizedString + } + } + loginPage: { + /** + * Enter your credentials + */ + pageTitle: () => LocalizedString + callback: { /** - * Maximum value of {value} exceeded. + * Go back to login */ - maximumValue: (arg: { value: number }) => LocalizedString + 'return': () => LocalizedString /** - * Too many bad login attempts. Please try again in a few minutes. + * An error occurred during external OpenID login */ - tooManyBadLoginAttempts: () => LocalizedString + error: () => LocalizedString } - floatingErrors: { + mfa: { /** - * Please correct the following: + * Two-factor authentication */ title: () => LocalizedString - } - } - components: { - deviceConfigsCard: { - /** - * WireGuard Config for location: - */ - cardTitle: () => LocalizedString - messages: { + controls: { /** - * Configuration copied to the clipboard + * Use Authenticator app instead */ - copyConfig: () => LocalizedString - } - } - gatewaysStatus: { - /** - * Gateways - */ - label: () => LocalizedString - states: { + useAuthenticator: () => LocalizedString /** - * All connected + * Use your wallet instead */ - connected: () => LocalizedString + useWallet: () => LocalizedString /** - * One or more are not working + * Use security key instead */ - partial: () => LocalizedString + useWebauthn: () => LocalizedString /** - * Disconnected + * Use recovery code instead */ - disconnected: () => LocalizedString + useRecoveryCode: () => LocalizedString /** - * Retrieving connections failed + * Use E-mail instead */ - error: () => LocalizedString + useEmail: () => LocalizedString + } + email: { /** - * Retrieving connections + * Use code we sent to your e-mail to proceed. */ - loading: () => LocalizedString + header: () => LocalizedString + form: { + labels: { + /** + * Code + */ + code: () => LocalizedString + } + controls: { + /** + * Resend Code + */ + resendCode: () => LocalizedString + } + } } - messages: { + totp: { /** - * Failed to get gateways status + * Use code from your authentication app and click button to proceed. */ - error: () => LocalizedString + header: () => LocalizedString + form: { + fields: { + code: { + /** + * Enter Authenticator code + */ + placeholder: () => LocalizedString + } + } + controls: { + /** + * Use authenticator code + */ + submit: () => LocalizedString + } + } + } + recoveryCode: { /** - * Failed to delete gateway + * Enter one of active recovery codes and click button to log in. */ - deleteError: () => LocalizedString + header: () => LocalizedString + form: { + fields: { + code: { + /** + * Recovery code + */ + placeholder: () => LocalizedString + } + } + controls: { + /** + * Use recovery code + */ + submit: () => LocalizedString + } + } } - } - noLicenseBox: { - footer: { + wallet: { /** - * Get an enterprise license + * Use your crypto wallet to sign in, please sign message in your wallet app or extension. */ - get: () => LocalizedString + header: () => LocalizedString + controls: { + /** + * Use your wallet + */ + submit: () => LocalizedString + } + messages: { + /** + * Wallet was disconnected during signing process. + */ + walletError: () => LocalizedString + /** + * Wallet is not authorized for MFA login. Please use authorized wallet. + */ + walletErrorMfa: () => LocalizedString + } + } + webauthn: { /** - * by contacting: + * When you are ready to authenticate, press the button below. */ - contact: () => LocalizedString + header: () => LocalizedString + controls: { + /** + * Use security key + */ + submit: () => LocalizedString + } + messages: { + /** + * Failed to read key. Please try again. + */ + error: () => LocalizedString + } } } } - settingsPage: { + wizard: { /** - * Settings + * Location setup completed */ - title: () => LocalizedString - tabs: { - /** - * SMTP - */ - smtp: () => LocalizedString - /** - * Global settings - */ - global: () => LocalizedString - /** - * LDAP - */ - ldap: () => LocalizedString - /** - * OpenID - */ - openid: () => LocalizedString - /** - * Enterprise features - */ - enterprise: () => LocalizedString - } - messages: { - /** - * Settings updated - */ - editSuccess: () => LocalizedString + completed: () => LocalizedString + configuration: { /** - * Challenge message changed + * Location created */ - challengeSuccess: () => LocalizedString + successMessage: () => LocalizedString } - enterpriseOnly: { + welcome: { /** - * This feature is available only in Defguard Enterprise. + * Welcome to location wizard! */ - title: () => LocalizedString + header: () => LocalizedString /** - * To learn more, visit our + * Before you start using VPN you need to setup your first location. When in doubt click on icon. */ - subtitle: () => LocalizedString + sub: () => LocalizedString /** - * website + * Setup location */ - website: () => LocalizedString + button: () => LocalizedString } - ldapSettings: { + navigation: { /** - * LDAP Settings + * Location setup */ - title: () => LocalizedString - form: { - labels: { - /** - * URL - */ - ldap_url: () => LocalizedString - /** - * Bind Username - */ - ldap_bind_username: () => LocalizedString - /** - * Bind Password - */ - ldap_bind_password: () => LocalizedString - /** - * Member Attribute - */ - ldap_member_attr: () => LocalizedString - /** - * Username Attribute - */ - ldap_username_attr: () => LocalizedString - /** - * User Object Class - */ - ldap_user_obj_class: () => LocalizedString - /** - * User Search Base - */ - ldap_user_search_base: () => LocalizedString - /** - * Groupname Attribute - */ - ldap_groupname_attr: () => LocalizedString + top: () => LocalizedString + titles: { + /** + * Location setup + */ + welcome: () => LocalizedString + /** + * Chose Location setup + */ + choseNetworkSetup: () => LocalizedString + /** + * Import existing location + */ + importConfig: () => LocalizedString + /** + * Configure location + */ + manualConfig: () => LocalizedString + /** + * Map imported devices + */ + mapDevices: () => LocalizedString + } + buttons: { + /** + * Next + */ + next: () => LocalizedString + /** + * Back + */ + back: () => LocalizedString + } + } + deviceMap: { + messages: { + /** + * Devices added + */ + crateSuccess: () => LocalizedString + /** + * Please fill marked fields. + */ + errorsInForm: () => LocalizedString + } + list: { + headers: { /** - * Group Search Base + * Device Name */ - ldap_group_search_base: () => LocalizedString + deviceName: () => LocalizedString /** - * Group Member Attribute + * IP */ - ldap_group_member_attr: () => LocalizedString + deviceIP: () => LocalizedString /** - * Group Object Class + * User */ - ldap_group_obj_class: () => LocalizedString + user: () => LocalizedString } + } + } + wizardType: { + manual: { /** - * Delete configuration + * Manual Configuration */ - 'delete': () => LocalizedString + title: () => LocalizedString + /** + * Manual location configuration + */ + description: () => LocalizedString } - test: { + 'import': { /** - * Test LDAP Connection + * Import From File */ title: () => LocalizedString /** - * Test + * Import from WireGuard config file */ - submit: () => LocalizedString - messages: { - /** - * LDAP connected successfully - */ - success: () => LocalizedString - /** - * LDAP connection rejected - */ - error: () => LocalizedString - } + description: () => LocalizedString } + /** + * Create location + */ + createNetwork: () => LocalizedString } - openIdSettings: { - general: { + common: { + /** + * Select + */ + select: () => LocalizedString + } + locations: { + form: { /** - * External OpenID Settings + * Name */ - title: () => LocalizedString + name: () => LocalizedString /** - * Here you can change general OpenID behavior in your Defguard instance. + * IP address */ - helper: () => LocalizedString - createAccount: { + ip: () => LocalizedString + /** + * User + */ + user: () => LocalizedString + /** + * File + */ + fileName: () => LocalizedString + /** + * Select file + */ + selectFile: () => LocalizedString + messages: { /** - * Automatically create user account when logging in for the first time through external OpenID. + * Devices created */ - label: () => LocalizedString + devicesCreated: () => LocalizedString + } + validation: { /** - * If this option is enabled, Defguard automatically creates new accounts for users who log in for the first time using an external OpenID provider. Otherwise, the user account must first be created by an administrator. + * Invalid address */ - helper: () => LocalizedString + invalidAddress: () => LocalizedString } } - form: { + } + } + layout: { + select: { + /** + * Add new + + */ + addNewOptionDefault: () => LocalizedString + } + } + redirectPage: { + /** + * You have been logged in + */ + title: () => LocalizedString + /** + * You will be redirected in a moment... + */ + subtitle: () => LocalizedString + } + enrollmentPage: { + /** + * Enrollment + */ + title: () => LocalizedString + controls: { + /** + * Restore default + */ + 'default': () => LocalizedString + /** + * Save changes + */ + save: () => LocalizedString + } + messages: { + edit: { /** - * External OpenID Client Settings + * Settings changed */ - title: () => LocalizedString + success: () => LocalizedString /** - * Here you can configure the OpenID client settings with values provided by your external OpenID provider. + * Save failed */ - helper: () => LocalizedString + error: () => LocalizedString + } + } + /** + * Enrollment is a process by which a new employee will be able to activate their new account, create a password and configure a VPN device. You can customize it here. + */ + messageBox: () => LocalizedString + settings: { + welcomeMessage: { /** - * Custom + * Welcome message */ - custom: () => LocalizedString + title: () => LocalizedString /** - * Documentation + * This information will be displayed for user in service once enrollment is completed. We advise to insert links and explain next steps briefly. You can use same message as in the e-mail. */ - documentation: () => LocalizedString + messageBox: () => LocalizedString + } + vpnOptionality: { /** - * Delete provider + * VPN set optionallity */ - 'delete': () => LocalizedString - labels: { - provider: { - /** - * Provider - */ - label: () => LocalizedString - /** - * Select your OpenID provider. You can use custom provider and fill in the base URL by yourself. - */ - helper: () => LocalizedString - } - client_id: { - /** - * Client ID - */ - label: () => LocalizedString - /** - * Client ID provided by your OpenID provider. - */ - helper: () => LocalizedString - } - client_secret: { - /** - * Client Secret - */ - label: () => LocalizedString - /** - * Client Secret provided by your OpenID provider. - */ - helper: () => LocalizedString - } - base_url: { + title: () => LocalizedString + select: { + options: { /** - * Base URL + * Optional */ - label: () => LocalizedString + optional: () => LocalizedString /** - * Base URL of your OpenID provider, e.g. https://accounts.google.com. Make sure to check our documentation for more information and examples. + * Mandatory */ - helper: () => LocalizedString + mandatory: () => LocalizedString } } } + welcomeEmail: { + /** + * Welcome e-mail + */ + title: () => LocalizedString + subject: { + /** + * E-mail subject + */ + label: () => LocalizedString + } + /** + * This information will be sent to user once enrollment is completed. We advise to insert links and explain next steps briefly. + */ + messageBox: () => LocalizedString + controls: { + /** + * Same as welcome message + */ + duplicateWelcome: () => LocalizedString + } + } } - modulesVisibility: { + } + supportPage: { + /** + * Support + */ + title: () => LocalizedString + modals: { + confirmDataSend: { + /** + * Send Support Data + */ + title: () => LocalizedString + /** + * Please confirm that you actually want to send support debug information. None of your private information will be sent (wireguard keys, email addresses, etc. will not be sent). + */ + subTitle: () => LocalizedString + /** + * Send support data + */ + submit: () => LocalizedString + } + } + debugDataCard: { /** - * Modules Visibility + * Support data */ - header: () => LocalizedString + title: () => LocalizedString /** ->>>>>>> dev - *

- If your not using some modules you can disable their visibility. -

- - Read more in documentation. - - */ - helper: (arg: { documentationLink: string }) => LocalizedString; - fields: { - wireguard_enabled: { - /** - * WireGuard VPN - */ - label: () => LocalizedString; - }; - webhooks_enabled: { - /** - * Webhooks - */ - label: () => LocalizedString; - }; - worker_enabled: { - /** - * Yubikey provisioning - */ - label: () => LocalizedString; - }; - openid_enabled: { - /** - * OpenID Connect - */ - label: () => LocalizedString; - }; - }; - }; - defaultNetworkSelect: { - /** - * Default location view - */ - header: () => LocalizedString; - /** - *

Here you can change your default location view.

- - Read more in documentation. - - */ - helper: (arg: { documentationLink: string }) => LocalizedString; - filterLabels: { - /** - * Grid view - */ - grid: () => LocalizedString; - /** - * List view - */ - list: () => LocalizedString; - }; - }; - web3Settings: { - /** - * Web3 / Wallet connect - */ - header: () => LocalizedString; - fields: { - signMessage: { - /** - * Default sign message template - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Save changes - */ - save: () => LocalizedString; - }; - }; - instanceBranding: { - /** - * Instance Branding - */ - header: () => LocalizedString; - form: { - /** - * Name & Logo: - */ - title: () => LocalizedString; - fields: { - instanceName: { - /** - * Instance name - */ - label: () => LocalizedString; - /** - * Defguard - */ - placeholder: () => LocalizedString; - }; - mainLogoUrl: { - /** - * Login logo url - */ - label: () => LocalizedString; - /** - *

Maximum picture size is 250x100 px

- */ - helper: () => LocalizedString; - /** - * Default image - */ - placeholder: () => LocalizedString; - }; - navLogoUrl: { - /** - * Menu & navigation small logo - */ - label: () => LocalizedString; - /** - *

Maximum picture size is 100x100 px

- */ - helper: () => LocalizedString; - /** - * Default image - */ - placeholder: () => LocalizedString; - }; - }; - controls: { - /** - * Restore default - */ - restoreDefault: () => LocalizedString; - /** - * Save changes - */ - submit: () => LocalizedString; - }; - }; - /** - * -

- Here you can add url of your logo and name for your defguard - instance it will be displayed instead of defguard. -

- - Read more in documentation. - - - */ - helper: (arg: { documentationLink: string }) => LocalizedString; - }; - license: { - /** - * Enterprise - */ - header: () => LocalizedString; - helpers: { - enterpriseHeader: { - /** - * Here you can manage your Defguard Enterprise version license. - */ - text: () => LocalizedString; - /** - * To learn more about Defguard Enterprise, visit our webiste. - */ - link: () => LocalizedString; - }; - licenseKey: { - /** - * Enter your Defguard Enterprise license key below. You should receive it via email after purchasing the license. - */ - text: () => LocalizedString; - /** - * You can purchase the license here. - */ - link: () => LocalizedString; - }; - }; - form: { - /** - * License - */ - title: () => LocalizedString; - fields: { - key: { - /** - * License key - */ - label: () => LocalizedString; - /** - * Your Defguard license key - */ - placeholder: () => LocalizedString; - }; - }; - }; - licenseInfo: { - /** - * License information - */ - title: () => LocalizedString; - /** - * No license - */ - noLicense: () => LocalizedString; - types: { - subscription: { - /** - * Subscription - */ - label: () => LocalizedString; - /** - * A license that automatically renews at regular intervals - */ - helper: () => LocalizedString; - }; - offline: { - /** - * Offline - */ - label: () => LocalizedString; - /** - * The license is valid until the expiry date and does not automatically renew - */ - helper: () => LocalizedString; - }; - }; - fields: { - type: { - /** - * Type - */ - label: () => LocalizedString; - }; - validUntil: { - /** - * Valid until - */ - label: () => LocalizedString; - }; - }; - }; - }; - smtp: { - form: { - /** - * SMTP configuration - */ - title: () => LocalizedString; - fields: { - encryption: { - /** - * Encryption - */ - label: () => LocalizedString; - }; - server: { - /** - * Server address - */ - label: () => LocalizedString; - /** - * Address - */ - placeholder: () => LocalizedString; - }; - port: { - /** - * Server port - */ - label: () => LocalizedString; - /** - * Port - */ - placeholder: () => LocalizedString; - }; - user: { - /** - * Server username - */ - label: () => LocalizedString; - /** - * Username - */ - placeholder: () => LocalizedString; - }; - password: { - /** - * Server password - */ - label: () => LocalizedString; - /** - * Password - */ - placeholder: () => LocalizedString; - }; - sender: { - /** - * Sender email address - */ - label: () => LocalizedString; - /** - * Address - */ - placeholder: () => LocalizedString; - /** - * -

- System messages will be sent from this address. - E.g. no-reply@my-company.com. -

- - */ - helper: () => LocalizedString; - }; - }; - controls: { - /** - * Save changes - */ - submit: () => LocalizedString; - }; - }; - /** - * Delete configuration - */ - delete: () => LocalizedString; - testForm: { - /** - * Send test email - */ - title: () => LocalizedString; - fields: { - to: { - /** - * Address - */ - label: () => LocalizedString; - /** - * Address - */ - placeholder: () => LocalizedString; - }; - }; - controls: { - /** - * Send - */ - submit: () => LocalizedString; - /** - * Test email sent - */ - success: () => LocalizedString; - /** - * Error sending email - */ - error: () => LocalizedString; - }; - }; - /** - * -

- Here you can configure SMTP server used to send system messages to the users. -

- + * + If you need assistance or you were asked to generate support data by our team (for example on our Matrix support channel: **#defguard-support:teonite.com**), you have two options: + * Either you can configure SMTP settings and click "Send support data" + * Or click "Download support data" and create a bug report in our GitHub attaching this file. + */ - helper: () => LocalizedString; - }; - enrollment: { - /** - * Enrollment is a process by which a new employee will be able to activate their new account, create a password and configure a VPN device. - */ - helper: () => LocalizedString; - vpnOptionality: { - /** - * VPN step optionality - */ - header: () => LocalizedString; - /** - * You can choose whether creating a VPN device is optional or mandatory during enrollment - */ - helper: () => LocalizedString; - }; - welcomeMessage: { - /** - * Welcome message - */ - header: () => LocalizedString; - /** - * -

In this text input you can use Markdown:

-
    -
  • Headings start with a hash #
  • -
  • Use asterisks for *italics*
  • -
  • Use two asterisks for **bold**
  • -
- - */ - helper: () => LocalizedString; - }; - welcomeEmail: { - /** - * Welcome e-mail - */ - header: () => LocalizedString; - /** - * -

In this text input you can use Markdown:

-
    -
  • Headings start with a hash #
  • -
  • Use asterisks for *italics*
  • -
  • Use two asterisks for **bold**
  • -
- - */ - helper: () => LocalizedString; - }; - form: { - controls: { - /** - * Save changes - */ - submit: () => LocalizedString; - }; - welcomeMessage: { - /** - * This information will be displayed for the user once enrollment is completed. We advise you to insert relevant links and explain next steps briefly. - */ - helper: () => LocalizedString; - /** - * Please input welcome message - */ - placeholder: () => LocalizedString; - }; - welcomeEmail: { - /** - * This information will be sent to the user once enrollment is completed. We advise you to insert relevant links and explain next steps briefly. You can reuse the welcome message here. - */ - helper: () => LocalizedString; - /** - * Please input welcome email - */ - placeholder: () => LocalizedString; - }; - welcomeEmailSubject: { - /** - * Subject - */ - label: () => LocalizedString; - }; - useMessageAsEmail: { - /** - * Same as welcome message - */ - label: () => LocalizedString; - }; - }; - }; - enterprise: { - /** - * Enterprise Features - */ - header: () => LocalizedString; - /** - *

Here you can change enterprise settings.

- */ - helper: () => LocalizedString; - fields: { - deviceManagement: { - /** - * Disable users ability to manage their devices - */ - label: () => LocalizedString; - /** - * When this option is enabled, only users in the Admin group can manage devices in user profile (it's disabled for all other users) - */ - helper: () => LocalizedString; - }; - manualConfig: { - /** - * Disable users ability to download manual WireGuard configuration - */ - label: () => LocalizedString; - /** - * When this option is enabled, users won't be presented with a WireGuard configuration for manual client setup - */ - helper: () => LocalizedString; - }; - }; - }; - }; - openidOverview: { - /** - * OpenID Apps - */ - pageTitle: () => LocalizedString; - search: { - /** - * Find apps - */ - placeholder: () => LocalizedString; - }; - filterLabels: { - /** - * All apps - */ - all: () => LocalizedString; - /** - * Enabled - */ - enabled: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - }; - /** - * All apps - */ - clientCount: () => LocalizedString; - /** - * Add new - */ - addNewApp: () => LocalizedString; - list: { - headers: { - /** - * Name - */ - name: () => LocalizedString; - /** - * Status - */ - status: () => LocalizedString; - /** - * Actions - */ - actions: () => LocalizedString; - }; - editButton: { - /** - * Edit app - */ - edit: () => LocalizedString; - /** - * Delete app - */ - delete: () => LocalizedString; - /** - * Disable - */ - disable: () => LocalizedString; - /** - * Enable - */ - enable: () => LocalizedString; - /** - * Copy client ID - */ - copy: () => LocalizedString; - }; - status: { - /** - * Enabled - */ - enabled: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - }; - }; - messages: { - /** - * Client ID copied. - */ - copySuccess: () => LocalizedString; - /** - * You don't have a license for this feature. - */ - noLicenseMessage: () => LocalizedString; - /** - * No results found. - */ - noClientsFound: () => LocalizedString; - }; - deleteApp: { - /** - * Delete app - */ - title: () => LocalizedString; - /** - * Do you want to delete {appName} app ? - */ - message: (arg: { appName: string }) => LocalizedString; - /** - * Delete app - */ - submit: () => LocalizedString; - messages: { - /** - * App deleted. - */ - success: () => LocalizedString; - }; - }; - enableApp: { - messages: { - /** - * App enabled. - */ - success: () => LocalizedString; - }; - }; - disableApp: { - messages: { - /** - * App disabled. - */ - success: () => LocalizedString; - }; - }; - modals: { - openidClientModal: { - title: { - /** - * Add Application - */ - addApp: () => LocalizedString; - /** - * Edit {appName} app - */ - editApp: (arg: { appName: string }) => LocalizedString; - }; - /** - * Scopes: - */ - scopes: () => LocalizedString; - messages: { - /** - * Client ID copied. - */ - clientIdCopy: () => LocalizedString; - /** - * Client secret copied. - */ - clientSecretCopy: () => LocalizedString; - }; - form: { - messages: { - /** - * App created. - */ - successAdd: () => LocalizedString; - /** - * App modified. - */ - successModify: () => LocalizedString; - }; - error: { - /** - * URL is required. - */ - urlRequired: () => LocalizedString; - /** - * Must be a valid URL. - */ - validUrl: () => LocalizedString; - /** - * Must have at least one scope. - */ - scopeValidation: () => LocalizedString; - }; - fields: { - name: { - /** - * App name - */ - label: () => LocalizedString; - }; - redirectUri: { - /** - * Redirect URL {count} - */ - label: (arg: { count: number }) => LocalizedString; - /** - * https://example.com/redirect - */ - placeholder: () => LocalizedString; - }; - openid: { - /** - * OpenID - */ - label: () => LocalizedString; - }; - profile: { - /** - * Profile - */ - label: () => LocalizedString; - }; - email: { - /** - * Email - */ - label: () => LocalizedString; - }; - phone: { - /** - * Phone - */ - label: () => LocalizedString; - }; - groups: { - /** - * Groups - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Add URL - */ - addUrl: () => LocalizedString; - }; - }; - /** - * Client ID - */ - clientId: () => LocalizedString; - /** - * Client secret - */ - clientSecret: () => LocalizedString; - }; - }; - }; - webhooksOverview: { - /** - * Webhooks - */ - pageTitle: () => LocalizedString; - search: { - /** - * Find webhooks by url - */ - placeholder: () => LocalizedString; - }; - filterLabels: { - /** - * All webhooks - */ - all: () => LocalizedString; - /** - * Enabled - */ - enabled: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - }; - /** - * All webhooks - */ - webhooksCount: () => LocalizedString; - /** - * Add new - */ - addNewWebhook: () => LocalizedString; - /** - * No webhooks found. - */ - noWebhooksFound: () => LocalizedString; - list: { - headers: { - /** - * Name - */ - name: () => LocalizedString; - /** - * Description - */ - description: () => LocalizedString; - /** - * Status - */ - status: () => LocalizedString; - /** - * Actions - */ - actions: () => LocalizedString; - }; - editButton: { - /** - * Edit - */ - edit: () => LocalizedString; - /** - * Delete webhook - */ - delete: () => LocalizedString; - /** - * Disable - */ - disable: () => LocalizedString; - /** - * Enable - */ - enable: () => LocalizedString; - }; - status: { - /** - * Enabled - */ - enabled: () => LocalizedString; - /** - * Disabled - */ - disabled: () => LocalizedString; - }; - }; - }; - provisionersOverview: { - /** - * Provisioners - */ - pageTitle: () => LocalizedString; - search: { - /** - * Find provisioners - */ - placeholder: () => LocalizedString; - }; - filterLabels: { - /** - * All - */ - all: () => LocalizedString; - /** - * Available - */ - available: () => LocalizedString; - /** - * Unavailable - */ - unavailable: () => LocalizedString; - }; - /** - * All provisioners - */ - provisionersCount: () => LocalizedString; - /** - * No provisioners found. - */ - noProvisionersFound: () => LocalizedString; - /** - * You don't have a license for this feature. - */ - noLicenseMessage: () => LocalizedString; - provisioningStation: { - /** - * YubiKey provisioning station - */ - header: () => LocalizedString; - /** - * In order to be able to provision your YubiKeys, first you need to set up - physical machine with USB slot. Run provided command on your chosen - machine to register it and start provisioning your keys. + body: () => LocalizedString + /** + * Download support data */ - content: () => LocalizedString; - dockerCard: { - /** - * Provisioning station docker setup command - */ - title: () => LocalizedString; - }; - tokenCard: { - /** - * Access token - */ - title: () => LocalizedString; - }; - }; - list: { - headers: { - /** - * Name - */ - name: () => LocalizedString; - /** - * IP address - */ - ip: () => LocalizedString; - /** - * Status - */ - status: () => LocalizedString; - /** - * Actions - */ - actions: () => LocalizedString; - }; - editButton: { - /** - * Delete provisioner - */ - delete: () => LocalizedString; - }; - status: { - /** - * Available - */ - available: () => LocalizedString; - /** - * Unavailable - */ - unavailable: () => LocalizedString; - }; - }; - messages: { - copy: { - /** - * Token copied - */ - token: () => LocalizedString; - /** - * Command copied - */ - command: () => LocalizedString; - }; - }; - }; - openidAllow: { - /** - * {name} would like to: - */ - header: (arg: { name: string }) => LocalizedString; - scopes: { - /** - * Use your profile data for future logins. - */ - openid: () => LocalizedString; - /** - * Know basic information from your profile like name, profile picture etc. - */ - profile: () => LocalizedString; - /** - * Know your email address. - */ - email: () => LocalizedString; - /** - * Know your phone number. - */ - phone: () => LocalizedString; - /** - * Know your groups membership. - */ - groups: () => LocalizedString; - }; - controls: { - /** - * Accept - */ - accept: () => LocalizedString; - /** - * Cancel - */ - cancel: () => LocalizedString; - }; - }; - networkOverview: { - /** - * Location overview - */ - pageTitle: () => LocalizedString; - controls: { - /** - * Edit Locations settings - */ - editNetworks: () => LocalizedString; - selectNetwork: { - /** - * Loading locations - */ - placeholder: () => LocalizedString; - }; - }; - filterLabels: { - /** - * Grid view - */ - grid: () => LocalizedString; - /** - * List view - */ - list: () => LocalizedString; - }; - stats: { - /** - * Currently active users - */ - currentlyActiveUsers: () => LocalizedString; - /** - * Currently active devices - */ - currentlyActiveDevices: () => LocalizedString; - /** - * Active users in {hour}H - */ - activeUsersFilter: (arg: { hour: number }) => LocalizedString; - /** - * Active devices in {hour}H - */ - activeDevicesFilter: (arg: { hour: number }) => LocalizedString; - /** - * Total transfer: - */ - totalTransfer: () => LocalizedString; - /** - * Activity in {hour}H - */ - activityIn: (arg: { hour: number }) => LocalizedString; - /** - * In: - */ - in: () => LocalizedString; - /** - * Out: - */ - out: () => LocalizedString; - /** - * Gateway disconnected - */ - gatewayDisconnected: () => LocalizedString; - }; - }; - connectedUsersOverview: { - /** - * Connected users - */ - pageTitle: () => LocalizedString; - /** - * Currently there are no connected users - */ - noUsersMessage: () => LocalizedString; - userList: { - /** - * Username - */ - username: () => LocalizedString; - /** - * Device - */ - device: () => LocalizedString; - /** - * Connected - */ - connected: () => LocalizedString; - /** - * Device location - */ - deviceLocation: () => LocalizedString; - /** - * Network usage - */ - networkUsage: () => LocalizedString; - }; - }; - networkPage: { - /** - * Edit Location - */ - pageTitle: () => LocalizedString; - /** - * + Add new location - */ - addNetwork: () => LocalizedString; - controls: { - networkSelect: { - /** - * Location choice - */ - label: () => LocalizedString; - }; - }; - }; - activityOverview: { - /** - * Activity stream - */ - header: () => LocalizedString; - /** - * Currently there is no activity detected - */ - noData: () => LocalizedString; - }; - networkConfiguration: { - messages: { - delete: { - /** - * Network delted - */ - success: () => LocalizedString; - /** - * Failed to delete network - */ - error: () => LocalizedString; - }; - }; - /** - * Location configuration - */ - header: () => LocalizedString; - /** - * Location import - */ - importHeader: () => LocalizedString; - form: { - helpers: { - /** - * Based on this address VPN network address will be defined, eg. 10.10.10.1/24 (and VPN network will be: 10.10.10.0/24) - */ - address: () => LocalizedString; - /** - * Gateway public address, used by VPN users to connect - */ - gateway: () => LocalizedString; - /** - * Specify the DNS resolvers to query when the wireguard interface is up. - */ - dns: () => LocalizedString; - /** - * List of addresses/masks that should be routed through the VPN network. - */ - allowedIps: () => LocalizedString; - /** - * By default, all users will be allowed to connect to this location. If you want to restrict access to this location to a specific group, please select it below. - */ - allowedGroups: () => LocalizedString; - }; - messages: { - /** - * Location modified. - */ - networkModified: () => LocalizedString; - /** - * Location created - */ - networkCreated: () => LocalizedString; - }; - fields: { - name: { - /** - * Location name - */ - label: () => LocalizedString; - }; - address: { - /** - * Gateway VPN IP address and netmask - */ - label: () => LocalizedString; - }; - endpoint: { - /** - * Gateway address - */ - label: () => LocalizedString; - }; - allowedIps: { - /** - * Allowed Ips - */ - label: () => LocalizedString; - }; - port: { - /** - * Gateway port - */ - label: () => LocalizedString; - }; - dns: { - /** - * DNS - */ - label: () => LocalizedString; - }; - allowedGroups: { - /** - * Allowed groups - */ - label: () => LocalizedString; - /** - * All groups - */ - placeholder: () => LocalizedString; - }; - mfa_enabled: { - /** - * Require MFA for this Location - */ - label: () => LocalizedString; - }; - keepalive_interval: { - /** - * Keepalive interval [seconds] - */ - label: () => LocalizedString; - }; - peer_disconnect_threshold: { - /** - * Peer disconnect threshold [seconds] - */ - label: () => LocalizedString; - }; - }; - controls: { - /** - * Save changes - */ - submit: () => LocalizedString; - /** - * Back to Overview - */ - cancel: () => LocalizedString; - /** - * Remove location - */ - delete: () => LocalizedString; - }; - }; - }; - gatewaySetup: { - header: { - /** - * Gateway server setup - */ - main: () => LocalizedString; - /** - * Docker Based Gateway Setup - */ - dockerBasedGatewaySetup: () => LocalizedString; - /** - * From Package - */ - fromPackage: () => LocalizedString; - /** - * One Line Install - */ - oneLineInstall: () => LocalizedString; - }; - card: { - /** - * Docker based gateway setup - */ - title: () => LocalizedString; - /** - * Authentication Token - */ - authToken: () => LocalizedString; - }; - button: { - /** - * Available Packages - */ - availablePackages: () => LocalizedString; - }; - controls: { - /** - * Check connection status - */ - status: () => LocalizedString; - }; - messages: { - /** - * Defguard requires to deploy a gateway node to control wireguard VPN on the vpn server. - More details can be found in the [documentation]({setupGatewayDocs}). - There are several ways to deploy the gateway server, - below is a Docker based example, for other examples please visit [documentation]({setupGatewayDocs}). + downloadSupportData: () => LocalizedString + /** + * Download logs */ - runCommand: (arg: { setupGatewayDocs: string }) => LocalizedString; - /** - * Please create the network before running the gateway process. - */ - createNetwork: () => LocalizedString; - /** - * No connection established, please run provided command. - */ - noConnection: () => LocalizedString; - /** - * Gateway connected. - */ - connected: () => LocalizedString; - /** - * Failed to get gateway status - */ - statusError: () => LocalizedString; - /** - * If you are doing one line install: https://defguard.gitbook.io/defguard/admin-and-features/setting-up-your-instance/one-line-install - you don't need to do anything. + downloadLogs: () => LocalizedString + /** + * Send support data */ - oneLineInstall: () => LocalizedString; - /** - * Install the package available at https://github.com/DefGuard/gateway/releases/latest and configure `/etc/defguard/gateway.toml` - according to the [documentation]({setupGatewayDocs}). + sendMail: () => LocalizedString + /** + * Email sent */ - fromPackage: (arg: { setupGatewayDocs: string }) => LocalizedString; - /** - * Token below is required to authenticate and configure the gateway node. Ensure you keep this token secure and follow the deployment instructions - provided in the [documentation]({setupGatewayDocs}) to successfully set up the gateway server. - For more details and exact steps, please refer to the [documentation]({setupGatewayDocs}). + mailSent: () => LocalizedString + /** + * Error sending email */ - authToken: (arg: { setupGatewayDocs: string }) => LocalizedString; - /** - * Below is a Docker based example. For more details and exact steps, please refer to the [documentation]({setupGatewayDocs}). - */ - dockerBasedGatewaySetup: (arg: { setupGatewayDocs: string }) => LocalizedString; - }; - }; - loginPage: { - /** - * Enter your credentials - */ - pageTitle: () => LocalizedString; - callback: { - /** - * Go back to login - */ - return: () => LocalizedString; - /** - * An error occurred during external OpenID login - */ - error: () => LocalizedString; - }; - mfa: { - /** - * Two-factor authentication - */ - title: () => LocalizedString; - controls: { - /** - * Use Authenticator app instead - */ - useAuthenticator: () => LocalizedString; - /** - * Use your wallet instead - */ - useWallet: () => LocalizedString; - /** - * Use security key instead - */ - useWebauthn: () => LocalizedString; - /** - * Use recovery code instead - */ - useRecoveryCode: () => LocalizedString; - /** - * Use E-mail instead - */ - useEmail: () => LocalizedString; - }; - email: { - /** - * Use code we sent to your e-mail to proceed. - */ - header: () => LocalizedString; - form: { - labels: { - /** - * Code - */ - code: () => LocalizedString; - }; - controls: { - /** - * Resend Code - */ - resendCode: () => LocalizedString; - }; - }; - }; - totp: { - /** - * Use code from your authentication app and click button to proceed. - */ - header: () => LocalizedString; - form: { - fields: { - code: { - /** - * Enter Authenticator code - */ - placeholder: () => LocalizedString; - }; - }; - controls: { - /** - * Use authenticator code - */ - submit: () => LocalizedString; - }; - }; - }; - recoveryCode: { - /** - * Enter one of active recovery codes and click button to log in. - */ - header: () => LocalizedString; - form: { - fields: { - code: { - /** - * Recovery code - */ - placeholder: () => LocalizedString; - }; - }; - controls: { - /** - * Use recovery code - */ - submit: () => LocalizedString; - }; - }; - }; - wallet: { - /** - * Use your crypto wallet to sign in, please sign message in your wallet app or extension. - */ - header: () => LocalizedString; - controls: { - /** - * Use your wallet - */ - submit: () => LocalizedString; - }; - messages: { - /** - * Wallet was disconnected during signing process. - */ - walletError: () => LocalizedString; - /** - * Wallet is not authorized for MFA login. Please use authorized wallet. - */ - walletErrorMfa: () => LocalizedString; - }; - }; - webauthn: { - /** - * When you are ready to authenticate, press the button below. - */ - header: () => LocalizedString; - controls: { - /** - * Use security key - */ - submit: () => LocalizedString; - }; - messages: { - /** - * Failed to read key. Please try again. - */ - error: () => LocalizedString; - }; - }; - }; - }; - wizard: { - /** - * Location setup completed - */ - completed: () => LocalizedString; - configuration: { - /** - * Location created - */ - successMessage: () => LocalizedString; - }; - welcome: { - /** - * Welcome to location wizard! - */ - header: () => LocalizedString; - /** - * Before you start using VPN you need to setup your first location. When in doubt click on icon. - */ - sub: () => LocalizedString; - /** - * Setup location - */ - button: () => LocalizedString; - }; - navigation: { - /** - * Location setup - */ - top: () => LocalizedString; - titles: { - /** - * Location setup - */ - welcome: () => LocalizedString; - /** - * Chose Location setup - */ - choseNetworkSetup: () => LocalizedString; - /** - * Import existing location - */ - importConfig: () => LocalizedString; - /** - * Configure location - */ - manualConfig: () => LocalizedString; - /** - * Map imported devices - */ - mapDevices: () => LocalizedString; - }; - buttons: { - /** - * Next - */ - next: () => LocalizedString; - /** - * Back - */ - back: () => LocalizedString; - }; - }; - deviceMap: { - messages: { - /** - * Devices added - */ - crateSuccess: () => LocalizedString; - /** - * Please fill marked fields. - */ - errorsInForm: () => LocalizedString; - }; - list: { - headers: { - /** - * Device Name - */ - deviceName: () => LocalizedString; - /** - * IP - */ - deviceIP: () => LocalizedString; - /** - * User - */ - user: () => LocalizedString; - }; - }; - }; - wizardType: { - manual: { - /** - * Manual Configuration - */ - title: () => LocalizedString; - /** - * Manual location configuration - */ - description: () => LocalizedString; - }; - import: { - /** - * Import From File - */ - title: () => LocalizedString; - /** - * Import from WireGuard config file - */ - description: () => LocalizedString; - }; - /** - * Create location - */ - createNetwork: () => LocalizedString; - }; - common: { - /** - * Select - */ - select: () => LocalizedString; - }; - locations: { - form: { - /** - * Name - */ - name: () => LocalizedString; - /** - * IP address - */ - ip: () => LocalizedString; - /** - * User - */ - user: () => LocalizedString; - /** - * File - */ - fileName: () => LocalizedString; - /** - * Select file - */ - selectFile: () => LocalizedString; - messages: { - /** - * Devices created - */ - devicesCreated: () => LocalizedString; - }; - validation: { - /** - * Invalid address - */ - invalidAddress: () => LocalizedString; - }; - }; - }; - }; - layout: { - select: { - /** - * Add new + - */ - addNewOptionDefault: () => LocalizedString; - }; - }; - redirectPage: { - /** - * You have been logged in - */ - title: () => LocalizedString; - /** - * You will be redirected in a moment... - */ - subtitle: () => LocalizedString; - }; - enrollmentPage: { - /** - * Enrollment - */ - title: () => LocalizedString; - controls: { - /** - * Restore default - */ - default: () => LocalizedString; - /** - * Save changes - */ - save: () => LocalizedString; - }; - messages: { - edit: { - /** - * Settings changed - */ - success: () => LocalizedString; - /** - * Save failed - */ - error: () => LocalizedString; - }; - }; - /** - * Enrollment is a process by which a new employee will be able to activate their new account, create a password and configure a VPN device. You can customize it here. - */ - messageBox: () => LocalizedString; - settings: { - welcomeMessage: { - /** - * Welcome message - */ - title: () => LocalizedString; - /** - * This information will be displayed for user in service once enrollment is completed. We advise to insert links and explain next steps briefly. You can use same message as in the e-mail. - */ - messageBox: () => LocalizedString; - }; - vpnOptionality: { - /** - * VPN set optionallity - */ - title: () => LocalizedString; - select: { - options: { - /** - * Optional - */ - optional: () => LocalizedString; - /** - * Mandatory - */ - mandatory: () => LocalizedString; - }; - }; - }; - welcomeEmail: { - /** - * Welcome e-mail - */ - title: () => LocalizedString; - subject: { - /** - * E-mail subject - */ - label: () => LocalizedString; - }; - /** - * This information will be sent to user once enrollment is completed. We advise to insert links and explain next steps briefly. - */ - messageBox: () => LocalizedString; - controls: { - /** - * Same as welcome message - */ - duplicateWelcome: () => LocalizedString; - }; - }; - }; - }; - supportPage: { - /** - * Support - */ - title: () => LocalizedString; - modals: { - confirmDataSend: { - /** - * Send Support Data - */ - title: () => LocalizedString; - /** - * Please confirm that you actually want to send support debug information. None of your private information will be sent (wireguard keys, email addresses, etc. will not be sent). - */ - subTitle: () => LocalizedString; - /** - * Send support data - */ - submit: () => LocalizedString; - }; - }; - debugDataCard: { - /** - * Support data - */ - title: () => LocalizedString; - /** - * - If you need assistance or you were asked to generate support data by our team (for example on our Matrix support channel: **#defguard-support:teonite.com**), you have two options: - * Either you can configure SMTP settings and click "Send support data" - * Or click "Download support data" and create a bug report in our GitHub attaching this file. - + mailError: () => LocalizedString + } + supportCard: { + /** + * Support */ - body: () => LocalizedString; - /** - * Download support data - */ - downloadSupportData: () => LocalizedString; - /** - * Download logs - */ - downloadLogs: () => LocalizedString; - /** - * Send support data - */ - sendMail: () => LocalizedString; - /** - * Email sent - */ - mailSent: () => LocalizedString; - /** - * Error sending email - */ - mailError: () => LocalizedString; - }; - supportCard: { - /** - * Support - */ - title: () => LocalizedString; - /** - * + title: () => LocalizedString + /** + * Before contacting or submitting any issues to GitHub please get familiar with Defguard documentation available at [defguard.gitbook.io/defguard](https://defguard.gitbook.io/defguard/) - + To submit: * Bugs - please go to [GitHub](https://github.com/DefGuard/defguard/issues/new?assignees=&labels=bug&template=bug_report.md&title=) * Feature request - please go to [GitHub](https://github.com/DefGuard/defguard/issues/new?assignees=&labels=feature&template=feature_request.md&title=) - + Any other requests you can reach us at: support@defguard.net - + */ - body: () => LocalizedString; - }; - }; -}; + body: () => LocalizedString + } + } +} -export type Formatters = {}; +export type Formatters = {} diff --git a/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx b/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx index 7871c8a1f6..fac922a097 100644 --- a/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx +++ b/web/src/pages/settings/components/EnterpriseSettings/components/EnterpriseForm.tsx @@ -87,7 +87,7 @@ export const EnterpriseForm = () => { {parse(LL.settingsPage.enterprise.fields.disableAllTraffic.helper())} - ); From 63011b7b54c2bd9a664f4e81aed737504b244a0b Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:24:55 +0200 Subject: [PATCH 5/9] cargo fix --- src/enterprise/grpc/polling.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/enterprise/grpc/polling.rs b/src/enterprise/grpc/polling.rs index 168d1d7ef4..c75a97b9ce 100644 --- a/src/enterprise/grpc/polling.rs +++ b/src/enterprise/grpc/polling.rs @@ -1,10 +1,7 @@ use crate::{ db::{models::polling_token::PollingToken, DbPool, Device, User}, enterprise::license::{get_cached_license, validate_license}, - grpc::{ - proto::InstanceConfigResponse, - utils::{build_device_config_response, build_instance_config_response}, - }, + grpc::utils::{build_device_config_response, build_instance_config_response}, }; use tonic::Status; From 5033ac843bc963bb54b6868f32c21c8286ae0253 Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:50:15 +0200 Subject: [PATCH 6/9] disable_route_all_traffic -> disable_all_traffic --- src/grpc/utils.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/grpc/utils.rs b/src/grpc/utils.rs index e71819b33a..9650033c2f 100644 --- a/src/grpc/utils.rs +++ b/src/grpc/utils.rs @@ -113,6 +113,6 @@ pub(crate) async fn build_instance_config_response( Ok(InstanceConfigResponse { enterprise, - disable_route_all_traffic: enterprise_settings.disable_all_traffic, + disable_all_traffic: enterprise_settings.disable_all_traffic, }) } From 3db94dc32d5b2b6fc642abb90226b3e92bf5c37c Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:58:53 +0200 Subject: [PATCH 7/9] update protobufs --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index d069a0e530..de58067ab6 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit d069a0e5304281cfc8b09e949a8e7a9feb5fc115 +Subproject commit de58067ab652f6e5ddf84c7bbc6e4d2363914738 From df25142ed68cd098faa7c51f6ece2f59d03eadf4 Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:18:49 +0200 Subject: [PATCH 8/9] cargo fmt --- src/db/models/polling_token.rs | 3 +- src/enterprise/grpc/polling.rs | 10 +++--- src/enterprise/handlers/openid_login.rs | 48 ++++++++++++++----------- src/grpc/enrollment.rs | 12 ++++--- src/grpc/mod.rs | 2 +- src/grpc/utils.rs | 6 ++-- src/handlers/app_info.rs | 8 ++--- src/secret.rs | 4 +-- tests/enterprise_settings.rs | 12 ++++--- 9 files changed, 58 insertions(+), 47 deletions(-) diff --git a/src/db/models/polling_token.rs b/src/db/models/polling_token.rs index 3235f6b05c..99f611909d 100644 --- a/src/db/models/polling_token.rs +++ b/src/db/models/polling_token.rs @@ -2,9 +2,8 @@ use chrono::{NaiveDateTime, Utc}; use model_derive::Model; use sqlx::{query_as, Error as SqlxError}; -use crate::random::gen_alphanumeric; - use super::DbPool; +use crate::random::gen_alphanumeric; // Token used for polling requests. #[derive(Clone, Debug, Model)] diff --git a/src/enterprise/grpc/polling.rs b/src/enterprise/grpc/polling.rs index c75a97b9ce..88fb28a07f 100644 --- a/src/enterprise/grpc/polling.rs +++ b/src/enterprise/grpc/polling.rs @@ -1,11 +1,13 @@ +use tonic::Status; + use crate::{ db::{models::polling_token::PollingToken, DbPool, Device, User}, enterprise::license::{get_cached_license, validate_license}, - grpc::utils::{build_device_config_response, build_instance_config_response}, + grpc::{ + proto::{InstanceInfoRequest, InstanceInfoResponse}, + utils::{build_device_config_response, build_instance_config_response}, + }, }; -use tonic::Status; - -use crate::grpc::proto::{InstanceInfoRequest, InstanceInfoResponse}; pub struct PollingServer { pool: DbPool, diff --git a/src/enterprise/handlers/openid_login.rs b/src/enterprise/handlers/openid_login.rs index e02d57bda4..e180d9c267 100644 --- a/src/enterprise/handlers/openid_login.rs +++ b/src/enterprise/handlers/openid_login.rs @@ -1,32 +1,38 @@ -use axum::extract::State; -use axum::http::StatusCode; -use axum::Json; +use axum::{extract::State, http::StatusCode, Json}; use axum_client_ip::{InsecureClientIp, LeftmostXForwardedFor}; -use axum_extra::extract::cookie::{Cookie, SameSite}; -use axum_extra::extract::{CookieJar, PrivateCookieJar}; -use axum_extra::headers::UserAgent; -use axum_extra::TypedHeader; -use openidconnect::core::{ - CoreClient, CoreGenderClaim, CoreJsonWebKeyType, CoreJweContentEncryptionAlgorithm, - CoreJwsSigningAlgorithm, CoreResponseType, +use axum_extra::{ + extract::{ + cookie::{Cookie, SameSite}, + CookieJar, PrivateCookieJar, + }, + headers::UserAgent, + TypedHeader, }; use openidconnect::{ - core::CoreProviderMetadata, reqwest::async_http_client, ClientId, ClientSecret, IssuerUrl, - ProviderMetadata, RedirectUrl, + core::{ + CoreClient, CoreGenderClaim, CoreJsonWebKeyType, CoreJweContentEncryptionAlgorithm, + CoreJwsSigningAlgorithm, CoreProviderMetadata, CoreResponseType, + }, + reqwest::async_http_client, + AuthenticationFlow, ClientId, ClientSecret, CsrfToken, EmptyAdditionalClaims, IdToken, + IssuerUrl, Nonce, ProviderMetadata, RedirectUrl, Scope, }; -use openidconnect::{AuthenticationFlow, CsrfToken, EmptyAdditionalClaims, IdToken, Nonce, Scope}; use serde_json::json; use time::Duration; use super::LicenseInfo; -use crate::appstate::AppState; -use crate::db::{DbPool, MFAInfo, Session, SessionState, Settings, User, UserInfo}; -use crate::enterprise::db::models::openid_provider::OpenIdProvider; -use crate::error::WebError; -use crate::handlers::user::{check_username, prune_username}; -use crate::handlers::{ApiResponse, AuthResponse, SESSION_COOKIE_NAME, SIGN_IN_COOKIE_NAME}; -use crate::headers::{check_new_device_login, get_user_agent_device, parse_user_agent}; -use crate::server_config; +use crate::{ + appstate::AppState, + db::{DbPool, MFAInfo, Session, SessionState, Settings, User, UserInfo}, + enterprise::db::models::openid_provider::OpenIdProvider, + error::WebError, + handlers::{ + user::{check_username, prune_username}, + ApiResponse, AuthResponse, SESSION_COOKIE_NAME, SIGN_IN_COOKIE_NAME, + }, + headers::{check_new_device_login, get_user_agent_device, parse_user_agent}, + server_config, +}; type ProvMeta = ProviderMetadata< openidconnect::EmptyAdditionalProviderMetadata, diff --git a/src/grpc/enrollment.rs b/src/grpc/enrollment.rs index 6cf74f4c5e..21ac12f783 100644 --- a/src/grpc/enrollment.rs +++ b/src/grpc/enrollment.rs @@ -1,16 +1,18 @@ use std::sync::Arc; -use super::InstanceInfo; use ipnetwork::IpNetwork; use sqlx::Transaction; use tokio::sync::{broadcast::Sender, mpsc::UnboundedSender}; use tonic::Status; use uaparser::UserAgentParser; -use super::proto::{ - ActivateUserRequest, AdminInfo, Device as ProtoDevice, DeviceConfig as ProtoDeviceConfig, - DeviceConfigResponse, EnrollmentStartRequest, EnrollmentStartResponse, ExistingDevice, - InitialUserInfo, NewDevice, +use super::{ + proto::{ + ActivateUserRequest, AdminInfo, Device as ProtoDevice, DeviceConfig as ProtoDeviceConfig, + DeviceConfigResponse, EnrollmentStartRequest, EnrollmentStartResponse, ExistingDevice, + InitialUserInfo, NewDevice, + }, + InstanceInfo, }; use crate::{ db::{ diff --git a/src/grpc/mod.rs b/src/grpc/mod.rs index 63c36e6c7b..ef63907146 100644 --- a/src/grpc/mod.rs +++ b/src/grpc/mod.rs @@ -9,7 +9,6 @@ use std::{ sync::{Arc, Mutex}, }; -use crate::enterprise::grpc::polling::PollingServer; use chrono::{Duration as ChronoDuration, NaiveDateTime, Utc}; use reqwest::Url; use serde::Serialize; @@ -46,6 +45,7 @@ use self::{ use crate::{ auth::failed_login::FailedLoginMap, db::{AppEvent, Settings}, + enterprise::grpc::polling::PollingServer, handlers::mail::send_gateway_disconnected_email, mail::Mail, server_config, diff --git a/src/grpc/utils.rs b/src/grpc/utils.rs index 9650033c2f..994789fa11 100644 --- a/src/grpc/utils.rs +++ b/src/grpc/utils.rs @@ -1,8 +1,10 @@ -use super::{proto::InstanceConfigResponse, InstanceInfo}; use ipnetwork::IpNetwork; use tonic::Status; -use super::proto::{DeviceConfig as ProtoDeviceConfig, DeviceConfigResponse}; +use super::{ + proto::{DeviceConfig as ProtoDeviceConfig, DeviceConfigResponse, InstanceConfigResponse}, + InstanceInfo, +}; use crate::{ db::{ models::{device::WireguardNetworkDevice, wireguard::WireguardNetwork}, diff --git a/src/handlers/app_info.rs b/src/handlers/app_info.rs index c0f60f693d..a8bc4294c9 100644 --- a/src/handlers/app_info.rs +++ b/src/handlers/app_info.rs @@ -2,11 +2,11 @@ use axum::{extract::State, http::StatusCode}; use serde_json::json; use super::{ApiResponse, ApiResult, VERSION}; -use crate::db::Settings; -use crate::enterprise::license::get_cached_license; use crate::{ - appstate::AppState, auth::SessionInfo, db::WireguardNetwork, - enterprise::license::validate_license, + appstate::AppState, + auth::SessionInfo, + db::{Settings, WireguardNetwork}, + enterprise::license::{get_cached_license, validate_license}, }; /// Additional information about core state. diff --git a/src/secret.rs b/src/secret.rs index ff062e1959..d0434a8f95 100644 --- a/src/secret.rs +++ b/src/secret.rs @@ -1,6 +1,4 @@ -use std::convert::Infallible; -use std::error::Error; -use std::str::FromStr; +use std::{convert::Infallible, error::Error, str::FromStr}; use secrecy::{ExposeSecret, Secret}; use serde::{Deserialize, Serialize}; diff --git a/tests/enterprise_settings.rs b/tests/enterprise_settings.rs index b0f2caa16d..88a3fc41c3 100644 --- a/tests/enterprise_settings.rs +++ b/tests/enterprise_settings.rs @@ -1,14 +1,16 @@ mod common; -use defguard::enterprise::{ - db::models::enterprise_settings::EnterpriseSettings, - license::{get_cached_license, set_cached_license}, +use defguard::{ + enterprise::{ + db::models::enterprise_settings::EnterpriseSettings, + license::{get_cached_license, set_cached_license}, + }, + handlers::Auth, }; use reqwest::StatusCode; +use serde_json::{json, Value}; use self::common::make_test_client; -use defguard::handlers::Auth; -use serde_json::{json, Value}; fn make_network() -> Value { json!({ From 62da9ec2ab250c369dd2a2c010bdccc2613bf81a Mon Sep 17 00:00:00 2001 From: Aleksander <170264518+t-aleksander@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:26:19 +0200 Subject: [PATCH 9/9] Update src/grpc/utils.rs Co-authored-by: Jacek Chmielewski --- src/grpc/utils.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/grpc/utils.rs b/src/grpc/utils.rs index 994789fa11..38bd8a1ed6 100644 --- a/src/grpc/utils.rs +++ b/src/grpc/utils.rs @@ -107,8 +107,8 @@ pub(crate) async fn build_instance_config_response( ) -> Result { debug!("Building instance config response"); let enterprise = validate_license(get_cached_license().as_ref()).is_ok(); - let enterprise_settings = EnterpriseSettings::get(pool).await.map_err(|_| { - error!("Failed to get enterprise settings while building instance config response"); + let enterprise_settings = EnterpriseSettings::get(pool).await.map_err(|err| { + error!("Failed to get enterprise settings while building instance config response: {err}"); Status::internal("unexpected error") })?; debug!("Instance config response built");