Kvindo™ Cloud Docs
A PostgreSQL Database is a database inside a specific PostgreSQL Cluster. It is always created owned by the cluster's root user — access is controlled via grants on PostgreSQL Users, not per-database ownership.
• Belongs to one cluster forever — spec.postgreSqlId is required and immutable, same as PostgreSqlUser
• Extensions are allowlisted — spec.extensions installs PostgreSQL extensions into this database. The platform preloads a fixed library set (citus, pg_stat_statements); shared_preload_libraries is itself a reserved key rejected at reconcile, so an extension needing a preload change the platform does not already make (e.g. pg_cron) cannot be installed
btree_gin, btree_gist, citext, cube, earthdistance,
fuzzystrmatch, hstore, intarray, jsquery, ltree,
pg_stat_statements, pg_trgm, pgcrypto, postgis, tablefunc,
unaccent, uuid-ossp
Anything not on this list is rejected here. pg_stat_statements is allowlisted because its library is preloaded by default — but only on a cluster created after this became the default, since Patroni applies shared_preload_libraries at cluster creation only. On an older cluster CREATE EXTENSION pg_stat_statements fails with must be loaded via shared_preload_libraries until the cluster is recreated. pg_cron and any other extension needing a preload change the platform does not make remain unavailable, and shared_preload_libraries is a reserved key on PostgreSqlParametersSet too, so there is no other tenant-facing path.
| UI Name | API / kc name | Terraform name | Optional | Format | Default | Is read only | Description |
|---|---|---|---|---|---|---|---|
| PostgreSql cluster | spec.postgreSqlId |
spec.postgre_sql_id |
No | ULID — references a PostgreSql cluster | — | No | Immutable after creation |
| Extensions | spec.extensions |
spec.extensions |
Yes | list of strings | — | No | Allowlisted PostgreSQL extensions to install into this database |
A database with an extension installed.
Terraform
Python SDK
kc CLI
Resource docs
Examples
More in this section