controldisplay

package
v0.21.7-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2024 License: AGPL-3.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const MaxColumns = 200

Variables

View Source
var ColorSchemes = map[string]*ControlColorSchemaDefinition{
	"dark": {
		GroupTitle:           "bold-bright-white",
		Severity:             "bold-bright-yellow",
		CountZeroFail:        "gray1",
		CountZeroFailDivider: "gray1",
		CountDivider:         "gray2",
		CountFail:            "bold-bright-red",
		CountTotal:           "bright-white",
		CountTotalAllPassed:  "bold-bright-green",
		CountGraphFail:       "bright-red",
		CountGraphPass:       "bright-green",
		CountGraphAlarm:      "bright-red",
		CountGraphError:      "bright-red",
		CountGraphInfo:       "bright-cyan",
		CountGraphOK:         "bright-green",
		CountGraphSkip:       "gray3",
		CountGraphBracket:    "gray2",
		StatusAlarm:          "bold-bright-red",
		StatusError:          "bold-bright-red",
		StatusSkip:           "gray3",
		StatusInfo:           "bright-cyan",
		StatusOK:             "bright-green",
		StatusColon:          "gray1",
		ReasonAlarm:          "bright-red",
		ReasonError:          "bright-red",
		ReasonSkip:           "gray3",
		ReasonInfo:           "bright-cyan",
		ReasonOK:             "gray4",
		Spacer:               "gray1",
		Indent:               "gray1",
		UseColor:             true,
	},
	"light": {
		GroupTitle:           "bold-bright-black",
		Severity:             "bold-bright-yellow",
		CountZeroFail:        "gray5",
		CountZeroFailDivider: "gray5",
		CountDivider:         "gray4",
		CountFail:            "bold-bright-red",
		CountTotal:           "bright-black",
		CountTotalAllPassed:  "bold-bright-green",
		CountGraphFail:       "bright-red",
		CountGraphPass:       "bright-green",
		CountGraphAlarm:      "bright-red",
		CountGraphError:      "bright-red",
		CountGraphInfo:       "bright-cyan",
		CountGraphOK:         "bright-green",
		CountGraphSkip:       "gray3",
		CountGraphBracket:    "gray4",
		StatusAlarm:          "bold-bright-red",
		StatusError:          "bold-bright-red",
		StatusSkip:           "gray3",
		StatusInfo:           "bright-cyan",
		StatusOK:             "bright-green",
		StatusColon:          "gray5",
		ReasonAlarm:          "bright-red",
		ReasonError:          "bright-red",
		ReasonSkip:           "gray3",
		ReasonInfo:           "bright-cyan",
		ReasonOK:             "gray2",
		Spacer:               "gray5",
		Indent:               "gray5",
		UseColor:             true,
	},
	"plain": {UseColor: false},
}

Functions

func CounterRendererMinWidth

func CounterRendererMinWidth() int

func EnsureTemplates

func EnsureTemplates() error

EnsureTemplates scans the '$STEAMPIPE_INSTALL_DIR/check/templates' directory and copies over the templates defined in the 'templates' package if needed.

The name of the folder in the 'templates' package is used to identify templates in '$STEAMPIPE_INSTALL_DIR/templates' - where it is expected that a directory with the same name will exist.

We re-write the templates, when there is a higher template version available in the 'templates' package.

func GetExporters added in v0.17.0

func GetExporters(ctx context.Context) ([]export.Exporter, error)

GetExporters returns an array of ControlExporters corresponding to the available output formats

func PublishSnapshot added in v0.17.0

func PublishSnapshot(ctx context.Context, e *controlexecute.ExecutionTree, shouldShare bool) error

func TruncateString

func TruncateString(str string, length int) string

Types

type ControlColorSchemaDefinition

