Early access · founding price $499/yr

Audit logs your auditor will actually accept.

SealedTrail is a Rails gem that records who changed, viewed and exported sensitive records, in a tamper-evident log you can prove hasn't been edited. Retention rules and SOC 2, HIPAA, GDPR and DPDP evidence reports included.

sealed_trail gem version on RubyGems

Beta for founding customers in December 2026, v1.0 by 31 January 2027, or a full refund. Lives in your own database: no SaaS, no data leaves your app.

app/models/patient.rb · Pro (planned API)
class Patient < ApplicationRecord
  has_sealed_trail track_reads: true,
                   retain_for: 6.years
end

# Who looked at this patient last week?
SealedTrail.access_report(record: patient, since: 7.days.ago)

# Prove nothing was altered or deleted
$ bin/rails sealed_trail:verify
✓ hash chain intact · 0 edited · 0 missing  # example output

The problem

paper_trail tracks changes. Auditors ask about access.

Change-history gems are great for "what did this record look like yesterday?" But when an audit comes, the questions are different, and teams often end up hand-rolling the answers shortly before the auditor arrives.

Read: Your Rails audit log has 4 blind spots. Auditors know all of them. →
👁️

"Who viewed this patient's record?"

Change-tracking gems record writes, not reads. Logging views and exports of sensitive data means custom hooks in every action that shows or exports it.

🔏

"How do you know nobody edited the log?"

An audits table any admin can UPDATE isn't evidence. You need to prove integrity.

🗄️

"What's your retention policy, and is it enforced?"

Audit tables keep growing until someone prunes them, while GDPR erasure requests collide with "never delete audit data".

Features

Open-source core. Compliance features in Pro.

Start free with change auditing. Upgrade when the audit is on the calendar.

Core

Free · MIT
  • ✓ Create / update / destroy auditing for ActiveRecord
  • ✓ Actor, IP and request ID on every entry, plus custom metadata
  • ✓ Field filtering and masking for secrets and PII
  • ✓ Bulk update_all / delete_all recorded too; runs alongside paper_trail / audited
  • ✓ PostgreSQL, MySQL and SQLite, Rails 7.1+
gem "sealed_trail" sealed_trail gem version on RubyGems
Try the free version on GitHub →

Pro

Commercial licence

Everything in Core, plus:

  • ◆Read & export logging. Record views, index listings, CSV/PDF exports and API reads of sensitive models, with one line per model.
  • ◆Tamper-evident log. SHA-256 hash chain, append-only DB permissions, and a verify task that finds any edited or deleted entry.
  • ◆Retention policies. Per-model retention, automatic archiving to S3, and GDPR/DPDP erasure that keeps the chain verifiable.
  • ◆Auditor-ready reports. Access reviews, privileged-activity reports and per-subject access history, exported to PDF/CSV.
  • ◆Import from paper_trail / audited. Bring your existing history into the trail.
  • ◆Admin UI. A mountable engine to search, filter and export the trail.
  • ◆Priority email support.

Compliance mapping

Evidence for the controls auditors ask about

SealedTrail helps you produce evidence for these requirements. It doesn't make you compliant on its own. That still takes your policies, people and auditor.

FrameworkRequirementHow SealedTrail helps
HIPAASecurity Rule §164.312(b) audit controls; §164.308(a)(1)(ii)(D) activity reviewLogs reads and changes of PHI per user; access reports for periodic review
SOC 2Common Criteria on logical access and system monitoring (CC6, CC7)Privileged-activity and access-review reports; integrity verification of logs
GDPRArt. 5(1)(f) & 32 security of processing; Art. 15 access; Art. 17 erasurePer-subject access history; erasure that redacts personal data without breaking the chain
India DPDPDPDP Rules 2025, Rule 6: access monitoring and keeping logs for one yearRead/write logging plus enforced 1-year (or longer) retention policies

Pricing

One price per app. No per-event fees.

Your logs stay in your database, so you never pay per million events.

Core

$0

Open source, MIT licence

  • ✓ Change auditing
  • ✓ Actor & request context
  • ✓ PII masking
Star on GitHub (soon)
EARLY ACCESS

Pro — founding customer

$499/year $999

Price locked for as long as you renew

  • ✓ Everything in Pro
  • ✓ Unlimited apps in one company
  • ✓ Help shape the roadmap with the developer
  • ✓ 30-minute setup call
  • ✓ Full refund if v1.0 isn't delivered by 31 Jan 2027
Pre-order now

Enterprise

$2,499/year

For regulated teams with procurement

  • ✓ Everything in Pro
  • ✓ Security questionnaire & DPA
  • ✓ Priority support SLA
  • ✓ Invoicing / PO billing
Talk to us

Regular Pro price after launch: $999/year. Prices in USD; Lemon Squeezy handles VAT/GST.

Frequently asked questions

When does it ship?+

Founding customers get the first private beta in December 2026, with new builds as features land, and v1.0 by 31 January 2027. If v1.0 isn't delivered by then, you get a full refund on request.

Do I have to remove paper_trail or audited?+

No. Keep using them for versioning and undo if you like. SealedTrail Pro is designed to add access logging, integrity checks and retention on top, and to import your existing history.

Does my data leave my servers?+

No. SealedTrail is a gem, not a SaaS. Logs live in your own database (and optionally your own S3 bucket). That keeps things simpler for PHI and personal data, because no audit data is sent to us or any other third party.

Won't logging every read slow my app down?+

Read logging is opt-in per model and written in batches after the response, with an async ActiveJob mode for high-traffic endpoints.

How does "tamper-evident" work with GDPR erasure?+

Each entry's hash covers a fingerprint of its personal data, not the raw values. Erasure redacts the values but keeps the fingerprint, so the chain still verifies.

Does this make us SOC 2 / HIPAA compliant?+

No tool can do that by itself. SealedTrail covers the audit-logging part and produces evidence your auditor can review. Policies, access reviews and the rest of your programme are still yours.

What does the licence cover?+

One company and unlimited apps, delivered through a private gem source. Renew yearly for updates and support. If you stop renewing, the version you have keeps working.

Have an audit coming up?

Lock in the founding price of $499/year, or book a 15-minute call to check that SealedTrail fits your app.