oscal

package
v0.0.0-...-17e6b21 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Citation

type Citation struct {
	Text  string                 `json:"text"`
	Props map[string]interface{} `json:"props,omitempty"`
}

type ComponentStatus

type ComponentStatus struct {
	State      string                 `json:"state"`
	Remarks    string                 `json:"remarks,omitempty"`
	Properties map[string]interface{} `json:"props,omitempty"`
}

type DistributedProcessor

type DistributedProcessor struct {
	// contains filtered or unexported fields
}

func NewDistributedProcessor

func NewDistributedProcessor(
	metrics *metrics.QuantumStorageMetrics,
	tracer tracing.Tracer,
	natsConn *nats.Conn,
	workers int,
) *DistributedProcessor

func (*DistributedProcessor) GetErrors

func (dp *DistributedProcessor) GetErrors() <-chan ProcessingError

func (*DistributedProcessor) GetResults

func (dp *DistributedProcessor) GetResults() <-chan ProcessingResult

func (*DistributedProcessor) Shutdown

func (dp *DistributedProcessor) Shutdown(ctx context.Context) error

func (*DistributedProcessor) SubmitJob

func (dp *DistributedProcessor) SubmitJob(job ProcessingJob) error

type MetricsConfig

type MetricsConfig struct {
	EnableDetailedMetrics bool
	CollectionInterval    time.Duration
	RetentionPeriod       time.Duration
	Labels                map[string]string
}

type OSCALBackMatter

type OSCALBackMatter struct {
	Resources []Resource `json:"resources"`
}

type OSCALComponent

type OSCALComponent struct {
	ID          string                 `json:"id"`
	Type        string                 `json:"type"`
	Title       string                 `json:"title"`
	Description string                 `json:"description"`
	Properties  map[string]interface{} `json:"props"`
	Controls    []OSCALControl         `json:"controls,omitempty"`
	Status      ComponentStatus        `json:"status"`
}

type OSCALControl

type OSCALControl struct {
	ID          string                 `json:"id"`
	Title       string                 `json:"title"`
	Description string                 `json:"description"`
	Properties  map[string]interface{} `json:"props"`
	Parts       []OSCALPart            `json:"parts,omitempty"`
	Controls    []OSCALControl         `json:"controls,omitempty"`
}

type OSCALConverter

type OSCALConverter struct {
	// contains filtered or unexported fields
}

func NewOSCALConverter

func NewOSCALConverter(
	metrics *metrics.QuantumStorageMetrics,
	tracer tracing.Tracer,
) *OSCALConverter

func (*OSCALConverter) Convert

func (oc *OSCALConverter) Convert(ctx context.Context, node *unified.Node) ([]byte, error)

func (*OSCALConverter) GetSourceFormat

func (oc *OSCALConverter) GetSourceFormat() string

func (*OSCALConverter) GetTargetFormat

func (oc *OSCALConverter) GetTargetFormat() string

func (*OSCALConverter) ValidateConversion

func (oc *OSCALConverter) ValidateConversion(node *unified.Node) error

type OSCALDocument

type OSCALDocument struct {
	Metadata   OSCALMetadata    `json:"metadata"`
	Controls   []OSCALControl   `json:"controls"`
	Components []OSCALComponent `json:"components"`
	BackMatter OSCALBackMatter  `json:"back-matter"`
}

type OSCALMetadata

type OSCALMetadata struct {
	Title        string                 `json:"title"`
	Version      string                 `json:"version"`
	LastModified string                 `json:"last-modified"`
	Properties   map[string]interface{} `json:"props"`
}

type OSCALMetricsCollector

type OSCALMetricsCollector struct {
	// contains filtered or unexported fields
}

func NewOSCALMetricsCollector

func NewOSCALMetricsCollector(
	metrics *metrics.QuantumStorageMetrics,
	tracer tracing.Tracer,
) *OSCALMetricsCollector

func (*OSCALMetricsCollector) ObserveValidationDuration

func (mc *OSCALMetricsCollector) ObserveValidationDuration(
	ctx context.Context,
	documentType string,
	duration time.Duration,
)

func (*OSCALMetricsCollector) RecordDocumentProcessing

