Skip to content

Industry Compliance Configuration

DD provides three industry-compliance preset configurations covering medical, financial, and government sensitive-data protection requirements.

HIPAA Medical Compliance

Applicable Scenarios

  • Electronic Health Record (EHR) systems
  • Hospital information management systems
  • Telemedicine platforms
  • Medical data research platforms

Filtering Rules

HealthcareConfig() filters additionally on top of DefaultSecureConfig() (the full pattern set):

Data TypePatternExample
ICD-10 codesDiagnostic-code format in log messagesdiagnosis=J18.9
Medical Record Number (MRN)Medical record identifier in log messagesmrn=MRN-123456
Health Insurance Claim Number (HICN)HICN identifier in log messageshicn=123456789A
Patient identifierPatient identifier in log messagespatient_id=PAT-123456

Configuration Example

go
func NewHIPAACompliantLogger() (*dd.Logger, error) {
    return dd.New(dd.Config{
        Level:    dd.LevelInfo,
        Format:   dd.FormatJSON,
        Security: dd.HealthcareConfig(),
        Targets: []dd.OutputTarget{
            dd.FileOutput("logs/hipaa-audit.json"),
        },
    })
}

Audit Requirements

go
// HIPAA requirements: security-event audit + integrity protection
integrityCfg, _ := dd.DefaultIntegrityConfigSafe()
signer, _ := dd.NewIntegritySigner(integrityCfg)

auditFile, _ := os.OpenFile("logs/hipaa-audit.json", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
auditLogger, _ := dd.NewAuditLogger(dd.AuditConfig{
    Enabled:          true,
    Output:           auditFile,
    JSONFormat:       true,
    IncludeTimestamp: true,
    BufferSize:       2000,
    MinimumSeverity:  dd.AuditSeverityInfo,
    IntegritySigner:  signer,
})

PCI-DSS Financial Compliance

Applicable Scenarios

  • Online payment systems
  • Credit-card processing services
  • Core banking systems
  • E-commerce transaction platforms

Filtering Rules

FinancialConfig() filters additionally on top of DefaultSecureConfig() (the full pattern set):

Data TypePatternExample
SWIFT codeInternational bank code in log messagesswift=BOFAUS3N
IBAN accountInternational bank account number in log messagesiban=DE89370400440532013000
CVV/CVCCard verification code in log messagescvv=123
Bank routing numberABA routing number in log messagesrouting_number=021000021
Bank accountBank account number in log messagesaccount_number=12345678

Configuration Example

go
func NewPCICompliantLogger() (*dd.Logger, error) {
    return dd.New(dd.Config{
        Level:    dd.LevelInfo,
        Format:   dd.FormatJSON,
        Security: dd.FinancialConfig(),
        Targets: []dd.OutputTarget{
            dd.FileOutput("logs/pci-audit.json"),
        },
    })
}

Log Retention Policy

go
fwCfg := dd.DefaultFileWriterConfig()
fwCfg.MaxSizeMB = 100    // 100MB per file
fwCfg.MaxAge = 365 * 24 * time.Hour // Keep 1 year (PCI-DSS requirement)
fwCfg.MaxBackups = 50    // Keep plenty of backups
fwCfg.Compress = true    // Compress old files to save space

fw, _ := dd.NewFileWriter("logs/pci-audit.json", fwCfg)
logger, _ := dd.New(dd.Config{
    Level:    dd.LevelInfo,
    Format:   dd.FormatJSON,
    Security: dd.FinancialConfig(),
    Targets:  []dd.OutputTarget{dd.CustomOutput(fw)},
})

Government Standard

Applicable Scenarios

  • Government information systems
  • Public service platforms
  • Social-security management systems
  • Tax processing systems

Filtering Rules

GovernmentConfig() filters additionally on top of DefaultSecureConfig() (the full pattern set):

Data TypePatternExample
Passport numberPassport identifier in log messagespassport_number=E12345678
Driver's license numberDriver's license identifier in log messagesdl_number=D123456789
US Federal Tax ID (EIN)EIN format in log messages12-3456789
UK National Insurance NumberNINo format in log messagesAB123456C
Canadian Social Insurance NumberSIN format in log messages123 456 789
Case numberCase identifier in log messagescase_number=CR-2024-00123

Configuration Example

go
func NewGovernmentLogger() (*dd.Logger, error) {
    return dd.New(dd.Config{
        Level:    dd.LevelInfo,
        Format:   dd.FormatJSON,
        Security: dd.GovernmentConfig(),
        Targets: []dd.OutputTarget{
            dd.FileOutput("logs/gov-audit.json"),
        },
    })
}

Compliance Comparison

DimensionHIPAAPCI-DSSGovernment
Extra filter patterns+4+5+6
Log retention6 years1 yearAs required
Integrity signingRecommendedRequiredRequired
Audit loggingRequiredRequiredRequired
Encrypted transmissionRequiredRequiredRecommended

Custom Compliance Configuration

When a preset does not fully meet your needs, you can compose custom configurations:

go
// Add custom patterns
filter, _ := dd.NewCustomSensitiveDataFilter(
    // Custom medical-system-specific patterns
    `(?i)insurance_id\s*[:=]\s*\S+`,
    `(?i)prescription\s*[:=]\s*\S+`,
)

logger, _ := dd.New(dd.Config{
    Format: dd.FormatJSON,
    Security: &dd.SecurityConfig{
        SensitiveFilter: filter,
    },
    Targets: []dd.OutputTarget{dd.FileOutput("logs/custom.json")},
})

Next Steps