Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add scans data as part of node metadata api #994

Merged
merged 2 commits into from
Apr 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 95 additions & 84 deletions deepfence_server/model/lookup.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,6 @@ func (kc KubernetesCluster) id() string {
return kc.ID
}

type RegularScanStatus struct {
VulnerabilitiesCount int64 `json:"vulnerabilities_count" required:"true"`
VulnerabilityScanStatus string `json:"vulnerability_scan_status" required:"true"`
VulnerabilityLatestScanId string `json:"vulnerability_latest_scan_id" required:"true"`
SecretsCount int64 `json:"secrets_count" required:"true"`
SecretScanStatus string `json:"secret_scan_status" required:"true"`
SecretLatestScanId string `json:"secret_latest_scan" required:"true"`
MalwaresCount int64 `json:"malwares_count" required:"true"`
MalwareScanStatus string `json:"malware_scan_status" required:"true"`
MalwareLatestScanId string `json:"malware_latest_scan_id" required:"true"`
CompliancesCount int64 `json:"compliances_count" required:"true"`
ComplianceScanStatus string `json:"compliance_scan_status" required:"true"`
ComplianceLatestScanId string `json:"compliance_latest_scan_id" required:"true"`
CloudCompliancesCount int64 `json:"cloud_compliances_count" required:"true"`
CloudComplianceScanStatus string `json:"cloud_compliance_scan_status" required:"true"`
CloudComplianceLatestScanId string `json:"cloud_compliance_latest scan_id" required:"true"`
}

