Documentation
¶
Index ¶
Constants ¶
View Source
const ( // FileFormatVersion is the current version of the lockbox file format FileFormatVersion = 1 // MagicBytes identifies a lockbox file MagicBytes = "LOCKBOX\x00" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessEntry ¶
type AccessEntry struct {
Timestamp time.Time `json:"timestamp"`
Principal string `json:"principal"`
Action string `json:"action"`
Resource string `json:"resource"`
Success bool `json:"success"`
Details string `json:"details,omitempty"`
}
AccessEntry represents a single access event
type AccessPolicy ¶
type AccessPolicy struct {
Version int `json:"version"`
Principals []Principal `json:"principals"`
Resources []Resource `json:"resources"`
Actions []string `json:"actions"`
Conditions []Condition `json:"conditions"`
CreatedAt time.Time `json:"createdAt"`
ModifiedAt time.Time `json:"modifiedAt"`
}
AccessPolicy represents access control rules
type AuditTrail ¶
type AuditTrail struct {
CreatedAt time.Time `json:"createdAt"`
CreatedBy string `json:"createdBy"`
ModifiedAt time.Time `json:"modifiedAt"`
ModifiedBy string `json:"modifiedBy"`
AccessLog []AccessEntry `json:"accessLog"`
Version int `json:"version"`
}
AuditTrail holds audit information
type BlockInfo ¶
type BlockInfo struct {
ColumnName string `json:"columnName"`
Offset int64 `json:"offset"`
Length int64 `json:"length"`
RowCount int64 `json:"rowCount"`
Compressed bool `json:"compressed"`
Checksum []byte `json:"checksum"`
OrigSize int64 `json:"origSize,omitempty"`
MimeType string `json:"mimeType,omitempty"`
}
BlockInfo describes an encrypted data block
type Condition ¶
type Condition struct {
Type string `json:"type"` // "time", "ip", "custom"
Value interface{} `json:"value"`
}
Condition represents access conditions
type EncryptionParams ¶
type EncryptionParams struct {
Algorithm string `json:"algorithm"` // "AES-256-GCM"
KeyDerivation string `json:"keyDerivation"` // "PBKDF2"
Iterations int `json:"iterations"`
SaltSize int `json:"saltSize"`
ColumnSalts map[string][]byte `json:"columnSalts"` // Column name -> salt
MasterSalt []byte `json:"masterSalt"`
}
EncryptionParams holds encryption configuration
type FileHeader ¶
type FileHeader struct {
Magic [8]byte `json:"magic"`
Version uint32 `json:"version"`
Flags uint32 `json:"flags"`
Reserved uint32 `json:"reserved"`
}
FileHeader represents the lockbox file header
type Metadata ¶
type Metadata struct {
Header FileHeader `json:"header"`
Schema *arrow.Schema `json:"-"` // Serialized separately
SchemaBytes []byte `json:"schemaBytes"`
Encryption EncryptionParams `json:"encryption"`
AccessPolicy *AccessPolicy `json:"accessPolicy,omitempty"`
AuditTrail AuditTrail `json:"auditTrail"`
BlockInfo []BlockInfo `json:"blockInfo"`
}
Metadata represents the complete lockbox metadata
func Deserialize ¶
Deserialize deserializes metadata from JSON
func NewMetadata ¶
NewMetadata creates new metadata for a lockbox file
func (*Metadata) AddBlockInfo ¶
func (m *Metadata) AddBlockInfo(columnName string, offset, length, rowCount int64, checksum []byte, origSize int64, mime string)
AddBlockInfo adds information about an encrypted block
Click to show internal directories.
Click to hide internal directories.