Turn a Postgres database's extensions or a KV database's modules on and off. extensions is the full list to have on, from listDatabaseExtensions with section "managed" for its engine. The database's owner adds Postgres's "additional" ones with CREATE EXTENSION. Some load a library, which restarts the database (restart). With high availability, it restarts one instance at a time and the primary hands over last. Every KV module restarts the database and needs KV 8.1. Turning a Postgres extension off drops it (DROP EXTENSION, without CASCADE). Postgres refuses while other objects depend on it, and the database's extensions shows this. Developers and up.
API key access: full.
apiKeyAuthorizationBearer <pyo_…>An API key from the dashboard's API keys page: Authorization: Bearer pyo_…. Keys can expire, and an expired one gets a 401.
application/jsonTurn a Postgres database's extensions or a KV database's modules on and off. extensions is the full list to have on, from listDatabaseExtensions with section "managed" for its engine. The database's owner adds Postgres's "additional" ones with CREATE EXTENSION. Some load a library, which restarts the database (restart). With high availability, it restarts one instance at a time and the primary hands over last. Every KV module restarts the database and needs KV 8.1. Turning a Postgres extension off drops it (DROP EXTENSION, without CASCADE). Postgres refuses while other objects depend on it, and the database's extensions shows this. Developers and up.
API key access: full.
op*"setDatabaseExtensions""setDatabaseExtensions"id*stringextensions*array<string>Done. Always ok: true, and some operations add more, such as a new API key or a join command. A warning comes with a change that went through but won't fully take effect yet, such as more replicas than the servers have room for.
application/jsoncurl -X POST 'https://your-pyo.example.com/api/v1/ops' \
-H 'Content-Type: application/json' \
-d '{
"extensions": [],
"id": "mdb_8kq2x7ad",
"op": "setDatabaseExtensions"
}'{}