Skip to main content

Compliance Documentation

Not legal advice

This page describes technical features that can support your compliance work. It is not legal advice, and it does not establish that any system is compliant with any law, regulation or standard. You remain responsible for your own compliance assessment, independent testing and validation, and review by qualified legal and compliance professionals. See the Compliance Disclaimer.

Excalibur provides comprehensive compliance features for enterprise regulatory requirements including FedRAMP, GDPR, SOC 2, and HIPAA.

Quick Navigationโ€‹

๐Ÿš€ Getting Startedโ€‹

New to compliance? Start with the Quick Start Guide - a 30-minute walkthrough covering installation, configuration, and verification.

Visual learner? Check out the Navigation Guide with flowcharts, diagrams, and timelines for all frameworks.

Certification Checklistsโ€‹

Step-by-step guides for achieving compliance certification:

FrameworkWhen to UseChecklistCertification Time
FedRAMPSelling to US federal governmentNIST 800-53 (14 controls mapped; 4 satisfied, 10 partial)6-12 months
GDPRProcessing EU resident dataArticles 17, 17(3), 25, 30, 323-6 months
SOC 2SaaS, cloud, MSP businessesTrust Services Criteria3-18 months
HIPAAHealthcare data (PHI)Security + Privacy Rules6-12 months

Framework Featuresโ€‹

Core compliance capabilities provided by Excalibur.Dispatch:

FeatureDocumentationFedRAMPGDPRSOC 2HIPAA
Access ControlSecurity GuideAC-3, AC-6Art 32CC5, CC6ยง164.312(a)
Audit LoggingAudit LoggingAU-2, AU-3, AU-9Art 32CC4, CC7ยง164.312(b)
EncryptionEncryption ArchitectureSC-28Art 25, 32C2ยง164.312(a)(2)(iv)
Data MaskingData MaskingN/AArt 32C2ยง164.312
GDPR ErasureGDPR ErasureN/AArt 17C3Disposal

FedRAMP control statusโ€‹

Fourteen NIST 800-53 Rev 5 controls are mapped. Four are satisfied by the framework (AC-3, AC-6, AU-3, SC-13); the other ten are partial โ€” the framework supplies a mechanism and you supply the rest. A mechanism is not the control, so your SSP must describe both halves. The FedRAMP checklist is the single place this project asserts control status, and it states the consumer action each partial control requires.

Compliance Overviewโ€‹

Quick Startโ€‹

Install Packagesโ€‹

All frameworks require the core security packages:

# Core domain capabilities (required for all)
dotnet add package Excalibur.Domain

# Compliance features (GDPR erasure, SOC 2 validation)
dotnet add package Excalibur.Compliance

# Audit logging
dotnet add package Excalibur.AuditLogging

# For production audit persistence (SQL Server)
dotnet add package Excalibur.AuditLogging.SqlServer

# For production erasure/legal hold persistence (SQL Server)
dotnet add package Excalibur.Compliance.SqlServer

Basic Configurationโ€‹

using Excalibur.Compliance;

var builder = WebApplication.CreateBuilder(args);

// 1. Access Control (All frameworks)
builder.Services.AddAuthorization();

// 2. Encryption (FedRAMP, GDPR, SOC 2, HIPAA)
builder.Services.AddEncryption(encryption => encryption
.UseKeyManagement<AesGcmEncryptionProvider>("aes-gcm-primary")
.ConfigureOptions(options => options.DefaultPurpose = "field-encryption"));

// 3. Audit Logging (All frameworks)
builder.Services.AddSqlServerAuditStore(options =>
{
options.ConnectionString = builder.Configuration.GetConnectionString("Compliance")!;
options.SchemaName = "audit";
options.EnableHashChain = true;
});

// 4. GDPR Erasure (GDPR + optional for others)
builder.Services.AddGdprErasure(options =>
{
options.DefaultGracePeriod = TimeSpan.FromHours(72);
options.RequireVerification = true;
});

Usage Exampleโ€‹

using Excalibur.Compliance;

// 1. Annotate personal data for encryption, and classify sensitive data
public class Patient
{
public Guid Id { get; set; }

[PersonalData] // encrypted ONLY on a record that also carries [DataSubjectId],
// and only once crypto-shredding is registered
public string FirstName { get; set; }

[PersonalData]
[Sensitive] // in every released version: classification + log masking only. Encryption of this
// field comes from [PersonalData] above.
public string SSN { get; set; }
}

// 2. Audit access using IAuditStore
public class PatientService
{
private readonly IAuditStore _auditStore;

public async Task<Patient> GetPatientAsync(Guid patientId, CancellationToken ct)
{
var patient = await _repository.GetAsync(patientId, ct);

await _auditStore.StoreAsync(new AuditEvent
{
EventId = Guid.NewGuid().ToString(),
EventType = AuditEventType.DataAccess,
Action = "Patient.Read",
ActorId = _currentUser.Id,
ResourceId = patientId.ToString(),
ResourceType = "Patient",
Outcome = AuditOutcome.Success,
Timestamp = DateTimeOffset.UtcNow
}, ct);

return patient;
}
}

Framework Capabilities vs Consumer Responsibilitiesโ€‹

