/ easyshell-web / src / api / host.ts
host.ts
 1  import request from './request';
 2  import type { ApiResponse, Agent, DashboardStats, TagVO, Job, MetricSnapshot, HostSoftwareInventory } from '../types';
 3  
 4  export function getHostList(): Promise<ApiResponse<Agent[]>> {
 5    return request.get('/v1/host/list');
 6  }
 7  
 8  export function getHostDetail(agentId: string): Promise<ApiResponse<Agent>> {
 9    return request.get(`/v1/host/${agentId}`);
10  }
11  
12  export function getDashboardStats(): Promise<ApiResponse<DashboardStats>> {
13    return request.get('/v1/host/dashboard/stats');
14  }
15  
16  export function getAgentTags(agentId: string): Promise<ApiResponse<TagVO[]>> {
17    return request.get(`/v1/host/${agentId}/tags`);
18  }
19  
20  export function getAgentJobs(agentId: string): Promise<ApiResponse<Job[]>> {
21    return request.get(`/v1/task/agent/${agentId}/jobs`);
22  }
23  
24  export function getAgentMetrics(agentId: string, range: string): Promise<ApiResponse<MetricSnapshot[]>> {
25    return request.get(`/v1/host/${agentId}/metrics`, { params: { range } });
26  }
27  
28  export function triggerDetection(agentId: string): Promise<ApiResponse<string>> {
29    return request.post(`/v1/hosts/${agentId}/detect`);
30  }
31  
32  export function parseDetection(agentId: string, taskId: string): Promise<ApiResponse<HostSoftwareInventory[]>> {
33    return request.post(`/v1/hosts/${agentId}/detect/${taskId}/parse`);
34  }
35  
36  export function getHostSoftware(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> {
37    return request.get(`/v1/hosts/${agentId}/software`);
38  }
39  
40  export function getDockerContainers(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> {
41    return request.get(`/v1/hosts/${agentId}/docker/containers`);
42  }
43  
44  export function getHostInventory(agentId: string): Promise<ApiResponse<HostSoftwareInventory[]>> {
45    return request.get(`/v1/hosts/${agentId}/inventory`);
46  }
47  
48  
49  export function deleteHost(agentId: string): Promise<ApiResponse<void>> {
50    return request.delete(`/v1/host/${agentId}`);
51  }
52  
53  export function deleteCredential(id: number): Promise<ApiResponse<void>> {
54    return request.delete(`/v1/host/credential/${id}`);
55  }