type ControlColorSchemaDefinition struct {
	// group
	GroupTitle           string
	Severity             string
	CountZeroFail        string
	CountZeroFailDivider string
	CountDivider         string
	CountFail            string
	CountTotal           string
	CountTotalAllPassed  string
	CountGraphFail       string
	CountGraphPass       string
	CountGraphAlarm      string
	CountGraphError      string
	CountGraphInfo       string
	CountGraphOK         string
	CountGraphSkip       string
	CountGraphBracket    string

	// results
	StatusAlarm string
	StatusError string
	StatusSkip  string
	StatusInfo  string
	StatusOK    string
	StatusColon string
	ReasonAlarm string
	ReasonError string
	ReasonSkip  string
	ReasonInfo  string
	ReasonOK    string

	Spacer   string
	Indent   string
	UseColor bool
}

type ControlColorScheme

type ControlColorScheme struct {
	GroupTitle           colorFunc
	Severity             colorFunc
	CountZeroFail        colorFunc
	CountZeroFailDivider colorFunc
	CountDivider         colorFunc
	CountFail            colorFunc
	CountTotal           colorFunc
	CountTotalAllPassed  colorFunc
	CountGraphFail       colorFunc
	CountGraphPass       colorFunc
	CountGraphAlarm      colorFunc
	CountGraphError      colorFunc
	CountGraphInfo       colorFunc
	CountGraphOK         colorFunc
	CountGraphSkip       colorFunc
	CountGraphBracket    colorFunc
	StatusAlarm          colorFunc
	StatusError          colorFunc
	StatusSkip           colorFunc
	StatusInfo           colorFunc
	StatusOK             colorFunc
	StatusColon          colorFunc
	ReasonAlarm          colorFunc
	ReasonError          colorFunc
	ReasonSkip           colorFunc
	ReasonInfo           colorFunc
	ReasonOK             colorFunc
	Spacer               colorFunc
	Indent               colorFunc

	ReasonColors map[string]colorFunc
	StatusColors map[string]colorFunc
	GraphColors  map[string]colorFunc
	UseColor     bool
}
var ControlColors *ControlColorScheme

ControlColors is a global variable containing the current control color scheme

func (*ControlColorScheme) Initialise

type ControlExporter added in v0.17.0

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

func NewControlExporter added in v0.17.0

func NewControlExporter(formatter Formatter) *ControlExporter

func (*ControlExporter) Alias added in v0.17.0

func (e *ControlExporter) Alias() string

func (*ControlExporter) Export added in v0.17.0

func (e *ControlExporter) Export(ctx context.Context, input export.ExportSourceData, destPath string) error

func (*ControlExporter) FileExtension added in v0.17.0

func (e *ControlExporter) FileExtension() string

func (*ControlExporter) Name added in v0.17.0

func (e *ControlExporter) Name() string

type ControlRenderer

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

func NewControlRenderer

func NewControlRenderer(run *controlexecute.ControlRun, parent *GroupRenderer) *ControlRenderer

func (ControlRenderer) Render

func (r ControlRenderer) Render() string

type CounterGraphRenderer

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

func NewCounterGraphRenderer

func NewCounterGraphRenderer(failedControls, totalControls, maxTotalControls int, options CounterGraphRendererOptions) *CounterGraphRenderer

func (CounterGraphRenderer) Render

func (r CounterGraphRenderer) Render() string

type CounterGraphRendererOptions

type CounterGraphRendererOptions struct {
	FailedColorFunc colorFunc
}

type CounterRenderer

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

func NewCounterRenderer

func NewCounterRenderer(failedControls, totalControls, maxFailedControls, maxTotalControls int, options CounterRendererOptions) *CounterRenderer

func (CounterRenderer) Render

func (r CounterRenderer) Render() string

type CounterRendererOptions

type CounterRendererOptions struct {
	AddLeadingSpace bool
}

type DimensionsRenderer

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

func NewDimensionsRenderer

func NewDimensionsRenderer(dimensions []controlexecute.Dimension, colorGenerator *controlexecute.DimensionColorGenerator, width int) *DimensionsRenderer

func (DimensionsRenderer) Render

func (r DimensionsRenderer) Render() string

Render returns the dimensions, truncated to the max length if necessary

type ErrorRenderer

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

func NewErrorRenderer

