Skip to content

Enable an extension of a managed PostgreSQL database

POST
/api/databases/managed/{id}/extensions/{name}
curl --request POST \
--url https://opfield.example.com/api/databases/managed/550e8400-e29b-41d4-a716-446655440000/extensions/example \
--header 'Authorization: Bearer <token>'

CREATE EXTENSION … CASCADE, after the preload library or the download it needs, and grants the application role use of its objects. Enabling an enabled extension changes nothing. Only the curated extensions the list returns can change (400 EXTENSION_NOT_ALLOWED). DDL runs as the control superuser in the application database, on the primary when the database runs on several servers (copies follow). An extension that needs a preload library restarts the database (a rolling update copies-first on several servers); one that comes as a download is installed into the database volume on every server first (409 EXTENSION_NEEDS_STORAGE when the volume lacks room). The answer is the extension list; pending is set while a restart or a download runs, and the SQL step follows on its own. Refusals: 409 EXTENSION_NEEDS_IMAGE_UPDATE (update with imageUpdate: true first), EXTENSION_NOT_AVAILABLE (not in this version), MANAGED_DATABASE_DAEMON_UPDATE_REQUIRED (a node daemon predates extensions), MANAGED_DATABASE_EXTENSION_CHANGE_PENDING (another change runs). Needs databases:edit.

id
required
string
>= 1 characters
Example
550e8400-e29b-41d4-a716-446655440000
name
required
string
>= 1 characters <= 64 characters /^[A-Za-z0-9][A-Za-z0-9_-]*$/

Successful response

Media typeapplication/json
object
data
required

Resource object. Exact fields depend on the endpoint.

object
id
string
name
string
key
additional properties
Example
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Production Postgres",
"type": "postgres",
"healthStatus": "online"
}
}

Bad request

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"path": [
"name"
],
"message": "Required"
}
]
}

Authentication required

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "UNAUTHORIZED",
"message": "Authentication required"
}

Forbidden

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "FORBIDDEN",
"message": "Insufficient permissions"
}

Not found

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "NOT_FOUND",
"message": "Resource not found"
}

Conflict

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "CONFLICT",
"message": "Resource already exists"
}

Unprocessable entity

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "UNPROCESSABLE_ENTITY",
"message": "Request could not be processed"
}

Internal server error

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}