type BasicNode struct {
NodeId string `json:"node_id" required:"true"`
Name string `json:"name" required:"true"`
Expand All @@ -66,37 +48,48 @@ type BasicNode struct {
}

type Host struct {
ID string `json:"node_id" required:"true"`
HostName string `json:"host_name" required:"true"`
NodeName string `json:"node_name" required:"true"`
Containers []Container `json:"containers" required:"true"`
Processes []Process `json:"processes" required:"true"`
Pods []Pod `json:"pods" required:"true"`
ContainerImages []ContainerImage `json:"container_images" required:"true"`
InterfaceNames []string `json:"interface_names" required:"true"`
InterfaceIps []string `json:"interface_ips" required:"true"`
KernelVersion string `json:"kernel_version" required:"true"`
Uptime int `json:"uptime" required:"true"`
Version string `json:"version" required:"true"`
AgentRunning bool `json:"agent_running" required:"true"`
IsConsoleVm bool `json:"is_console_vm" required:"true"`
LocalCIDRs []string `json:"local_cidr" required:"true"`
Os string `json:"os" required:"true"`
LocalNetworks []string `json:"local_networks,omitempty"`
InstanceID string `json:"instance_id,omitempty"`
CloudProvider string `json:"cloud_provider" required:"true"`
InstanceType string `json:"instance_type,omitempty"`
PublicIP []string `json:"public_ip,omitempty"`
PrivateIP []string `json:"private_ip,omitempty"`
AvailabilityZone string `json:"availability_zone,omitempty"`
KernelId string `json:"kernel_id,omitempty"`
CloudRegion string `json:"cloud_region" required:"true"`
ResourceGroup string `json:"resource_group,omitempty"`
CpuMax float64 `json:"cpu_max,omitempty"`
CpuUsage float64 `json:"cpu_usage,omitempty"`
MemoryMax int64 `json:"memory_max,omitempty"`
MemoryUsage int64 `json:"memory_usage,omitempty"`
RegularScanStatus
ID string `json:"node_id" required:"true"`
HostName string `json:"host_name" required:"true"`
NodeName string `json:"node_name" required:"true"`
Containers []Container `json:"containers" required:"true"`
Processes []Process `json:"processes" required:"true"`
Pods []Pod `json:"pods" required:"true"`
ContainerImages []ContainerImage `json:"container_images" required:"true"`
InterfaceNames []string `json:"interface_names" required:"true"`
InterfaceIps []string `json:"interface_ips" required:"true"`
KernelVersion string `json:"kernel_version" required:"true"`
Uptime int `json:"uptime" required:"true"`
Version string `json:"version" required:"true"`
AgentRunning bool `json:"agent_running" required:"true"`
IsConsoleVm bool `json:"is_console_vm" required:"true"`
LocalCIDRs []string `json:"local_cidr" required:"true"`
Os string `json:"os" required:"true"`
LocalNetworks []string `json:"local_networks" required:"true"`
InstanceID string `json:"instance_id" required:"true"`
CloudProvider string `json:"cloud_provider" required:"true"`
InstanceType string `json:"instance_type" required:"true"`
PublicIP []string `json:"public_ip" required:"true"`
PrivateIP []string `json:"private_ip" required:"true"`
AvailabilityZone string `json:"availability_zone" required:"true"`
KernelId string `json:"kernel_id" required:"true"`
CloudRegion string `json:"cloud_region" required:"true"`
ResourceGroup string `json:"resource_group" required:"true"`
CpuMax float64 `json:"cpu_max" required:"true"`
CpuUsage float64 `json:"cpu_usage" required:"true"`
MemoryMax int64 `json:"memory_max" required:"true"`
MemoryUsage int64 `json:"memory_usage" required:"true"`
VulnerabilitiesCount int64 `json:"vulnerabilities_count" required:"true"`
VulnerabilityScanStatus string `json:"vulnerability_scan_status" required:"true"`
VulnerabilityLatestScanId string `json:"vulnerability_latest_scan_id" required:"true"`
SecretsCount int64 `json:"secrets_count" required:"true"`
SecretScanStatus string `json:"secret_scan_status" required:"true"`
SecretLatestScanId string `json:"secret_latest_scan_id" required:"true"`
MalwaresCount int64 `json:"malwares_count" required:"true"`
MalwareScanStatus string `json:"malware_scan_status" required:"true"`
MalwareLatestScanId string `json:"malware_latest_scan_id" required:"true"`
CompliancesCount int64 `json:"compliances_count" required:"true"`
ComplianceScanStatus string `json:"compliance_scan_status" required:"true"`
ComplianceLatestScanId string `json:"compliance_latest_scan_id" required:"true"`
}

func (Host) NodeType() string {
Expand Down Expand Up @@ -165,9 +158,9 @@ type Pod struct {
Processes []Process `json:"processes" required:"true"`
KubernetesClusterName string `json:"kubernetes_cluster_name" required:"true"`
KubernetesClusterId string `json:"kubernetes_cluster_id" required:"true"`
KubernetesState string `json:"kubernetes_state"`
KubernetesIP string `json:"kubernetes_ip"`
KubernetesIsInHostNetwork string `json:"kubernetes_is_in_host_network"`
KubernetesState string `json:"kubernetes_state" required:"true"`
KubernetesIP string `json:"kubernetes_ip" required:"true"`
KubernetesIsInHostNetwork string `json:"kubernetes_is_in_host_network" required:"true"`
}

func (Pod) NodeType() string {
Expand Down Expand Up @@ -198,20 +191,28 @@ type Container struct {
Processes []Process `json:"processes" required:"true"`
DockerLabels Metadata `json:"docker_labels" required:"true" nested_json:"true"`
HostName string `json:"host_name" required:"true"`
DockerContainerCommand string `json:"docker_container_command,omitempty"`
DockerContainerState string `json:"docker_container_state,omitempty"`
DockerContainerStateHuman string `json:"docker_container_state_human,omitempty"`
DockerContainerNetworkMode string `json:"docker_container_network_mode,omitempty"`
DockerContainerNetworks string `json:"docker_container_networks,omitempty"`
DockerContainerIps []string `json:"docker_container_ips,omitempty"`
DockerContainerCreated string `json:"docker_container_created,omitempty"`
DockerContainerPorts string `json:"docker_container_ports,omitempty"`
DockerContainerCommand string `json:"docker_container_command" required:"true"`
DockerContainerState string `json:"docker_container_state" required:"true"`
DockerContainerStateHuman string `json:"docker_container_state_human" required:"true"`
DockerContainerNetworkMode string `json:"docker_container_network_mode" required:"true"`
DockerContainerNetworks string `json:"docker_container_networks" required:"true"`
DockerContainerIps []string `json:"docker_container_ips" required:"true"`
DockerContainerCreated string `json:"docker_container_created" required:"true"`
DockerContainerPorts string `json:"docker_container_ports" required:"true"`
Uptime int `json:"uptime" required:"true"`
CpuMax float64 `json:"cpu_max,omitempty"`
CpuUsage float64 `json:"cpu_usage,omitempty"`
MemoryMax int64 `json:"memory_max,omitempty"`
MemoryUsage int64 `json:"memory_usage,omitempty"`
RegularScanStatus
CpuMax float64 `json:"cpu_max" required:"true"`
CpuUsage float64 `json:"cpu_usage" required:"true"`
MemoryMax int64 `json:"memory_max" required:"true"`
MemoryUsage int64 `json:"memory_usage" required:"true"`
VulnerabilitiesCount int64 `json:"vulnerabilities_count" required:"true"`
VulnerabilityScanStatus string `json:"vulnerability_scan_status" required:"true"`
VulnerabilityLatestScanId string `json:"vulnerability_latest_scan_id" required:"true"`
SecretsCount int64 `json:"secrets_count" required:"true"`
SecretScanStatus string `json:"secret_scan_status" required:"true"`
SecretLatestScanId string `json:"secret_latest_scan_id" required:"true"`
MalwaresCount int64 `json:"malwares_count" required:"true"`
MalwareScanStatus string `json:"malware_scan_status" required:"true"`
MalwareLatestScanId string `json:"malware_latest_scan_id" required:"true"`
}

func (Container) NodeType() string {
Expand Down Expand Up @@ -241,11 +242,11 @@ type Process struct {
Command string `json:"cmdline" required:"true"`
PPID int `json:"ppid" required:"true"`
ThreadNumber int `json:"threads" required:"true"`
CpuMax float64 `json:"cpu_max,omitempty"`
CpuUsage float64 `json:"cpu_usage,omitempty"`
MemoryMax int64 `json:"memory_max,omitempty"`
MemoryUsage int64 `json:"memory_usage,omitempty"`
OpenFilesCount int `json:"open_files_count,omitempty"`
CpuMax float64 `json:"cpu_max" required:"true"`
CpuUsage float64 `json:"cpu_usage" required:"true"`
MemoryMax int64 `json:"memory_max" required:"true"`
MemoryUsage int64 `json:"memory_usage" required:"true"`
OpenFilesCount int `json:"open_files_count" required:"true"`
}

func (Process) NodeType() string {
Expand All @@ -269,16 +270,24 @@ func (p Process) id() string {
}

type ContainerImage struct {
ID string `json:"node_id" required:"true"`
NodeName string `json:"node_name" required:"true"`
Name string `json:"docker_image_name" required:"true"`
Tag string `json:"docker_image_tag" required:"true"`
Size string `json:"docker_image_size" required:"true"`
DockerImageCreatedAt string `json:"docker_image_created_at,omitempty"`
DockerImageVirtualSize string `json:"docker_image_virtual_size,omitempty"`
DockerImageID string `json:"docker_image_id,omitempty"`
Metadata Metadata `json:"metadata" required:"true" nested_json:"true"`
RegularScanStatus
ID string `json:"node_id" required:"true"`
NodeName string `json:"node_name" required:"true"`
Name string `json:"docker_image_name" required:"true"`
Tag string `json:"docker_image_tag" required:"true"`
Size string `json:"docker_image_size" required:"true"`
DockerImageCreatedAt string `json:"docker_image_created_at" required:"true"`
DockerImageVirtualSize string `json:"docker_image_virtual_size" required:"true"`
DockerImageID string `json:"docker_image_id" required:"true"`
Metadata Metadata `json:"metadata" required:"true" nested_json:"true"`
VulnerabilitiesCount int64 `json:"vulnerabilities_count" required:"true"`
VulnerabilityScanStatus string `json:"vulnerability_scan_status" required:"true"`
VulnerabilityLatestScanId string `json:"vulnerability_latest_scan_id" required:"true"`
SecretsCount int64 `json:"secrets_count" required:"true"`
SecretScanStatus string `json:"secret_scan_status" required:"true"`
SecretLatestScanId string `json:"secret_latest_scan_id" required:"true"`
MalwaresCount int64 `json:"malwares_count" required:"true"`
MalwareScanStatus string `json:"malware_scan_status" required:"true"`
MalwareLatestScanId string `json:"malware_latest_scan_id" required:"true"`
}

func (ContainerImage) NodeType() string {
Expand All @@ -302,10 +311,12 @@ func (ci ContainerImage) id() string {
}

type CloudResource struct {
ID string `json:"node_id" required:"true"`
Name string `json:"node_name" required:"true"`
Type string `json:"node_type" required:"true"`
RegularScanStatus
ID string `json:"node_id" required:"true"`
Name string `json:"node_name" required:"true"`
Type string `json:"node_type" required:"true"`
CloudCompliancesCount int64 `json:"cloud_compliances_count" required:"true"`
CloudComplianceScanStatus string `json:"cloud_compliance_scan_status" required:"true"`
CloudComplianceLatestScanId string `json:"cloud_compliance_latest_scan_id" required:"true"`
}

func (CloudResource) NodeType() string {
Expand Down
Loading