func NewErrorRenderer(err error, width int, indent string) *ErrorRenderer

func (ErrorRenderer) Render

func (r ErrorRenderer) Render() string

type FormatResolver added in v0.17.0

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

func NewFormatResolver added in v0.17.0

func NewFormatResolver(ctx context.Context) (*FormatResolver, error)

func (*FormatResolver) GetFormatter added in v0.17.0

func (r *FormatResolver) GetFormatter(arg string) (Formatter, error)

type Formatter

type Formatter interface {
	Format(ctx context.Context, tree *controlexecute.ExecutionTree) (io.Reader, error)
	FileExtension() string
	Name() string
	Alias() string
}

type FormatterBase added in v0.17.0

type FormatterBase struct{}

func (*FormatterBase) Alias added in v0.17.0

func (*FormatterBase) Alias() string

type GroupHeadingRenderer

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

func NewGroupHeadingRenderer

func NewGroupHeadingRenderer(title string, failed, total, maxFailed, maxTotal, width int, indent string) *GroupHeadingRenderer

func (GroupHeadingRenderer) Render

func (r GroupHeadingRenderer) Render() string

type GroupRenderer

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

func NewGroupRenderer

func NewGroupRenderer(group *controlexecute.ResultGroup, parent *GroupRenderer, maxFailedControls, maxTotalControls int, resultTree *controlexecute.ExecutionTree, width int) *GroupRenderer

func (GroupRenderer) Render

func (r GroupRenderer) Render() string

type GroupTitleRenderer

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

func NewGroupTitleRenderer

func NewGroupTitleRenderer(title string, width int) *GroupTitleRenderer

func (GroupTitleRenderer) Render

func (r GroupTitleRenderer) Render() string

Render returns the title, truncated to the max length if necessary NOTE: adds a trailing space

type NullFormatter

type NullFormatter struct {
	FormatterBase
}

NullFormatter is to be used when no output is expected. It always returns a `io.Reader` which reads an empty string

func (*NullFormatter) FileExtension

func (j *NullFormatter) FileExtension() string

func (*NullFormatter) Format

func (*NullFormatter) Name added in v0.17.0

func (j *NullFormatter) Name() string

type OutputTemplate added in v0.17.0

type OutputTemplate struct {
	TemplatePath   string
	FormatName     string
	FileExtension  string
	FormatFullName string
}

func NewOutputTemplate added in v0.17.0

func NewOutputTemplate(directoryPath string) *OutputTemplate

func (*OutputTemplate) String added in v0.17.0

func (ft *OutputTemplate) String() string

type ResultReasonRenderer

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

func NewResultReasonRenderer

func NewResultReasonRenderer(status, reason string, width int) *ResultReasonRenderer

func (ResultReasonRenderer) Render

func (r ResultReasonRenderer) Render() string

Render returns the reason, truncated to the max length if necessary NOTE: adds a trailing space

type ResultRenderer

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

func NewResultRenderer

func NewResultRenderer(status, reason string, dimensions []controlexecute.Dimension, colorGenerator *controlexecute.DimensionColorGenerator, width int, indent string) *ResultRenderer

func (ResultRenderer) Render

func (r ResultRenderer) Render() string

type ResultStatusRenderer

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

func NewResultStatusRenderer

func NewResultStatusRenderer(status string) *ResultStatusRenderer

func (ResultStatusRenderer) Render

func (r ResultStatusRenderer) Render() string

Render returns the status

type SeverityRenderer

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

func NewSeverityRenderer

func NewSeverityRenderer(severity string) *SeverityRenderer

func (SeverityRenderer) Render

func (r SeverityRenderer) Render() string

Render returns ther severity oin upper case, got 'critical' and 'high' severities for all other values an empty string is returned NOTE: adds a trailing space

type SnapshotFormatter added in v0.17.0

type SnapshotFormatter struct {
	FormatterBase
}

func (*SnapshotFormatter) Alias added in v0.17.0

func (f *SnapshotFormatter) Alias() string

func (*SnapshotFormatter) FileExtension added in v0.17.0

