template

package
v0.0.0-...-7474b17 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

internal/template/template.go

Index

Constants

View Source
const (
	GxoStateKeyPrefix = "_gxo"
)
View Source
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

func RedactSecretsInError(err error, keywords map[string]struct{}) error

RedactSecretsInError redacts sensitive keywords within an error's message.

func RedactSecretsInString

func RedactSecretsInString(input string, keywords map[string]struct{}) string

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.

Jump to

Keyboard shortcuts

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