transformers

package
v0.9.3 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnsupportedValueType     = errors.New("unsupported value type for transformer")
	ErrUnsupportedGenerator     = errors.New("transformer doesn't support the configured generator")
	ErrUnsupportedTransformer   = errors.New("unsupported transformer config")
	ErrInvalidParameters        = errors.New("invalid transformer parameters")
	ErrInvalidDynamicParameters = errors.New("invalid transformer dynamic parameters")
	ErrUnknownParameter         = errors.New("unknown parameter provided to transformer")
)

Functions

func FindDynamicValue added in v0.5.0

func FindDynamicValue[T any](param *DynamicParameter, dynamicValues map[string]any, defaultValue T) (T, error)

func FindParameter

func FindParameter[T any](params ParameterValues, name string) (T, bool, error)

func FindParameterArray added in v0.4.1

func FindParameterArray[T any](params ParameterValues, name string) ([]T, bool, error)

func FindParameterWithDefault added in v0.5.0

func FindParameterWithDefault[T any](params ParameterValues, name string, defaultValue T) (T, error)

func ParseDynamicParameters added in v0.5.0

func ParseDynamicParameters(params ParameterValues) (map[string]*DynamicParameter, error)

func ValidateParameters added in v0.5.0

func ValidateParameters(provided map[string]any, expected []string) error

ValidateParameters checks if all provided parameters are in the expected set

Types

type Config

type Config struct {
	Name              TransformerType
	Parameters        ParameterValues
	DynamicParameters ParameterValues
}

type Definition added in v0.6.0

type Definition struct {
	SupportedTypes []SupportedDataType
	Parameters     []Parameter
}

func EmailTransformerDefinition added in v0.8.2

func EmailTransformerDefinition() *Definition

func HstoreTransformerDefinition added in v0.8.1

func HstoreTransformerDefinition() *Definition

func JSONTransformerDefinition added in v0.6.5

func JSONTransformerDefinition() *Definition

func LiteralStringTransformerDefinition added in v0.6.0

func LiteralStringTransformerDefinition() *Definition

func MaskingTransformerDefinition added in v0.6.0

func MaskingTransformerDefinition() *Definition

func PGAnonymizerTransformerDefinition added in v0.8.4

func PGAnonymizerTransformerDefinition() *Definition

func PhoneNumberTransformerDefinition added in v0.6.0

func PhoneNumberTransformerDefinition() *Definition

func StringTransformerDefinition added in v0.6.0

func StringTransformerDefinition() *Definition

func TemplateTransformerDefinition added in v0.6.0

func TemplateTransformerDefinition() *Definition

type DynamicParameter added in v0.5.0

type DynamicParameter struct {
	Column string
}

type EmailTransformer added in v0.8.2

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

func NewEmailTransformer added in v0.8.2

func NewEmailTransformer(params ParameterValues) (*EmailTransformer, error)

func (*EmailTransformer) Close added in v0.8.4

func (et *EmailTransformer) Close() error

func (*EmailTransformer) CompatibleTypes added in v0.8.2

func (et *EmailTransformer) CompatibleTypes() []SupportedDataType

func (*EmailTransformer) IsDynamic added in v0.8.9

func (et *EmailTransformer) IsDynamic() bool

func (*EmailTransformer) Transform added in v0.8.2

func (et *EmailTransformer) Transform(_ context.Context, v Value) (any, error)

func (*EmailTransformer) Type added in v0.8.2

func (et *EmailTransformer) Type() TransformerType

type HstoreTransformer added in v0.8.1

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

func NewHstoreTransformer added in v0.8.1

func NewHstoreTransformer(params ParameterValues) (*HstoreTransformer, error)

func (*HstoreTransformer) Close added in v0.8.4

func (t *HstoreTransformer) Close() error

func (*HstoreTransformer) CompatibleTypes added in v0.8.1

func (t *HstoreTransformer) CompatibleTypes() []SupportedDataType

func (*HstoreTransformer) IsDynamic added in v0.8.9

func (t *HstoreTransformer) IsDynamic() bool

func (*HstoreTransformer) Transform added in v0.8.1

func (t *HstoreTransformer) Transform(_ context.Context, value Value) (any, error)

func (*HstoreTransformer) Type added in v0.8.1

type JSONTransformer added in v0.6.5

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

func NewJSONTransformer added in v0.6.5

func NewJSONTransformer(params ParameterValues) (*JSONTransformer, error)

func (*JSONTransformer) Close added in v0.8.4

func (jt *JSONTransformer) Close() error

func (*JSONTransformer) CompatibleTypes added in v0.6.5

func (jt *JSONTransformer) CompatibleTypes() []SupportedDataType

