Documentation

Trust, security & data handling

Where your data is hosted, how it is protected and retained, and how the AI learns from it — kept private to your account or shared to improve classification.

11 min readUpdated Sep 25, 2026

Aduara handles sensitive customs and trade data on behalf of licensed brokers and importers. This page explains where that data lives, how it is protected, how long we keep it, and exactly how our AI uses it. We describe the controls that are in place today and clearly mark what is planned — if something is not yet built or certified, we say so.

Summary. Your data is stored and processed in the United States, isolated to your organization by row-level security inside PostgreSQL itself, with data-changing requests recorded to a server-side audit log. Data is encrypted in transit and at rest. Our AI learns from your data to classify your goods — private to your account by default, and shared with a wider model only if you explicitly opt in.

Infrastructure & hosting

Aduara runs on a small, deliberately simple stack. Fewer moving parts means a smaller attack surface and fewer places for data to reside.

LayerWhat it isWhere it runs
Web workspaceThe application brokers and importers log intoVercel — TLS at the edge; public assets served from a global CDN, server-side functions in a US region
APIThe application server that performs the workLong-lived Node service, hosted in the US — US West (Oregon) — with TLS at the load balancer
DatabaseYour data at restManaged PostgreSQL, hosted in the US — US West (Northern California)
AIClassification and document extractionAnthropic's Claude API — invoked only by these two features, never granted standing access to the database
  • Stored and processed in the United States. Customer records live in a US-West database (Northern California) and are processed by a US-West API (Oregon). The web app's public assets are cached on a global CDN — that is the application interface, not customer data.
  • Built on AWS. Our database and application hosting run on Amazon Web Services in US regions. AWS maintains its own SOC 2, ISO 27001, and related certifications for the physical, environmental, and network layers, which our platform inherits.
  • One database, not many. All persistent data lives in a single PostgreSQL database, organized into a schema per product area. There is no separate data lake or analytics warehouse holding a second copy of your records.
  • Same-origin sessions. The web app proxies API calls through its own origin, so your session cookie is never a third-party cookie and never leaves the domain.
  • The AI is a narrow dependency. Only the classifier and the document extractor call an external model. Everything else — screening, duty calculation, the entry state machine, reporting — runs inside our own infrastructure.

Sub-processors. The third parties that process data on our behalf are Amazon Web Services (US cloud infrastructure), Anthropic (AI classification and extraction), Resend (transactional email — password reset and other account messages), and Sentry (application error monitoring — diagnostic data only, with credentials, tokens and email addresses redacted before anything leaves our servers). A current sub-processor list is available to customers on request.

Data security

Access to your data is closed by default. Every control below is implemented in the product today.

ControlWhat it means for you
Authentication on every requestEvery API call is authenticated before it reaches your data — a server-checked session for the workspace, or a scoped key for machine access. Every request that reads or writes your organization's records is authenticated; unauthenticated requests are rejected.
Server-enforced sessionsSessions are opaque, randomly generated tokens stored server-side and validated on every request, with a sliding expiry. Logging out — or an administrator revoking a session — invalidates the token immediately, so access from a lost or compromised device can be cut off at once. Removing a member deletes their sessions along with the account.
Passwords are never stored in plaintextPasswords are salted, hashed with scrypt, and compared in constant time. We cannot read your password, and neither can anyone who obtains a copy of the database.
Self-service password resetA reset link is a single-use token, stored only as a hash, valid for 60 minutes, and superseding any earlier outstanding link. The response is identical whether or not the address has an account, so the endpoint cannot be used to discover who your people are. Completing a reset destroys every existing session for that user — including the attacker's, if that is why the reset was requested.
Throttled authenticationSign-in and password-reset requests are rate-limited on both the source address and the address being tried, and invite and token endpoints by source address, so password- and token-guessing runs are slowed rather than unlimited.
Secure session cookiesSession cookies are HttpOnly (unreadable by page scripts), SameSite=Lax, and Secure over HTTPS, closing the common paths to session theft.
Organization isolationEvery read and every write is scoped to your organization. One customer's queries cannot return another customer's records.
Database-enforced isolation (RLS)The isolation rule is enforced a second time inside PostgreSQL itself, by row-level security policies on every organization-scoped table. Armed in production on 3 September 2026 across 58 tables, and FORCEd, so the rule applies even to the table's owner. The application connects with a dedicated role that has no privilege to bypass it. If a query were ever written without its organization filter, the database returns nothing rather than another customer's rows. We verified this with a read-only check against production on 3 September 2026; scheduling that check is on the roadmap below.
Role-based access controlEach member holds a role — owner, broker, reviewer or viewer — and the rule is deny-by-default: a read-only role cannot perform a state-changing request, including one added to the product tomorrow. Administering the organization itself — inviting members — is restricted to owners. API keys for machine access are issued by Aduara operators, not from the product.
Least-privilege administrative accessAccess to production data is restricted to authorized Aduara personnel and limited to what is required to operate the service.
Audit log of changesData-changing API requests are recorded server-side — the actor, the organization, the action, and the resulting status. Reads are not logged; they are high-volume and low-value as evidence. Coverage today is the application's data routes. Extending it to the remaining administrative and authentication endpoints, enforcing write-once storage at the database level, and giving you a self-service view of your own trail are all on the roadmap below, and none of them is in place yet.
Connected-mailbox credentials are encrypted by usIf you connect a mailbox, its OAuth tokens are encrypted by the application with AES-256-GCM — a per-record IV, an authentication tag, and a versioned envelope — before they are written, on top of the platform's own encryption at rest.
Guarded outbound requestsWhen the product fetches a URL on your behalf, the destination is validated before the request and again at every redirect hop, and any host that resolves to an internal or cloud-metadata address is refused.
Secrets isolationDatabase and API credentials live only in the hosting platform's encrypted secret store, never in source control, and are rotatable on demand.
Encryption in transitAll traffic is encrypted with TLS/HTTPS — browser to app, and app to database and AI provider.
Encryption at restData is encrypted at rest (AES-256) on the managed database platform, so a copy of the underlying storage is useless without the keys.

