Security
Security
RustaBase protects your Projects in layers: the network, the platform, each Project, and your data. This page covers what we do for you, and what you should do yourself.
What RustaBase does
| Layer | Protection |
|---|---|
Network | Visitors reach Projects only through our load balancer over HTTPS. Servers talk to each other over a private network |
Addresses | Your Project uses its public rustabase.net address. Server addresses are never shown in the console or API |
Isolation | Each Project has its own database credentials. Free and paid Projects run on separate servers |
Runtime | Project backends run without admin rights, with resource limits |
Sign-in | Passwords are hashed, sessions are signed, and two-step sign-in is available |
Secrets | Credentials are encrypted at rest and never shown again after saving |
What you control
| Control | Where |
|---|---|
Table access rules | Tables, for each of list, view, create, update, delete |
Row-level security | Row-level security, as PostgreSQL policies |
API keys | API keys, scoped and revocable |
Webhook signing | Webhooks, Security & retries |
Team access | Workspace members and Audit |
Before you go live
- Check the access rules on every table. Leave nothing open that shouldn't be.
- Turn on two-step sign-in for every workspace member.
- Keep API keys and superuser access on servers only, never in apps.
- Set a signing secret on every webhook.
- Turn on automatic backups and practice a restore.
- Review Security in the console and fix any findings.
If a key or password leaks
- Revoke the key, or change the password, straight away.
- Create a new one and update the service that uses it.
- Check Logs and Audit for anything unusual since it leaked.
- Remove it from the place it leaked, such as a repository or chat.
Report a vulnerability
Email [email protected] privately. Please don't post details publicly until we've fixed the issue.
Found something wrong on this page?
Fix it yourself. The link below opens this file in GitHub's editor and forks the repository for you if you need one, and your change becomes a pull request without leaving the browser.