feat(security): implement decision and ruleset management with logging and retrieval

This commit is contained in:
GitHub Actions
2025-12-01 18:23:15 +00:00
parent 53765afd35
commit 570d904019
11 changed files with 375 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { getSecurityStatus, getSecurityConfig, updateSecurityConfig, generateBreakGlassToken, enableCerberus, disableCerberus } from '../api/security'
import { getSecurityStatus, getSecurityConfig, updateSecurityConfig, generateBreakGlassToken, enableCerberus, disableCerberus, getDecisions, createDecision, getRuleSets, upsertRuleSet } from '../api/security'
import toast from 'react-hot-toast'
export function useSecurityStatus() {
@@ -29,6 +29,30 @@ export function useGenerateBreakGlassToken() {
return useMutation({ mutationFn: () => generateBreakGlassToken() })
}
export function useDecisions(limit = 50) {
return useQuery({ queryKey: ['securityDecisions', limit], queryFn: () => getDecisions(limit) })
}
export function useCreateDecision() {
const qc = useQueryClient()
return useMutation({
mutationFn: (payload: any) => createDecision(payload),
onSuccess: () => qc.invalidateQueries({ queryKey: ['securityDecisions'] }),
})
}
export function useRuleSets() {
return useQuery({ queryKey: ['securityRulesets'], queryFn: () => getRuleSets() })
}
export function useUpsertRuleSet() {
const qc = useQueryClient()
return useMutation({
mutationFn: (payload: any) => upsertRuleSet(payload),
onSuccess: () => qc.invalidateQueries({ queryKey: ['securityRulesets'] }),
})
}
export function useEnableCerberus() {
const qc = useQueryClient()
return useMutation({