func (*JSONTransformer) IsDynamic added in v0.8.9

func (jt *JSONTransformer) IsDynamic() bool

func (*JSONTransformer) Transform added in v0.6.5

func (jt *JSONTransformer) Transform(_ context.Context, value Value) (any, error)

func (*JSONTransformer) Type added in v0.6.5

func (jt *JSONTransformer) Type() TransformerType

type LiteralStringTransformer added in v0.5.0

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

func NewLiteralStringTransformer added in v0.5.0

func NewLiteralStringTransformer(params ParameterValues) (*LiteralStringTransformer, error)

func (*LiteralStringTransformer) Close added in v0.8.4

func (lst *LiteralStringTransformer) Close() error

func (*LiteralStringTransformer) CompatibleTypes added in v0.5.0

func (lst *LiteralStringTransformer) CompatibleTypes() []SupportedDataType

func (*LiteralStringTransformer) IsDynamic added in v0.8.9

func (lst *LiteralStringTransformer) IsDynamic() bool

func (*LiteralStringTransformer) Transform added in v0.5.0

func (lst *LiteralStringTransformer) Transform(_ context.Context, value Value) (any, error)

func (*LiteralStringTransformer) Type added in v0.6.0

type MaskingTransformer added in v0.5.0

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

MaskingTransformer is a transformer that masks sensitive data using the Masker library.

func NewMaskingTransformer added in v0.5.0

func NewMaskingTransformer(params ParameterValues) (*MaskingTransformer, error)

NewMaskingTransformer creates a new MaskingTransformer with the given masking function.

func (*MaskingTransformer) Close added in v0.8.4

func (t *MaskingTransformer) Close() error

func (*MaskingTransformer) CompatibleTypes added in v0.5.0

func (t *MaskingTransformer) CompatibleTypes() []SupportedDataType

func (*MaskingTransformer) IsDynamic added in v0.8.9

func (t *MaskingTransformer) IsDynamic() bool

func (*MaskingTransformer) Transform added in v0.5.0

func (t *MaskingTransformer) Transform(_ context.Context, value Value) (any, error)

Transform applies the masking function to the input value and returns the masked value.

func (*MaskingTransformer) Type added in v0.6.0

type PGAnonymizerTransformer added in v0.8.4

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

func NewPGAnonymizerTransformer added in v0.8.4

func NewPGAnonymizerTransformer(params ParameterValues) (*PGAnonymizerTransformer, error)

