Releases: pgEdge/control-plane
Releases · pgEdge/control-plane
v0.8.0
v0.8.0 - 2026-05-06
Added
- Renamed the server binary from
control-planetopgedge-control-planeto reduce conflicts with other system packages. - Added PostgREST as a supported service type — Deploy the PostgREST REST API server alongside your database with automatic credential provisioning, upfront schema and role validation, and configurable connection pool settings.
- Added preliminary support for systemd as an alternative to Docker Swarm. This feature is currently in "preview" status. You can read more about it in the systemd page of our docs.
- Added the ability to run user-defined SQL scripts during database creation via the
scriptsfield on the database spec. - Added
connect_asfield for service credentials — Services can now explicitly specify which database user they authenticate as by referencing adatabase_usersentry, replacing auto-generated service accounts with direct, auditable credential assignment. - Added automatic role transfer when expanding a database cluster — PostgreSQL roles created outside the standard
database_usersconfiguration are now automatically transferred to new nodes when they join a database. - Extended stable random port assignments to service instances — Ports assigned to MCP, PostgREST, and RAG services are now persisted and reused across restarts and database updates, consistent with the behaviour already in place for database instances.
- Added RAG as a supported service type — Deploy a retrieval-augmented generation server alongside your database with hybrid vector and keyword search, automatic credential provisioning, and support for OpenAI, Voyage AI, Anthropic, and Ollama providers.
Changed
- Breaking: The
connect_asfield is now required when creating or updating services of any type (MCP, PostgREST, RAG) — requests that omit this field will be rejected with a validation error. - Breaking: Database, host, cluster, and service identifiers are now validated to comply with RFC 1035 name requirements — IDs must be 1–36 characters, contain only lowercase letters, digits, and hyphens, and start and end with a letter or digit. The combined length of a database ID and service ID may not exceed 53 characters.
- Removed the
pgedge_applicationandpgedge_application_read_onlybuilt-in database roles — These roles are no longer created for new databases. The names are no longer reserved and may be used freely for custom database users. - Promoted Supporting Services from beta to generally available
- Enable Patroni's failsafe mode in single-host nodes to improve resilience in some Etcd outages. Failsafe mode is not enabled in nodes with more than one host.
Fixed
- Fixed port conflicts between services on the same host producing opaque deployment errors — Port conflicts are now detected at creation time and rejected with a clear validation message.
- Fixed
extra_networksspecified inorchestrator_optsnot being attached to service containers (MCP, PostgREST, RAG). - Fixed upgrade path from v0.6.2 — Databases created before v0.7.0 that were missing replication slot resources are now automatically repaired during state migration.
- Fixed embedded etcd clients connecting to all cluster members instead of only their own endpoint — This could cause connectivity issues when cluster membership changed.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.8.0
v0.8.0-rc.1
v0.8.0 - 2026-05-06
Added
- Renamed the server binary from
control-planetopgedge-control-planeto reduce conflicts with other system packages. - Added PostgREST as a supported service type — Deploy the PostgREST REST API server alongside your database with automatic credential provisioning, upfront schema and role validation, and configurable connection pool settings.
- Added preliminary support for systemd as an alternative to Docker Swarm. This feature is currently in "preview" status. You can read more about it in the systemd page of our docs.
- Added the ability to run user-defined SQL scripts during database creation via the
scriptsfield on the database spec. - Added
connect_asfield for service credentials — Services can now explicitly specify which database user they authenticate as by referencing adatabase_usersentry, replacing auto-generated service accounts with direct, auditable credential assignment. - Added automatic role transfer when expanding a database cluster — PostgreSQL roles created outside the standard
database_usersconfiguration are now automatically transferred to new nodes when they join a database. - Extended stable random port assignments to service instances — Ports assigned to MCP, PostgREST, and RAG services are now persisted and reused across restarts and database updates, consistent with the behaviour already in place for database instances.
- Added RAG as a supported service type — Deploy a retrieval-augmented generation server alongside your database with hybrid vector and keyword search, automatic credential provisioning, and support for OpenAI, Voyage AI, Anthropic, and Ollama providers.
Changed
- Breaking: The
connect_asfield is now required when creating or updating services of any type (MCP, PostgREST, RAG) — requests that omit this field will be rejected with a validation error. - Breaking: Database, host, cluster, and service identifiers are now validated to comply with RFC 1035 name requirements — IDs must be 1–36 characters, contain only lowercase letters, digits, and hyphens, and start and end with a letter or digit. The combined length of a database ID and service ID may not exceed 53 characters.
- Removed the
pgedge_applicationandpgedge_application_read_onlybuilt-in database roles — These roles are no longer created for new databases. The names are no longer reserved and may be used freely for custom database users. - Promote Supporting Services from beta to generally available
Fixed
- Fixed port conflicts between services on the same host producing opaque deployment errors — Port conflicts are now detected at creation time and rejected with a clear validation message.
- Fixed
extra_networksspecified inorchestrator_optsnot being attached to service containers (MCP, PostgREST, RAG). - Fixed upgrade path from v0.6.2 — Databases created before v0.7.0 that were missing replication slot resources are now automatically repaired during state migration.
- Fixed embedded etcd clients connecting to all cluster members instead of only their own endpoint — This could cause connectivity issues when cluster membership changed.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.8.0-rc.1
v0.7.0
v0.7.0 - 2026-03-25
Added
- Supporting services (beta) — Deploy supporting services alongside databases. This release includes the pgEdge Postgres MCP Server, with automatic database credential provisioning, high-availability connection routing, and declarative configuration.
- Added
patroni_portto the database and instance APIs. - Added ability to configure per-component log levels.
- Added a default value for the
host_idconfiguration setting. It will now default to the short hostname (hostname -s) of the host machine. - Added guided walkthrough with GitHub Codespaces support.
- Added support for Postgres 16.13, 17.9, and 18.3. Default version is now 18.3.
- Added stop/start instance operations to the client library.
- Etcd mode reconfiguration — Hosts can now switch between etcd server and client modes at runtime, with support for host identity changes via peer URL updates.
- Scoped tasks and new task endpoints — Tasks are now scoped to databases and hosts, with new list/get endpoints for better observability. The
remove-hostAPI now returns a task for tracking removal progress. - Stable random port assignments — Randomly assigned ports now persist across instance restarts and database updates.
Changed
- Improved disaster recovery — Better quorum loss handling, host removal resilience, and crash recovery.
- Breaking: Replaced
hostnameandipv4_addressfields in the API withpeer_addressesandclient_addressesfor host endpoints andaddressesfor instance and service instance endpoints. - Breaking: Replaced
server_url(string) withserver_urls(string array) in the cluster join token, allowing multiple server URLs when joining a cluster.
Fixed
- Fixed a bug that prevented database deletion when we failed to create the Swarm service.
- Replaced fixed 100-second sync wait when adding a node with configurable health-based polling.
- Fixed sync event refresh blocking updates when Spock node is not configured.
- Fixed panics during task and workflow cancellation.
- Fixed add-node failing silently when Spock sync event is not confirmed.
- Fixed incomplete server shutdown that could leave the workflow engine running without required services.
- Fixed stale resource state blocking updates.
- Fixed IPAM subnet exhaustion after repeated database create/delete cycles by releasing subnets on network deletion.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.7.0
v0.7.0-rc.1
v0.7.0 - 2026-03-25
Added
- Supporting services (beta) — Deploy supporting services alongside databases. This release includes the pgEdge Postgres MCP Server, with automatic database credential provisioning, high-availability connection routing, and declarative configuration.
- Added
patroni_portto the database and instance APIs. - Added ability to configure per-component log levels.
- Added a default value for the
host_idconfiguration setting. It will now default to the short hostname (hostname -s) of the host machine. - Added guided walkthrough with GitHub Codespaces support.
- Added support for Postgres 16.13, 17.9, and 18.3. Default version is now 18.3.
- Added stop/start instance operations to the client library.
- Etcd mode reconfiguration — Hosts can now switch between etcd server and client modes at runtime, with support for host identity changes via peer URL updates.
- Scoped tasks and new task endpoints — Tasks are now scoped to databases and hosts, with new list/get endpoints for better observability. The
remove-hostAPI now returns a task for tracking removal progress. - Stable random port assignments — Randomly assigned ports now persist across instance restarts and database updates.
Changed
- Improved disaster recovery — Better quorum loss handling, host removal resilience, and crash recovery.
- Breaking: Replaced
hostnameandipv4_addressfields in the API withpeer_addressesandclient_addressesfor host endpoints andaddressesfor instance and service instance endpoints.
Fixed
- Fixed a bug that prevented database deletion when we failed to create the Swarm service.
- Replaced fixed 100-second sync wait when adding a node with configurable health-based polling.
- Fixed sync event refresh blocking updates when Spock node is not configured.
- Fixed panics during task and workflow cancellation.
- Fixed add-node failing silently when Spock sync event is not confirmed.
- Fixed incomplete server shutdown that could leave the workflow engine running without required services.
- Fixed stale resource state blocking updates.
- Fixed IPAM subnet exhaustion after repeated database create/delete cycles by releasing subnets on network deletion.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.7.0-rc.1
v0.6.2
v0.6.2 - 2025-12-22
Removed
- Removed unused "tenant_id" field from GetCluster endpoint.
Fixed
- Fixed in-place restores where the recovery target is not the latest point in the repository.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.2
v0.6.2-rc.1
v0.6.2 - 2025-12-22
Removed
- Removed unused "tenant_id" field from GetCluster endpoint.
Fixed
- Fixed in-place restores where the recovery target is not the latest point in the repository.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.2-rc.1
v0.6.1
v0.6.1 - 2025-12-19
Fixed
- Fixed incorrect pgbackrest command format for database restore endpoint.
- Fixed task logs API to return a
last_entry_ideven ifafter_entry_idis the last entry.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.1
v0.6.1-rc.1
v0.6.1 - 2025-12-19
Fixed
- Fixed incorrect pgbackrest command format for database restore endpoint.
- Fixed task logs API to return a
last_entry_ideven ifafter_entry_idis the last entry.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.1-rc.1
v0.6.0
v0.6.0 - 2025-12-17
Added
- "remove-host" now has a "force" attribute that allows users to recover from the loss of one or more hosts.
- Added support for new extensions in standard pgEdge Enterprise Postgres image, including pgedge_vectorizer, pg_tokenizer, vchord_bm25, pg_vectorize, pgmq, pg_cron, and pg_stat_monitor.
Fixed
- Added validation to the "get-join-options" endpoint to ensure incoming host IDs are unique within the cluster.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.0
v0.6.0-rc.1
v0.6.0 - 2025-12-17
Added
- "remove-host" now has a "force" attribute that allows users to recover from the loss of one or more hosts.
- Added support for new extensions in standard pgEdge Enterprise Postgres image, including pgedge_vectorizer, pg_tokenizer, vchord_bm25, pg_vectorize, pgmq, pg_cron, and pg_stat_monitor.
Fixed
- Added validation to the "get-join-options" endpoint to ensure incoming host IDs are unique within the cluster.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.6.0-rc.1