feat: add include_rules and include_flow_context query parameters to workload insights endpoint for conditional rule/policy matching

Add include_rules boolean parameter to conditionally fetch active firewall rules (defaults to false), add include_flow_context boolean parameter to conditionally compute matching firewall rules and policies for each flow (defaults to false), rename traffic parameter to traffic_mode with alias for backward compatibility, update flow decision logic to return "observed" when
This commit is contained in:
2026-07-10 08:39:43 +02:00
parent 65bc7fad67
commit 07cd534254
2 changed files with 28 additions and 23 deletions
+4 -4
View File
@@ -453,7 +453,7 @@ export function Workloads() {
const selected = selectedId || workloads.data?.[0]?.id || "";
const insight = useQuery({
queryKey: ["workload-insight", selected, "summary"],
queryFn: () => api<WorkloadInsight>(`/vms/${selected}/insights?traffic=summary`),
queryFn: () => api<WorkloadInsight>(`/vms/${selected}/insights?traffic=summary&include_rules=false&include_flow_context=false`),
enabled: Boolean(selected),
});
const traffic = useMemo(() => summarizeTraffic(insight.data?.traffic ?? []), [insight.data?.traffic]);
@@ -540,8 +540,8 @@ export function Workloads() {
export function WorkloadDetail() {
const { workloadId } = useParams();
const insight = useQuery({
queryKey: ["workload-insight", workloadId, "summary"],
queryFn: () => api<WorkloadInsight>(`/vms/${workloadId}/insights?traffic=summary`),
queryKey: ["workload-insight", workloadId, "summary", "rules"],
queryFn: () => api<WorkloadInsight>(`/vms/${workloadId}/insights?traffic=summary&include_rules=true&include_flow_context=true`),
enabled: Boolean(workloadId),
});
const traffic = useMemo(() => summarizeTraffic(insight.data?.traffic ?? []), [insight.data?.traffic]);
@@ -639,7 +639,7 @@ export function WorkloadFlows() {
const [page, setPage] = useState(1);
const insight = useQuery({
queryKey: ["workload-insight", workloadId, "full"],
queryFn: () => api<WorkloadInsight>(`/vms/${workloadId}/insights?traffic=full`),
queryFn: () => api<WorkloadInsight>(`/vms/${workloadId}/insights?traffic=full&include_rules=false&include_flow_context=false`),
enabled: Boolean(workloadId),
});
const traffic = useMemo(() => summarizeTraffic(insight.data?.traffic ?? []), [insight.data?.traffic]);