From 9b65f847384db52d42e630aa539c72374a11e3c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Langa?= Date: Tue, 24 Jun 2025 22:40:45 +0200 Subject: [PATCH 1/2] Move /admin under /api/admin --- backend/app/routers/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py index f923404..fd13a95 100644 --- a/backend/app/routers/admin.py +++ b/backend/app/routers/admin.py @@ -59,7 +59,7 @@ class TokenAnalytics(BaseModel): never_used_tokens: int recent_active_tokens: int -router = APIRouter(prefix="/admin", tags=["admin"]) +router = APIRouter(prefix="/api/admin", tags=["admin"]) @router.get("/auth/github") From d6c0ce24fbca82c0eaafeb3d78827811748d8208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Langa?= Date: Tue, 24 Jun 2025 22:49:38 +0200 Subject: [PATCH 2/2] Prefix everything in backend with /api via API_BASE --- frontend/Dockerfile | 2 +- .../admin/components/AdminUsersManager.tsx | 2 +- .../app/admin/components/BinariesManager.tsx | 2 +- .../admin/components/EnvironmentsManager.tsx | 2 +- .../src/app/admin/components/RunsManager.tsx | 2 +- frontend/src/app/admin/page.tsx | 2 +- frontend/src/app/auth/callback/page.tsx | 2 +- frontend/src/lib/api.ts | 34 +++++++++---------- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 4695c9e..4750cb0 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -15,7 +15,7 @@ COPY --from=deps /app/node_modules ./node_modules COPY . . # Set the API base URL as a build argument -ARG NEXT_PUBLIC_API_BASE=http://localhost:8000 +ARG NEXT_PUBLIC_API_BASE=http://localhost:8000/api ENV NEXT_PUBLIC_API_BASE=$NEXT_PUBLIC_API_BASE # Build the application diff --git a/frontend/src/app/admin/components/AdminUsersManager.tsx b/frontend/src/app/admin/components/AdminUsersManager.tsx index 543b5b7..ee1901c 100644 --- a/frontend/src/app/admin/components/AdminUsersManager.tsx +++ b/frontend/src/app/admin/components/AdminUsersManager.tsx @@ -60,7 +60,7 @@ export default function AdminUsersManager() { }); const { toast } = useToast(); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; useEffect(() => { fetchUsers(); diff --git a/frontend/src/app/admin/components/BinariesManager.tsx b/frontend/src/app/admin/components/BinariesManager.tsx index 4e512d3..2027a83 100644 --- a/frontend/src/app/admin/components/BinariesManager.tsx +++ b/frontend/src/app/admin/components/BinariesManager.tsx @@ -42,7 +42,7 @@ export default function BinariesManager() { const [isDialogOpen, setIsDialogOpen] = useState(false); const { toast } = useToast(); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; const [formData, setFormData] = useState({ id: '', diff --git a/frontend/src/app/admin/components/EnvironmentsManager.tsx b/frontend/src/app/admin/components/EnvironmentsManager.tsx index e521ad7..820e056 100644 --- a/frontend/src/app/admin/components/EnvironmentsManager.tsx +++ b/frontend/src/app/admin/components/EnvironmentsManager.tsx @@ -39,7 +39,7 @@ export default function EnvironmentsManager() { const [isDialogOpen, setIsDialogOpen] = useState(false); const { toast } = useToast(); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; const [formData, setFormData] = useState({ id: '', diff --git a/frontend/src/app/admin/components/RunsManager.tsx b/frontend/src/app/admin/components/RunsManager.tsx index d9dd831..4f9567d 100644 --- a/frontend/src/app/admin/components/RunsManager.tsx +++ b/frontend/src/app/admin/components/RunsManager.tsx @@ -79,7 +79,7 @@ export default function RunsManager() { }); const { toast } = useToast(); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; const [filters, setFilters] = useState({ commit_sha: '', diff --git a/frontend/src/app/admin/page.tsx b/frontend/src/app/admin/page.tsx index c8bcf18..af3ea05 100644 --- a/frontend/src/app/admin/page.tsx +++ b/frontend/src/app/admin/page.tsx @@ -30,7 +30,7 @@ export default function AdminPage() { const [authenticating, setAuthenticating] = useState(false); const { toast } = useToast(); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; useEffect(() => { checkAuth(); diff --git a/frontend/src/app/auth/callback/page.tsx b/frontend/src/app/auth/callback/page.tsx index 5631f1c..6d805fd 100644 --- a/frontend/src/app/auth/callback/page.tsx +++ b/frontend/src/app/auth/callback/page.tsx @@ -20,7 +20,7 @@ function AuthCallbackContent() { ); const [errorMessage, setErrorMessage] = useState(''); - const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; + const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; useEffect(() => { const handleCallback = async () => { diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e80209d..2dfc7a4 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -12,7 +12,7 @@ import type { TokenAnalytics, } from './types'; -const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000'; +const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api'; class ApiError extends Error { constructor( @@ -98,12 +98,12 @@ async function fetchApi( export const api = { // Commit endpoints getCommits: (skip: number = 0, limit: number = 100) => - fetchApi(`/api/commits?skip=${skip}&limit=${limit}`), - getCommit: (sha: string) => fetchApi(`/api/commits/${sha}`), + fetchApi(`/commits?skip=${skip}&limit=${limit}`), + getCommit: (sha: string) => fetchApi(`/commits/${sha}`), // Binary endpoints - getBinaries: () => fetchApi(`/api/binaries?_t=${Date.now()}`), - getBinary: (id: string) => fetchApi(`/api/binaries/${id}`), + getBinaries: () => fetchApi(`/binaries?_t=${Date.now()}`), + getBinary: (id: string) => fetchApi(`/binaries/${id}`), getEnvironmentsForBinary: (binaryId: string) => fetchApi< Array<{ @@ -113,7 +113,7 @@ export const api = { run_count: number; commit_count: number; }> - >(`/api/binaries/${binaryId}/environments`), + >(`/binaries/${binaryId}/environments`), getCommitsForBinaryAndEnvironment: ( binaryId: string, environmentId: string @@ -127,19 +127,19 @@ export const api = { python_version: { major: number; minor: number; patch: number }; run_timestamp: string; }> - >(`/api/binaries/${binaryId}/environments/${environmentId}/commits`), + >(`/binaries/${binaryId}/environments/${environmentId}/commits`), // Environment endpoints - getEnvironments: () => fetchApi('/api/environments'), + getEnvironments: () => fetchApi('/environments'), getEnvironment: (id: string) => - fetchApi(`/api/environments/${id}`), + fetchApi(`/environments/${id}`), // Python version endpoints getPythonVersions: () => - fetchApi('/api/python-versions'), + fetchApi('/python-versions'), // Benchmark endpoints - getAllBenchmarks: () => fetchApi('/api/benchmarks'), + getAllBenchmarks: () => fetchApi('/benchmarks'), getBenchmarkNames: (params: { environment_id: string; binary_id: string; @@ -152,7 +152,7 @@ export const api = { queryParams.append('python_major', params.python_major.toString()); queryParams.append('python_minor', params.python_minor.toString()); - return fetchApi(`/api/benchmark-names?${queryParams.toString()}`); + return fetchApi(`/benchmark-names?${queryParams.toString()}`); }, // Diff endpoint @@ -168,7 +168,7 @@ export const api = { queryParams.append('environment_id', params.environment_id); queryParams.append('metric_key', params.metric_key); - return fetchApi(`/api/diff?${queryParams.toString()}`); + return fetchApi(`/diff?${queryParams.toString()}`); }, // Upload endpoint @@ -183,7 +183,7 @@ export const api = { }; benchmark_results: BenchmarkResultJson[]; }) => - fetchApi<{ success: boolean }>('/api/upload', { + fetchApi<{ success: boolean }>('/upload', { method: 'POST', body: JSON.stringify(data), }), @@ -209,7 +209,7 @@ export const api = { high_watermark_bytes: number; total_allocated_bytes: number; }> - >(`/api/trends?${queryParams.toString()}`); + >(`/trends?${queryParams.toString()}`); }, // Batch trends endpoint @@ -232,7 +232,7 @@ export const api = { total_allocated_bytes: number; }> >; - }>('/api/trends-batch', { + }>('/trends-batch', { method: 'POST', body: JSON.stringify({ trend_queries: trendQueries.map((query) => ({ @@ -247,7 +247,7 @@ export const api = { // Flamegraph endpoint getFlamegraph: (id: string) => - fetchApi<{ flamegraph_html: string }>(`/api/flamegraph/${id}`), + fetchApi<{ flamegraph_html: string }>(`/flamegraph/${id}`), // Token management endpoints getTokens: () => pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy