diff --git a/fastapi_server/front_apis.py b/fastapi_server/front_apis.py index daf0ac7..67e9d24 100644 --- a/fastapi_server/front_apis.py +++ b/fastapi_server/front_apis.py @@ -128,7 +128,7 @@ def _mask_auth_key(value: str) -> str: return "" if len(value) <= 10: return value - return f"{value[:6]}...{value[-4:]}" + return f"{value[:5]}...{value[-5:]}" def _prune_stopped_pipelines() -> None: stale_ids: List[str] = [] diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 95e57f4..f1bf9ef 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -74,6 +74,17 @@ function parseToolCsv(value: string): string[] { return out; } +function maskSecretPreview(value: string): string { + const trimmed = value.trim(); + if (!trimmed) { + return ""; + } + if (trimmed.length <= 10) { + return trimmed; + } + return `${trimmed.slice(0, 5)}...${trimmed.slice(-5)}`; +} + function getGraphArchImage(graphId: string): string | null { const normalizedGraphId = graphId.trim().toLowerCase(); for (const [path, source] of Object.entries(GRAPH_ARCH_IMAGE_MODULES)) { @@ -674,6 +685,9 @@ export default function App() { placeholder="Enter provider API key" disabled={busy} /> + {editor.apiKey ? ( + Preview: {maskSecretPreview(editor.apiKey)} + ) : null}