common

package
v0.12.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package common is to handle REST API for common funcitonalities

Package common is to handle REST API for common funcitonalities

Package common is to handle REST API for common funcitonalities

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RestCheckHTTPVersion

func RestCheckHTTPVersion(c echo.Context) error

RestCheckHTTPVersion godoc @ID CheckHTTPVersion @Summary Check HTTP version of incoming request @Description Checks and logs the HTTP version of the incoming request to the server console. @Tags [Admin] API Request Management @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /httpVersion [get]

func RestCheckNs

func RestCheckNs(c echo.Context) error

func RestDelAllNs

func RestDelAllNs(c echo.Context) error

RestDelAllNs godoc @ID DelAllNs @Summary Delete all namespaces @Description Delete all namespaces @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Router /ns [delete]

func RestDelNs

func RestDelNs(c echo.Context) error

RestDelNs godoc @ID DelNs @Summary Delete namespace @Description Delete namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Router /ns/{nsId} [delete]

func RestDeleteAllRequests

func RestDeleteAllRequests(c echo.Context) error

RestDeleteAllRequests godoc @ID DeleteAllRequests @Summary Delete all requests' details @Description Delete details of all requests @Tags [Admin] API Request Management @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Router /requests [delete]

func RestDeleteObject

func RestDeleteObject(c echo.Context) error

func RestDeleteObject is a rest api wrapper for DeleteObject. RestDeleteObject godoc @ID DeleteObject @Summary Delete an object @Description Delete an object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "delete object value by key" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /object [delete]

func RestDeleteObjects

func RestDeleteObjects(c echo.Context) error

func RestDeleteObjects is a rest api wrapper for DeleteObjects. RestDeleteObjects godoc @ID DeleteObjects @Summary Delete child objects along with the given object @Description Delete child objects along with the given object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "Delete child objects based on the given key string" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /objects [delete]

func RestDeleteRequest

func RestDeleteRequest(c echo.Context) error

RestDeleteRequest godoc @ID DeleteRequest @Summary Delete a specific request's details @Description Delete details of a specific request @Tags [Admin] API Request Management @Accept json @Produce json @Param reqId path string true "Request ID to delete" @Success 200 {object} model.SimpleMsg @Router /request/{reqId} [delete]

func RestForwardAnyReqToAny

func RestForwardAnyReqToAny(c echo.Context) error

RestForwardAnyReqToAny godoc @ID ForwardAnyReqToAny @Summary Forward any (GET) request to CB-Spider @Description Forward any (GET) request to CB-Spider @Tags [Admin] API Request Management @Accept json @Produce json @Param path path string true "Internal call path to CB-Spider (path without /spider/ prefix) - see [https://documenter.getpostman.com/view/24786935/2s9Ykq8Lpf#231eec23-b0ab-4966-83ce-a0ef92ead7bc] for more details"" default(vmspec) @Param Request body interface{} false "Request body (various formats) - see [https://documenter.getpostman.com/view/24786935/2s9Ykq8Lpf#231eec23-b0ab-4966-83ce-a0ef92ead7bc] for more details" @Success 200 {object} map[string]interface{} @Router /forward/{path} [post]

func RestGetAllConfig

func RestGetAllConfig(c echo.Context) error

RestGetAllConfig godoc @ID GetAllConfig @Summary List all configs @Description List all configs @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} RestGetAllConfigResponse @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /config [get]

func RestGetAllNs

func RestGetAllNs(c echo.Context) error

RestGetAllNs godoc @ID GetAllNs @Summary List all namespaces or namespaces' ID @Description List all namespaces or namespaces' ID @Tags [Admin] System Configuration @Accept json @Produce json @Param option query string false "Option" Enums(id) @Success 200 {object} JSONResult{[DEFAULT]=RestGetAllNsResponse,[ID]=model.IdList} "Different return structures by the given option param" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /ns [get]

func RestGetAllRequests

func RestGetAllRequests(c echo.Context) error

