feat: move vault ssh signing into a plugin (C5)

This commit is contained in:
LukeGus committed 2026-09-24 20:24:09 -05:00
1 parent b027717c46
commit 6e56c90aac
198 files changed
+19717 -3445

No files matched your search

-60
View File
@@ -1,60 +0,0 @@
import { authApi, handleApiError } from "@/main-axios";
export interface VaultProfilePayload {
name: string;
description?: string | null;
folder?: string | null;
tags?: string[];
vaultAddr: string;
vaultNamespace?: string | null;
oidcMount?: string | null;
oidcRole?: string | null;
sshMount?: string | null;
sshRole: string;
validPrincipals?: string | null;
keyType?: string | null;
shared?: boolean;
}
export async function getVaultProfiles(): Promise<Record<string, unknown>[]> {
try {
const response = await authApi.get("/vault/profiles");
return response.data;
} catch (error) {
throw handleApiError(error, "fetch vault profiles");
}
}
export async function createVaultProfile(
payload: VaultProfilePayload,
): Promise<Record<string, unknown>> {
try {
const response = await authApi.post("/vault/profiles", payload);
return response.data;
} catch (error) {
throw handleApiError(error, "create vault profile");
}
}
export async function updateVaultProfile(
id: number,
payload: Partial<VaultProfilePayload>,
): Promise<Record<string, unknown>> {
try {
const response = await authApi.put(`/vault/profiles/${id}`, payload);
return response.data;
} catch (error) {
throw handleApiError(error, "update vault profile");
}
}
export async function deleteVaultProfile(
id: number,
): Promise<Record<string, unknown>> {
try {
const response = await authApi.delete(`/vault/profiles/${id}`);
return response.data;
} catch (error) {
throw handleApiError(error, "delete vault profile");
}
}
-24
View File
@@ -607,30 +607,6 @@
"authenticationMethodDesc": "Select the one method Termix will use to authenticate this SSH connection. Other methods are not tried automatically.",
"storedCredential": "Stored Credential",
"selectACredential": "Select a credential...",
"vaultProfile": "Vault Signer Profile",
"selectAVaultProfile": "Select a Vault profile...",
"vaultProfileHint": "Settings come from the shared profile; you'll sign in to Vault via OIDC when you connect. No secrets are stored.",
"vaultNewProfile": "New profile",
"vaultManageProfiles": "Manage Vault profiles",
"vaultAddrLabel": "Vault Address",
"vaultNamespaceLabel": "Namespace",
"vaultOidcMountLabel": "OIDC Auth Mount",
"vaultOidcRoleLabel": "OIDC Role",
"vaultSshMountLabel": "SSH Secrets Mount",
"vaultSshRoleLabel": "SSH Signer Role",
"vaultValidPrincipalsLabel": "Valid Principals",
"vaultKeyTypeLabel": "Ephemeral Key Type",
"vaultSharedLabel": "Share with all users",
"vaultCreateProfile": "Create profile",
"vaultProfileCreated": "Vault profile created",
"vaultProfileSaved": "Vault profile saved",
"vaultProfileDeleted": "Vault profile deleted",
"vaultProfileSaveFailed": "Failed to save Vault profile",
"vaultProfileDeleteFailed": "Failed to delete Vault profile",
"vaultSaveProfile": "Save profile",
"vaultProfileValidationError": "Name, Vault address and SSH signer role are required",
"vaultNoProfiles": "No Vault profiles yet.",
"vaultSharedBadge": "shared",
"keyTypeLabel": "Key Type",
"keyTypeAuto": "Auto Detect",
"keyPasteTab": "Paste",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Kies die een metode wat Termix sal gebruik om hierdie SSH-verbinding te verifieer. Ander metodes word nie outomaties probeer nie.",
"storedCredential": "Gestoorde geloofsbriewe",
"selectACredential": "Kies 'n geloofsbrief...",
"vaultProfile": "Kluis Ondertekenaar Profiel",
"selectAVaultProfile": "Kies 'n kluisprofiel...",
"vaultProfileHint": "Instellings kom van die gedeelde profiel; jy sal by Vault aanmeld via OIDC wanneer jy koppel. Geen geheime word gestoor nie.",
"vaultNewProfile": "Nuwe profiel",
"secretRefHint": "Jy kan 'n 1Password-verwysing (op://vault/item/field) in plaas van die geheim plak; dit word van jou geheime bron afgehaal wanneer jy koppel.",
"secretSourcesManage": "Bestuur geheime bronne",
"secretSourcesTitle": "Geheime bronne",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Naam, bediener-URL en token word vereis",
"secretSourceSaved": "Geheime bron gestoor",
"secretSourceDeleted": "Geheime bron verwyder",
"vaultManageProfiles": "Bestuur Vault-profiele",
"vaultAddrLabel": "Kluisadres",
"vaultNamespaceLabel": "Naamruimte",
"vaultOidcMountLabel": "OIDC-magtigingsmontering",
"vaultOidcRoleLabel": "OIDC-rol",
"vaultSshMountLabel": "SSH-geheime berg",
"vaultSshRoleLabel": "SSH-ondertekenaarrol",
"vaultValidPrincipalsLabel": "Geldige Prinsipale",
"vaultKeyTypeLabel": "Efemere Sleuteltipe",
"vaultSharedLabel": "Deel met alle gebruikers",
"vaultCreateProfile": "Skep profiel",
"vaultProfileCreated": "Kluisprofiel geskep",
"vaultProfileSaved": "Kluisprofiel gestoor",
"vaultProfileDeleted": "Kluisprofiel uitgevee",
"vaultProfileSaveFailed": "Kon nie kluisprofiel stoor nie",
"vaultProfileDeleteFailed": "Kon nie kluisprofiel uitvee nie",
"vaultSaveProfile": "Stoor profiel",
"vaultProfileValidationError": "Naam, kluisadres en SSH-ondertekenrol word vereis",
"vaultNoProfiles": "Geen Vault-profiele nog nie.",
"vaultSharedBadge": "gedeel",
"keyTypeLabel": "Sleuteltipe",
"keyTypeAuto": "Outomatiese opsporing",
"keyPasteTab": "Plak",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "اختر الطريقة التي سيستخدمها Termix للتحقق من صحة اتصال SSH هذا. لن يتم تجربة الطرق الأخرى تلقائيًا.",
"storedCredential": "بيانات اعتماد مخزنة",
"selectACredential": "اختيار بيانات اعتماد...",
"vaultProfile": "ملف توقيع Vault",
"selectAVaultProfile": "اختيار ملف توقيع Vault...",
"vaultProfileHint": "تأتي الإعدادات من الملف المشترك؛ ستقوم بتسجيل الدخول إلى Vault عبر OIDC عند الاتصال. لا يتم تخزين أي أسرار.",
"vaultNewProfile": "ملف جديد",
"secretRefHint": "يمكنك لصق مرجع 1Password (op://vault/item/field) بدلاً من السر؛ يتم جلبه من مصدر السر الخاص بك عند الاتصال.",
"secretSourcesManage": "إدارة المصادر السرية",
"secretSourcesTitle": "مصادر سرية",
@@ -739,26 +735,6 @@
"secretSourceRequired": "الاسم وعنوان URL للخادم والرمز المميز مطلوبة",
"secretSourceSaved": "تم حفظ المصدر السري",
"secretSourceDeleted": "تم حذف المصدر السري",
"vaultManageProfiles": "إدارة ملفات Vault",
"vaultAddrLabel": "عنوان Vault",
"vaultNamespaceLabel": "مساحة الاسم",
"vaultOidcMountLabel": "تثبيت مصادقة OIDC",
"vaultOidcRoleLabel": "دور OIDC",
"vaultSshMountLabel": "تثبيت أسرار SSH",
"vaultSshRoleLabel": "دور موقع SSH",
"vaultValidPrincipalsLabel": "المستخدمون المسموح بهم",
"vaultKeyTypeLabel": "نوع المفتاح المؤقت",
"vaultSharedLabel": "مشاركة مع جميع المستخدمين",
"vaultCreateProfile": "إنشاء ملف تعريف",
"vaultProfileCreated": "تم إنشاء ملف تعريف Vault",
"vaultProfileSaved": "تم حفظ ملف تعريف Vault",
"vaultProfileDeleted": "تم حذف ملف تعريف Vault",
"vaultProfileSaveFailed": "فشل حفظ ملف تعريف Vault",
"vaultProfileDeleteFailed": "فشل حذف ملف تعريف Vault",
"vaultSaveProfile": "حفظ ملف التعريف",
"vaultProfileValidationError": "الاسم وعنوان Vault ودور الموقّع SSH مطلوب",
"vaultNoProfiles": "لا توجد ملفات تعريف Vault بعد.",
"vaultSharedBadge": "مشترك",
"keyTypeLabel": "نوع المفتاح",
"keyTypeAuto": "اكتشاف تلقائي",
"keyPasteTab": "لصق",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Изберете единствения метод, който Termix ще използва за удостоверяване на тази SSH връзка. Други методи не се опитват автоматично.",
"storedCredential": "Съхранени идентификационни данни",
"selectACredential": "Изберете идентификационен номер...",
"vaultProfile": "Профил на подписващ в трезора",
"selectAVaultProfile": "Изберете профил в трезора...",
"vaultProfileHint": "Настройките идват от споделения профил; ще влезете в Vault чрез OIDC, когато се свържете. Не се съхраняват тайни.",
"vaultNewProfile": "Нов профил",
"secretRefHint": "Можете да поставите препратка към 1Password (op://vault/item/field) вместо тайната; тя се извлича от вашия източник на тайна при свързване.",
"secretSourcesManage": "Управлявайте тайните източници",
"secretSourcesTitle": "Тайни източници",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Име, URL адрес на сървъра и токен са задължителни",
"secretSourceSaved": "Секретният източник е запазен",
"secretSourceDeleted": "Секретният източник е изтрит",
"vaultManageProfiles": "Управление на профили в хранилището",
"vaultAddrLabel": "Адрес на трезора",
"vaultNamespaceLabel": "Именно пространство",
"vaultOidcMountLabel": "OIDC Authentication Mount",
"vaultOidcRoleLabel": "Роля на OIDC",
"vaultSshMountLabel": "SSH Secrets Mount",
"vaultSshRoleLabel": "Роля на SSH подписващ",
"vaultValidPrincipalsLabel": "Валидни принципали",
"vaultKeyTypeLabel": "Тип ефимерен ключ",
"vaultSharedLabel": "Споделяне с всички потребители",
"vaultCreateProfile": "Създаване на профил",
"vaultProfileCreated": "Профилът на трезора е създаден",
"vaultProfileSaved": "Профилът на трезора е запазен",
"vaultProfileDeleted": "Профилът в трезора е изтрит",
"vaultProfileSaveFailed": "Запазването на профила в Трезора не бе успешно",
"vaultProfileDeleteFailed": "Изтриването на профила в Vault не бе успешно",
"vaultSaveProfile": "Запазване на профил",
"vaultProfileValidationError": "Име, адрес на трезора и роля на SSH подписващ са задължителни",
"vaultNoProfiles": "Все още няма профили в Трезора.",
"vaultSharedBadge": "споделено",
"keyTypeLabel": "Тип ключ",
"keyTypeAuto": "Автоматично откриване",
"keyPasteTab": "Паста",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "এই SSH সংযোগটি প্রমাণীকরণের জন্য Termix যে পদ্ধতিটি ব্যবহার করবে, সেটি নির্বাচন করুন। অন্য পদ্ধতিগুলো স্বয়ংক্রিয়ভাবে চেষ্টা করা হয় না।",
"storedCredential": "সংরক্ষিত পরিচয়পত্র",
"selectACredential": "একটি শংসাপত্র নির্বাচন করুন...",
"vaultProfile": "ভল্ট স্বাক্ষরকারীর প্রোফাইল",
"selectAVaultProfile": "একটি ভল্ট প্রোফাইল নির্বাচন করুন...",
"vaultProfileHint": "সেটিংস শেয়ার করা প্রোফাইল থেকে আসে; সংযোগ করার সময় আপনি OIDC-এর মাধ্যমে ভল্টে সাইন ইন করবেন। কোনো গোপনীয় তথ্য সংরক্ষিত থাকে না।",
"vaultNewProfile": "নতুন প্রোফাইল",
"secretRefHint": "আপনি সিক্রেটের পরিবর্তে একটি 1Password রেফারেন্স (op://vault/item/field) পেস্ট করতে পারেন; সংযোগ করার সময় এটি আপনার সিক্রেট সোর্স থেকে নিয়ে আসা হয়।",
"secretSourcesManage": "গোপন উৎস পরিচালনা করুন",
"secretSourcesTitle": "গোপন সূত্র",
@@ -739,26 +735,6 @@
"secretSourceRequired": "নাম, সার্ভার ইউআরএল এবং টোকেন প্রয়োজন।",
"secretSourceSaved": "গোপন উৎস সংরক্ষিত",
"secretSourceDeleted": "গোপন সূত্র মুছে ফেলা হয়েছে",
"vaultManageProfiles": "ভল্ট প্রোফাইলগুলি পরিচালনা করুন",
"vaultAddrLabel": "ভল্ট ঠিকানা",
"vaultNamespaceLabel": "নেমস্পেস",
"vaultOidcMountLabel": "OIDC অথোরাইজেশন মাউন্ট",
"vaultOidcRoleLabel": "OIDC ভূমিকা",
"vaultSshMountLabel": "SSH সিক্রেটস মাউন্ট",
"vaultSshRoleLabel": "SSH স্বাক্ষরকারীর ভূমিকা",
"vaultValidPrincipalsLabel": "বৈধ অধ্যক্ষরা",
"vaultKeyTypeLabel": "ক্ষণস্থায়ী কী টাইপ",
"vaultSharedLabel": "সকল ব্যবহারকারীর সাথে শেয়ার করুন",
"vaultCreateProfile": "প্রোফাইল তৈরি করুন",
"vaultProfileCreated": "ভল্ট প্রোফাইল তৈরি করা হয়েছে",
"vaultProfileSaved": "ভল্ট প্রোফাইল সংরক্ষিত হয়েছে",
"vaultProfileDeleted": "ভল্ট প্রোফাইল মুছে ফেলা হয়েছে",
"vaultProfileSaveFailed": "ভল্ট প্রোফাইল সংরক্ষণ করতে ব্যর্থ হয়েছে",
"vaultProfileDeleteFailed": "ভল্ট প্রোফাইল মুছে ফেলা ব্যর্থ হয়েছে",
"vaultSaveProfile": "প্রোফাইল সংরক্ষণ করুন",
"vaultProfileValidationError": "নাম, ভল্ট অ্যাড্রেস এবং SSH সাইনার রোল প্রয়োজন।",
"vaultNoProfiles": "এখনো কোনো ভল্ট প্রোফাইল তৈরি হয়নি।",
"vaultSharedBadge": "শেয়ার করা",
"keyTypeLabel": "চাবির ধরন",
"keyTypeAuto": "স্বয়ংক্রিয়ভাবে সনাক্ত করুন",
"keyPasteTab": "পেস্ট",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Seleccioneu el mètode que Termix utilitzarà per autenticar aquesta connexió SSH. Els altres mètodes no es proven automàticament.",
"storedCredential": "Credencial emmagatzemada",
"selectACredential": "Selecciona una credencial...",
"vaultProfile": "Perfil del signant de la caixa forta",
"selectAVaultProfile": "Seleccioneu un perfil de Vault...",
"vaultProfileHint": "La configuració prové del perfil compartit; iniciaràs la sessió a Vault mitjançant OIDC quan et connectis. No s'emmagatzemen secrets.",
"vaultNewProfile": "Nou perfil",
"secretRefHint": "Podeu enganxar una referència 1Password (op://vault/item/field) en comptes del secret; s'obté de la font del secret quan us connecteu.",
"secretSourcesManage": "Gestiona fonts secretes",
"secretSourcesTitle": "Fonts secretes",
@@ -739,26 +735,6 @@
"secretSourceRequired": "El nom, l'URL del servidor i el testimoni són obligatoris",
"secretSourceSaved": "Font secreta desada",
"secretSourceDeleted": "Font secreta suprimida",
"vaultManageProfiles": "Gestiona els perfils de Vault",
"vaultAddrLabel": "Adreça de la caixa forta",
"vaultNamespaceLabel": "Espai de noms",
"vaultOidcMountLabel": "Muntatge d'autenticació OIDC",
"vaultOidcRoleLabel": "Rol de l'OIDC",
"vaultSshMountLabel": "Muntanya de Secrets SSH",
"vaultSshRoleLabel": "Rol de signant SSH",
"vaultValidPrincipalsLabel": "Principals vàlids",
"vaultKeyTypeLabel": "Tipus de clau efímera",
"vaultSharedLabel": "Comparteix amb tots els usuaris",
"vaultCreateProfile": "Crea un perfil",
"vaultProfileCreated": "Perfil de la caixa forta creat",
"vaultProfileSaved": "Perfil de la caixa forta desat",
"vaultProfileDeleted": "Perfil de la caixa forta suprimit",
"vaultProfileSaveFailed": "No s'ha pogut desar el perfil de Vault",
"vaultProfileDeleteFailed": "No s'ha pogut suprimir el perfil de Vault",
"vaultSaveProfile": "Desa el perfil",
"vaultProfileValidationError": "El nom, l'adreça de la caixa forta i el rol de signant SSH són obligatoris.",
"vaultNoProfiles": "Encara no hi ha perfils de Vault.",
"vaultSharedBadge": "compartit",
"keyTypeLabel": "Tipus de clau",
"keyTypeAuto": "Detecció automàtica",
"keyPasteTab": "Enganxa",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Vyberte jednu metodu, kterou Termix použije k ověření tohoto SSH připojení. Ostatní metody se nebudou automaticky zkoušet.",
"storedCredential": "Uložené přihlašovací údaje",
"selectACredential": "Vyberte pověření...",
"vaultProfile": "Profil podepisujícího trezoru",
"selectAVaultProfile": "Vyberte profil úložiště...",
"vaultProfileHint": "Nastavení pocházejí ze sdíleného profilu; po připojení se do úložiště přihlásíte přes OIDC. Žádné tajné kódy se neukládají.",
"vaultNewProfile": "Nový profil",
"secretRefHint": "Místo tajného hesla můžete vložit odkaz na 1Password (op://vault/item/field); při připojování se načte ze zdroje vašeho tajného hesla.",
"secretSourcesManage": "Správa tajných zdrojů",
"secretSourcesTitle": "Tajné zdroje",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Jméno, URL adresa serveru a token jsou povinné",
"secretSourceSaved": "Tajný zdroj uložen",
"secretSourceDeleted": "Tajný zdroj smazán",
"vaultManageProfiles": "Správa profilů úložiště",
"vaultAddrLabel": "Adresa trezoru",
"vaultNamespaceLabel": "Jmenný prostor",
"vaultOidcMountLabel": "Připojení autorizace OIDC",
"vaultOidcRoleLabel": "Role OIDC",
"vaultSshMountLabel": "SSH tajemství Mount",
"vaultSshRoleLabel": "Role SSH podepisujícího",
"vaultValidPrincipalsLabel": "Platné principy",
"vaultKeyTypeLabel": "Typ dočasného klíče",
"vaultSharedLabel": "Sdílet se všemi uživateli",
"vaultCreateProfile": "Vytvořit profil",
"vaultProfileCreated": "Profil úložiště vytvořen",
"vaultProfileSaved": "Profil trezoru uložen",
"vaultProfileDeleted": "Profil trezoru smazán",
"vaultProfileSaveFailed": "Uložení profilu úložiště se nezdařilo.",
"vaultProfileDeleteFailed": "Profil v úložišti se nepodařilo smazat.",
"vaultSaveProfile": "Uložit profil",
"vaultProfileValidationError": "Jméno, adresa trezoru a role SSH signatáře jsou povinné.",
"vaultNoProfiles": "Zatím žádné profily v úložišti Vault.",
"vaultSharedBadge": "sdílené",
"keyTypeLabel": "Typ klíče",
"keyTypeAuto": "Automatická detekce",
"keyPasteTab": "Pasta",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Vælg den metode, som Termix vil bruge til at godkende denne SSH-forbindelse. Andre metoder afprøves ikke automatisk.",
"storedCredential": "Gemte legitimationsoplysninger",
"selectACredential": "Vælg en legitimationsoplysninger...",
"vaultProfile": "Profil for underskriver af arkiv",
"selectAVaultProfile": "Vælg en Vault-profil...",
"vaultProfileHint": "Indstillingerne kommer fra den delte profil; du logger ind på Vault via OIDC, når du opretter forbindelse. Der gemmes ingen hemmeligheder.",
"vaultNewProfile": "Ny profil",
"secretRefHint": "Du kan indsætte en 1Password-reference (op://vault/item/field) i stedet for hemmeligheden; den hentes fra din hemmelige kilde, når du opretter forbindelse.",
"secretSourcesManage": "Administrer hemmelige kilder",
"secretSourcesTitle": "Hemmelige kilder",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Navn, server-URL og token er påkrævet",
"secretSourceSaved": "Hemmelig kilde gemt",
"secretSourceDeleted": "Hemmelig kilde slettet",
"vaultManageProfiles": "Administrer Vault-profiler",
"vaultAddrLabel": "Adresse i boksen",
"vaultNamespaceLabel": "Navnerum",
"vaultOidcMountLabel": "OIDC-godkendelsesmontering",
"vaultOidcRoleLabel": "OIDC-rolle",
"vaultSshMountLabel": "SSH-hemmeligheder monteres",
"vaultSshRoleLabel": "SSH-underskriverrolle",
"vaultValidPrincipalsLabel": "Gyldige principper",
"vaultKeyTypeLabel": "Kortvarig nøgletype",
"vaultSharedLabel": "Del med alle brugere",
"vaultCreateProfile": "Opret profil",
"vaultProfileCreated": "Vault-profil oprettet",
"vaultProfileSaved": "Vault-profil gemt",
"vaultProfileDeleted": "Vault-profil slettet",
"vaultProfileSaveFailed": "Kunne ikke gemme Vault-profilen",
"vaultProfileDeleteFailed": "Kunne ikke slette Vault-profilen",
"vaultSaveProfile": "Gem profil",
"vaultProfileValidationError": "Navn, Vault-adresse og SSH-underskriverrolle er påkrævet",
"vaultNoProfiles": "Ingen Vault-profiler endnu.",
"vaultSharedBadge": "delt",
"keyTypeLabel": "Nøgletype",
"keyTypeAuto": "Automatisk registrering",
"keyPasteTab": "Indsæt",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Wählen Sie die Methode aus, die Termix zur Authentifizierung dieser SSH-Verbindung verwenden soll. Andere Methoden werden nicht automatisch ausprobiert.",
"storedCredential": "Gespeicherte Anmeldedaten",
"selectACredential": "Anmeldedaten auswählen...",
"vaultProfile": "Vault-Signer-Profil",
"selectAVaultProfile": "Vault-Profil auswählen...",
"vaultProfileHint": "Die Einstellungen stammen aus dem freigegebenen Profil; Sie melden sich beim Verbinden per OIDC bei Vault an. Es werden keine Geheimnisse gespeichert.",
"vaultNewProfile": "Neues Profil",
"secretRefHint": "Sie können anstelle des Geheimnisses eine 1Password-Referenz (op://vault/item/field) einfügen; diese wird beim Verbindungsaufbau aus Ihrer Geheimnisquelle abgerufen.",
"secretSourcesManage": "Geheime Quellen verwalten",
"secretSourcesTitle": "Geheime Quellen",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Name, Server-URL und Token werden benötigt.",
"secretSourceSaved": "Geheime Quelle gerettet",
"secretSourceDeleted": "Geheime Quelle gelöscht",
"vaultManageProfiles": "Vault-Profile verwalten",
"vaultAddrLabel": "Vault-Adresse",
"vaultNamespaceLabel": "Namespace",
"vaultOidcMountLabel": "OIDC-Auth-Mount",
"vaultOidcRoleLabel": "OIDC-Rolle",
"vaultSshMountLabel": "SSH-Secrets-Mount",
"vaultSshRoleLabel": "SSH-Signer-Rolle",
"vaultValidPrincipalsLabel": "Gültige Principals",
"vaultKeyTypeLabel": "Ephemerer Schlüsseltyp",
"vaultSharedLabel": "Mit allen Benutzern teilen",
"vaultCreateProfile": "Profil erstellen",
"vaultProfileCreated": "Vault-Profil erstellt",
"vaultProfileSaved": "Vault-Profil gespeichert",
"vaultProfileDeleted": "Vault-Profil gelöscht",
"vaultProfileSaveFailed": "Fehler beim Speichern des Vault-Profils",
"vaultProfileDeleteFailed": "Fehler beim Löschen des Vault-Profils",
"vaultSaveProfile": "Profil speichern",
"vaultProfileValidationError": "Name, Vault-Adresse und SSH-Signer-Rolle sind erforderlich",
"vaultNoProfiles": "Noch keine Vault-Profile.",
"vaultSharedBadge": "geteilt",
"keyTypeLabel": "Schlüsseltyp",
"keyTypeAuto": "Automatisch erkennen",
"keyPasteTab": "Einfügen",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Επιλέξτε τη μέθοδο που θα χρησιμοποιήσει το Termix για τον έλεγχο ταυτότητας αυτής της σύνδεσης SSH. Άλλες μέθοδοι δεν δοκιμάζονται αυτόματα.",
"storedCredential": "Αποθηκευμένα διαπιστευτήρια",
"selectACredential": "Επιλέξτε ένα πιστοποιητικό...",
"vaultProfile": "Προφίλ Υπογράφοντος Vault",
"selectAVaultProfile": "Επιλέξτε ένα προφίλ Vault...",
"vaultProfileHint": "Οι ρυθμίσεις προέρχονται από το κοινόχρηστο προφίλ. Θα συνδεθείτε στο Vault μέσω OIDC όταν συνδεθείτε. Δεν αποθηκεύονται μυστικά.",
"vaultNewProfile": "Νέο προφίλ",
"secretRefHint": "Μπορείτε να επικολλήσετε μια αναφορά 1Password (op://vault/item/field) αντί για το μυστικό. Αυτό ανακτάται από την μυστική σας πηγή κατά τη σύνδεση.",
"secretSourcesManage": "Διαχείριση μυστικών πηγών",
"secretSourcesTitle": "Μυστικές πηγές",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Απαιτούνται όνομα, διεύθυνση URL διακομιστή και διακριτικό",
"secretSourceSaved": "Η μυστική πηγή αποθηκεύτηκε",
"secretSourceDeleted": "Η μυστική πηγή διαγράφηκε",
"vaultManageProfiles": "Διαχείριση προφίλ Vault",
"vaultAddrLabel": "Διεύθυνση θησαυροφυλακίου",
"vaultNamespaceLabel": "Χώρος ονομάτων",
"vaultOidcMountLabel": "Μοντάζ ελέγχου ταυτότητας OIDC",
"vaultOidcRoleLabel": "Ρόλος OIDC",
"vaultSshMountLabel": "SSH Secrets Mount",
"vaultSshRoleLabel": "Ρόλος Υπογράφοντος SSH",
"vaultValidPrincipalsLabel": "Έγκυρες Αρχές",
"vaultKeyTypeLabel": "Εφήμερος Τύπος Κλειδιού",
"vaultSharedLabel": "Κοινοποίηση με όλους τους χρήστες",
"vaultCreateProfile": "Δημιουργία προφίλ",
"vaultProfileCreated": "Δημιουργήθηκε προφίλ Vault",
"vaultProfileSaved": "Το προφίλ του Vault αποθηκεύτηκε",
"vaultProfileDeleted": "Το προφίλ Vault διαγράφηκε",
"vaultProfileSaveFailed": "Αποτυχία αποθήκευσης προφίλ Vault",
"vaultProfileDeleteFailed": "Αποτυχία διαγραφής προφίλ Vault",
"vaultSaveProfile": "Αποθήκευση προφίλ",
"vaultProfileValidationError": "Απαιτούνται όνομα, διεύθυνση vault και ρόλος υπογράφοντος SSH",
"vaultNoProfiles": "Δεν υπάρχουν ακόμη προφίλ Vault.",
"vaultSharedBadge": "κοινόχρηστο",
"keyTypeLabel": "Τύπος κλειδιού",
"keyTypeAuto": "Αυτόματη ανίχνευση",
"keyPasteTab": "Πάστα",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Seleccione el método que Termix utilizará para autenticar esta conexión SSH. Los demás métodos no se intentarán automáticamente.",
"storedCredential": "Credencial almacenada",
"selectACredential": "Seleccionar una credencial...",
"vaultProfile": "Perfil de firmante de Vault",
"selectAVaultProfile": "Seleccionar un perfil de Vault...",
"vaultProfileHint": "La configuración proviene del perfil compartido; se iniciará sesión en Vault a través de OIDC al conectarse. No se almacenan secretos.",
"vaultNewProfile": "Nuevo perfil",
"secretRefHint": "Puedes pegar una referencia de 1Password (op://vault/item/field) en lugar de la clave secreta; esta se obtiene de tu fuente de claves secretas al conectarte.",
"secretSourcesManage": "Gestionar fuentes secretas",
"secretSourcesTitle": "Fuentes secretas",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Se requieren nombre, URL del servidor y token.",
"secretSourceSaved": "Fuente secreta guardada",
"secretSourceDeleted": "Fuente secreta eliminada",
"vaultManageProfiles": "Administrar perfiles de Vault",
"vaultAddrLabel": "Dirección de Vault",
"vaultNamespaceLabel": "Espacio de nombres",
"vaultOidcMountLabel": "Montaje de autenticación OIDC",
"vaultOidcRoleLabel": "Rol OIDC",
"vaultSshMountLabel": "Montaje de secretos SSH",
"vaultSshRoleLabel": "Rol de firmante SSH",
"vaultValidPrincipalsLabel": "Principals válidos",
"vaultKeyTypeLabel": "Tipo de clave efímera",
"vaultSharedLabel": "Compartir con todos los usuarios",
"vaultCreateProfile": "Crear perfil",
"vaultProfileCreated": "Perfil de Vault creado",
"vaultProfileSaved": "Perfil de Vault guardado",
"vaultProfileDeleted": "Perfil de Vault eliminado",
"vaultProfileSaveFailed": "Error al guardar el perfil de Vault",
"vaultProfileDeleteFailed": "Error al eliminar el perfil de Vault",
"vaultSaveProfile": "Guardar perfil",
"vaultProfileValidationError": "Se requieren el nombre, la dirección de Vault y el rol de firmante SSH",
"vaultNoProfiles": "Aún no hay perfiles de Vault.",
"vaultSharedBadge": "compartido",
"keyTypeLabel": "Tipo de clave",
"keyTypeAuto": "Detección automática",
"keyPasteTab": "Pegar",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Valitse yksi menetelmä, jota Termix käyttää tämän SSH-yhteyden todentamiseen. Muita menetelmiä ei kokeilla automaattisesti.",
"storedCredential": "Tallennetut tunnistetiedot",
"selectACredential": "Valitse tunnistetiedot...",
"vaultProfile": "Varaston allekirjoittajan profiili",
"selectAVaultProfile": "Valitse holviprofiili...",
"vaultProfileHint": "Asetukset tulevat jaetusta profiilista; kirjaudut Holviin OIDC:n kautta, kun muodostat yhteyden. Salaisuuksia ei tallenneta.",
"vaultNewProfile": "Uusi profiili",
"secretRefHint": "Voit liittää 1Password-viittauksen (op://vault/item/field) salaisuuden sijaan; se noudetaan salaisuuden lähteestäsi yhteyden muodostamisen yhteydessä.",
"secretSourcesManage": "Hallitse salaisia lähteitä",
"secretSourcesTitle": "Salaiset lähteet",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Nimi, palvelimen URL-osoite ja tunnus vaaditaan",
"secretSourceSaved": "Salainen lähde tallennettu",
"secretSourceDeleted": "Salainen lähde poistettu",
"vaultManageProfiles": "Hallinnoi holviprofiileja",
"vaultAddrLabel": "Holvin osoite",
"vaultNamespaceLabel": "Nimiavaruus",
"vaultOidcMountLabel": "OIDC-todennusliitos",
"vaultOidcRoleLabel": "OIDC-rooli",
"vaultSshMountLabel": "SSH-salaisuuksien kiinnitys",
"vaultSshRoleLabel": "SSH-allekirjoittajan rooli",
"vaultValidPrincipalsLabel": "Voimassa olevat pääasialliset",
"vaultKeyTypeLabel": "Lyhytaikainen avaintyyppi",
"vaultSharedLabel": "Jaa kaikkien käyttäjien kanssa",
"vaultCreateProfile": "Luo profiili",
"vaultProfileCreated": "Holvin profiili luotu",
"vaultProfileSaved": "Holvin profiili tallennettu",
"vaultProfileDeleted": "Holvin profiili poistettu",
"vaultProfileSaveFailed": "Holvin profiilin tallentaminen epäonnistui",
"vaultProfileDeleteFailed": "Holviprofiilin poistaminen epäonnistui",
"vaultSaveProfile": "Tallenna profiili",
"vaultProfileValidationError": "Nimi, holvin osoite ja SSH-allekirjoittajan rooli vaaditaan",
"vaultNoProfiles": "Ei vielä holviprofiileja.",
"vaultSharedBadge": "jaettu",
"keyTypeLabel": "Avaimen tyyppi",
"keyTypeAuto": "Automaattinen tunnistus",
"keyPasteTab": "Liitä",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Sélectionnez la méthode que Termix utilisera pour authentifier cette connexion SSH. Les autres méthodes ne seront pas essayées automatiquement.",
"storedCredential": "Identifiant enregistré",
"selectACredential": "Sélectionner un identifiant...",
"vaultProfile": "Profil de signature Vault",
"selectAVaultProfile": "Sélectionner un profil Vault...",
"vaultProfileHint": "Les paramètres proviennent du profil partagé ; vous vous connecterez à Vault via OIDC lors de la connexion. Aucun secret n'est stocké.",
"vaultNewProfile": "Nouveau profil",
"secretRefHint": "Vous pouvez coller une référence 1Password (op://vault/item/field) à la place du secret ; elle sera récupérée depuis votre source de secret lors de la connexion.",
"secretSourcesManage": "Gérer les sources secrètes",
"secretSourcesTitle": "Sources secrètes",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Le nom, l'URL du serveur et le jeton sont requis.",
"secretSourceSaved": "Source secrète sauvegardée",
"secretSourceDeleted": "Source secrète supprimée",
"vaultManageProfiles": "Gérer les profils Vault",
"vaultAddrLabel": "Adresse Vault",
"vaultNamespaceLabel": "Espace de noms",
"vaultOidcMountLabel": "Point de montage d'authentification OIDC",
"vaultOidcRoleLabel": "Rôle OIDC",
"vaultSshMountLabel": "Point de montage des secrets SSH",
"vaultSshRoleLabel": "Rôle de signature SSH",
"vaultValidPrincipalsLabel": "Principaux valides",
"vaultKeyTypeLabel": "Type de clé éphémère",
"vaultSharedLabel": "Partager avec tous les utilisateurs",
"vaultCreateProfile": "Créer un profil",
"vaultProfileCreated": "Profil Vault créé",
"vaultProfileSaved": "Profil Vault enregistré",
"vaultProfileDeleted": "Profil Vault supprimé",
"vaultProfileSaveFailed": "Échec de l'enregistrement du profil Vault",
"vaultProfileDeleteFailed": "Échec de la suppression du profil Vault",
"vaultSaveProfile": "Enregistrer le profil",
"vaultProfileValidationError": "Le nom, l'adresse Vault et le rôle de signataire SSH sont requis",
"vaultNoProfiles": "Aucun profil Vault pour le moment",
"vaultSharedBadge": "partagé",
"keyTypeLabel": "Type de clé",
"keyTypeAuto": "Détection automatique",
"keyPasteTab": "Coller",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "בחר את השיטה שבה Termix ישתמש כדי לאמת חיבור SSH זה. שיטות אחרות לא ינוסו אוטומטית.",
"storedCredential": "אישורים מאוחסנים",
"selectACredential": "בחר אישור...",
"vaultProfile": "פרופיל חותם בכספת",
"selectAVaultProfile": "בחר פרופיל כספת...",
"vaultProfileHint": "ההגדרות מגיעות מהפרופיל המשותף; תיכנס לכספת דרך OIDC כשתתחבר. לא נשמרים סודות.",
"vaultNewProfile": "פרופיל חדש",
"secretRefHint": "ניתן להדביק הפניה ל-1Password (op://vault/item/field) במקום הסוד; היא נלקחת ממקור הסוד שלך בעת ההתחברות.",
"secretSourcesManage": "ניהול מקורות סודיים",
"secretSourcesTitle": "מקורות סודיים",
@@ -739,26 +735,6 @@
"secretSourceRequired": "נדרשים שם, כתובת URL של השרת וטופס",
"secretSourceSaved": "מקור סודי נשמר",
"secretSourceDeleted": "מקור סודי נמחק",
"vaultManageProfiles": "ניהול פרופילי כספת",
"vaultAddrLabel": "כתובת הכספת",
"vaultNamespaceLabel": "מרחב השמות",
"vaultOidcMountLabel": "אישור OIDC",
"vaultOidcRoleLabel": "תפקיד OIDC",
"vaultSshMountLabel": "סודות SSH מאוורר",
"vaultSshRoleLabel": "תפקיד חותם SSH",
"vaultValidPrincipalsLabel": "עקרונות תקפים",
"vaultKeyTypeLabel": "סוג מפתח זמני",
"vaultSharedLabel": "שתף עם כל המשתמשים",
"vaultCreateProfile": "צור פרופיל",
"vaultProfileCreated": "פרופיל הכספת נוצר",
"vaultProfileSaved": "פרופיל הכספת נשמר",
"vaultProfileDeleted": "פרופיל הכספת נמחק",
"vaultProfileSaveFailed": "שמירת פרופיל הכספת נכשלה",
"vaultProfileDeleteFailed": "נכשלה מחיקת פרופיל הכספת",
"vaultSaveProfile": "שמור פרופיל",
"vaultProfileValidationError": "שם, כתובת כספת ותפקיד חתימה ב-SSH נדרשים",
"vaultNoProfiles": "אין עדיין פרופילים בכספת.",
"vaultSharedBadge": "מְשׁוּתָף",
"keyTypeLabel": "סוג מפתח",
"keyTypeAuto": "זיהוי אוטומטי",
"keyPasteTab": "לְהַדבִּיק",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "वह तरीका चुनें जिसका उपयोग टर्मिक्स इस एसएसएच कनेक्शन को प्रमाणित करने के लिए करेगा। अन्य तरीकों को स्वचालित रूप से नहीं आजमाया जाएगा।",
"storedCredential": "संग्रहीत क्रेडेंशियल",
"selectACredential": "एक क्रेडेंशियल चुनें...",
"vaultProfile": "Vault साइनर प्रोफ़ाइल",
"selectAVaultProfile": "एक Vault प्रोफ़ाइल चुनें...",
"vaultProfileHint": "सेटिंग साझा प्रोफ़ाइल से आती हैं; कनेक्ट करते समय आप OIDC के माध्यम से Vault में साइन इन करेंगे। कोई सीक्रेट संग्रहीत नहीं किए जाते।",
"vaultNewProfile": "नई प्रोफ़ाइल",
"secretRefHint": "आप गुप्त पासवर्ड के स्थान पर 1Password संदर्भ (op://vault/item/field) पेस्ट कर सकते हैं; कनेक्ट करते समय इसे आपके गुप्त पासवर्ड स्रोत से प्राप्त किया जाता है।",
"secretSourcesManage": "गुप्त स्रोतों का प्रबंधन करें",
"secretSourcesTitle": "गुप्त सूत्रों",
@@ -739,26 +735,6 @@
"secretSourceRequired": "नाम, सर्वर यूआरएल और टोकन आवश्यक हैं।",
"secretSourceSaved": "गुप्त स्रोत सुरक्षित",
"secretSourceDeleted": "गुप्त सूत्र हटा दिया गया",
"vaultManageProfiles": "Vault प्रोफ़ाइल प्रबंधित करें",
"vaultAddrLabel": "Vault पता",
"vaultNamespaceLabel": "नेमस्पेस",
"vaultOidcMountLabel": "OIDC ऑथ माउंट",
"vaultOidcRoleLabel": "OIDC रोल",
"vaultSshMountLabel": "SSH सीक्रेट माउंट",
"vaultSshRoleLabel": "SSH साइनर रोल",
"vaultValidPrincipalsLabel": "मान्य प्रिंसिपल",
"vaultKeyTypeLabel": "एफेमरल कुंजी प्रकार",
"vaultSharedLabel": "सभी उपयोगकर्ताओं के साथ साझा करें",
"vaultCreateProfile": "प्रोफ़ाइल बनाएँ",
"vaultProfileCreated": "Vault प्रोफ़ाइल बनाई गई",
"vaultProfileSaved": "Vault प्रोफ़ाइल सहेजी गई",
"vaultProfileDeleted": "Vault प्रोफ़ाइल हटाई गई",
"vaultProfileSaveFailed": "Vault प्रोफ़ाइल सहेजने में विफल",
"vaultProfileDeleteFailed": "Vault प्रोफ़ाइल हटाने में विफल",
"vaultSaveProfile": "प्रोफ़ाइल सहेजें",
"vaultProfileValidationError": "नाम, Vault पता और SSH हस्ताक्षरकर्ता भूमिका आवश्यक हैं",
"vaultNoProfiles": "अभी तक कोई Vault प्रोफ़ाइल नहीं है।",
"vaultSharedBadge": "साझा",
"keyTypeLabel": "कुंजी प्रकार",
"keyTypeAuto": "स्वतः पहचानें",
"keyPasteTab": "चिपकाएँ",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Válassza ki azt az egy módszert, amelyet a Termix az SSH-kapcsolat hitelesítéséhez használ. A többi módszert a rendszer nem próbálja ki automatikusan.",
"storedCredential": "Tárolt hitelesítő adatok",
"selectACredential": "Válasszon hitelesítő adatot...",
"vaultProfile": "Vault aláírói profil",
"selectAVaultProfile": "Válasszon ki egy Vault profilt...",
"vaultProfileHint": "A beállítások a megosztott profilból származnak; a csatlakozáskor OIDC-n keresztül fog bejelentkezni a Vaultba. A rendszer nem tárol titkos adatokat.",
"vaultNewProfile": "Új profil",
"secretRefHint": "A titkos kód helyett beilleszthet egy 1Password hivatkozást (op://vault/item/field); ezt a titkos kód forrásából kéri le a rendszer a csatlakozáskor.",
"secretSourcesManage": "Titkos források kezelése",
"secretSourcesTitle": "Titkos források",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Név, szerver URL és token megadása kötelező",
"secretSourceSaved": "Titkos forrás mentve",
"secretSourceDeleted": "Titkos forrás törölve",
"vaultManageProfiles": "Vault profilok kezelése",
"vaultAddrLabel": "Trezor címe",
"vaultNamespaceLabel": "Névtér",
"vaultOidcMountLabel": "OIDC hitelesítési csatolás",
"vaultOidcRoleLabel": "OIDC szerepkör",
"vaultSshMountLabel": "SSH titkok felhúzása",
"vaultSshRoleLabel": "SSH aláíró szerepkör",
"vaultValidPrincipalsLabel": "Érvényes megbízók",
"vaultKeyTypeLabel": "Efemer kulcstípus",
"vaultSharedLabel": "Megosztás az összes felhasználóval",
"vaultCreateProfile": "Profil létrehozása",
"vaultProfileCreated": "Létrehozva a trezor profilja",
"vaultProfileSaved": "A trezor profilja mentve",
"vaultProfileDeleted": "Tárolóprofil törölve",
"vaultProfileSaveFailed": "Nem sikerült menteni a Vault profilját",
"vaultProfileDeleteFailed": "Nem sikerült törölni a Vault profilját",
"vaultSaveProfile": "Profil mentése",
"vaultProfileValidationError": "Név, trezor címe és SSH aláírói szerepkör megadása kötelező.",
"vaultNoProfiles": "Még nincsenek Vault-profilok.",
"vaultSharedBadge": "megosztott",
"keyTypeLabel": "Kulcstípus",
"keyTypeAuto": "Automatikus felismerés",
"keyPasteTab": "Paszta",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Pilih salah satu metode yang akan digunakan Termix untuk mengautentikasi koneksi SSH ini. Metode lain tidak dicoba secara otomatis.",
"storedCredential": "Kredensial Tersimpan",
"selectACredential": "Pilih kredensial...",
"vaultProfile": "Profil Penandatangan Vault",
"selectAVaultProfile": "Pilih profil Vault...",
"vaultProfileHint": "Pengaturan berasal dari profil bersama; Anda akan masuk ke Vault melalui OIDC saat terhubung. Tidak ada rahasia yang disimpan.",
"vaultNewProfile": "Profil baru",
"secretRefHint": "Anda dapat menempelkan referensi 1Password (op://vault/item/field) sebagai pengganti rahasia; referensi tersebut akan diambil dari sumber rahasia Anda saat terhubung.",
"secretSourcesManage": "Mengelola sumber rahasia",
"secretSourcesTitle": "Sumber rahasia",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Nama, URL server, dan token wajib diisi.",
"secretSourceSaved": "Sumber rahasia tersimpan",
"secretSourceDeleted": "Sumber rahasia telah dihapus.",
"vaultManageProfiles": "Kelola profil Vault",
"vaultAddrLabel": "Alamat Brankas",
"vaultNamespaceLabel": "Ruang nama",
"vaultOidcMountLabel": "OIDC Otorisasi Pemasangan",
"vaultOidcRoleLabel": "Peran OIDC",
"vaultSshMountLabel": "Pemasangan Rahasia SSH",
"vaultSshRoleLabel": "Peran Penandatangan SSH",
"vaultValidPrincipalsLabel": "Prinsip-prinsip yang Sah",
"vaultKeyTypeLabel": "Jenis Kunci Sementara",
"vaultSharedLabel": "Bagikan dengan semua pengguna",
"vaultCreateProfile": "Buat profil",
"vaultProfileCreated": "Profil Vault telah dibuat.",
"vaultProfileSaved": "Profil Vault tersimpan.",
"vaultProfileDeleted": "Profil Vault dihapus",
"vaultProfileSaveFailed": "Gagal menyimpan profil Vault",
"vaultProfileDeleteFailed": "Gagal menghapus profil Vault",
"vaultSaveProfile": "Simpan profil",
"vaultProfileValidationError": "Nama, alamat Vault, dan peran penandatangan SSH wajib diisi.",
"vaultNoProfiles": "Belum ada profil Vault.",
"vaultSharedBadge": "dibagikan",
"keyTypeLabel": "Jenis Kunci",
"keyTypeAuto": "Deteksi Otomatis",
"keyPasteTab": "Pasta",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Seleziona il metodo che Termix utilizzerà per autenticare questa connessione SSH. Gli altri metodi non verranno tentati automaticamente.",
"storedCredential": "Credenziale memorizzata",
"selectACredential": "Seleziona una credenziale...",
"vaultProfile": "Profilo firmatario Vault",
"selectAVaultProfile": "Seleziona un profilo Vault...",
"vaultProfileHint": "Le impostazioni provengono dal profilo condiviso; effettuerai l'accesso a Vault tramite OIDC quando ti connetti. Nessun segreto è memorizzato.",
"vaultNewProfile": "Nuovo profilo",
"secretRefHint": "Al posto del segreto, puoi incollare un riferimento a 1Password (op://vault/item/field); questo verrà recuperato dalla tua fonte di segreti al momento della connessione.",
"secretSourcesManage": "Gestire le fonti segrete",
"secretSourcesTitle": "Fonti segrete",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Sono richiesti nome, URL del server e token.",
"secretSourceSaved": "fonte segreta salvata",
"secretSourceDeleted": "Fonte segreta eliminata",
"vaultManageProfiles": "Gestisci profili Vault",
"vaultAddrLabel": "Indirizzo Vault",
"vaultNamespaceLabel": "Namespace",
"vaultOidcMountLabel": "Mount di autenticazione OIDC",
"vaultOidcRoleLabel": "Ruolo OIDC",
"vaultSshMountLabel": "Mount dei segreti SSH",
"vaultSshRoleLabel": "Ruolo firmatario SSH",
"vaultValidPrincipalsLabel": "Principal validi",
"vaultKeyTypeLabel": "Tipo di chiave effimera",
"vaultSharedLabel": "Condividi con tutti gli utenti",
"vaultCreateProfile": "Crea profilo",
"vaultProfileCreated": "Profilo Vault creato",
"vaultProfileSaved": "Profilo Vault salvato",
"vaultProfileDeleted": "Profilo Vault eliminato",
"vaultProfileSaveFailed": "Salvataggio profilo Vault non riuscito",
"vaultProfileDeleteFailed": "Eliminazione profilo Vault non riuscita",
"vaultSaveProfile": "Salva profilo",
"vaultProfileValidationError": "Nome, indirizzo Vault e ruolo di firma SSH sono obbligatori",
"vaultNoProfiles": "Nessun profilo Vault ancora.",
"vaultSharedBadge": "condiviso",
"keyTypeLabel": "Tipo chiave",
"keyTypeAuto": "Rilevamento automatico",
"keyPasteTab": "Incolla",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "TermixがこのSSH接続を認証するために使用する方法を1つ選択してください。他の方法は自動的には試行されません。",
"storedCredential": "保存済み認証情報",
"selectACredential": "認証情報を選択...",
"vaultProfile": "Vault 署名者プロファイル",
"selectAVaultProfile": "Vault プロファイルを選択...",
"vaultProfileHint": "設定は共有プロファイルから取得され、接続時に OIDC で Vault にサインインします。シークレットは保存されません。",
"vaultNewProfile": "新規プロファイル",
"secretRefHint": "シークレットの代わりに1Passwordの参照(op://vault/item/field)を貼り付けることもできます。これは接続時にシークレットソースから取得されます。",
"secretSourcesManage": "秘密情報源の管理",
"secretSourcesTitle": "秘密の情報源",
@@ -739,26 +735,6 @@
"secretSourceRequired": "名前、サーバーURL、トークンは必須です。",
"secretSourceSaved": "秘密の情報源が保存されました",
"secretSourceDeleted": "秘密情報源を削除",
"vaultManageProfiles": "Vault プロファイルの管理",
"vaultAddrLabel": "Vault アドレス",
"vaultNamespaceLabel": "名前空間",
"vaultOidcMountLabel": "OIDC 認証マウント",
"vaultOidcRoleLabel": "OIDC ロール",
"vaultSshMountLabel": "SSH シークレットマウント",
"vaultSshRoleLabel": "SSH 署名者ロール",
"vaultValidPrincipalsLabel": "有効なプリンシパル",
"vaultKeyTypeLabel": "エフェメラルキータイプ",
"vaultSharedLabel": "すべてのユーザーと共有",
"vaultCreateProfile": "プロファイルを作成",
"vaultProfileCreated": "Vaultプロファイルが作成されました",
"vaultProfileSaved": "Vaultプロファイルが保存されました",
"vaultProfileDeleted": "Vaultプロファイルが削除されました",
"vaultProfileSaveFailed": "Vaultプロファイルの保存に失敗しました",
"vaultProfileDeleteFailed": "Vaultプロファイルの削除に失敗しました",
"vaultSaveProfile": "プロファイルを保存",
"vaultProfileValidationError": "名前、Vaultアドレス、SSH署名ロールは必須です",
"vaultNoProfiles": "まだVaultプロファイルがありません。",
"vaultSharedBadge": "共有",
"keyTypeLabel": "鍵の種類",
"keyTypeAuto": "自動検出",
"keyPasteTab": "貼り付け",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Termix에서 이 SSH 연결을 인증하는 데 사용할 방법을 하나 선택하십시오. 다른 방법은 자동으로 시도되지 않습니다.",
"storedCredential": "저장된 자격 증명",
"selectACredential": "자격 증명 선택...",
"vaultProfile": "Vault 서명자 프로필",
"selectAVaultProfile": "Vault 프로필 선택...",
"vaultProfileHint": "설정은 공유 프로필에서 가져옵니다. 연결 시 OIDC를 통해 Vault에 로그인하게 됩니다. 비밀은 저장되지 않습니다.",
"vaultNewProfile": "새 프로필",
"secretRefHint": "비밀 키 대신 1Password 참조(op://vault/item/field)를 붙여넣을 수 있습니다. 연결 시 비밀 키 소스에서 참조가 자동으로 가져와집니다.",
"secretSourcesManage": "비밀 소스를 관리하세요",
"secretSourcesTitle": "비밀 정보원",
@@ -739,26 +735,6 @@
"secretSourceRequired": "이름, 서버 URL 및 토큰은 필수 입력 사항입니다.",
"secretSourceSaved": "비밀 소스 저장됨",
"secretSourceDeleted": "비밀 소스 삭제됨",
"vaultManageProfiles": "Vault 프로필 관리",
"vaultAddrLabel": "Vault 주소",
"vaultNamespaceLabel": "네임스페이스",
"vaultOidcMountLabel": "OIDC 인증 마운트",
"vaultOidcRoleLabel": "OIDC 역할",
"vaultSshMountLabel": "SSH 시크릿 마운트",
"vaultSshRoleLabel": "SSH 서명자 역할",
"vaultValidPrincipalsLabel": "유효한 프린시펄",
"vaultKeyTypeLabel": "임시 키 유형",
"vaultSharedLabel": "모든 사용자와 공유",
"vaultCreateProfile": "프로필 생성",
"vaultProfileCreated": "Vault 프로필 생성됨",
"vaultProfileSaved": "Vault 프로필 저장됨",
"vaultProfileDeleted": "Vault 프로필 삭제됨",
"vaultProfileSaveFailed": "Vault 프로필 저장 실패",
"vaultProfileDeleteFailed": "Vault 프로필 삭제 실패",
"vaultSaveProfile": "프로필 저장",
"vaultProfileValidationError": "이름, Vault 주소 및 SSH 서명자 역할이 필요합니다.",
"vaultNoProfiles": "아직 Vault 프로필이 없습니다.",
"vaultSharedBadge": "공유",
"keyTypeLabel": "키 유형",
"keyTypeAuto": "자동 감지",
"keyPasteTab": "붙여넣기",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Selecteer de methode die Termix zal gebruiken om deze SSH-verbinding te authenticeren. Andere methoden worden niet automatisch geprobeerd.",
"storedCredential": "Opgeslagen inloggegevens",
"selectACredential": "Selecteer een certificaat...",
"vaultProfile": "Vault-ondertekenaarprofiel",
"selectAVaultProfile": "Selecteer een Vault-profiel...",
"vaultProfileHint": "De instellingen zijn afkomstig van het gedeelde profiel; u meldt zich bij Vault aan via OIDC wanneer u verbinding maakt. Er worden geen geheimen opgeslagen.",
"vaultNewProfile": "Nieuw profiel",
"secretRefHint": "Je kunt in plaats van het geheim een 1Password-referentie (op://vault/item/field) plakken; deze wordt bij het verbinden opgehaald uit je geheime bron.",
"secretSourcesManage": "Beheer geheime bronnen",
"secretSourcesTitle": "Geheime bronnen",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Naam, server-URL en token zijn vereist.",
"secretSourceSaved": "Geheime bron opgeslagen",
"secretSourceDeleted": "Geheime bron verwijderd",
"vaultManageProfiles": "Beheer Vault-profielen",
"vaultAddrLabel": "Kluisadres",
"vaultNamespaceLabel": "Naamruimte",
"vaultOidcMountLabel": "OIDC-authenticatiekoppeling",
"vaultOidcRoleLabel": "OIDC-rol",
"vaultSshMountLabel": "SSH-geheimen Mount",
"vaultSshRoleLabel": "SSH-ondertekenaarrol",
"vaultValidPrincipalsLabel": "Geldige principes",
"vaultKeyTypeLabel": "Tijdelijk sleuteltype",
"vaultSharedLabel": "Delen met alle gebruikers",
"vaultCreateProfile": "Profiel aanmaken",
"vaultProfileCreated": "Vault-profiel aangemaakt",
"vaultProfileSaved": "Vault-profiel opgeslagen",
"vaultProfileDeleted": "Kluisprofiel verwijderd",
"vaultProfileSaveFailed": "Het opslaan van het Vault-profiel is mislukt.",
"vaultProfileDeleteFailed": "Het verwijderen van het Vault-profiel is mislukt.",
"vaultSaveProfile": "Profiel opslaan",
"vaultProfileValidationError": "Naam, kluisadres en SSH-ondertekeningsrol zijn vereist.",
"vaultNoProfiles": "Nog geen Vault-profielen beschikbaar.",
"vaultSharedBadge": "gedeeld",
"keyTypeLabel": "Sleuteltype",
"keyTypeAuto": "Automatische detectie",
"keyPasteTab": "Plakken",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Velg den metoden Termix vil bruke for å autentisere denne SSH-tilkoblingen. Andre metoder blir ikke prøvd automatisk.",
"storedCredential": "Lagret legitimasjon",
"selectACredential": "Velg en legitimasjon...",
"vaultProfile": "Profil for hvelvsigner",
"selectAVaultProfile": "Velg en Vault-profil...",
"vaultProfileHint": "Innstillingene kommer fra den delte profilen. Du logger deg på Vault via OIDC når du kobler til. Ingen hemmeligheter lagres.",
"vaultNewProfile": "Ny profil",
"secretRefHint": "Du kan lime inn en 1Password-referanse (op://vault/item/field) i stedet for hemmeligheten; den hentes fra hemmelighetskilden din når du kobler til.",
"secretSourcesManage": "Administrer hemmelige kilder",
"secretSourcesTitle": "Hemmelige kilder",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Navn, server-URL og token er obligatorisk",
"secretSourceSaved": "Hemmelig kilde lagret",
"secretSourceDeleted": "Hemmelig kilde slettet",
"vaultManageProfiles": "Administrer Vault-profiler",
"vaultAddrLabel": "Hvelvadresse",
"vaultNamespaceLabel": "Navnerom",
"vaultOidcMountLabel": "OIDC-autentiseringsmontering",
"vaultOidcRoleLabel": "OIDC-rolle",
"vaultSshMountLabel": "SSH-hemmeligheter monteres",
"vaultSshRoleLabel": "SSH-signatørrolle",
"vaultValidPrincipalsLabel": "Gyldige prinsipaler",
"vaultKeyTypeLabel": "Kortvarig nøkkeltype",
"vaultSharedLabel": "Del med alle brukere",
"vaultCreateProfile": "Opprett profil",
"vaultProfileCreated": "Vault-profil opprettet",
"vaultProfileSaved": "Vault-profilen er lagret",
"vaultProfileDeleted": "Vault-profilen er slettet",
"vaultProfileSaveFailed": "Kunne ikke lagre Vault-profilen",
"vaultProfileDeleteFailed": "Kunne ikke slette Vault-profilen",
"vaultSaveProfile": "Lagre profil",
"vaultProfileValidationError": "Navn, hvelvadresse og SSH-signerrolle er obligatorisk",
"vaultNoProfiles": "Ingen Vault-profiler ennå.",
"vaultSharedBadge": "delt",
"keyTypeLabel": "Nøkkeltype",
"keyTypeAuto": "Automatisk deteksjon",
"keyPasteTab": "Lim inn",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Wybierz jedną metodę, której Termix użyje do uwierzytelnienia tego połączenia SSH. Inne metody nie są próbowane automatycznie.",
"storedCredential": "Zapisane poświadczenie",
"selectACredential": "Wybierz poświadczenie...",
"vaultProfile": "Profil podpisujący Vault",
"selectAVaultProfile": "Wybierz profil Vault...",
"vaultProfileHint": "Ustawienia pochodzą z profilu współdzielonego. Po połączeniu zalogujesz się do Vault przez OIDC. Nie są przechowywane żadne sekrety.",
"vaultNewProfile": "Nowy profil",
"secretRefHint": "Zamiast klucza tajnego możesz wkleić odnośnik 1Password (op://vault/item/field). Zostanie on pobrany ze źródła klucza tajnego podczas nawiązywania połączenia.",
"secretSourcesManage": "Zarządzaj tajnymi źródłami",
"secretSourcesTitle": "Tajne źródła",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Wymagane są nazwa, adres URL serwera i token",
"secretSourceSaved": "Tajne źródło uratowane",
"secretSourceDeleted": "Usunięto tajne źródło",
"vaultManageProfiles": "Zarządzaj profilami Vault",
"vaultAddrLabel": "Adres Vault",
"vaultNamespaceLabel": "Przestrzeń nazw",
"vaultOidcMountLabel": "Mount uwierzytelniania OIDC",
"vaultOidcRoleLabel": "Rola OIDC",
"vaultSshMountLabel": "Mount sekretów SSH",
"vaultSshRoleLabel": "Rola podpisująca SSH",
"vaultValidPrincipalsLabel": "Dozwoleni użytkownicy (principals)",
"vaultKeyTypeLabel": "Typ klucza efemerycznego",
"vaultSharedLabel": "Udostępnij wszystkim użytkownikom",
"vaultCreateProfile": "Utwórz profil",
"vaultProfileCreated": "Utworzono profil Vault",
"vaultProfileSaved": "Zapisano profil Vault",
"vaultProfileDeleted": "Usunięto profil Vault",
"vaultProfileSaveFailed": "Nie udało się zapisać profilu Vault",
"vaultProfileDeleteFailed": "Nie udało się usunąć profilu Vault",
"vaultSaveProfile": "Zapisz profil",
"vaultProfileValidationError": "Wymagane są nazwa, adres Vault i rola podpisująca SSH",
"vaultNoProfiles": "Brak profili Vault.",
"vaultSharedBadge": "współdzielony",
"keyTypeLabel": "Typ klucza",
"keyTypeAuto": "Automatyczne wykrywanie",
"keyPasteTab": "Wklej",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Selecione o método que o Termix usará para autenticar esta conexão SSH. Outros métodos não serão tentados automaticamente.",
"storedCredential": "Credencial armazenada",
"selectACredential": "Selecione uma credencial...",
"vaultProfile": "Perfil do assinante do Vault",
"selectAVaultProfile": "Selecione um perfil do Vault...",
"vaultProfileHint": "As configurações são provenientes do perfil compartilhado; você fará login no Vault via OIDC ao se conectar. Nenhum segredo é armazenado.",
"vaultNewProfile": "Novo perfil",
"secretRefHint": "Você pode colar uma referência do 1Password (op://vault/item/field) em vez do segredo; ela é obtida da sua fonte de segredos ao conectar-se.",
"secretSourcesManage": "Gerenciar fontes secretas",
"secretSourcesTitle": "Fontes secretas",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Nome, URL do servidor e token são obrigatórios.",
"secretSourceSaved": "Fonte secreta salva",
"secretSourceDeleted": "Fonte secreta excluída",
"vaultManageProfiles": "Gerenciar perfis do Vault",
"vaultAddrLabel": "Endereço do cofre",
"vaultNamespaceLabel": "Espaço de nomes",
"vaultOidcMountLabel": "Montagem de autenticação OIDC",
"vaultOidcRoleLabel": "Função OIDC",
"vaultSshMountLabel": "Montagem de segredos SSH",
"vaultSshRoleLabel": "Função de assinatura SSH",
"vaultValidPrincipalsLabel": "Principais válidos",
"vaultKeyTypeLabel": "Tipo de chave efêmera",
"vaultSharedLabel": "Compartilhe com todos os usuários",
"vaultCreateProfile": "Criar perfil",
"vaultProfileCreated": "Perfil do Vault criado",
"vaultProfileSaved": "Perfil do Vault salvo",
"vaultProfileDeleted": "Perfil do Vault excluído",
"vaultProfileSaveFailed": "Falha ao salvar o perfil do Vault",
"vaultProfileDeleteFailed": "Falha ao excluir o perfil do Vault",
"vaultSaveProfile": "Salvar perfil",
"vaultProfileValidationError": "Nome, endereço do Vault e função de assinatura SSH são obrigatórios.",
"vaultNoProfiles": "Ainda não há perfis no Vault.",
"vaultSharedBadge": "compartilhado",
"keyTypeLabel": "Tipo de chave",
"keyTypeAuto": "Detecção automática",
"keyPasteTab": "Colar",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Selecione o método que o Termix irá utilizar para autenticar esta ligação SSH. Outros métodos não serão tentados automaticamente.",
"storedCredential": "Credencial guardada",
"selectACredential": "Selecionar uma credencial...",
"vaultProfile": "Perfil de assinatura Vault",
"selectAVaultProfile": "Selecionar um perfil Vault...",
"vaultProfileHint": "As definições provêm do perfil partilhado; ao ligar, iniciará sessão no Vault via OIDC. Nenhum segredo é armazenado.",
"vaultNewProfile": "Novo perfil",
"secretRefHint": "Pode colar uma referência do 1Password (op://vault/item/field) em vez do segredo; é obtida a partir da sua fonte de segredos ao conectar-se.",
"secretSourcesManage": "Gerir fontes secretas",
"secretSourcesTitle": "Fontes secretas",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Nome, URL do servidor e token são obrigatórios.",
"secretSourceSaved": "Fonte secreta guardada",
"secretSourceDeleted": "Fonte secreta excluída",
"vaultManageProfiles": "Gerir perfis Vault",
"vaultAddrLabel": "Endereço Vault",
"vaultNamespaceLabel": "Namespace",
"vaultOidcMountLabel": "Mount de autenticação OIDC",
"vaultOidcRoleLabel": "Função OIDC",
"vaultSshMountLabel": "Mount de segredos SSH",
"vaultSshRoleLabel": "Função de assinatura SSH",
"vaultValidPrincipalsLabel": "Principais válidos",
"vaultKeyTypeLabel": "Tipo de chave efémera",
"vaultSharedLabel": "Partilhar com todos os utilizadores",
"vaultCreateProfile": "Criar perfil",
"vaultProfileCreated": "Perfil Vault criado",
"vaultProfileSaved": "Perfil Vault guardado",
"vaultProfileDeleted": "Perfil Vault eliminado",
"vaultProfileSaveFailed": "Falha ao guardar perfil Vault",
"vaultProfileDeleteFailed": "Falha ao eliminar perfil Vault",
"vaultSaveProfile": "Guardar perfil",
"vaultProfileValidationError": "Nome, endereço Vault e função de signatário SSH são obrigatórios",
"vaultNoProfiles": "Ainda sem perfis Vault.",
"vaultSharedBadge": "partilhado",
"keyTypeLabel": "Tipo de chave",
"keyTypeAuto": "Detetar automaticamente",
"keyPasteTab": "Colar",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Selectați metoda pe care Termix o va folosi pentru autentificarea acestei conexiuni SSH. Celelalte metode nu sunt încercate automat.",
"storedCredential": "Acreditare stocată",
"selectACredential": "Selectați o acreditare...",
"vaultProfile": "Profilul semnatarului din seif",
"selectAVaultProfile": "Selectați un profil Vault...",
"vaultProfileHint": "Setările provin din profilul partajat; te vei conecta la Vault prin OIDC când te conectezi. Nu sunt stocate secrete.",
"vaultNewProfile": "Profil nou",
"secretRefHint": "Puteți lipi o referință 1Password (op://vault/item/field) în loc de secret; acesta este preluat din sursa secretului la conectare.",
"secretSourcesManage": "Gestionați sursele secrete",
"secretSourcesTitle": "Surse secrete",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Numele, adresa URL a serverului și tokenul sunt obligatorii",
"secretSourceSaved": "Sursă secretă salvată",
"secretSourceDeleted": "Sursa secretă a fost ștearsă",
"vaultManageProfiles": "Gestionați profilurile din seif",
"vaultAddrLabel": "Adresă seif",
"vaultNamespaceLabel": "Spațiu de nume",
"vaultOidcMountLabel": "Montare autentificare OIDC",
"vaultOidcRoleLabel": "Rolul OIDC",
"vaultSshMountLabel": "Secretele SSH Mount",
"vaultSshRoleLabel": "Rolul semnatarului SSH",
"vaultValidPrincipalsLabel": "Principali validi",
"vaultKeyTypeLabel": "Tip de cheie efemeră",
"vaultSharedLabel": "Partajați cu toți utilizatorii",
"vaultCreateProfile": "Creați un profil",
"vaultProfileCreated": "Profilul seifului a fost creat",
"vaultProfileSaved": "Profilul seifului a fost salvat",
"vaultProfileDeleted": "Profilul seifului a fost șters",
"vaultProfileSaveFailed": "Nu s-a putut salva profilul din Seif",
"vaultProfileDeleteFailed": "Nu s-a putut șterge profilul Vault",
"vaultSaveProfile": "Salvați profilul",
"vaultProfileValidationError": "Numele, adresa seifului și rolul semnatarului SSH sunt obligatorii.",
"vaultNoProfiles": "Încă nu există profiluri Vault.",
"vaultSharedBadge": "partajat",
"keyTypeLabel": "Tipul cheii",
"keyTypeAuto": "Detectare automată",
"keyPasteTab": "Pastă",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Выберите один из методов, который Termix будет использовать для аутентификации этого SSH-соединения. Другие методы автоматически не используются.",
"storedCredential": "Сохранённые учётные данные",
"selectACredential": "Выберите учётные данные...",
"vaultProfile": "Профиль подписчика Vault",
"selectAVaultProfile": "Выберите профиль Vault...",
"vaultProfileHint": "Настройки берутся из общего профиля; при подключении вы войдёте в Vault через OIDC. Секреты не хранятся.",
"vaultNewProfile": "Новый профиль",
"secretRefHint": "Вместо секретного ключа можно вставить ссылку на 1Password (op://vault/item/field); она будет получена из вашего источника секретных ключей при подключении.",
"secretSourcesManage": "Управление секретными источниками",
"secretSourcesTitle": "Секретные источники",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Необходимо указать имя, URL-адрес сервера и токен.",
"secretSourceSaved": "Секретный источник сохранен",
"secretSourceDeleted": "Секретный источник удален",
"vaultManageProfiles": "Управление профилями Vault",
"vaultAddrLabel": "Адрес Vault",
"vaultNamespaceLabel": "Пространство имён",
"vaultOidcMountLabel": "Монтирование аутентификации OIDC",
"vaultOidcRoleLabel": "Роль OIDC",
"vaultSshMountLabel": "Монтирование секретов SSH",
"vaultSshRoleLabel": "Роль подписчика SSH",
"vaultValidPrincipalsLabel": "Допустимые принципалы",
"vaultKeyTypeLabel": "Тип эфемерного ключа",
"vaultSharedLabel": "Общий доступ для всех пользователей",
"vaultCreateProfile": "Создать профиль",
"vaultProfileCreated": "Профиль Vault создан",
"vaultProfileSaved": "Профиль Vault сохранён",
"vaultProfileDeleted": "Профиль Vault удалён",
"vaultProfileSaveFailed": "Не удалось сохранить профиль Vault",
"vaultProfileDeleteFailed": "Не удалось удалить профиль Vault",
"vaultSaveProfile": "Сохранить профиль",
"vaultProfileValidationError": "Требуются имя, адрес Vault и роль SSH подписанта",
"vaultNoProfiles": "Пока нет профилей Vault.",
"vaultSharedBadge": "общий",
"keyTypeLabel": "Тип ключа",
"keyTypeAuto": "Автоопределение",
"keyPasteTab": "Вставить",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Изаберите једну методу коју ће Termix користити за аутентификацију ове SSH везе. Остале методе се не испробавају аутоматски.",
"storedCredential": "Сачувани акредитив",
"selectACredential": "Изаберите акредитив...",
"vaultProfile": "Профил потписника трезора",
"selectAVaultProfile": "Изаберите профил трезора...",
"vaultProfileHint": "Подешавања долазе из дељеног профила; пријавићете се у Vault преко OIDC-а када се повежете. Ниједне тајне се не чувају.",
"vaultNewProfile": "Нови профил",
"secretRefHint": "Можете да налепите референцу 1Password (op://vault/item/field) уместо тајне лозинке; она се преузима из вашег тајног извора приликом повезивања.",
"secretSourcesManage": "Управљајте тајним изворима",
"secretSourcesTitle": "Тајни извори",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Потребно је име, URL сервера и токен",
"secretSourceSaved": "Тајни извор сачуван",
"secretSourceDeleted": "Тајни извор је обрисан",
"vaultManageProfiles": "Управљање профилима трезора",
"vaultAddrLabel": "Адреса трезора",
"vaultNamespaceLabel": "Именски простор",
"vaultOidcMountLabel": "OIDC аутентификација монтирања",
"vaultOidcRoleLabel": "Улога OIDC-а",
"vaultSshMountLabel": "SSH тајне носач",
"vaultSshRoleLabel": "Улога SSH потписника",
"vaultValidPrincipalsLabel": "Важећи принципали",
"vaultKeyTypeLabel": "Тип ефемерног кључа",
"vaultSharedLabel": "Подели са свим корисницима",
"vaultCreateProfile": "Направи профил",
"vaultProfileCreated": "Профил трезора је креиран",
"vaultProfileSaved": "Профил трезора је сачуван",
"vaultProfileDeleted": "Профил трезора је обрисан",
"vaultProfileSaveFailed": "Чување профила у трезору није успело",
"vaultProfileDeleteFailed": "Брисање профила у Трезору није успело",
"vaultSaveProfile": "Сачувај профил",
"vaultProfileValidationError": "Име, адреса трезора и улога SSH потписника су обавезни",
"vaultNoProfiles": "Још нема профила у Трезору.",
"vaultSharedBadge": "дељено",
"keyTypeLabel": "Тип кључа",
"keyTypeAuto": "Аутоматско откривање",
"keyPasteTab": "Залепи",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Välj den metod som Termix kommer att använda för att autentisera denna SSH-anslutning. Andra metoder testas inte automatiskt.",
"storedCredential": "Lagrade autentiseringsuppgifter",
"selectACredential": "Välj en behörighetsinloggning...",
"vaultProfile": "Profil för valvsignerare",
"selectAVaultProfile": "Välj en Vault-profil...",
"vaultProfileHint": "Inställningarna kommer från den delade profilen; du loggar in på Vault via OIDC när du ansluter. Inga hemligheter lagras.",
"vaultNewProfile": "Ny profil",
"secretRefHint": "Du kan klistra in en 1Password-referens (op://vault/item/field) istället för hemligheten; den hämtas från din hemliga källa när du ansluter.",
"secretSourcesManage": "Hantera hemliga källor",
"secretSourcesTitle": "Hemliga källor",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Namn, server-URL och token krävs",
"secretSourceSaved": "Hemlig källa sparad",
"secretSourceDeleted": "Hemlig källa raderad",
"vaultManageProfiles": "Hantera Vault-profiler",
"vaultAddrLabel": "Valvadress",
"vaultNamespaceLabel": "Namnrymd",
"vaultOidcMountLabel": "OIDC-autentiseringsmontering",
"vaultOidcRoleLabel": "OIDC-roll",
"vaultSshMountLabel": "SSH-hemligheter monteras",
"vaultSshRoleLabel": "SSH-signerarroll",
"vaultValidPrincipalsLabel": "Giltiga principer",
"vaultKeyTypeLabel": "Tillfällig nyckeltyp",
"vaultSharedLabel": "Dela med alla användare",
"vaultCreateProfile": "Skapa profil",
"vaultProfileCreated": "Arkivprofil skapad",
"vaultProfileSaved": "Arkivprofilen har sparats",
"vaultProfileDeleted": "Arkivprofil raderad",
"vaultProfileSaveFailed": "Kunde inte spara arkivprofilen",
"vaultProfileDeleteFailed": "Misslyckades med att ta bort Arkiv-profilen",
"vaultSaveProfile": "Spara profil",
"vaultProfileValidationError": "Namn, valvadress och SSH-signerarroll krävs",
"vaultNoProfiles": "Inga Vault-profiler ännu.",
"vaultSharedBadge": "delad",
"keyTypeLabel": "Nyckeltyp",
"keyTypeAuto": "Automatisk identifiering",
"keyPasteTab": "Klistra",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "เลือกวิธีการตรวจสอบสิทธิ์การเชื่อมต่อ SSH ที่ Termix จะใช้เพียงวิธีเดียวเท่านั้น ระบบจะไม่ลองใช้วิธีการอื่นโดยอัตโนมัติ",
"storedCredential": "ข้อมูลประจำตัวที่บันทึกไว้",
"selectACredential": "เลือกข้อมูลประจำตัว...",
"vaultProfile": "โปรไฟล์ผู้ลงนาม Vault",
"selectAVaultProfile": "เลือกโปรไฟล์ Vault...",
"vaultProfileHint": "การตั้งค่าต่างๆ มาจากโปรไฟล์ที่ใช้ร่วมกัน คุณจะเข้าสู่ระบบ Vault ผ่าน OIDC เมื่อเชื่อมต่อ ไม่มีข้อมูลลับใดๆ ถูกจัดเก็บไว้",
"vaultNewProfile": "โปรไฟล์ใหม่",
"secretRefHint": "คุณสามารถวางข้อมูลอ้างอิง 1Password (op://vault/item/field) แทนรหัสลับได้ โดยระบบจะดึงข้อมูลนี้จากแหล่งข้อมูลลับของคุณเมื่อทำการเชื่อมต่อ",
"secretSourcesManage": "จัดการแหล่งข้อมูลลับ",
"secretSourcesTitle": "แหล่งข่าวลับ",
@@ -739,26 +735,6 @@
"secretSourceRequired": "จำเป็นต้องระบุชื่อ ที่อยู่ URL ของเซิร์ฟเวอร์ และโทเค็น",
"secretSourceSaved": "แหล่งข่าวลับถูกบันทึกไว้แล้ว",
"secretSourceDeleted": "แหล่งข่าวลับถูกลบแล้ว",
"vaultManageProfiles": "จัดการโปรไฟล์ Vault",
"vaultAddrLabel": "ที่อยู่ห้องนิรภัย",
"vaultNamespaceLabel": "เนมสเปซ",
"vaultOidcMountLabel": "OIDC Auth Mount",
"vaultOidcRoleLabel": "บทบาทของ OIDC",
"vaultSshMountLabel": "SSH Secrets Mount",
"vaultSshRoleLabel": "บทบาทผู้ลงนาม SSH",
"vaultValidPrincipalsLabel": "หลักการที่ถูกต้อง",
"vaultKeyTypeLabel": "ประเภทคีย์ชั่วคราว",
"vaultSharedLabel": "แชร์กับผู้ใช้ทั้งหมด",
"vaultCreateProfile": "สร้างโปรไฟล์",
"vaultProfileCreated": "สร้างโปรไฟล์ Vault แล้ว",
"vaultProfileSaved": "บันทึกโปรไฟล์ Vault แล้ว",
"vaultProfileDeleted": "โปรไฟล์ Vault ถูกลบแล้ว",
"vaultProfileSaveFailed": "ไม่สามารถบันทึกโปรไฟล์ Vault ได้",
"vaultProfileDeleteFailed": "ไม่สามารถลบโปรไฟล์ Vault ได้",
"vaultSaveProfile": "บันทึกโปรไฟล์",
"vaultProfileValidationError": "จำเป็นต้องระบุชื่อ ที่อยู่ Vault และบทบาทผู้ลงนาม SSH",
"vaultNoProfiles": "ยังไม่มีโปรไฟล์ Vault ใดๆ",
"vaultSharedBadge": "แชร์",
"keyTypeLabel": "ประเภทกุญแจ",
"keyTypeAuto": "ตรวจจับอัตโนมัติ",
"keyPasteTab": "แปะ",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Termix'in bu SSH bağlantısını doğrulamak için kullanacağı yöntemi seçin. Diğer yöntemler otomatik olarak denenmez.",
"storedCredential": "Kayıtlı Kimlik",
"selectACredential": "Bir kimlik seçin...",
"vaultProfile": "Vault İmzalayıcı Profili",
"selectAVaultProfile": "Bir Vault profili seçin...",
"vaultProfileHint": "Ayarlar paylaşılan profilden gelir; bağlandığınızda OIDC ile Vault'ta oturum açarsınız. Hiçbir gizli bilgi saklanmaz.",
"vaultNewProfile": "Yeni profil",
"secretRefHint": "Gizli anahtar yerine 1Password referansını (op://vault/item/field) yapıştırabilirsiniz; bağlantı kurulurken bu referans gizli anahtar kaynağınızdan alınır.",
"secretSourcesManage": "Gizli kaynakları yönetin",
"secretSourcesTitle": "Gizli kaynaklar",
@@ -739,26 +735,6 @@
"secretSourceRequired": "İsim, sunucu URL'si ve belirteç (token) gereklidir.",
"secretSourceSaved": "Gizli kaynak kaydedildi.",
"secretSourceDeleted": "Gizli kaynak silindi",
"vaultManageProfiles": "Vault Profillerini Yönet",
"vaultAddrLabel": "Vault Adresi",
"vaultNamespaceLabel": "Ad Alanı",
"vaultOidcMountLabel": "OIDC Kimlik Doğrulama Bağlama",
"vaultOidcRoleLabel": "OIDC Rolü",
"vaultSshMountLabel": "SSH Gizli Dizin Bağlama",
"vaultSshRoleLabel": "SSH İmzalayıcı Rolü",
"vaultValidPrincipalsLabel": "Geçerli Asıllar",
"vaultKeyTypeLabel": "Geçici Anahtar Türü",
"vaultSharedLabel": "Tüm Kullanıcılarla Paylaş",
"vaultCreateProfile": "Profil oluştur",
"vaultProfileCreated": "Vault profili oluşturuldu",
"vaultProfileSaved": "Vault profili kaydedildi",
"vaultProfileDeleted": "Vault profili silindi",
"vaultProfileSaveFailed": "Vault profili kaydedilemedi",
"vaultProfileDeleteFailed": "Vault profili silinemedi",
"vaultSaveProfile": "Profili kaydet",
"vaultProfileValidationError": "Ad, Vault adresi ve SSH imzalama rolü gereklidir",
"vaultNoProfiles": "Henüz Vault profili yok.",
"vaultSharedBadge": "paylaşılan",
"keyTypeLabel": "Anahtar Türü",
"keyTypeAuto": "Otomatik Algıla",
"keyPasteTab": "Yapıştır",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Виберіть один метод, який Termix використовуватиме для автентифікації цього SSH-з’єднання. Інші методи не перевірятимуться автоматично.",
"storedCredential": "Збережені облікові дані",
"selectACredential": "Виберіть облікові дані...",
"vaultProfile": "Профіль підписанта сховища",
"selectAVaultProfile": "Виберіть профіль Сховища...",
"vaultProfileHint": "Налаштування надходять зі спільного профілю; ви входите у Сейф через OIDC під час підключення. Секрети не зберігаються.",
"vaultNewProfile": "Новий профіль",
"secretRefHint": "Ви можете вставити посилання на 1Password (op://vault/item/field) замість секретного коду; він отримується з вашого секретного джерела під час підключення.",
"secretSourcesManage": "Керування секретними джерелами",
"secretSourcesTitle": "Секретні джерела",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Ім'я, URL-адреса сервера та токен обов'язкові",
"secretSourceSaved": "Секретне джерело збережено",
"secretSourceDeleted": "Секретне джерело видалено",
"vaultManageProfiles": "Керування профілями Сховища",
"vaultAddrLabel": "Адреса сховища",
"vaultNamespaceLabel": "Простір імен",
"vaultOidcMountLabel": "Монтування автентифікації OIDC",
"vaultOidcRoleLabel": "Роль OIDC",
"vaultSshMountLabel": "SSH-секрети кріплення",
"vaultSshRoleLabel": "Роль підписувача SSH",
"vaultValidPrincipalsLabel": "Дійсні принципали",
"vaultKeyTypeLabel": "Тип тимчасового ключа",
"vaultSharedLabel": "Поділитися з усіма користувачами",
"vaultCreateProfile": "Створити профіль",
"vaultProfileCreated": "Профіль сховища створено",
"vaultProfileSaved": "Профіль сховища збережено",
"vaultProfileDeleted": "Профіль сховища видалено",
"vaultProfileSaveFailed": "Не вдалося зберегти профіль Сейфа",
"vaultProfileDeleteFailed": "Не вдалося видалити профіль Сейфа",
"vaultSaveProfile": "Зберегти профіль",
"vaultProfileValidationError": "Ім'я, адреса сховища та роль підписувача SSH обов'язкові",
"vaultNoProfiles": "Поки що немає профілів Сейфа.",
"vaultSharedBadge": "спільний",
"keyTypeLabel": "Тип ключа",
"keyTypeAuto": "Автоматичне виявлення",
"keyPasteTab": "Вставити",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "Hãy chọn phương thức mà Termix sẽ sử dụng để xác thực kết nối SSH này. Các phương thức khác sẽ không được thử tự động.",
"storedCredential": "Thông tin xác thực đã lưu",
"selectACredential": "Chọn thông tin xác thực...",
"vaultProfile": "Hồ sơ người ký Vault",
"selectAVaultProfile": "Chọn hồ sơ Vault...",
"vaultProfileHint": "Cài đặt từ hồ sơ dùng chung; bạn sẽ đăng nhập Vault qua OIDC khi kết nối. Không lưu bí mật.",
"vaultNewProfile": "Hồ sơ mới",
"secretRefHint": "Bạn có thể dán mã tham chiếu 1Password (op://vault/item/field) thay cho mã bí mật; mã này sẽ được lấy từ nguồn mã bí mật của bạn khi kết nối.",
"secretSourcesManage": "Quản lý các nguồn tin mật",
"secretSourcesTitle": "Nguồn tin bí mật",
@@ -739,26 +735,6 @@
"secretSourceRequired": "Tên người dùng, URL máy chủ và mã thông báo là bắt buộc.",
"secretSourceSaved": "Nguồn bí mật đã được lưu",
"secretSourceDeleted": "Nguồn tin bí mật đã bị xóa.",
"vaultManageProfiles": "Quản lý hồ sơ Vault",
"vaultAddrLabel": "Địa chỉ Vault",
"vaultNamespaceLabel": "Không gian tên",
"vaultOidcMountLabel": "Điểm gắn xác thực OIDC",
"vaultOidcRoleLabel": "Vai trò OIDC",
"vaultSshMountLabel": "Điểm gắn bí mật SSH",
"vaultSshRoleLabel": "Vai trò ký SSH",
"vaultValidPrincipalsLabel": "Các danh tính hợp lệ",
"vaultKeyTypeLabel": "Loại khóa tạm thời",
"vaultSharedLabel": "Chia sẻ với tất cả người dùng",
"vaultCreateProfile": "Tạo hồ sơ",
"vaultProfileCreated": "Đã tạo hồ sơ Vault",
"vaultProfileSaved": "Đã lưu hồ sơ Vault",
"vaultProfileDeleted": "Đã xóa hồ sơ Vault",
"vaultProfileSaveFailed": "Không thể lưu hồ sơ Vault",
"vaultProfileDeleteFailed": "Không thể xóa hồ sơ Vault",
"vaultSaveProfile": "Lưu hồ sơ",
"vaultProfileValidationError": "Tên, địa chỉ Vault và vai trò ký SSH là bắt buộc",
"vaultNoProfiles": "Chưa có hồ sơ Vault nào.",
"vaultSharedBadge": "được chia sẻ",
"keyTypeLabel": "Loại khóa",
"keyTypeAuto": "Tự động phát hiện",
"keyPasteTab": "Dán",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "请选择 Termix 用于验证此 SSH 连接的一种方法。其他方法不会自动尝试。",
"storedCredential": "已存储凭据",
"selectACredential": "选择凭据...",
"vaultProfile": "Vault 签名者配置文件",
"selectAVaultProfile": "选择 Vault 配置文件...",
"vaultProfileHint": "设置来自共享配置文件;连接时将使用 OIDC 登录 Vault。不会存储任何机密。",
"vaultNewProfile": "新建配置文件",
"secretRefHint": "您可以粘贴 1Password 引用(op://vault/item/field)而不是密钥;连接时会从您的密钥源中获取该引用。",
"secretSourcesManage": "管理秘密来源",
"secretSourcesTitle": "秘密消息来源",
@@ -739,26 +735,6 @@
"secretSourceRequired": "需要提供名称、服务器 URL 和令牌。",
"secretSourceSaved": "秘密来源已保存",
"secretSourceDeleted": "秘密来源已删除",
"vaultManageProfiles": "管理 Vault 配置文件",
"vaultAddrLabel": "Vault 地址",
"vaultNamespaceLabel": "命名空间",
"vaultOidcMountLabel": "OIDC 认证挂载点",
"vaultOidcRoleLabel": "OIDC 角色",
"vaultSshMountLabel": "SSH 机密挂载点",
"vaultSshRoleLabel": "SSH 签名者角色",
"vaultValidPrincipalsLabel": "有效主体",
"vaultKeyTypeLabel": "临时密钥类型",
"vaultSharedLabel": "与所有用户共享",
"vaultCreateProfile": "创建配置文件",
"vaultProfileCreated": "Vault 配置文件已创建",
"vaultProfileSaved": "Vault 配置文件已保存",
"vaultProfileDeleted": "Vault 配置文件已删除",
"vaultProfileSaveFailed": "保存 Vault 配置文件失败",
"vaultProfileDeleteFailed": "删除 Vault 配置文件失败",
"vaultSaveProfile": "保存配置文件",
"vaultProfileValidationError": "名称、Vault 地址和 SSH 签名者角色为必填项",
"vaultNoProfiles": "暂无 Vault 配置文件。",
"vaultSharedBadge": "共享",
"keyTypeLabel": "密钥类型",
"keyTypeAuto": "自动检测",
"keyPasteTab": "粘贴",
-24
View File
@@ -719,10 +719,6 @@
"authenticationMethodDesc": "請選擇 Termix 用於驗證此 SSH 連線的一種方法。其他方法不會自動嘗試。",
"storedCredential": "儲存的憑證",
"selectACredential": "選取憑證...",
"vaultProfile": "Vault 簽署者設定檔",
"selectAVaultProfile": "選取 Vault 設定檔...",
"vaultProfileHint": "設定來自共用設定檔;連線時您將透過 OIDC 登入 Vault。不會儲存任何機密。",
"vaultNewProfile": "新增設定檔",
"secretRefHint": "您可以貼上 1Password 引用(op://vault/item/field)而不是密鑰;連接時會從您的密鑰來源中獲取該引用。",
"secretSourcesManage": "管理秘密來源",
"secretSourcesTitle": "秘密消息來源",
@@ -739,26 +735,6 @@
"secretSourceRequired": "需要提供名稱、伺服器 URL 和令牌。",
"secretSourceSaved": "秘密來源已儲存",
"secretSourceDeleted": "秘密來源已刪除",
"vaultManageProfiles": "管理 Vault 設定檔",
"vaultAddrLabel": "Vault 位址",
"vaultNamespaceLabel": "命名空間",
"vaultOidcMountLabel": "OIDC 驗證掛載",
"vaultOidcRoleLabel": "OIDC 角色",
"vaultSshMountLabel": "SSH 機密掛載",
"vaultSshRoleLabel": "SSH 簽署者角色",
"vaultValidPrincipalsLabel": "有效主體",
"vaultKeyTypeLabel": "暫時金鑰類型",
"vaultSharedLabel": "與所有使用者共用",
"vaultCreateProfile": "建立設定檔",
"vaultProfileCreated": "Vault 設定檔已建立",
"vaultProfileSaved": "Vault 設定檔已儲存",
"vaultProfileDeleted": "Vault 設定檔已刪除",
"vaultProfileSaveFailed": "無法儲存 Vault 設定檔",
"vaultProfileDeleteFailed": "無法刪除 Vault 設定檔",
"vaultSaveProfile": "儲存設定檔",
"vaultProfileValidationError": "名稱、Vault 位址和 SSH 簽署者角色為必填",
"vaultNoProfiles": "尚無 Vault 設定檔。",
"vaultSharedBadge": "已共用",
"keyTypeLabel": "金鑰類型",
"keyTypeAuto": "自動偵測",
"keyPasteTab": "貼上",
-8
View File
@@ -1783,14 +1783,6 @@ export {
deployCredentialToHost,
} from "@/api/credentials-api";
export {
getVaultProfiles,
createVaultProfile,
updateVaultProfile,
deleteVaultProfile,
type VaultProfilePayload,
} from "@/api/vault-profiles-api";
// ============================================================================
// SNIPPETS API
// ============================================================================
+2 -65
View File
@@ -41,7 +41,6 @@ import {
updateSSHHost,
getSnippets,
getUserInfo,
getVaultProfiles,
getHostPassword,
adminCreateUserHost,
adminUpdateUserHost,
@@ -57,7 +56,7 @@ import {
parseCustomThemes,
type SavedCustomTheme,
} from "@/api/open-tabs-api";
import type { Host, VaultProfile } from "@/types/ui-types";
import type { Host } from "@/types/ui-types";
import type { SSHHost } from "@/types";
import { useTabsSafe } from "@/shell/TabContext";
import { updatePluginHostSettings } from "@/api/plugins-api";
@@ -78,7 +77,6 @@ import { useConnectionDefaults } from "@/contexts/ConnectionDefaultsContext";
import { HostEditorGeneralTab } from "./HostEditorGeneralTab";
import { withProtocolSettings } from "./host-protocols";
import { canEditHost } from "./host-permissions";
import { VaultProfileManager } from "./VaultProfileManager";
import {
getHostEditorSection,
isSshGroupTab,
@@ -167,8 +165,6 @@ export function HostEditor({
const [saving, setSaving] = useState(false);
const [snippets, setSnippets] = useState<{ id: number; name: string }[]>([]);
const [isOidcUser, setIsOidcUser] = useState(false);
const [vaultProfiles, setVaultProfiles] = useState<VaultProfile[]>([]);
const [showVaultManager, setShowVaultManager] = useState(false);
const [showSecretSources, setShowSecretSources] = useState(false);
const [quickCredentialName, setQuickCredentialName] = useState("");
const [creatingQuickCredential, setCreatingQuickCredential] = useState(false);
@@ -232,12 +228,6 @@ export function HostEditor({
setField("customThemeColors", { ...theme.colors });
};
const reloadVaultProfiles = () => {
getVaultProfiles()
.then((res) => setVaultProfiles(res as unknown as VaultProfile[]))
.catch(() => {});
};
useEffect(() => {
getUserInfo()
.then((info) => setIsOidcUser(info.is_oidc))
@@ -251,7 +241,6 @@ export function HostEditor({
loadSnippets
.then((res) => setSnippets(mapSnippetResponse(res)))
.catch(() => {});
reloadVaultProfiles();
}, [adminTargetUserId]);
useEffect(() => {
@@ -465,7 +454,7 @@ export function HostEditor({
};
// Shared hosts: view-level recipients see a read-only editor; edit-level
// recipients may change the host but never its credential/vault references
// recipients may change the host but never its credential references
// or auth type (owner-only, enforced server-side too).
const isSharedHost = !!host?.isShared;
const readOnly = isSharedHost && host !== null && !canEditHost(host);
@@ -873,58 +862,6 @@ export function HostEditor({
</div>
</>
)}
{authMethod === "vault" && (
<div className="flex flex-col gap-1.5 col-span-2">
<label className="text-[10px] font-bold uppercase tracking-widest text-muted-foreground">
{t("hosts.vaultProfile")}
</label>
<Select2
value={form.vaultProfileId}
onChange={(e) =>
setField("vaultProfileId", e.target.value)
}
className="flex h-9 w-full border border-border bg-background px-3 py-1 text-xs outline-none focus:ring-1 focus:ring-ring"
>
<option value="">
{t("hosts.selectAVaultProfile")}
</option>
{vaultProfiles.map((p) => (
<option key={p.id} value={p.id}>
{p.shared ? `${p.name} (shared)` : p.name}
</option>
))}
</Select2>
<div className="flex items-center justify-between">
<p className="text-[10px] text-muted-foreground">
{t("hosts.vaultProfileHint")}
</p>
<div className="flex items-center gap-2 shrink-0">
<a
href="https://docs.termix.site/features/authentication/vault"
target="_blank"
rel="noreferrer"
className="text-[10px] text-accent-brand hover:underline"
>
{t("hosts.docsLink")}
</a>
<button
type="button"
className="text-[10px] text-accent-brand hover:text-accent-brand/80"
onClick={() => setShowVaultManager((v) => !v)}
>
{t("hosts.vaultManageProfiles")}
</button>
</div>
</div>
</div>
)}
{authMethod === "vault" && showVaultManager && (
<VaultProfileManager
profiles={vaultProfiles}
onChanged={reloadVaultProfiles}
onClose={() => setShowVaultManager(false)}
/>
)}
{authMethod === "credential" && (
<>
<div className="flex flex-col gap-1.5">
-5
View File
@@ -134,7 +134,6 @@ export function createHostEditorForm(
: d?.credentialId != null
? String(d.credentialId)
: "",
vaultProfileId: host?.vaultProfileId ?? "",
overrideCredentialUsername: host?.overrideCredentialUsername ?? false,
folder: host?.folder ?? "",
parentHostId: host?.parentHostId ?? "",
@@ -294,7 +293,6 @@ export function omitOwnerSshAuthFromSharedEdit(
keyType: _keyType,
sudoPassword: _sudoPassword,
credentialId: _credentialId,
vaultProfileId: _vaultProfileId,
overrideCredentialUsername: _overrideCredentialUsername,
shareSshAuth: _shareSshAuth,
...editableFields
@@ -325,7 +323,6 @@ export function buildHostEditorPayload(
const usesKey = form.authType === "key";
const usesPassword = form.authType === "password";
const usesAgent = form.authType === "agent";
const usesVault = form.authType === "vault";
// With SSH off, the host's primary protocol is the first plugin protocol
// switched on, and its port stands in for the host port.
const primaryProtocol = protocols.enableSsh
@@ -410,8 +407,6 @@ export function buildHostEditorPayload(
keyType: usesKey && form.keyType !== "auto" ? form.keyType : null,
credentialId:
usesCredential && form.credentialId ? Number(form.credentialId) : null,
vaultProfileId:
usesVault && form.vaultProfileId ? Number(form.vaultProfileId) : null,
overrideCredentialUsername: form.overrideCredentialUsername,
notes: form.notes,
enableTerminal: form.enableTerminal,
-4
View File
@@ -78,10 +78,6 @@ export function sshHostToHost(h: SSHHostWithStatus): Host {
keyPassword: h.keyPassword,
keyType: h.keyType,
credentialId: h.credentialId != null ? String(h.credentialId) : undefined,
vaultProfileId:
(h as { vaultProfileId?: number | string | null }).vaultProfileId != null
? String((h as { vaultProfileId?: number | string }).vaultProfileId)
: undefined,
notes: h.notes,
pin: h.pin ?? false,
sortOrder: h.sortOrder ?? null,
-274
View File
@@ -1,274 +0,0 @@
import { getErrorMessage } from "../lib/error-message.js";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { Pencil, Plus, Trash2, X } from "lucide-react";
import { toast } from "sonner";
import { Button } from "@/components/button";
import { Input } from "@/components/input";
import {
createVaultProfile,
updateVaultProfile,
deleteVaultProfile,
type VaultProfilePayload,
} from "@/main-axios";
import type { VaultProfile } from "@/types/ui-types";
import { Select2 } from "@/components/select2";
type FormState = VaultProfilePayload & { id?: string };
const emptyForm: FormState = {
name: "",
vaultAddr: "",
vaultNamespace: "",
oidcMount: "oidc",
oidcRole: "",
sshMount: "ssh-client-signer",
sshRole: "",
validPrincipals: "",
keyType: "ssh-ed25519",
shared: false,
};
function toForm(p: VaultProfile): FormState {
return {
id: p.id,
name: p.name,
vaultAddr: p.vaultAddr,
vaultNamespace: p.vaultNamespace ?? "",
oidcMount: p.oidcMount ?? "oidc",
oidcRole: p.oidcRole ?? "",
sshMount: p.sshMount ?? "ssh-client-signer",
sshRole: p.sshRole,
validPrincipals: p.validPrincipals ?? "",
keyType: p.keyType ?? "ssh-ed25519",
shared: p.shared,
};
}
export function VaultProfileManager({
profiles,
onChanged,
onClose,
}: {
profiles: VaultProfile[];
onChanged: () => void;
onClose: () => void;
}) {
const { t } = useTranslation();
const [form, setForm] = useState<FormState | null>(null);
const [saving, setSaving] = useState(false);
const setField = <K extends keyof FormState>(k: K, v: FormState[K]) =>
setForm((p) => (p ? { ...p, [k]: v } : p));
const handleSave = async () => {
if (!form) return;
if (!form.name.trim() || !form.vaultAddr.trim() || !form.sshRole.trim()) {
toast.error(t("hosts.vaultProfileValidationError"));
return;
}
setSaving(true);
try {
const payload: VaultProfilePayload = {
name: form.name.trim(),
vaultAddr: form.vaultAddr.trim(),
vaultNamespace: form.vaultNamespace?.trim() || null,
oidcMount: form.oidcMount?.trim() || null,
oidcRole: form.oidcRole?.trim() || null,
sshMount: form.sshMount?.trim() || null,
sshRole: form.sshRole.trim(),
validPrincipals: form.validPrincipals?.trim() || null,
keyType: form.keyType?.trim() || null,
shared: !!form.shared,
};
if (form.id) {
await updateVaultProfile(Number(form.id), payload);
toast.success(t("hosts.vaultProfileSaved"));
} else {
await createVaultProfile(payload);
toast.success(t("hosts.vaultProfileCreated"));
}
setForm(null);
onChanged();
} catch (e) {
toast.error(getErrorMessage(e, t("hosts.vaultProfileSaveFailed")));
} finally {
setSaving(false);
}
};
const handleDelete = async (p: VaultProfile) => {
try {
await deleteVaultProfile(Number(p.id));
toast.success(t("hosts.vaultProfileDeleted"));
onChanged();
} catch (e) {
toast.error(getErrorMessage(e, t("hosts.vaultProfileDeleteFailed")));
}
};
const field = (label: string, key: keyof FormState, placeholder?: string) => (
<div className="flex flex-col gap-1">
<label className="text-[9px] font-bold uppercase tracking-widest text-muted-foreground">
{label}
</label>
<Input
className="h-8 text-xs"
placeholder={placeholder}
value={(form?.[key] as string) ?? ""}
onChange={(e) => setField(key, e.target.value as FormState[typeof key])}
/>
</div>
);
return (
<div className="flex flex-col gap-3 col-span-2 border border-border bg-muted/20 p-3">
<div className="flex items-center justify-between">
<span className="text-[10px] font-bold uppercase tracking-widest text-muted-foreground">
{t("hosts.vaultManageProfiles")}
</span>
<button
type="button"
onClick={onClose}
className="text-muted-foreground hover:text-foreground"
>
<X className="size-3.5" />
</button>
</div>
{!form && (
<>
<div className="flex flex-col divide-y divide-border/50">
{profiles.length === 0 && (
<span className="text-[11px] text-muted-foreground py-1">
{t("hosts.vaultNoProfiles")}
</span>
)}
{profiles.map((p) => (
<div
key={p.id}
className="flex items-center justify-between py-1.5"
>
<div className="flex flex-col min-w-0">
<span className="text-xs text-foreground truncate">
{p.name}
{p.shared && (
<span className="ml-1 text-[9px] text-accent-brand">
{t("hosts.vaultSharedBadge")}
</span>
)}
</span>
<span className="text-[10px] text-muted-foreground truncate">
{p.vaultAddr}
</span>
</div>
{p.owned && (
<div className="flex items-center gap-1 shrink-0">
<button
type="button"
title="Edit"
onClick={() => setForm(toForm(p))}
className="size-7 flex items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-muted-foreground/10"
>
<Pencil className="size-3.5" />
</button>
<button
type="button"
title="Delete"
onClick={() => handleDelete(p)}
className="size-7 flex items-center justify-center rounded text-muted-foreground/50 hover:text-destructive hover:bg-destructive/10"
>
<Trash2 className="size-3.5" />
</button>
</div>
)}
</div>
))}
</div>
<Button
type="button"
variant="outline"
size="sm"
className="h-7 text-[10px] self-start"
onClick={() => setForm({ ...emptyForm })}
>
<Plus className="size-3 mr-1" /> {t("hosts.vaultNewProfile")}
</Button>
</>
)}
{form && (
<div className="flex flex-col gap-2">
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
{field(t("hosts.friendlyNameLabel"), "name", "Production Vault")}
{field(
t("hosts.vaultAddrLabel"),
"vaultAddr",
"https://vault:8200",
)}
{field(t("hosts.vaultNamespaceLabel"), "vaultNamespace", "admin")}
{field(t("hosts.vaultOidcMountLabel"), "oidcMount", "oidc")}
{field(t("hosts.vaultOidcRoleLabel"), "oidcRole", "default")}
{field(
t("hosts.vaultSshMountLabel"),
"sshMount",
"ssh-client-signer",
)}
{field(t("hosts.vaultSshRoleLabel"), "sshRole", "my-role")}
{field(
t("hosts.vaultValidPrincipalsLabel"),
"validPrincipals",
"root,deploy",
)}
</div>
<div className="flex flex-col gap-1">
<label className="text-[9px] font-bold uppercase tracking-widest text-muted-foreground">
{t("hosts.vaultKeyTypeLabel")}
</label>
<Select2
value={form.keyType ?? "ssh-ed25519"}
onChange={(e) => setField("keyType", e.target.value)}
className="flex h-8 w-full border border-border bg-background px-3 py-1 text-xs outline-none focus:ring-1 focus:ring-ring"
>
<option value="ssh-ed25519">Ed25519</option>
<option value="ecdsa-sha2-nistp256">ECDSA (nistp256)</option>
<option value="ssh-rsa">RSA (4096)</option>
</Select2>
</div>
<label className="flex items-center gap-2 text-xs text-foreground">
<input
type="checkbox"
checked={!!form.shared}
onChange={(e) => setField("shared", e.target.checked)}
/>
{t("hosts.vaultSharedLabel")}
</label>
<div className="flex justify-end gap-2">
<Button
type="button"
variant="ghost"
size="sm"
onClick={() => setForm(null)}
disabled={saving}
>
{t("hosts.cancelBtn")}
</Button>
<Button
type="button"
variant="outline"
size="sm"
className="border-accent-brand/40 text-accent-brand"
onClick={handleSave}
disabled={saving}
>
{form.id
? t("hosts.vaultSaveProfile")
: t("hosts.vaultCreateProfile")}
</Button>
</div>
</div>
)}
</div>
);
}
@@ -50,7 +50,6 @@ describe("omitOwnerSshAuthFromSharedEdit", () => {
key: "owner-key",
keyPassword: "owner-passphrase",
keyType: "ssh-ed25519",
vaultProfileId: "9",
overrideCredentialUsername: true,
shareSshAuth: true,
sudoPassword: "owner-sudo",
@@ -70,7 +69,6 @@ describe("omitOwnerSshAuthFromSharedEdit", () => {
for (const field of [
"authType",
"credentialId",
"vaultProfileId",
"overrideCredentialUsername",
"shareSshAuth",
"password",
@@ -128,32 +126,6 @@ describe("buildHostEditorPayload auth field isolation", () => {
expect(payload.password).toBe("newpass");
});
it("drops the vaultProfileId when switching a host away from vault auth", () => {
const form = {
...createHostEditorForm(null),
authType: "password" as const,
password: "newpass",
vaultProfileId: "9",
};
const payload = buildHostEditorPayload(form, sshOnly);
expect(payload.vaultProfileId).toBeNull();
expect(payload.password).toBe("newpass");
});
it("sends vaultProfileId when authType is vault", () => {
const form = {
...createHostEditorForm(null),
authType: "vault" as const,
vaultProfileId: "9",
};
const payload = buildHostEditorPayload(form, sshOnly);
expect(payload.vaultProfileId).toBe(9);
});
it("sends credentialId and optional password when authType is credential", () => {
const form = {
...createHostEditorForm(null),