The BafflePrivacySchema contains the schema information for the encryption key and column representation.
MySQL follows a 3-level hierarchy for column representation. SQL Server and PostgreSQL follow a 4-level hierarchy for column representation. TOML format allows for spaces and empty lines. Comments should start with '#'.
3-level TOML Representation
format = "TOML"
[[database]]
name = "BaffleTest"
[[database.table]]
name = "pet_table"
[[database.table.column]]
name = "name"
type = "varchar"
precision = 20
key = 3
encType = "ENC_RND"
encMode = "M_CTR"
primaryKey = false
nullable = false
default = "my first pet"
migrationStatus = "MGR_ENC"
charset = "utf8mb4"
collation = "utf8mb4_unicode_ci"
[database.table.column.masking]
enableMask = true
mode = "FIXED"
pattern = "*** *** ****"
limit = true
4-level TOML Representation
format = "TOML"
[[database]]
name = "BaffleTest"
[[database.schema]]
name = "dbo"
[[database.schema.table]]
name = "pet_table"
[[database.schema.table.column]]
name = "name"
type = "varchar"
precision = 20
key = 3
encType = "ENC_RND"
encMode = "M_CTR"
primaryKey = false
nullable = false
default = "my first pet"
migrationStatus = "MGR_ENC"
charset = "utf8mb4"
collation = "utf8mb4_unicode_ci"
[database.schema.table.column.masking]
enableMask = true
mode = "FIXED"
pattern = "*** *** ****"
limit = true
Examples
MySQL BafflePrivacySchema TOML file
format = "TOML"
# This is a TOML Format for BafflePrivacySchema
# First database
[[database]]
name = "BaffleTest"
# Table 1 object - Uses Column-level encryption
[[database.table]]
name = "pet_table"
[[database.table.column]]
name = "name"
type = "varchar"
precision = 20
key = 3
encType = "ENC_RND"
encMode = "M_CTR"
migrationStatus = "MGR_ENC"
charset = "utf8mb4"
collation = "utf8mb4_unicode_ci"
[[database.table.column]]
name = "species"
type = "text"
key = 4
default = "dog"
encType = "ENC_RND"
encMode = "M_CTR"
primaryKey = false
nullable = true
migrationStatus = "MGR_ENC"
charset = "latin1"
# Table 2 object - Uses Record-level encryption
[[database.table]]
name = "pet_row"
[[database.table.column]]
name = "name"
type = "varchar"
precision = 50
key = -2
primaryKey = false
nullable = false
encType = "ENC_DET"
encMode = "M_CTR"
[[database.table.column]]
name = "age"
type = "int"
key = -2
encType = "ENC_RND"
encMode = "M_CTR"
# Second database
[[database]]
name = "BaffleDemo"
[[database.table]]
name = "employee"
[[database.table.column]]
name = "empID"
type = "varchar"
precision = 10
key = -1
primaryKey = true
nullable = false
[[database.table.column]]
name = "salary"
type = "decimal"
precision = 10
scale = 2
key = 5
encType = "ENC_DET"
encMode = "M_CTR"
migrationStatus = "MGR_CLEAR"
MSSQL/PostgreSQL BafflePrivacySchema TOML file
format = "TOML"
# This is a TOML Format for BafflePrivacySchema
# First database
[[database]]
name = "BaffleTest"
# Schema level used for 4-level hierarchy
[[database.schema]]
name = "dbo"
# Table 1 object - Uses Column-level encryption
[[database.schema.table]]
name = "pet_table"
[[database.schema.table.column]]
name = "name"
type = "varchar"
precision = 20
key = 3
encType = "ENC_RND"
encMode = "M_CTR"
migrationStatus = "MGR_ENC"
charset = "utf8mb4"
collation = "utf8mb4_unicode_ci"
[[database.schema.table.column]]
name = "species"
type = "text"
key = 4
default = "dog"
encType = "ENC_RND"
encMode = "M_CTR"
primaryKey = false
nullable = true
migrationStatus = "MGR_ENC"
charset = "latin1"
# Table 2 object - Uses Record-level encryption
[[database.schema.table]]
name = "pet_row"
[[database.schema.table.column]]
name = "name"
type = "varchar"
precision = 50
key = -2
primaryKey = false
nullable = false
encType = "ENC_DET"
encMode = "M_CTR"
[[database.schema.table.column]]
name = "age"
type = "int"
key = -2
encType = "ENC_RND"
encMode = "M_CTR"
# Second database
[[database]]
name = "BaffleDemo"
[[database.schema]]
name = "dbo2"
[[database.schema.table]]
name = "employee"
[[database.schema.table.column]]
name = "empID"
type = "varchar"
precision = 10
key = -1
primaryKey = true
nullable = false
[[database.schema.table.column]]
name = "salary"
type = "decimal"
precision = 10
scale = 2
key = 5
encType = "ENC_DET"
encMode = "M_CTR"
migrationStatus = "MGR_CLEAR"
Comments
Please sign in to leave a comment.