RestGetAllRequests godoc @ID GetAllRequests @Summary Get all requests @Description Get details of all requests with optional filters. @Tags [Admin] API Request Management @Accept json @Produce json @Param status query string false "Filter by request status (Handling, Error, Success)" Enums(Handling, Error, Success) default() @Param method query string false "Filter by HTTP method (GET, POST, PUT, DELETE, etc.)" Enums(GET, POST, PUT, DELETE) default() @Param url query string false "Filter by request URL" @Param time query string false "Filter by time in minutes from now (to get recent requests)" @Param savefile query string false "Option to save the results to a file (set 'true' to activate)" Enums(true,false) default(false) @Success 200 {object} map[string][]clientManager.RequestDetails @Router /requests [get]

func RestGetCloudInfo

func RestGetCloudInfo(c echo.Context) error

RestGetCloudInfo func is a rest api wrapper for CloudInfo. RestGetCloudInfo godoc @ID GetCloudInfo @Summary Get cloud information @Description Get cloud information @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} model.CloudInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /cloudInfo [get]

func RestGetConfig

func RestGetConfig(c echo.Context) error

RestGetConfig godoc @ID GetConfig @Summary Get config @Description Get config @Tags [Admin] System Configuration @Accept json @Produce json @Param configId path string true "Config ID" @Success 200 {object} model.ConfigInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /config/{configId} [get]

func RestGetConnConfig

func RestGetConnConfig(c echo.Context) error

RestGetConnConfig func is a rest api wrapper for GetConnConfig. RestGetConnConfig godoc @ID GetConnConfig @Summary Get registered ConnConfig info @Description Get registered ConnConfig info @Tags [Admin] Cloud Credential Management @Accept json @Produce json @Param connConfigName path string true "Name of connection config (cloud config)" @Success 200 {object} model.ConnConfig @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /connConfig/{connConfigName} [get]

func RestGetConnConfigList

func RestGetConnConfigList(c echo.Context) error

RestGetConnConfigList func is a rest api wrapper for GetConnConfigList. RestGetConnConfigList godoc @ID GetConnConfigList @Summary List all registered ConnConfig @Description List all registered ConnConfig @Tags [Admin] Cloud Credential Management @Accept json @Produce json @Param filterCredentialHolder query string false "filter objects by Credential Holder" default() @Param filterVerified query boolean false "filter verified connections only" Enums(true, false) default(true) @Param filterRegionRepresentative query boolean false "filter connections with the representative region only" Enums(true, false) default(false) @Success 200 {object} model.ConnConfigList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /connConfig [get]

func RestGetK8sClusterInfo

func RestGetK8sClusterInfo(c echo.Context) error

RestGetK8sClusterInfo func is a rest api wrapper for K8sClusterAssetInfo RestGetK8sClusterInfo godoc @ID GetK8sClusterInfo @Summary Get kubernetes cluster information @Description Get kubernetes cluster information @Tags [Kubernetes] Cluster Management @Accept json @Produce json @Success 200 {object} model.K8sClusterAssetInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /k8sClusterInfo [get]

func RestGetNs

func RestGetNs(c echo.Context) error

RestGetNs godoc @ID GetNs @Summary Get namespace @Description Get namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Success 200 {object} model.NsInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /ns/{nsId} [get]

func RestGetObject

func RestGetObject(c echo.Context) error

func RestGetObject is a rest api wrapper for GetObject. RestGetObject godoc @ID GetObject @Summary Get value of an object @Description Get value of an object @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "get object value by key" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /object [get]

func RestGetObjects

func RestGetObjects(c echo.Context) error

func RestGetObjects is a rest api wrapper for GetObjectList. RestGetObjects godoc @ID GetObjects @Summary List all objects for a given key @Description List all objects for a given key @Tags [Admin] System Management @Accept json @Produce json @Param key query string true "retrieve objects by key" @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /objects [get]

func RestGetProviderList

func RestGetProviderList(c echo.Context) error

RestGetProviderList func is a rest api wrapper for GetProviderList. RestGetProviderList godoc @ID GetProviderList @Summary List all registered Providers @Description List all registered Providers @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} model.IdList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /provider [get]

