orchestrator

package
v2.0.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTargetCloudServiceId          = "00000000-0000-0000-0000-000000000000"
	DefaultTargetCloudServiceName        = "default"
	DefaultTargetCloudServiceDescription = "The default target cloud service"
)

Variables

View Source
var DefaultCatalogsFolder = "catalogs"
View Source
var DefaultMetricsFile = "metrics.json"
View Source
var ErrCertificationNotFound = status.Error(codes.NotFound, "certificate not found")

ErrCertificationNotFound indicates the certification was not found

View Source
var ErrMetricNotFound = status.Error(codes.NotFound, "metric not found")

ErrMetricNotFound indicates the certification was not found

Functions

This section is empty.

Types

type Service

type Service struct {
	orchestrator.UnimplementedOrchestratorServer

	// Hook
	AssessmentResultHooks []assessment.ResultHookFunc
	// contains filtered or unexported fields
}

Service is an implementation of the Clouditor Orchestrator service

func NewService

func NewService(opts ...ServiceOption) *Service

NewService creates a new Orchestrator service

func (*Service) CreateCatalog

CreateCatalog implements a method for creating a new catalog.

func (*Service) CreateCertificate

func (svc *Service) CreateCertificate(ctx context.Context, req *orchestrator.CreateCertificateRequest) (
	res *orchestrator.Certificate, err error)

CreateCertificate implements method for creating a new certificate

func (*Service) CreateDefaultTargetCloudService

func (s *Service) CreateDefaultTargetCloudService() (service *orchestrator.CloudService, err error)

CreateDefaultTargetCloudService creates a new "default" target cloud services, if no target service exists in the database.

If a new target cloud service was created, it will be returned.

func (*Service) CreateMetric

func (svc *Service) CreateMetric(_ context.Context, req *orchestrator.CreateMetricRequest) (metric *assessment.Metric, err error)

CreateMetric creates a new metric in the database.

func (*Service) CreateTargetOfEvaluation

func (svc *Service) CreateTargetOfEvaluation(ctx context.Context, req *orchestrator.CreateTargetOfEvaluationRequest) (res *orchestrator.TargetOfEvaluation, err error)

func (*Service) GetAssessmentResult

func (svc *Service) GetAssessmentResult(ctx context.Context, req *orchestrator.GetAssessmentResultRequest) (res *assessment.AssessmentResult, err error)

GetAssessmentResult gets one assessment result by id

func (*Service) GetCatalog

func (svc *Service) GetCatalog(_ context.Context, req *orchestrator.GetCatalogRequest) (response *orchestrator.Catalog, err error)

GetCatalog retrieves a control specified by the catalog ID, the control's category name and the control ID. If present, it also includes a list of sub-controls and any metrics associated to any controls.

func (*Service) GetCategory

func (srv *Service) GetCategory(_ context.Context, req *orchestrator.GetCategoryRequest) (res *orchestrator.Category, err error)

GetCategory retrieves a category of a catalog specified by the catalog ID and the category name. It includes the first level of controls within each category.

func (*Service) GetCertificate

func (svc *Service) GetCertificate(ctx context.Context, req *orchestrator.GetCertificateRequest) (
	res *orchestrator.Certificate, err error)

GetCertificate implements method for getting a certificate, e.g. to show its state in the UI.

func (*Service) GetCloudService

func (s *Service) GetCloudService(ctx context.Context, req *orchestrator.GetCloudServiceRequest) (response *orchestrator.CloudService, err error)

GetCloudService implements method for OrchestratorServer interface for getting a cloud service with provided id

func (*Service) GetCloudServiceStatistics

GetCloudServiceStatistics implements method for OrchestratorServer interface for retrieving cloud service statistics

func (*Service) GetControl

func (srv *Service) GetControl(_ context.Context, req *orchestrator.GetControlRequest) (res *orchestrator.Control, err error)

GetControl retrieves a control specified by the catalog ID, the control's category name and the control ID. If present, it also includes a list of sub-controls and any metrics associated to the control.

func (*Service) GetMetric

func (svc *Service) GetMetric(_ context.Context, req *orchestrator.GetMetricRequest) (metric *assessment.Metric, err error)

GetMetric retrieves a metric specified by req.MetricId.

func (*Service) GetMetricConfiguration