NewPGAnonymizerTransformer creates a new transformer that supports pg_anonymizer functions. Unsupported functions: - destruction ('MASKED WITH VALUE ”CONFIDENTIAL” ) - anon.ternary (conditional masking) - anon.generalize... (data generalization - only makes sense with views)

func (*PGAnonymizerTransformer) Close added in v0.8.4

func (t *PGAnonymizerTransformer) Close() error

func (*PGAnonymizerTransformer) CompatibleTypes added in v0.8.4

func (t *PGAnonymizerTransformer) CompatibleTypes() []SupportedDataType

func (*PGAnonymizerTransformer) IsDynamic added in v0.8.9

func (t *PGAnonymizerTransformer) IsDynamic() bool

func (*PGAnonymizerTransformer) Transform added in v0.8.4

func (t *PGAnonymizerTransformer) Transform(ctx context.Context, value Value) (any, error)

func (*PGAnonymizerTransformer) Type added in v0.8.4

type Parameter added in v0.6.0

type Parameter struct {
	Name          string
	SupportedType string
	Default       any
	Dynamic       bool
	Required      bool
	Values        []any
}

type ParameterValues added in v0.6.0

type ParameterValues map[string]any

type PhoneNumberTransformer added in v0.5.0

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

func NewPhoneNumberTransformer added in v0.5.0

func NewPhoneNumberTransformer(params, dynamicParams ParameterValues) (*PhoneNumberTransformer, error)

func (*PhoneNumberTransformer) Close added in v0.8.4

func (t *PhoneNumberTransformer) Close() error

func (*PhoneNumberTransformer) CompatibleTypes added in v0.5.0

func (t *PhoneNumberTransformer) CompatibleTypes() []SupportedDataType

func (*PhoneNumberTransformer) IsDynamic added in v0.8.9

func (t *PhoneNumberTransformer) IsDynamic() bool

func (*PhoneNumberTransformer) Transform added in v0.5.0

func (t *PhoneNumberTransformer) Transform(_ context.Context, value Value) (any, error)

func (*PhoneNumberTransformer) Type added in v0.6.0

type StringTransformer

type StringTransformer struct {
}

func NewStringTransformer

func NewStringTransformer(params ParameterValues) (*StringTransformer, error)

func (*StringTransformer) Close added in v0.8.4

func (st *StringTransformer) Close() error

func (*StringTransformer) CompatibleTypes added in v0.5.0

func (st *StringTransformer) CompatibleTypes() []SupportedDataType

func (*StringTransformer) IsDynamic added in v0.8.9

func (st *StringTransformer) IsDynamic() bool

func (*StringTransformer) Transform

func (st *StringTransformer) Transform(_ context.Context, v Value) (any, error)

func (*StringTransformer) Type added in v0.6.0

type SupportedDataType added in v0.5.0

type SupportedDataType string
const (
	ByteArrayDataType      SupportedDataType = "byte_array"
	StringDataType         SupportedDataType = "string"
	BooleanDataType        SupportedDataType = "boolean"
	Integer8DataType       SupportedDataType = "integer8"
	UInteger8DataType      SupportedDataType = "uinteger8"
	Integer16DataType      SupportedDataType = "integer16"
	UInteger16DataType     SupportedDataType = "uinteger16"
	Integer32DataType      SupportedDataType = "integer32"
	UInteger32DataType     SupportedDataType = "uinteger32"
	Integer64DataType      SupportedDataType = "integer64"
	UInteger64DataType     SupportedDataType = "uinteger64"
	Float32DataType        SupportedDataType = "float32"
	Float64DataType        SupportedDataType = "float64"
	UUIDDataType           SupportedDataType = "uuid"
	UInt8ArrayOf16DataType SupportedDataType = "uint8_array_of_16"
	DateDataType           SupportedDataType = "date"
	DatetimeDataType       SupportedDataType = "datetime"
	JSONDataType           SupportedDataType = "json"
	AllDataTypes           SupportedDataType = "all"
	CitextDataType         SupportedDataType = "citext"
	HstoreDataType         SupportedDataType = "hstore"
)

type TemplateTransformer added in v0.6.0

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

func NewTemplateTransformer added in v0.6.0

func NewTemplateTransformer(params ParameterValues) (*TemplateTransformer, error)

func (*TemplateTransformer) Close added in v0.8.4

func (t *TemplateTransformer) Close() error

func (*TemplateTransformer) CompatibleTypes added in v0.6.0

func (t *TemplateTransformer) CompatibleTypes() []SupportedDataType

func (*TemplateTransformer) IsDynamic added in v0.8.9

func (t *TemplateTransformer) IsDynamic() bool

func (*TemplateTransformer) Transform added in v0.6.0

func (t *TemplateTransformer) Transform(_ context.Context, value Value) (any, error)

func (*TemplateTransformer) Type added in v0.6.0

type Transformer

type Transformer interface {
	Transform(context.Context, Value) (any, error)
	IsDynamic() bool
	CompatibleTypes() []SupportedDataType
	Type() TransformerType
	Close() error
}

type TransformerType

type TransformerType string
const (
	Email                  TransformerType = "email"
	String                 TransformerType = "string"
	LiteralString          TransformerType = "literal_string"
	PhoneNumber            TransformerType = "phone_number"
	NeosyncString          TransformerType = "neosync_string"
	GreenmaskString        TransformerType = "greenmask_string"
	NeosyncFirstName       TransformerType = "neosync_firstname"
	GreenmaskFirstName     TransformerType = "greenmask_firstname"
	NeosyncLastName        TransformerType = "neosync_lastname"
	NeosyncFullName        TransformerType = "neosync_fullname"
	NeosyncEmail           TransformerType = "neosync_email"
	GreenmaskInteger       TransformerType = "greenmask_integer"
	GreenmaskFloat         TransformerType = "greenmask_float"
	GreenmaskUUID          TransformerType = "greenmask_uuid"
	GreenmaskBoolean       TransformerType = "greenmask_boolean"
	GreenmaskChoice        TransformerType = "greenmask_choice"
	GreenmaskUnixTimestamp TransformerType = "greenmask_unix_timestamp"
	GreenmaskDate          TransformerType = "greenmask_date"
	GreenmaskUTCTimestamp  TransformerType = "greenmask_utc_timestamp"
	Masking                TransformerType = "masking"
	Template               TransformerType = "template"
	JSON                   TransformerType = "json"
	Hstore                 TransformerType = "hstore"
	PGAnonymizer           TransformerType = "pg_anonymizer"
)

type Value added in v0.5.0

type Value struct {
	TransformValue any
	TransformType  string
	DynamicValues  map[string]any
}

func NewValue added in v0.5.0

func NewValue(transformValue any, transformType string, dynamicValues map[string]any) Value

func (*Value) GetDynamicValue added in v0.6.0

func (v *Value) GetDynamicValue(name string) (any, error)

func (*Value) GetValue added in v0.6.0

func (v *Value) GetValue() any

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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