Analytica de Negocios
For the IT lead

Data security

Where your company’s data lives, how it is isolated from other companies, how every file is checked and what the artificial intelligence sees. Every control states how it is verified.

Active running today Pending in progress: shown anyway

1. Architecture and where data lives

Client data lives in a PostgreSQL database managed by Supabase on Amazon Web Services, São Paulo region (sa-east-1). No component that processes data runs outside Brazil, except the AI assistant, which receives only summaries (section 5).

Data never leaves São Paulo; the AI only receives summaries Client userADN web AuthenticationPrivate filesPostgreSQL · RLS per company GoldUpload serviceAI assistant Supabase on AWS · São Paulo BronzeSilver Login + MFA (aal2)Static, no data Invitation, MFA, 30-min sessionEvery upload quarantinedUsers see only certified gold Google Cloud, São PauloClamAV + validationNo public endpoint Anthropic API, USAOnly gold summaries
An uploaded file goes through quarantine and antivirus before it enters bronze; the web and the AI read only certified gold.
ComponentProvider and regionWhat it stores or processesHow it is verified
Database, authentication and filesSupabase on AWS, São Paulo (sa-east-1)All client dataThe region appears in the project dashboard and in the database host
Upload serviceGoogle Cloud Run, São Paulo (southamerica-east1)Antivirus scanning and reading of uploaded filesGoogle Cloud console. No public access: invoked by an internal scheduler with its own service account
WebStatic pageNo data: reads from the database after loginThe web code stores no figures
Encryption at restAES-256Database, files and backupsStated by Supabase on its security page
Encryption in transitTLSEvery browser–database and service–database connectionVisible in the browser
BackupsDaily, handled by Supabase (paid plan)Full databasePending restore test in a separate project with identical figures

Provider certifications. Supabase holds a SOC 2 Type 2 report, ISO 27001 and HIPAA compliance. They belong to Supabase as a company; ADN has no certifications of its own.

Why Supabase and not AWS directly? The data is already on AWS. Supabase adds MFA authentication, per-company isolation in the database (Row Level Security), a secrets vault (Vault) and private file storage on top. On “plain” AWS each of those pieces is built by hand. If the client’s policy requires its own database in its AWS account, it is standard PostgreSQL and can be migrated.

2. Bronze, silver and gold layers

Data moves through three layers (medallion architecture), and users see only the last one, and only once it is certified.

LayerWhat it holdsRule
BronzeThe ERP export exactly as receivedNever modified: it is the source evidence
SilverThe same data in a standard format: dates, accounts, customers and products mappedPasses quality controls before moving on
GoldManagement outputs: close, P&L, balance sheet, cash flowPublished only as a certified run

Before bronze, an isolated test zone. Every upload passes 9 controls: lost rows, duplicate invoices or entries, unbalanced entries, a balance sheet that doesn’t tie, impossible dates and unknown customers. If it fails, it is blocked with the reason shown and never touches certified data.

No figure changes without human approval. An administrator at the client company approves the move into the numbers, with a second factor, and the approval is recorded in the audit log.

Enforced by the database, not the web. Gold tables have Row Level Security with two policies: one that only allows reading certified runs and a restrictive one that requires a second-factor session (aal2 level). The views the web consumes are security_invoker and inherit that filter.

3. Access and isolation between companies

Every row in the database carries its company, and the database itself prevents crossing it: a test that enters as another company through every path returns zero rows.

ControlStatusHow it is verified
Sign-up by invitation only, with a role (reader, analyst, administrator). Invitations expire after 7 days and are single-useActiveAn expired or used invitation does not open the account
Mandatory second factor (MFA) to see figuresActiveWithout aal2, RLS policies return no rows
Leaked-password blockingActiveSupabase rejects passwords found in known leaks
Sign-out after 30 minutes of inactivity, with prior warningActiveVisible in the session
Per-company isolation with Row Level SecurityActiveAutomated test as a user from another company across sheets, drill-down to source, chat, emails and downloads: zero rows. Sweep of the live database on 10/29/2026: zero crossed data
“Your security” panel: open sessions with device and IP, remote sign-out, own activityActiveVisible to every user
Email alert on sign-in from a new device and lockout after failed attemptsPending—
Captcha at loginPending—
Live isolation test with a real user from another companyPending—

Confidentiality and data protection agreement. Before receiving any data, ADN signs a confidentiality and personal data processing agreement with the client, under Argentina’s Personal Data Protection Law 25,326.

ADN staff. Only those working on the client’s account, with their own user, MFA and activity logging, just like the client’s users, and bound by confidentiality.

4. File quarantine and antivirus

Every file the client uploads is quarantined and goes through format validation and antivirus before any process reads it.

  1. Quarantine. The file is stored in separate private storage. No process opens it yet.
  2. Validation by content, not by extension. Only macro-free .xlsx and CSV, with a size limit. Files with macros (.xlsm), embedded files, password protection or that inflate when decompressed (zip bombs) are rejected.
  3. Antivirus. ClamAV, with its signature database updated weekly, running in the Cloud Run upload service. An infected file is deleted and rejected with the name of the detected signature.
  4. Test zone. Only then does the file enter the isolated load with its 9 controls (section 2).

How it is verified. On every code change, an automated test confirms the antivirus detects the standard EICAR test file. On 10/31/2026 it was tested with a real Odoo Excel file: it passed the antivirus and entered the test zone in about 90 seconds.

What we don’t do: client files are never sent to services like VirusTotal, which share what they receive with third parties.

Inside the upload service. No public endpoint; credentials in Google Secret Manager, readable only by the service; its own least-privilege database user, with no read or write access to certified figures; deployment with no stored passwords, accepted only from ADN’s repository.

Pending the same circuit for files that arrive as email attachments.

5. Artificial intelligence, audit and exit

What the AI sees. The assistant reads only summarized views of the gold layer, never raw ERP data or personal data. An automated test fails if anyone adds a column with personal data to those views. To propose how to read a new file, it receives only column names and formats, never values. Below every answer, “What the assistant saw” shows the exact text that was sent.

AI provider. Anthropic API (United States). Under its commercial terms, it may not train models on content received through the API and deletes it within 30 days, except content flagged for a possible usage-policy violation (up to 2 years). Anthropic holds ISO 27001, ISO/IEC 42001 and SOC 2 Type I and II.

Tamper-evident audit log. It records sign-ins (with or without MFA), sheets viewed, downloads, exports, questions to the assistant and emails sent. Each row carries the hash of the previous one: if one is modified or deleted, the chain breaks at that exact point.

If the client leaves. It receives a full export, one file per table, with a manifest of row counts and the hash of each file. Then everything is deleted and a certificate is delivered showing before and after at zero. Only the audit log is kept, for a period to be defined.

External review. Pending review by an independent expert scheduled for 11/30/2026. Until then, reviews are internal: Supabase’s security advisor and the automated tests.

What we don’t promise. ADN’s own certifications (ISO 27001, SOC 2): it has none. Contractually guaranteed availability: it depends on Supabase. If the database or the AI don’t respond, the web says so and never shows partial figures.

Does your IT team have more questions?

We set up a technical meeting and go through whatever your security policy requires.

Talk to ADN