From 06c719f0dde7d85a07bb4925ddf7956142208227 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Tue, 14 Apr 2026 18:22:28 +0200 Subject: [PATCH] feat: add sensitive keys API query hooks --- ui/src/api/queries/admin/sensitive-keys.ts | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 ui/src/api/queries/admin/sensitive-keys.ts diff --git a/ui/src/api/queries/admin/sensitive-keys.ts b/ui/src/api/queries/admin/sensitive-keys.ts new file mode 100644 index 00000000..153be9f8 --- /dev/null +++ b/ui/src/api/queries/admin/sensitive-keys.ts @@ -0,0 +1,44 @@ +import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; +import { adminFetch } from './admin-api'; + +// ── Types ────────────────────────────────────────────────────────────── + +export interface SensitiveKeysConfig { + keys: string[]; +} + +export interface SensitiveKeysResponse { + keys: string[]; + pushResult: { + success: boolean; + total: number; + responded: number; + responses: { agentId: string; status: string; message: string | null }[]; + timedOut: string[]; + } | null; +} + +// ── Query Hooks ──────────────────────────────────────────────────────── + +export function useSensitiveKeys() { + return useQuery({ + queryKey: ['admin', 'sensitive-keys'], + queryFn: () => adminFetch('/sensitive-keys'), + }); +} + +// ── Mutation Hooks ───────────────────────────────────────────────────── + +export function useUpdateSensitiveKeys() { + const qc = useQueryClient(); + return useMutation({ + mutationFn: ({ keys, pushToAgents }: { keys: string[]; pushToAgents: boolean }) => + adminFetch(`/sensitive-keys?pushToAgents=${pushToAgents}`, { + method: 'PUT', + body: JSON.stringify({ keys }), + }), + onSuccess: () => { + qc.invalidateQueries({ queryKey: ['admin', 'sensitive-keys'] }); + }, + }); +}