Documentation
¶
Index ¶
- Constants
- Variables
- func CounterRendererMinWidth() int
- func EnsureTemplates() error
- func GetExporters() ([]export.Exporter, error)
- func MapRange(value int, valueRange RangeConstraint, desiredRange RangeConstraint) int
- func PublishSnapshot(ctx context.Context, e *controlexecute.ExecutionTree, shouldShare bool) error
- func TruncateString(str string, length int) string
- type CSVRenderer
- type ControlColorSchemaDefinition
- type ControlColorScheme
- type ControlExporter
- type ControlRenderer
- type CounterGraphRenderer
- type CounterGraphRendererOptions
- type CounterRenderer
- type CounterRendererOptions
- type CsvColumnPair
- type DimensionsRenderer
- type ErrorRenderer
- type FormatResolver
- type Formatter
- type FormatterBase
- type GroupHeadingRenderer
- type GroupRenderer
- type GroupTitleRenderer
- type NullFormatter
- type OutputTemplate
- type RangeConstraint
- type ResultColumns
- type ResultReasonRenderer
- type ResultRenderer
- type ResultStatusRenderer
- type SeverityRenderer
- type SnapshotFormatter
- type SpacerRenderer
- type SummaryRenderer
- type SummarySeverityRenderer
- type SummarySeverityRowRenderer
- type SummaryStatusRowRenderer
- type SummaryTotalRowRenderer
- type TableRenderer
- type TemplateFormatter
- type TemplateRenderConfig
- type TemplateRenderConstants
- type TemplateRenderContext
- type TemplateVersionFile
- type TextFormatter
Constants ¶
const MaxColumns = 200
Variables ¶
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
GetExporters returns an array of ControlExporters corresponding to the available output formats
func MapRange ¶
func MapRange(value int, valueRange RangeConstraint, desiredRange RangeConstraint) int
MapRange Re-maps a number from one range to another.
func PublishSnapshot ¶ added in v0.17.0
func PublishSnapshot(ctx context.Context, e *controlexecute.ExecutionTree, shouldShare bool) error
func TruncateString ¶
Types ¶
type CSVRenderer ¶
type CSVRenderer struct {
// contains filtered or unexported fields
}
func (CSVRenderer) Render ¶
func (r CSVRenderer) Render(tree *controlexecute.ExecutionTree) [][]string
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 NewControlColorScheme ¶
func NewControlColorScheme(def *ControlColorSchemaDefinition) (*ControlColorScheme, error)
func (*ControlColorScheme) Initialise ¶
func (c *ControlColorScheme) Initialise(def *ControlColorSchemaDefinition) error
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 CsvColumnPair ¶
type CsvColumnPair struct {
// contains filtered or unexported fields
}
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() (*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 (j *NullFormatter) Format(ctx context.Context, tree *controlexecute.ExecutionTree) (io.Reader, error)
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 RangeConstraint ¶
type RangeConstraint struct {
// contains filtered or unexported fields
}
func NewRangeConstraint ¶
func NewRangeConstraint(minimum int, maximum int) RangeConstraint
func (*RangeConstraint) Constrain ¶
func (r *RangeConstraint) Constrain(value int) int
Constrain a number to be within a range.
type ResultColumns ¶
type ResultColumns struct {
AllColumns []string
GroupColumns []CsvColumnPair
ResultColumns []CsvColumnPair
DimensionColumns []string
TagColumns []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 (f *SnapshotFormatter) Format(ctx context.Context, tree *controlexecute.ExecutionTree) (io.Reader, error)
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 (tf TemplateFormatter) Format(ctx context.Context, tree *controlexecute.ExecutionTree) (io.Reader, error)
func (TemplateFormatter) Name ¶ added in v0.17.0
func (tf TemplateFormatter) Name() string
type TemplateRenderConfig ¶
type TemplateRenderConfig struct {
RenderHeader bool
}
type TemplateRenderConstants ¶
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 (tf TextFormatter) Format(_ context.Context, tree *controlexecute.ExecutionTree) (io.Reader, error)
func (TextFormatter) Name ¶ added in v0.17.0
func (tf TextFormatter) Name() string
Source Files
¶
- color_scheme.go
- control.go
- control_exporter.go
- csv.go
- dimensions.go
- error.go
- format_resolver.go
- formatter.go
- formatter_fs.go
- formatter_null.go
- formatter_snapshot.go
- formatter_template.go
- formatter_text.go
- get_exporters.go
- group.go
- group_counter.go
- group_counter_graph.go
- group_heading.go
- group_title.go
- output_formatters.go
- output_template.go
- range.go
- result.go
- result_columns.go
- result_reason.go
- result_status.go
- severity.go
- snapshot.go
- spacer.go
- summary.go
- summary_severity.go
- summary_severity_row.go
- summary_status_row.go
- summary_total_row.go
- table.go
- template_functions.go
- template_render_context.go
- truncate.go