Managed databases
NuPaaS provisions and operates database instances for your organization. Databases are org-scoped and can optionally be associated with a project.
Engines and plans
One engine can be provisioned:
| Parameter | Type | Description |
|---|---|---|
| postgres | engine | Extensions, read replicas, point-in-time restore, metrics and an auto-generated API. |
Each instance carries a plan — starter, standard or production — and optionally a resource preset of t1.micro, t1.small or m1.medium. The plan can be changed later.
Creating a database
Create databases from /orgs/<org>/databases, or from the CLI:
platform db list
platform db create --name analytics --engine postgres
platform db credentials --id <databaseId>
platform db delete --id <databaseId>You may also pass a map of PostgreSQL parameters at creation time to tune the instance.
Connecting
Requesting credentials returns everything needed to connect: host, port, username, password, database name and a ready-made connection string. They also return a separate read host, so you can direct read traffic at a replica.
To wire a database into a running service without handling the password yourself, attach it: the platform materialises the connection URL as a secret-backed environment variable on that service. It refuses to overwrite a variable of the same name that you defined yourself.
The detail page
A database's page at /orgs/<org>/databases/<slug> is organised into tabs:
| Parameter | Type | Description |
|---|---|---|
| Connections | tab | Host, port, credentials and copyable connection strings. |
| Backups | tab | Read-only list of the most recent backups with type, size and status. |
| Plan | tab | The plan the instance runs on. |
| Extensions | tab | Enable and disable supported PostgreSQL extensions. |
| Read Replicas | tab | List, create and delete replicas. |
| PITR Restore | tab | Restore the instance to a chosen point in time. |
| Metrics | tab | Live instance metrics, refreshed while the tab is visible. |
| Auto API | tab | Toggle the auto-generated REST API over your schema. |
A Trigger backup action sits in the page header. It is enabled only while the instance is in the ready state.
PostgreSQL extensions
Eight extensions can be enabled from the Extensions tab:
pgvector, postgis, pg_cron, pg_stat_statements, uuid-ossp, hstore, ltree and citext.
Each entry reports whether enabling it requires a restart, so you can schedule the ones that do.
Read replicas
Replicas come in two kinds and both serve reads through the same endpoint:
- HA standby — created as part of the plan's baseline, not by you. Only the
m1.mediumplan has a baseline standby. It runs three instances. Thet1.microandt1.smallplans run one instance each, so they have no standby. - Read replica — created by you, individually addressable, and returned with its own read-only connection string.
Metrics
The Metrics tab reports five values, polled while the tab is open:
| Parameter | Type | Description |
|---|---|---|
| activeConnections | number | Connections currently open. |
| queriesPerSec | number | Query throughput. |
| cacheHitRatio | number | Buffer cache hit ratio. |
| walLag | number | null | Replication lag between the primary and a standby. Null when the instance has no standby. |
| storageUsed | number | Storage consumed by the instance. |
Available through the API only
Three capabilities are fully implemented but have no control in the panel today. They are reachable through the API:
| Parameter | Type | Description |
|---|---|---|
| Clone a database | API only | Create a new instance from an existing one, given the source id and a new name. |
| Create an on-demand backup record | API only | PostgreSQL only. The panel's header action triggers a backup; the separate operation that returns a backup id is not surfaced. |
| Rotate credentials | API only | Starts a rotation job and returns its id. |
Upgrading a plan
Changing an instance's plan is an API operation that optionally also sets backup retention for that database, clamped to between 1 and 365 days.
Deleting a database
Deleting an instance is irreversible and the CLI asks for confirmation before proceeding.
platform db delete --id <databaseId>