KiviDB Trust Center

Security

The controls in KiviDB Cloud, area by area. Each table says what is in place and what is not. Unless stated otherwise, statements apply to paid plans (Essentials, Pro, Scale) on AWS, Google Cloud and Azure.

How the service is built

KiviDB Cloud has two parts.

With Bring Your Own Cloud, the machines, disks, network and backups are in your own AWS, Google Cloud or Azure account. See below.

Encryption in transit

ConnectionStatusDetail
Browser or tool to website, console and APIIn placeTLS 1.2 or higher only. Plain HTTP redirects to HTTPS. HSTS is sent.
Your application to your databasePartialTLS is available on its own port and is off unless you enable it. With "require TLS" enabled, your allowlist applies to the TLS port only. Certificates are issued by KiviDB's own certificate authority; you download its certificate from the console and trust it in your client. Client certificates (mutual TLS) signed by your own CA can be made optional or required; they are checked in addition to the password.
Between the nodes of one database (replication)OptionalEncrypted with TLS when the database has TLS and encrypted replication is turned on; off by default. A sharded database with TLS always encrypts traffic between its nodes. Otherwise it travels unencrypted between private addresses inside the cloud provider's network, in one region.
Control plane to your databaseNot in placeThe console's data browser, health checks and some management operations connect to the database port from KiviDB's fixed addresses. These connections are authenticated and restricted by the firewall, but not encrypted.
Management agent to control planeIn placeHTTPS, outbound from the database server only.

Encryption at rest

WhatStatusDetail
Database disks on AWSPartialEncrypted with AWS-managed keys for disks created from 11 October 2026. Disks created before that date are not encrypted.
Database disks on Azure and Google CloudIn placeEncrypted by the provider with provider-managed keys.
Backups and exportsIn placeStored in the provider's object storage, encrypted at rest with provider-managed keys (AES-256 on AWS). Not publicly accessible.
KiviDB's account databaseIn placeEncrypted at rest. Not reachable from the internet.
Database passwordsIn placeEncrypted by the application with AES-256-GCM before they are stored in the account database. The key is kept in AWS Secrets Manager, not in the database. A copy of each database's passwords is also held in AWS Secrets Manager, encrypted by AWS. KiviDB's services can read them, because they need them to operate your database.
Customer-managed keysNot in placeYou cannot supply or control the encryption keys.

Network

ControlStatusDetail
Firewall per databaseIn placeEach database has its own firewall rules. Only addresses on your allowlist can reach it. An empty allowlist means nobody can.
Allowlist defaultIn placeA database created in the console starts with only your own address allowed. One created through the API starts closed. KiviDB does not stop you adding a wide range; that is your decision.
Private connectivityIn placeAWS PrivateLink, Azure Private Link and Google Private Service Connect are available as a paid option, and public access can then be closed.
Public addressesPartialDatabase servers have public IP addresses. Exposure is limited by the firewall, not by the absence of an address.
Isolation between customers, AWSIn placeA separate subnet per customer and a separate firewall group per database. Traffic between a database's own nodes is allowed only within that group.
Isolation between customers, Azure and Google CloudIn placeCustomers' servers share a virtual network in each region, and each database has its own firewall rules within it. Traffic between a database's own nodes is allowed only between those nodes, and other traffic from inside the shared network is refused.
Web application firewall, DDoS serviceNot in placeNone beyond what the cloud providers apply by default.

Accounts and sign-in

