Documentation
¶
Index ¶
- Variables
- func FindDynamicValue[T any](param *DynamicParameter, dynamicValues map[string]any, defaultValue T) (T, error)
- func FindParameter[T any](params ParameterValues, name string) (T, bool, error)
- func FindParameterArray[T any](params ParameterValues, name string) ([]T, bool, error)
- func FindParameterWithDefault[T any](params ParameterValues, name string, defaultValue T) (T, error)
- func ParseDynamicParameters(params ParameterValues) (map[string]*DynamicParameter, error)
- func ValidateParameters(provided map[string]any, expected []string) error
- type Config
- type Definition
- func EmailTransformerDefinition() *Definition
- func EncryptedAESSIVTransformerDefinition() *Definition
- func HstoreTransformerDefinition() *Definition
- func JSONTransformerDefinition() *Definition
- func LiteralStringTransformerDefinition() *Definition
- func MaskingTransformerDefinition() *Definition
- func PGAnonymizerTransformerDefinition() *Definition
- func PhoneNumberTransformerDefinition() *Definition
- func StringTransformerDefinition() *Definition
- func TemplateTransformerDefinition() *Definition
- type DynamicParameter
- type EmailTransformer
- type EncryptedAESSIVTransformer
- func (est *EncryptedAESSIVTransformer) Close() error
- func (est *EncryptedAESSIVTransformer) CompatibleTypes() []SupportedDataType
- func (est *EncryptedAESSIVTransformer) IsDynamic() bool
- func (est *EncryptedAESSIVTransformer) Transform(_ context.Context, v Value) (any, error)
- func (est *EncryptedAESSIVTransformer) Type() TransformerType
- type HstoreTransformer
- type JSONTransformer
- type LiteralStringTransformer
- func (lst *LiteralStringTransformer) Close() error
- func (lst *LiteralStringTransformer) CompatibleTypes() []SupportedDataType
- func (lst *LiteralStringTransformer) IsDynamic() bool
- func (lst *LiteralStringTransformer) Transform(_ context.Context, value Value) (any, error)
- func (lst *LiteralStringTransformer) Type() TransformerType
- type MaskingTransformer
- type PGAnonymizerTransformer
- func (t *PGAnonymizerTransformer) Close() error
- func (t *PGAnonymizerTransformer) CompatibleTypes() []SupportedDataType
- func (t *PGAnonymizerTransformer) IsDynamic() bool
- func (t *PGAnonymizerTransformer) Transform(ctx context.Context, value Value) (any, error)
- func (t *PGAnonymizerTransformer) Type() TransformerType
- type Parameter
- type ParameterValues
- type PhoneNumberTransformer
- func (t *PhoneNumberTransformer) Close() error
- func (t *PhoneNumberTransformer) CompatibleTypes() []SupportedDataType
- func (t *PhoneNumberTransformer) IsDynamic() bool
- func (t *PhoneNumberTransformer) Transform(_ context.Context, value Value) (any, error)
- func (t *PhoneNumberTransformer) Type() TransformerType
- type StringTransformer
- type SupportedDataType
- type TemplateTransformer
- type Transformer
- type TransformerType
- type Value
Constants ¶
This section is empty.
Variables ¶
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)
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 EncryptedAESSIVTransformerDefinition ¶ added in v1.2.0
func EncryptedAESSIVTransformerDefinition() *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) Type ¶ added in v0.8.2
func (et *EmailTransformer) Type() TransformerType
type EncryptedAESSIVTransformer ¶ added in v1.2.0
type EncryptedAESSIVTransformer struct {
// contains filtered or unexported fields
}
EncryptedAESSIVTransformer encrypts values with AES-SIV (RFC 5297), a deterministic authenticated encryption scheme: the same input, key and associated data always produce the same token, so equality relationships between column values are preserved across rows, tables and runs. Unlike hashing, the transformation is reversible by holders of the key, and tampered or forged tokens fail authenticated decryption. Tokens are base64url-encoded (no padding), safe for URLs and file names. For bytea columns the raw bytes are encrypted regardless of how the value arrives (raw during snapshots, hex-text during replication) and the token is returned as bytes.
func NewEncryptedAESSIVTransformer ¶ added in v1.2.0
func NewEncryptedAESSIVTransformer(params ParameterValues) (*EncryptedAESSIVTransformer, error)
func (*EncryptedAESSIVTransformer) Close ¶ added in v1.2.0
func (est *EncryptedAESSIVTransformer) Close() error
func (*EncryptedAESSIVTransformer) CompatibleTypes ¶ added in v1.2.0
func (est *EncryptedAESSIVTransformer) CompatibleTypes() []SupportedDataType
func (*EncryptedAESSIVTransformer) IsDynamic ¶ added in v1.2.0
func (est *EncryptedAESSIVTransformer) IsDynamic() bool
func (*EncryptedAESSIVTransformer) Type ¶ added in v1.2.0
func (est *EncryptedAESSIVTransformer) 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) Type ¶ added in v0.8.1
func (t *HstoreTransformer) Type() TransformerType
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) 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) Type ¶ added in v0.6.0
func (lst *LiteralStringTransformer) Type() TransformerType
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
Transform applies the masking function to the input value and returns the masked value.
func (*MaskingTransformer) Type ¶ added in v0.6.0
func (t *MaskingTransformer) Type() TransformerType
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) Type ¶ added in v0.8.4
func (t *PGAnonymizerTransformer) Type() TransformerType
type ParameterValues ¶ added in v0.6.0
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) Type ¶ added in v0.6.0
func (t *PhoneNumberTransformer) Type() TransformerType
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) Type ¶ added in v0.6.0
func (st *StringTransformer) Type() TransformerType
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) Type ¶ added in v0.6.0
func (t *TemplateTransformer) Type() TransformerType
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" EncryptedAESSIV TransformerType = "encrypted_aes_siv" )
Source Files
¶
- email_transformer.go
- encrypted_aes_siv_transformer.go
- hstore_transformer.go
- hstore_transformer_operation.go
- json_transformer.go
- json_transformer_operation.go
- literal_string_transformer.go
- masking_transformer.go
- pg_anonymizer_transformer.go
- phone_number_transformer.go
- string_transformer.go
- template_transformer.go
- transformer.go