func RestGetPublicKeyForCredentialEncryption

func RestGetPublicKeyForCredentialEncryption(c echo.Context) error

RestGetPublicKeyForCredentialEncryption godoc @ID GetPublicKeyForCredentialEncryption @Summary Get RSA Public Key for Credential Encryption @Description Generates an RSA key pair using a 4096-bit key size with the RSA algorithm. The public key is generated using the RSA algorithm with OAEP padding and SHA-256 as the hash function. This key is used to encrypt an AES key that will be used for hybrid encryption of credentials. @Tags [Admin] Cloud Credential Management @Accept json @Produce json @Success 200 {object} model.PublicKeyResponse @Failure 500 {object} model.SimpleMsg @Router /credential/publicKey [get]

func RestGetReadyz

func RestGetReadyz(c echo.Context) error

RestGetReadyz func is for checking CB-Tumblebug server is ready. @ID GetReadyz RestGetReadyz godoc @Summary Check Tumblebug is ready @Description Check Tumblebug is ready @Tags [Admin] System Management @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Failure 503 {object} model.SimpleMsg @Router /readyz [get]

func RestGetRegion

func RestGetRegion(c echo.Context) error

RestGetRegion func is a rest api wrapper for GetRegion. RestGetRegion godoc @ID GetRegion @Summary Get registered region info @Description Get registered region info @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Param providerName path string true "Name of the CSP to retrieve" @Param regionName path string true "Name of region to retrieve" @Success 200 {object} model.RegionDetail @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /provider/{providerName}/region/{regionName} [get]

func RestGetRegionListFromCsp

func RestGetRegionListFromCsp(c echo.Context) error

RestGetRegionListFromCsp func is a rest api wrapper for RetrieveRegionListFromCsp. RestGetRegionListFromCsp godoc @ID RetrieveRegionListFromCsp @Summary RetrieveR all region lists from CSPs @Description RetrieveR all region lists from CSPs @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Success 200 {object} model.RetrievedRegionList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /regionFromCsp [get]

func RestGetRegions

func RestGetRegions(c echo.Context) error

RestGetRegions func is a rest api wrapper for GetRegion. RestGetRegions godoc @ID GetRegions @Summary Get registered region info @Description Get registered region info @Tags [Admin] Multi-Cloud Information @Accept json @Produce json @Param providerName path string true "Name of the CSP to retrieve" @Success 200 {object} model.RegionList @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /provider/{providerName}/region [get]

func RestGetRequest

func RestGetRequest(c echo.Context) error

RestGetRequest godoc @ID GetRequest @Summary Get request details @Description Get details of a specific request @Tags [Admin] API Request Management @Accept json @Produce json @Param reqId path string true "Request ID acquired from X-Request-ID header" @Success 200 {object} clientManager.RequestDetails @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /request/{reqId} [get]

func RestInitAllConfig

func RestInitAllConfig(c echo.Context) error

RestInitAllConfig godoc @ID InitAllConfig @Summary Init all configs @Description Init all configs @Tags [Admin] System Configuration @Accept json @Produce json @Success 200 {object} model.SimpleMsg @Failure 404 {object} model.SimpleMsg @Router /config [delete]

func RestInitConfig

func RestInitConfig(c echo.Context) error

RestInitConfig godoc @ID InitConfig @Summary Init config @Description Init config @Tags [Admin] System Configuration @Accept json @Produce json @Param configId path string true "Config ID" @Success 200 {object} model.ConfigInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /config/{configId} [delete]

func RestInspectResources

func RestInspectResources(c echo.Context) error

