Documentation menu

Update database settings

PATCHhttps://api.instacloud.com/projects/{projectId}/database/settings

Token scope: account · org · project — read-only tokens refused (not a GET).

Update postgres settings: connection pooling, scale-to-zero, idle timeout, storage, deletion protection, and private network access.

Parameters

NameInTypeRequiredDescription
branchquerystringnobranch name (default branch if omitted)
groupquerystringnopostgres service name (default: the sole postgres service)
projectIdpathstringyes

Request body

application/json

FieldTypeRequiredDescription
connectionPoolingbooleannoenable provider-managed PgBouncer/connection pooling
deletionProtectionbooleanno
scaleToZerobooleannoenable or disable scale-to-zero
cpustringnoresource ceiling — vCPU as a provider quantity ('2', '4', '2500m'). PAID PLANS: the ceiling is the tier lever. Moves both directions (insta-db only)
memorystringnoresource ceiling — memory as a provider quantity ('4Gi', '8Gi'). PAID PLANS. Moves both directions (insta-db only)
idleTimeoutintegernoscale-to-zero idle timeout in seconds
volumeSizestringnothe volume (block disk) size cap as whole Gi ('10Gi'). PAID PLANS: the ceiling is the tier lever. Grow-only — a provisioned disk cannot shrink (insta-db only)
storageSizestringnoDEPRECATED alias of volumeSize — dropped next release
privateAccessbooleannoinsta-db only — true: give the database a private network connection string and mint DATABASE_PRIVATE_URL (with the password) into its credentials beside DATABASE_URL, which is unchanged; compute services on the insta-compute provider bind it to connect without the public endpoint. false: retract DATABASE_PRIVATE_URL (refused while public access is closed); the response `warnings` name computes still bound to it. Gated — service.setAccess. 409 {code: private_lane_disabled} until the private lane is enabled on this deployment. Public access is NOT set here: use PUT /projects/{projectId}/services/{serviceId}/access.

Responses

200

Default Response

FieldTypeRequiredDescription
idstringno
namestringno
statestringno
routeKeystringno
hoststringno
portintegerno
connectionPoolingbooleanno
deletionProtectionbooleanno
scaleToZerobooleanno
idleTimeoutSecsintegerno
volumeSizestringnothe service's volume (block disk) size
volumeGibnumberno
storageSizestringnoDEPRECATED alias of volumeSize — dropped next release
storageGiBnumbernoDEPRECATED alias of volumeGib — dropped next release
enabledExtensionsstring[]no
cpuMilliintegernocurrent cpu ceiling in millicores (2000 = 2 vCPU)
memoryMibintegernocurrent memory ceiling in MiB
capobjectnothis plan's maximum for the ceilings — render sliders with their plan-limit markers. These are the caller's own tier caps and they move with the plan (and with env overrides per deployment), so read them from THIS field rather than assuming a tier's numbers; the parenthetical example that used to live here said 'pro 4 vCPU/4Gi/10Gi' and was stale on all three by the time anyone noticed.
cap.cpuMilliintegeryes
cap.memoryMibintegeryes
cap.volumeGibintegeryes
pendingbooleannotrue when the provider accepted the change asynchronously and it has not been applied yet — the ceiling/volume fields are then the PRE-change values. Re-read (GET) to see the applied state. Absent when the change was applied synchronously.
publicAccessbooleannopostgres (insta-db) — false: the public endpoint refuses every connection (SQLSTATE 28000) and the database is not reachable from the internet; only the private network lane connects. Change it with PUT .../services/{serviceId}/access. Absent when the provider does not report it.
privateAccessbooleannopostgres (insta-db) — true: the database has a private network connection string (privateConnString, and DATABASE_PRIVATE_URL in the service credentials) for compute services on the insta-compute provider. Change it with PATCH .../database/settings {privateAccess}. Absent when the provider does not report it.
privateConnStringstringnothe connection string over the private network lane, WITHOUT the password (the full URL is DATABASE_PRIVATE_URL in the service credentials). Present only while privateAccess is on.
privateLaneobjectnoGET .../database/instance only — this deployment's private-lane switches, so a UI can render the toggles without a probing write
privateLane.enabledbooleanyesthe private network access toggle and closing public access are available on this deployment; false: both answer 409 {code: private_lane_disabled}
privateLane.consolebooleanyesthe platform console reaches databases over the private network lane; false: it uses the public endpoint, so it cannot browse a database whose public access is closed
warningsstring[]nowhat this change will break and how to fix it (e.g. compute services bound to DATABASE_PRIVATE_URL when private access is turned off). Advisory: the change was applied.

202

Default Response

FieldTypeRequiredDescription
statusstringyes
approvalIdstringyes
actionstringyes
actionsstring[]yes
messagestringyes
urlstringyes

400

Default Response

FieldTypeRequiredDescription
errorstringyes

403

Default Response

FieldTypeRequiredDescription
errorstringyes

404

Default Response

FieldTypeRequiredDescription
errorstringyes

409

code private_lane_disabled: private network access is not yet available on this deployment. code private_lane_unavailable_in_region: the database's region has no private network lane yet — privateAccess was turned back off and nothing was minted. code credential_change_in_progress (privateAccess only): another credential change for this database (a private-access toggle or a password rotation) is in flight — nothing was changed; retry in a moment

FieldTypeRequiredDescription
errorstringyes
codestringnostable machine-readable reason, e.g. private_lane_disabled, private_lane_unavailable_in_region, public_access_closed, credential_change_in_progress

502

Default Response

FieldTypeRequiredDescription
errorstringyes

View as Markdown