Files
Charon/frontend/src/hooks/useConsoleEnrollment.ts
GitHub Actions 45102ae312 feat: Add CrowdSec console re-enrollment support
- Add logging when enrollment is silently skipped due to existing state
- Add DELETE /admin/crowdsec/console/enrollment endpoint to clear state
- Add re-enrollment UI section with guidance and crowdsec.net link
- Add useClearConsoleEnrollment hook for state clearing

Fixes silent idempotency bug where backend returned 200 OK without
actually executing cscli when status was already enrolled.
2025-12-16 03:39:08 +00:00

28 lines
949 B
TypeScript

import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { enrollConsole, getConsoleStatus, clearConsoleEnrollment, type ConsoleEnrollPayload, type ConsoleEnrollmentStatus } from '../api/consoleEnrollment'
export function useConsoleStatus(enabled = true) {
return useQuery<ConsoleEnrollmentStatus>({ queryKey: ['crowdsec-console-status'], queryFn: getConsoleStatus, enabled })
}
export function useEnrollConsole() {
const qc = useQueryClient()
return useMutation({
mutationFn: (payload: ConsoleEnrollPayload) => enrollConsole(payload),
onSuccess: () => {
qc.invalidateQueries({ queryKey: ['crowdsec-console-status'] })
},
})
}
export function useClearConsoleEnrollment() {
const queryClient = useQueryClient()
return useMutation({
mutationFn: clearConsoleEnrollment,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['crowdsec-console-status'] })
},
})
}