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
- func (et *EmailTransformer) Close() error
- func (et *EmailTransformer) CompatibleTypes() []SupportedDataType
- func (et *EmailTransformer) IsDynamic() bool
- func (et *EmailTransformer) Transform(_ context.Context, v Value) (any, error)
- func (et *EmailTransformer) Type() TransformerType
- func (et *EmailTransformer) Uniqueness() Uniqueness
- 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
- func (est *EncryptedAESSIVTransformer) Uniqueness() Uniqueness
- type HstoreTransformer
- func (t *HstoreTransformer) Close() error
- func (t *HstoreTransformer) CompatibleTypes() []SupportedDataType
- func (t *HstoreTransformer) IsDynamic() bool
- func (t *HstoreTransformer) Transform(_ context.Context, value Value) (any, error)
- func (t *HstoreTransformer) Type() TransformerType
- func (t *HstoreTransformer) Uniqueness() Uniqueness
- type JSONTransformer
- func (jt *JSONTransformer) Close() error
- func (jt *JSONTransformer) CompatibleTypes() []SupportedDataType
- func (jt *JSONTransformer) IsDynamic() bool
- func (jt *JSONTransformer) Transform(_ context.Context, value Value) (any, error)
- func (jt *JSONTransformer) Type() TransformerType
- func (jt *JSONTransformer) Uniqueness() Uniqueness
- 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
- func (lst *LiteralStringTransformer) Uniqueness() Uniqueness
- type MaskingTransformer
- func (t *MaskingTransformer) Close() error
- func (t *MaskingTransformer) CompatibleTypes() []SupportedDataType
- func (t *MaskingTransformer) IsDynamic() bool
- func (t *MaskingTransformer) Transform(_ context.Context, value Value) (any, error)
- func (t *MaskingTransformer) Type() TransformerType
- func (t *MaskingTransformer) Uniqueness() Uniqueness
- 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
- func (t *PGAnonymizerTransformer) Uniqueness() Uniqueness
- 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
- func (t *PhoneNumberTransformer) Uniqueness() Uniqueness
- type StringTransformer
- func (st *StringTransformer) Close() error
- func (st *StringTransformer) CompatibleTypes() []SupportedDataType
- func (st *StringTransformer) IsDynamic() bool
- func (st *StringTransformer) Transform(_ context.Context, v Value) (any, error)
- func (st *StringTransformer) Type() TransformerType
- func (st *StringTransformer) Uniqueness() Uniqueness
- type SupportedDataType
- type TemplateTransformer
- func (t *TemplateTransformer) Close() error
- func (t *TemplateTransformer) CompatibleTypes() []SupportedDataType
- func (t *TemplateTransformer) IsDynamic() bool
- func (t *TemplateTransformer) Transform(_ context.Context, value Value) (any, error)
- func (t *TemplateTransformer) Type() TransformerType
- func (t *TemplateTransformer) Uniqueness() Uniqueness
- type Transformer
- type TransformerType
- type Uniqueness
- type UniquenessReporter
- 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
Uniqueness Uniqueness
}
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
func (*EmailTransformer) Uniqueness ¶ added in v1.4.0
func (et *EmailTransformer) Uniqueness() Uniqueness
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
func (*EncryptedAESSIVTransformer) Uniqueness ¶ added in v1.4.0
func (est *EncryptedAESSIVTransformer) Uniqueness() Uniqueness
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
func (*HstoreTransformer) Uniqueness ¶ added in v1.4.0
func (t *HstoreTransformer) Uniqueness() Uniqueness
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
func (*JSONTransformer) Uniqueness ¶ added in v1.4.0
func (jt *JSONTransformer) Uniqueness() Uniqueness
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
func (*LiteralStringTransformer) Uniqueness ¶ added in v1.4.0
func (lst *LiteralStringTransformer) Uniqueness() Uniqueness
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
func (*MaskingTransformer) Uniqueness ¶ added in v1.4.0
func (t *MaskingTransformer) Uniqueness() Uniqueness
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
func (*PGAnonymizerTransformer) Uniqueness ¶ added in v1.4.0
func (t *PGAnonymizerTransformer) Uniqueness() Uniqueness
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
func (*PhoneNumberTransformer) Uniqueness ¶ added in v1.4.0
func (t *PhoneNumberTransformer) Uniqueness() Uniqueness
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
func (*StringTransformer) Uniqueness ¶ added in v1.4.0
func (st *StringTransformer) Uniqueness() Uniqueness
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
func (*TemplateTransformer) Uniqueness ¶ added in v1.4.0
func (t *TemplateTransformer) Uniqueness() Uniqueness
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" )
type Uniqueness ¶ added in v1.4.0
type Uniqueness int
validated against unique indexes
const ( // zero value, so a transformer that never classified itself is // distinguishable from one deliberately classified lossy UniquenessUnspecified Uniqueness = iota UniquenessLossy UniquenessNotGuaranteed UniquenessPreserved )
func UniquenessOf ¶ added in v1.4.0
func UniquenessOf(t Transformer) Uniqueness
UniquenessOf reports what t guarantees about the uniqueness of its output. A transformer that does not classify itself is assumed to be capable of producing duplicates, but not known to, so that both ways of leaving it unclassified answer the same thing.
func (Uniqueness) String ¶ added in v1.4.0
func (u Uniqueness) String() string
type UniquenessReporter ¶ added in v1.4.0
type UniquenessReporter interface {
Uniqueness() Uniqueness
}
optional so that Transformer implementations outside this module keep compiling; UniquenessOf treats a non-implementer as unknown
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
- uniqueness.go
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
pool
Package pool provides a concurrency-safe pool of instances for libraries whose types are not safe for concurrent use.
|
Package pool provides a concurrency-safe pool of instances for libraries whose types are not safe for concurrent use. |
|
template
Package template builds the text/template instances used by the transformers that accept user provided templates.
|
Package template builds the text/template instances used by the transformers that accept user provided templates. |