+
{localize('com_nav_api_keys_description')}
+ {userProvidedEndpoints.length === 0 ? (
+
+ {localize('com_nav_api_keys_empty')}
+
+ ) : (
+
+ {userProvidedEndpoints.map((endpoint) => (
+
+ ))}
+
+ )}
+
+ );
+}
+
+export default React.memo(APIKeys);
diff --git a/client/src/components/Nav/SettingsTabs/APIKeys/index.ts b/client/src/components/Nav/SettingsTabs/APIKeys/index.ts
new file mode 100644
index 0000000000..1cc54e4cf6
--- /dev/null
+++ b/client/src/components/Nav/SettingsTabs/APIKeys/index.ts
@@ -0,0 +1 @@
+export { default } from './APIKeys';
diff --git a/client/src/components/Nav/SettingsTabs/index.ts b/client/src/components/Nav/SettingsTabs/index.ts
index 7287a330ae..77e5d13cd5 100644
--- a/client/src/components/Nav/SettingsTabs/index.ts
+++ b/client/src/components/Nav/SettingsTabs/index.ts
@@ -4,6 +4,7 @@ export { default as Speech } from './Speech/Speech';
export { default as Balance } from './Balance/Balance';
export { default as General } from './General/General';
export { default as Account } from './Account/Account';
+export { default as APIKeys } from './APIKeys';
export { default as Commands } from './Commands/Commands';
export { default as Personalization } from './Personalization';
export { default as About } from './About/About';
diff --git a/client/src/locales/en/translation.json b/client/src/locales/en/translation.json
index 64604e895d..8a00701276 100644
--- a/client/src/locales/en/translation.json
+++ b/client/src/locales/en/translation.json
@@ -418,6 +418,9 @@
"com_nav_advanced_prompts": "Advanced prompts editor",
"com_nav_advanced_prompts_desc": "Enable versioning and production control for prompts",
"com_nav_always_make_prod": "Always make new prompt versions production",
+ "com_nav_api_keys_description": "Manage API keys for endpoints configured to use a user-provided key.",
+ "com_nav_api_keys_empty": "No endpoints currently require a user-provided API key.",
+ "com_nav_api_keys_not_set": "No key set",
"com_nav_archive_created_at": "Date Archived",
"com_nav_archive_name": "Name",
"com_nav_archived_chats": "Archived chats",
@@ -594,6 +597,7 @@
"com_nav_send_message": "Send message",
"com_nav_setting_about": "About",
"com_nav_setting_account": "Account",
+ "com_nav_setting_api_keys": "API Keys",
"com_nav_setting_balance": "Balance",
"com_nav_setting_chat": "Chat",
"com_nav_setting_data": "Data controls",
diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts
index fae3bcd83b..508be610cb 100644
--- a/packages/data-provider/src/config.ts
+++ b/packages/data-provider/src/config.ts
@@ -2106,6 +2106,10 @@ export enum SettingsTabValues {
* Tab for Account Settings
*/
ACCOUNT = 'account',
+ /**
+ * Tab for managing user-provided API keys
+ */
+ API_KEYS = 'api_keys',
/**
* Chat input commands
*/