What Excalibur Provides โœ…โ€‹

  • Technical Controls: Encryption, audit logging, access control, erasure
  • Conformance Kits: four provider kits (Audit, Erasure, LegalHold, DataInventory). Every arm is virtual and carries no test attribute, so nothing runs until you declare an attributed wrapper โ€” wrap the arms your controls need, and your own run is the evidence. See Quick Start.
  • Evidence Collection: Automated scripts for CI/CD artifacts
  • SBOM Generation: CycloneDX format with 90-day retention
  • Security Scanning: SAST (CodeQL), secrets (Gitleaks), dependency vulnerability scanning

What Consumers Must Implement โš ๏ธโ€‹

  • Organizational Policies: Risk assessments, security policies, privacy policies
  • Business Processes: Consent management, incident response, breach notification
  • Training: Annual security awareness, HIPAA training, GDPR training
  • Documentation: System Security Plans (SSP), Records of Processing Activities (RoPA)
  • Infrastructure: TLS configuration, key management, backup/recovery

Evidence Automationโ€‹

Automated scripts for collecting compliance evidence from CI/CD pipelines:

Available Scriptsโ€‹

ScriptPurposePlatform
collect-evidence.ps1Collect CI/CD evidencePowerShell/Windows
collect-evidence.shCollect CI/CD evidenceBash/Linux/macOS
generate-evidence-package.ps1Create ZIP archivePowerShell/Windows
export-audit-samples.shExport audit logsBash/Linux/macOS
generate-ropa-template.shGenerate RoPA templateBash/Linux/macOS

Location: eng/compliance/ in the framework repository

Evidence Types Collectedโ€‹

  • Test Results: JUnit XML, code coverage (enforced regression floor of 44%; CI fails below it)
  • Security Scans: SAST (CodeQL), secrets (Gitleaks), dependency vulnerability scanning. No DAST and no container scanning run in this pipeline.
  • SBOM: CycloneDX JSON/XML (90-day retention)
  • Audit Logs: Sample templates (anonymized)
  • Requirements Traceability: RTM validation results

What the Manifest Assertsโ€‹

MANIFEST.json states only what the package can substantiate. Its control figures are counted from the files collected into that package; they are not fixed totals, and a package that collected nothing reports zero controls documented.

  • ControlsDocumented counts in-scope controls whose every mapped evidence category has at least one collected file. Expect it to be well below ControlsInScope: many controls are satisfied by documentation, configuration or a business process that no pipeline produces, and those are mapped so they can never be counted from a download. A shortfall here is not a finding against you โ€” it tells you which controls you evidence by other means.
  • ControlsDocumentedIds names them, so the count can be checked rather than taken on trust.
  • ControlCoverage.Source names the file the control identifiers and their evidence categories are read from. Editing that file changes the reported figures.
  • ManifestStatus and RefusalReasons โ€” read these before submitting a package. REFUSED means at least one figure could not be derived (typically a missing evidence directory), and the collector exits with status 2. A category the collector could not measure is null, never 0: "we found none" and "we never looked" are different facts.

Placeholder templates the script writes for you (*.template.json) are excluded from every count, so a blank form never counts as evidence.

PowerShell collector

collect-evidence.ps1 still emits fixed control totals rather than derived ones. Prefer collect-evidence.sh for any package you intend to hand to an auditor.

Certification Roadmapโ€‹

Typical timelines for achieving compliance certification:

FrameworkTypeDurationKey Milestones
FedRAMPModerate6-12 monthsRisk assessment โ†’ SSP โ†’ 3PAO โ†’ PMO review
GDPRFull Compliance3-6 monthsRisk assessment โ†’ Policies โ†’ DPIA โ†’ Audit
SOC 2 Type IPoint-in-time3-6 monthsScope โ†’ Implementation โ†’ Readiness โ†’ Audit
SOC 2 Type II6-12 month period12-18 monthsType I + observation + audit
HIPAACompliance6-12 monthsRisk assessment โ†’ Policies โ†’ Training โ†’ Audit

Legacy Featuresโ€‹

The following features were part of the original compliance module and remain available:

Data Maskingโ€‹

Protect sensitive data (PII/PHI) in logs, responses, and error messages.

Learn more about Data Masking โ†’

GDPR Erasureโ€‹

Basic GDPR erasure implementation with crypto-shredding.

Learn more about GDPR Erasure โ†’

Audit Loggingโ€‹

Tamper-evident logging with hash chain integrity.

Learn more about Audit Logging โ†’

Recommendation

For new implementations, use the comprehensive compliance capabilities described in the Quick Start Guide and certification checklists rather than the legacy features.

Next Stepsโ€‹

  1. Choose Your Framework: Review the Quick Start Guide decision tree
  2. Follow the Checklist: Select from FedRAMP, GDPR, SOC 2, or HIPAA
  3. Collect Evidence: Use the evidence automation scripts in the framework repository
  4. Engage Auditor: 3PAO (FedRAMP), CPA (SOC 2), DPO (GDPR), or HIPAA specialist

Supportโ€‹

Questions:

  • Product Manager: Compliance scope, legal basis, privacy policies
  • Software Architect: Technical implementation, architecture decisions
  • Project Manager: Evidence packages, audit coordination

Escalation:

  • Security incidents: Follow breach notification procedures
  • Compliance gaps: Create GitHub issue with compliance label
  • Audit requests: Contact Project Manager for evidence package

See Alsoโ€‹


Framework Version: Excalibur 10.0.0 prerelease Last Updated: 2026-09-12 Status: Technical controls implemented for FedRAMP, GDPR, SOC 2, HIPAA. Full certification requires organizational policies, processes, and external audit.