feat: OCI CLI Terminal, Spanish i18n, language in My Settings
Terminal: - New /terminal page with Linux-style terminal UI (dark theme, title bar, prompt) - OCI Config selector — isolated per user (ownership check) - Tab autocomplete: parses oci --help dynamically, caches results, commands first - Command history (↑/↓) persisted in DB per user - Security: only 'oci' commands, blocks pipes/redirects/shell injection - Built-in commands: clear, history, help - Timeout 60s per command i18n: - Spanish (es.ts): 748+ keys, Latin American formal - Language selector moved from sidebar to My Settings (🇧🇷/🇺🇸/🇪🇸) - Auto-detect browser language (pt/es/en) Backend: - POST /api/terminal/execute — run OCI CLI with selected config - GET /api/terminal/completions — dynamic autocomplete from oci --help - GET /api/terminal/history — per-user command history - terminal_history table in SQLite
This commit is contained in:
@@ -20,6 +20,7 @@ const McpServersPage = lazy(() => import('@/pages/config/McpServersPage'));
|
||||
const AdbConfigPage = lazy(() => import('@/pages/config/AdbConfigPage'));
|
||||
const EmbeddingsPage = lazy(() => import('@/pages/config/EmbeddingsPage'));
|
||||
const EmbConsultPage = lazy(() => import('@/pages/config/EmbConsultPage'));
|
||||
const TerminalPage = lazy(() => import('@/pages/TerminalPage'));
|
||||
const UsersPage = lazy(() => import('@/pages/admin/UsersPage'));
|
||||
const MySettingsPage = lazy(() => import('@/pages/admin/MySettingsPage'));
|
||||
const OracleIamPage = lazy(() => import('@/pages/admin/OracleIamPage'));
|
||||
@@ -61,6 +62,7 @@ export default function App() {
|
||||
<Route path="/explorer" element={<ExplorerPage />} />
|
||||
<Route path="/oci-services" element={<OciServicesPage />} />
|
||||
<Route path="/reports" element={<ReportsPage />} />
|
||||
<Route path="/terminal" element={<TerminalPage />} />
|
||||
<Route path="/config/oci" element={<OciConfigPage />} />
|
||||
<Route path="/config/genai" element={<GenAiConfigPage />} />
|
||||
<Route path="/config/mcp" element={<McpServersPage />} />
|
||||
|
||||
Reference in New Issue
Block a user