How RCRAReady protects your records

This page sets out how we protect your data and what we commit to, numbered so your reviewers can cite it. Architecture detail is shared privately on request.

Document
Security and trust overview
Version
2026.09
Last reviewed
Maintained by
RCRAReady engineering
Security contact
security@rcraready.com

1 Summary

Where is data hosted?
AWS, in the United States (US East region).
§2.1
Encrypted in transit?
Yes. TLS 1.2 or higher only, with HSTS preload.
§4.1
Encrypted at rest?
Yes. AES-256 through AWS KMS, with automatic key rotation.
§4.2
How do people sign in?
Emailed one-time code, magic link, Google, or Microsoft. RCRAReady stores no passwords.
§3.1
Is access role-based?
Yes. Admin, Operator, and Viewer, granted per organization or per facility.
§3.2
Can audit history be edited?
No. It is append-only, enforced by the database itself.
§5.1
Backups?
Continuous backups through AWS Backup, plus a daily backup.
§2.2
Who else processes our data?
Six named subprocessors, listed with what each one handles.
§7
Is AI used on our data?
Only to draft waste profiles. A person reviews every draft before it is used.
§8
Breach notification?
Within 72 hours of confirming a breach that affects your data.
§10
Will you sign a DPA?
Yes. We also review your own security and privacy terms.
§12
SOC 2 or ISO 27001?
Not yet. Section 11 covers what we offer in its place.
§11

2 Hosting and infrastructure

2.1 Where your data lives

Application data and uploaded files are stored on AWS in the United States (US East region). The database keeps copies across multiple availability zones, so losing one data center does not lose data or take the service offline. The web app is served through Cloudflare.

2.2 Backups and recovery

  • The production database is backed up continuously through AWS Backup, with a daily backup as a fallback.
  • Stored files are versioned. Overwriting or deleting a file keeps the earlier version.
  • Automatic safeguards stop any release that would replace the database or file storage.

2.3 Monitoring

  • Automated alarms cover application errors, performance, and delivery of email and SMS alerts.
  • A separate check confirms that deadline alerts are running. If they stop, we find out before you miss one.
  • An automated test signs in to the live app after every release and on a regular schedule.

3 Sign-in and access control

3.1 Sign-in without passwords

People sign in with a code sent to their work email, a magic link, or a Google or Microsoft account. Password sign-in is switched off, so there are no RCRAReady passwords to reuse, phish, or leak.

  • Emailed sign-in codes and links are single-use and expire after 10 minutes.
  • Google and Microsoft sign-in tokens are encrypted before they are stored.
  • Sign-in activity is recorded in a separate authentication log.

3.2 Roles

There are three roles. Each can be granted for the whole organization or for specific facilities, so a contractor at one site sees only that site.

What each role can do
CapabilityViewerOperatorAdmin
View records, dashboards, and audit history
Log containers, inspections, shipments, and issues
Bulk import records and manage SMS alerts
Manage facility settings and members
Archive or transfer facilities
Manage billing and add facilities

3.3 How permission checks are enforced

Every permission decision goes through one central policy, and the build fails if code checks access any other way. Automated tests check that one organization's data and alerts never reach another organization.

3.4 Access to production

  • Production is isolated from development and testing environments.
  • Multi-factor authentication is required on every account that can reach production systems.
  • Deployments and services reach AWS and the database with short-lived credentials, not stored keys or passwords.
  • Policy prohibits using production customer data in development or test environments.

4 Encryption and data protection

4.1 In transit

The app accepts TLS 1.2 and 1.3 only, and uses HSTS so browsers never fall back to plain HTTP. A strict Content Security Policy limits which scripts can run and prevents the app from being embedded in other sites.

4.2 At rest

  • Database storage is encrypted with AES-256 through AWS KMS, with automatic key rotation.
  • Stored files are encrypted with AES-256 server-side encryption.
  • If you connect EPA RCRAInfo, your API credentials are encrypted a second time by the application before they are stored.

4.3 Files and attachments

  • Files are private. The app shares them only through short-lived signed links.
  • Temporary uploads are deleted after 1 day. Documents uploaded for AI extraction and never attached to a waste profile are deleted after 7 days.

4.4 Logs and secrets

  • Credentials and tokens are redacted before anything is logged, and email addresses are masked.
  • Third-party credentials are stored as encrypted secrets and never appear in source code.

5 Audit trail and record integrity

For EHS teams, security includes whether the record will hold up in front of an inspector. This section covers how history is protected from edits, including edits by us.

5.1 Append-only, enforced by the database

An audit log is only as trustworthy as the guarantee that nobody can edit it. In RCRAReady that guarantee is a database permission, not a policy. The access the application runs with can add audit entries and read them, but the database refuses any attempt to change or delete them, so neither the app nor a bug in it can rewrite history.

Read Allowed
Add Allowed
Change Refused by the database
Delete Refused by the database
What the application can do to audit history. The same rule protects completed inspections, inspection amendments, and EPA e-Manifest event history. A correction to a finished inspection is added as an amendment. The original entry stays as it was.

5.2 What each event records

Each change to a container, inspection, shipment, profile, or setting writes an event with who made it, their role at the time, when, where it came from (web, import, scheduled job, or webhook), and a snapshot of the record and facility after the change.

Audit event Illustrative
Occurred
2026-09-08 14:02:11 CDT
Actor
Dana R. · Operator
Source
web
Facility
North Plant · OHD000000000
Event
Accumulation start date set
Record
Container C-2291 · Spent solvent blend
Snapshot
Container state after the change
Example data, shown to illustrate the fields. Real events can be viewed by every role in the app and exported.

