Raxol.Compliance (Raxol v2.6.0)

View Source

Compliance reporting utilities for Raxol.

Provides functions for generating compliance reports for various regulatory frameworks like SOC2, HIPAA, and PCI-DSS.

Example

report = Raxol.Compliance.generate_soc2_report(period: :last_quarter)

Summary

Functions

Check compliance status.

Generate a HIPAA compliance report.

Generate a PCI-DSS compliance report.

Generate a SOC2 compliance report.

Types

hipaa_report()

@type hipaa_report() :: %{
  report_type: :hipaa,
  period: atom(),
  generated_at: DateTime.t(),
  safeguards: map(),
  summary: map()
}

pci_report()

@type pci_report() :: %{
  report_type: :pci_dss,
  period: atom(),
  generated_at: DateTime.t(),
  requirements: map(),
  summary: map()
}

soc2_report()

@type soc2_report() :: %{
  report_type: :soc2,
  period: atom(),
  generated_at: DateTime.t(),
  format: atom(),
  controls: map(),
  summary: map()
}

Functions

check_status(framework)

@spec check_status(atom()) :: map()

Check compliance status.

Example

status = Raxol.Compliance.check_status(:soc2)
# => %{compliant: true, last_audit: ~U[...], issues: []}

generate_hipaa_report(opts \\ [])

@spec generate_hipaa_report(keyword()) :: {:ok, hipaa_report()}

Generate a HIPAA compliance report.

Example

report = Raxol.Compliance.generate_hipaa_report(period: :last_year)

generate_pci_report(opts \\ [])

@spec generate_pci_report(keyword()) :: {:ok, pci_report()}

Generate a PCI-DSS compliance report.

Options

  • :period - Report period
  • :requirements - Specific requirements to check

Example

report = Raxol.Compliance.generate_pci_report(period: :last_month)

generate_soc2_report(opts \\ [])

@spec generate_soc2_report(keyword()) :: {:ok, soc2_report()}

Generate a SOC2 compliance report.

Options

  • :period - Report period (:last_month, :last_quarter, :last_year)
  • :controls - Specific controls to include (default: all)
  • :format - Output format (:json, :pdf, :html) (default: :json)

Example

report = Raxol.Compliance.generate_soc2_report(period: :last_quarter)