Skip to content

Commit 55652b6

Browse files
authored
Move /admin under /api and prefix everything in backend with /api via API_BASE (#7)
1 parent 63201eb commit 55652b6

File tree

9 files changed

+25
-25
lines changed

9 files changed

+25
-25
lines changed

backend/app/routers/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class TokenAnalytics(BaseModel):
5959
never_used_tokens: int
6060
recent_active_tokens: int
6161

62-
router = APIRouter(prefix="/admin", tags=["admin"])
62+
router = APIRouter(prefix="/api/admin", tags=["admin"])
6363

6464

6565
@router.get("/auth/github")

frontend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ COPY --from=deps /app/node_modules ./node_modules
1515
COPY . .
1616

1717
# Set the API base URL as a build argument
18-
ARG NEXT_PUBLIC_API_BASE=http://localhost:8000
18+
ARG NEXT_PUBLIC_API_BASE=http://localhost:8000/api
1919
ENV NEXT_PUBLIC_API_BASE=$NEXT_PUBLIC_API_BASE
2020

2121
# Build the application

frontend/src/app/admin/components/AdminUsersManager.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default function AdminUsersManager() {
6060
});
6161
const { toast } = useToast();
6262

63-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
63+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
6464

6565
useEffect(() => {
6666
fetchUsers();

frontend/src/app/admin/components/BinariesManager.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default function BinariesManager() {
4242
const [isDialogOpen, setIsDialogOpen] = useState(false);
4343
const { toast } = useToast();
4444

45-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
45+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
4646

4747
const [formData, setFormData] = useState({
4848
id: '',

frontend/src/app/admin/components/EnvironmentsManager.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export default function EnvironmentsManager() {
3939
const [isDialogOpen, setIsDialogOpen] = useState(false);
4040
const { toast } = useToast();
4141

42-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
42+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
4343

4444
const [formData, setFormData] = useState({
4545
id: '',

frontend/src/app/admin/components/RunsManager.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export default function RunsManager() {
7979
});
8080
const { toast } = useToast();
8181

82-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
82+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
8383

8484
const [filters, setFilters] = useState({
8585
commit_sha: '',

frontend/src/app/admin/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default function AdminPage() {
3030
const [authenticating, setAuthenticating] = useState(false);
3131
const { toast } = useToast();
3232

33-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
33+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
3434

3535
useEffect(() => {
3636
checkAuth();

frontend/src/app/auth/callback/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function AuthCallbackContent() {
2020
);
2121
const [errorMessage, setErrorMessage] = useState('');
2222

23-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
23+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
2424

2525
useEffect(() => {
2626
const handleCallback = async () => {

frontend/src/lib/api.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import type {
1212
TokenAnalytics,
1313
} from './types';
1414

15-
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000';
15+
const API_BASE = process.env.NEXT_PUBLIC_API_BASE || 'http://localhost:8000/api';
1616

1717
class ApiError extends Error {
1818
constructor(
@@ -98,12 +98,12 @@ async function fetchApi<T>(
9898
export const api = {
9999
// Commit endpoints
100100
getCommits: (skip: number = 0, limit: number = 100) =>
101-
fetchApi<Commit[]>(`/api/commits?skip=${skip}&limit=${limit}`),
102-
getCommit: (sha: string) => fetchApi<Commit>(`/api/commits/${sha}`),
101+
fetchApi<Commit[]>(`/commits?skip=${skip}&limit=${limit}`),
102+
getCommit: (sha: string) => fetchApi<Commit>(`/commits/${sha}`),
103103

104104
// Binary endpoints
105-
getBinaries: () => fetchApi<Binary[]>(`/api/binaries?_t=${Date.now()}`),
106-
getBinary: (id: string) => fetchApi<Binary>(`/api/binaries/${id}`),
105+
getBinaries: () => fetchApi<Binary[]>(`/binaries?_t=${Date.now()}`),
106+
getBinary: (id: string) => fetchApi<Binary>(`/binaries/${id}`),
107107
getEnvironmentsForBinary: (binaryId: string) =>
108108
fetchApi<
109109
Array<{
@@ -113,7 +113,7 @@ export const api = {
113113
run_count: number;
114114
commit_count: number;
115115
}>
116-
>(`/api/binaries/${binaryId}/environments`),
116+
>(`/binaries/${binaryId}/environments`),
117117
getCommitsForBinaryAndEnvironment: (
118118
binaryId: string,
119119
environmentId: string
@@ -127,19 +127,19 @@ export const api = {
127127
python_version: { major: number; minor: number; patch: number };
128128
run_timestamp: string;
129129
}>
130-
>(`/api/binaries/${binaryId}/environments/${environmentId}/commits`),
130+
>(`/binaries/${binaryId}/environments/${environmentId}/commits`),
131131

132132
// Environment endpoints
133-
getEnvironments: () => fetchApi<Environment[]>('/api/environments'),
133+
getEnvironments: () => fetchApi<Environment[]>('/environments'),
134134
getEnvironment: (id: string) =>
135-
fetchApi<Environment>(`/api/environments/${id}`),
135+
fetchApi<Environment>(`/environments/${id}`),
136136

137137
// Python version endpoints
138138
getPythonVersions: () =>
139-
fetchApi<PythonVersionFilterOption[]>('/api/python-versions'),
139+
fetchApi<PythonVersionFilterOption[]>('/python-versions'),
140140

141141
// Benchmark endpoints
142-
getAllBenchmarks: () => fetchApi<string[]>('/api/benchmarks'),
142+
getAllBenchmarks: () => fetchApi<string[]>('/benchmarks'),
143143
getBenchmarkNames: (params: {
144144
environment_id: string;
145145
binary_id: string;
@@ -152,7 +152,7 @@ export const api = {
152152
queryParams.append('python_major', params.python_major.toString());
153153
queryParams.append('python_minor', params.python_minor.toString());
154154

155-
return fetchApi<string[]>(`/api/benchmark-names?${queryParams.toString()}`);
155+
return fetchApi<string[]>(`/benchmark-names?${queryParams.toString()}`);
156156
},
157157

158158
// Diff endpoint
@@ -168,7 +168,7 @@ export const api = {
168168
queryParams.append('environment_id', params.environment_id);
169169
queryParams.append('metric_key', params.metric_key);
170170

171-
return fetchApi<DiffTableRow[]>(`/api/diff?${queryParams.toString()}`);
171+
return fetchApi<DiffTableRow[]>(`/diff?${queryParams.toString()}`);
172172
},
173173

174174
// Upload endpoint
@@ -183,7 +183,7 @@ export const api = {
183183
};
184184
benchmark_results: BenchmarkResultJson[];
185185
}) =>
186-
fetchApi<{ success: boolean }>('/api/upload', {
186+
fetchApi<{ success: boolean }>('/upload', {
187187
method: 'POST',
188188
body: JSON.stringify(data),
189189
}),
@@ -209,7 +209,7 @@ export const api = {
209209
high_watermark_bytes: number;
210210
total_allocated_bytes: number;
211211
}>
212-
>(`/api/trends?${queryParams.toString()}`);
212+
>(`/trends?${queryParams.toString()}`);
213213
},
214214

215215
// Batch trends endpoint
@@ -232,7 +232,7 @@ export const api = {
232232
total_allocated_bytes: number;
233233
}>
234234
>;
235-
}>('/api/trends-batch', {
235+
}>('/trends-batch', {
236236
method: 'POST',
237237
body: JSON.stringify({
238238
trend_queries: trendQueries.map((query) => ({
@@ -247,7 +247,7 @@ export const api = {
247247

248248
// Flamegraph endpoint
249249
getFlamegraph: (id: string) =>
250-
fetchApi<{ flamegraph_html: string }>(`/api/flamegraph/${id}`),
250+
fetchApi<{ flamegraph_html: string }>(`/flamegraph/${id}`),
251251

252252
// Token management endpoints
253253
getTokens: () =>

0 commit comments

Comments
 (0)