5.3 Deadlines you can reproduce

Accumulation deadlines and generator status are calculated by fixed rules, not AI, so the same inputs always produce the same dates. Build checks stop those rules from depending on server clocks or time zones. The app shows the inputs and regulation behind each date.

5.4 How the rules are tested

Alongside ordinary tests, the core rules (generator category, accumulation limits, and deadlines) have property-based tests. Instead of checking a few hand-picked examples, each test generates hundreds of random waste quantities, containers, and dates, and checks that rules like these hold for every one:

  • Generator category matches an independent implementation of the federal thresholds in 40 CFR 262.13.
  • Adding hazardous waste can never make a generator category less strict.
  • Splitting, reordering, or changing the units of the same waste never changes totals, category, or limits.
  • Missing information never produces a later deadline than the exact one.

5.5 e-Manifest access is read-only

RCRAReady's connection to EPA RCRAInfo only looks up, searches, and downloads manifests and attachments. It has no ability to create, sign, correct, or submit a manifest, so nothing is filed with EPA in your name.

5.6 Exports and retention

  • Containers, shipments, profiles, and audit history export as CSV or PDF at any time, including an audit summary built for inspections.
  • Compliance records are kept for three years unless you ask otherwise, subject to legal and operational requirements.

6 How changes reach production

Every change to the application and its infrastructure passes the same gates in order, and any failure stops the release. The suite includes more than 3,500 automated tests.

  1. 1

    Automated checks

    Linting, type checks, and unit tests, then a full production build.

  2. 2

    Integration tests

    Data-access and API tests run against a real database, not a mock.

  3. 3

    Staging release

    The release goes to a separate staging environment first, where the deadline-alert pipeline is checked end to end.

  4. 4

    End-to-end tests

    Browser tests walk through sign-in, containers, inspections, shipments, billing, and offline use.

  5. 5

    Production release and live check

    Safeguards stop any deploy that would replace stored data. After release, an automated test signs in to the live app.

7 Subprocessors

These are the companies that process customer data for RCRAReady, current as of . If you need notice before this list changes, we can put that in your DPA.

  • Amazon Web Services United States (US East)
    What it does for us
    Hosting, database, file storage, background jobs, and email delivery (SES)
    Customer data it handles
    All application data and uploaded files
  • Cloudflare Global edge network
    What it does for us
    Serves the web app, terminates TLS, and provides page-view analytics
    Customer data it handles
    All web traffic to the app passes through it
  • Twilio United States
    What it does for us
    SMS deadline and compliance alerts
    Customer data it handles
    Mobile numbers of people who opt in, and alert text
  • Stripe United States
    What it does for us
    Subscriptions, invoices, and payments
    Customer data it handles
    Billing contacts and payment details. Card numbers go to Stripe directly and never reach our servers.
  • Google (Gemini API) Google-managed
    What it does for us
    Optional AI drafting of waste profiles
    Customer data it handles
    Documents you choose to upload for extraction, and public EPA manifest records
  • Microsoft Clarity Microsoft-managed
    What it does for us
    Product analytics and session replay in the web app, used to find usability problems
    Customer data it handles
    Clicks, scrolling, page views, and session recordings, with Clarity's masking applied

RCRAReady does not sell customer data or share it for advertising. The marketing website's analytics are covered in the Privacy Policy.

8 Use of AI

AI is used in two places, both for setting up waste profiles, and both produce drafts that a person reviews and approves before they are used.

  • Document extraction. If you upload an SDS, lab report, or vendor profile and ask RCRAReady to read it, the document is sent to Google's Gemini API to draft profile fields. It's optional. If you don't use it, no documents are sent.
  • Starter profiles. Suggested profiles come from your facility's public EPA e-Manifest history, not from records you've entered.
  • AI does not calculate deadlines, generator status, or alerts, and it never changes a record on its own.

9 Ownership, privacy, and deletion

  • You own the data you put into RCRAReady. We use it to run, secure, and support the service, as set out in the Terms of Use.
  • If a subscription lapses, the account becomes read-only. You can still view and export records. Past-due accounts keep full access while payment is retried.
  • The personal data we hold is limited to names, work email addresses, mobile numbers for people who opt in to SMS, and sign-in details such as IP address and browser.
  • People can delete their own account in settings. Organization data can be deleted on request, and access, correction, or deletion requests go to hello@rcraready.com.

10 Incidents and vulnerability reports

  • If we confirm a breach that affects your data, we notify you within 72 hours of confirming it, and keep you updated as we learn more.
  • To report a vulnerability, email security@rcraready.com with steps to reproduce. Reports go straight to the engineers who build RCRAReady.

11 What we don't have yet

Your reviewers will ask about these, so here they are up front, with what we offer in the meantime. We'll update this section as each one changes.

SOC 2 Type II or ISO 27001 report
In the meantime A third-party audit costs more than a company our size can justify today. We share our detailed security overview privately, complete your questionnaire, and sign a DPA.
SAML single sign-on and SCIM provisioning
In the meantime Sign-in with Google Workspace or Microsoft Entra ID accounts. Admins add and remove people per organization or per facility.
Customer-managed encryption keys
In the meantime AWS KMS-managed keys with automatic rotation for the database, and AES-256 encryption for stored files.
Hosting outside the United States
In the meantime All application data is stored in the AWS US East (Ohio) region.

12 Review documents and contacts