@@ -66,6 +66,8 @@ type Table struct {
6666 Description string `json:"description"`
6767 // List of permissions needed to access this table, if any. For example ["Microsoft.Network/dnsZones/read"] or ["storage.buckets.list"]
6868 PermissionsNeeded []string `json:"permissions_needed"`
69+ // List of columns that may contain sensitive or secret data
70+ SensitiveColumns []string `json:"sensitive_columns"`
6971 // Columns are the set of fields that are part of this table
7072 Columns ColumnList `json:"columns"`
7173 // Relations are a set of related tables defines
@@ -188,6 +190,7 @@ func NewTableFromArrowSchema(sc *arrow.Schema) (*Table, error) {
188190 title , _ := tableMD .GetValue (MetadataTableTitle )
189191 dependsOn , _ := tableMD .GetValue (MetadataTableDependsOn )
190192 permissionsNeeded , _ := tableMD .GetValue (MetadataTablePermissionsNeeded )
193+ sensitiveColumns , _ := tableMD .GetValue (MetadataTableSensitiveColumns )
191194 var parent * Table
192195 if dependsOn != "" {
193196 parent = & Table {Name : dependsOn }
@@ -200,6 +203,8 @@ func NewTableFromArrowSchema(sc *arrow.Schema) (*Table, error) {
200203
201204 var permissionsNeededArr []string
202205 _ = json .Unmarshal ([]byte (permissionsNeeded ), & permissionsNeededArr )
206+ var sensitiveColumnsArr []string
207+ _ = json .Unmarshal ([]byte (sensitiveColumns ), & sensitiveColumnsArr )
203208 table := & Table {
204209 Name : name ,
205210 Description : description ,
@@ -208,6 +213,7 @@ func NewTableFromArrowSchema(sc *arrow.Schema) (*Table, error) {
208213 Title : title ,
209214 Parent : parent ,
210215 PermissionsNeeded : permissionsNeededArr ,
216+ SensitiveColumns : sensitiveColumnsArr ,
211217 }
212218 if isIncremental , found := tableMD .GetValue (MetadataIncremental ); found {
213219 table .IsIncremental = isIncremental == MetadataTrue
@@ -493,6 +499,8 @@ func (t *Table) ToArrowSchema() *arrow.Schema {
493499 }
494500 asJSON , _ := json .Marshal (t .PermissionsNeeded )
495501 md [MetadataTablePermissionsNeeded ] = string (asJSON )
502+ asJSON , _ = json .Marshal (t .SensitiveColumns )
503+ md [MetadataTableSensitiveColumns ] = string (asJSON )
496504
497505 schemaMd := arrow .MetadataFrom (md )
498506 for i , c := range t .Columns {
0 commit comments