Skip to content
Milvao
Security and trust

How Milvao protects your community's data

Encrypted numbers and tokens, each community's data kept apart and every action in a separate audit log. Not certified, but mapped to SOC 2 and ISO 27001.

Last updated

In place today

How your data is protected

Each control below is built and running. Planned work is listed separately, further down, so the two never blur.

Member data

The details members share are protected in the database itself, not only in the screens.

  • Phone numbers encrypted at rest

    In place

    Members' numbers are encrypted with AES-256-GCM. Lookups use a keyed hash, and the dashboard shows only the last 4 digits, for everyone on the team. Only the owner can export full numbers, after giving a reason that is audited.

  • Links and codes stored as hashes

    In place

    Join codes, profile links and team invites are stored only as SHA-256 hashes, so a copy of the database doesn't hand out working links.

  • Profile links that can't be reused

    In place

    A profile link works once and for 60 minutes. Opening it only shows a page, so link previews can't use it up.

  • Contacts shared only after two yeses

    In place

    A number is sent only when the person asking allowed it for that request and the matched member accepted. Both consents are checked again right before sending.

  • Redacted text for AI

    In place

    Only request text, with phone numbers, emails and links removed, goes to the AI model that writes the brief. The directory, numbers and profile answers are never sent.

Separation between communities

One community can never reach another community's records, even through a bug in a screen.

  • Enforced by the database

    In place

    Every record that belongs to a community carries its workspace, and the database refuses links between records of different workspaces.

  • Checked on every request

    In place

    Access is checked on every page and action. Asking for another community's record answers "not found", without saying whether it exists, and the attempt is recorded.

  • Messages routed by business number

    In place

    An incoming WhatsApp message reaches a community only through the business number it was sent to.

Accounts and staff access

Few people can see data, and each of them can see only what their role needs.

  • Invitation-only accounts

    In place

    Nobody can create an account without an invite to their email. Passwords are at least 10 characters and stored hashed, and a reset signs out every other device.

  • Two-factor sign-in

    In place

    Available to everyone with an authenticator app and backup codes. Optional, with a reminder after sign-in until it is on. Staff need it to open a workspace through support access.

  • Least-privilege roles

    In place

    Staff are owner, admin or support, each with its own permissions. In a community, only the owner can change settings, the team, billing and the WhatsApp connection.

  • Support access only with permission

    In place

    Milvao staff can open a workspace only after its owner grants access for 1 hour, 24 hours or 7 days. The view is read only, and every page support opens is listed for the owner.

  • One-click account lock

    In place

    Staff can lock an account and end all its sessions at once, with a reason that goes into the audit trail.

Audit trail and monitoring

Every action leaves a record that the app itself can't rewrite.

  • Separate logs database

    In place

    The audit trail, security events and AI call logs live in their own database, apart from community data.

  • Audit trail of every action

    In place

    Changes by operators and every action by Milvao staff are recorded with who, what, when and from where.

  • Security events and alerts

    In place

    Failed sign-ins, failed two-factor codes, bot checks, rate-limit hits, bad webhook signatures and cross-community attempts are recorded. Serious ones alert staff by email and WhatsApp.

  • Nothing sensitive in logs

    In place

    Logs never contain passwords, tokens, secrets, message text or full phone numbers.

Abuse prevention

Public entry points are checked before anything reaches the data.

  • Cloudflare Turnstile

    In place

    Every public form, sign-in, invite acceptance and password reset uses Cloudflare Turnstile to tell people from bots.

  • Rate limits and validation

    In place

    Every public endpoint is rate limited across servers, and every input is validated with length limits.

  • Signed webhooks

    In place

    Messages from WhatsApp and payment events from Stripe and Razorpay are accepted only with a valid signature.

  • Outreach limits

    In place

    At most 3 members are asked per request, one at a time, and a member gets at most 2 offers in any 7 days.

  • Security headers

    In place

    HTTPS everywhere with HSTS, a content security policy, and protection against framing and content sniffing.

Payments and connections