ControlStatusDetail
PasswordsIn placeStored only as Argon2id hashes. Minimum 12 characters.
Google sign-in and single sign-onIn placeGoogle, and enterprise single sign-on by OpenID Connect or SAML. Sign-on is brokered by Auth0.
Two-factor authenticationPartialCodes from an authenticator app, asked for after a password, Google or single sign-on sign-in. Off unless you turn it on; an organization's owner can require it of every member. Once on it cannot be turned off, only moved to a new authenticator. Ten single-use recovery codes, stored only as hashes. An account that no organization requires it of can instead be sent a code by email, and must then set up a new authenticator; where an organization requires it, the owner resets the member instead. No hardware security keys or passkeys. API keys are not asked for a second factor.
Attempt limitsIn placeSign-in is limited per account and per address; sign-up and password-reset requests per address.
SessionsIn placeAccess tokens last 15 minutes. Refresh tokens last 14 days, are stored only as hashes, change on every use and are revoked when you sign out or reset your password.
RolesIn placeOwner, admin, member and viewer, for people and API keys alike. Billing and member management are restricted to owners, and minting API keys to owners and admins. A viewer reads metadata only: it cannot change anything, or read a password, a key, a document or a snapshot.
API keysPartialStored only as keyed hashes, shown once, revocable at once, bound to one organization. A key cannot have less access than a member, and by default does not expire.
Audit logIn placeEvery change to an organization and its databases, made in the console, with an API key or through an AI assistant, is recorded with who made it, when, from which address and on what, and so are sign-ins and failed password attempts. Owners and admins can read it and export it as CSV or JSON lines; events are kept for a year. The commands sent to a database and the data in it are not recorded.

Access by KiviDB

QuestionAnswer
Can KiviDB staff log in to a database server?No. There is no shell or remote-login path. The management agent accepts a fixed list of twelve operations (for example: take a backup, apply a resize, update certificates) and rejects anything else.
Can KiviDB read the contents of a database?Technically, yes. To run failover, backups and the console's data browser, the control plane holds each database's credentials and can connect to it. KiviDB does not access customer data except to provide the service or at the customer's request.
Is there a way to sign in as a customer?No. The API has no impersonation or "log in as" function.
Who has access to production systems?The founding team, through single sign-on to the cloud accounts. KiviDB is a small company and access is not yet divided into narrower roles.

Bring Your Own Cloud

When a database runs in your own cloud account:

Availability and backups

ControlStatusDetail
Replicas and automatic failoverIn placeOn the Pro plan. Essentials is a single server.
DurabilityIn placeOn paid plans every write is recorded in an append-only log on the database's disk, which survives a restart or replacement of the server.
BackupsPartialDisk snapshots and exports, taken when you ask for one. Scheduled disk snapshots (hourly, daily or weekly, with a retention you set) are available per database and are off unless you switch them on. A snapshot restores the database as it was when the snapshot was taken; there is no recovery to an arbitrary point in time.
Uptime commitmentIn placeSee the Service Level Agreement. Availability is measured per database and kept for 400 days.
Status pageIn placestatus.kividb.io is run by Better Stack, an independent monitoring service, which keeps the history. It checks the website, the API and the MCP server directly, and polls a health check for each service once a minute; those checks run real operations against a KiviDB-owned database on AWS (write and read, full-text and vector queries, snapshots, schedules, metrics and logs). Databases on Azure and Google Cloud are not yet covered by a data-path check. Affected customers are also told by email.
Control planePartialIts database runs in two availability zones with daily backups kept for 7 days. A control-plane outage does not stop running databases, but the console and API would be unavailable.

Software integrity

ControlStatusDetail
Management agent updatesIn placeSigned, and verified by the agent before it updates itself.
KiviDB server downloadsNot in placeServed over HTTPS. Not signed, and no checksums are published.
DependenciesPartialPinned by lock files. Container images are scanned when pushed. There is no automated dependency, secret or static-analysis scanning in the build.
ChangesPartialMade by pull request with automated type and consistency checks. KiviDB does not have independent review of every change.
EnvironmentsPartialTest and production are separate deployments with separate databases and secrets, but share cloud accounts.

Logging and monitoring

Payments

Card and bank details are entered on Razorpay's checkout and never reach KiviDB's servers. KiviDB keeps order and payment references, amounts and tax details.

Website

Organisation

Free tier

Free-tier databases are for trying the product. Several customers' databases run on one shared server, TLS is not available, and they expire after 7 days. Do not put data you need to protect in a free-tier database.