func (f *SnapshotFormatter) FileExtension() string

func (*SnapshotFormatter) Format added in v0.17.0

func (SnapshotFormatter) Name added in v0.17.0

func (f SnapshotFormatter) Name() string

type SpacerRenderer

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

func NewSpacerRenderer

func NewSpacerRenderer(width int) *SpacerRenderer

func (SpacerRenderer) Render

func (r SpacerRenderer) Render() string

Render returns a divider string of format: "....... " NOTE: adds a trailing space

type SummaryRenderer

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

func NewSummaryRenderer

func NewSummaryRenderer(resultTree *controlexecute.ExecutionTree, width int) *SummaryRenderer

func (SummaryRenderer) Render

func (r SummaryRenderer) Render() string

type SummarySeverityRenderer

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

func NewSummarySeverityRenderer

func NewSummarySeverityRenderer(resultTree *controlexecute.ExecutionTree, width int) *SummarySeverityRenderer

func (*SummarySeverityRenderer) Render

func (r *SummarySeverityRenderer) Render() []string

type SummarySeverityRowRenderer

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

func NewSummarySeverityRowRenderer

func NewSummarySeverityRowRenderer(resultTree *controlexecute.ExecutionTree, width int, severity string) *SummarySeverityRowRenderer

func (*SummarySeverityRowRenderer) Render

func (r *SummarySeverityRowRenderer) Render() string

type SummaryStatusRowRenderer

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

func NewSummaryStatusRowRenderer

func NewSummaryStatusRowRenderer(resultTree *controlexecute.ExecutionTree, width int, status string) *SummaryStatusRowRenderer

func (*SummaryStatusRowRenderer) Render

func (r *SummaryStatusRowRenderer) Render() string

type SummaryTotalRowRenderer

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

func NewSummaryTotalRowRenderer

func NewSummaryTotalRowRenderer(resultTree *controlexecute.ExecutionTree, width int) *SummaryTotalRowRenderer

func (*SummaryTotalRowRenderer) Render

func (r *SummaryTotalRowRenderer) Render() string

type TableRenderer

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

func NewTableRenderer

func NewTableRenderer(resultTree *controlexecute.ExecutionTree) *TableRenderer

func (TableRenderer) MinimumWidth

func (r TableRenderer) MinimumWidth() int

MinimumWidth is the width we require It is determined by the left indent, title, severity, counter and counter graph

func (TableRenderer) Render

func (r TableRenderer) Render(width int) string

type TemplateFormatter

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

TemplateFormatter implements the 'Formatter' interface and exposes a generic template based output mechanism for 'check' execution trees

func NewTemplateFormatter

func NewTemplateFormatter(input *OutputTemplate) (*TemplateFormatter, error)

func (TemplateFormatter) Alias added in v0.17.0

func (tf TemplateFormatter) Alias() string

func (TemplateFormatter) FileExtension

func (tf TemplateFormatter) FileExtension() string

func (TemplateFormatter) Format

func (TemplateFormatter) Name added in v0.17.0

func (tf TemplateFormatter) Name() string

type TemplateRenderConfig

type TemplateRenderConfig struct {
	RenderHeader bool
	Separator    string
}

type TemplateRenderConstants

type TemplateRenderConstants struct {
	SteampipeVersion string
	WorkingDir       string
}

type TemplateRenderContext

type TemplateRenderContext struct {
	Constants TemplateRenderConstants
	Config    TemplateRenderConfig
	Data      *controlexecute.ExecutionTree
}

type TemplateVersionFile

type TemplateVersionFile struct {
	Version string `json:"version"`
}

type TextFormatter

type TextFormatter struct {
	FormatterBase
}

func (TextFormatter) Alias added in v0.17.0

func (tf TextFormatter) Alias() string

func (TextFormatter) FileExtension

func (tf TextFormatter) FileExtension() string

func (TextFormatter) Format

func (TextFormatter) Name added in v0.17.0

func (tf TextFormatter) Name() string

Jump to

Keyboard shortcuts

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