mirror of
https://github.com/fosrl/pangolin.git
synced 2026-08-20 19:22:37 +02:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 15473ecb2d | |||
| dc32bff262 | |||
| 2e42a1a0d9 | |||
| e15d6a0d91 | |||
| ddc0baed14 | |||
| 393166f39a | |||
| 07f78f9411 | |||
| 12026eae47 | |||
| b344668ea2 | |||
| 18c1fcaf44 | |||
| 7e254f9efc | |||
| 9ed6c71a6a | |||
| b4f6e71e9c | |||
| ed16ba884f | |||
| 0fa31c1029 | |||
| 5a64d08a08 | |||
| 492122ad0c | |||
| 73568c0199 | |||
| 966fcba885 | |||
| 48a749a0df | |||
| efd19df047 | |||
| 8ca8396fa2 | |||
| e610ed0d38 | |||
| 3e283619f0 | |||
| bf99d8f99f | |||
| 987bdf2012 | |||
| b1ae8d78da | |||
| caf3bcd87f | |||
| c71a1f08ee | |||
| 37ed82cad1 |
@@ -77,7 +77,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
||||
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -149,7 +149,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
||||
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -204,7 +204,7 @@ jobs:
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
||||
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -407,7 +407,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Login to GitHub Container Registry (for cosign)
|
||||
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
||||
uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
|
||||
- uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10.4.0
|
||||
with:
|
||||
days-before-stale: 14
|
||||
days-before-close: 14
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Инструментът за кодиране на Anthropic за терминала.",
|
||||
"aiClientConfigDescriptionCodex": "Инструментът за кодиране на OpenAI за терминала.",
|
||||
"aiClientConfigDescriptionOpencode": "Отворен кодиращ агент за терминал.",
|
||||
"aiClientConfigDescriptionCursor": "AI редактор на код, базиран на VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Настройка",
|
||||
"aiClientConfigTabCli": "Автоматичен (CLI)",
|
||||
"aiClientConfigTabManual": "Ръчна конфигурация",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Дневници на действията",
|
||||
"logRetention": "Задържане на логове",
|
||||
"logRetentionDescription": "Управлявайте времето за задържане на различни видове логове за тази организация или ги деактивирайте",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Прегледайте подробни логове на заявки за ресурси в тази организация",
|
||||
"aiSessionLogs": "Журнали на AI Портал Сесиите",
|
||||
"aiSessionLogsDescription": "Прегледайте подканянета и транскрипции на отговори за запитванията към AI портал в тази организация",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Antropický agentický kódovací nástroj pro terminál.",
|
||||
"aiClientConfigDescriptionCodex": "Agentický kódovací nástroj OpenAI pro terminál.",
|
||||
"aiClientConfigDescriptionOpencode": "Open source terminální kódovací agent.",
|
||||
"aiClientConfigDescriptionCursor": "AI editor kódu postavený na VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Nastavení",
|
||||
"aiClientConfigTabCli": "Automatické (CLI)",
|
||||
"aiClientConfigTabManual": "Ruční konfigurace",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Záznamy akcí",
|
||||
"logRetention": "Zaznamenávání záznamu",
|
||||
"logRetentionDescription": "Spravovat, jak dlouho jsou různé typy logů uloženy pro tuto organizaci nebo je zakázat",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Zobrazit podrobné protokoly požadavků pro zdroje v této organizaci",
|
||||
"aiSessionLogs": "Protokoly AI Gateway Session",
|
||||
"aiSessionLogsDescription": "Zobrazit uložené výzvy a odpovědi na žádosti AI brány v této organizaci",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropics agentikodningsværktøj til terminalen.",
|
||||
"aiClientConfigDescriptionCodex": "OpenAIs agentikodningsværktøj til terminalen.",
|
||||
"aiClientConfigDescriptionOpencode": "Open source terminal kodningsagent.",
|
||||
"aiClientConfigDescriptionCursor": "AI-kodeeditor bygget på VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Opsætning",
|
||||
"aiClientConfigTabCli": "Automatisk (CLI)",
|
||||
"aiClientConfigTabManual": "Manuel Konfiguration",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Handlingsloger",
|
||||
"logRetention": "Logopbevaring",
|
||||
"logRetentionDescription": "Håndter hvor længe ulike typer logs beholdes for denne organisation, eller deaktivér dem",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Se detaljerede forespørgselslogs for ressourcer i denne organisation",
|
||||
"aiSessionLogs": "AI Gateway Øktsprotokoller",
|
||||
"aiSessionLogsDescription": "Se prompt og svarudskrifter for AI gateway forespørgsler i denne organisation",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Agentisches Codierwerkzeug von Anthropic für das Terminal.",
|
||||
"aiClientConfigDescriptionCodex": "Agentisches Codierwerkzeug von OpenAI für das Terminal.",
|
||||
"aiClientConfigDescriptionOpencode": "Open-Source-Coding-Agent für das Terminal.",
|
||||
"aiClientConfigDescriptionCursor": "KI-Code-Editor basierend auf VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Einrichtung",
|
||||
"aiClientConfigTabCli": "Automatisch (CLI)",
|
||||
"aiClientConfigTabManual": "Manuelle Konfiguration",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Aktionsprotokolle",
|
||||
"logRetention": "Log-Speicherung",
|
||||
"logRetentionDescription": "Verwalten, wie lange verschiedene Logs für diese Organisation gespeichert werden oder deaktivieren",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Detaillierte Request-Logs für Ressourcen in dieser Organisation anzeigen",
|
||||
"aiSessionLogs": "AI-Gateway Sitzungsprotokolle",
|
||||
"aiSessionLogsDescription": "Zeigen Sie Aufforderungs- und Antwortprotokolle für Anfragen des KI-Gateways in dieser Organisation an",
|
||||
|
||||
@@ -3547,9 +3547,6 @@
|
||||
"sidebarLogsAction": "Admin Action Logs",
|
||||
"logRetention": "Log Retention",
|
||||
"logRetentionDescription": "Manage how long different types of logs are retained for this organization or disable them",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
|
||||
"aiSessionLogs": "AI Gateway Session Logs",
|
||||
"aiSessionLogsDescription": "View prompt and response transcripts for AI gateway requests in this organization",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Herramienta de codificación agentic de Anthropic para el terminal.",
|
||||
"aiClientConfigDescriptionCodex": "Herramienta de codificación agentic de OpenAI para el terminal.",
|
||||
"aiClientConfigDescriptionOpencode": "Agente de codificación de terminal de código abierto.",
|
||||
"aiClientConfigDescriptionCursor": "Editor de código AI construido sobre VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Configuración",
|
||||
"aiClientConfigTabCli": "Automático (CLI)",
|
||||
"aiClientConfigTabManual": "Configuración manual",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Registros de acción",
|
||||
"logRetention": "Retención de Log",
|
||||
"logRetentionDescription": "Administrar cuánto tiempo se conservan los diferentes tipos de registros para esta organización o desactivarlos",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Ver registros de solicitudes detallados para los recursos de esta organización",
|
||||
"aiSessionLogs": "Registros de Sesiones del Portal de IA",
|
||||
"aiSessionLogsDescription": "Ver transcripciones de solicitud y respuesta para solicitudes del portal de IA en esta organización",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Outil de codage agentique d'Anthropic pour le terminal.",
|
||||
"aiClientConfigDescriptionCodex": "Outil de codage agentique d'OpenAI pour le terminal.",
|
||||
"aiClientConfigDescriptionOpencode": "Agent de codage terminal open source.",
|
||||
"aiClientConfigDescriptionCursor": "Éditeur de code IA basé sur VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Configuration",
|
||||
"aiClientConfigTabCli": "Automatique (CLI)",
|
||||
"aiClientConfigTabManual": "Configuration manuelle",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Journaux des actions",
|
||||
"logRetention": "Journaliser la rétention",
|
||||
"logRetentionDescription": "Gérer la durée de conservation des différents types de logs pour cette organisation ou les désactiver",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Voir les journaux détaillés des requêtes pour les ressources de cette organisation",
|
||||
"aiSessionLogs": "Journaux de Session du Portail AI",
|
||||
"aiSessionLogsDescription": "Voir les transcriptions de l'invite et de la réponse pour les requêtes de portail AI dans cette organisation",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Strumento di coding agente di Anthropic per il terminale.",
|
||||
"aiClientConfigDescriptionCodex": "Strumento di coding agente di OpenAI per il terminale.",
|
||||
"aiClientConfigDescriptionOpencode": "Agente di coding open source per il terminale.",
|
||||
"aiClientConfigDescriptionCursor": "Editor di codice AI basato su VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Impostazione",
|
||||
"aiClientConfigTabCli": "Automatico (CLI)",
|
||||
"aiClientConfigTabManual": "Configurazione Manuale",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Log Azioni",
|
||||
"logRetention": "Ritenzione Registro",
|
||||
"logRetentionDescription": "Gestisci per quanto tempo i diversi tipi di log sono mantenuti per questa organizzazione o disabilitali",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Visualizza i registri di richiesta dettagliati per le risorse in questa organizzazione",
|
||||
"aiSessionLogs": "Log delle Sessioni AI Gateway",
|
||||
"aiSessionLogsDescription": "Visualizza trascrizioni di prompt e risposte per le richieste del gateway AI in questa organizzazione",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropic의 터미널 에이전트 코딩 도구입니다.",
|
||||
"aiClientConfigDescriptionCodex": "OpenAI의 터미널 에이전트 코딩 도구입니다.",
|
||||
"aiClientConfigDescriptionOpencode": "오픈 소스 터미널 코딩 에이전트.",
|
||||
"aiClientConfigDescriptionCursor": "VS Code를 기반으로 한 AI 코드 편집기.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "설정",
|
||||
"aiClientConfigTabCli": "자동 (CLI)",
|
||||
"aiClientConfigTabManual": "수동 구성",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "작업 로그",
|
||||
"logRetention": "로그 보관",
|
||||
"logRetentionDescription": "다양한 유형의 로그를 이 조직에 대해 얼마나 오래 보관할지 관리하거나 비활성화합니다",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "이 조직의 자원에 대한 상세한 요청 로그를 봅니다",
|
||||
"aiSessionLogs": "AI 게이트웨이 세션 로그",
|
||||
"aiSessionLogsDescription": "이 조직의 AI 게이트웨이 요청에 대한 프롬프트 및 응답 대본을 봅니다",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropics agentiske kodingsverktøy for terminalen.",
|
||||
"aiClientConfigDescriptionCodex": "OpenAIs agentiske kodingsverktøy for terminalen.",
|
||||
"aiClientConfigDescriptionOpencode": "Åpen kildekode terminal kodeagent.",
|
||||
"aiClientConfigDescriptionCursor": "AI-kodeeditor bygget på VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Oppsett",
|
||||
"aiClientConfigTabCli": "Automatisk (CLI)",
|
||||
"aiClientConfigTabManual": "Manuell konfigurasjon",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Handlingslogger",
|
||||
"logRetention": "Logg tilbaketrekning",
|
||||
"logRetentionDescription": "Håndter hvor lenge ulike typer logger beholdes for denne organisasjonen, eller deaktiver dem",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Se detaljerte forespørselslogger for ressurser i denne organisasjonen",
|
||||
"aiSessionLogs": "AI Portal Sesjonslogger",
|
||||
"aiSessionLogsDescription": "Vis stikkord- og responsutskrifter for AI-portal forespørsler i denne organisasjonen",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropic's agentische coderingstool voor de terminal.",
|
||||
"aiClientConfigDescriptionCodex": "OpenAI's agentische coderingstool voor de terminal.",
|
||||
"aiClientConfigDescriptionOpencode": "Open source terminal coderingsagent.",
|
||||
"aiClientConfigDescriptionCursor": "AI-code-editor gebouwd op VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Instellen",
|
||||
"aiClientConfigTabCli": "Automatisch (CLI)",
|
||||
"aiClientConfigTabManual": "Handmatige configuratie",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Actie logs",
|
||||
"logRetention": "Log bewaring",
|
||||
"logRetentionDescription": "Beheren hoe lang verschillende soorten logs bewaard worden voor deze organisatie of schakel ze uit",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Bekijk gedetailleerde verzoeklogboeken voor resources in deze organisatie",
|
||||
"aiSessionLogs": "AI Gateway Sessie Logs",
|
||||
"aiSessionLogsDescription": "Bekijk prompt- en reactie-transcripten voor AI-gateway-aanvragen in deze organisatie",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Agent narzędzia kodującego Anthropic dla terminala.",
|
||||
"aiClientConfigDescriptionCodex": "Agent narzędzia kodującego OpenAI dla terminala.",
|
||||
"aiClientConfigDescriptionOpencode": "Agent open source do kodowania w terminalu.",
|
||||
"aiClientConfigDescriptionCursor": "Edytor kodu AI oparty na VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Ustawienie",
|
||||
"aiClientConfigTabCli": "Automatyczne (CLI)",
|
||||
"aiClientConfigTabManual": "Konfiguracja ręczna",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Dzienniki działań",
|
||||
"logRetention": "Zachowanie dziennika",
|
||||
"logRetentionDescription": "Zarządzaj jak długo różne typy logów są zachowane dla tej organizacji lub wyłącz je",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Zobacz szczegółowe dzienniki żądań zasobów w tej organizacji",
|
||||
"aiSessionLogs": "Dzienniki Sesji Bramy AI",
|
||||
"aiSessionLogsDescription": "Zobacz transkrypcje podpowiedzi i odpowiedzi dla żądań bramy AI w tej organizacji",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Ferramenta de codificação agentic de Anthropic para o terminal.",
|
||||
"aiClientConfigDescriptionCodex": "Ferramenta de codificação agentic da OpenAI para o terminal.",
|
||||
"aiClientConfigDescriptionOpencode": "Agente de codificação de terminal de código aberto.",
|
||||
"aiClientConfigDescriptionCursor": "Editor de código de IA baseado no VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Configuração",
|
||||
"aiClientConfigTabCli": "Automático (CLI)",
|
||||
"aiClientConfigTabManual": "Configuração Manual",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Logs de Ações",
|
||||
"logRetention": "Retenção de Log",
|
||||
"logRetentionDescription": "Gerenciar quanto tempo os diferentes tipos de logs são mantidos para esta organização ou desativá-los",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Ver registros de pedidos detalhados de recursos nesta organização",
|
||||
"aiSessionLogs": "Registros de Sessão do Gateway de IA",
|
||||
"aiSessionLogsDescription": "Veja as transcrições de prompt e resposta para solicitações de gateway de IA nesta organização",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Агентивное кодирующее средство Anthropic для терминала.",
|
||||
"aiClientConfigDescriptionCodex": "Агентивное кодирующее средство OpenAI для терминала.",
|
||||
"aiClientConfigDescriptionOpencode": "Открытый исходный агент для кодирования в терминале.",
|
||||
"aiClientConfigDescriptionCursor": "AI редактор кода на основе VS Code.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Настройка",
|
||||
"aiClientConfigTabCli": "Автоматическое (CLI)",
|
||||
"aiClientConfigTabManual": "Ручная конфигурация",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Журнал действий",
|
||||
"logRetention": "Сохранение журнала",
|
||||
"logRetentionDescription": "Управление сохранением различных типов журналов для этой организации или отключение их",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Просмотреть подробные журналы запроса ресурсов в этой организации",
|
||||
"aiSessionLogs": "AI Логи сессии шлюза",
|
||||
"aiSessionLogsDescription": "Просмотр транскриптов запросов и ответов для шлюзов AI в этой организации",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropic'in terminal için aracılık kodlama aracı.",
|
||||
"aiClientConfigDescriptionCodex": "OpenAI'nin terminal için aracılık kodlama aracı.",
|
||||
"aiClientConfigDescriptionOpencode": "Açık kaynak terminal kodlama aracı.",
|
||||
"aiClientConfigDescriptionCursor": "VS Code üzerine kurulu yapay zeka kod editörü.",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "Kurulum",
|
||||
"aiClientConfigTabCli": "Otomatik (CLI)",
|
||||
"aiClientConfigTabManual": "Manuel Yapılandırma",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "Eylem Günlükleri",
|
||||
"logRetention": "Kayıt Saklama",
|
||||
"logRetentionDescription": "Bu organizasyon için farklı türdeki günlüklerin ne kadar süre saklanacağını yönetin veya devre dışı bırakın",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek günlüklerini görüntüleyin",
|
||||
"aiSessionLogs": "AI Ağ Geçidi Oturum Günlükleri",
|
||||
"aiSessionLogsDescription": "Bu organizasyondaki AI ağ geçidi isteklerinin istem ve yanıt transkriptlerini görüntüleyin",
|
||||
|
||||
+4
-1
@@ -1785,7 +1785,7 @@
|
||||
"aiClientConfigDescriptionClaude": "Anthropic 的终端代理编码工具。",
|
||||
"aiClientConfigDescriptionCodex": "OpenAI 的终端代理编码工具。",
|
||||
"aiClientConfigDescriptionOpencode": "开源终端编码代理。",
|
||||
"aiClientConfigDescriptionCursor": "基于 VS Code 的 AI 代码编辑器。",
|
||||
"aiClientConfigDescriptionGemini": "Google's agentic coding tool for the terminal.",
|
||||
"aiClientConfigSetup": "设置",
|
||||
"aiClientConfigTabCli": "自动 (CLI)",
|
||||
"aiClientConfigTabManual": "手动配置",
|
||||
@@ -3548,6 +3548,9 @@
|
||||
"sidebarLogsAction": "操作日志",
|
||||
"logRetention": "日志保留",
|
||||
"logRetentionDescription": "管理不同类型的日志为这个机构保留多长时间或禁用这些日志",
|
||||
"logRetentionDisabledWarningTitle": "Log Retention Disabled",
|
||||
"logRetentionDisabledWarningDescription": "{logType} are not being retained for this organization, so new activity will not appear here. Enable retention in security settings to start collecting these logs.",
|
||||
"logRetentionDisabledWarningButton": "Go to Security Settings",
|
||||
"requestLogsDescription": "查看此机构资源的详细请求日志",
|
||||
"aiSessionLogs": "AI 网关会话日志",
|
||||
"aiSessionLogsDescription": "查看此组织中AI网关请求的提示和响应记录",
|
||||
|
||||
Generated
+3587
-2337
File diff suppressed because it is too large
Load Diff
+74
-74
@@ -32,49 +32,49 @@
|
||||
"format": "prettier --write ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@asteasolutions/zod-to-openapi": "9.1.0",
|
||||
"@aws-sdk/client-s3": "3.1111.0",
|
||||
"@asteasolutions/zod-to-openapi": "8.5.0",
|
||||
"@aws-sdk/client-s3": "3.1056.0",
|
||||
"@devolutions/iron-remote-desktop": "https://static.pangolin.net/packages/devolutions-iron-remote-desktop-0.0.0.tgz",
|
||||
"@devolutions/iron-remote-desktop-rdp": "https://static.pangolin.net/packages/devolutions-iron-remote-desktop-rdp-0.0.1.tgz",
|
||||
"@headlessui/react": "2.2.10",
|
||||
"@hookform/resolvers": "5.9.0",
|
||||
"@hookform/resolvers": "5.4.0",
|
||||
"@monaco-editor/react": "4.7.0",
|
||||
"@node-rs/argon2": "2.1.0",
|
||||
"@node-rs/argon2": "2.0.2",
|
||||
"@novnc/novnc": "^1.7.0",
|
||||
"@oslojs/crypto": "1.0.1",
|
||||
"@oslojs/encoding": "1.1.0",
|
||||
"@radix-ui/react-avatar": "1.2.6",
|
||||
"@radix-ui/react-checkbox": "1.3.11",
|
||||
"@radix-ui/react-collapsible": "1.1.20",
|
||||
"@radix-ui/react-dialog": "1.1.23",
|
||||
"@radix-ui/react-dropdown-menu": "2.1.24",
|
||||
"@radix-ui/react-avatar": "1.1.11",
|
||||
"@radix-ui/react-checkbox": "1.3.3",
|
||||
"@radix-ui/react-collapsible": "1.1.12",
|
||||
"@radix-ui/react-dialog": "1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "2.1.16",
|
||||
"@radix-ui/react-icons": "1.3.2",
|
||||
"@radix-ui/react-label": "2.1.15",
|
||||
"@radix-ui/react-popover": "1.1.23",
|
||||
"@radix-ui/react-progress": "1.1.16",
|
||||
"@radix-ui/react-radio-group": "1.4.7",
|
||||
"@radix-ui/react-scroll-area": "1.2.18",
|
||||
"@radix-ui/react-select": "2.3.7",
|
||||
"@radix-ui/react-separator": "1.1.15",
|
||||
"@radix-ui/react-slot": "1.3.3",
|
||||
"@radix-ui/react-switch": "1.3.7",
|
||||
"@radix-ui/react-tabs": "1.1.21",
|
||||
"@radix-ui/react-toast": "1.2.23",
|
||||
"@radix-ui/react-tooltip": "1.2.16",
|
||||
"@radix-ui/react-label": "2.1.8",
|
||||
"@radix-ui/react-popover": "1.1.15",
|
||||
"@radix-ui/react-progress": "1.1.8",
|
||||
"@radix-ui/react-radio-group": "1.3.8",
|
||||
"@radix-ui/react-scroll-area": "1.2.10",
|
||||
"@radix-ui/react-select": "2.2.6",
|
||||
"@radix-ui/react-separator": "1.1.8",
|
||||
"@radix-ui/react-slot": "1.2.4",
|
||||
"@radix-ui/react-switch": "1.2.6",
|
||||
"@radix-ui/react-tabs": "1.1.13",
|
||||
"@radix-ui/react-toast": "1.2.15",
|
||||
"@radix-ui/react-tooltip": "1.2.8",
|
||||
"@react-email/body": "0.3.0",
|
||||
"@react-email/components": "1.0.12",
|
||||
"@react-email/render": "2.1.0",
|
||||
"@react-email/render": "2.0.8",
|
||||
"@react-email/tailwind": "2.0.7",
|
||||
"@simplewebauthn/browser": "13.3.0",
|
||||
"@simplewebauthn/server": "13.3.2",
|
||||
"@simplewebauthn/server": "13.3.1",
|
||||
"@tailwindcss/forms": "0.5.11",
|
||||
"@tanstack/react-query": "5.101.4",
|
||||
"@tanstack/react-table": "9.1.2",
|
||||
"@tanstack/react-query": "5.100.14",
|
||||
"@tanstack/react-table": "8.21.3",
|
||||
"@xterm/addon-fit": "^0.11.0",
|
||||
"@xterm/addon-web-links": "^0.12.0",
|
||||
"@xterm/xterm": "^6.0.0",
|
||||
"arctic": "3.7.0",
|
||||
"axios": "1.19.0",
|
||||
"axios": "1.18.0",
|
||||
"better-sqlite3": "11.9.1",
|
||||
"canvas-confetti": "1.9.4",
|
||||
"class-variance-authority": "0.7.1",
|
||||
@@ -86,62 +86,62 @@
|
||||
"d3": "7.9.0",
|
||||
"drizzle-orm": "0.45.2",
|
||||
"express": "5.2.1",
|
||||
"express-rate-limit": "8.6.2",
|
||||
"express-rate-limit": "8.5.2",
|
||||
"glob": "13.0.6",
|
||||
"gpt-tokenizer": "^4.0.0",
|
||||
"helmet": "8.3.0",
|
||||
"gpt-tokenizer": "^3.4.0",
|
||||
"helmet": "8.2.0",
|
||||
"http-errors": "2.0.1",
|
||||
"input-otp": "1.4.2",
|
||||
"ioredis": "6.0.0",
|
||||
"ioredis": "5.11.0",
|
||||
"jmespath": "0.16.0",
|
||||
"js-yaml": "5.3.0",
|
||||
"js-yaml": "4.3.0",
|
||||
"jsonwebtoken": "9.0.3",
|
||||
"lucide-react": "1.31.0",
|
||||
"maxmind": "5.0.7",
|
||||
"lucide-react": "1.17.0",
|
||||
"maxmind": "5.0.6",
|
||||
"moment": "2.30.1",
|
||||
"next": "16.3.1",
|
||||
"next-intl": "4.13.6",
|
||||
"next": "16.2.11",
|
||||
"next-intl": "4.13.0",
|
||||
"next-themes": "0.4.6",
|
||||
"nextjs-toploader": "3.9.17",
|
||||
"node-cache": "5.1.2",
|
||||
"nodemailer": "9.0.5",
|
||||
"nodemailer": "9.0.1",
|
||||
"oslo": "1.2.1",
|
||||
"pg": "8.23.0",
|
||||
"posthog-node": "5.49.1",
|
||||
"pg": "8.21.0",
|
||||
"posthog-node": "5.35.6",
|
||||
"qrcode.react": "4.2.0",
|
||||
"react": "19.2.8",
|
||||
"react-day-picker": "10.0.1",
|
||||
"react-dom": "19.2.8",
|
||||
"react": "19.2.6",
|
||||
"react-day-picker": "9.14.0",
|
||||
"react-dom": "19.2.6",
|
||||
"react-easy-sort": "1.8.0",
|
||||
"react-hook-form": "7.85.0",
|
||||
"react-icons": "5.7.0",
|
||||
"recharts": "3.10.1",
|
||||
"react-hook-form": "7.76.1",
|
||||
"react-icons": "5.6.0",
|
||||
"recharts": "3.8.1",
|
||||
"reodotdev": "1.1.0",
|
||||
"semver": "7.8.5",
|
||||
"semver": "7.8.1",
|
||||
"sshpk": "1.18.0",
|
||||
"stripe": "22.5.0",
|
||||
"stripe": "22.2.0",
|
||||
"swagger-ui-express": "5.0.1",
|
||||
"tailwind-merge": "3.6.0",
|
||||
"topojson-client": "3.1.0",
|
||||
"tw-animate-css": "1.4.0",
|
||||
"use-debounce": "10.1.1",
|
||||
"uuid": "14.0.1",
|
||||
"uuid": "14.0.0",
|
||||
"vaul": "1.1.2",
|
||||
"visionscarto-world-atlas": "1.0.0",
|
||||
"winston": "3.19.0",
|
||||
"winston-daily-rotate-file": "5.0.0",
|
||||
"ws": "8.21.3",
|
||||
"ws": "8.21.0",
|
||||
"yaml": "2.9.0",
|
||||
"yargs": "18.1.0",
|
||||
"yargs": "18.0.0",
|
||||
"zod": "4.4.3",
|
||||
"zod-validation-error": "5.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@dotenvx/dotenvx": "2.21.0",
|
||||
"@dotenvx/dotenvx": "1.69.1",
|
||||
"@esbuild-plugins/tsconfig-paths": "0.1.2",
|
||||
"@react-email/ui": "^6.9.2",
|
||||
"@tailwindcss/postcss": "4.3.3",
|
||||
"@tanstack/react-query-devtools": "5.101.4",
|
||||
"@react-email/ui": "^6.5.0",
|
||||
"@tailwindcss/postcss": "4.3.0",
|
||||
"@tanstack/react-query-devtools": "5.100.14",
|
||||
"@types/better-sqlite3": "7.6.13",
|
||||
"@types/cookie-parser": "1.4.10",
|
||||
"@types/cors": "2.8.19",
|
||||
@@ -152,36 +152,36 @@
|
||||
"@types/jmespath": "0.15.2",
|
||||
"@types/js-yaml": "4.0.9",
|
||||
"@types/jsonwebtoken": "9.0.10",
|
||||
"@types/node": "26.2.0",
|
||||
"@types/nodemailer": "8.0.1",
|
||||
"@types/node": "25.9.1",
|
||||
"@types/nodemailer": "8.0.0",
|
||||
"@types/nprogress": "0.2.3",
|
||||
"@types/pg": "8.21.0",
|
||||
"@types/react": "19.2.18",
|
||||
"@types/react-dom": "19.2.4",
|
||||
"@types/semver": "7.8.0",
|
||||
"@types/sshpk": "1.17.5",
|
||||
"@types/pg": "8.20.0",
|
||||
"@types/react": "19.2.15",
|
||||
"@types/react-dom": "19.2.3",
|
||||
"@types/semver": "7.7.1",
|
||||
"@types/sshpk": "1.17.4",
|
||||
"@types/swagger-ui-express": "4.1.8",
|
||||
"@types/topojson-client": "3.1.5",
|
||||
"@types/ws": "8.18.1",
|
||||
"@types/yargs": "17.0.35",
|
||||
"babel-plugin-react-compiler": "1.0.0",
|
||||
"drizzle-kit": "0.31.10",
|
||||
"esbuild": "0.28.2",
|
||||
"esbuild-node-externals": "2.0.0",
|
||||
"eslint": "10.8.1",
|
||||
"eslint-config-next": "16.3.1",
|
||||
"postcss": "8.5.26",
|
||||
"prettier": "3.9.6",
|
||||
"react-email": "6.9.2",
|
||||
"tailwindcss": "4.3.3",
|
||||
"tsc-alias": "1.9.1",
|
||||
"tsx": "4.23.12",
|
||||
"typescript": "7.0.2",
|
||||
"typescript-eslint": "8.67.0"
|
||||
"esbuild": "0.28.0",
|
||||
"esbuild-node-externals": "1.22.0",
|
||||
"eslint": "10.4.0",
|
||||
"eslint-config-next": "16.2.6",
|
||||
"postcss": "8.5.15",
|
||||
"prettier": "3.8.3",
|
||||
"react-email": "6.5.0",
|
||||
"tailwindcss": "4.3.0",
|
||||
"tsc-alias": "1.8.17",
|
||||
"tsx": "4.22.3",
|
||||
"typescript": "6.0.3",
|
||||
"typescript-eslint": "8.60.0"
|
||||
},
|
||||
"overrides": {
|
||||
"esbuild": "0.28.2",
|
||||
"esbuild": "0.28.0",
|
||||
"dompurify": "3.4.0",
|
||||
"postcss": "8.5.26"
|
||||
"postcss": "8.5.15"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ export const orgs = pgTable("orgs", {
|
||||
"settingsLogRetentionDaysAISessions"
|
||||
) // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
.notNull()
|
||||
.default(0),
|
||||
.default(7),
|
||||
sshCaPrivateKey: text("sshCaPrivateKey"), // Encrypted SSH CA private key (PEM format)
|
||||
sshCaPublicKey: text("sshCaPublicKey"), // SSH CA public key (OpenSSH format)
|
||||
isBillingOrg: boolean("isBillingOrg"),
|
||||
|
||||
@@ -443,11 +443,7 @@ export const configSchema = z
|
||||
disable_config_managed_domains: z.boolean().optional(),
|
||||
disable_product_help_banners: z.boolean().optional(),
|
||||
disable_enterprise_features: z.boolean().optional(),
|
||||
enable_acme_cert_sync: z.boolean().optional().default(true),
|
||||
disable_private_http_placeholder: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.default(false)
|
||||
enable_acme_cert_sync: z.boolean().optional().default(true)
|
||||
})
|
||||
.optional(),
|
||||
acme: z
|
||||
|
||||
@@ -48,7 +48,7 @@ export class PrivateConfig {
|
||||
|
||||
this.rawPrivateConfig = parsedPrivateConfig;
|
||||
|
||||
this.migrateDeprecatedConfig(privateEnvironment);
|
||||
this.migrateDeprecatedAcmeConfig(privateEnvironment);
|
||||
|
||||
process.env.BRANDING_HIDE_AUTH_LAYOUT_FOOTER =
|
||||
this.rawPrivateConfig.branding?.hide_auth_layout_footer === true
|
||||
@@ -152,12 +152,12 @@ export class PrivateConfig {
|
||||
return this.rawPrivateConfig;
|
||||
}
|
||||
|
||||
// `flags.enable_acme_cert_sync`, `flags.disable_private_http_placeholder`,
|
||||
// and `acme` used to live in the private config file. They now live in
|
||||
// the public config file. If an operator still has them set in the
|
||||
// private config and hasn't moved them over to the public config, pull
|
||||
// them forward so behavior doesn't silently change out from under them.
|
||||
private migrateDeprecatedConfig(privateEnvironment: any) {
|
||||
// `flags.enable_acme_cert_sync` and `acme` used to live in the private
|
||||
// config file. They now live in the public config file. If an operator
|
||||
// still has them set in the private config and hasn't moved them over to
|
||||
// the public config, pull them forward so behavior doesn't silently
|
||||
// change out from under them.
|
||||
private migrateDeprecatedAcmeConfig(privateEnvironment: any) {
|
||||
const publicEnvironment: any = readPublicConfigFile();
|
||||
const rawConfig: any = config.getRawConfig();
|
||||
|
||||
@@ -182,20 +182,6 @@ export class PrivateConfig {
|
||||
);
|
||||
rawConfig.acme = this.rawPrivateConfig.acme;
|
||||
}
|
||||
|
||||
if (
|
||||
privateEnvironment?.flags?.disable_private_http_placeholder !==
|
||||
undefined &&
|
||||
publicEnvironment?.flags?.disable_private_http_placeholder ===
|
||||
undefined
|
||||
) {
|
||||
logger.warn(
|
||||
"`flags.disable_private_http_placeholder` is deprecated in the private config file and has moved to the public config file. Using the value from the private config file for now, but please move it to the public config."
|
||||
);
|
||||
rawConfig.flags = rawConfig.flags ?? {};
|
||||
rawConfig.flags.disable_private_http_placeholder =
|
||||
this.rawPrivateConfig.flags.disable_private_http_placeholder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -115,13 +115,10 @@ export const privateConfigSchema = z
|
||||
// any value set here is migrated into the public config at
|
||||
// startup by PrivateConfig (server/private/lib/config.ts).
|
||||
enable_acme_cert_sync: z.boolean().optional(),
|
||||
// @deprecated Moved to the public config file as
|
||||
// `flags.disable_private_http_placeholder`
|
||||
// (server/lib/readConfigFile.ts). Kept here only so existing
|
||||
// private config files keep parsing; any value set here is
|
||||
// migrated into the public config at startup by PrivateConfig
|
||||
// (server/private/lib/config.ts).
|
||||
disable_private_http_placeholder: z.boolean().optional()
|
||||
disable_private_http_placeholder: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.default(false)
|
||||
})
|
||||
.optional()
|
||||
.prefault({}),
|
||||
|
||||
@@ -329,7 +329,8 @@ export async function getTraefikConfig(
|
||||
}[] = [];
|
||||
if (
|
||||
build == "enterprise" &&
|
||||
!config.getRawConfig().flags?.disable_private_http_placeholder
|
||||
!privateConfig.getRawPrivateConfig().flags
|
||||
.disable_private_http_placeholder
|
||||
) {
|
||||
// we dont want to do this on the cloud
|
||||
// Query siteResources in HTTP mode with SSL enabled and aliases - cert generation / HTTPS edge
|
||||
|
||||
@@ -6,7 +6,7 @@ import HttpCode from "@server/types/HttpCode";
|
||||
import { response } from "@server/lib/response";
|
||||
import { db } from "@server/db";
|
||||
import { passwordResetTokens, users } from "@server/db";
|
||||
import { eq, and } from "drizzle-orm";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { alphabet, generateRandomString, sha256 } from "oslo/crypto";
|
||||
import { createDate } from "oslo";
|
||||
import logger from "@server/logger";
|
||||
@@ -49,12 +49,7 @@ export async function requestPasswordReset(
|
||||
const existingUser = await db
|
||||
.select()
|
||||
.from(users)
|
||||
.where(
|
||||
and(
|
||||
eq(users.email, email),
|
||||
eq(users.type, UserType.Internal)
|
||||
)
|
||||
);
|
||||
.where(eq(users.email, email));
|
||||
|
||||
if (!existingUser || !existingUser.length) {
|
||||
await randomDelay(2000);
|
||||
|
||||
@@ -19,8 +19,6 @@ import { getPrivateResourceSettingsHref } from "@app/lib/launcherResourceAdminHr
|
||||
import axios from "axios";
|
||||
import { useStoredPageSize } from "@app/hooks/useStoredPageSize";
|
||||
import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert";
|
||||
import LogRetentionWarning from "@app/components/LogRetentionWarning";
|
||||
import { useOrgContext } from "@app/hooks/useOrgContext";
|
||||
import { usePaidStatus } from "@app/hooks/usePaidStatus";
|
||||
import { tierMatrix } from "@server/lib/billing/tierMatrix";
|
||||
import { logQueries } from "@app/lib/queries";
|
||||
@@ -34,7 +32,6 @@ export default function GeneralPage() {
|
||||
const t = useTranslations();
|
||||
const { orgId } = useParams();
|
||||
|
||||
const { org } = useOrgContext();
|
||||
const { isPaidUser } = usePaidStatus();
|
||||
|
||||
const [isExporting, startTransition] = useTransition();
|
||||
@@ -532,13 +529,6 @@ export default function GeneralPage() {
|
||||
|
||||
<PaidFeaturesAlert tiers={tierMatrix.accessLogs} />
|
||||
|
||||
{org.org.settingsLogRetentionDaysAccess === 0 && (
|
||||
<LogRetentionWarning
|
||||
orgId={orgId as string}
|
||||
logTypeLabel={t("accessLogs")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<LogDataTable
|
||||
columns={columns}
|
||||
data={rows}
|
||||
|
||||
@@ -3,10 +3,8 @@ import { ColumnFilterButton } from "@app/components/ColumnFilterButton";
|
||||
import { DateTimeValue } from "@app/components/DateTimePicker";
|
||||
import { LogDataTable } from "@app/components/LogDataTable";
|
||||
import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert";
|
||||
import LogRetentionWarning from "@app/components/LogRetentionWarning";
|
||||
import SettingsSectionTitle from "@app/components/SettingsSectionTitle";
|
||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||
import { useOrgContext } from "@app/hooks/useOrgContext";
|
||||
import { usePaidStatus } from "@app/hooks/usePaidStatus";
|
||||
import { useStoredPageSize } from "@app/hooks/useStoredPageSize";
|
||||
import { toast } from "@app/hooks/useToast";
|
||||
@@ -31,7 +29,6 @@ export default function GeneralPage() {
|
||||
const { orgId } = useParams();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const { org } = useOrgContext();
|
||||
const { isPaidUser } = usePaidStatus();
|
||||
|
||||
const [isExporting, startTransition] = useTransition();
|
||||
@@ -362,13 +359,6 @@ export default function GeneralPage() {
|
||||
|
||||
<PaidFeaturesAlert tiers={tierMatrix.actionLogs} />
|
||||
|
||||
{org.org.settingsLogRetentionDaysAction === 0 && (
|
||||
<LogRetentionWarning
|
||||
orgId={orgId as string}
|
||||
logTypeLabel={t("actionLogs")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<LogDataTable
|
||||
columns={columns}
|
||||
data={rows}
|
||||
|
||||
@@ -3,11 +3,9 @@ import { ColumnFilterButton } from "@app/components/ColumnFilterButton";
|
||||
import { DateTimeValue } from "@app/components/DateTimePicker";
|
||||
import { LogDataTable } from "@app/components/LogDataTable";
|
||||
import { AiSessionChatView } from "@app/components/AiSessionChatView";
|
||||
import LogRetentionWarning from "@app/components/LogRetentionWarning";
|
||||
import SettingsSectionTitle from "@app/components/SettingsSectionTitle";
|
||||
import { Button } from "@app/components/ui/button";
|
||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||
import { useOrgContext } from "@app/hooks/useOrgContext";
|
||||
import { toast } from "@app/hooks/useToast";
|
||||
import { createApiClient } from "@app/lib/api";
|
||||
import { useTranslations } from "next-intl";
|
||||
@@ -43,8 +41,6 @@ export default function AiSessionLogsPage() {
|
||||
const { orgId } = useParams();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const { org } = useOrgContext();
|
||||
|
||||
const [isExporting, startTransition] = useTransition();
|
||||
|
||||
const [currentPage, setCurrentPage] = useState<number>(0);
|
||||
@@ -645,13 +641,6 @@ export default function AiSessionLogsPage() {
|
||||
description={t("aiSessionLogsDescription")}
|
||||
/>
|
||||
|
||||
{org.org.settingsLogRetentionDaysAISessions === 0 && (
|
||||
<LogRetentionWarning
|
||||
orgId={orgId as string}
|
||||
logTypeLabel={t("aiSessionLogs")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<LogDataTable
|
||||
columns={columns}
|
||||
data={rows}
|
||||
|
||||
@@ -4,10 +4,8 @@ import { ColumnFilterButton } from "@app/components/ColumnFilterButton";
|
||||
import { DateTimeValue } from "@app/components/DateTimePicker";
|
||||
import { LogDataTable } from "@app/components/LogDataTable";
|
||||
import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert";
|
||||
import LogRetentionWarning from "@app/components/LogRetentionWarning";
|
||||
import SettingsSectionTitle from "@app/components/SettingsSectionTitle";
|
||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||
import { useOrgContext } from "@app/hooks/useOrgContext";
|
||||
import { usePaidStatus } from "@app/hooks/usePaidStatus";
|
||||
import { useStoredPageSize } from "@app/hooks/useStoredPageSize";
|
||||
import { toast } from "@app/hooks/useToast";
|
||||
@@ -49,7 +47,6 @@ export default function ConnectionLogsPage() {
|
||||
const { orgId } = useParams();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const { org } = useOrgContext();
|
||||
const { isPaidUser } = usePaidStatus();
|
||||
|
||||
const [isExporting, startTransition] = useTransition();
|
||||
@@ -585,13 +582,6 @@ export default function ConnectionLogsPage() {
|
||||
|
||||
<PaidFeaturesAlert tiers={tierMatrix.connectionLogs} />
|
||||
|
||||
{org.org.settingsLogRetentionDaysConnection === 0 && (
|
||||
<LogRetentionWarning
|
||||
orgId={orgId as string}
|
||||
logTypeLabel={t("connectionLogs")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<LogDataTable
|
||||
columns={columns}
|
||||
data={rows}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { verifySession } from "@app/lib/auth/verifySession";
|
||||
import { redirect } from "next/navigation";
|
||||
import { cache } from "react";
|
||||
import OrgProvider from "@app/providers/OrgProvider";
|
||||
import { getCachedOrg } from "@app/lib/api/getCachedOrg";
|
||||
|
||||
type GeneralSettingsProps = {
|
||||
children: React.ReactNode;
|
||||
@@ -13,8 +11,6 @@ export default async function GeneralSettingsPage({
|
||||
children,
|
||||
params
|
||||
}: GeneralSettingsProps) {
|
||||
const { orgId } = await params;
|
||||
|
||||
const getUser = cache(verifySession);
|
||||
const user = await getUser();
|
||||
|
||||
@@ -22,13 +18,5 @@ export default async function GeneralSettingsPage({
|
||||
redirect(`/`);
|
||||
}
|
||||
|
||||
let org = null;
|
||||
try {
|
||||
const res = await getCachedOrg(orgId);
|
||||
org = res.data.data;
|
||||
} catch {
|
||||
redirect(`/${orgId}`);
|
||||
}
|
||||
|
||||
return <OrgProvider org={org}>{children}</OrgProvider>;
|
||||
return children;
|
||||
}
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
import { ColumnFilter } from "@app/components/ColumnFilter";
|
||||
import { DateTimeValue } from "@app/components/DateTimePicker";
|
||||
import { LogDataTable } from "@app/components/LogDataTable";
|
||||
import LogRetentionWarning from "@app/components/LogRetentionWarning";
|
||||
import SettingsSectionTitle from "@app/components/SettingsSectionTitle";
|
||||
import { Button } from "@app/components/ui/button";
|
||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||
import { useOrgContext } from "@app/hooks/useOrgContext";
|
||||
import { toast } from "@app/hooks/useToast";
|
||||
import { createApiClient } from "@app/lib/api";
|
||||
import { useTranslations } from "next-intl";
|
||||
@@ -31,8 +29,6 @@ export default function GeneralPage() {
|
||||
const { orgId } = useParams();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const { org } = useOrgContext();
|
||||
|
||||
const [isExporting, startTransition] = useTransition();
|
||||
|
||||
const [currentPage, setCurrentPage] = useState<number>(0);
|
||||
@@ -718,13 +714,6 @@ export default function GeneralPage() {
|
||||
description={t("requestLogsDescription")}
|
||||
/>
|
||||
|
||||
{org.org.settingsLogRetentionDaysRequest === 0 && (
|
||||
<LogRetentionWarning
|
||||
orgId={orgId as string}
|
||||
logTypeLabel={t("requestLogs")}
|
||||
/>
|
||||
)}
|
||||
|
||||
<LogDataTable
|
||||
columns={columns}
|
||||
data={rows}
|
||||
|
||||
@@ -201,11 +201,7 @@ export default async function ResourceAuthPage(props: {
|
||||
// Inference resources never establish a resource session on the inference
|
||||
// host. Authenticated users retrieve their virtual API key on the dashboard.
|
||||
if (isInference && user) {
|
||||
if (host !== expectedHost) {
|
||||
redirect(`/auth/org?redirect=${encodeURIComponent(keysPath)}`);
|
||||
} else {
|
||||
redirect(keysPath);
|
||||
}
|
||||
redirect(keysPath);
|
||||
}
|
||||
|
||||
// After password/pincode/SSO, do not send the browser back to the
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
"use client";
|
||||
|
||||
import ActionBanner from "@app/components/ActionBanner";
|
||||
import { Button } from "@app/components/ui/button";
|
||||
import { ArrowRight, ShieldAlert } from "lucide-react";
|
||||
import { useTranslations } from "next-intl";
|
||||
import Link from "next/link";
|
||||
|
||||
type LogRetentionWarningProps = {
|
||||
orgId: string;
|
||||
logTypeLabel: string;
|
||||
};
|
||||
|
||||
export function LogRetentionWarning({
|
||||
orgId,
|
||||
logTypeLabel
|
||||
}: LogRetentionWarningProps) {
|
||||
const t = useTranslations();
|
||||
|
||||
return (
|
||||
<ActionBanner
|
||||
variant="warning"
|
||||
title={t("logRetentionDisabledWarningTitle")}
|
||||
titleIcon={<ShieldAlert className="w-5 h-5" />}
|
||||
description={t("logRetentionDisabledWarningDescription", {
|
||||
logType: logTypeLabel
|
||||
})}
|
||||
actions={
|
||||
<Link href={`/${orgId}/settings/general/security`}>
|
||||
<Button variant="outline" className="gap-2">
|
||||
{t("logRetentionDisabledWarningButton")}
|
||||
<ArrowRight className="size-4" />
|
||||
</Button>
|
||||
</Link>
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default LogRetentionWarning;
|
||||
Reference in New Issue
Block a user