TOML Format – BafflePrivacySchema

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"

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.