From f393a070926a4fae1eb335c719a0ff6f477925fb Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 22 Feb 2026 00:21:50 -0800 Subject: [PATCH] fix: correct alert-rules API paths and remove audit ACL plugin - Frontend alert-rules paths changed from /monitoring/alert-rules to /monitor/alerts/rules to match backend routes - Removed Kong ACL plugin on audit-routes (JWT auth is sufficient) Co-Authored-By: Claude Opus 4.6 --- .../(admin)/monitoring/alert-rules/[id]/page.tsx | 10 +++++----- .../app/(admin)/monitoring/alert-rules/page.tsx | 10 +++++----- .../use-cases/monitoring/create-alert-rule.ts | 8 ++++---- .../repositories/api-alert-rule.repository.ts | 16 ++++++++-------- packages/gateway/config/kong.yml | 5 ----- 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/it0-web-admin/src/app/(admin)/monitoring/alert-rules/[id]/page.tsx b/it0-web-admin/src/app/(admin)/monitoring/alert-rules/[id]/page.tsx index 8b33b5e..965a162 100644 --- a/it0-web-admin/src/app/(admin)/monitoring/alert-rules/[id]/page.tsx +++ b/it0-web-admin/src/app/(admin)/monitoring/alert-rules/[id]/page.tsx @@ -276,7 +276,7 @@ export default function AlertRuleDetailPage() { error, } = useQuery({ queryKey: [...queryKeys.alerts.rules(), id], - queryFn: () => apiClient(`/api/v1/monitor/alert-rules/${id}`), + queryFn: () => apiClient(`/api/v1/monitor/alerts/rules/${id}`), enabled: !!id, }); @@ -284,7 +284,7 @@ export default function AlertRuleDetailPage() { queryKey: [...queryKeys.alerts.rules(), id, 'events'], queryFn: () => apiClient( - `/api/v1/monitor/alert-rules/${id}/events?limit=20`, + `/api/v1/monitor/alerts/rules/${id}/events?limit=20`, ), enabled: !!id, }); @@ -294,7 +294,7 @@ export default function AlertRuleDetailPage() { // Mutations ------------------------------------------------------------ const updateMutation = useMutation({ mutationFn: (body: Record) => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PUT', body, }), @@ -307,7 +307,7 @@ export default function AlertRuleDetailPage() { const deleteMutation = useMutation({ mutationFn: () => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { method: 'DELETE' }), + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'DELETE' }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.alerts.rules() }); router.push('/monitoring/alert-rules'); @@ -316,7 +316,7 @@ export default function AlertRuleDetailPage() { const toggleMutation = useMutation({ mutationFn: (enabled: boolean) => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PATCH', body: { enabled }, }), diff --git a/it0-web-admin/src/app/(admin)/monitoring/alert-rules/page.tsx b/it0-web-admin/src/app/(admin)/monitoring/alert-rules/page.tsx index 5f120d9..40ec8a7 100644 --- a/it0-web-admin/src/app/(admin)/monitoring/alert-rules/page.tsx +++ b/it0-web-admin/src/app/(admin)/monitoring/alert-rules/page.tsx @@ -452,7 +452,7 @@ export default function AlertRulesPage() { // Queries -------------------------------------------------------------- const { data, isLoading, error } = useQuery({ queryKey: queryKeys.alerts.rules(), - queryFn: () => apiClient('/api/v1/monitor/alert-rules'), + queryFn: () => apiClient('/api/v1/monitor/alerts/rules'), }); const rules = data?.data ?? []; @@ -460,7 +460,7 @@ export default function AlertRulesPage() { // Mutations ------------------------------------------------------------ const createMutation = useMutation({ mutationFn: (body: Record) => - apiClient('/api/v1/monitor/alert-rules', { method: 'POST', body }), + apiClient('/api/v1/monitor/alerts/rules', { method: 'POST', body }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.alerts.rules() }); closeDialog(); @@ -469,7 +469,7 @@ export default function AlertRulesPage() { const updateMutation = useMutation({ mutationFn: ({ id, body }: { id: string; body: Record }) => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { method: 'PUT', body }), + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PUT', body }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.alerts.rules() }); closeDialog(); @@ -478,7 +478,7 @@ export default function AlertRulesPage() { const deleteMutation = useMutation({ mutationFn: (id: string) => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { method: 'DELETE' }), + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'DELETE' }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.alerts.rules() }); setDeleteTarget(null); @@ -487,7 +487,7 @@ export default function AlertRulesPage() { const toggleMutation = useMutation({ mutationFn: ({ id, enabled }: { id: string; enabled: boolean }) => - apiClient(`/api/v1/monitor/alert-rules/${id}`, { + apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PATCH', body: { enabled }, }), diff --git a/it0-web-admin/src/application/use-cases/monitoring/create-alert-rule.ts b/it0-web-admin/src/application/use-cases/monitoring/create-alert-rule.ts index 9e5229b..873618a 100644 --- a/it0-web-admin/src/application/use-cases/monitoring/create-alert-rule.ts +++ b/it0-web-admin/src/application/use-cases/monitoring/create-alert-rule.ts @@ -4,27 +4,27 @@ import type { AlertRule } from '@/domain/entities/alert-rule'; export async function createAlertRule( rule: Omit, ): Promise { - return apiClient('/api/v1/monitoring/alert-rules', { + return apiClient('/api/v1/monitor/alerts/rules', { method: 'POST', body: rule, }); } export async function updateAlertRule(id: string, data: Partial): Promise { - return apiClient(`/api/v1/monitoring/alert-rules/${id}`, { + return apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PUT', body: data, }); } export async function deleteAlertRule(id: string): Promise { - await apiClient(`/api/v1/monitoring/alert-rules/${id}`, { + await apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'DELETE', }); } export async function toggleAlertRule(id: string, enabled: boolean): Promise { - await apiClient(`/api/v1/monitoring/alert-rules/${id}/toggle`, { + await apiClient(`/api/v1/monitor/alerts/rules/${id}/toggle`, { method: 'PATCH', body: { enabled }, }); diff --git a/it0-web-admin/src/infrastructure/repositories/api-alert-rule.repository.ts b/it0-web-admin/src/infrastructure/repositories/api-alert-rule.repository.ts index 28d8064..ef065a3 100644 --- a/it0-web-admin/src/infrastructure/repositories/api-alert-rule.repository.ts +++ b/it0-web-admin/src/infrastructure/repositories/api-alert-rule.repository.ts @@ -4,35 +4,35 @@ import type { AlertRule, AlertEvent } from '@/domain/entities/alert-rule'; export const apiAlertRuleRepository: AlertRuleRepository = { async listRules() { - return apiClient('/api/v1/monitoring/alert-rules'); + return apiClient('/api/v1/monitor/alerts/rules'); }, async getRuleById(id) { - return apiClient(`/api/v1/monitoring/alert-rules/${id}`); + return apiClient(`/api/v1/monitor/alerts/rules/${id}`); }, async createRule(rule) { - return apiClient('/api/v1/monitoring/alert-rules', { + return apiClient('/api/v1/monitor/alerts/rules', { method: 'POST', body: rule, }); }, async updateRule(id, data) { - return apiClient(`/api/v1/monitoring/alert-rules/${id}`, { + return apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'PUT', body: data, }); }, async removeRule(id) { - await apiClient(`/api/v1/monitoring/alert-rules/${id}`, { + await apiClient(`/api/v1/monitor/alerts/rules/${id}`, { method: 'DELETE', }); }, async toggleRule(id, enabled) { - await apiClient(`/api/v1/monitoring/alert-rules/${id}/toggle`, { + await apiClient(`/api/v1/monitor/alerts/rules/${id}/toggle`, { method: 'PATCH', body: { enabled }, }); @@ -40,11 +40,11 @@ export const apiAlertRuleRepository: AlertRuleRepository = { async listEvents(params) { const query = params ? '?' + new URLSearchParams(params).toString() : ''; - return apiClient(`/api/v1/monitoring/alert-events${query}`); + return apiClient(`/api/v1/monitor/alerts/events${query}`); }, async acknowledgeEvent(id) { - await apiClient(`/api/v1/monitoring/alert-events/${id}/acknowledge`, { + await apiClient(`/api/v1/monitor/alerts/events/${id}/acknowledge`, { method: 'POST', }); }, diff --git a/packages/gateway/config/kong.yml b/packages/gateway/config/kong.yml index e610ff3..de6d8bc 100644 --- a/packages/gateway/config/kong.yml +++ b/packages/gateway/config/kong.yml @@ -203,8 +203,3 @@ plugins: policy: redis redis_host: redis - - name: acl - route: audit-routes - config: - allow: - - admin