Data ownership & retention

  • You own your data. Your data belongs to you. We hold it only to operate the service on your behalf — never to resell, and never to benefit another customer.
  • Export and deletion are honored on request. Ask us and we will export or erase your organization's data. Today both are performed by Aduara personnel directly against the database; the scripted, audited, self-service versions are on the roadmap below and are not built yet. We tell you this because the difference matters to a security reviewer: it is a procedure we follow, not yet a control the system enforces.
  • Your data stays in your book. An importer's customs record is stored inside its broker's book, where it legally belongs. Aduara does not distribute copies of it across separate systems.
  • Provenance is kept as history. Classifications and corrections are written as new, timestamped rows rather than overwriting the previous value, so there is a defensible record of how a figure was reached and who changed it. The application only appends to those two. Screening is different: a re-screen replaces the previous result rather than adding to it. Database-level write-once enforcement is a roadmap item below.
  • Backups. The database runs on a managed platform that takes its own backups, and we hold a documented snapshot-and-restore procedure. Two things are not yet true, and we would rather you hear them from us: we have not yet performed and logged a full restore rehearsal, and automated retention of an encrypted off-platform snapshot is not yet in place. Both are on the roadmap below.
  • Revocation is immediate. Logins and sessions can be removed on request, which ends access at once.
  • Demo data is gated out of production. The seeding and data-generation commands in our tooling refuse to run unless an explicit switch is set, so a routine operation cannot invent records that look like yours. One legacy seeding endpoint is not yet behind that switch; closing it is tracked.
  • Segregated — private to your account (the default). Your data trains only your own classification. Your entries, corrections, and the model behavior they shape stay isolated to your organization — never shared with, visible to, or used to benefit another customer.
  • Shared — only if you opt in. You may choose to contribute your confirmed corrections to a wider model, so classification accuracy improves for everyone and you benefit from other participants' corrections in return. This is a deliberate opt-in, never the default.

Whichever mode you choose, the same guardrails hold:

  • A licensed broker stays in the loop. The AI proposes; a broker approves. Nothing is filed on the AI's decision alone.
  • Every classification is grounded and cited. The model reasons from the live U.S. tariff schedule (HTSUS) and CBP's binding rulings (CROSS) and cites the basis it relied on, so a broker checks the reasoning rather than trusting a number.
  • The model cannot invent a tariff code. Every classification is validated against the live HTSUS; a code that does not exist is rejected.
  • Your data stays in the United States. The learning and storage described here happen in our US region (see Infrastructure & hosting), segregated by organization.
  • The foundation-model provider does not train on your data. Document and line data sent to our underlying AI provider is processed under its commercial terms and is not used to train that provider's own foundation models. The learning that improves classification happens inside Aduara, under the segregated / opt-in-shared choice above.

Compliance & what's next

We build to the controls a SOC 2 audit examines — access control, encryption, audit logging, and backups — and our SOC 2 program is underway. Target: SOC 2 Type I by Q3 2026 and Type II by Q1 2027. We do not yet hold a report, and we will publish it here once we do.

The following are planned and not yet in place. We list them so you know exactly where we are:

  • A customer-visible audit trail — today the log is written and queried by Aduara; giving you a filterable, exportable view of your own organization's trail is next.
  • Write-once enforcement on the audit and provenance tables — the application only appends to them; we are moving that from a property of the code to a rule the database enforces.
  • A rehearsed, automated backup restore — automated off-platform snapshots plus a logged restore into a scratch environment, with a defined recovery objective.
  • Scripted export and deletion — a repeatable, audited tenant export and purge, replacing today's manual procedure.
  • An enforced retention schedule — retention is neither defined as a policy nor enforced automatically today; automatic enforcement per data class is not yet implemented.
  • Remaining self-service authentication — email verification, MFA, and single sign-on. Password reset has shipped and is described above. Microsoft SSO is implemented but not yet enabled in production.
  • Formal incident-response and breach-notification procedures, as part of the SOC 2 program.
  • Self-hosted / on-premise deployment — running Aduara inside a partner's own environment, for organizations whose policy requires it. A later roadmap item, not available today.

Questions

If you are evaluating Aduara for a security or procurement review and need more than this page provides — a specific control, a data-flow diagram, our current sub-processor list, or the status of a roadmap item — contact your Aduara point of contact. We are glad to go into detail, under NDA where appropriate. We would rather answer precisely than have you guess.

Ready to see it live?

Put your own book of entries through Aduara.