func (svc *Service) GetMetricConfiguration(ctx context.Context, req *orchestrator.GetMetricConfigurationRequest) (res *assessment.MetricConfiguration, err error)

func (*Service) GetMetricImplementation

func (svc *Service) GetMetricImplementation(_ context.Context, req *orchestrator.GetMetricImplementationRequest) (res *assessment.MetricImplementation, err error)

GetMetricImplementation retrieves a metric implementation specified by req.MetricId.

func (*Service) GetRuntimeInfo

func (*Service) GetRuntimeInfo(_ context.Context, _ *runtime.GetRuntimeInfoRequest) (res *runtime.Runtime, err error)

GetRuntimeInfo implements a method to retrieve runtime information

func (*Service) GetTargetOfEvaluation

func (svc *Service) GetTargetOfEvaluation(ctx context.Context, req *orchestrator.GetTargetOfEvaluationRequest) (response *orchestrator.TargetOfEvaluation, err error)

GetTargetOfEvaluation implements method for getting a TargetOfEvaluation, e.g. to show its state in the UI

func (*Service) ListAssessmentResults

ListAssessmentResults is a method implementation of the orchestrator interface

func (*Service) ListCatalogs

ListCatalogs Lists all security controls catalogs. Each catalog includes a list of its categories but no additional sub-resources.

func (*Service) ListCertificates

ListCertificates implements method for getting all certificates, e.g. to show its state in the UI. The response does not indicate whether there are no certificates available or the access is denied.

func (*Service) ListCloudServices

ListCloudServices implements method for OrchestratorServer interface for listing all cloud services

func (*Service) ListControls

ListControls lists controls. If no additional parameters are specified, this lists all controls. If a catalog ID and a category name is specified, then only controls containing in this category are returned.

func (*Service) ListMetricConfigurations

func (svc *Service) ListMetricConfigurations(ctx context.Context, req *orchestrator.ListMetricConfigurationRequest) (response *orchestrator.ListMetricConfigurationResponse, err error)

ListMetricConfigurations retrieves a list of MetricConfiguration objects for a particular target cloud service specified in req.

The list MUST include a configuration for each known metric. If the user did not specify a custom configuration for a particular metric within the service, the default metric configuration is inserted into the list.

func (*Service) ListMetrics

ListMetrics lists all available metrics.

func (*Service) ListPublicCertificates

ListPublicCertificates implements method for getting all certificates without the state history, e.g. to show its state in the UI

func (*Service) ListTargetsOfEvaluation

ListTargetsOfEvaluation implements method for getting a TargetOfEvaluation

func (*Service) RegisterAssessmentResultHook

func (s *Service) RegisterAssessmentResultHook(hook assessment.ResultHookFunc)

func (*Service) RegisterCloudService

func (s *Service) RegisterCloudService(ctx context.Context, req *orchestrator.RegisterCloudServiceRequest) (res *orchestrator.CloudService, err error)

func (*Service) RegisterCloudServiceHook

func (s *Service) RegisterCloudServiceHook(hook orchestrator.CloudServiceHookFunc)

func (*Service) RegisterToeHook

func (s *Service) RegisterToeHook(hook orchestrator.TargetOfEvaluationHookFunc)

RegisterToeHook registers the Target of Evaluation hook function

func (*Service) RemoveCatalog

func (svc *Service) RemoveCatalog(_ context.Context, req *orchestrator.RemoveCatalogRequest) (response *emptypb.Empty, err error)

RemoveCatalog implements a method for removing a catalog

func (*Service) RemoveCertificate

func (svc *Service) RemoveCertificate(ctx context.Context, req *orchestrator.RemoveCertificateRequest) (response *emptypb.Empty, err error)

RemoveCertificate implements method for removing a certificate. The response does not indicate whether there are no certificates available or the access is denied.

func (*Service) RemoveCloudService

func (s *Service) RemoveCloudService(ctx context.Context, req *orchestrator.RemoveCloudServiceRequest) (response *emptypb.Empty, err error)

RemoveCloudService implements method for OrchestratorServer interface for removing a cloud service

func (*Service) RemoveMetric

func (svc *Service) RemoveMetric(ctx context.Context, req *orchestrator.RemoveMetricRequest) (res *emptypb.Empty, err error)

