Module: Legion::Compliance

Defined in:
lib/legion/compliance.rb,
lib/legion/compliance/phi_tag.rb,
lib/legion/compliance/phi_erasure.rb,
lib/legion/compliance/phi_access_log.rb

Defined Under Namespace

Modules: PhiAccessLog, PhiErasure, PhiTag

Constant Summary collapse

DEFAULTS =
{
  enabled:              true,
  classification_level: 'confidential',
  phi_enabled:          true,
  pci_enabled:          true,
  pii_enabled:          true,
  fedramp_enabled:      true,
  log_redaction:        true,
  cache_phi_max_ttl:    3600
}.freeze

Class Method Summary collapse

Class Method Details

.classification_levelObject



48
49
50
# File 'lib/legion/compliance.rb', line 48

def classification_level
  setting(:classification_level) || 'confidential'
end

.enabled?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/legion/compliance.rb', line 28

def enabled?
  setting(:enabled) == true
end

.fedramp_enabled?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/legion/compliance.rb', line 44

def fedramp_enabled?
  setting(:fedramp_enabled) == true
end

.pci_enabled?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/legion/compliance.rb', line 36

def pci_enabled?
  setting(:pci_enabled) == true
end

.phi_enabled?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/legion/compliance.rb', line 32

def phi_enabled?
  setting(:phi_enabled) == true
end

.pii_enabled?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/legion/compliance.rb', line 40

def pii_enabled?
  setting(:pii_enabled) == true
end

.profileObject



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/legion/compliance.rb', line 52

def profile
  {
    classification_level: classification_level,
    phi:                  phi_enabled?,
    pci:                  pci_enabled?,
    pii:                  pii_enabled?,
    fedramp:              fedramp_enabled?,
    log_redaction:        setting(:log_redaction) == true,
    cache_phi_max_ttl:    setting(:cache_phi_max_ttl) || 3600
  }
end

.setupObject



21
22
23
24
25
26
# File 'lib/legion/compliance.rb', line 21

def setup
  return unless defined?(Legion::Settings)

  Legion::Settings.merge_settings(:compliance, DEFAULTS)
  Legion::Logging.info('[Compliance] max-classification profile active') if defined?(Legion::Logging)
end