diff --git a/deepfence_frontend/apps/dashboard/api-spec.json b/deepfence_frontend/apps/dashboard/api-spec.json index e33b0821eb..599ddc4186 100644 --- a/deepfence_frontend/apps/dashboard/api-spec.json +++ b/deepfence_frontend/apps/dashboard/api-spec.json @@ -25,6 +25,7 @@ { "name": "Compliance" }, { "name": "Topology" }, { "name": "Secret Scan" }, + { "name": "Malware Scan" }, { "name": "Vulnerability" } ], "paths": { @@ -39,7 +40,10 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/PostgresqlDbApiToken" } + } } } }, @@ -91,7 +95,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelResponseAccessToken" } } } }, @@ -135,7 +139,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelResponseAccessToken" } } } }, @@ -279,6 +283,137 @@ "security": [{ "bearer_token": [] }] } }, + "/deepfence/container-registry/": { + "get": { + "tags": ["Regisry"], + "summary": "List Images in Registry", + "description": "List all the added Registry", + "operationId": "ListRegistry", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PostgresqlDbGetContainerRegistriesSafeRow" + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + }, + "post": { + "tags": ["Regisry"], + "summary": "Add Registry", + "description": "Add a new supported registry", + "operationId": "AddRegistry", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ModelRegistryAddReq" } + } + } + }, + "responses": { + "200": { "description": "OK" }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + } + }, + "/deepfence/container-registry/images": { + "get": { + "tags": ["Regisry"], + "summary": "List Images in Registry", + "description": "List all the images present in all the registries", + "operationId": "listImagesInRegistry", + "responses": { + "200": { "description": "OK" }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + } + }, "/deepfence/controls/agent": { "post": { "tags": ["Controls"], @@ -383,16 +518,16 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/controls/agent-version": { + "/deepfence/controls/agent-upgrade": { "post": { "tags": ["Controls"], - "summary": "Push new agent version", - "description": "Push new agent version", - "operationId": "addAgentVersion", + "summary": "Schedule new agent version upgrade", + "description": "Schedule new agent version upgrade", + "operationId": "upgradeAgentVersion", "requestBody": { "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelAgentImageMetadata" } + "schema": { "$ref": "#/components/schemas/ModelAgentUpgrade" } } } }, @@ -428,18 +563,27 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/controls/get-agent-version": { - "get": { + "/deepfence/controls/kubernetes-scanner": { + "post": { "tags": ["Controls"], - "summary": "Fetch latest agent version", - "description": "Fetch latest agent version to check for upgrade", - "operationId": "getLatestAgentVersion", + "summary": "Fetch Kubernetes Scanner Actions", + "description": "Fetch actions for a given Kubernetes Cluster", + "operationId": "getKubernetesScannerControls", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ModelAgentId" } + } + } + }, "responses": { "200": { "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelAgentImageMetadata" } + "schema": { + "$ref": "#/components/schemas/ControlsKubernetesScannerControlResponse" + } } } }, @@ -598,7 +742,12 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DiagnosisDiagnosticNotification" + } + } } } }, @@ -939,7 +1088,7 @@ }, "/deepfence/ingest/cloud-compliance": { "post": { - "tags": ["Cloud Compliance"], + "tags": ["Cloud Scanner"], "summary": "Ingest Cloud Compliances", "description": "Ingest Cloud compliances found while scanning cloud provider", "operationId": "ingestCloudCompliances", @@ -1084,25 +1233,27 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/report": { + "/deepfence/ingest/kubernetes-scanner": { "post": { - "tags": ["Topology"], - "summary": "Ingest Topology Data", - "description": "Ingest data reported by one Agent", - "operationId": "ingestAgentReport", + "tags": ["Kubernetes Scanner"], + "summary": "Register Kubernetes Scanner", + "description": "Register Kubernetes Scanner", + "operationId": "registerKubernetesScanner", "requestBody": { "content": { "application/json": { "schema": { "type": "array", - "items": { "minimum": 0, "type": "integer" }, + "items": { + "$ref": "#/components/schemas/IngestersRegisterKubernetesScannerRequest" + }, "nullable": true } } } }, "responses": { - "200": { "description": "OK" }, + "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { @@ -1133,16 +1284,20 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/sbom": { + "/deepfence/ingest/malware": { "post": { - "tags": ["Vulnerability"], - "summary": "Ingest SBOM from Scan", - "description": "Ingest SBOM from Scan", - "operationId": "ingestSbom", + "tags": ["Malware Scan"], + "summary": "Ingest Malware", + "description": "Ingest malware found while scanning the agent", + "operationId": "ingestMalware", "requestBody": { "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/UtilsSbomRequest" } + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/IngestersMalware" }, + "nullable": true + } } } }, @@ -1178,18 +1333,18 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/secret-scan-logs": { + "/deepfence/ingest/malware-scan-logs": { "post": { - "tags": ["Secret Scan"], - "summary": "Ingest Secrets Scan Status", - "description": "Ingest secrets scan status from the agent", - "operationId": "ingestSecretScanStatus", + "tags": ["Malware Scan"], + "summary": "Ingest Malware Scan Status", + "description": "Ingest malware scan status from the agent", + "operationId": "ingestMalwareScanStatus", "requestBody": { "content": { "application/json": { "schema": { "type": "array", - "items": { "$ref": "#/components/schemas/IngestersSecretScanStatus" }, + "items": { "$ref": "#/components/schemas/IngestersMalwareScanStatus" }, "nullable": true } } @@ -1227,21 +1382,62 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/secrets": { + "/deepfence/ingest/report": { "post": { - "tags": ["Secret Scan"], - "summary": "Ingest Secrets", - "description": "Ingest secrets found while scanning the agent", - "operationId": "ingestSecrets", + "tags": ["Topology"], + "summary": "Ingest Topology Data", + "description": "Ingest data reported by one Agent", + "operationId": "ingestAgentReport", "requestBody": { "content": { "application/json": { - "schema": { - "type": "array", - "items": { "$ref": "#/components/schemas/IngestersSecret" }, - "nullable": true + "schema": { "$ref": "#/components/schemas/ReportRawReport" } + } + } + }, + "responses": { + "200": { "description": "OK" }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } } } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + } + }, + "/deepfence/ingest/sbom": { + "post": { + "tags": ["Vulnerability"], + "summary": "Ingest SBOM from Scan", + "description": "Ingest SBOM from Scan", + "operationId": "ingestSbom", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UtilsSbomRequest" } + } } }, "responses": { @@ -1276,18 +1472,18 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/malware-scan-logs": { + "/deepfence/ingest/secret-scan-logs": { "post": { - "tags": ["Malware Scan"], - "summary": "Ingest Malware Scan Status", - "description": "Ingest malware scan status from the agent", - "operationId": "ingestMalwareScanStatus", + "tags": ["Secret Scan"], + "summary": "Ingest Secrets Scan Status", + "description": "Ingest secrets scan status from the agent", + "operationId": "ingestSecretScanStatus", "requestBody": { "content": { "application/json": { "schema": { "type": "array", - "items": { "$ref": "#/components/schemas/IngestersMalwareScanStatus" }, + "items": { "$ref": "#/components/schemas/IngestersSecretScanStatus" }, "nullable": true } } @@ -1325,18 +1521,18 @@ "security": [{ "bearer_token": [] }] } }, - "/deepfence/ingest/malware": { + "/deepfence/ingest/secrets": { "post": { - "tags": ["Malware Scan"], - "summary": "Ingest Malware", - "description": "Ingest malware found while scanning the agent", - "operationId": "ingestMalware", + "tags": ["Secret Scan"], + "summary": "Ingest Secrets", + "description": "Ingest secrets found while scanning the agent", + "operationId": "ingestSecrets", "requestBody": { "content": { "application/json": { "schema": { "type": "array", - "items": { "$ref": "#/components/schemas/IngestersMalware" }, + "items": { "$ref": "#/components/schemas/IngestersSecret" }, "nullable": true } } @@ -1374,6 +1570,51 @@ "security": [{ "bearer_token": [] }] } }, + "/deepfence/ingest/sync-report": { + "post": { + "tags": ["Topology"], + "summary": "Ingest Topology Data", + "description": "Ingest data reported by one Agent", + "operationId": "ingestSyncAgentReport", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/IngestersReportIngestionData" } + } + } + }, + "responses": { + "200": { "description": "OK" }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + } + }, "/deepfence/ingest/vulnerabilities": { "post": { "tags": ["Vulnerability"], @@ -1639,10 +1880,65 @@ "security": [{ "bearer_token": [] }] } }, + "/deepfence/lookup/kubernetes-scanners": { + "post": { + "tags": ["Lookup"], + "summary": "Retrieve K8s scanners data", + "description": "Retrieve all the data associated with k8s scanners", + "operationId": "getKubernetesScanners", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ReportersLookupFilter" } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/ModelKubernetesCluster" } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsBadRequestResponse" } + } + } + }, + "401": { "description": "Unauthorized" }, + "403": { "description": "Forbidden" }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiDocsFailureResponse" } + } + } + } + }, + "security": [{ "bearer_token": [] }] + } + }, "/deepfence/lookup/kubernetesclusters": { "post": { "tags": ["Lookup"], - "summary": "Retrieve K8S data", + "summary": "Retrieve K8s data", "description": "Retrieve all the data associated with k8s clusters", "operationId": "getKubernetesClusters", "requestBody": { @@ -2385,7 +2681,9 @@ "requestBody": { "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelScanTriggerReq" } + "schema": { + "$ref": "#/components/schemas/ModelVulnerabilityScanTriggerReq" + } } } }, @@ -2867,7 +3165,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelUser" } } } }, @@ -2915,7 +3213,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelUser" } } } }, @@ -2967,7 +3265,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelInviteUserResponse" } } } }, @@ -3019,7 +3317,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelResponseAccessToken" } } } }, @@ -3070,7 +3368,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelResponseAccessToken" } } } }, @@ -3159,7 +3457,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelResponseAccessToken" } } } }, @@ -3210,7 +3508,7 @@ "description": "OK", "content": { "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } + "schema": { "$ref": "#/components/schemas/ModelMessageResponse" } } } }, @@ -3257,14 +3555,7 @@ } }, "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { "$ref": "#/components/schemas/ModelResponse" } - } - } - }, + "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { @@ -3345,6 +3636,40 @@ } } }, + "ControlsKubernetesScannerControlResponse": { + "type": "object", + "properties": { + "data": { "$ref": "#/components/schemas/ControlsKubernetesScannerPendingScans" } + } + }, + "ControlsKubernetesScannerPendingScan": { + "type": "object", + "properties": { + "account_id": { "type": "string" }, + "controls": { + "type": "array", + "items": { "type": "string" }, + "nullable": true + }, + "scan_id": { "type": "string" }, + "scan_type": { "type": "string" } + } + }, + "ControlsKubernetesScannerPendingScanMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ControlsKubernetesScannerPendingScan" + } + }, + "ControlsKubernetesScannerPendingScans": { + "type": "object", + "properties": { + "refresh": { "type": "string" }, + "scans": { + "$ref": "#/components/schemas/ControlsKubernetesScannerPendingScanMap" + } + } + }, "DetailedConnectionSummary": { "type": "object", "properties": { "source": { "type": "string" }, "target": { "type": "string" } } @@ -3506,6 +3831,140 @@ "type": { "type": "string" } } }, + "IngestersMalware": { + "type": "object", + "properties": { + "@timestamp": { "type": "string", "format": "date-time" }, + "Class": { "type": "string" }, + "CompleteFilename": { "type": "string" }, + "FileSevScore": { "type": "number" }, + "FileSeverity": { "type": "string" }, + "ImageLayerId": { "type": "string" }, + "Meta": { "type": "array", "items": { "type": "string" } }, + "Meta Rules": { + "type": "object", + "additionalProperties": { "type": "string" } + }, + "RuleName": { "type": "string" }, + "SeverityScore": { "type": "number" }, + "StringsToMatch": { "type": "array", "items": { "type": "string" } }, + "Summary": { "type": "string" }, + "container_name": { "type": "string" }, + "host_name": { "type": "string" }, + "kubernetes_cluster_name": { "type": "string" }, + "masked": { "type": "string" }, + "node_id": { "type": "string" }, + "node_type": { "type": "string" }, + "scan_id": { "type": "string" } + } + }, + "IngestersMalwareScanStatus": { + "type": "object", + "properties": { + "@timestamp": { "type": "string", "format": "date-time" }, + "container_name": { "type": "string" }, + "host_name": { "type": "string" }, + "kubernetes_cluster_name": { "type": "string" }, + "masked": { "type": "string" }, + "node_id": { "type": "string" }, + "node_name": { "type": "string" }, + "node_type": { "type": "string" }, + "scan_id": { "type": "string" }, + "scan_status": { "type": "string" } + } + }, + "IngestersRegisterKubernetesScannerRequest": { + "type": "object", + "properties": { + "kubernetes_cluster_name": { "type": "string" }, + "node_id": { "type": "string" } + } + }, + "IngestersReportIngestionData": { + "required": [ + "process_batch", + "host_batch", + "container_batch", + "pod_batch", + "container_image_batch", + "kubernetes_cluster_batch", + "process_edges_batch", + "container_edges_batch", + "pod_edges_batch", + "endpoint_edges_batch", + "container_image_edge_batch", + "kubernetes_cluster_edge_batch", + "hosts" + ], + "type": "object", + "properties": { + "container_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "container_edges_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + }, + "container_image_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "container_image_edge_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + }, + "endpoint_edges_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + }, + "host_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "hosts": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "kubernetes_cluster_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "kubernetes_cluster_edge_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + }, + "pod_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "pod_edges_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + }, + "process_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": { "type": "string" } }, + "nullable": true + }, + "process_edges_batch": { + "type": "array", + "items": { "type": "object", "additionalProperties": {} }, + "nullable": true + } + } + }, "IngestersSecret": { "type": "object", "properties": { @@ -3612,14 +4071,10 @@ "type": "object", "properties": { "node_id": { "type": "string" } } }, - "ModelAgentImageMetadata": { - "required": ["version", "image_name", "image_tag"], + "ModelAgentUpgrade": { + "required": ["version", "node_id"], "type": "object", - "properties": { - "image_name": { "type": "string" }, - "image_tag": { "type": "string" }, - "version": { "type": "string" } - } + "properties": { "node_id": { "type": "string" }, "version": { "type": "string" } } }, "ModelApiAuthRequest": { "required": ["api_token"], @@ -3827,7 +4282,8 @@ "type": "object", "properties": { "invite_expiry_hours": { "type": "integer" }, - "invite_url": { "type": "string" } + "invite_url": { "type": "string" }, + "message": { "type": "string" } } }, "ModelKubernetesCluster": { @@ -3850,6 +4306,11 @@ "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" } } }, + "ModelMessageResponse": { + "required": ["message"], + "type": "object", + "properties": { "message": { "type": "string" } } + }, "ModelMetadata": { "type": "object", "additionalProperties": {} }, "ModelPasswordResetRequest": { "required": ["email"], @@ -3932,17 +4393,17 @@ "password": { "type": "string" } } }, - "ModelResponse": { + "ModelRegistryAddReq": { "type": "object", "properties": { - "data": { "$ref": "#/components/schemas/ModelResponseAccessToken" }, - "error_fields": { + "name": { "type": "string" }, + "non_secret": { "type": "object", - "additionalProperties": { "type": "string" }, + "additionalProperties": {}, "nullable": true }, - "message": { "type": "string" }, - "success": { "type": "boolean" } + "registry_type": { "type": "string" }, + "secret": { "type": "object", "additionalProperties": {}, "nullable": true } } }, "ModelResponseAccessToken": { @@ -4061,7 +4522,31 @@ "password": { "type": "string" } } }, + "ModelVulnerabilityScanTriggerReq": { + "required": ["node_id", "node_type", "scan_type"], + "type": "object", + "properties": { + "node_id": { "type": "string" }, + "node_type": { "enum": ["image", "host", "container"], "type": "string" }, + "scan_type": { + "enum": [ + "all", + "base", + "ruby", + "python", + "javascript", + "php", + "golang", + "java", + "rust", + "dotnet" + ], + "type": "string" + } + } + }, "PostgresqlDbApiToken": { "type": "object" }, + "PostgresqlDbGetContainerRegistriesSafeRow": { "type": "object" }, "ReportColumn": { "type": "object", "properties": { @@ -4083,6 +4568,11 @@ } }, "ReportMetricRow": { "type": "object" }, + "ReportRawReport": { + "required": ["payload"], + "type": "object", + "properties": { "payload": { "type": "string" } } + }, "ReportRow": { "type": "object", "properties": { @@ -4267,6 +4757,7 @@ } }, "UtilsSbomRequest": { + "required": ["scan_id", "sbom"], "type": "object", "properties": { "container_name": { "type": "string" }, @@ -4277,7 +4768,7 @@ "mode": { "type": "string" }, "node_id": { "type": "string" }, "node_type": { "type": "string" }, - "sbom": { "type": "array", "items": { "minimum": 0, "type": "integer" } }, + "sbom": { "type": "string" }, "sbom_file_path": { "type": "string" }, "scan_id": { "type": "string" }, "scan_type": { "type": "string" } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/.openapi-generator/FILES b/deepfence_frontend/apps/dashboard/src/api/generated/.openapi-generator/FILES index d145f4c4ca..81c7ae65fc 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/.openapi-generator/FILES +++ b/deepfence_frontend/apps/dashboard/src/api/generated/.openapi-generator/FILES @@ -1,13 +1,15 @@ .openapi-generator-ignore apis/AuthenticationApi.ts -apis/CloudComplianceApi.ts apis/CloudNodesApi.ts apis/CloudResourcesApi.ts +apis/CloudScannerApi.ts apis/ComplianceApi.ts apis/ControlsApi.ts apis/DiagnosisApi.ts +apis/KubernetesScannerApi.ts apis/LookupApi.ts apis/MalwareScanApi.ts +apis/RegisryApi.ts apis/SecretScanApi.ts apis/ThreatApi.ts apis/TopologyApi.ts @@ -20,6 +22,9 @@ models/ApiDocsFailureResponse.ts models/ApiDocsGraphResult.ts models/ControlsAction.ts models/ControlsAgentControls.ts +models/ControlsKubernetesScannerControlResponse.ts +models/ControlsKubernetesScannerPendingScan.ts +models/ControlsKubernetesScannerPendingScans.ts models/DetailedConnectionSummary.ts models/DetailedNodeSummary.ts models/DetailedParent.ts @@ -27,6 +32,10 @@ models/DiagnosisDiagnosticNotification.ts models/IngestersCloudCompliance.ts models/IngestersCloudResource.ts models/IngestersCompliance.ts +models/IngestersMalware.ts +models/IngestersMalwareScanStatus.ts +models/IngestersRegisterKubernetesScannerRequest.ts +models/IngestersReportIngestionData.ts models/IngestersSecret.ts models/IngestersSecretMatch.ts models/IngestersSecretRule.ts @@ -35,7 +44,7 @@ models/IngestersSecretSeverity.ts models/IngestersVulnerability.ts models/IngestersVulnerabilityScanStatus.ts models/ModelAgentId.ts -models/ModelAgentImageMetadata.ts +models/ModelAgentUpgrade.ts models/ModelApiAuthRequest.ts models/ModelCloudComplianceScanDetails.ts models/ModelCloudNodeAccountInfo.ts @@ -54,12 +63,13 @@ models/ModelInviteUserRequest.ts models/ModelInviteUserResponse.ts models/ModelKubernetesCluster.ts models/ModelLoginRequest.ts +models/ModelMessageResponse.ts models/ModelPasswordResetRequest.ts models/ModelPasswordResetVerifyRequest.ts models/ModelPod.ts models/ModelProcess.ts models/ModelRegisterInvitedUserRequest.ts -models/ModelResponse.ts +models/ModelRegistryAddReq.ts models/ModelResponseAccessToken.ts models/ModelScanInfo.ts models/ModelScanListReq.ts @@ -71,8 +81,10 @@ models/ModelScanTriggerReq.ts models/ModelScanTriggerResp.ts models/ModelUser.ts models/ModelUserRegisterRequest.ts +models/ModelVulnerabilityScanTriggerReq.ts models/ReportColumn.ts models/ReportMetadataRow.ts +models/ReportRawReport.ts models/ReportRow.ts models/ReportTable.ts models/ReportersContainsFilter.ts diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/AuthenticationApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/AuthenticationApi.ts index 84f00c6127..7234bb1aac 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/AuthenticationApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/AuthenticationApi.ts @@ -19,7 +19,7 @@ import type { ApiDocsFailureResponse, ModelApiAuthRequest, ModelLoginRequest, - ModelResponse, + ModelResponseAccessToken, } from '../models'; import { ApiDocsBadRequestResponseFromJSON, @@ -30,8 +30,8 @@ import { ModelApiAuthRequestToJSON, ModelLoginRequestFromJSON, ModelLoginRequestToJSON, - ModelResponseFromJSON, - ModelResponseToJSON, + ModelResponseAccessTokenFromJSON, + ModelResponseAccessTokenToJSON, } from '../models'; export interface AuthTokenRequest { @@ -57,13 +57,13 @@ export interface AuthenticationApiInterface { * @throws {RequiredError} * @memberof AuthenticationApiInterface */ - authTokenRaw(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + authTokenRaw(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Get access token for programmatic API access, by providing API Token * Get Access Token for API Token */ - authToken(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + authToken(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Reissue access token using refresh token @@ -72,13 +72,13 @@ export interface AuthenticationApiInterface { * @throws {RequiredError} * @memberof AuthenticationApiInterface */ - authTokenRefreshRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + authTokenRefreshRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Reissue access token using refresh token * Refresh access token */ - authTokenRefresh(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + authTokenRefresh(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Login API @@ -88,13 +88,13 @@ export interface AuthenticationApiInterface { * @throws {RequiredError} * @memberof AuthenticationApiInterface */ - loginRaw(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + loginRaw(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Login API * Login API */ - login(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + login(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Logout API @@ -122,7 +122,7 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication * Get access token for programmatic API access, by providing API Token * Get Access Token for API Token */ - async authTokenRaw(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async authTokenRaw(requestParameters: AuthTokenRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -137,14 +137,14 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication body: ModelApiAuthRequestToJSON(requestParameters.modelApiAuthRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseAccessTokenFromJSON(jsonValue)); } /** * Get access token for programmatic API access, by providing API Token * Get Access Token for API Token */ - async authToken(requestParameters: AuthTokenRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async authToken(requestParameters: AuthTokenRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.authTokenRaw(requestParameters, initOverrides); return await response.value(); } @@ -153,7 +153,7 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication * Reissue access token using refresh token * Refresh access token */ - async authTokenRefreshRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async authTokenRefreshRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -173,14 +173,14 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseAccessTokenFromJSON(jsonValue)); } /** * Reissue access token using refresh token * Refresh access token */ - async authTokenRefresh(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async authTokenRefresh(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.authTokenRefreshRaw(initOverrides); return await response.value(); } @@ -189,7 +189,7 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication * Login API * Login API */ - async loginRaw(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async loginRaw(requestParameters: LoginRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -204,14 +204,14 @@ export class AuthenticationApi extends runtime.BaseAPI implements Authentication body: ModelLoginRequestToJSON(requestParameters.modelLoginRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseAccessTokenFromJSON(jsonValue)); } /** * Login API * Login API */ - async login(requestParameters: LoginRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async login(requestParameters: LoginRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.loginRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudComplianceApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudScannerApi.ts similarity index 93% rename from deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudComplianceApi.ts rename to deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudScannerApi.ts index eaae9235e5..04ce53532b 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudComplianceApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/CloudScannerApi.ts @@ -33,19 +33,19 @@ export interface IngestCloudCompliancesRequest { } /** - * CloudComplianceApi - interface + * CloudScannerApi - interface * * @export - * @interface CloudComplianceApiInterface + * @interface CloudScannerApiInterface */ -export interface CloudComplianceApiInterface { +export interface CloudScannerApiInterface { /** * Ingest Cloud compliances found while scanning cloud provider * @summary Ingest Cloud Compliances * @param {Array} [ingestersCloudCompliance] * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof CloudComplianceApiInterface + * @memberof CloudScannerApiInterface */ ingestCloudCompliancesRaw(requestParameters: IngestCloudCompliancesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; @@ -60,7 +60,7 @@ export interface CloudComplianceApiInterface { /** * */ -export class CloudComplianceApi extends runtime.BaseAPI implements CloudComplianceApiInterface { +export class CloudScannerApi extends runtime.BaseAPI implements CloudScannerApiInterface { /** * Ingest Cloud compliances found while scanning cloud provider diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/ControlsApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/ControlsApi.ts index a5ea970a14..a0e71ea10e 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/ControlsApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/ControlsApi.ts @@ -18,8 +18,9 @@ import type { ApiDocsBadRequestResponse, ApiDocsFailureResponse, ControlsAgentControls, + ControlsKubernetesScannerControlResponse, ModelAgentId, - ModelAgentImageMetadata, + ModelAgentUpgrade, } from '../models'; import { ApiDocsBadRequestResponseFromJSON, @@ -28,16 +29,14 @@ import { ApiDocsFailureResponseToJSON, ControlsAgentControlsFromJSON, ControlsAgentControlsToJSON, + ControlsKubernetesScannerControlResponseFromJSON, + ControlsKubernetesScannerControlResponseToJSON, ModelAgentIdFromJSON, ModelAgentIdToJSON, - ModelAgentImageMetadataFromJSON, - ModelAgentImageMetadataToJSON, + ModelAgentUpgradeFromJSON, + ModelAgentUpgradeToJSON, } from '../models'; -export interface AddAgentVersionRequest { - modelAgentImageMetadata?: ModelAgentImageMetadata; -} - export interface GetAgentControlsRequest { modelAgentId?: ModelAgentId; } @@ -46,6 +45,14 @@ export interface GetAgentInitControlsRequest { modelAgentId?: ModelAgentId; } +export interface GetKubernetesScannerControlsRequest { + modelAgentId?: ModelAgentId; +} + +export interface UpgradeAgentVersionRequest { + modelAgentUpgrade?: ModelAgentUpgrade; +} + /** * ControlsApi - interface * @@ -53,22 +60,6 @@ export interface GetAgentInitControlsRequest { * @interface ControlsApiInterface */ export interface ControlsApiInterface { - /** - * Push new agent version - * @summary Push new agent version - * @param {ModelAgentImageMetadata} [modelAgentImageMetadata] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ControlsApiInterface - */ - addAgentVersionRaw(requestParameters: AddAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; - - /** - * Push new agent version - * Push new agent version - */ - addAgentVersion(requestParameters: AddAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; - /** * Fetch actions for a given agent * @summary Fetch Agent Actions @@ -102,19 +93,36 @@ export interface ControlsApiInterface { getAgentInitControls(requestParameters: GetAgentInitControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * Fetch latest agent version to check for upgrade - * @summary Fetch latest agent version + * Fetch actions for a given Kubernetes Cluster + * @summary Fetch Kubernetes Scanner Actions + * @param {ModelAgentId} [modelAgentId] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ControlsApiInterface + */ + getKubernetesScannerControlsRaw(requestParameters: GetKubernetesScannerControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Fetch actions for a given Kubernetes Cluster + * Fetch Kubernetes Scanner Actions + */ + getKubernetesScannerControls(requestParameters: GetKubernetesScannerControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Schedule new agent version upgrade + * @summary Schedule new agent version upgrade + * @param {ModelAgentUpgrade} [modelAgentUpgrade] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ControlsApiInterface */ - getLatestAgentVersionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + upgradeAgentVersionRaw(requestParameters: UpgradeAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Fetch latest agent version to check for upgrade - * Fetch latest agent version + * Schedule new agent version upgrade + * Schedule new agent version upgrade */ - getLatestAgentVersion(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + upgradeAgentVersion(requestParameters: UpgradeAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } @@ -124,10 +132,10 @@ export interface ControlsApiInterface { export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface { /** - * Push new agent version - * Push new agent version + * Fetch actions for a given agent + * Fetch Agent Actions */ - async addAgentVersionRaw(requestParameters: AddAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getAgentControlsRaw(requestParameters: GetAgentControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -143,29 +151,30 @@ export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface } } const response = await this.request({ - path: `/deepfence/controls/agent-version`, + path: `/deepfence/controls/agent`, method: 'POST', headers: headerParameters, query: queryParameters, - body: ModelAgentImageMetadataToJSON(requestParameters.modelAgentImageMetadata), + body: ModelAgentIdToJSON(requestParameters.modelAgentId), }, initOverrides); - return new runtime.VoidApiResponse(response); + return new runtime.JSONApiResponse(response, (jsonValue) => ControlsAgentControlsFromJSON(jsonValue)); } /** - * Push new agent version - * Push new agent version + * Fetch actions for a given agent + * Fetch Agent Actions */ - async addAgentVersion(requestParameters: AddAgentVersionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - await this.addAgentVersionRaw(requestParameters, initOverrides); + async getAgentControls(requestParameters: GetAgentControlsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getAgentControlsRaw(requestParameters, initOverrides); + return await response.value(); } /** - * Fetch actions for a given agent - * Fetch Agent Actions + * Fetch initial actions for a given agent after it started + * Fetch Agent Init Actions */ - async getAgentControlsRaw(requestParameters: GetAgentControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getAgentInitControlsRaw(requestParameters: GetAgentInitControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -181,7 +190,7 @@ export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface } } const response = await this.request({ - path: `/deepfence/controls/agent`, + path: `/deepfence/controls/agent-init`, method: 'POST', headers: headerParameters, query: queryParameters, @@ -192,19 +201,19 @@ export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface } /** - * Fetch actions for a given agent - * Fetch Agent Actions + * Fetch initial actions for a given agent after it started + * Fetch Agent Init Actions */ - async getAgentControls(requestParameters: GetAgentControlsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.getAgentControlsRaw(requestParameters, initOverrides); + async getAgentInitControls(requestParameters: GetAgentInitControlsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getAgentInitControlsRaw(requestParameters, initOverrides); return await response.value(); } /** - * Fetch initial actions for a given agent after it started - * Fetch Agent Init Actions + * Fetch actions for a given Kubernetes Cluster + * Fetch Kubernetes Scanner Actions */ - async getAgentInitControlsRaw(requestParameters: GetAgentInitControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getKubernetesScannerControlsRaw(requestParameters: GetKubernetesScannerControlsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -220,34 +229,36 @@ export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface } } const response = await this.request({ - path: `/deepfence/controls/agent-init`, + path: `/deepfence/controls/kubernetes-scanner`, method: 'POST', headers: headerParameters, query: queryParameters, body: ModelAgentIdToJSON(requestParameters.modelAgentId), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ControlsAgentControlsFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ControlsKubernetesScannerControlResponseFromJSON(jsonValue)); } /** - * Fetch initial actions for a given agent after it started - * Fetch Agent Init Actions + * Fetch actions for a given Kubernetes Cluster + * Fetch Kubernetes Scanner Actions */ - async getAgentInitControls(requestParameters: GetAgentInitControlsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.getAgentInitControlsRaw(requestParameters, initOverrides); + async getKubernetesScannerControls(requestParameters: GetKubernetesScannerControlsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getKubernetesScannerControlsRaw(requestParameters, initOverrides); return await response.value(); } /** - * Fetch latest agent version to check for upgrade - * Fetch latest agent version + * Schedule new agent version upgrade + * Schedule new agent version upgrade */ - async getLatestAgentVersionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async upgradeAgentVersionRaw(requestParameters: UpgradeAgentVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; + headerParameters['Content-Type'] = 'application/json'; + if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer_token", []); @@ -257,22 +268,22 @@ export class ControlsApi extends runtime.BaseAPI implements ControlsApiInterface } } const response = await this.request({ - path: `/deepfence/controls/get-agent-version`, - method: 'GET', + path: `/deepfence/controls/agent-upgrade`, + method: 'POST', headers: headerParameters, query: queryParameters, + body: ModelAgentUpgradeToJSON(requestParameters.modelAgentUpgrade), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelAgentImageMetadataFromJSON(jsonValue)); + return new runtime.VoidApiResponse(response); } /** - * Fetch latest agent version to check for upgrade - * Fetch latest agent version + * Schedule new agent version upgrade + * Schedule new agent version upgrade */ - async getLatestAgentVersion(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.getLatestAgentVersionRaw(initOverrides); - return await response.value(); + async upgradeAgentVersion(requestParameters: UpgradeAgentVersionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.upgradeAgentVersionRaw(requestParameters, initOverrides); } } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/DiagnosisApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/DiagnosisApi.ts index 72c6090891..cdeb7a7439 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/DiagnosisApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/DiagnosisApi.ts @@ -17,15 +17,15 @@ import * as runtime from '../runtime'; import type { ApiDocsBadRequestResponse, ApiDocsFailureResponse, - ModelResponse, + DiagnosisDiagnosticNotification, } from '../models'; import { ApiDocsBadRequestResponseFromJSON, ApiDocsBadRequestResponseToJSON, ApiDocsFailureResponseFromJSON, ApiDocsFailureResponseToJSON, - ModelResponseFromJSON, - ModelResponseToJSON, + DiagnosisDiagnosticNotificationFromJSON, + DiagnosisDiagnosticNotificationToJSON, } from '../models'; /** @@ -42,13 +42,13 @@ export interface DiagnosisApiInterface { * @throws {RequiredError} * @memberof DiagnosisApiInterface */ - diagnosticNotificationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + diagnosticNotificationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** * Get Diagnostic Notification * Get Diagnostic Notification */ - diagnosticNotification(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + diagnosticNotification(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Generate Agent Diagnostic Logs @@ -106,7 +106,7 @@ export class DiagnosisApi extends runtime.BaseAPI implements DiagnosisApiInterfa * Get Diagnostic Notification * Get Diagnostic Notification */ - async diagnosticNotificationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async diagnosticNotificationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -126,14 +126,14 @@ export class DiagnosisApi extends runtime.BaseAPI implements DiagnosisApiInterfa query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DiagnosisDiagnosticNotificationFromJSON)); } /** * Get Diagnostic Notification * Get Diagnostic Notification */ - async diagnosticNotification(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async diagnosticNotification(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.diagnosticNotificationRaw(initOverrides); return await response.value(); } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/KubernetesScannerApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/KubernetesScannerApi.ts new file mode 100644 index 0000000000..caed7f71dc --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/KubernetesScannerApi.ts @@ -0,0 +1,103 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ApiDocsBadRequestResponse, + ApiDocsFailureResponse, + IngestersRegisterKubernetesScannerRequest, +} from '../models'; +import { + ApiDocsBadRequestResponseFromJSON, + ApiDocsBadRequestResponseToJSON, + ApiDocsFailureResponseFromJSON, + ApiDocsFailureResponseToJSON, + IngestersRegisterKubernetesScannerRequestFromJSON, + IngestersRegisterKubernetesScannerRequestToJSON, +} from '../models'; + +export interface RegisterKubernetesScannerRequest { + ingestersRegisterKubernetesScannerRequest?: Array | null; +} + +/** + * KubernetesScannerApi - interface + * + * @export + * @interface KubernetesScannerApiInterface + */ +export interface KubernetesScannerApiInterface { + /** + * Register Kubernetes Scanner + * @summary Register Kubernetes Scanner + * @param {Array} [ingestersRegisterKubernetesScannerRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof KubernetesScannerApiInterface + */ + registerKubernetesScannerRaw(requestParameters: RegisterKubernetesScannerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Register Kubernetes Scanner + * Register Kubernetes Scanner + */ + registerKubernetesScanner(requestParameters: RegisterKubernetesScannerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + +} + +/** + * + */ +export class KubernetesScannerApi extends runtime.BaseAPI implements KubernetesScannerApiInterface { + + /** + * Register Kubernetes Scanner + * Register Kubernetes Scanner + */ + async registerKubernetesScannerRaw(requestParameters: RegisterKubernetesScannerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/ingest/kubernetes-scanner`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.ingestersRegisterKubernetesScannerRequest?.map(IngestersRegisterKubernetesScannerRequestToJSON), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Register Kubernetes Scanner + * Register Kubernetes Scanner + */ + async registerKubernetesScanner(requestParameters: RegisterKubernetesScannerRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.registerKubernetesScannerRaw(requestParameters, initOverrides); + } + +} diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/LookupApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/LookupApi.ts index 9b5a4bf4c2..6e6910516c 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/LookupApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/LookupApi.ts @@ -62,6 +62,10 @@ export interface GetKubernetesClustersRequest { reportersLookupFilter?: ReportersLookupFilter; } +export interface GetKubernetesScannersRequest { + reportersLookupFilter?: ReportersLookupFilter; +} + export interface GetPodsRequest { reportersLookupFilter?: ReportersLookupFilter; } @@ -127,7 +131,7 @@ export interface LookupApiInterface { /** * Retrieve all the data associated with k8s clusters - * @summary Retrieve K8S data + * @summary Retrieve K8s data * @param {ReportersLookupFilter} [reportersLookupFilter] * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -137,10 +141,26 @@ export interface LookupApiInterface { /** * Retrieve all the data associated with k8s clusters - * Retrieve K8S data + * Retrieve K8s data */ getKubernetesClusters(requestParameters: GetKubernetesClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * Retrieve all the data associated with k8s scanners + * @summary Retrieve K8s scanners data + * @param {ReportersLookupFilter} [reportersLookupFilter] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof LookupApiInterface + */ + getKubernetesScannersRaw(requestParameters: GetKubernetesScannersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * Retrieve all the data associated with k8s scanners + * Retrieve K8s scanners data + */ + getKubernetesScanners(requestParameters: GetKubernetesScannersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** * Retrieve all the data associated with pods * @summary Retrieve Pods data @@ -299,7 +319,7 @@ export class LookupApi extends runtime.BaseAPI implements LookupApiInterface { /** * Retrieve all the data associated with k8s clusters - * Retrieve K8S data + * Retrieve K8s data */ async getKubernetesClustersRaw(requestParameters: GetKubernetesClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { const queryParameters: any = {}; @@ -329,13 +349,52 @@ export class LookupApi extends runtime.BaseAPI implements LookupApiInterface { /** * Retrieve all the data associated with k8s clusters - * Retrieve K8S data + * Retrieve K8s data */ async getKubernetesClusters(requestParameters: GetKubernetesClustersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.getKubernetesClustersRaw(requestParameters, initOverrides); return await response.value(); } + /** + * Retrieve all the data associated with k8s scanners + * Retrieve K8s scanners data + */ + async getKubernetesScannersRaw(requestParameters: GetKubernetesScannersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/lookup/kubernetes-scanners`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ReportersLookupFilterToJSON(requestParameters.reportersLookupFilter), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ModelKubernetesClusterFromJSON)); + } + + /** + * Retrieve all the data associated with k8s scanners + * Retrieve K8s scanners data + */ + async getKubernetesScanners(requestParameters: GetKubernetesScannersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.getKubernetesScannersRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Retrieve all the data associated with pods * Retrieve Pods data diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/MalwareScanApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/MalwareScanApi.ts index 6db702e8f3..b5e5920673 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/MalwareScanApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/MalwareScanApi.ts @@ -17,6 +17,8 @@ import * as runtime from '../runtime'; import type { ApiDocsBadRequestResponse, ApiDocsFailureResponse, + IngestersMalware, + IngestersMalwareScanStatus, ModelScanListReq, ModelScanListResp, ModelScanResultsReq, @@ -30,6 +32,10 @@ import { ApiDocsBadRequestResponseToJSON, ApiDocsFailureResponseFromJSON, ApiDocsFailureResponseToJSON, + IngestersMalwareFromJSON, + IngestersMalwareToJSON, + IngestersMalwareScanStatusFromJSON, + IngestersMalwareScanStatusToJSON, ModelScanListReqFromJSON, ModelScanListReqToJSON, ModelScanListRespFromJSON, @@ -46,6 +52,14 @@ import { ModelScanTriggerRespToJSON, } from '../models'; +export interface IngestMalwareRequest { + ingestersMalware?: Array | null; +} + +export interface IngestMalwareScanStatusRequest { + ingestersMalwareScanStatus?: Array | null; +} + export interface ListMalwareScanRequest { modelScanListReq?: ModelScanListReq; } @@ -73,6 +87,38 @@ export interface StopMalwareScanRequest { * @interface MalwareScanApiInterface */ export interface MalwareScanApiInterface { + /** + * Ingest malware found while scanning the agent + * @summary Ingest Malware + * @param {Array} [ingestersMalware] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MalwareScanApiInterface + */ + ingestMalwareRaw(requestParameters: IngestMalwareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Ingest malware found while scanning the agent + * Ingest Malware + */ + ingestMalware(requestParameters: IngestMalwareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Ingest malware scan status from the agent + * @summary Ingest Malware Scan Status + * @param {Array} [ingestersMalwareScanStatus] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MalwareScanApiInterface + */ + ingestMalwareScanStatusRaw(requestParameters: IngestMalwareScanStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Ingest malware scan status from the agent + * Ingest Malware Scan Status + */ + ingestMalwareScanStatus(requestParameters: IngestMalwareScanStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * Get Malware Scans list on agent or registry * @summary Get Malware Scans List @@ -160,6 +206,82 @@ export interface MalwareScanApiInterface { */ export class MalwareScanApi extends runtime.BaseAPI implements MalwareScanApiInterface { + /** + * Ingest malware found while scanning the agent + * Ingest Malware + */ + async ingestMalwareRaw(requestParameters: IngestMalwareRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/ingest/malware`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.ingestersMalware?.map(IngestersMalwareToJSON), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Ingest malware found while scanning the agent + * Ingest Malware + */ + async ingestMalware(requestParameters: IngestMalwareRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.ingestMalwareRaw(requestParameters, initOverrides); + } + + /** + * Ingest malware scan status from the agent + * Ingest Malware Scan Status + */ + async ingestMalwareScanStatusRaw(requestParameters: IngestMalwareScanStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/ingest/malware-scan-logs`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: requestParameters.ingestersMalwareScanStatus?.map(IngestersMalwareScanStatusToJSON), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Ingest malware scan status from the agent + * Ingest Malware Scan Status + */ + async ingestMalwareScanStatus(requestParameters: IngestMalwareScanStatusRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.ingestMalwareScanStatusRaw(requestParameters, initOverrides); + } + /** * Get Malware Scans list on agent or registry * Get Malware Scans List diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/RegisryApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/RegisryApi.ts new file mode 100644 index 0000000000..f2bc24a523 --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/RegisryApi.ts @@ -0,0 +1,204 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ApiDocsBadRequestResponse, + ApiDocsFailureResponse, + ModelRegistryAddReq, +} from '../models'; +import { + ApiDocsBadRequestResponseFromJSON, + ApiDocsBadRequestResponseToJSON, + ApiDocsFailureResponseFromJSON, + ApiDocsFailureResponseToJSON, + ModelRegistryAddReqFromJSON, + ModelRegistryAddReqToJSON, +} from '../models'; + +export interface AddRegistryRequest { + modelRegistryAddReq?: ModelRegistryAddReq; +} + +/** + * RegisryApi - interface + * + * @export + * @interface RegisryApiInterface + */ +export interface RegisryApiInterface { + /** + * Add a new supported registry + * @summary Add Registry + * @param {ModelRegistryAddReq} [modelRegistryAddReq] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RegisryApiInterface + */ + addRegistryRaw(requestParameters: AddRegistryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Add a new supported registry + * Add Registry + */ + addRegistry(requestParameters: AddRegistryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * List all the images present in all the registries + * @summary List Images in Registry + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RegisryApiInterface + */ + listImagesInRegistryRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * List all the images present in all the registries + * List Images in Registry + */ + listImagesInRegistry(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * List all the added Registry + * @summary List Images in Registry + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RegisryApiInterface + */ + listRegistryRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List all the added Registry + * List Images in Registry + */ + listRegistry(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + +} + +/** + * + */ +export class RegisryApi extends runtime.BaseAPI implements RegisryApiInterface { + + /** + * Add a new supported registry + * Add Registry + */ + async addRegistryRaw(requestParameters: AddRegistryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/container-registry/`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: ModelRegistryAddReqToJSON(requestParameters.modelRegistryAddReq), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Add a new supported registry + * Add Registry + */ + async addRegistry(requestParameters: AddRegistryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.addRegistryRaw(requestParameters, initOverrides); + } + + /** + * List all the images present in all the registries + * List Images in Registry + */ + async listImagesInRegistryRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/container-registry/images`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * List all the images present in all the registries + * List Images in Registry + */ + async listImagesInRegistry(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.listImagesInRegistryRaw(initOverrides); + } + + /** + * List all the added Registry + * List Images in Registry + */ + async listRegistryRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/container-registry/`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * List all the added Registry + * List Images in Registry + */ + async listRegistry(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listRegistryRaw(initOverrides); + return await response.value(); + } + +} diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/TopologyApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/TopologyApi.ts index b13db3d9eb..2725078ecd 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/TopologyApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/TopologyApi.ts @@ -18,6 +18,8 @@ import type { ApiDocsBadRequestResponse, ApiDocsFailureResponse, ApiDocsGraphResult, + IngestersReportIngestionData, + ReportRawReport, ReportersTopologyFilters, } from '../models'; import { @@ -27,6 +29,10 @@ import { ApiDocsFailureResponseToJSON, ApiDocsGraphResultFromJSON, ApiDocsGraphResultToJSON, + IngestersReportIngestionDataFromJSON, + IngestersReportIngestionDataToJSON, + ReportRawReportFromJSON, + ReportRawReportToJSON, ReportersTopologyFiltersFromJSON, ReportersTopologyFiltersToJSON, } from '../models'; @@ -52,7 +58,11 @@ export interface GetTopologyGraphRequest { } export interface IngestAgentReportRequest { - requestBody?: Array | null; + reportRawReport?: ReportRawReport; +} + +export interface IngestSyncAgentReportRequest { + ingestersReportIngestionData?: IngestersReportIngestionData; } /** @@ -145,7 +155,7 @@ export interface TopologyApiInterface { /** * Ingest data reported by one Agent * @summary Ingest Topology Data - * @param {Array} [requestBody] + * @param {ReportRawReport} [reportRawReport] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof TopologyApiInterface @@ -158,6 +168,22 @@ export interface TopologyApiInterface { */ ingestAgentReport(requestParameters: IngestAgentReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Ingest data reported by one Agent + * @summary Ingest Topology Data + * @param {IngestersReportIngestionData} [ingestersReportIngestionData] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof TopologyApiInterface + */ + ingestSyncAgentReportRaw(requestParameters: IngestSyncAgentReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Ingest data reported by one Agent + * Ingest Topology Data + */ + ingestSyncAgentReport(requestParameters: IngestSyncAgentReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** @@ -384,7 +410,7 @@ export class TopologyApi extends runtime.BaseAPI implements TopologyApiInterface method: 'POST', headers: headerParameters, query: queryParameters, - body: requestParameters.requestBody, + body: ReportRawReportToJSON(requestParameters.reportRawReport), }, initOverrides); return new runtime.VoidApiResponse(response); @@ -398,4 +424,42 @@ export class TopologyApi extends runtime.BaseAPI implements TopologyApiInterface await this.ingestAgentReportRaw(requestParameters, initOverrides); } + /** + * Ingest data reported by one Agent + * Ingest Topology Data + */ + async ingestSyncAgentReportRaw(requestParameters: IngestSyncAgentReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearer_token", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/deepfence/ingest/sync-report`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: IngestersReportIngestionDataToJSON(requestParameters.ingestersReportIngestionData), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Ingest data reported by one Agent + * Ingest Topology Data + */ + async ingestSyncAgentReport(requestParameters: IngestSyncAgentReportRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.ingestSyncAgentReportRaw(requestParameters, initOverrides); + } + } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/UserApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/UserApi.ts index 11d38c08b5..1414d765e0 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/UserApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/UserApi.ts @@ -18,10 +18,12 @@ import type { ApiDocsBadRequestResponse, ApiDocsFailureResponse, ModelInviteUserRequest, + ModelInviteUserResponse, + ModelMessageResponse, ModelPasswordResetRequest, ModelPasswordResetVerifyRequest, ModelRegisterInvitedUserRequest, - ModelResponse, + ModelResponseAccessToken, ModelUser, ModelUserRegisterRequest, } from '../models'; @@ -32,14 +34,18 @@ import { ApiDocsFailureResponseToJSON, ModelInviteUserRequestFromJSON, ModelInviteUserRequestToJSON, + ModelInviteUserResponseFromJSON, + ModelInviteUserResponseToJSON, + ModelMessageResponseFromJSON, + ModelMessageResponseToJSON, ModelPasswordResetRequestFromJSON, ModelPasswordResetRequestToJSON, ModelPasswordResetVerifyRequestFromJSON, ModelPasswordResetVerifyRequestToJSON, ModelRegisterInvitedUserRequestFromJSON, ModelRegisterInvitedUserRequestToJSON, - ModelResponseFromJSON, - ModelResponseToJSON, + ModelResponseAccessTokenFromJSON, + ModelResponseAccessTokenToJSON, ModelUserFromJSON, ModelUserToJSON, ModelUserRegisterRequestFromJSON, @@ -99,13 +105,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - getApiTokensRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + getApiTokensRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** * Get logged in user\'s API Tokens * Get User\'s API Tokens */ - getApiTokens(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + getApiTokens(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Get logged in user information @@ -114,13 +120,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - getCurrentUserRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + getCurrentUserRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Get logged in user information * Get Current User */ - getCurrentUser(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + getCurrentUser(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Invite a user @@ -130,13 +136,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - inviteUserRaw(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + inviteUserRaw(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Invite a user * Invite User */ - inviteUser(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + inviteUser(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Register invited user @@ -146,13 +152,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - registerInvitedUserRaw(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + registerInvitedUserRaw(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Register invited user * Register Invited User */ - registerInvitedUser(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + registerInvitedUser(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * First user registration. Further users needs to be invited. @@ -162,13 +168,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - registerUserRaw(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + registerUserRaw(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * First user registration. Further users needs to be invited. * Register User */ - registerUser(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + registerUser(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Request for resetting the password @@ -178,13 +184,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - resetPasswordRequestRaw(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + resetPasswordRequestRaw(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Request for resetting the password * Reset Password Request */ - resetPasswordRequest(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + resetPasswordRequest(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Update logged in user information @@ -194,13 +200,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - updateCurrentUserRaw(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + updateCurrentUserRaw(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Update logged in user information * Update Current User */ - updateCurrentUser(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + updateCurrentUser(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * Verify code and reset the password @@ -210,13 +216,13 @@ export interface UserApiInterface { * @throws {RequiredError} * @memberof UserApiInterface */ - verifyResetPasswordRequestRaw(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + verifyResetPasswordRequestRaw(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * Verify code and reset the password * Verify and Reset Password */ - verifyResetPasswordRequest(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + verifyResetPasswordRequest(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } @@ -264,7 +270,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Get logged in user\'s API Tokens * Get User\'s API Tokens */ - async getApiTokensRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getApiTokensRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -284,14 +290,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response); } /** * Get logged in user\'s API Tokens * Get User\'s API Tokens */ - async getApiTokens(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async getApiTokens(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.getApiTokensRaw(initOverrides); return await response.value(); } @@ -300,7 +306,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Get logged in user information * Get Current User */ - async getCurrentUserRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getCurrentUserRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -320,14 +326,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelUserFromJSON(jsonValue)); } /** * Get logged in user information * Get Current User */ - async getCurrentUser(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async getCurrentUser(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getCurrentUserRaw(initOverrides); return await response.value(); } @@ -336,7 +342,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Invite a user * Invite User */ - async inviteUserRaw(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async inviteUserRaw(requestParameters: InviteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -359,14 +365,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelInviteUserRequestToJSON(requestParameters.modelInviteUserRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelInviteUserResponseFromJSON(jsonValue)); } /** * Invite a user * Invite User */ - async inviteUser(requestParameters: InviteUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async inviteUser(requestParameters: InviteUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.inviteUserRaw(requestParameters, initOverrides); return await response.value(); } @@ -375,7 +381,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Register invited user * Register Invited User */ - async registerInvitedUserRaw(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async registerInvitedUserRaw(requestParameters: RegisterInvitedUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -390,14 +396,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelRegisterInvitedUserRequestToJSON(requestParameters.modelRegisterInvitedUserRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseAccessTokenFromJSON(jsonValue)); } /** * Register invited user * Register Invited User */ - async registerInvitedUser(requestParameters: RegisterInvitedUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async registerInvitedUser(requestParameters: RegisterInvitedUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.registerInvitedUserRaw(requestParameters, initOverrides); return await response.value(); } @@ -406,7 +412,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * First user registration. Further users needs to be invited. * Register User */ - async registerUserRaw(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async registerUserRaw(requestParameters: RegisterUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -421,14 +427,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelUserRegisterRequestToJSON(requestParameters.modelUserRegisterRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseAccessTokenFromJSON(jsonValue)); } /** * First user registration. Further users needs to be invited. * Register User */ - async registerUser(requestParameters: RegisterUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async registerUser(requestParameters: RegisterUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.registerUserRaw(requestParameters, initOverrides); return await response.value(); } @@ -437,7 +443,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Request for resetting the password * Reset Password Request */ - async resetPasswordRequestRaw(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async resetPasswordRequestRaw(requestParameters: ResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -452,14 +458,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelPasswordResetRequestToJSON(requestParameters.modelPasswordResetRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelMessageResponseFromJSON(jsonValue)); } /** * Request for resetting the password * Reset Password Request */ - async resetPasswordRequest(requestParameters: ResetPasswordRequestRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async resetPasswordRequest(requestParameters: ResetPasswordRequestRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.resetPasswordRequestRaw(requestParameters, initOverrides); return await response.value(); } @@ -468,7 +474,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Update logged in user information * Update Current User */ - async updateCurrentUserRaw(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async updateCurrentUserRaw(requestParameters: UpdateCurrentUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -491,14 +497,14 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelUserToJSON(requestParameters.modelUser), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => ModelUserFromJSON(jsonValue)); } /** * Update logged in user information * Update Current User */ - async updateCurrentUser(requestParameters: UpdateCurrentUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async updateCurrentUser(requestParameters: UpdateCurrentUserRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.updateCurrentUserRaw(requestParameters, initOverrides); return await response.value(); } @@ -507,7 +513,7 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { * Verify code and reset the password * Verify and Reset Password */ - async verifyResetPasswordRequestRaw(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async verifyResetPasswordRequestRaw(requestParameters: VerifyResetPasswordRequestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -522,16 +528,15 @@ export class UserApi extends runtime.BaseAPI implements UserApiInterface { body: ModelPasswordResetVerifyRequestToJSON(requestParameters.modelPasswordResetVerifyRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => ModelResponseFromJSON(jsonValue)); + return new runtime.VoidApiResponse(response); } /** * Verify code and reset the password * Verify and Reset Password */ - async verifyResetPasswordRequest(requestParameters: VerifyResetPasswordRequestRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.verifyResetPasswordRequestRaw(requestParameters, initOverrides); - return await response.value(); + async verifyResetPasswordRequest(requestParameters: VerifyResetPasswordRequestRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.verifyResetPasswordRequestRaw(requestParameters, initOverrides); } } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/VulnerabilityApi.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/VulnerabilityApi.ts index 64d1200702..cad80758bd 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/VulnerabilityApi.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/VulnerabilityApi.ts @@ -26,6 +26,7 @@ import type { ModelScanStatusResp, ModelScanTriggerReq, ModelScanTriggerResp, + ModelVulnerabilityScanTriggerReq, UtilsSbomRequest, } from '../models'; import { @@ -51,6 +52,8 @@ import { ModelScanTriggerReqToJSON, ModelScanTriggerRespFromJSON, ModelScanTriggerRespToJSON, + ModelVulnerabilityScanTriggerReqFromJSON, + ModelVulnerabilityScanTriggerReqToJSON, UtilsSbomRequestFromJSON, UtilsSbomRequestToJSON, } from '../models'; @@ -76,7 +79,7 @@ export interface ResultsVulnerabilityScansRequest { } export interface StartVulnerabilityScanRequest { - modelScanTriggerReq?: ModelScanTriggerReq; + modelVulnerabilityScanTriggerReq?: ModelVulnerabilityScanTriggerReq; } export interface StatusVulnerabilityScanRequest { @@ -177,7 +180,7 @@ export interface VulnerabilityApiInterface { /** * Start Vulnerability Scan on agent or registry * @summary Start Vulnerability Scan - * @param {ModelScanTriggerReq} [modelScanTriggerReq] + * @param {ModelVulnerabilityScanTriggerReq} [modelVulnerabilityScanTriggerReq] * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof VulnerabilityApiInterface @@ -445,7 +448,7 @@ export class VulnerabilityApi extends runtime.BaseAPI implements VulnerabilityAp method: 'POST', headers: headerParameters, query: queryParameters, - body: ModelScanTriggerReqToJSON(requestParameters.modelScanTriggerReq), + body: ModelVulnerabilityScanTriggerReqToJSON(requestParameters.modelVulnerabilityScanTriggerReq), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ModelScanTriggerRespFromJSON(jsonValue)); diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/apis/index.ts b/deepfence_frontend/apps/dashboard/src/api/generated/apis/index.ts index dfd1cfcc3b..7a674e6b57 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/apis/index.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/apis/index.ts @@ -1,14 +1,16 @@ /* tslint:disable */ /* eslint-disable */ export * from './AuthenticationApi'; -export * from './CloudComplianceApi'; export * from './CloudNodesApi'; export * from './CloudResourcesApi'; +export * from './CloudScannerApi'; export * from './ComplianceApi'; export * from './ControlsApi'; export * from './DiagnosisApi'; +export * from './KubernetesScannerApi'; export * from './LookupApi'; export * from './MalwareScanApi'; +export * from './RegisryApi'; export * from './SecretScanApi'; export * from './ThreatApi'; export * from './TopologyApi'; diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerControlResponse.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerControlResponse.ts new file mode 100644 index 0000000000..057d7fbe0e --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerControlResponse.ts @@ -0,0 +1,72 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { ControlsKubernetesScannerPendingScans } from './ControlsKubernetesScannerPendingScans'; +import { + ControlsKubernetesScannerPendingScansFromJSON, + ControlsKubernetesScannerPendingScansFromJSONTyped, + ControlsKubernetesScannerPendingScansToJSON, +} from './ControlsKubernetesScannerPendingScans'; + +/** + * + * @export + * @interface ControlsKubernetesScannerControlResponse + */ +export interface ControlsKubernetesScannerControlResponse { + /** + * + * @type {ControlsKubernetesScannerPendingScans} + * @memberof ControlsKubernetesScannerControlResponse + */ + data?: ControlsKubernetesScannerPendingScans; +} + +/** + * Check if a given object implements the ControlsKubernetesScannerControlResponse interface. + */ +export function instanceOfControlsKubernetesScannerControlResponse(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function ControlsKubernetesScannerControlResponseFromJSON(json: any): ControlsKubernetesScannerControlResponse { + return ControlsKubernetesScannerControlResponseFromJSONTyped(json, false); +} + +export function ControlsKubernetesScannerControlResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ControlsKubernetesScannerControlResponse { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'data': !exists(json, 'data') ? undefined : ControlsKubernetesScannerPendingScansFromJSON(json['data']), + }; +} + +export function ControlsKubernetesScannerControlResponseToJSON(value?: ControlsKubernetesScannerControlResponse | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'data': ControlsKubernetesScannerPendingScansToJSON(value.data), + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScan.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScan.ts new file mode 100644 index 0000000000..a77d8255ed --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScan.ts @@ -0,0 +1,89 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ControlsKubernetesScannerPendingScan + */ +export interface ControlsKubernetesScannerPendingScan { + /** + * + * @type {string} + * @memberof ControlsKubernetesScannerPendingScan + */ + account_id?: string; + /** + * + * @type {Array} + * @memberof ControlsKubernetesScannerPendingScan + */ + controls?: Array | null; + /** + * + * @type {string} + * @memberof ControlsKubernetesScannerPendingScan + */ + scan_id?: string; + /** + * + * @type {string} + * @memberof ControlsKubernetesScannerPendingScan + */ + scan_type?: string; +} + +/** + * Check if a given object implements the ControlsKubernetesScannerPendingScan interface. + */ +export function instanceOfControlsKubernetesScannerPendingScan(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function ControlsKubernetesScannerPendingScanFromJSON(json: any): ControlsKubernetesScannerPendingScan { + return ControlsKubernetesScannerPendingScanFromJSONTyped(json, false); +} + +export function ControlsKubernetesScannerPendingScanFromJSONTyped(json: any, ignoreDiscriminator: boolean): ControlsKubernetesScannerPendingScan { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'account_id': !exists(json, 'account_id') ? undefined : json['account_id'], + 'controls': !exists(json, 'controls') ? undefined : json['controls'], + 'scan_id': !exists(json, 'scan_id') ? undefined : json['scan_id'], + 'scan_type': !exists(json, 'scan_type') ? undefined : json['scan_type'], + }; +} + +export function ControlsKubernetesScannerPendingScanToJSON(value?: ControlsKubernetesScannerPendingScan | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'account_id': value.account_id, + 'controls': value.controls, + 'scan_id': value.scan_id, + 'scan_type': value.scan_type, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScans.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScans.ts new file mode 100644 index 0000000000..dbb462df88 --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ControlsKubernetesScannerPendingScans.ts @@ -0,0 +1,80 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { ControlsKubernetesScannerPendingScan } from './ControlsKubernetesScannerPendingScan'; +import { + ControlsKubernetesScannerPendingScanFromJSON, + ControlsKubernetesScannerPendingScanFromJSONTyped, + ControlsKubernetesScannerPendingScanToJSON, +} from './ControlsKubernetesScannerPendingScan'; + +/** + * + * @export + * @interface ControlsKubernetesScannerPendingScans + */ +export interface ControlsKubernetesScannerPendingScans { + /** + * + * @type {string} + * @memberof ControlsKubernetesScannerPendingScans + */ + refresh?: string; + /** + * + * @type {{ [key: string]: ControlsKubernetesScannerPendingScan; }} + * @memberof ControlsKubernetesScannerPendingScans + */ + scans?: { [key: string]: ControlsKubernetesScannerPendingScan; }; +} + +/** + * Check if a given object implements the ControlsKubernetesScannerPendingScans interface. + */ +export function instanceOfControlsKubernetesScannerPendingScans(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function ControlsKubernetesScannerPendingScansFromJSON(json: any): ControlsKubernetesScannerPendingScans { + return ControlsKubernetesScannerPendingScansFromJSONTyped(json, false); +} + +export function ControlsKubernetesScannerPendingScansFromJSONTyped(json: any, ignoreDiscriminator: boolean): ControlsKubernetesScannerPendingScans { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'refresh': !exists(json, 'refresh') ? undefined : json['refresh'], + 'scans': !exists(json, 'scans') ? undefined : (mapValues(json['scans'], ControlsKubernetesScannerPendingScanFromJSON)), + }; +} + +export function ControlsKubernetesScannerPendingScansToJSON(value?: ControlsKubernetesScannerPendingScans | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'refresh': value.refresh, + 'scans': value.scans === undefined ? undefined : (mapValues(value.scans, ControlsKubernetesScannerPendingScanToJSON)), + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalware.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalware.ts new file mode 100644 index 0000000000..8b5442ef5d --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalware.ts @@ -0,0 +1,209 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface IngestersMalware + */ +export interface IngestersMalware { + /** + * + * @type {Date} + * @memberof IngestersMalware + */ + timestamp?: Date; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + Class?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + CompleteFilename?: string; + /** + * + * @type {number} + * @memberof IngestersMalware + */ + FileSevScore?: number; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + FileSeverity?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + ImageLayerId?: string; + /** + * + * @type {Array} + * @memberof IngestersMalware + */ + Meta?: Array; + /** + * + * @type {{ [key: string]: string; }} + * @memberof IngestersMalware + */ + Meta_Rules?: { [key: string]: string; }; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + RuleName?: string; + /** + * + * @type {number} + * @memberof IngestersMalware + */ + SeverityScore?: number; + /** + * + * @type {Array} + * @memberof IngestersMalware + */ + StringsToMatch?: Array; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + Summary?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + container_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + host_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + kubernetes_cluster_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + masked?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + node_id?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + node_type?: string; + /** + * + * @type {string} + * @memberof IngestersMalware + */ + scan_id?: string; +} + +/** + * Check if a given object implements the IngestersMalware interface. + */ +export function instanceOfIngestersMalware(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function IngestersMalwareFromJSON(json: any): IngestersMalware { + return IngestersMalwareFromJSONTyped(json, false); +} + +export function IngestersMalwareFromJSONTyped(json: any, ignoreDiscriminator: boolean): IngestersMalware { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'timestamp': !exists(json, '@timestamp') ? undefined : (new Date(json['@timestamp'])), + 'Class': !exists(json, 'Class') ? undefined : json['Class'], + 'CompleteFilename': !exists(json, 'CompleteFilename') ? undefined : json['CompleteFilename'], + 'FileSevScore': !exists(json, 'FileSevScore') ? undefined : json['FileSevScore'], + 'FileSeverity': !exists(json, 'FileSeverity') ? undefined : json['FileSeverity'], + 'ImageLayerId': !exists(json, 'ImageLayerId') ? undefined : json['ImageLayerId'], + 'Meta': !exists(json, 'Meta') ? undefined : json['Meta'], + 'Meta_Rules': !exists(json, 'Meta Rules') ? undefined : json['Meta Rules'], + 'RuleName': !exists(json, 'RuleName') ? undefined : json['RuleName'], + 'SeverityScore': !exists(json, 'SeverityScore') ? undefined : json['SeverityScore'], + 'StringsToMatch': !exists(json, 'StringsToMatch') ? undefined : json['StringsToMatch'], + 'Summary': !exists(json, 'Summary') ? undefined : json['Summary'], + 'container_name': !exists(json, 'container_name') ? undefined : json['container_name'], + 'host_name': !exists(json, 'host_name') ? undefined : json['host_name'], + 'kubernetes_cluster_name': !exists(json, 'kubernetes_cluster_name') ? undefined : json['kubernetes_cluster_name'], + 'masked': !exists(json, 'masked') ? undefined : json['masked'], + 'node_id': !exists(json, 'node_id') ? undefined : json['node_id'], + 'node_type': !exists(json, 'node_type') ? undefined : json['node_type'], + 'scan_id': !exists(json, 'scan_id') ? undefined : json['scan_id'], + }; +} + +export function IngestersMalwareToJSON(value?: IngestersMalware | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + '@timestamp': value.timestamp === undefined ? undefined : (value.timestamp.toISOString()), + 'Class': value.Class, + 'CompleteFilename': value.CompleteFilename, + 'FileSevScore': value.FileSevScore, + 'FileSeverity': value.FileSeverity, + 'ImageLayerId': value.ImageLayerId, + 'Meta': value.Meta, + 'Meta Rules': value.Meta_Rules, + 'RuleName': value.RuleName, + 'SeverityScore': value.SeverityScore, + 'StringsToMatch': value.StringsToMatch, + 'Summary': value.Summary, + 'container_name': value.container_name, + 'host_name': value.host_name, + 'kubernetes_cluster_name': value.kubernetes_cluster_name, + 'masked': value.masked, + 'node_id': value.node_id, + 'node_type': value.node_type, + 'scan_id': value.scan_id, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalwareScanStatus.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalwareScanStatus.ts new file mode 100644 index 0000000000..728ac23090 --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersMalwareScanStatus.ts @@ -0,0 +1,137 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface IngestersMalwareScanStatus + */ +export interface IngestersMalwareScanStatus { + /** + * + * @type {Date} + * @memberof IngestersMalwareScanStatus + */ + timestamp?: Date; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + container_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + host_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + kubernetes_cluster_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + masked?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + node_id?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + node_name?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + node_type?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + scan_id?: string; + /** + * + * @type {string} + * @memberof IngestersMalwareScanStatus + */ + scan_status?: string; +} + +/** + * Check if a given object implements the IngestersMalwareScanStatus interface. + */ +export function instanceOfIngestersMalwareScanStatus(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function IngestersMalwareScanStatusFromJSON(json: any): IngestersMalwareScanStatus { + return IngestersMalwareScanStatusFromJSONTyped(json, false); +} + +export function IngestersMalwareScanStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): IngestersMalwareScanStatus { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'timestamp': !exists(json, '@timestamp') ? undefined : (new Date(json['@timestamp'])), + 'container_name': !exists(json, 'container_name') ? undefined : json['container_name'], + 'host_name': !exists(json, 'host_name') ? undefined : json['host_name'], + 'kubernetes_cluster_name': !exists(json, 'kubernetes_cluster_name') ? undefined : json['kubernetes_cluster_name'], + 'masked': !exists(json, 'masked') ? undefined : json['masked'], + 'node_id': !exists(json, 'node_id') ? undefined : json['node_id'], + 'node_name': !exists(json, 'node_name') ? undefined : json['node_name'], + 'node_type': !exists(json, 'node_type') ? undefined : json['node_type'], + 'scan_id': !exists(json, 'scan_id') ? undefined : json['scan_id'], + 'scan_status': !exists(json, 'scan_status') ? undefined : json['scan_status'], + }; +} + +export function IngestersMalwareScanStatusToJSON(value?: IngestersMalwareScanStatus | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + '@timestamp': value.timestamp === undefined ? undefined : (value.timestamp.toISOString()), + 'container_name': value.container_name, + 'host_name': value.host_name, + 'kubernetes_cluster_name': value.kubernetes_cluster_name, + 'masked': value.masked, + 'node_id': value.node_id, + 'node_name': value.node_name, + 'node_type': value.node_type, + 'scan_id': value.scan_id, + 'scan_status': value.scan_status, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersRegisterKubernetesScannerRequest.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersRegisterKubernetesScannerRequest.ts new file mode 100644 index 0000000000..7937fffecd --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersRegisterKubernetesScannerRequest.ts @@ -0,0 +1,73 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface IngestersRegisterKubernetesScannerRequest + */ +export interface IngestersRegisterKubernetesScannerRequest { + /** + * + * @type {string} + * @memberof IngestersRegisterKubernetesScannerRequest + */ + kubernetes_cluster_name?: string; + /** + * + * @type {string} + * @memberof IngestersRegisterKubernetesScannerRequest + */ + node_id?: string; +} + +/** + * Check if a given object implements the IngestersRegisterKubernetesScannerRequest interface. + */ +export function instanceOfIngestersRegisterKubernetesScannerRequest(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function IngestersRegisterKubernetesScannerRequestFromJSON(json: any): IngestersRegisterKubernetesScannerRequest { + return IngestersRegisterKubernetesScannerRequestFromJSONTyped(json, false); +} + +export function IngestersRegisterKubernetesScannerRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): IngestersRegisterKubernetesScannerRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'kubernetes_cluster_name': !exists(json, 'kubernetes_cluster_name') ? undefined : json['kubernetes_cluster_name'], + 'node_id': !exists(json, 'node_id') ? undefined : json['node_id'], + }; +} + +export function IngestersRegisterKubernetesScannerRequestToJSON(value?: IngestersRegisterKubernetesScannerRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'kubernetes_cluster_name': value.kubernetes_cluster_name, + 'node_id': value.node_id, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersReportIngestionData.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersReportIngestionData.ts new file mode 100644 index 0000000000..78aa742a5f --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/IngestersReportIngestionData.ts @@ -0,0 +1,174 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface IngestersReportIngestionData + */ +export interface IngestersReportIngestionData { + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + container_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + container_edges_batch: Array<{ [key: string]: any; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + container_image_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + container_image_edge_batch: Array<{ [key: string]: any; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + endpoint_edges_batch: Array<{ [key: string]: any; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + host_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + hosts: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + kubernetes_cluster_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + kubernetes_cluster_edge_batch: Array<{ [key: string]: any; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + pod_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + pod_edges_batch: Array<{ [key: string]: any; }> | null; + /** + * + * @type {Array<{ [key: string]: string; }>} + * @memberof IngestersReportIngestionData + */ + process_batch: Array<{ [key: string]: string; }> | null; + /** + * + * @type {Array<{ [key: string]: any; }>} + * @memberof IngestersReportIngestionData + */ + process_edges_batch: Array<{ [key: string]: any; }> | null; +} + +/** + * Check if a given object implements the IngestersReportIngestionData interface. + */ +export function instanceOfIngestersReportIngestionData(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "container_batch" in value; + isInstance = isInstance && "container_edges_batch" in value; + isInstance = isInstance && "container_image_batch" in value; + isInstance = isInstance && "container_image_edge_batch" in value; + isInstance = isInstance && "endpoint_edges_batch" in value; + isInstance = isInstance && "host_batch" in value; + isInstance = isInstance && "hosts" in value; + isInstance = isInstance && "kubernetes_cluster_batch" in value; + isInstance = isInstance && "kubernetes_cluster_edge_batch" in value; + isInstance = isInstance && "pod_batch" in value; + isInstance = isInstance && "pod_edges_batch" in value; + isInstance = isInstance && "process_batch" in value; + isInstance = isInstance && "process_edges_batch" in value; + + return isInstance; +} + +export function IngestersReportIngestionDataFromJSON(json: any): IngestersReportIngestionData { + return IngestersReportIngestionDataFromJSONTyped(json, false); +} + +export function IngestersReportIngestionDataFromJSONTyped(json: any, ignoreDiscriminator: boolean): IngestersReportIngestionData { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'container_batch': json['container_batch'], + 'container_edges_batch': json['container_edges_batch'], + 'container_image_batch': json['container_image_batch'], + 'container_image_edge_batch': json['container_image_edge_batch'], + 'endpoint_edges_batch': json['endpoint_edges_batch'], + 'host_batch': json['host_batch'], + 'hosts': json['hosts'], + 'kubernetes_cluster_batch': json['kubernetes_cluster_batch'], + 'kubernetes_cluster_edge_batch': json['kubernetes_cluster_edge_batch'], + 'pod_batch': json['pod_batch'], + 'pod_edges_batch': json['pod_edges_batch'], + 'process_batch': json['process_batch'], + 'process_edges_batch': json['process_edges_batch'], + }; +} + +export function IngestersReportIngestionDataToJSON(value?: IngestersReportIngestionData | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'container_batch': value.container_batch, + 'container_edges_batch': value.container_edges_batch, + 'container_image_batch': value.container_image_batch, + 'container_image_edge_batch': value.container_image_edge_batch, + 'endpoint_edges_batch': value.endpoint_edges_batch, + 'host_batch': value.host_batch, + 'hosts': value.hosts, + 'kubernetes_cluster_batch': value.kubernetes_cluster_batch, + 'kubernetes_cluster_edge_batch': value.kubernetes_cluster_edge_batch, + 'pod_batch': value.pod_batch, + 'pod_edges_batch': value.pod_edges_batch, + 'process_batch': value.process_batch, + 'process_edges_batch': value.process_edges_batch, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentImageMetadata.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentUpgrade.ts similarity index 58% rename from deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentImageMetadata.ts rename to deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentUpgrade.ts index b35b14f0cb..0835aef975 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentImageMetadata.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelAgentUpgrade.ts @@ -16,58 +16,50 @@ import { exists, mapValues } from '../runtime'; /** * * @export - * @interface ModelAgentImageMetadata + * @interface ModelAgentUpgrade */ -export interface ModelAgentImageMetadata { +export interface ModelAgentUpgrade { /** * * @type {string} - * @memberof ModelAgentImageMetadata + * @memberof ModelAgentUpgrade */ - image_name: string; + node_id: string; /** * * @type {string} - * @memberof ModelAgentImageMetadata - */ - image_tag: string; - /** - * - * @type {string} - * @memberof ModelAgentImageMetadata + * @memberof ModelAgentUpgrade */ version: string; } /** - * Check if a given object implements the ModelAgentImageMetadata interface. + * Check if a given object implements the ModelAgentUpgrade interface. */ -export function instanceOfModelAgentImageMetadata(value: object): boolean { +export function instanceOfModelAgentUpgrade(value: object): boolean { let isInstance = true; - isInstance = isInstance && "image_name" in value; - isInstance = isInstance && "image_tag" in value; + isInstance = isInstance && "node_id" in value; isInstance = isInstance && "version" in value; return isInstance; } -export function ModelAgentImageMetadataFromJSON(json: any): ModelAgentImageMetadata { - return ModelAgentImageMetadataFromJSONTyped(json, false); +export function ModelAgentUpgradeFromJSON(json: any): ModelAgentUpgrade { + return ModelAgentUpgradeFromJSONTyped(json, false); } -export function ModelAgentImageMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelAgentImageMetadata { +export function ModelAgentUpgradeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelAgentUpgrade { if ((json === undefined) || (json === null)) { return json; } return { - 'image_name': json['image_name'], - 'image_tag': json['image_tag'], + 'node_id': json['node_id'], 'version': json['version'], }; } -export function ModelAgentImageMetadataToJSON(value?: ModelAgentImageMetadata | null): any { +export function ModelAgentUpgradeToJSON(value?: ModelAgentUpgrade | null): any { if (value === undefined) { return undefined; } @@ -76,8 +68,7 @@ export function ModelAgentImageMetadataToJSON(value?: ModelAgentImageMetadata | } return { - 'image_name': value.image_name, - 'image_tag': value.image_tag, + 'node_id': value.node_id, 'version': value.version, }; } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelInviteUserResponse.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelInviteUserResponse.ts index 63a3b6c6c2..351517e831 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelInviteUserResponse.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelInviteUserResponse.ts @@ -31,6 +31,12 @@ export interface ModelInviteUserResponse { * @memberof ModelInviteUserResponse */ invite_url?: string; + /** + * + * @type {string} + * @memberof ModelInviteUserResponse + */ + message?: string; } /** @@ -54,6 +60,7 @@ export function ModelInviteUserResponseFromJSONTyped(json: any, ignoreDiscrimina 'invite_expiry_hours': !exists(json, 'invite_expiry_hours') ? undefined : json['invite_expiry_hours'], 'invite_url': !exists(json, 'invite_url') ? undefined : json['invite_url'], + 'message': !exists(json, 'message') ? undefined : json['message'], }; } @@ -68,6 +75,7 @@ export function ModelInviteUserResponseToJSON(value?: ModelInviteUserResponse | 'invite_expiry_hours': value.invite_expiry_hours, 'invite_url': value.invite_url, + 'message': value.message, }; } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelMessageResponse.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelMessageResponse.ts new file mode 100644 index 0000000000..131a78c04d --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelMessageResponse.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ModelMessageResponse + */ +export interface ModelMessageResponse { + /** + * + * @type {string} + * @memberof ModelMessageResponse + */ + message: string; +} + +/** + * Check if a given object implements the ModelMessageResponse interface. + */ +export function instanceOfModelMessageResponse(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "message" in value; + + return isInstance; +} + +export function ModelMessageResponseFromJSON(json: any): ModelMessageResponse { + return ModelMessageResponseFromJSONTyped(json, false); +} + +export function ModelMessageResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelMessageResponse { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'message': json['message'], + }; +} + +export function ModelMessageResponseToJSON(value?: ModelMessageResponse | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'message': value.message, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelRegistryAddReq.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelRegistryAddReq.ts new file mode 100644 index 0000000000..249ca335f4 --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelRegistryAddReq.ts @@ -0,0 +1,89 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ModelRegistryAddReq + */ +export interface ModelRegistryAddReq { + /** + * + * @type {string} + * @memberof ModelRegistryAddReq + */ + name?: string; + /** + * + * @type {{ [key: string]: any; }} + * @memberof ModelRegistryAddReq + */ + non_secret?: { [key: string]: any; } | null; + /** + * + * @type {string} + * @memberof ModelRegistryAddReq + */ + registry_type?: string; + /** + * + * @type {{ [key: string]: any; }} + * @memberof ModelRegistryAddReq + */ + secret?: { [key: string]: any; } | null; +} + +/** + * Check if a given object implements the ModelRegistryAddReq interface. + */ +export function instanceOfModelRegistryAddReq(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function ModelRegistryAddReqFromJSON(json: any): ModelRegistryAddReq { + return ModelRegistryAddReqFromJSONTyped(json, false); +} + +export function ModelRegistryAddReqFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelRegistryAddReq { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'name': !exists(json, 'name') ? undefined : json['name'], + 'non_secret': !exists(json, 'non_secret') ? undefined : json['non_secret'], + 'registry_type': !exists(json, 'registry_type') ? undefined : json['registry_type'], + 'secret': !exists(json, 'secret') ? undefined : json['secret'], + }; +} + +export function ModelRegistryAddReqToJSON(value?: ModelRegistryAddReq | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'name': value.name, + 'non_secret': value.non_secret, + 'registry_type': value.registry_type, + 'secret': value.secret, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelResponse.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelResponse.ts deleted file mode 100644 index 9afd2702ac..0000000000 --- a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelResponse.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Deepfence ThreatMapper - * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. - * - * The version of the OpenAPI document: 2.0.0 - * Contact: community@deepfence.io - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import type { ModelResponseAccessToken } from './ModelResponseAccessToken'; -import { - ModelResponseAccessTokenFromJSON, - ModelResponseAccessTokenFromJSONTyped, - ModelResponseAccessTokenToJSON, -} from './ModelResponseAccessToken'; - -/** - * - * @export - * @interface ModelResponse - */ -export interface ModelResponse { - /** - * - * @type {ModelResponseAccessToken} - * @memberof ModelResponse - */ - data?: ModelResponseAccessToken; - /** - * - * @type {{ [key: string]: string; }} - * @memberof ModelResponse - */ - error_fields?: { [key: string]: string; } | null; - /** - * - * @type {string} - * @memberof ModelResponse - */ - message?: string; - /** - * - * @type {boolean} - * @memberof ModelResponse - */ - success?: boolean; -} - -/** - * Check if a given object implements the ModelResponse interface. - */ -export function instanceOfModelResponse(value: object): boolean { - let isInstance = true; - - return isInstance; -} - -export function ModelResponseFromJSON(json: any): ModelResponse { - return ModelResponseFromJSONTyped(json, false); -} - -export function ModelResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'data': !exists(json, 'data') ? undefined : ModelResponseAccessTokenFromJSON(json['data']), - 'error_fields': !exists(json, 'error_fields') ? undefined : json['error_fields'], - 'message': !exists(json, 'message') ? undefined : json['message'], - 'success': !exists(json, 'success') ? undefined : json['success'], - }; -} - -export function ModelResponseToJSON(value?: ModelResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'data': ModelResponseAccessTokenToJSON(value.data), - 'error_fields': value.error_fields, - 'message': value.message, - 'success': value.success, - }; -} - diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelVulnerabilityScanTriggerReq.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelVulnerabilityScanTriggerReq.ts new file mode 100644 index 0000000000..820d61e7ef --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ModelVulnerabilityScanTriggerReq.ts @@ -0,0 +1,113 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ModelVulnerabilityScanTriggerReq + */ +export interface ModelVulnerabilityScanTriggerReq { + /** + * + * @type {string} + * @memberof ModelVulnerabilityScanTriggerReq + */ + node_id: string; + /** + * + * @type {string} + * @memberof ModelVulnerabilityScanTriggerReq + */ + node_type: ModelVulnerabilityScanTriggerReqNodeTypeEnum; + /** + * + * @type {string} + * @memberof ModelVulnerabilityScanTriggerReq + */ + scan_type: ModelVulnerabilityScanTriggerReqScanTypeEnum; +} + + +/** + * @export + */ +export const ModelVulnerabilityScanTriggerReqNodeTypeEnum = { + Image: 'image', + Host: 'host', + Container: 'container' +} as const; +export type ModelVulnerabilityScanTriggerReqNodeTypeEnum = typeof ModelVulnerabilityScanTriggerReqNodeTypeEnum[keyof typeof ModelVulnerabilityScanTriggerReqNodeTypeEnum]; + +/** + * @export + */ +export const ModelVulnerabilityScanTriggerReqScanTypeEnum = { + All: 'all', + Base: 'base', + Ruby: 'ruby', + Python: 'python', + Javascript: 'javascript', + Php: 'php', + Golang: 'golang', + Java: 'java', + Rust: 'rust', + Dotnet: 'dotnet' +} as const; +export type ModelVulnerabilityScanTriggerReqScanTypeEnum = typeof ModelVulnerabilityScanTriggerReqScanTypeEnum[keyof typeof ModelVulnerabilityScanTriggerReqScanTypeEnum]; + + +/** + * Check if a given object implements the ModelVulnerabilityScanTriggerReq interface. + */ +export function instanceOfModelVulnerabilityScanTriggerReq(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "node_id" in value; + isInstance = isInstance && "node_type" in value; + isInstance = isInstance && "scan_type" in value; + + return isInstance; +} + +export function ModelVulnerabilityScanTriggerReqFromJSON(json: any): ModelVulnerabilityScanTriggerReq { + return ModelVulnerabilityScanTriggerReqFromJSONTyped(json, false); +} + +export function ModelVulnerabilityScanTriggerReqFromJSONTyped(json: any, ignoreDiscriminator: boolean): ModelVulnerabilityScanTriggerReq { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'node_id': json['node_id'], + 'node_type': json['node_type'], + 'scan_type': json['scan_type'], + }; +} + +export function ModelVulnerabilityScanTriggerReqToJSON(value?: ModelVulnerabilityScanTriggerReq | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'node_id': value.node_id, + 'node_type': value.node_type, + 'scan_type': value.scan_type, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/ReportRawReport.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/ReportRawReport.ts new file mode 100644 index 0000000000..577c0d78a6 --- /dev/null +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/ReportRawReport.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Deepfence ThreatMapper + * Deepfence Runtime API provides programmatic control over Deepfence microservice securing your container, kubernetes and cloud deployments. The API abstracts away underlying infrastructure details like cloud provider, container distros, container orchestrator and type of deployment. This is one uniform API to manage and control security alerts, policies and response to alerts for microservices running anywhere i.e. managed pure greenfield container deployments or a mix of containers, VMs and serverless paradigms like AWS Fargate. + * + * The version of the OpenAPI document: 2.0.0 + * Contact: community@deepfence.io + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface ReportRawReport + */ +export interface ReportRawReport { + /** + * + * @type {string} + * @memberof ReportRawReport + */ + payload: string; +} + +/** + * Check if a given object implements the ReportRawReport interface. + */ +export function instanceOfReportRawReport(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "payload" in value; + + return isInstance; +} + +export function ReportRawReportFromJSON(json: any): ReportRawReport { + return ReportRawReportFromJSONTyped(json, false); +} + +export function ReportRawReportFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReportRawReport { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'payload': json['payload'], + }; +} + +export function ReportRawReportToJSON(value?: ReportRawReport | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'payload': value.payload, + }; +} + diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/UtilsSbomRequest.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/UtilsSbomRequest.ts index b69b9cc3b3..585aee4ad1 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/models/UtilsSbomRequest.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/UtilsSbomRequest.ts @@ -69,10 +69,10 @@ export interface UtilsSbomRequest { node_type?: string; /** * - * @type {Array} + * @type {string} * @memberof UtilsSbomRequest */ - sbom?: Array; + sbom: string; /** * * @type {string} @@ -84,7 +84,7 @@ export interface UtilsSbomRequest { * @type {string} * @memberof UtilsSbomRequest */ - scan_id?: string; + scan_id: string; /** * * @type {string} @@ -98,6 +98,8 @@ export interface UtilsSbomRequest { */ export function instanceOfUtilsSbomRequest(value: object): boolean { let isInstance = true; + isInstance = isInstance && "sbom" in value; + isInstance = isInstance && "scan_id" in value; return isInstance; } @@ -120,9 +122,9 @@ export function UtilsSbomRequestFromJSONTyped(json: any, ignoreDiscriminator: bo 'mode': !exists(json, 'mode') ? undefined : json['mode'], 'node_id': !exists(json, 'node_id') ? undefined : json['node_id'], 'node_type': !exists(json, 'node_type') ? undefined : json['node_type'], - 'sbom': !exists(json, 'sbom') ? undefined : json['sbom'], + 'sbom': json['sbom'], 'sbom_file_path': !exists(json, 'sbom_file_path') ? undefined : json['sbom_file_path'], - 'scan_id': !exists(json, 'scan_id') ? undefined : json['scan_id'], + 'scan_id': json['scan_id'], 'scan_type': !exists(json, 'scan_type') ? undefined : json['scan_type'], }; } diff --git a/deepfence_frontend/apps/dashboard/src/api/generated/models/index.ts b/deepfence_frontend/apps/dashboard/src/api/generated/models/index.ts index bf6aebe6bf..7da6588471 100644 --- a/deepfence_frontend/apps/dashboard/src/api/generated/models/index.ts +++ b/deepfence_frontend/apps/dashboard/src/api/generated/models/index.ts @@ -5,6 +5,9 @@ export * from './ApiDocsFailureResponse'; export * from './ApiDocsGraphResult'; export * from './ControlsAction'; export * from './ControlsAgentControls'; +export * from './ControlsKubernetesScannerControlResponse'; +export * from './ControlsKubernetesScannerPendingScan'; +export * from './ControlsKubernetesScannerPendingScans'; export * from './DetailedConnectionSummary'; export * from './DetailedNodeSummary'; export * from './DetailedParent'; @@ -12,6 +15,10 @@ export * from './DiagnosisDiagnosticNotification'; export * from './IngestersCloudCompliance'; export * from './IngestersCloudResource'; export * from './IngestersCompliance'; +export * from './IngestersMalware'; +export * from './IngestersMalwareScanStatus'; +export * from './IngestersRegisterKubernetesScannerRequest'; +export * from './IngestersReportIngestionData'; export * from './IngestersSecret'; export * from './IngestersSecretMatch'; export * from './IngestersSecretRule'; @@ -20,7 +27,7 @@ export * from './IngestersSecretSeverity'; export * from './IngestersVulnerability'; export * from './IngestersVulnerabilityScanStatus'; export * from './ModelAgentId'; -export * from './ModelAgentImageMetadata'; +export * from './ModelAgentUpgrade'; export * from './ModelApiAuthRequest'; export * from './ModelCloudComplianceScanDetails'; export * from './ModelCloudNodeAccountInfo'; @@ -39,12 +46,13 @@ export * from './ModelInviteUserRequest'; export * from './ModelInviteUserResponse'; export * from './ModelKubernetesCluster'; export * from './ModelLoginRequest'; +export * from './ModelMessageResponse'; export * from './ModelPasswordResetRequest'; export * from './ModelPasswordResetVerifyRequest'; export * from './ModelPod'; export * from './ModelProcess'; export * from './ModelRegisterInvitedUserRequest'; -export * from './ModelResponse'; +export * from './ModelRegistryAddReq'; export * from './ModelResponseAccessToken'; export * from './ModelScanInfo'; export * from './ModelScanListReq'; @@ -56,8 +64,10 @@ export * from './ModelScanTriggerReq'; export * from './ModelScanTriggerResp'; export * from './ModelUser'; export * from './ModelUserRegisterRequest'; +export * from './ModelVulnerabilityScanTriggerReq'; export * from './ReportColumn'; export * from './ReportMetadataRow'; +export * from './ReportRawReport'; export * from './ReportRow'; export * from './ReportTable'; export * from './ReportersContainsFilter'; diff --git a/deepfence_frontend/apps/dashboard/src/features/auth/actions/loginAction.ts b/deepfence_frontend/apps/dashboard/src/features/auth/actions/loginAction.ts index 1c5911f5f6..c89252e822 100644 --- a/deepfence_frontend/apps/dashboard/src/features/auth/actions/loginAction.ts +++ b/deepfence_frontend/apps/dashboard/src/features/auth/actions/loginAction.ts @@ -1,7 +1,7 @@ import { ActionFunction, redirect } from 'react-router-dom'; import { getAuthenticationApiClient } from '@/api/api'; -import { ModelResponse } from '@/api/generated'; +import { ApiDocsBadRequestResponse } from '@/api/generated'; import { ApiError, makeRequest } from '@/utils/api'; import storage from '@/utils/storage'; @@ -36,7 +36,7 @@ export const loginAction: ActionFunction = async ({ error: 'Invalid credentials', }); } else if (r.status === 400) { - const modelResponse: ModelResponse = await r.json(); + const modelResponse: ApiDocsBadRequestResponse = await r.json(); return error.set({ fieldErrors: { email: modelResponse.error_fields?.email, @@ -52,8 +52,8 @@ export const loginAction: ActionFunction = async ({ } storage.setAuth({ - accessToken: r.data!.access_token, - refreshToken: r.data!.refresh_token, + accessToken: r.access_token, + refreshToken: r.refresh_token, }); throw redirect('/onboard', 302); }; diff --git a/deepfence_frontend/apps/dashboard/src/features/auth/actions/registerAction.ts b/deepfence_frontend/apps/dashboard/src/features/auth/actions/registerAction.ts index 394ab35d14..7f76ac2a0e 100644 --- a/deepfence_frontend/apps/dashboard/src/features/auth/actions/registerAction.ts +++ b/deepfence_frontend/apps/dashboard/src/features/auth/actions/registerAction.ts @@ -1,7 +1,7 @@ import { ActionFunction, redirect } from 'react-router-dom'; import { getUserApiClient } from '@/api/api'; -import { ModelResponse } from '@/api/generated'; +import { ApiDocsBadRequestResponse } from '@/api/generated'; import { ApiError, makeRequest } from '@/utils/api'; import storage from '@/utils/storage'; @@ -53,7 +53,7 @@ export const registerAction: ActionFunction = async ({ errorHandler: async (r) => { const error = new ApiError({}); if (r.status === 400) { - const modelResponse: ModelResponse = await r.json(); + const modelResponse: ApiDocsBadRequestResponse = await r.json(); return error.set({ fieldErrors: { firstName: modelResponse.error_fields?.first_name as string, @@ -64,7 +64,7 @@ export const registerAction: ActionFunction = async ({ }, }); } else if (r.status === 403) { - const modelResponse: ModelResponse = await r.json(); + const modelResponse: ApiDocsBadRequestResponse = await r.json(); return error.set({ error: modelResponse.message, }); @@ -77,8 +77,8 @@ export const registerAction: ActionFunction = async ({ } storage.setAuth({ - accessToken: r.data!.access_token, - refreshToken: r.data!.refresh_token, + accessToken: r.access_token, + refreshToken: r.refresh_token, }); throw redirect('/onboard', 302); }; diff --git a/deepfence_frontend/apps/dashboard/src/features/onboard/pages/ScanInProgress.tsx b/deepfence_frontend/apps/dashboard/src/features/onboard/pages/ScanInProgress.tsx index f926f56eb0..6e0ef774e1 100644 --- a/deepfence_frontend/apps/dashboard/src/features/onboard/pages/ScanInProgress.tsx +++ b/deepfence_frontend/apps/dashboard/src/features/onboard/pages/ScanInProgress.tsx @@ -12,7 +12,7 @@ import { import { useInterval } from 'react-use'; import { complianceScanApiClient, vulnerabilityScanApiClient } from '@/api/api'; -import { ModelResponse, ModelScanStatusResp } from '@/api/generated'; +import { ApiDocsBadRequestResponse, ModelScanStatusResp } from '@/api/generated'; import { ScanLoader } from '@/components/ScanLoader'; import { ConnectorHeader } from '@/features/onboard/components/ConnectorHeader'; import { ApiError, makeRequest } from '@/utils/api'; @@ -76,10 +76,10 @@ export const scanStatusLoader = async ({ errorHandler: async (r) => { const error = new ApiError({}); if (r.status === 400 || r.status === 500) { - const modelResponse: ModelResponse = await r.json(); + const modelResponse: ApiDocsBadRequestResponse = await r.json(); return error.set({ - message: modelResponse.data + '', - success: modelResponse.success, + message: modelResponse.message, + success: false, }); } }, diff --git a/deepfence_frontend/apps/dashboard/src/features/onboard/pages/VulnerabilityScanConfigure.tsx b/deepfence_frontend/apps/dashboard/src/features/onboard/pages/VulnerabilityScanConfigure.tsx index dc92d8d764..426ad85523 100644 --- a/deepfence_frontend/apps/dashboard/src/features/onboard/pages/VulnerabilityScanConfigure.tsx +++ b/deepfence_frontend/apps/dashboard/src/features/onboard/pages/VulnerabilityScanConfigure.tsx @@ -4,7 +4,10 @@ import { ActionFunctionArgs, Form, redirect, useActionData } from 'react-router- import { Button, Checkbox, Switch, Typography } from 'ui-components'; import { vulnerabilityScanApiClient } from '@/api/api'; -import { ModelResponse, ModelScanTriggerReqNodeTypeEnum } from '@/api/generated'; +import { + ApiDocsBadRequestResponse, + ModelVulnerabilityScanTriggerReqNodeTypeEnum, +} from '@/api/generated'; import { ConnectorHeader } from '@/features/onboard/components/ConnectorHeader'; import { ApiError, makeRequest } from '@/utils/api'; import { usePageNavigation } from '@/utils/usePageNavigation'; @@ -32,18 +35,19 @@ export const startVulnerabilityScanAction = async ({ apiFunction: vulnerabilityScanApiClient().startVulnerabilityScan, apiArgs: [ { - modelScanTriggerReq: { + modelVulnerabilityScanTriggerReq: { node_id: nodeId, - node_type: nodeType as ModelScanTriggerReqNodeTypeEnum, + node_type: nodeType as ModelVulnerabilityScanTriggerReqNodeTypeEnum, + scan_type: 'all', }, }, ], errorHandler: async (r) => { const error = new ApiError({}); if (r.status === 400 || r.status === 500) { - const modelResponse: ModelResponse = await r.json(); + const modelResponse: ApiDocsBadRequestResponse = await r.json(); return error.set({ - message: modelResponse.data + '', + message: modelResponse.message ?? '', success: modelResponse.success, }); } diff --git a/deepfence_frontend/apps/dashboard/src/utils/api.ts b/deepfence_frontend/apps/dashboard/src/utils/api.ts index bb45c719c1..9a1a7406d2 100644 --- a/deepfence_frontend/apps/dashboard/src/utils/api.ts +++ b/deepfence_frontend/apps/dashboard/src/utils/api.ts @@ -1,7 +1,7 @@ import { redirect } from 'react-router-dom'; import { getAuthenticationApiClient } from '@/api/api'; -import { ModelResponse, ResponseError } from '@/api/generated'; +import { ModelResponseAccessToken, ResponseError } from '@/api/generated'; import storage from '@/utils/storage'; export class ApiError { @@ -61,7 +61,7 @@ export async function makeRequest( } // global promise object -let refreshTokenPromise: Promise | null = null; +let refreshTokenPromise: Promise | null = null; async function refreshAccessTokenIfPossible(): Promise { function cleanup() { @@ -81,10 +81,10 @@ async function refreshAccessTokenIfPossible(): Promise { }); } const response = await refreshTokenPromise; - if (response.success && response.data?.access_token && response.data?.refresh_token) { + if (response.access_token && response.refresh_token) { storage.setAuth({ - accessToken: response.data?.access_token, - refreshToken: response.data?.refresh_token, + accessToken: response.access_token, + refreshToken: response.refresh_token, }); } else { throw new Error('Failed to refresh access token');