RemoveMetric removes a metric specified by req.MetricId. The metric is not deleted, but the property deprecated is set to true for backward compatibility reasons.

func (*Service) RemoveTargetOfEvaluation

func (svc *Service) RemoveTargetOfEvaluation(ctx context.Context, req *orchestrator.RemoveTargetOfEvaluationRequest) (response *emptypb.Empty, err error)

RemoveTargetOfEvaluation implements method for removing a TargetOfEvaluation

func (*Service) StoreAssessmentResult

StoreAssessmentResult is a method implementation of the orchestrator interface: It receives an assessment result and stores it

func (*Service) StoreAssessmentResults

func (s *Service) StoreAssessmentResults(stream orchestrator.Orchestrator_StoreAssessmentResultsServer) (err error)

func (*Service) SubscribeMetricChangeEvents

SubscribeMetricChangeEvents implements a stream of metric events to the subscribed client.

func (*Service) UpdateCatalog

func (svc *Service) UpdateCatalog(_ context.Context, req *orchestrator.UpdateCatalogRequest) (res *orchestrator.Catalog, err error)

UpdateCatalog implements a method for updating an existing catalog

func (*Service) UpdateCertificate

func (svc *Service) UpdateCertificate(ctx context.Context, req *orchestrator.UpdateCertificateRequest) (response *orchestrator.Certificate, err error)

UpdateCertificate implements method for updating an existing certificate

func (*Service) UpdateCloudService

func (s *Service) UpdateCloudService(ctx context.Context, req *orchestrator.UpdateCloudServiceRequest) (res *orchestrator.CloudService, err error)

UpdateCloudService implements method for OrchestratorServer interface for updating a cloud service

func (*Service) UpdateMetric

func (svc *Service) UpdateMetric(_ context.Context, req *orchestrator.UpdateMetricRequest) (metric *assessment.Metric, err error)

UpdateMetric updates an existing metric, specified by the identifier in req.MetricId.

func (*Service) UpdateMetricConfiguration

func (svc *Service) UpdateMetricConfiguration(ctx context.Context, req *orchestrator.UpdateMetricConfigurationRequest) (res *assessment.MetricConfiguration, err error)

UpdateMetricConfiguration updates the configuration for a metric, specified by the identifier in req.MetricId.

func (*Service) UpdateMetricImplementation

func (svc *Service) UpdateMetricImplementation(_ context.Context, req *orchestrator.UpdateMetricImplementationRequest) (impl *assessment.MetricImplementation, err error)

UpdateMetricImplementation updates an existing metric implementation, specified by the identifier in req.MetricId.

func (*Service) UpdateTargetOfEvaluation

func (svc *Service) UpdateTargetOfEvaluation(ctx context.Context, req *orchestrator.UpdateTargetOfEvaluationRequest) (res *orchestrator.TargetOfEvaluation, err error)

UpdateTargetOfEvaluation implements method for updating an existing TargetOfEvaluation

type ServiceOption

type ServiceOption func(*Service)

ServiceOption is a function-style option to configure the Orchestrator Service

func WithAuthorizationStrategy

func WithAuthorizationStrategy(authz service.AuthorizationStrategy) ServiceOption

func WithAuthorizationStrategyJWT

func WithAuthorizationStrategyJWT(key string, allowAllKey string) ServiceOption

WithAuthorizationStrategyJWT is an option that configures an JWT-based authorization strategy using a specific claim key.

func WithCatalogsFolder

func WithCatalogsFolder(folder string) ServiceOption

WithCatalogsFolder can be used to load catalog files from a different catalogs folder

func WithExternalCatalogs

func WithExternalCatalogs(f func() ([]*orchestrator.Catalog, error)) ServiceOption

WithExternalCatalogs can be used to load catalog definitions from an external source

func WithExternalMetrics

func WithExternalMetrics(f func() ([]*assessment.Metric, error)) ServiceOption

WithExternalMetrics can be used to load metric definitions from an external source

func WithMetricsFile

func WithMetricsFile(file string) ServiceOption

WithMetricsFile can be used to load a different metrics file

func WithStorage

func WithStorage(storage persistence.Storage) ServiceOption

WithStorage is an option to set the storage. If not set, NewService will use inmemory storage.

Jump to

Keyboard shortcuts

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