api-reference
provisioning

API Reference

Base URL: http://localhost:24005/api

Provisioning

List all instances

GET /provision

Returns an array of all provisioned database instances.

Provision a new database

POST /provision
{
  "projectName": "my-db",
  "orgId": "myorg",
  "databaseType": "POSTGRESQL",
  "tier": "STANDARD",
  "backup": { "enabled": true, "schedule": "0 2 * * *", "retention": 30 },
  "parameters": { "shared_preload_libraries": "pg_stat_statements" },
  "tags": { "env": "production", "team": "backend" },
  "postgresVersion": "16",
  "databaseName": "myapp",
  "masterUsername": "admin"
}
FieldRequiredDescription
projectNameYesUnique project identifier
orgIdYesOrganization ID (used in namespace: {orgId}-{projectName})
databaseTypeYesPOSTGRESQL, MYSQL, or MONGODB
tierYesFREE, STANDARD, or ENTERPRISE
backupNoBackup configuration
parametersNoPostgreSQL parameters
tagsNoK8s labels applied to the cluster
postgresVersionNoe.g. "16", "17" (defaults to operator default)

Get instance status

GET /provision/{projectId}

Get credentials

GET /provision/{projectId}/credentials

Returns decrypted connection details including connectionUrl.

Delete instance

DELETE /provision/{projectId}

Removes the K8s namespace, CRDs, and all stored data. Blocked if deletion protection is enabled.

Cost estimation

POST /provision/estimate
{ "tier": "STANDARD" }

Lifecycle Operations

Scale tier

PATCH /provision/{projectId}/scale
{ "tier": "ENTERPRISE" }

Patches the CNPG Cluster CRD with new instance count and resource limits. Triggers rolling addition of replicas.

Resize storage

POST /provision/{projectId}/resize
{ "newSize": "100Gi" }

Upgrade PostgreSQL version

POST /provision/{projectId}/upgrade
{ "version": "17" }

Patches spec.imageName on the Cluster CRD, triggering a rolling restart.

Update parameters

PATCH /provision/{projectId}/parameters
{ "max_connections": "200", "work_mem": "64MB" }

Patches spec.postgresql.parameters and triggers a rolling restart.

Deletion protection

PATCH /provision/{projectId}/deletion-protection
{ "enabled": true }

Get logs

GET /provision/{projectId}/logs?lines=100

Rotate credentials

POST /provision/{projectId}/credentials/rotate

Generates a new password, updates the database, and returns new credentials.

Clone database

POST /provision/{projectId}/clone
{ "newProjectName": "my-db-clone" }

Creates a new cluster using pg_basebackup from the source.

Maintenance window

PUT /provision/{projectId}/maintenance-window
{ "window": "0 3 * * 0", "durationMinutes": 60, "autoMinorVersionUpgrade": true }
GET /provision/{projectId}/maintenance-window

Backup & Restore

Trigger manual backup

POST /provision/{projectId}/backup/trigger

List backups

GET /provision/{projectId}/backup/list

Restore from backup

POST /provision/{projectId}/backup/restore
{
  "newProjectId": "my-db-restored"
}

Point-in-time recovery (PITR)

POST /provision/{projectId}/backup/restore
{
  "newProjectId": "my-db-pitr",
  "targetTime": "2026-03-19T12:00:00Z"
}

Metrics

Current metrics

GET /provision/{projectId}/metrics/current

Returns real-time metrics from CNPG port 9187 + metrics-server CPU/memory.

Metrics history

GET /provision/{projectId}/metrics/history?limit=30

Metrics SSE stream

GET /provision/{projectId}/metrics/stream

Server-Sent Events stream, emits every 5 seconds.

Performance

Summary

GET /provision/{projectId}/performance/summary

Top queries

GET /provision/{projectId}/performance/top-queries?limit=10

Wait events

GET /provision/{projectId}/performance/wait-events

Enable pg_stat_statements

POST /provision/{projectId}/performance/enable

Audit

Enable pgaudit

POST /provision/{projectId}/audit/enable

Get audit logs

GET /provision/{projectId}/audit/logs?lines=100

Get audit config

GET /provision/{projectId}/audit/config

Snapshots

Export snapshot

POST /provision/{projectId}/snapshot/export
{ "format": "custom", "schemaOnly": false }

List snapshots

GET /provision/{projectId}/snapshot

Download snapshot

GET /provision/{projectId}/snapshot/{snapshotId}/download

Delete snapshot

DELETE /provision/{projectId}/snapshot/{snapshotId}

Migrations

Apply migration

POST /provision/{projectId}/migrations
{ "version": "001", "name": "create_users", "sql": "CREATE TABLE users (id serial PRIMARY KEY, name text)" }

List migrations

GET /provision/{projectId}/migrations

Alerts

Active alerts

GET /alerts

Alert history

GET /alerts/history?limit=100

Alerts for project

GET /alerts/project/{projectId}

Setup

Operator status

GET /setup/status

Install operator

POST /setup/install/{databaseType}

Parameter Groups

CRUD

GET    /parameter-groups
POST   /parameter-groups
GET    /parameter-groups/{name}
PUT    /parameter-groups/{name}
DELETE /parameter-groups/{name}