The most sensitive credentials never reach Milvao, or are sealed when they do.

  • No card data at Milvao

    In place

    Payments run on Stripe's hosted checkout and Razorpay Checkout. Milvao receives only the card brand and last 4 digits for display.

  • WhatsApp tokens sealed

    In place

    The token an owner pastes to connect their number is encrypted before storage, never shown again, and never logged.

  • Secrets outside the code

    In place

    Keys live only in encrypted environment settings, never in the code repository.

Retention

How long data is kept

Daily jobs delete data when its period ends. Message text is cleared after 90 days even while a member stays in the community.

Raw message data received from WhatsApp
7 days
Message text
90 days
AI call logs (redacted)
90 days
Copies of Razorpay payment events
30 days, with contact and card details removed
Audit trail and security events
1 year
Member profiles, consent records and introduction history
Until the member or the community asks for deletion
Data requests

Members can ask for a copy or deletion

Incident response

If something goes wrong

Security events are recorded as they happen, and serious ones alert Milvao staff straight away.

  1. Detect

    Serious security events and spikes in failed sign-ins alert Milvao staff by email and WhatsApp.

  2. Contain

    Staff can lock an account and end its sessions in one step, suspend a workspace, or rotate a key.

  3. Tell you

    If a breach affects your community's data, we inform the owner without undue delay, with what we know, so you can meet your own duties.

  4. Notify and learn

    We help you notify the Data Protection Board of India and affected people and, where the GDPR applies, the supervisory authority within its 72-hour deadline. Then we record what happened and what we changed.

Compliance roadmap

Aligned with the frameworks, not certified

Milvao holds no certifications and shows no badges. We keep a control register mapped to SOC 2, ISO/IEC 27001, India's DPDP Act and the GDPR, and this is where each one stands.

FrameworkWhere we areNext step
SOC 2Not audited. Controls are mapped to the Trust Services Criteria in an internal register.Write the policies, finish the risk register and planned controls, then prepare for a Type I audit.
ISO/IEC 27001:2022Not certified. The same controls are mapped to Annex A.Set up the management system (scope, policies, risk treatment) alongside the SOC 2 work.
India's DPDP Act 2023Consent per purpose, a privacy notice link in the first message, data requests and retention limits are built.Finish the legal review of the privacy policy and name a grievance officer.
GDPRProcessor role, consent records, access and erasure tools and the sub-processor list are in place.Finalise the data processing agreement and records of processing.

Planned, not built yet

These controls are on our list and not in place today. Each moves up to the section above only once it is running.

  • Planned: Cloudflare web application firewall and bot rules in front of milvao.com and app.milvao.com
  • Planned: Automated tests and dependency and secret scanning on every code change, blocking merges that fail
  • Planned: Point-in-time database restore, nightly encrypted backups and a regular restore test
  • Planned: An external penetration test before the first paying customer after the pilots
  • Planned: A written key rotation procedure and separate keys per environment
  • Planned: A logs database role that can add and read records but not change them
  • Planned: Uptime monitors for the app, the WhatsApp webhook and this website
  • Planned: Quarterly review of staff and owner access, and a staff offboarding checklist
  • Planned: Written security policies, a risk register and a breach notification runbook
  • Planned: Signed data processing agreements and security reports collected from every provider
Report a vulnerability

Found a security problem? Tell us.

Rules for testing

We will not pursue good-faith research that follows these rules.

FAQ

Security questions

No. Milvao has not been audited or certified. Its security controls are mapped to SOC 2 and ISO/IEC 27001 in an internal register, so it is ready to start an audit when customers need one. We will say so in the trust centre when an audit is complete, and not before.

Milvao's database is hosted in Singapore, with audit and security logs in a separate database. Some providers, such as Meta for WhatsApp messages and Anthropic for writing request briefs, process data in other countries. The sub-processors page lists each one with its region.

Only if the community's owner grants support access, for 1 hour, 24 hours or 7 days. Support then sees what an operator sees, read only, with phone numbers masked. Every page they open is listed for the owner, and staff must use two-factor sign-in.

No. Milvao never joins, reads or posts in WhatsApp groups. It only handles one-to-one messages that members send to your community's business number.

Questions about your data? Email hello@milvao.com.