func (mc *OSCALMetricsCollector) RecordDocumentProcessing(
	ctx context.Context,
	docType string,
	status string,
)

func (*OSCALMetricsCollector) RecordQuantumOperation

func (mc *OSCALMetricsCollector) RecordQuantumOperation(
	ctx context.Context,
	operationType string,
	status string,
)

func (*OSCALMetricsCollector) UpdateControlsCount

func (mc *OSCALMetricsCollector) UpdateControlsCount(
	ctx context.Context,
	documentID string,
	controlType string,
	count int,
)

type OSCALPart

type OSCALPart struct {
	ID         string                 `json:"id"`
	Name       string                 `json:"name"`
	Title      string                 `json:"title"`
	Properties map[string]interface{} `json:"props,omitempty"`
	Prose      string                 `json:"prose,omitempty"`
	Parts      []OSCALPart            `json:"parts,omitempty"`
}

type OSCALValidator

type OSCALValidator struct {
	// contains filtered or unexported fields
}

func NewOSCALValidator

func NewOSCALValidator(
	metrics *metrics.QuantumStorageMetrics,
	tracer tracing.Tracer,
) *OSCALValidator

func (*OSCALValidator) ValidateDocument

func (v *OSCALValidator) ValidateDocument(
	ctx context.Context,
	doc *OSCALDocument,
) (*ValidationResult, error)

type ProcessingError

type ProcessingError struct {
	JobID     string
	Error     error
	Timestamp time.Time
	Retryable bool
}

type ProcessingJob

type ProcessingJob struct {
	ID         string
	DocumentID string
	Operation  string
	Data       []byte
	Priority   int
	Deadline   time.Time
	RetryCount int
	MaxRetries int
}

type ProcessingResult

type ProcessingResult struct {
	JobID     string
	Output    []byte
	Metadata  map[string]interface{}
	Duration  time.Duration
	Timestamp time.Time
}

type QuantumSafeSerializer

type QuantumSafeSerializer struct {
	// contains filtered or unexported fields
}

func NewQuantumSafeSerializer

func NewQuantumSafeSerializer(
	encryption *quantum.QuantumSafeEncryption,
	metrics *metrics.QuantumStorageMetrics,
	tracer tracing.Tracer,
) *QuantumSafeSerializer

func (*QuantumSafeSerializer) DeserializeDocument

func (qs *QuantumSafeSerializer) DeserializeDocument(
	ctx context.Context,
	serialized *SerializedOSCAL,
) (*OSCALDocument, error)

func (*QuantumSafeSerializer) SerializeDocument

func (qs *QuantumSafeSerializer) SerializeDocument(
	ctx context.Context,
	doc *OSCALDocument,
) (*SerializedOSCAL, error)

type Resource

type Resource struct {
	ID          string                 `json:"id"`
	Title       string                 `json:"title"`
	Description string                 `json:"description"`
	Properties  map[string]interface{} `json:"props"`
	Citation    *Citation              `json:"citation,omitempty"`
	Rlinks      []Rlink                `json:"rlinks,omitempty"`
}
type Rlink struct {
	Href      string            `json:"href"`
	MediaType string            `json:"media-type,omitempty"`
	Hashes    map[string]string `json:"hashes,omitempty"`
}

type SerializationMetadata

type SerializationMetadata struct {
	Version          string
	EncryptionMethod string
	SignatureMethod  string
	Hash             string
	Timestamp        string
	SecurityLevel    int
}

type SerializedOSCAL

type SerializedOSCAL struct {
	EncryptedData []byte
	Signature     []byte
	Metadata      SerializationMetadata
}

type ValidationResult

type ValidationResult struct {
	Valid      bool
	Violations []Violation
	Warnings   []Warning
	Score      float64
	Metadata   map[string]interface{}
}

type ValidationRule

type ValidationRule struct {
	ID          string
	Name        string
	Description string
	Severity    string
	Query       string
	Category    string
	Remediation string
}

type Violation

type Violation struct {
	RuleID      string
	Path        string
	Message     string
	Severity    string
	Remediation string
}

type Warning

type Warning struct {
	Type       string
	Message    string
	Suggestion string
}

Jump to

Keyboard shortcuts

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