Database
Provision real MariaDB, Postgres, and MongoDB databases on Hep.gg, connect with any standard client over db.teamhydra.dev, and list or create them programmatically with a bearer-key management API.
Database
The Hep.gg Database app gives you real databases you can connect to with any standard client. Every database you provision is a genuine MariaDB, Postgres, or MongoDB database with its own dedicated user scoped to that one database. There are two separate surfaces, and it helps to keep them apart from the start:
- Your databases are reachable at
db.teamhydra.devwith a normal database client (themysqlCLI,psql,mongosh, an ORM, a driver). This is where your queries run. - The management API is a small bearer-key API at
https://hep.gg/api/v1/dbfor listing and creating databases from a script or CI, without the dashboard.
Authentication
The two surfaces authenticate differently.
- Your database (
db.teamhydra.dev): the per-database username and password. Both are auto-generated when the database is provisioned. The password is shown on creation and can be revealed or rotated from the dashboard or the management API. - Management API (
https://hep.gg/api/v1/db): a bearer key of the formhepgg_db_..., sent in theAuthorizationheader.
Authorization: Bearer hepgg_db_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxManagement keys are minted in the dashboard under Database, API Keys at hep.gg. There is no public endpoint to create a key. The key carries your account entitlements: it can list and create databases, and reveal or rotate a database's password. It cannot delete a database; that stays dashboard-only. A suspended account, or a key you have disabled, returns 401. Never commit a key or a database password to source control.
Quickstart
Create your first database with the management API, then connect to it. Replace $DB_KEY with a key from your dashboard.
curl -X POST https://hep.gg/api/v1/db/databases \
-H "Authorization: Bearer $DB_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"my-app","engine":"mariadb"}'const res = await fetch("https://hep.gg/api/v1/db/databases", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DB_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "my-app", engine: "mariadb" }),
});
const body = await res.json();
console.log(body.data.connectionString);A successful create returns 201 and includes the password and a ready-to-use connection string in data, returned only this once. Store them immediately. See Management API for the full request and response shape, then Connecting for client examples.
What you can do
Tiers and quota
What you get out of the box, plus how usage is enforced.
- Free: 1 database, 100 MB account-wide, 10 concurrent connections per database user.
- Premium: 2 databases, 500 MB account-wide, 25 concurrent connections per database user.
- Packs: each pack adds +1 slot and +N MB of account-wide storage for 30 days. Stack as many as you like; slots and bytes both sum.
Slots and storage are account-wide and shared across both surfaces, so a database you create over the management API counts against the same quota as one created in the dashboard. Add slots or storage from the dashboard Top Up tab. Quota details and the over-quota behavior are covered in Connecting.
Engines available
All three engines are live on db.teamhydra.dev in production:
| Engine | Default port | Connection scheme |
|---|---|---|
| MariaDB / MySQL | 3306 | mysql:// |
| Postgres | 5432 | postgresql:// |
| MongoDB | 27017 | mongodb:// (with ?authSource=admin) |
If an engine is not enabled on a deployment, creating a database with that engine returns 400 ENGINE_DISABLED. MariaDB is always available; it is the app's primary pool.