diff --git a/deployments.md b/deployments.md index bc79b337..12d7131b 100644 --- a/deployments.md +++ b/deployments.md @@ -36,3 +36,4 @@ Test: Use this file to deploy changes to branches that do not require a change t 01/26/2025 - Retrying deployment 02/27/2026 - Publish update. 04/01/2026 - Deployment issue with pgEdge labs build. +04/14/2026 - Cloud updates. diff --git a/docs/cloud/cluster/manage_cluster.md b/docs/cloud/cluster/manage_cluster.md index fe05ed0b..2850418c 100644 --- a/docs/cloud/cluster/manage_cluster.md +++ b/docs/cloud/cluster/manage_cluster.md @@ -1,32 +1,31 @@ # Managing a Cluster -You can use the pgEdge Distributed Postgres (Cloud Edition) console to -review cluster information; highlight the name of a cluster in the -`Clusters` menu to access the console for that cluster. +Use the pgEdge Cloud console to review cluster information. Highlight the +name of a cluster in the `Clusters` menu to access the console for that +cluster. ![The cluster console header](../images/cluster_console_header.png) -If you've recently created or modified the cluster, the header displays a -banner showing the cluster state. The console header also displays +If you recently created or modified the cluster, the header displays a +banner showing the cluster state. The console header also displays information about the selected cluster: -* The cluster name. -* The length of time since the last cluster update. -* The preferred connection type (`Public` or `Private`); this indicates - if the cluster nodes are in a public subnet or not. -* The `Cluster ID` associated with the cluster. -* The name of the cloud provider account on which the cluster resides; - click the name of the account to navigate to the details page for the - account. -* User-defined [resource tags](resource_tag.md) associated with the cluster. +- The cluster name. +- The length of time since the last cluster update. +- The cluster connection type (`Public` or `Private`), which indicates + whether the cluster nodes are in a public subnet. +- The `Cluster ID` associated with the cluster. +- The name of the cloud provider account on which the cluster resides; + click the account name to navigate to the details page for the account. +- User-defined [resource tags](resource_tag.md) associated with the cluster. -Also in the cluster header, a set of informational panes tell you the -state of the cluster at a glance: +The cluster header also displays a set of informational panes that show +the state of the cluster at a glance: -* the total node count -* the number of healthy nodes -* the number of unhealthy nodes -* the number of unresponsive nodes +- the total node count. +- the number of healthy nodes. +- the number of unhealthy nodes. +- the number of unresponsive nodes. ## The Cluster Information Tabs @@ -36,64 +35,69 @@ state of the cluster at a glance: The tabbed browser on the `Cluster` tab provides quick access to information about the state of your cluster: -* Select the [`Overview`](#the-overview-tab) tab to view information - about the cluster, and the databases currently deployed on the cluster. - Detailed information about the cluster's nodes is displayed below. Click - on an icon in the `Database` pane to navigate to detailed information - about the selected database. -* Select the [`Metrics`](#reviewing-cluster-metrics) tab to view details - about cluster resource use. -* Select the `Logs` tab to review cluster log files. +- Select the [`Overview`](#the-overview-tab) tab to view information + about the cluster and the databases currently deployed on the cluster. + Detailed information about the cluster nodes displays below. Click an + icon in the `Database` pane to navigate to detailed information about + the selected database. +- Select the [`Metrics`](#reviewing-cluster-metrics) tab to view + details about cluster resource use. +- Select the [`Logs`](#reviewing-cluster-log-files) tab to review + cluster log files. ### The Overview Tab -Select the `Overview` tab to review information about the cluster. Panes -on the `Overview` tab contain links to cluster artifacts: +Select the `Overview` tab to review information about the cluster. +Panes on the `Overview` tab contain links to cluster artifacts: - * Select a database name in the `Databases` pane to navigate to the - information page for that database. - * Select a backup store name in the `Backup Store` pane to navigate to - the information page for the store. +- Select a database name in the `Databases` pane to navigate to the + information page for that database. +- Select a backup store name in the `Backup Store` pane to navigate to + the information page for the store. ![The cluster overview](../images/cluster_overview_details.png) -The `Nodes` pane contains general node information. Use the tabbed browser -to select a node to review information that node: +The `Nodes` pane contains general node information. Use the tabbed +browser to select a node and review information about that node: -* The `Availability Zone` lists the provider region in which the node +- The `Availability Zone` lists the provider region in which the node is deployed. -* Use the `External IP Address` when making ssh connections to the node. -* Use the `Internal IP Address` when configuring VPN connections to - the node. -* The `Instance Type` and `Volume Size` fields provide node size information. -* The `Instance ID` identifies the node and associated resources in the +- Use the `External IP Address` when making SSH connections to the node. +- Use the `Internal IP Address` when configuring VPN connections to the + node. +- The `Instance Type` and `Volume Size` fields provide node size information. +- The `Instance ID` identifies the node and associated resources in the cloud provider console. -* The `UUID` is a unique identifier for cluster resources outside of +- The `UUID` is a unique identifier for cluster resources outside of the cloud provider console; use the UUID when making API calls. -**Cluster Nodes Map** - When the `Overview` tab is selected, a map displays the locations of -the cluster's nodes. Hover over a mapped node to display the name and +the cluster nodes. Hover over a mapped node to display the name and city in which the node resides. ![The cluster console Map tab](../images/cluster_map_tab.png) -**Review Firewall Configuration** - -The `Overview` tab displays the currently defined [Firewall Rules] -(firewall.md). +The `Overview` tab also displays the currently defined +[Firewall Rules](firewall.md). ![The cluster's firewall rules](../images/overview_firewall_rule.png) -Select the `Manage Firewall Rules` button to open a dialog that allows you to -[modify or create rules](firewall.md) for the cluster. +Select the `Manage Firewall Rules` button to open a dialog that allows +you to [modify or create rules](firewall.md) for the cluster. + +The `Overview` tab also displays the current [VPC Associations](vpc_assoc.md): + +![The cluster's VPC associations](../images/overview_vpc_assoc.png) -**VPC Associations** +Select the `+ Add VPC Association` button to add a new association. -The Overview tab also displays the current [VPC Associations](vpc_assoc.md): +The `Overview` tab also displays a list of the current public ingresses: -![The cluster's VPC associations ](../images/overview_vpc_assoc.png) +![Accessing a public ingress](../images/ingress_list.png) + +Select the `+ Add Ingress` button to +[create a public ingress](../services.md#creating-a-public-ingress) +for a cluster without a public-facing IP address. ### Reviewing Cluster Metrics @@ -103,21 +107,20 @@ the cluster. ![The cluster metrics](../images/cluster_metrics_details.png) -Select from tabs across the top to review a graph containing: +Select from the tabs across the top to review graphs containing: -* Metrics for `All nodes` in your cluster. -* Metrics for a specific node in your cluster. +- metrics for all nodes in your cluster. +- metrics for a specific node in your cluster. -Use the drop-down at the top of the `Metrics` pane allows you to -specify the length of time displayed by each graph. +The drop-down at the top of the `Metrics` pane allows you to specify +the length of time displayed by each graph. -Select a point on a graph to display information about the graphed event -that occurred on your cluster: +Select a point on a graph to display information about the graphed +event that occurred on your cluster: -![A point-in-time selected in the cluster metrics graph] -(../images/cluster_metrics_PIT.png) +![A point-in-time in the cluster metrics graph](../images/cluster_metrics_PIT.png) -The graphs display metrics about: +The following table describes the available graphs: | Graph Name | Description | |------------|-------------| @@ -128,49 +131,51 @@ The graphs display metrics about: | Network Receive | The amount of data received by the instance | | Network Send | The amount of data transmitted from the instance | + +### Reviewing Cluster Log Files + Select the `Logs` tab to review log files for the cluster. ![The cluster log files](../images/cluster_log_details.png) -Use the tabs across the top to select the node(s) for which you'd like to -review the log files. Then: +Use the tabs across the top to select the nodes for which you want to +review log files. Then select one of the following log types: -* select `System logs` to review the system commands performed to - manage your cluster. -* select `Docker logs` to review the Docker-specific commands executed - to manage the container in which your cluster is running. -* select `SSH logs` to review details about ssh connections made to - your cluster. +- `System logs` to review the system commands performed to manage your + cluster. +- `Docker logs` to review the Docker-specific commands executed to + manage the container in which your cluster is running. +- `SSH logs` to review details about SSH connections made to your + cluster. -Use the `Auto refresh`/`Manual refresh` drop-down to specify if the log -entries should update automatically (`Auto refresh`), or to pause updating -(`Manual refresh`) for easier viewing. To manually refresh the log +Use the `Auto refresh`/`Manual refresh` drop-down to specify whether +log entries update automatically (`Auto refresh`) or pause updating +(`Manual refresh`) for easier viewing. To manually refresh the log table's content, select the refresh button to the right of the drop-down. -Use controls in the table header to sort or search the selected log file: +Use the controls in the table header to sort or search the selected log file: -* Select a column heading to sort alphabetically by the column value; - click a second time to reverse the sort order. -* Click the filter icon to the right of the `Level` heading to select a - status from the drop-down; all rows assigned the selected status will be - filtered to the top of the result set. +- Select a column heading to sort alphabetically by the column value; + select a second time to reverse the sort order. +- Click the filter icon to the right of the `Level` heading to select a + status from the drop-down; all rows assigned the selected status will + be filtered to the top of the result set. ![Filtering the cluster log](../images/cluster_log_filter.png) -* Use the search box to the right of the `Message` label to enter a +- Use the search box to the right of the `Message` label to enter a search string; the search term will be highlighted in the log file - entries. Use the navigation arrows to move to the next/previous + entries. Use the navigation arrows to move to the next or previous occurrence of the search term. ![Searching the cluster log](../images/cluster_log_message.png) -## pgEdge Distributed PostgreSQL: Cloud Edition Resources +## Cluster Administration Links -Use the links at the end of the navigation pane to access pgEdge -Distributed PostgreSQL: Cloud Edition resources: +Use the links at the end of the navigation pane to access pgEdge Cloud resources: -* For an invitation to the pgEdge Discord server, select the - `Community` link. -* To review the documentation, select the `Docs` link. -* To manage account details, select the `Settings` link. -* Select the `Team Management` link to manage account membership. +- To manage account details, select the [`Settings`](../settings.md) link. +- Select the [`Team Management`](../teams.md) link to manage account membership. +- For an invitation to the pgEdge Discord server, select the `Community` link. +- To review the documentation, select the + [`Docs`](https://docs.pgedge.com/) link. diff --git a/docs/cloud/database/create_db.md b/docs/cloud/database/create_db.md index 947616bd..5001a4fb 100644 --- a/docs/cloud/database/create_db.md +++ b/docs/cloud/database/create_db.md @@ -48,11 +48,39 @@ database is provisioned: ![Selecting database options](../images/create_db_options.png) -* Use the toggle switch next to `Install Northwind Database` to install the - Northwind sample database and schema objects. * Use the toggle switch next to `Enable AWS CloudWatch Metrics` to share metrics with [AWS CloudWatch](https://aws.amazon.com/cloudwatch/). +Use the `Services` section to add an [MCP server](https://docs.pgedge.com/pgedge-postgres-mcp-server/v1-0-0/) to your installation. Currently, MCP server functionality is supported only on private clusters with a defined ingress. + +![Selecting database services](../images/create_db_services.png) + +Select the button labeled `+ MCP Server` to add MCP server details for your database; for more information about adding or managing a service in the cloud, see [Adding pgEdge AI Tookit Functionality(../services.md)]. + +Select the Add MCP Server button to access the Add MCP Server popup and define an MCP server, and optionally enable an associated LLM. + +![Adding an MCP Server](../images/add_mcp_server.png) + +Use fields on the `Add MCP Server` popup to describe the server and optionally, the LLM: + +* Click the `Select Host` field to select the node that the MCP server will be provisioned on; you can deploy the MCP server on each node of your cluster, but each MCP server deployment must be individually defined. + +* Use the `API Token` field to provide the string used to authenticate with your MCP server; this is a user-created value. + +* Slide the `LLM Enabled?` toggle switch to enable the LLM detail fields. + +* Use the LLM Provider drop-down to select your AI provider; currently, Cloud supports the following AI providers: + + * Anthropic AI (Claude) + * OpenAI (ChatGPT) + * Ollama + +* Enter the model name of the LLM provider; this field is not validated, but must match the name of an available model. For example, the following models are supported: + + * claude-sonnet-4-6 + * gpt-4o + * llama3.1 + After making your selections, click `Create Database` to initialize a Postgres database and start replicating data between the nodes in the cluster. Your new database is added to the list of databases in the left pane diff --git a/docs/cloud/database/manage_db.md b/docs/cloud/database/manage_db.md index 3d7b0a38..6f584adf 100644 --- a/docs/cloud/database/manage_db.md +++ b/docs/cloud/database/manage_db.md @@ -26,6 +26,16 @@ The database header tells you: * The Postgres database version. * The version of the Spock extension in use by the database. +### Changing the Display Name of a Database + +To change the name of a database that is displayed in the navigation pane, highlight the database name and select `Edit Display Name` from the `Actions` menu. + +![pgEdge Database Console](../images/actions_database.png) + +When the `Change Display Name` popup opens, enter the new database name in the `Display Name` field and select `Apply`. + +![pgEdge Database Console](../images/edit_display_name.png) + ## The Get Started Pane @@ -79,7 +89,9 @@ access the password associated with one of the identities (`app`, ![Password management options](../images/password.png) -Then, use options in the `Password` field to manage the password +### Password Management + +You can use options in the `Password` field to manage the password assigned to the `app` user: * Select `show` to display the password in unobscured form; select `hide` diff --git a/docs/cloud/database_admin/extensions.md b/docs/cloud/database_admin/extensions.md deleted file mode 100644 index 8c0eacb6..00000000 --- a/docs/cloud/database_admin/extensions.md +++ /dev/null @@ -1,30 +0,0 @@ -# Extending PostgreSQL Functionality - -Cloud automatically installs the following Postgres extensions in your Postgres database: - -| Extension | Description -|------------|-------------- -|[pgvector](https://github.com/pgvector/pgvector)| Provides vector similarity search capabilities. -|[PostGIS](https://postgis.net/documentation/getting_started/)| Provides support for storing, indexing, and querying geospatial and geometric data. - -Before using an extension, you must [create the extension](https://www.postgresql.org/docs/current/extend-extensions.html) in each database in which it will be used. Invoke the following command on the [psql command line](../connecting/psql.md): - -`CREATE EXTENSION extension_name;` - -For example, to create the pgvector extension, use the command: - -`CREATE EXTENSION vector;` - -For detailed information about using each extension, visit the project's site links provided in the table above. - -To review a list of the installed extensions, you can use the psql command line client to display the `shared_preload_libraries` parameter setting. To review a list of installed extensions, use the `SHOW shared_preload_libraries;` command: - -```sql -accts=# SHOW shared_preload_libraries; -shared_preload_libraries -------------------------------------------------------------------------------- -pg_stat_statements, pg_readonly, pg_failover_slots, spock, vector, postgis-3 -(1 row) -``` - -Installed extensions are listed in the query result set. \ No newline at end of file diff --git a/docs/cloud/database_admin/supported_extensions.md b/docs/cloud/database_admin/supported_extensions.md new file mode 100644 index 00000000..39041868 --- /dev/null +++ b/docs/cloud/database_admin/supported_extensions.md @@ -0,0 +1,133 @@ +# Using Extensions with Cloud + +pgEdge Cloud databases include pre-installed PostgreSQL extensions. +Before using an extension, you must +[create the extension](https://www.postgresql.org/docs/current/extend-extensions.html) +in each database where the extension will be used. To create an +extension, invoke the following command on the +[psql command line](../connecting/psql.md): + +```sql +CREATE EXTENSION extension_name; +``` + +For example, to create the pgvector extension, use the following command: + +```sql +CREATE EXTENSION vector; +``` + +To review a list of installed extensions, use the psql command line +client to display the `shared_preload_libraries` parameter with the +`SHOW` command: + +```sql +accts=# SHOW shared_preload_libraries; +shared_preload_libraries +------------------------------------------------------------------------------- +pg_stat_statements, pg_readonly, pg_failover_slots, spock, vector, postgis-3 +(1 row) +``` + +For detailed information about using each extension, visit the project +site links provided in the table. + + +## pgEdge and Community Extensions + +The following table describes the pgEdge and community extensions +available in pgEdge Cloud. Extension names match the name used in +`CREATE EXTENSION` statements: + +| Extension | Version | Description | +|-----------|---------|-------------| +| [lolor](https://github.com/pgEdge/lolor) | 1.2.2 | Large object logical replication support | +| [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html) | 1.12 | Planning and execution statistics for SQL statements | +| [pg_tokenizer](https://github.com/tensorchord/pg_tokenizer.rs) | 0.1.1 | Text tokenization for search and AI workloads | +| [pgmq](https://github.com/pgmq/pgmq) | 1.8.0 | Lightweight message queue built on PostgreSQL | +| [postgis](https://postgis.net/) | 3.5.5 | Geospatial data types, functions, and indexing | +| [address_standardizer](https://postgis.net/docs/manual-3.5/Address_Standardizer.html) | 3.5.5 | Parses addresses into constituent elements (for PostGIS) | +| [address_standardizer_data_us](https://postgis.net/docs/manual-3.5/Address_Standardizer.html) | 3.5.5 | US dataset for the address standardizer (for PostGIS) | +| [postgis_raster](https://postgis.net/docs/manual-3.5/RT_reference.html) | 3.5.5 | Raster data types and functions for PostGIS | +| [postgis_sfcgal](https://postgis.net/docs/manual-3.5/reference.html#reference_sfcgal) | 3.5.5 | SFCGAL-based 3D geometry functions for PostGIS | +| [postgis_tiger_geocoder](https://postgis.net/docs/manual-3.5/Extras.html#Tiger_Geocoder) | 3.5.5 | US TIGER data geocoder and reverse geocoder | +| [postgis_topology](https://postgis.net/docs/manual-3.5/Topology.html) | 3.5.5 | Topological data types and functions for PostGIS | +| [snowflake](https://github.com/pgEdge/snowflake) | 2.4 | Distributed unique ID generation | +| [spock](https://github.com/pgEdge/spock) | 5.0.6 | Multi-master logical replication | +| [system_stats](https://github.com/EnterpriseDB/system_stats) | 3.0 | System-level performance statistics | +| [vchord_bm25](https://github.com/tensorchord/VectorChord-bm25) | 0.2.2 | BM25 ranking for full-text vector search | +| [vector](https://github.com/pgvector/pgvector) | 0.8.1 | Vector similarity search for AI embeddings | + + +## PostgreSQL Contrib Modules + +pgEdge Cloud databases also include the standard PostgreSQL contrib modules. +The following table describes the available contrib modules and includes +links for more information: + +| Extension | Version | Description | +|-----------|---------|-------------| +| [amcheck](https://www.postgresql.org/docs/current/amcheck.html) | 1.5 | Verify relation integrity | +| [autoinc](https://www.postgresql.org/docs/current/contrib-spi.html#CONTRIB-SPI-AUTOINC) | 1.0 | Autoincrementing fields | +| [bloom](https://www.postgresql.org/docs/current/bloom.html) | 1.0 | Bloom filter index access method | +| [btree_gin](https://www.postgresql.org/docs/current/btree-gin.html) | 1.3 | GIN index support for common data types | +| [btree_gist](https://www.postgresql.org/docs/current/btree-gist.html) | 1.8 | GiST index support for common data types | +| [citext](https://www.postgresql.org/docs/current/citext.html) | 1.8 | Case-insensitive character string data type | +| [cube](https://www.postgresql.org/docs/current/cube.html) | 1.5 | Multidimensional cube data type | +| [dblink](https://www.postgresql.org/docs/current/dblink.html) | 1.2 | Connect to other PostgreSQL databases | +| [dict_int](https://www.postgresql.org/docs/current/dict-int.html) | 1.0 | Text search dictionary for integers | +| [dict_xsyn](https://www.postgresql.org/docs/current/dict-xsyn.html) | 1.0 | Text search dictionary for extended synonyms | +| [earthdistance](https://www.postgresql.org/docs/current/earthdistance.html) | 1.2 | Great-circle distance calculations | +| [file_fdw](https://www.postgresql.org/docs/current/file-fdw.html) | 1.0 | Foreign data wrapper for flat files | +| [fuzzystrmatch](https://www.postgresql.org/docs/current/fuzzystrmatch.html) | 1.2 | String similarity and distance functions | +| [hstore](https://www.postgresql.org/docs/current/hstore.html) | 1.8 | Key-value pair data type | +| [hstore_plperl](https://www.postgresql.org/docs/current/hstore.html#HSTORE-TRANSFORMS) | 1.0 | Transform between hstore and PL/Perl | +| [hstore_plperlu](https://www.postgresql.org/docs/current/hstore.html#HSTORE-TRANSFORMS) | 1.0 | Transform between hstore and PL/PerlU | +| [insert_username](https://www.postgresql.org/docs/current/contrib-spi.html#CONTRIB-SPI-INSERT-USERNAME) | 1.0 | Track who changed a table | +| [intagg](https://www.postgresql.org/docs/current/intagg.html) | 1.1 | Integer aggregator and enumerator | +| [intarray](https://www.postgresql.org/docs/current/intarray.html) | 1.5 | Functions and operators for integer arrays | +| [isn](https://www.postgresql.org/docs/current/isn.html) | 1.3 | International product numbering data types | +| [jsonb_plperl](https://www.postgresql.org/docs/current/datatype-json.html#DATATYPE-JSON-TRANSFORMS) | 1.0 | Transform between jsonb and PL/Perl | +| [jsonb_plperlu](https://www.postgresql.org/docs/current/datatype-json.html#DATATYPE-JSON-TRANSFORMS) | 1.0 | Transform between jsonb and PL/PerlU | +| [lo](https://www.postgresql.org/docs/current/lo.html) | 1.2 | Large object maintenance | +| [ltree](https://www.postgresql.org/docs/current/ltree.html) | 1.3 | Hierarchical tree-like data type | +| [moddatetime](https://www.postgresql.org/docs/current/contrib-spi.html#CONTRIB-SPI-MODDATETIME) | 1.0 | Track last modification time | +| [pageinspect](https://www.postgresql.org/docs/current/pageinspect.html) | 1.13 | Inspect database pages at a low level | +| [pg_buffercache](https://www.postgresql.org/docs/current/pgbuffercache.html) | 1.6 | Examine the shared buffer cache | +| [pg_freespacemap](https://www.postgresql.org/docs/current/pgfreespacemap.html) | 1.3 | Examine the free space map | +| [pg_logicalinspect](https://www.postgresql.org/docs/current/pglogicalinspect.html) | 1.0 | Inspect logical decoding components | +| [pg_prewarm](https://www.postgresql.org/docs/current/pgprewarm.html) | 1.2 | Prewarm relation data | +| [pg_surgery](https://www.postgresql.org/docs/current/pgsurgery.html) | 1.0 | Perform surgery on damaged relations | +| [pg_trgm](https://www.postgresql.org/docs/current/pgtrgm.html) | 1.6 | Trigram-based text similarity and search | +| [pg_visibility](https://www.postgresql.org/docs/current/pgvisibility.html) | 1.2 | Examine visibility map and page info | +| [pg_walinspect](https://www.postgresql.org/docs/current/pgwalinspect.html) | 1.1 | Inspect write-ahead log contents | +| [pgcrypto](https://www.postgresql.org/docs/current/pgcrypto.html) | 1.4 | Cryptographic functions | +| [pgrowlocks](https://www.postgresql.org/docs/current/pgrowlocks.html) | 1.2 | Row-level locking information | +| [pgstattuple](https://www.postgresql.org/docs/current/pgstattuple.html) | 1.5 | Tuple-level statistics | +| [plpgsql](https://www.postgresql.org/docs/current/plpgsql.html) | 1.0 | PL/pgSQL procedural language | +| [postgres_fdw](https://www.postgresql.org/docs/current/postgres-fdw.html) | 1.2 | Foreign data wrapper for remote PostgreSQL | +| [refint](https://www.postgresql.org/docs/current/contrib-spi.html#CONTRIB-SPI-REFINT) | 1.0 | Referential integrity functions | +| [seg](https://www.postgresql.org/docs/current/seg.html) | 1.4 | Line segment and floating-point interval data type | +| [sslinfo](https://www.postgresql.org/docs/current/sslinfo.html) | 1.2 | SSL certificate information | +| [tablefunc](https://www.postgresql.org/docs/current/tablefunc.html) | 1.0 | Table-manipulating functions including crosstab | +| [tcn](https://www.postgresql.org/docs/current/tcn.html) | 1.0 | Triggered change notifications | +| [tsm_system_rows](https://www.postgresql.org/docs/current/tsm-system-rows.html) | 1.0 | TABLESAMPLE by number of rows | +| [tsm_system_time](https://www.postgresql.org/docs/current/tsm-system-time.html) | 1.0 | TABLESAMPLE by time in milliseconds | +| [unaccent](https://www.postgresql.org/docs/current/unaccent.html) | 1.1 | Text search dictionary that removes accents | +| [uuid-ossp](https://www.postgresql.org/docs/current/uuid-ossp.html) | 1.1 | Generate universally unique identifiers | +| [xml2](https://www.postgresql.org/docs/current/xml2.html) | 1.2 | XPath querying and XSLT | + +## Coming Soon + +The following extensions are included in the pgEdge Cloud container image +but require `shared_preload_libraries` configuration changes that are not +yet available through the pgEdge Cloud interface. These extensions will be +supported in a future update. + +| Extension | Version | Description | +|-----------|---------|-------------| +| [pg_cron](https://github.com/citusdata/pg_cron) | 1.6 | Job scheduler for running periodic SQL tasks | +| [pg_stat_monitor](https://github.com/percona/pg_stat_monitor) | 2.3 | Query performance monitoring and statistics | +| [pg_vectorize](https://github.com/tembo-io/pg_vectorize) | 0.23.0 | SQL-level vector search utilities | +| [pgaudit](https://github.com/pgaudit/pgaudit) | 18.0 | Detailed session and object audit logging | +| [pgedge_vectorizer](https://github.com/pgEdge/pgedge-vectorizer) | 1.0 | Automated text chunking and embedding generation | diff --git a/docs/cloud/images/actions_cluster.png b/docs/cloud/images/actions_cluster.png index 70d64ccf..72050089 100644 Binary files a/docs/cloud/images/actions_cluster.png and b/docs/cloud/images/actions_cluster.png differ diff --git a/docs/cloud/images/actions_database.png b/docs/cloud/images/actions_database.png index 948f8bee..f06788ea 100644 Binary files a/docs/cloud/images/actions_database.png and b/docs/cloud/images/actions_database.png differ diff --git a/docs/cloud/images/add_db_to_nodes.png b/docs/cloud/images/add_db_to_nodes.png index 5b7b8575..d66aa4e0 100644 Binary files a/docs/cloud/images/add_db_to_nodes.png and b/docs/cloud/images/add_db_to_nodes.png differ diff --git a/docs/cloud/images/add_ingress.png b/docs/cloud/images/add_ingress.png new file mode 100644 index 00000000..491bf7a0 Binary files /dev/null and b/docs/cloud/images/add_ingress.png differ diff --git a/docs/cloud/images/add_mcp_server.png b/docs/cloud/images/add_mcp_server.png new file mode 100644 index 00000000..798294f4 Binary files /dev/null and b/docs/cloud/images/add_mcp_server.png differ diff --git a/docs/cloud/images/add_nodes.png b/docs/cloud/images/add_nodes.png index 95b99c9a..6ac548be 100644 Binary files a/docs/cloud/images/add_nodes.png and b/docs/cloud/images/add_nodes.png differ diff --git a/docs/cloud/images/available_ingress.png b/docs/cloud/images/available_ingress.png new file mode 100644 index 00000000..9673c062 Binary files /dev/null and b/docs/cloud/images/available_ingress.png differ diff --git a/docs/cloud/images/claude_desktop.png b/docs/cloud/images/claude_desktop.png new file mode 100644 index 00000000..cceb5ca1 Binary files /dev/null and b/docs/cloud/images/claude_desktop.png differ diff --git a/docs/cloud/images/claude_mcp_config.png b/docs/cloud/images/claude_mcp_config.png new file mode 100644 index 00000000..64ad213e Binary files /dev/null and b/docs/cloud/images/claude_mcp_config.png differ diff --git a/docs/cloud/images/claude_select_developer.png b/docs/cloud/images/claude_select_developer.png new file mode 100644 index 00000000..b9a8742e Binary files /dev/null and b/docs/cloud/images/claude_select_developer.png differ diff --git a/docs/cloud/images/confirm_delete_cluster.png b/docs/cloud/images/confirm_delete_cluster.png index d4b62698..0a55deef 100644 Binary files a/docs/cloud/images/confirm_delete_cluster.png and b/docs/cloud/images/confirm_delete_cluster.png differ diff --git a/docs/cloud/images/confirm_delete_ingress.png b/docs/cloud/images/confirm_delete_ingress.png new file mode 100644 index 00000000..aab03673 Binary files /dev/null and b/docs/cloud/images/confirm_delete_ingress.png differ diff --git a/docs/cloud/images/connect_to_ingress.png b/docs/cloud/images/connect_to_ingress.png new file mode 100644 index 00000000..9066021e Binary files /dev/null and b/docs/cloud/images/connect_to_ingress.png differ diff --git a/docs/cloud/images/connect_to_mcp.png b/docs/cloud/images/connect_to_mcp.png new file mode 100644 index 00000000..aaecb0ff Binary files /dev/null and b/docs/cloud/images/connect_to_mcp.png differ diff --git a/docs/cloud/images/create_db_options.png b/docs/cloud/images/create_db_options.png index 17162e19..a718470d 100644 Binary files a/docs/cloud/images/create_db_options.png and b/docs/cloud/images/create_db_options.png differ diff --git a/docs/cloud/images/create_db_services.png b/docs/cloud/images/create_db_services.png new file mode 100644 index 00000000..b7670671 Binary files /dev/null and b/docs/cloud/images/create_db_services.png differ diff --git a/docs/cloud/images/create_ingress.png b/docs/cloud/images/create_ingress.png new file mode 100644 index 00000000..abfe3c54 Binary files /dev/null and b/docs/cloud/images/create_ingress.png differ diff --git a/docs/cloud/images/delete_cluster.png b/docs/cloud/images/delete_cluster.png index 066db3c8..c8fcd9e8 100644 Binary files a/docs/cloud/images/delete_cluster.png and b/docs/cloud/images/delete_cluster.png differ diff --git a/docs/cloud/images/delete_ingress.png b/docs/cloud/images/delete_ingress.png new file mode 100644 index 00000000..93361f92 Binary files /dev/null and b/docs/cloud/images/delete_ingress.png differ diff --git a/docs/cloud/images/ingress_list.png b/docs/cloud/images/ingress_list.png new file mode 100644 index 00000000..c96fa4e4 Binary files /dev/null and b/docs/cloud/images/ingress_list.png differ diff --git a/docs/cloud/images/mcp_llm_enabled.png b/docs/cloud/images/mcp_llm_enabled.png new file mode 100644 index 00000000..b2cbae1d Binary files /dev/null and b/docs/cloud/images/mcp_llm_enabled.png differ diff --git a/docs/cloud/images/network_ingresses.png b/docs/cloud/images/network_ingresses.png new file mode 100644 index 00000000..f7a35241 Binary files /dev/null and b/docs/cloud/images/network_ingresses.png differ diff --git a/docs/cloud/images/no_ingresses.png b/docs/cloud/images/no_ingresses.png new file mode 100644 index 00000000..2041a0e7 Binary files /dev/null and b/docs/cloud/images/no_ingresses.png differ diff --git a/docs/cloud/images/remove_database.png b/docs/cloud/images/remove_database.png index eaead276..d665539f 100644 Binary files a/docs/cloud/images/remove_database.png and b/docs/cloud/images/remove_database.png differ diff --git a/docs/cloud/images/remove_nodes.png b/docs/cloud/images/remove_nodes.png index c168354b..d0ecacad 100644 Binary files a/docs/cloud/images/remove_nodes.png and b/docs/cloud/images/remove_nodes.png differ diff --git a/docs/cloud/images/services.png b/docs/cloud/images/services.png new file mode 100644 index 00000000..4416958d Binary files /dev/null and b/docs/cloud/images/services.png differ diff --git a/docs/cloud/images/services_mcp_deployed.png b/docs/cloud/images/services_mcp_deployed.png new file mode 100644 index 00000000..9491db8f Binary files /dev/null and b/docs/cloud/images/services_mcp_deployed.png differ diff --git a/docs/cloud/images/task_filter.png b/docs/cloud/images/task_filter.png index d0401afa..49321420 100644 Binary files a/docs/cloud/images/task_filter.png and b/docs/cloud/images/task_filter.png differ diff --git a/docs/cloud/images/task_table_detail.png b/docs/cloud/images/task_table_detail.png new file mode 100644 index 00000000..8301b5ae Binary files /dev/null and b/docs/cloud/images/task_table_detail.png differ diff --git a/docs/cloud/images/tasks.png b/docs/cloud/images/tasks.png index 67ec3bc7..bbabce7d 100644 Binary files a/docs/cloud/images/tasks.png and b/docs/cloud/images/tasks.png differ diff --git a/docs/cloud/mod_cluster/actions.md b/docs/cloud/mod_cluster/actions.md index 2d773af3..06ac96b4 100644 --- a/docs/cloud/mod_cluster/actions.md +++ b/docs/cloud/mod_cluster/actions.md @@ -13,6 +13,7 @@ Select from the options listed to: * Update [Backup Stores](../cluster/backup_store.md). * Update [Firewall Rules](../cluster/firewall.md). * Manage [VPC Associations](../cluster/vpc_assoc.md). +* [Add an Ingress](../services.md#creating-a-public-ingress) to a private cluster. * [Manage Tags](../cluster/resource_tag.md). * [Delete a cluster](drop.md#deleting-a-cluster). @@ -26,5 +27,5 @@ Select from the options listed to: * [Restore the Database](../backup/restore.md) from backup. * [Add the database](add.md#adding-a-database-to-a-cluster-node) to another node. * [Remove the database](drop.md#removing-a-database-from-a-node) from a node. -* [Edit the Display Name](modify.md#changing-the-display-name-of-a-database) of the database. +* [Edit the Display Name](../database/manage_db.md#changing-the-display-name-of-a-database) of the database. * [Delete the database](drop.md#deleting-a-database). diff --git a/docs/cloud/mod_cluster/add.md b/docs/cloud/mod_cluster/add.md index a6c21e30..f6ddaa65 100644 --- a/docs/cloud/mod_cluster/add.md +++ b/docs/cloud/mod_cluster/add.md @@ -12,7 +12,7 @@ navigation panel, and then open the `Actions` menu. To add a node to an existing cluster, select the cluster name in the navigation panel, open the `Actions` menu, and select `Add Nodes`. -![Cluster Overview](../images/add_nodes.png) +![Adding a node to a cluster](../images/add_nodes.png) When the `Add Node` dialog opens, provide details the new node(s): @@ -22,15 +22,22 @@ When the `Add Node` dialog opens, provide details the new node(s): * Accept the `Default` configuration to use server-assigned network addresses or select `Manual` to assign specific addresses for your new node(s). -* Modify the deployment details for the new node as needed. The values - shown in the `Network Settings` section and instance details reflect the - values used for the other nodes in the cluster. - -Select the `Add Nodes` button to deploy your new nodes and add them to -your cluster. The cluster will be placed in modification status until the -addition is complete; when the update finished, you will be able to access -the new node using the SSH configuration defined during the initial cluster -creation. +* Network addresses for the new node(s) are assigned for consistency with the + rest of your cluster, and are not modifiable. +* The `Instance Type` field displays the value selected for the other nodes + in your cluster; use the selector to choose an alternative configuration. + If you are adding more than one node in a single update, the same + configuration will be applied to both nodes. +* The `Volume Size` field displays the data volume size of the other nodes in + your cluster; use the selector to choose an alternative size. If you are + adding more than one node in a single update, the same size will be applied + to both nodes. + +After specifying your preferences, select the `Add Nodes` button to deploy +your new nodes and add them to your cluster. The cluster will be placed in +modification status until the addition is complete; when the update finished, +you will be able to access the new node using the SSH configuration defined +during the initial cluster creation. !!! tip @@ -41,81 +48,29 @@ creation. To add a database to a cluster node, select the database name in the navigation panel, open the `Actions` menu, and select `Add to Nodes`. Note -that new cluster node must be -[added to the cluster](#adding-a-node-to-a-cluster) before you can add a -database to the node. The node to which you are adding the database must -be a member of the cluster on which the database was created. +that node must be +[an operational member of the cluster](#adding-a-node-to-a-cluster) +before you can add a database to the node. The node to which you are adding +the database must be a member of the cluster on which the database was +created. -When you add a database to a new node, the database is empty. You will -need to restore existing schemas and data to the database, and if AutoDDL -is not enabled, start replication on the node. Once replication has been -re-established, new transactions can be written to the database. To review -recommended workflows to bring the node up to date with a full dataset -visit [here](#restoring-data-to-a-database-on-a-new-cluster-node). +When you add a database to a node, Cloud uses +[Spock's Zodan functionality](https://docs.pgedge.com/spock-v5/v5-0-6/modify/zodan/) +to copy the existing data to the new node. Automatic DDL replication is +enabled as the node joins the cluster. -![Cluster Overview](../images/actions_database.png) +![Adding a database](../images/actions_database.png) -The `Add Database... to Cluster Nodes` dialog opens. +The `Add Database... to Cluster Nodes` dialog opens as shown below: ![Cluster Overview](../images/add_db_to_nodes.png) -On the map, nodes labeled with a node name (like `n1`, `n2`, or `n3`) -and connected by a dotted line are currently replicating the selected -database between themselves. Nodes that are not attached to other nodes by -a dotted line, or are unlabeled are not part of the cluster for the -selected database. To select a node(s) for updating, click in the `Select -regions` field to access a list of available nodes on which the database -does not currently reside, or click a node(s) on the map. +On the map, nodes connected by a dotted line are currently replicating +the selected database amongst themselves. Nodes that are not attached to +other nodes by a dotted line are currently not hosting the selected database. +To select a node(s) for updating, click in the `Regions` field to access a +list of available nodes on which the database does not currently reside, or +click a node(s) on the map. After selecting the node(s), click the `Add Nodes` button to start the modification process. - -When you add a database to a new cluster node, the process places the new -node into the `Nearest Node` DNS. If your application uses this -connection, you should plan downtime accordingly until data can be aligned -and restored on all nodes, or you should set your application to only read -data from a pre-existing node during the data restoration process. - - -## Restoring Data to a Database on a New Cluster Node - -Adding a database to a new cluster node does not manage the transfer of -existing data to the database. The new node is added to the replication -configuration for the database, but you must restore existing data to the -new database node through a separate workflow. - -We recommended that you stop write transactions to the database while you -are restoring data to align the nodes across the cluster. If write -transactions are enabled, it is possible for data to not reach other nodes -depending on the restoration strategy. This must currently be enforced by -your application. - -The steps you use to restore data to your new database/node combination -will depend on if your nodes are running with AutoDDL enabled. - -* If your nodes are running with AutoDDL enabled, you can use the Cloud - [Restore Database](https://docs.pgedge.com/cloud/backup/restore) option - to restore a data backup from another node. You can perform a restore - specifically to just the new node, or restore to all nodes to ensure a - complete/refreshed alignment of datasets. Your chosen strategy should - take into account your spock subscription and data residency - requirements. - -If you are using the graphical `Restore Database` interface to restore -your database, the existing nodes will restart during the setup process for -the new node in order to re-establish replication. This will cause a brief -downtime on these nodes. - -* If your nodes are not running with AutoDDL enabled, you can restore the - data manually with an external tool [like pg_dump]( - https://www.postgresql.org/docs/current/app-pgdump.html). - Then, you'll need to use the Cloud [Start Replication]( - https://docs.pgedge.com/cloud/database/manage_db#the-start-replication-pane) - button to align the new node with the existing database nodes. - -!!! note - - If you are using pgBackRest to restore data from another node in your - Backup Stores, pgBackRest will re-establish Spock replication sets - using the restored data, automatically re-establishing replication as - it was at the time of the backup. \ No newline at end of file diff --git a/docs/cloud/mod_cluster/drop.md b/docs/cloud/mod_cluster/drop.md index 54169bd9..3c27cc74 100644 --- a/docs/cloud/mod_cluster/drop.md +++ b/docs/cloud/mod_cluster/drop.md @@ -1,59 +1,86 @@ # Removing a Cloud Database, Node, or Cluster -You can use options on the `Actions` drop-down menu (in the upper-right corner of the Cloud console) to drop a database from a specific node or a specific node from a cluster. The menu options are context-sensitive, with the selected actions applying to the object currently highlighted in the navigation panel. To access menu options, highlight the name of the cluster object you'd like to change in the navigation panel, and then open the `Actions` menu. - +Use the `Actions` drop-down menu in the upper-right corner of the Cloud +console to manage databases, nodes, and clusters. The menu options are +context-sensitive; the selected action applies to the object currently +highlighted in the navigation panel. To access the menu options, +highlight the name of the cluster object in the navigation panel, and +then open the `Actions` menu. ## Dropping a Node from a Cluster -Before dropping a node from a cluster, you must [delete any database(s)](https://docs.pgedge.com/cloud/mod_cluster/drop#deleting-a-database) from that node. Then, to access the `Remove Nodes` dialog, highlight the name of a cluster in the navigation panel and select `Remove Nodes` from the `Actions` menu. +To access the `Remove Nodes` dialog, highlight the name +of a cluster in the navigation panel and select `Remove Nodes` from the +`Actions` menu. ![Remove a Node](../images/actions_cluster.png) -When the `Remove Nodes` dialog opens, click a node on the map or click the `X` in an availability zone name in the `Regions` field to remove the node from the specified region. Then, to remove the node and reconfigure your cluster, enter the cluster name in the confirmation field, and click the `Apply Changes` button. +When the `Remove Nodes` dialog opens, click a node on the map or click +the `X` in an availability zone name in the `Regions` section to remove +a node from the specified region. To remove the node and reconfigure +the cluster, enter the cluster name in the confirmation field and click +`Apply Changes`. ![Remove a Node](../images/remove_nodes.png) -Please note: You may only remove a single node at a time. When you are working with a multi-node cluster with replication enabled, the minimum number of cluster nodes (and respective databases) cannot drop below two. +!!! hint + + You may only remove a single node at a time. When working with a + multi-node cluster with replication enabled, the cluster cannot drop + below two nodes. ## Removing a Database from a Node -To drop a database from a cluster node, select the name of the database in the navigation panel, and open the `Actions` menu. +To drop a database from a cluster node, select the name of the database +in the navigation panel and open the `Actions` menu. ![Removing a Database](../images/actions_database.png) -Select the `Remove From Nodes` option from the `Actions` menu to open the `Remove Database` dialog. When the dialog opens, deselect the node(s) on the map or from the list of availability zones to indicate which nodes you'd like to remove the database from. +Select `Remove From Nodes` from the `Actions` menu to open the `Remove +Database` dialog. When the dialog opens, deselect the nodes on the map +or from the list of availability zones to indicate which nodes to remove +the database from. ![Removing a Database](../images/remove_database.png) -After removing the nodes from the `Regions` list, type the database name in the confirmation pane and click the `Apply Changes` button. The database will be removed the node, resulting in the loss of all data on that node. Database backups will remain available for the database, accessible via the API. - -The remaining cluster nodes are then reconfigured to replicate the database between the remaining nodes. - +After removing the nodes from the `Regions` list, type the database name +in the confirmation pane and click `Apply Changes`. The database is +removed from the node, resulting in the loss of all data on that node; +database backups remain available via the API. The remaining cluster +nodes are then reconfigured to replicate the database between them. ## Deleting a Database -To delete a database, highlight the name of the database you wish to delete in the tree control. Open the `Actions` drop-down in the upper-right corner, and select `Delete Database` from the context menu. +To delete a database, highlight the name of the database in the +navigation panel. Open the `Actions` drop-down in the upper-right +corner and select `Delete Database` from the context menu. ![Delete a database](../images/actions_database.png) -When prompted, enter the database name in the popup window to confirm the deletion, and select the `Delete Database` button. +When prompted, enter the database name in the confirmation window and +select `Delete Database`. ![Confirming the deletion](../images/delete_database.png) - ## Deleting a Cluster -To delete a cluster provisioned by Cloud, select the cluster name in the navigation tree control to open the cluster information page. Select the `Actions` drop-down in the upper-right corner of the page, and choose `Delete Cluster`. +To delete a cluster, select the cluster name in the navigation panel to +open the cluster information page. Select the `Actions` drop-down in +the upper-right corner and choose `Delete Cluster`. ![Deleting a Cluster](../images/delete_cluster.png) -The `Delete Cluster` popup prompts you to confirm that you wish to delete the cluster. To confirm, enter the cluster name and press `Delete Cluster`. +If the cluster contains databases, use the `Force Delete` slider to confirm +that you wish to delete the cluster, and all cluster resources currently +deployed; this will remove all databases, DNS records, and CloudWatch alarms. -![Confirm deleting a cluster](../images/confirm_delete_cluster.png) +To delete the cluster, enter the cluster name to confirm and press `Delete +Cluster` (or `Force Delete Cluster`) to confirm. -!!! Note +![Confirm deleting a cluster](../images/confirm_delete_cluster.png) - If your cluster has databases, you must [delete the databases](https://docs.pgedge.com/cloud/mod_cluster/drop#deleting-a-database) before deleting the cluster. A popup alerts you if you attempt to delete a cluster that still hosts databases. +Cloud will alert you if you attempt to delete a cluster that still hosts +databases without selecting the `Force Delete` option. ![Cluster has databases](../images/cluster_has_databases.png) diff --git a/docs/cloud/mod_cluster/modify.md b/docs/cloud/mod_cluster/modify.md deleted file mode 100644 index 53260f26..00000000 --- a/docs/cloud/mod_cluster/modify.md +++ /dev/null @@ -1,13 +0,0 @@ -# Modifying a Database, Node, or Cluster - -You can use the pgEdge Distributed Postgres (Cloud Edition) console or API to modify your Cloud resources. For more information about using the API, [visit here](https://docs.pgedge.com/cloud/settings#the-api-clients-tab). - -## Changing the Display Name of a Database - -To change the name of a database that is displayed in the navigation pane, highlight the database name and select `Edit Display Name` from the `Actions` menu. - -![pgEdge Database Console](../images/actions_database.png) - -When the `Change Display Name` popup opens, enter the new database name in the `Display Name` field and select `Apply`. - -![pgEdge Database Console](../images/edit_display_name.png) diff --git a/docs/cloud/services.md b/docs/cloud/services.md new file mode 100644 index 00000000..4e7e15b5 --- /dev/null +++ b/docs/cloud/services.md @@ -0,0 +1,119 @@ +# Creating and Managing AI Toolkit Services + +pgEdge Cloud databases can be deployed with an installed and configured +MCP server, ready for connections. After deployment, use the `Services` +dialog to open the `Add MCP Server` popup to add AI functionality to an +existing cluster or to manage defined functionality. + +![The Services dialog](../cloud/images/services.png) + +Select the `Add MCP Server` button to access the `Add MCP Server` popup +and define an MCP server, and optionally enable an associated LLM. + +![Adding an MCP Server](../cloud/images/add_mcp_server.png) + +Use the fields on the `Add MCP Server` popup to describe the server +and, optionally, the LLM: + +- Click the `Select Host` field to select the node that the MCP server + will be provisioned on. You can deploy the MCP server on each node of + your cluster, but each MCP server deployment must be individually defined. + +- Slide the `LLM Enabled?` toggle switch to enable the LLM detail fields. + +![Enabling LLM](../cloud/images/mcp_llm_enabled.png) + +- Use the `LLM Provider` drop-down to select your AI provider. pgEdge + Cloud currently supports the following AI providers: + + - Anthropic AI (Claude) + - OpenAI (ChatGPT) + - Ollama + +- Use the Model field to provide the model name for the LLM provider. This + field is not validated, but must match the name of an available model. For + example: + + - claude-sonnet-4-6 + - gpt-4o + - llama3.1 + +- If prompted, use the `API Token` field to provide the string used to + authenticate with your MCP server; this is a user-created value required by + Anthropic and OpenAI. + +When you've defined the MCP server (with optional LLM functionality), select +the `+ Add MCP Server` button to update your database. + +When the deployment is complete, details about the MCP server deployment are +displayed in the Services dialog. + +![The updated Services dialog](../cloud/images/services_mcp_deployed.png) + +### Connecting a Client to the MCP Server + +The steps you use to connect a client to the MCP server vary by client +and platform. The Services dialog displays connection details for several +popular clients under the `Connect to MCP Clients` label: + +![Connecting to an MCP server](../cloud/images/connect_to_mcp.png) + +Select a tab to view and copy connection details for the client you wish to +use. Choose from: + +* [Claude Code](https://code.claude.com/docs/en/overview) +* [Cursor](https://cursor.com/en-US/docs) +* [OpenAI Codex](https://openai.com/codex/) +* [Replit](https://docs.replit.com/getting-started/intro-replit) + + +## Creating a Public Ingress + +If your cluster was created as a private cluster (without a public-facing +IP address), you will need to use a public ingress for connections to the +MCP server. Select the `Connect to Ingress` button to review available +ingresses or to create a new ingress: + +![Accessing a public ingress](../cloud/images/connect_to_ingress.png) + +If no healthy ingresses exist +for the current cluster, the `Connect to Ingress` popup opens; use the +`Go to Cluster Settings` button to edit the cluster and create an +ingress. + +![Adding an ingress](../cloud/images/no_ingresses.png) + +To navigate to the cluster's dialog and create an ingress, select the +`Go to Cluster Settings` button. Once on the cluster dialog, scroll down to +the page end, and select `+ Add Ingress`: + +![Adding an ingress](../cloud/images/add_ingress.png) + +The `Create Ingress` popup opens: + +![Creating an ingress](../cloud/images/create_ingress.png) + +Use the following fields to configure the ingress: + +- Provide a name for the ingress in the `Name` field. +- Use the `Region` drop-down to select the region the ingress will use + for connections. If you have multiple nodes in the selected region, + connections will be managed with a connection pooler and load + balancer. + +After providing ingress details, select the `+ Create Ingress` button +to create the ingress and add it to the list of ingresses. + +Once created, the ingress will be added to the list of available ingresses: + +![Creating an ingress](../cloud/images/available_ingress.png) + +To delete an ingress, select the delete icon on the ingress information pane. + +![Deleting an ingress](../cloud/images/delete_ingress.png) + +When prompted, confirm the deletion. + +![Confirm the deletion](../cloud/images/confirm_delete_ingress.png) + +A popup confirms that the ingress is being deleted. \ No newline at end of file diff --git a/docs/cloud/tasks.md b/docs/cloud/tasks.md index 1f943330..82c2a1c4 100644 --- a/docs/cloud/tasks.md +++ b/docs/cloud/tasks.md @@ -1,34 +1,52 @@ -# Reviewing Tasks +# Reviewing the Activity Log -When you start a database or cluster task (like modifying a configuration or restoring a backup) with the Cloud console, the task is displayed in the table on the `Tasks` page and a task project bar is displayed on the main console dialog for the related object. +When you start a database or cluster task with the Cloud console, the console +adds the task to the table on the `Activity Log` page. The Activity Log page +organizes Cloud console activity into a table that you can sort and filter. -![Task update](../cloud/images/task_update.png) +The console also displays a task progress bar on the main console dialog for +the related database or cluster. -The task progress bar provides information about the task in progress, including the task identifier and duration. Select the `show details` link to display additional information about the task in progress: +![Progress bar update](../cloud/images/task_update.png) + +The progress bar provides information about the task in progress, +including the identifier and duration. Select the `show details` link to +display additional information about the task in progress. ![Task details](../cloud/images/task_details.png) -Each point on the task bar corresponds to an event detail. To close the task bar, select the `X` in the upper-right corner of the task progress bar. +Each point on the task bar corresponds to an event detail. To close the task +bar, select the `X` in the upper-right corner of the task progress bar. + +![Activity Log page](../cloud/images/tasks.png) -The `Tasks` page organizes Cloud console activity into an easy to understand table that you can organize or sort with filters. +The Activity Log page displays the following columns: -![Tasks page](../cloud/images/tasks.png) +- Task name identifies the type of task for the table entry; values are + `create`, `update`, `delete`, `restore`, `backup`, + `restore-from-pgdump`, or `restore-from-pgbackrest`. +- Subject kind identifies the target of the task; values are `database` + or `cluster`. +- Subject ID is the unique identifier of the task. +- Status indicates the state of the task; values are `running`, + `succeeded`, `queued`, or `failed`. +- Created At is the timestamp at which the task started. +- Updated At is the timestamp at which the console last updated the task. -Columns on the `Tasks` dialog display: +![Activity Log page](../cloud/images/task_table_detail.png) -* **Task Name** The type of task for the table entry; values are `create`, `update`, `delete`, `restore`, `backup`, `restore-from-pgdump`, `restore-from-pgbackrest`. -* **Subject Kind** The target of the task; values are `database` or `cluster`. -* **Subject ID** The unique identifier of the task. -* **Status** The state of the task; values are `running`, `succeeded`, `queued`, or `failed`. -* **Created At** The timestamp at which the task started. -* **Updated At** The timestamp at which the task was updated. +Use the arrow to the left of a `Task name` to expand the task information and +view details about the selected task. -Use the page selector in the lower-right corner of the page to navigate through the pages in the table. -## Filtering and Sorting the Tasks Table +## Filtering and Sorting the Activity Log -A drop-down filter icon located next to the column name lists the values for that column that you can sort the table by: +The Activity Log table supports filtering and sorting by column value. A +drop-down filter icon located next to each column name lists the available +values for that column. ![Filtering by task type](../cloud/images/task_filter.png) -Select from the options displayed on the filter drop-down to re-arrange the table, moving the content that includes the selected value to the top. Use the arrow between the column name and the filter drop-down to reverse the display order of the tables based on that column. \ No newline at end of file +Select a value from the filter drop-down to re-arrange the table and move +matching content to the top. Select the arrow between the column name and the +filter drop-down to reverse the display order based on that column. diff --git a/mkdocs.yml b/mkdocs.yml index 3e7c21fa..463a57bc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -504,12 +504,11 @@ nav: - Using the Actions Menu: cloud/mod_cluster/actions.md - Adding a Database or Cluster Node: cloud/mod_cluster/add.md - Dropping a Database, Node, or Cluster: cloud/mod_cluster/drop.md - - Modifying a Database, Node, or Cluster: cloud/mod_cluster/modify.md - Database Administration: - Reviewing Database Metrics: cloud/database_admin/metrics.md - Viewing Log Files: cloud/database_admin/logs.md - Reviewing Backup Details: cloud/database_admin/backup_details.md - - Using Postgres Extensions: cloud/database_admin/extensions.md + - Using Postgres Extensions: cloud/database_admin/supported_extensions.md - Connecting to a Database: - Connecting to your Database or Cluster: cloud/connecting/index.md - Connecting with SSH: cloud/connecting/ssh.md @@ -517,11 +516,12 @@ nav: - Connecting with pgAdmin: cloud/connecting/pgadmin.md - Connecting a Custom Client: cloud/connecting/custom_client.md - Best Practices for Managing Connections: cloud/connecting/best_practices.md + - Adding pgEdge AI Toolkit Functionality: cloud/services.md - Managing Database Backups: - Reviewing Backup Details: cloud/backup/backups.md - Backing up your Database: cloud/backup/backup_providers.md - Restoring from Backup: cloud/backup/restore.md - - Reviewing Console Tasks: cloud/tasks.md + - Reviewing the Activity Log: cloud/tasks.md - Migrating to pgEdge Distributed Postgres (Cloud Edition): - Overview - Using a Backup to Migrate into a Distributed Database: cloud/migration/index.md - Taking a Backup: cloud/migration/backup.md @@ -549,6 +549,10 @@ nav: - Development: '!import https://github.com/pgEdge/pgedge-helm.git?branch=main' - ACE: + - v1.9.0: '!import https://github.com/pgEdge/ace.git?branch=v1.9.0' + - v1.8.1: '!import https://github.com/pgEdge/ace.git?branch=v1.8.1' + - v1.8.0: '!import https://github.com/pgEdge/ace.git?branch=v1.8.0' + - v1.7.2: '!import https://github.com/pgEdge/ace.git?branch=v1.7.2' - v1.7.1: '!import https://github.com/pgEdge/ace.git?branch=v1.7.1' - v1.7.0: '!import https://github.com/pgEdge/ace.git?branch=v1.7.0' - v1.6.0: '!import https://github.com/pgEdge/ace.git?branch=v1.6.0' @@ -571,10 +575,10 @@ nav: - Development: '!import https://github.com/pgEdge/snowflake.git?branch=main' - Spock v5: - - v5.0.6: '!import https://github.com/pgEdge/spock.git?branch=v5.0.6' + - v5.0.6: '!import https://github.com/pgEdge/spock.git?branch=v5.0.6_doc_update' - v5.0.5: '!import https://github.com/pgEdge/spock.git?branch=v5.0.5' - v5.0.4: '!import https://github.com/pgEdge/spock.git?branch=v5.0.4' - - Development: '!import https://github.com/pgEdge/spock.git?branch=v5_STABLE' + - Development: '!import https://github.com/pgEdge/spock.git?branch=main' - Control Plane: - v0.7: '!import https://github.com/pgEdge/control-plane.git?branch=release/v0.7.0' @@ -582,6 +586,8 @@ nav: - Development: '!import https://github.com/pgEdge/control-plane.git?branch=main' - Radar: + - v0.4.1: '!import https://github.com/pgEdge/radar?branch=v0.4.1' + - v0.4.0: '!import https://github.com/pgEdge/radar?branch=v0.4.0' - v0.3.0: '!import https://github.com/pgEdge/radar?branch=v0.3.0' - v0.2.3: '!import https://github.com/pgEdge/radar?branch=v0.2.3' - v0.2.2: '!import https://github.com/pgEdge/radar?branch=v0.2.2' @@ -600,8 +606,7 @@ nav: - Development: '!import https://github.com/pgEdge/pgedge-postgres-mcp?branch=main' - pgEdge Anonymizer: - - v1.0.0-beta2: '!import https://github.com/pgEdge/pgedge-anonymizer?branch=v1.0.0-beta2' - - v1.0.0-beta1: '!import https://github.com/pgEdge/pgedge-anonymizer?branch=v1.0.0-beta1' + - v1.0.0: '!import https://github.com/pgEdge/pgedge-anonymizer?branch=v1.0.0' - Development: '!import https://github.com/pgEdge/pgedge-anonymizer?branch=main' - pgEdge Docloader: @@ -609,15 +614,17 @@ nav: - Development: '!import https://github.com/pgEdge/pgedge-docloader?branch=main' - pgEdge RAG Server: - - v1.0.0-beta3: '!import https://github.com/pgEdge/pgedge-rag-server?branch=v1.0.0-beta3' - - v1.0.0-beta2: '!import https://github.com/pgEdge/pgedge-rag-server?branch=v1.0.0-beta2' - - v1.0.0-beta1: '!import https://github.com/pgEdge/pgedge-rag-server?branch=v1.0.0-beta1' + - v1.0.0: '!import https://github.com/pgEdge/pgedge-rag-server?branch=v1.0.0' - Development: '!import https://github.com/pgEdge/pgedge-rag-server?branch=main' - pgEdge Vectorizer: - v1.0: '!import https://github.com/pgEdge/pgedge-vectorizer?branch=v1.0' - Development: '!import https://github.com/pgEdge/pgedge-vectorizer?branch=main' + - AI DBA Workbench: + - v1.0.0-beta1: '!import https://github.com/pgEdge/ai-dba-workbench.git?branch=v1.0.0-beta1' + - Development: '!import https://github.com/pgEdge/ai-dba-workbench.git?branch=main' + # --- pgEdge Labs --- - pg-semantic-cache: - v0.1.0-beta4: '!import https://github.com/pgEdge/pg_semantic_cache?branch=v0.1.0-beta4' @@ -638,12 +645,15 @@ nav: # Community Extensions (from 3rd-party-docs repo) - pgvector: + - v0.8.2: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvector082' - v0.8.1: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvector081' - v0.8.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvector080' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvectormaster' - postgis: + - v3.6.3: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgis363' - v3.6.2: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgis362' + - v3.5.6: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgis356' - v3.5.5: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgis355' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgismaster' @@ -659,6 +669,8 @@ nav: - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgtokenizermaster' - pg-vectorize: + - v0.26.2: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvectorize0262' + - v0.26.1: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvectorize0261' - v0.26.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvectorize0260' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgvectorizemaster' @@ -672,6 +684,7 @@ nav: - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgcronmaster' - pgmq: + - v1.11.1: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgmq1111' - v1.11.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgmq1110' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgmqmaster' @@ -684,11 +697,13 @@ nav: - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pldebuggermaster' - system-stats: + - v4.0.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=systemstats400' - v3.2.1: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=systemstats321' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=systemstatsmaster' # Community Tools (from 3rd-party-docs repo) - pgAdmin 4: + - v9.14: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgadmin914' - v9.13: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgadmin913' - v9.12: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgadmin912' - v9.11: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgadmin911' @@ -696,14 +711,22 @@ nav: - PgBouncer: - v1.25: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbouncer125' + - v1.241: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbouncer1241' - v1.24: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbouncer124' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbouncermaster' - postgrest: + - v14.10: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest1410' + - v14.9: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest149' + - v14.8: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest148' + - v14.7: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest147' + - v14.6: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest146' - v14.5: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrest145' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=postgrestmaster' - psycopg2: + - v2.9.12: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=psycopg2912' + - v2.9.11: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=psycopg2911' - v2.9.10: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=psycopg2910' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=psycopg2master' @@ -711,3 +734,13 @@ nav: - v2.58.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbackrest258' - v2.57.0: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbackrest257' - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=pgbackrestmaster' + + - CloudNativePG: + - v1.29: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=cnpg129' + - v1.28: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=cnpg128' + - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=cnpgmaster' + + - Patroni: + - v4.1.2: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=patroni412' + - v4.1.1: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=patroni411' + - Development: '!import https://github.com/pgEdge/3rd-party-docs.git?branch=patronimaster'