Documentation
¶
Overview ¶
internal/template/template.go
Index ¶
- Constants
- func GetFuncMap(secretsProvider pkgsecrets.Provider, bus events.Bus, ...) template.FuncMap
- func RedactSecretsInError(err error, keywords map[string]struct{}) error
- func RedactSecretsInString(input string, keywords map[string]struct{}) string
- func RedactTrackedSecrets(data interface{}, tracker *secrets.SecretTracker) (interface{}, bool)
- type GoRenderer
- func (r *GoRenderer) ExtractVariables(templateString string) ([]string, error)
- func (r *GoRenderer) GetFuncMap() template.FuncMap
- func (r *GoRenderer) Render(templateString string, data interface{}) (string, error)
- func (r *GoRenderer) Resolve(templateString string, data interface{}) (interface{}, error)
- type Renderer
Constants ¶
const (
GxoStateKeyPrefix = "_gxo"
)
const RedactedSecretValue = "[REDACTED_SECRET]"
RedactedSecretValue is the placeholder string used to replace a tracked secret value that was attempted to be registered into the state.
Variables ¶
This section is empty.
Functions ¶
func GetFuncMap ¶
func GetFuncMap(secretsProvider pkgsecrets.Provider, bus events.Bus, tracker *secrets.SecretTracker) template.FuncMap
GetFuncMap creates and returns the standard function map for GXO templates. It accepts a task-specific SecretTracker to correctly "taint" secrets resolved during a specific render operation.
func RedactSecretsInError ¶
RedactSecretsInError redacts sensitive keywords within an error's message.
func RedactSecretsInString ¶
RedactSecretsInString performs a simple keyword-based redaction on a string. This function is intended for general output like logs or errors where a SecretTracker is not available.
func RedactTrackedSecrets ¶
func RedactTrackedSecrets(data interface{}, tracker *secrets.SecretTracker) (interface{}, bool)
RedactTrackedSecrets recursively walks a data structure and replaces any string value that is a tracked secret, or contains a tracked secret, with a redacted placeholder. It returns the (potentially) new data structure and a boolean indicating if any redaction occurred.
Types ¶
type GoRenderer ¶
type GoRenderer struct {
// contains filtered or unexported fields
}
GoRenderer implements the Renderer interface using Go's text/template package. It includes caching for parsed templates and extracted variables to improve performance. This struct is designed to be concurrency-safe.
func NewGoRenderer ¶
func NewGoRenderer(secretsProvider pkgsecrets.Provider, eventBus events.Bus, tracker *secrets.SecretTracker) *GoRenderer
NewGoRenderer creates a new GoRenderer instance. It should be called per task execution to ensure the correct secretTracker is bound for redaction.
func (*GoRenderer) ExtractVariables ¶
func (r *GoRenderer) ExtractVariables(templateString string) ([]string, error)
ExtractVariables parses a template string to find all referenced variables.
func (*GoRenderer) GetFuncMap ¶
func (r *GoRenderer) GetFuncMap() template.FuncMap
GetFuncMap creates and returns the standard function map for GXO templates. It uses the GoRenderer's internal secretsProvider, eventBus, and secretTracker.
func (*GoRenderer) Render ¶
func (r *GoRenderer) Render(templateString string, data interface{}) (string, error)
Render executes a template against the given data using the renderer's FuncMap.
func (*GoRenderer) Resolve ¶
func (r *GoRenderer) Resolve(templateString string, data interface{}) (interface{}, error)
Resolve attempts to directly resolve a template variable if it's a simple expression, falling back to full rendering if not.
type Renderer ¶
type Renderer interface { Render(templateString string, data interface{}) (string, error) Resolve(templateString string, data interface{}) (interface{}, error) ExtractVariables(templateString string) ([]string, error) GetFuncMap() template.FuncMap }
Renderer defines the interface for GXO's templating engine.