RestInspectResources godoc @ID InspectResources @Summary Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP @Description Inspect Resources (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug, CB-Spider, CSP @Tags [Admin] System Management @Accept json @Produce json @Param connectionName body model.InspectResourcesRequest true "Specify connectionName and resource type" @Success 200 {object} model.InspectResource @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /inspectResources [post]

func RestInspectResourcesOverview

func RestInspectResourcesOverview(c echo.Context) error

RestInspectResourcesOverview godoc @ID InspectResourcesOverview @Summary Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections @Description Inspect Resources Overview (vNet, securityGroup, sshKey, vm) registered in CB-Tumblebug and CSP for all connections @Tags [Admin] System Management @Accept json @Produce json @Success 200 {object} model.InspectResourceAllResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /inspectResourcesOverview [get]

func RestPostConfig

func RestPostConfig(c echo.Context) error

RestPostConfig godoc @ID PostConfig @Summary Create or Update config @Description Create or Update config (TB_SPIDER_REST_URL, TB_DRAGONFLY_REST_URL, ...) @Tags [Admin] System Configuration @Accept json @Produce json @Param config body model.ConfigReq true "Key and Value for configuration" @Success 200 {object} model.ConfigInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /config [post]

func RestPostNs

func RestPostNs(c echo.Context) error

RestPostNs godoc @ID PostNs @Summary Create namespace @Description Create namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsReq body model.NsReq true "Details for a new namespace" @Success 200 {object} model.NsInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /ns [post]

func RestPutNs

func RestPutNs(c echo.Context) error

RestPutNs godoc @ID PutNs @Summary Update namespace @Description Update namespace @Tags [Admin] System Configuration @Accept json @Produce json @Param nsId path string true "Namespace ID" default(default) @Param namespace body model.NsReq true "Details to update existing namespace" @Success 200 {object} model.NsInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /ns/{nsId} [put]

func RestRegisterCredential

func RestRegisterCredential(c echo.Context) error

RestRegisterCredential is a REST API handler for registering credentials. @ID RegisterCredential @Summary Register Credential Information @Description This API registers credential information using hybrid encryption. The process involves compressing and encrypting sensitive data with AES-256, encrypting the AES key with a 4096-bit RSA public key (retrieved via `GET /credential/publicKey`), and using OAEP padding with SHA-256. All values, including the AES key, must be base64 encoded before sending, and the public key token ID must be included in the request. @Tags [Admin] Cloud Credential Management @Accept json @Produce json @Param CredentialReq body model.CredentialReq true "Credential request info" @Success 200 {object} model.CredentialInfo @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /credential [post]

func RestRegisterCspNativeResources

func RestRegisterCspNativeResources(c echo.Context) error

RestRegisterCspNativeResources godoc @ID RegisterCspNativeResources @Summary Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug @Description Register CSP Native Resources (vNet, securityGroup, sshKey, vm) to CB-Tumblebug. @Description @Description **Behavior based on connectionName:** @Description - If `connectionName` is specified: Registers resources from the specified connection only @Description - If `connectionName` is empty or omitted: Registers resources from **all available connections** @Description @Description **Usage Examples:** @Description - Single connection: `{"connectionName": "aws-ap-northeast-2", "nsId": "default", "mciNamePrefix": "mci-01"}` @Description - All connections: `{"connectionName": "", "nsId": "default", "mciNamePrefix": "mci-all"}` or `{"nsId": "default", "mciNamePrefix": "mci-all"}` @Tags [Admin] System Management @Accept json @Produce json @Param Request body RestRegisterCspNativeResourcesRequest true "Specify connectionName (optional for all connections), NS Id, and MCI Name Prefix" @Param option query string false "Option to specify resourceType" Enums(onlyVm, exceptVm) @Param mciFlag query string false "Flag to show VMs in a collective MCI form (y,n)" Enums(y, n) default(y) @Success 200 {object} model.RegisterResourceResult "Single connection result" @Success 200 {object} model.RegisterResourceAllResult "All connections result (when connectionName is empty)" @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Router /registerCspResources [post]

func RestRegisterCspNativeResourcesAll

func RestRegisterCspNativeResourcesAll(c echo.Context) error

RestRegisterCspNativeResourcesAll godoc @ID RegisterCspNativeResourcesAll @Summary [Deprecated] Register CSP Native Resources from all connections @Description **DEPRECATED**: This endpoint is deprecated. Please use `/registerCspResources` with empty `connectionName` instead. @Description @Description This endpoint now redirects to `/registerCspResources` for unified API behavior. @Description @Description **Migration Guide:** @Description - Old: `POST /registerCspResourcesAll` with `{"nsId": "default", "mciNamePrefix": "mci-all"}` @Description - New: `POST /registerCspResources` with `{"connectionName": "", "nsId": "default", "mciNamePrefix": "mci-all"}` @Tags [Admin] System Management @Accept json @Produce json @Param Request body RestRegisterCspNativeResourcesRequestAll true "Specify NS Id and MCI Name Prefix" @Param option query string false "Option to specify resourceType" Enums(onlyVm, exceptVm) @Param mciFlag query string false "Flag to show VMs in a collective MCI form (y,n)" Enums(y, n) default(y) @Success 200 {object} model.RegisterResourceAllResult @Failure 404 {object} model.SimpleMsg @Failure 500 {object} model.SimpleMsg @Deprecated @Router /registerCspResourcesAll [post]

func RestTestStreamResponse

func RestTestStreamResponse(c echo.Context) error

RestTestStreamResponse godoc @ID PostTestStreamResponse @Summary Stream response of a number decrement @Description Receives a number and streams the decrementing number every second until zero @Tags [Test] Stream Response @Accept json @Produce json-stream @Param number body NumberRequest true "Number input" @Success 200 {object} map[string]int "currentNumber" @Failure 400 {object} map[string]string "Invalid input" @Failure 500 {object} map[string]string "Stream failed" @Router /testStreamResponse [post]

func Send

func Send(c echo.Context, httpCode int, json interface{}) error

func SendExistence

func SendExistence(c echo.Context, httpCode int, existence bool) error

func SendMessage

func SendMessage(c echo.Context, httpCode int, msg string) error

func TestStreamResponse

func TestStreamResponse(number int, enc *json.Encoder, c echo.Context) error

TestStreamResponse 함수는 숫자를 1초마다 -1 하여 스트림으로 보내며, 0이 되면 종료합니다.

func Validate

func Validate(c echo.Context, params []string) error

Types

type Existence

type Existence struct {
	Exists bool `json:"exists"`
}

type JSONResult

type JSONResult struct {
}

JSONResult's data field will be overridden by the specific type

type NumberRequest

type NumberRequest struct {
	Number int `json:"number" example:"100"`
}

요청 바디에서 받을 구조체 정의

type ObjectList

type ObjectList struct {
	Object []string `json:"object"`
}

ObjectList struct consists of object IDs

type RestGetAllConfigResponse

type RestGetAllConfigResponse struct {
	//Name string     `json:"name"`
	Config []model.ConfigInfo `json:"config"`
}

Response structure for RestGetAllConfig

type RestGetAllNsResponse

type RestGetAllNsResponse struct {
	//Name string     `json:"name"`
	Ns []model.NsInfo `json:"ns"`
}

Response structure for RestGetAllNs

type RestRegisterCspNativeResourcesRequest

type RestRegisterCspNativeResourcesRequest struct {
	ConnectionName string `json:"connectionName" example:"aws-ap-southeast-1"` // Optional: if empty or omitted, registers resources from all connections
	NsId           string `json:"nsId" example:"default"`
	MciNamePrefix  string `json:"mciNamePrefix" example:"csp"`
}

Request struct for RestRegisterCspNativeResources

type RestRegisterCspNativeResourcesRequestAll

type RestRegisterCspNativeResourcesRequestAll struct {
	NsId          string `json:"nsId" example:"default"`
	MciNamePrefix string `json:"mciNamePrefix" example:"csp"`
}

Request struct for RestRegisterCspNativeResourcesAll (Deprecated)

type Status

type Status struct {
	Message string `json:"message"`
}

type TbConnectionName

type TbConnectionName struct {
	ConnectionName string `json:"connectionName"`
}

Directories

Path Synopsis
Package label is to handle label selector for resources
Package label is to handle label selector for resources

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL