From 193cc1a79ac3bc00e5c5052bef45f29b03523552 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 8 Oct 2025 17:51:06 +0200 Subject: [PATCH 01/20] chore: first draft of dev fork. --- _partials/_devops-cli-install.md | 114 +++++++++++++++++++++++++ use-timescale/backup-restore.md | 96 +++++++++++++++++++-- use-timescale/page-index/page-index.js | 2 +- 3 files changed, 203 insertions(+), 9 deletions(-) create mode 100644 _partials/_devops-cli-install.md diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md new file mode 100644 index 0000000000..06fd4b58ba --- /dev/null +++ b/_partials/_devops-cli-install.md @@ -0,0 +1,114 @@ +1. ** Install $CLI_LONG** + + Use the Terminal to install the $CLI_SHORT: + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash + sudo apt-get install tiger-cli + ``` + + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash + sudo apt-get install tiger-cli + ``` + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash + sudo yum install tiger-cli + ``` + + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash + sudo yum install tiger-cli + ``` + + + + + + ```shell + brew install --cask timescale/tap/tiger-cli + ``` + + + + + + ```shell + curl -fsSL https://tiger-cli-releases.s3.amazonaws.com/install/install.sh | sh + ``` + + + + + +1. **Set up API credentials** + + 1. Log $CLI_LONG into your $ACCOUNT_LONG + + ```shell + tiger auth login + ``` + $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`. + + 1. Select a $PROJECT_LONG. + + ```terminaloutput + Auth URL is: https://console.cloud.timescale.com/oauth/authorize?client_id=lotsOfURLstuff + Opening browser for authentication... + Select a project: + + > 1. Tiger Project (tgrproject) + 2. YourCompany (Company wide project) (cpnproject) + 3. YourCompany Department (dptproject) + + Use ↑/↓ arrows or number keys to navigate, enter to select, q to quit + ``` + If only one $PROJECT_SHORT is associated with your $ACCOUNT_SHORT, this step is not shown. + + Where possible, $CLI_LONG stores your authentication information in the system keychain/credential manager. + If that fails, the key is stored in `~/.config/tiger/api-key` with restricted file permissions (600). + $CLI_LONG stores your configuration in `~/.config/tiger/config.yaml`. + +1. **Test your authenticated connection to $CLOUD_LONG by listing services** + + ```bash + tiger service list + ``` + + This call returns something like: + - No services: + ```terminaloutput + 🏜️ No services found! Your project is looking a bit empty. + 🚀 Ready to get started? Create your first service with: tiger service create + ``` + - One or more services: + + ```terminaloutput + ┌────────────┬─────────────────────┬────────┬─────────────┬──────────────┬──────────────────┐ + │ SERVICE ID │ NAME │ STATUS │ TYPE │ REGION │ CREATED │ + ├────────────┼─────────────────────┼────────┼─────────────┼──────────────┼──────────────────┤ + │ tgrservice │ tiger-agent-service │ READY │ TIMESCALEDB │ eu-central-1 │ 2025-09-25 16:09 │ + └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘ + ``` + + +[rest-api-reference]: /api/:currentVersion:/api-reference/ +[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings +[get-project-id]: /integrations/:currentVersion:/find-connection-details/#find-your-project-and-service-id +[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials +[curl]: https://curl.se/ \ No newline at end of file diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 745d9f683f..3e0203242d 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -1,24 +1,31 @@ --- -title: Back up and recover your Tiger Cloud services -excerpt: See how and when Tiger Cloud backs up your data, making sure you always have something to fall back on in case of disaster recovery +title: Back up and fork your Tiger Cloud services +excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery products: [cloud] keywords: [backups, restore] tags: [recovery, failures] --- -# Back up and recover your $SERVICE_SHORTs +import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; -$CLOUD_LONG automatically handles backup for your $SERVICE_LONGs using the `pgBackRest` tool. You don't need to perform backups manually. What's more, with [cross-region backup][cross-region], you are protected when an entire AWS region goes down. +# Back up and fork your $SERVICE_SHORTs -$CLOUD_LONG automatically creates one full backup every week, and -incremental backups every day in the same region as your $SERVICE_SHORT. +$CLOUD_LONG provides comprehensive backup and recovery solutions to protect your data, including automatic daily backups, +cross-region protection, point-in-time recovery, and development forks for testing and collaboration. -On [$SCALE and $PERFORMANCE][pricing-and-account-management] $PRICING_PLANs, you can check the list of backups for the previous 14 days in $CONSOLE_LONG. To do so, select your $SERVICE_SHORT, then click `Operations` > `Backup and restore` > `Backup history`. +## Automatic backups + +$CLOUD_LONG automatically handles backup for your $SERVICE_LONGs using the `pgBackRest` tool. You don't need to perform +backups manually. What's more, with [cross-region backup][cross-region], you are protected when an entire AWS region goes down. -Additionally, all [Write-Ahead Log (WAL)][wal] files are retained back to the oldest full backup. This means that you always have a full backup available for the current and previous week: +$CLOUD_LONG automatically creates one full backup every week, and incremental backups every day in the same region as +your $SERVICE_SHORT. Additionally, all [Write-Ahead Log (WAL)][wal] files are retained back to the oldest full backup. +This means that you always have a full backup available for the current and previous week: ![Backup in Tiger Cloud](https://assets.timescale.com/docs/images/database-backup-recovery.png) +On [$SCALE and $PERFORMANCE][pricing-and-account-management] $PRICING_PLANs, you can check the list of backups for the previous 14 days in $CONSOLE_LONG. To do so, select your $SERVICE_SHORT, then click `Operations` > `Backup and restore` > `Backup history`. + In the event of a storage failure, a $SERVICE_SHORT automatically recovers from a backup to the point of failure. If the whole availability zone goes down, your $SERVICE_LONGs are recovered in a different zone. In the event of a user error, you can [create a point-in-time recovery fork][create-fork]. @@ -107,6 +114,79 @@ You initiate a point-in-time recovery from a same-region or cross-region backup +## Create a development fork + +Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them +to production. Forkable $SERVICE_SHORTs make this natural. Spin up a branch, run your test, throw it away or merge it +back.Forks are also a powerful way to share production-scale data safely. BI and data science teams often need access to +real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you can hand a production fork +to those teams in secondsL isolated from production but containing all the data needed for analysis. This dramatically +reduces friction getting insights from live data. + +Forkable $SERVICE_LONGs in $CLOUD_LONG enable you to create instant, zero-copy branches of a $SERVICE_SHORT. These forks are +fully independent. You can query them, run migrations, add indexes, or test new features. + +To manage development forks: + + + + + +1. **Fork the $SERVICE_SHORT** + + ```shell + tiger service fork tgrservice --now --no-wait --name bob + ``` + You see something like: + + ```terminaloutput + 🍴 Forking service 'tgrservice' to create 'bob' at current state... + ✅ Fork request accepted! + 📋 New Service ID: trgbobserv + 🔐 Password saved to system keyring for automatic authentication + 🎯 Set service 'trgbobserv' as default service. + ⏳ Service is being forked. Use 'tiger service list' to check status. + ┌───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ PROPERTY │ VALUE │ + ├───────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Service ID │ trgbobserv │ + │ Name │ bob │ + │ Status │ │ + │ Type │ TIMESCALEDB │ + │ Region │ eu-central-1 │ + │ CPU │ 0.5 cores (500m) │ + │ Memory │ 2 GB │ + │ Direct Endpoint │ ..tsdb.cloud.timescale.com: │ + │ Created │ 2025-10-08 13:58:07 UTC │ + │ Connection String │ postgresql://tsdbadmin@..tsdb.cloud.timescale.com:/tsdb?sslmode=require │ + └───────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────┘ + ``` + +1. **When you are done, delete your forked $SERVICE_SHORT** + + 1. Use the CLI to request $SERVICE_SHORT delete: + + ```shell + tiger service delete trgbobserv + ``` + 1. Validate the $SERVICE_SHORT delete: + + ```terminaloutput + Are you sure you want to delete service 'trgbobserv'? This operation cannot be undone. + Type the service ID 'trgbobserv' to confirm: + trgbobserv + ``` + You see something like: + ```terminaloutput + 🗑️ Delete request accepted for service 'trgbobserv'. + ⏳ Waiting for service 'trgbobserv' to be deleted + ✅ Service 'trgbobserv' has been successfully deleted. + ``` + + + + + [console]: https://console.cloud.timescale.com/dashboard/services [ha-replicas]: /about/use-timescale/:currentVersion:/ha-replicas/ [pricing-and-account-management]: /about/:currentVersion:/pricing-and-account-management/ diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index 871bc94722..8689a1525b 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -601,7 +601,7 @@ module.exports = [ ], }, { - title: "Back up and recover your services", + title: "Back up and fork your services", href: "backup-restore", }, { From 692ae140d2399386e3051b8e66a2be8cf0fd0aab Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 9 Oct 2025 11:24:38 +0200 Subject: [PATCH 02/20] chore: remove best practice sentence from dimension partitioning section. --- use-timescale/backup-restore.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 3e0203242d..00fa041d03 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -117,14 +117,16 @@ You initiate a point-in-time recovery from a same-region or cross-region backup ## Create a development fork Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them -to production. Forkable $SERVICE_SHORTs make this natural. Spin up a branch, run your test, throw it away or merge it -back.Forks are also a powerful way to share production-scale data safely. BI and data science teams often need access to -real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you can hand a production fork -to those teams in secondsL isolated from production but containing all the data needed for analysis. This dramatically -reduces friction getting insights from live data. - -Forkable $SERVICE_LONGs in $CLOUD_LONG enable you to create instant, zero-copy branches of a $SERVICE_SHORT. These forks are -fully independent. You can query them, run migrations, add indexes, or test new features. +to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or +merge it back. + +Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real +datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy +branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for +analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights +from live data. + +Forks are fully independent. You can query them, run migrations, add indexes, or test new features. To manage development forks: From cb0b46b3dac7b9116bd3762c928423d09a75d2ee Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 9 Oct 2025 11:43:08 +0200 Subject: [PATCH 03/20] chore: add dev forks in service management and backups. --- _partials/_devops-cli-service-forks.md | 72 +++++++++++++++++++ use-timescale/backup-restore.md | 74 +------------------- use-timescale/services/service-management.md | 15 ++-- 3 files changed, 84 insertions(+), 77 deletions(-) create mode 100644 _partials/_devops-cli-service-forks.md diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md new file mode 100644 index 0000000000..bb43262477 --- /dev/null +++ b/_partials/_devops-cli-service-forks.md @@ -0,0 +1,72 @@ +import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; + +Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them +to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or +merge it back. + +Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real +datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy +branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for +analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights +from live data. + +Forks are fully independent. You can query them, run migrations, add indexes, or test new features. + +To manage development forks: + + + + + +1. **Fork the $SERVICE_SHORT** + + ```shell + tiger service fork tgrservice --now --no-wait --name bob + ``` + You see something like: + + ```terminaloutput + 🍴 Forking service 'tgrservice' to create 'bob' at current state... + ✅ Fork request accepted! + 📋 New Service ID: trgbobserv + 🔐 Password saved to system keyring for automatic authentication + 🎯 Set service 'trgbobserv' as default service. + ⏳ Service is being forked. Use 'tiger service list' to check status. + ┌───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ PROPERTY │ VALUE │ + ├───────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Service ID │ trgbobserv │ + │ Name │ bob │ + │ Status │ │ + │ Type │ TIMESCALEDB │ + │ Region │ eu-central-1 │ + │ CPU │ 0.5 cores (500m) │ + │ Memory │ 2 GB │ + │ Direct Endpoint │ ..tsdb.cloud.timescale.com: │ + │ Created │ 2025-10-08 13:58:07 UTC │ + │ Connection String │ postgresql://tsdbadmin@..tsdb.cloud.timescale.com:/tsdb?sslmode=require │ + └───────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────┘ + ``` + +1. **When you are done, delete your forked $SERVICE_SHORT** + + 1. Use the CLI to request $SERVICE_SHORT delete: + + ```shell + tiger service delete trgbobserv + ``` + 1. Validate the $SERVICE_SHORT delete: + + ```terminaloutput + Are you sure you want to delete service 'trgbobserv'? This operation cannot be undone. + Type the service ID 'trgbobserv' to confirm: + trgbobserv + ``` + You see something like: + ```terminaloutput + 🗑️ Delete request accepted for service 'trgbobserv'. + ⏳ Waiting for service 'trgbobserv' to be deleted + ✅ Service 'trgbobserv' has been successfully deleted. + ``` + + \ No newline at end of file diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 00fa041d03..1e9d77a114 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -6,7 +6,7 @@ keywords: [backups, restore] tags: [recovery, failures] --- -import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; +import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; # Back up and fork your $SERVICE_SHORTs @@ -116,77 +116,7 @@ You initiate a point-in-time recovery from a same-region or cross-region backup ## Create a development fork -Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them -to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or -merge it back. - -Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real -datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy -branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for -analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights -from live data. - -Forks are fully independent. You can query them, run migrations, add indexes, or test new features. - -To manage development forks: - - - - - -1. **Fork the $SERVICE_SHORT** - - ```shell - tiger service fork tgrservice --now --no-wait --name bob - ``` - You see something like: - - ```terminaloutput - 🍴 Forking service 'tgrservice' to create 'bob' at current state... - ✅ Fork request accepted! - 📋 New Service ID: trgbobserv - 🔐 Password saved to system keyring for automatic authentication - 🎯 Set service 'trgbobserv' as default service. - ⏳ Service is being forked. Use 'tiger service list' to check status. - ┌───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ PROPERTY │ VALUE │ - ├───────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ Service ID │ trgbobserv │ - │ Name │ bob │ - │ Status │ │ - │ Type │ TIMESCALEDB │ - │ Region │ eu-central-1 │ - │ CPU │ 0.5 cores (500m) │ - │ Memory │ 2 GB │ - │ Direct Endpoint │ ..tsdb.cloud.timescale.com: │ - │ Created │ 2025-10-08 13:58:07 UTC │ - │ Connection String │ postgresql://tsdbadmin@..tsdb.cloud.timescale.com:/tsdb?sslmode=require │ - └───────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────┘ - ``` - -1. **When you are done, delete your forked $SERVICE_SHORT** - - 1. Use the CLI to request $SERVICE_SHORT delete: - - ```shell - tiger service delete trgbobserv - ``` - 1. Validate the $SERVICE_SHORT delete: - - ```terminaloutput - Are you sure you want to delete service 'trgbobserv'? This operation cannot be undone. - Type the service ID 'trgbobserv' to confirm: - trgbobserv - ``` - You see something like: - ```terminaloutput - 🗑️ Delete request accepted for service 'trgbobserv'. - ⏳ Waiting for service 'trgbobserv' to be deleted - ✅ Service 'trgbobserv' has been successfully deleted. - ``` - - - + [console]: https://console.cloud.timescale.com/dashboard/services diff --git a/use-timescale/services/service-management.md b/use-timescale/services/service-management.md index 21f4319c61..175ffc232a 100644 --- a/use-timescale/services/service-management.md +++ b/use-timescale/services/service-management.md @@ -10,6 +10,8 @@ cloud_ui: - [create_services, fork, :serviceId] --- +import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; + # $SERVICE_SHORT_CAP management In the `Service management` section of the `Operations` dashboard, you can fork @@ -46,8 +48,6 @@ data discrepancy between $SERVICE_SHORTs. -### Forking a $SERVICE_SHORT - 1. In $CONSOLE_LONG, from the `Services` list, ensure the $SERVICE_SHORT you want to form has a status of `Running` or `Paused`, then click the name of the $SERVICE_SHORT you want to fork. @@ -72,7 +72,12 @@ alt="Fork a Tiger Cloud service" -### Reset your $SERVICE_SHORT password +## Create a development fork + + + + +## Reset your $SERVICE_SHORT password You can reset your $SERVICE_SHORT password from the `Operations` dashboard. This is the password you use to connect to your $SERVICE_SHORT, not the password for $CONSOLE. To reset your $CONSOLE_SHORT password, navigate to the `Account` page. @@ -86,14 +91,14 @@ digest algorithm 5) are cryptographic authentication mechanisms. $CONSOLE_LONG uses SCRAM by default. It is more secure and strongly recommended. The MD5 option is provided for compatibility with older clients. -### Pause a $SERVICE_SHORT +## Pause a $SERVICE_SHORT You can pause a $SERVICE_SHORT if you want to stop it running temporarily. When you pause a $SERVICE_SHORT, you are no longer billed for compute resources. However, you do need to continue paying for any storage you are using. Pausing a $SERVICE_SHORT ensures that it is still available, and is ready to be restarted at any time. -### Delete a $SERVICE_SHORT +## Delete a $SERVICE_SHORT You can delete a $SERVICE_SHORT to remove it completely. This removes the $SERVICE_SHORT and its underlying data from the server. You cannot recover a deleted From 9fa181aee7e5b84a1f22d995563b47dd6a3f7ee3 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 13 Oct 2025 15:50:46 +0200 Subject: [PATCH 04/20] chore: updates on review. --- use-timescale/backup-restore.md | 4 ++-- use-timescale/page-index/page-index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 1e9d77a114..ecd7f32e65 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -1,5 +1,5 @@ --- -title: Back up and fork your Tiger Cloud services +title: Back up, fork, and recover services excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery products: [cloud] keywords: [backups, restore] @@ -8,7 +8,7 @@ tags: [recovery, failures] import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Back up and fork your $SERVICE_SHORTs +# Back up, fork, and recover $SERVICE_SHORT $CLOUD_LONG provides comprehensive backup and recovery solutions to protect your data, including automatic daily backups, cross-region protection, point-in-time recovery, and development forks for testing and collaboration. diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index 8689a1525b..b52d1f44a9 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -601,7 +601,7 @@ module.exports = [ ], }, { - title: "Back up and fork your services", + title: "Back up, fork, and recover services", href: "backup-restore", }, { From 3cb023c2f5cad92f91126ed3c858e346dc895ab1 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 11:12:55 +0200 Subject: [PATCH 05/20] chore: Update for Jasja's fork stuff. --- _partials/_devops-cli-service-forks.md | 12 ------- use-timescale/backup-restore.md | 9 ++--- use-timescale/fork-services.md | 49 ++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 use-timescale/fork-services.md diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index bb43262477..669c1b87eb 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -1,17 +1,5 @@ import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; -Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them -to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or -merge it back. - -Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real -datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy -branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for -analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights -from live data. - -Forks are fully independent. You can query them, run migrations, add indexes, or test new features. - To manage development forks: diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 7e45c65efb..7e17ea3f28 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -1,5 +1,5 @@ --- -title: Back up, fork, and recover services +title: Backup and recover services excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery products: [cloud] keywords: [backups, restore] @@ -8,10 +8,10 @@ tags: [recovery, failures] import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Back up, fork, and recover $SERVICE_SHORT +# Backup and recover $SERVICE_SHORTs $CLOUD_LONG provides comprehensive backup and recovery solutions to protect your data, including automatic daily backups, -cross-region protection, point-in-time recovery, and development forks for testing and collaboration. +cross-region protection and point-in-time recovery. ## Automatic backups @@ -63,7 +63,7 @@ You can have one cross-region backup per $SERVICE_SHORT. To change the region of -## Create a point-in-time recovery fork +## Recover your data in a point-in-time fork @@ -99,6 +99,7 @@ You initiate a point-in-time recovery from a same-region or cross-region backup 1. Confirm by clicking `Create recovery fork`. A fork of the $SERVICE_SHORT is created. The recovered $SERVICE_SHORT shows in `Services` with a label specifying which $SERVICE_SHORT it has been forked from. + 1. Update the connection strings in your app to use the fork. diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md new file mode 100644 index 0000000000..7f1761a61c --- /dev/null +++ b/use-timescale/fork-services.md @@ -0,0 +1,49 @@ +--- +title: Back up, fork, and recover services +excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery +products: [cloud] +keywords: [backups, restore] +tags: [recovery, failures] +--- + +import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; + +# Fork $SERVICE_SHORT + +Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them +to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or +merge it back. + +Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real +datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy +branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for +analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights +from live data. Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT, you can query +them, run migrations, add indexes, or test new features. + +## What is a fork? + +A fork is an exact copy of your database at a specific point in time, with its own independent data and configuration, +including: +- All database data and schema +- Configuration settings (which can be customized during fork creation) +- An independent `tsdbadmin` user with a new password + + + + + +## Create a development fork + + + + +[console]: https://console.cloud.timescale.com/dashboard/services +[ha-replicas]: /about/use-timescale/:currentVersion:/ha-replicas/ +[pricing-and-account-management]: /about/:currentVersion:/pricing-and-account-management/ +[wal]: https://www.postgresql.org/docs/current/wal-intro.html +[support]: https://www.timescale.com/contact/ +[pitr]: /use-timescale/:currentVersion:/backup-restore/point-in-time-recovery/ +[rapid-recovery]: /use-timescale/:currentVersion:/ha-replicas/#rapid-recovery +[cross-region]: /use-timescale/:currentVersion:/backup-restore#enable-cross-region-backup +[create-fork]: /use-timescale/:currentVersion:/backup-restore#create-a-point-in-time-recovery-fork From 3d2bdc454670dac53c0f492003ccbdc8b7c0edfb Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 13:31:29 +0200 Subject: [PATCH 06/20] chore: updates to integrate Jascha's stuff. --- _partials/_devops-cli-service-forks.md | 3 + _partials/_manage-a-data-exporter.md | 2 +- _partials/_prometheus-integrate.md | 2 +- about/changelog.md | 2 +- about/pricing-and-account-management.md | 2 +- integrations/cloudwatch.md | 2 +- integrations/datadog.md | 2 +- .../configuration/customize-configuration.md | 2 +- use-timescale/fork-services.md | 154 ++++++++++++++++-- .../metrics-logging/aws-cloudwatch.md | 2 +- use-timescale/metrics-logging/datadog.md | 2 +- use-timescale/page-index/page-index.js | 6 +- use-timescale/security/overview.md | 2 +- 13 files changed, 162 insertions(+), 21 deletions(-) diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index 669c1b87eb..806fa4b53b 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -11,6 +11,9 @@ To manage development forks: ```shell tiger service fork tgrservice --now --no-wait --name bob ``` + By default a fork matches the resource of the parent $SERVICE_LONGs. For paid plans use the `cpu_millis` and + `memory_gbs` for dedicated resources. + You see something like: ```terminaloutput diff --git a/_partials/_manage-a-data-exporter.md b/_partials/_manage-a-data-exporter.md index 96d7cc4641..de90b1d41c 100644 --- a/_partials/_manage-a-data-exporter.md +++ b/_partials/_manage-a-data-exporter.md @@ -109,4 +109,4 @@ It must be one of the following: [console-cloudwatch-configuration]: https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups [console-cloudwatch-create-group]: https://console.aws.amazon.com/cloudwatch/home#logsV2:log-groups/create-log-group [services-portal]: https://console.cloud.timescale.com/dashboard/services -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan diff --git a/_partials/_prometheus-integrate.md b/_partials/_prometheus-integrate.md index 62307cdb28..f8ded461d2 100644 --- a/_partials/_prometheus-integrate.md +++ b/_partials/_prometheus-integrate.md @@ -209,4 +209,4 @@ You can further [visualize your data][grafana-prometheus] with Grafana. Use the [enable-timescaledb]: /self-hosted/:currentVersion:/install/ [prometheus-authentication]: https://prometheus.io/docs/guides/basic-auth/ [scrape-targets]: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan diff --git a/about/changelog.md b/about/changelog.md index 9c27be4557..7f2b229558 100644 --- a/about/changelog.md +++ b/about/changelog.md @@ -919,7 +919,7 @@ Highlighted features in TimescaleDB v2.17 are: ### HIPAA compliance -Timescale Cloud's [Enterprise plan](https://docs.timescale.com/about/latest/pricing-and-account-management/#features-included-in-each-plan) is now HIPAA (Health Insurance Portability and Accountability Act) compliant. This allows organizations to securely manage and analyze sensitive healthcare data, ensuring they meet regulatory requirements while building compliant applications. +Timescale Cloud's [Enterprise plan](https://docs.timescale.com/about/latest/pricing-and-account-management/#features-included-in-each-pricing-plan) is now HIPAA (Health Insurance Portability and Accountability Act) compliant. This allows organizations to securely manage and analyze sensitive healthcare data, ensuring they meet regulatory requirements while building compliant applications. ### Expanded logging within Timescale Console diff --git a/about/pricing-and-account-management.md b/about/pricing-and-account-management.md index 0ba87ada6b..42e9b38d5b 100644 --- a/about/pricing-and-account-management.md +++ b/about/pricing-and-account-management.md @@ -224,7 +224,7 @@ When you get $CLOUD_LONG at AWS Marketplace, the following pricing options are a [cloud-billing]: https://console.cloud.timescale.com/dashboard/billing/details [commercial-sla]: https://www.timescale.com/legal/timescale-cloud-terms-of-service [pricing-plans]: https://www.timescale.com/pricing -[plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [production-support]: https://www.timescale.com/support [hipaa-compliance]: https://www.hhs.gov/hipaa/for-professionals/index.html [aws-pricing]: /about/:currentVersion:/pricing-and-account-management/#aws-marketplace-pricing diff --git a/integrations/cloudwatch.md b/integrations/cloudwatch.md index 9901a0a9a1..5872b81e60 100644 --- a/integrations/cloudwatch.md +++ b/integrations/cloudwatch.md @@ -34,7 +34,7 @@ tool. You create an exporter on the [project level][projects], in the same AWS r [projects]: /use-timescale/:currentVersion:/security/members/ -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [cloudwatch]: https://aws.amazon.com/cloudwatch/ [cloudwatch-signup]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/GettingSetup.html diff --git a/integrations/datadog.md b/integrations/datadog.md index 7cad45fca8..060690d0eb 100644 --- a/integrations/datadog.md +++ b/integrations/datadog.md @@ -143,7 +143,7 @@ comprehensive list of [metrics][datadog-postgres-metrics] collected. [datadog-agent-restart]: https://docs.datadoghq.com/agent/configuration/agent-commands/#start-stop-and-restart-the-agent [projects]: /use-timescale/:currentVersion:/security/members/ [datadog-api-key]: https://docs.datadoghq.com/account_management/api-app-keys/#add-an-api-key-or-client-token -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [run-queries]: /getting-started/:currentVersion:/run-queries-from-console/ [open-console]: https://console.cloud.timescale.com/dashboard/services [psql]: /integrations/:currentVersion:/psql/ diff --git a/use-timescale/configuration/customize-configuration.md b/use-timescale/configuration/customize-configuration.md index 4b1644c95e..1ba8aca724 100644 --- a/use-timescale/configuration/customize-configuration.md +++ b/use-timescale/configuration/customize-configuration.md @@ -62,4 +62,4 @@ width={1375} height={944} src="https://assets.timescale.com/docs/images/tsc-settings-confirm.webp" alt="Confirm Tiger configuration changes"/> -[plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan \ No newline at end of file +[plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan \ No newline at end of file diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 7f1761a61c..bf876e2e3f 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -2,41 +2,166 @@ title: Back up, fork, and recover services excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery products: [cloud] +price_plans: [performance, scale, enterprise] keywords: [backups, restore] tags: [recovery, failures] --- +import IntegrationPrereqs from "versionContent/_partials/_integration-prereqs.mdx"; import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Fork $SERVICE_SHORT +# Fork $SERVICE_SHORTs Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or merge it back. +A fork is an exact copy of a $SERVICE_SHORT at a specific point in time, with its own independent data and configuration, +including: +- The database data and schema +- Configuration +- An admin `tsdbadmin` user with a new password + +Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT, you can query +them, run migrations, add indexes, or test new features. + Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights -from live data. Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT, you can query -them, run migrations, add indexes, or test new features. +from live data. -## What is a fork? +## Understand $SERVICE_SHORT forks -A fork is an exact copy of your database at a specific point in time, with its own independent data and configuration, -including: -- All database data and schema -- Configuration settings (which can be customized during fork creation) -- An independent `tsdbadmin` user with a new password +You use $SERVICE_SHORT forks for disaster recovery, CI/CD automation, and testing and development. For example, you +can automatically test a major $PG upgrade on a fork before applying it to your production $SERVICE_SHORT. + +$CLOUD_LONG offers the following fork strategies: + +- `now`: create a fresh fork of your database at the current time. + Use when: + - You need the absolute latest data + - Recent changes must be included in the fork + +- `last-snapshot`: fork from the most recent [automatic backup or snapshot][automatic-backups]. + Use when: + - You want the fastest possible fork creation + - Slightly behind current data is acceptable +- `timestamp` - fork from a specific point in time within your [retention period][pricing]. + Use when: + - Disaster recovery from a known-good state + - Investigating issues that occurred at a specific time + - Testing "what-if" scenarios from historical data +The retention period for Point-in-time recovery and forking depends on your [pricing plan][pricing-plan-features]. +### Fork creation speed +Fork creation speed depends on your pricing plan. -## Create a development fork +- Free plan: ~30-90 seconds. Uses a Copy-on-Write storage architecture with zero-copy between a fork and the parent. +- Paid plan: varies with the size of your $SERVICE_SHORT, typically 5-20+ minutes. Uses tradional storage architecture + with backup restore + WAL replay. + +### Billing + +You can fork a service created in the free plan to a free or a paid plan. However, you cannot fork a service created in +a paid plan to a free plan service. + +- High-performance storage: + - Copy-on-Write: you are only billed for storage for the chunks that diverge from the parent $SERVICE_SHORT. + - Traditional: you are billed for storage for the whole $SERVICE_SHORT. +- Object storage tier: + - [Tiered data][data-tiering] is shared across forks using Copy-on-Write and traditional storage: + - Chunks in tiered storage are only billed once, regardless of the number of forks + - Only new or modified chunks in a fork incur additional costs + +For details, see [Replicas and forks with tiered data][tiered-forks]. + +## Prerequisites + + + +## Manage forks using $CLI_LONG +## Manage forks using $CONSOLE_SHORT + +To manage development forks: + + + +1. In [$CONSOLE][console], from the `Services` list, ensure the $SERVICE_SHORT + you want to recover has a status of `Running` or `Paused`. +1. Navigate to `Operations` > `Service Management` and click `Fork service`. +1. Configure the fork, then click `Fork service`. + + A fork of the $SERVICE_SHORT is created. The forked $SERVICE_SHORT shows in `Services` with a label + specifying which $SERVICE_SHORT it has been forked from. + + ![See the forked service](https://assets.timescale.com/docs/images/tsc-forked-service.webp) + +1. Update the connection strings in your app to use the fork. + + + +## Integrate $SERVICE_SHORT forks in your CI/CD pipeline + +To fork your $SERVICE_LONG using GitHub actions: + + + +1. **Store your $CLOUD_LONG API key as a GitHub Actions secret** + + 1. In [$CONSOLE_LONG][rest-api-credentials], click `Create credentials`. + 2. Save the `Public key` and `Secret key` locally, then click `Done`. + 1. In your GitHub repository, click `Settings`, open `Secrets and variables`, then click `Actions`. + 3. Click `New repository secret`, then set `Name` to `TIGERDATA_API_KEY` + 4. Set `Secret` to your $CLOUD_LONG API key in the following format `:`, then click `Add secret`. + +1. **Add the [GitHub Actions Marketplace][github-action] to your workflow YAML files** + + For example, the following workflow forks a $SERVICE_SHORT when a pull request is opened, + running tests against the fork, then automatically cleans up. + + ```yaml + name: Test on a service fork + on: pull_request + + jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Fork Database + id: fork + uses: timescale/fork-service@v1 + with: + project_id: ${{ secrets.TIGERDATA_PROJECT_ID }} + service_id: ${{ secrets.TIGERDATA_SERVICE_ID }} + api_key: ${{ secrets.TIGERDATA_API_KEY }} + fork_strategy: last-snapshot + cleanup: true + name: pr-${{ github.event.pull_request.number }} + + - name: Run Integration Tests + env: + DATABASE_URL: postgresql://tsdbadmin:${{ steps.fork.outputs.initial_password }}@${{ steps.fork.outputs.host }}:${{ steps.fork.outputs.port }}/tsdb?sslmode=require + run: | + npm install + npm test + - name: Run Migrations + env: + DATABASE_URL: postgresql://tsdbadmin:${{ steps.fork.outputs.initial_password }}@${{ steps.fork.outputs.host }}:${{ steps.fork.outputs.port }}/tsdb?sslmode=require + run: npm run migrate + ``` + + For the full list of inputs, outputs, and configuration options, see the [Tiger Data - Fork Service][github-action] in GitHub marketplace. + + [console]: https://console.cloud.timescale.com/dashboard/services [ha-replicas]: /about/use-timescale/:currentVersion:/ha-replicas/ @@ -47,3 +172,12 @@ including: [rapid-recovery]: /use-timescale/:currentVersion:/ha-replicas/#rapid-recovery [cross-region]: /use-timescale/:currentVersion:/backup-restore#enable-cross-region-backup [create-fork]: /use-timescale/:currentVersion:/backup-restore#create-a-point-in-time-recovery-fork +[automatic-backups]: /use-timescale/:currentVersion:/backup-restore/ +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan +[data-tiering]: /use-timescale/:currentVersion:/data-tiering/ +[tiered-forks]: /use-timescale/:currentVersion:/data-tiering/tiered-data-replicas-forks/ +[github-action]: https://github.com/marketplace/actions/tiger-data-fork-service +[delete-action]: https://github.com/marketplace/actions/tiger-data-delete-service +[connection-details]: /integrations/:currentVersion:/find-connection-details/ +[upgrades]: /use-timescale/:currentVersion:/upgrades/ +[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings \ No newline at end of file diff --git a/use-timescale/metrics-logging/aws-cloudwatch.md b/use-timescale/metrics-logging/aws-cloudwatch.md index 6368a212ee..2b3fb68ea2 100644 --- a/use-timescale/metrics-logging/aws-cloudwatch.md +++ b/use-timescale/metrics-logging/aws-cloudwatch.md @@ -40,5 +40,5 @@ This section shows you how to attach, monitor, edit, and delete a data exporter. [console-integrations]: https://console.cloud.timescale.com/dashboard/integrations [console-services]: https://console.cloud.timescale.com/dashboard/services [services-portal]: https://console.cloud.timescale.com/dashboard/services -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [projects]: /use-timescale/:currentVersion:/security/members/ \ No newline at end of file diff --git a/use-timescale/metrics-logging/datadog.md b/use-timescale/metrics-logging/datadog.md index 96c658bbb1..992c60ccca 100644 --- a/use-timescale/metrics-logging/datadog.md +++ b/use-timescale/metrics-logging/datadog.md @@ -41,5 +41,5 @@ This section shows you how to attach, monitor, edit, and delete a data exporter. [console-integrations]: https://console.cloud.timescale.com/dashboard/integrations [console-services]: https://console.cloud.timescale.com/dashboard/services [services-portal]: https://console.cloud.timescale.com/dashboard/services -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [projects]: /use-timescale/:currentVersion:/security/members/ diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index 422fadc2c7..f66715702c 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -601,9 +601,13 @@ module.exports = [ ], }, { - title: "Back up, fork, and recover services", + title: "Backup and recover services", href: "backup-restore", }, + { + title: "Fork services", + href: "fork-services", + }, { title: "Jobs", href: "jobs", diff --git a/use-timescale/security/overview.md b/use-timescale/security/overview.md index 8741a73d9c..064267a7a5 100644 --- a/use-timescale/security/overview.md +++ b/use-timescale/security/overview.md @@ -107,5 +107,5 @@ $CLOUD_LONG is SOC 2 Type 2 compliant. This ensures that organizations can secur [vpc-peering]: /use-timescale/:currentVersion:/security/vpc [security-at-timescale]: https://www.timescale.com/security [ip-allowlist]: /use-timescale/:currentVersion:/security/ip-allow-list/ -[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-plan +[pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [open-support-ticket]: https://console.cloud.timescale.com/dashboard/support \ No newline at end of file From e77e5919515e12f934189e5a474e9d35f3687916 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 14:03:46 +0200 Subject: [PATCH 07/20] chore: updates to integrate Jascha's stuff. --- use-timescale/fork-services.md | 6 +++--- use-timescale/page-index/page-index.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index bf876e2e3f..f267566e94 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -1,6 +1,6 @@ --- -title: Back up, fork, and recover services -excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery +title: Developer service forks +excerpt: With developer forks, spin up a branch, run your test, throw it away, or merge it back. products: [cloud] price_plans: [performance, scale, enterprise] keywords: [backups, restore] @@ -10,7 +10,7 @@ tags: [recovery, failures] import IntegrationPrereqs from "versionContent/_partials/_integration-prereqs.mdx"; import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Fork $SERVICE_SHORTs +# Developer $SERVICE_SHORT forks Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index f66715702c..f27229677c 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -605,7 +605,7 @@ module.exports = [ href: "backup-restore", }, { - title: "Fork services", + title: "Developer service forks", href: "fork-services", }, { From c521663c5cda46dd2733d1b650b2bc7a56c7a59a Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 15:58:21 +0200 Subject: [PATCH 08/20] Apply suggestions from code review Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-install.md | 2 +- use-timescale/backup-restore.md | 2 +- use-timescale/fork-services.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 06fd4b58ba..f2c1767b03 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -1,6 +1,6 @@ 1. ** Install $CLI_LONG** - Use the Terminal to install the $CLI_SHORT: + Use the terminal to install the $CLI_SHORT: diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 7fc1d349ca..c8db045894 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -11,7 +11,7 @@ import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; # Backup and recover $SERVICE_SHORTs $CLOUD_LONG provides comprehensive backup and recovery solutions to protect your data, including automatic daily backups, -cross-region protection and point-in-time recovery. +cross-region protection, and point-in-time recovery. ## Automatic backups diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index f267566e94..45d3c7f2ce 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -48,13 +48,13 @@ $CLOUD_LONG offers the following fork strategies: - You want the fastest possible fork creation - Slightly behind current data is acceptable -- `timestamp` - fork from a specific point in time within your [retention period][pricing]. +- `timestamp`: fork from a specific point in time within your [retention period][pricing]. Use when: - Disaster recovery from a known-good state - Investigating issues that occurred at a specific time - Testing "what-if" scenarios from historical data -The retention period for Point-in-time recovery and forking depends on your [pricing plan][pricing-plan-features]. +The retention period for point-in-time recovery and forking depends on your [pricing plan][pricing-plan-features]. ### Fork creation speed From af4ac8a2a197633f413110630b464b84d74cf0d1 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 16:08:21 +0200 Subject: [PATCH 09/20] chore: Updates on review. --- use-timescale/backup-restore.md | 4 ++-- use-timescale/fork-services.md | 8 ++++---- use-timescale/page-index/page-index.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index c8db045894..3b2543b86d 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -1,5 +1,5 @@ --- -title: Backup and recover services +title: Back up and recover services excerpt: Tiger Cloud backs up your data, making sure you always have something to fall back on for disaster recovery products: [cloud] keywords: [backups, restore] @@ -8,7 +8,7 @@ tags: [recovery, failures] import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Backup and recover $SERVICE_SHORTs +# Back up and recover $SERVICE_SHORTs $CLOUD_LONG provides comprehensive backup and recovery solutions to protect your data, including automatic daily backups, cross-region protection, and point-in-time recovery. diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 45d3c7f2ce..f5cc449704 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -73,9 +73,9 @@ a paid plan to a free plan service. - Copy-on-Write: you are only billed for storage for the chunks that diverge from the parent $SERVICE_SHORT. - Traditional: you are billed for storage for the whole $SERVICE_SHORT. - Object storage tier: - - [Tiered data][data-tiering] is shared across forks using Copy-on-Write and traditional storage: - - Chunks in tiered storage are only billed once, regardless of the number of forks - - Only new or modified chunks in a fork incur additional costs + - [Tiered data][data-tiering] is shared across forks using Copy-on-Write and traditional storage: + - Chunks in tiered storage are only billed once, regardless of the number of forks + - Only new or modified chunks in a fork incur additional costs For details, see [Replicas and forks with tiered data][tiered-forks]. @@ -171,7 +171,7 @@ To fork your $SERVICE_LONG using GitHub actions: [pitr]: /use-timescale/:currentVersion:/backup-restore/point-in-time-recovery/ [rapid-recovery]: /use-timescale/:currentVersion:/ha-replicas/#rapid-recovery [cross-region]: /use-timescale/:currentVersion:/backup-restore#enable-cross-region-backup -[create-fork]: /use-timescale/:currentVersion:/backup-restore#create-a-point-in-time-recovery-fork +[create-fork]: /use-timescale/:currentVersion:/backup-restore#recover-your-data-in-a-point-in-time-fork [automatic-backups]: /use-timescale/:currentVersion:/backup-restore/ [pricing-plan-features]: /about/:currentVersion:/pricing-and-account-management/#features-included-in-each-pricing-plan [data-tiering]: /use-timescale/:currentVersion:/data-tiering/ diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index 4270b02c73..1abe0c3392 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -606,7 +606,7 @@ module.exports = [ ], }, { - title: "Backup and recover services", + title: "Back up and recover services", href: "backup-restore", }, { From 3238b68b92536627ac306aa529b810c98c1776ba Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:35:20 +0200 Subject: [PATCH 10/20] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index f2c1767b03..173724ded9 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -49,7 +49,7 @@ ```shell - curl -fsSL https://tiger-cli-releases.s3.amazonaws.com/install/install.sh | sh + curl -fsSL https://cli.tigerdata.com | sh ``` From 387565f86cd24a9d0cb94c99fae7cc343db71b2f Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:37:36 +0200 Subject: [PATCH 11/20] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-service-forks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index 806fa4b53b..a6a1c6c542 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -9,7 +9,7 @@ To manage development forks: 1. **Fork the $SERVICE_SHORT** ```shell - tiger service fork tgrservice --now --no-wait --name bob + tiger service fork tgrservice --now --no-wait --name bob ``` By default a fork matches the resource of the parent $SERVICE_LONGs. For paid plans use the `cpu_millis` and `memory_gbs` for dedicated resources. From c53a64600235ec10e70165a1dd18daf9bede85e5 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:37:51 +0200 Subject: [PATCH 12/20] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-service-forks.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index a6a1c6c542..b037d6c9b4 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -11,8 +11,7 @@ To manage development forks: ```shell tiger service fork tgrservice --now --no-wait --name bob ``` - By default a fork matches the resource of the parent $SERVICE_LONGs. For paid plans use the `cpu_millis` and - `memory_gbs` for dedicated resources. + By default a fork matches the resource of the parent $SERVICE_LONGs. For paid plans specify `--cpu` and/or `--memory` for dedicated resources. You see something like: From 93800d3c9cd3b01fee4fc56bdddb3332a547b437 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:38:05 +0200 Subject: [PATCH 13/20] Update _partials/_devops-cli-service-forks.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-service-forks.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index b037d6c9b4..83bcfe65a6 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -55,7 +55,6 @@ To manage development forks: You see something like: ```terminaloutput 🗑️ Delete request accepted for service 'trgbobserv'. - ⏳ Waiting for service 'trgbobserv' to be deleted ✅ Service 'trgbobserv' has been successfully deleted. ``` From 9f711a780190fe5a1b32830565230f3286b9ecb4 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:38:25 +0200 Subject: [PATCH 14/20] Update use-timescale/fork-services.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- use-timescale/fork-services.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index f5cc449704..89ebaee1cd 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -22,8 +22,8 @@ including: - Configuration - An admin `tsdbadmin` user with a new password -Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT, you can query -them, run migrations, add indexes, or test new features. +Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT. You can query +them, run migrations, add indexes, or test new features against the fork without affecting the original service. Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy From 1217c246ce3cc52ee972bcc52e022d677c302dbb Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:39:09 +0200 Subject: [PATCH 15/20] Update use-timescale/fork-services.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- use-timescale/fork-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 89ebaee1cd..1340007c44 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -26,7 +26,7 @@ Forks are fully independent. Changes to the fork don't affect the parent $SERVIC them, run migrations, add indexes, or test new features against the fork without affecting the original service. Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real -datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create instant, zero-copy +datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create fast, zero-copy branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights from live data. From 36de26cbc21b8fe786c73b37f21991bc5c9ef633 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:39:40 +0200 Subject: [PATCH 16/20] Update use-timescale/fork-services.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- use-timescale/fork-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 1340007c44..5e74d68fb9 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -33,7 +33,7 @@ from live data. ## Understand $SERVICE_SHORT forks -You use $SERVICE_SHORT forks for disaster recovery, CI/CD automation, and testing and development. For example, you +You can use $SERVICE_SHORT forks for disaster recovery, CI/CD automation, and testing and development. For example, you can automatically test a major $PG upgrade on a fork before applying it to your production $SERVICE_SHORT. $CLOUD_LONG offers the following fork strategies: From 63b7a792391b4fb5d344ec414316193d2ba60a19 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:40:16 +0200 Subject: [PATCH 17/20] Update use-timescale/fork-services.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- use-timescale/fork-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 5e74d68fb9..f6dbbfef0f 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -73,7 +73,7 @@ a paid plan to a free plan service. - Copy-on-Write: you are only billed for storage for the chunks that diverge from the parent $SERVICE_SHORT. - Traditional: you are billed for storage for the whole $SERVICE_SHORT. - Object storage tier: - - [Tiered data][data-tiering] is shared across forks using Copy-on-Write and traditional storage: + - [Tiered data][data-tiering] is shared across forks using copy-on-write and traditional storage: - Chunks in tiered storage are only billed once, regardless of the number of forks - Only new or modified chunks in a fork incur additional costs From 9aed1c0a481976f04a92c93aa6b7a0ff630f713b Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 01:31:33 +0200 Subject: [PATCH 18/20] chore: Update on review. --- _partials/_devops-cli-install.md | 2 +- _partials/_devops-cli-service-forks.md | 18 +++++++++--------- use-timescale/backup-restore.md | 4 ++-- use-timescale/fork-services.md | 14 +++++++------- use-timescale/page-index/page-index.js | 2 +- use-timescale/services/service-management.md | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 173724ded9..7fd1e6c746 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -1,4 +1,4 @@ -1. ** Install $CLI_LONG** +1. **Install $CLI_LONG** Use the terminal to install the $CLI_SHORT: diff --git a/_partials/_devops-cli-service-forks.md b/_partials/_devops-cli-service-forks.md index 83bcfe65a6..88708ebc17 100644 --- a/_partials/_devops-cli-service-forks.md +++ b/_partials/_devops-cli-service-forks.md @@ -18,14 +18,14 @@ To manage development forks: ```terminaloutput 🍴 Forking service 'tgrservice' to create 'bob' at current state... ✅ Fork request accepted! - 📋 New Service ID: trgbobserv + 📋 New Service ID: 🔐 Password saved to system keyring for automatic authentication - 🎯 Set service 'trgbobserv' as default service. + 🎯 Set service '' as default service. ⏳ Service is being forked. Use 'tiger service list' to check status. ┌───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────┐ │ PROPERTY │ VALUE │ ├───────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ Service ID │ trgbobserv │ + │ Service ID │ │ │ Name │ bob │ │ Status │ │ │ Type │ TIMESCALEDB │ @@ -43,19 +43,19 @@ To manage development forks: 1. Use the CLI to request $SERVICE_SHORT delete: ```shell - tiger service delete trgbobserv + tiger service delete ``` 1. Validate the $SERVICE_SHORT delete: ```terminaloutput - Are you sure you want to delete service 'trgbobserv'? This operation cannot be undone. - Type the service ID 'trgbobserv' to confirm: - trgbobserv + Are you sure you want to delete service ''? This operation cannot be undone. + Type the service ID '' to confirm: + ``` You see something like: ```terminaloutput - 🗑️ Delete request accepted for service 'trgbobserv'. - ✅ Service 'trgbobserv' has been successfully deleted. + 🗑️ Delete request accepted for service ''. + ✅ Service '' has been successfully deleted. ``` \ No newline at end of file diff --git a/use-timescale/backup-restore.md b/use-timescale/backup-restore.md index 3b2543b86d..92a7cba99a 100644 --- a/use-timescale/backup-restore.md +++ b/use-timescale/backup-restore.md @@ -63,7 +63,7 @@ You can have one cross-region backup per $SERVICE_SHORT. To change the region of -## Recover your data in a point-in-time fork +## Create a point-in-time recovery fork @@ -128,7 +128,7 @@ You initiate a point-in-time recovery from a same-region or cross-region backup -## Create a development fork +## Create a service fork diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index f6dbbfef0f..119ec27f94 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -1,5 +1,5 @@ --- -title: Developer service forks +title: Fork services excerpt: With developer forks, spin up a branch, run your test, throw it away, or merge it back. products: [cloud] price_plans: [performance, scale, enterprise] @@ -10,7 +10,7 @@ tags: [recovery, failures] import IntegrationPrereqs from "versionContent/_partials/_integration-prereqs.mdx"; import CLIFORKS from "versionContent/_partials/_devops-cli-service-forks.mdx"; -# Developer $SERVICE_SHORT forks +# Fork $SERVICE_SHORTs Modern development is highly iterative. Developers and AI agents need safe spaces to test changes before deploying them to production. Forkable $SERVICE_SHORTs make this natural and easy. Spin up a branch, run your test, throw it away, or @@ -27,8 +27,8 @@ them, run migrations, add indexes, or test new features against the fork without Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create fast, zero-copy -branches of a production $SERVICE_SHORT that is isolated from production, but contains all the data needed for -analysis. You share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights +branches of a production $SERVICE_SHORT that are isolated from production, but contain all the data needed for +analysis. You can share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights from live data. ## Understand $SERVICE_SHORT forks @@ -58,10 +58,10 @@ The retention period for point-in-time recovery and forking depends on your [pri ### Fork creation speed -Fork creation speed depends on your pricing plan. +Fork creation speed depends on your type of service you want to create: -- Free plan: ~30-90 seconds. Uses a Copy-on-Write storage architecture with zero-copy between a fork and the parent. -- Paid plan: varies with the size of your $SERVICE_SHORT, typically 5-20+ minutes. Uses tradional storage architecture +- Free: ~30-90 seconds. Uses a Copy-on-Write storage architecture with zero-copy between a fork and the parent. +- Paid: varies with the size of your $SERVICE_SHORT, typically 5-20+ minutes. Uses tradional storage architecture with backup restore + WAL replay. ### Billing diff --git a/use-timescale/page-index/page-index.js b/use-timescale/page-index/page-index.js index 1abe0c3392..77f07d8aa5 100644 --- a/use-timescale/page-index/page-index.js +++ b/use-timescale/page-index/page-index.js @@ -610,7 +610,7 @@ module.exports = [ href: "backup-restore", }, { - title: "Developer service forks", + title: "Fork services", href: "fork-services", }, { diff --git a/use-timescale/services/service-management.md b/use-timescale/services/service-management.md index 0307c67e3a..f8e6bad7f8 100644 --- a/use-timescale/services/service-management.md +++ b/use-timescale/services/service-management.md @@ -72,7 +72,7 @@ alt="Fork a Tiger service" -## Create a development fork +## Create a service fork using the $CLI_SHORT From 11847ef94b956fea53a4eb3259d8cba5507b009f Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 09:24:04 +0200 Subject: [PATCH 19/20] chore: Updates on review. --- use-timescale/fork-services.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/use-timescale/fork-services.md b/use-timescale/fork-services.md index 119ec27f94..d235281abd 100644 --- a/use-timescale/fork-services.md +++ b/use-timescale/fork-services.md @@ -25,11 +25,10 @@ including: Forks are fully independent. Changes to the fork don't affect the parent $SERVICE_SHORT. You can query them, run migrations, add indexes, or test new features against the fork without affecting the original service. -Forks are a powerful way to share production-scale data safely. BI and data science teams often need access to real -datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create fast, zero-copy +Forks are a powerful way to share production-scale data safely. Testing, BI and data science teams often need access +to real datasets to build models or generate insights. With forkable $SERVICE_SHORTs, you easily create fast, zero-copy branches of a production $SERVICE_SHORT that are isolated from production, but contain all the data needed for -analysis. You can share this fork with your analytics teams in seconds. This dramatically reduces friction getting insights -from live data. +analysis. Rapid fork creation dramatically reduces friction getting insights from live data. ## Understand $SERVICE_SHORT forks @@ -66,8 +65,10 @@ Fork creation speed depends on your type of service you want to create: ### Billing -You can fork a service created in the free plan to a free or a paid plan. However, you cannot fork a service created in -a paid plan to a free plan service. +You can fork a free $SERVICE_SHORT to a free or a paid $SERVICE_SHORT. However, you cannot fork a paid +$SERVICE_SHORT to a free $SERVICE_SHORT. + +Billing on storage works in the following way: - High-performance storage: - Copy-on-Write: you are only billed for storage for the chunks that diverge from the parent $SERVICE_SHORT. From bb3515018249c5a12d20543c1ac01ae8f5896143 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 11:44:30 +0200 Subject: [PATCH 20/20] chore: Updates on review. --- ai/index.md | 4 ++-- getting-started/page-index/page-index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ai/index.md b/ai/index.md index df59104433..9fa6044fcf 100644 --- a/ai/index.md +++ b/ai/index.md @@ -1,6 +1,6 @@ --- title: Integrate AI with Tiger Data -excerpt: Build AI assistants with Tiger Data using pgvector, Tiger Eon, Tiger Agents, and MCP server for seamless data integration +excerpt: Build AI Assistants with Tiger Data using pgvector, Tiger Eon, Tiger Agents, and MCP server for seamless data integration products: [cloud, mst, self_hosted] keywords: [ai, vector, pgvector, pgvectorscale, pgai, tiger-eon, tiger-agents, mcp-server] tags: [ai, vector, agents, assistants] @@ -54,7 +54,7 @@ The [$MCP_LONG](/ai/:currentVersion:/mcp-server/) integrates directly with popul - Access comprehensive $COMPANY documentation during development - Use secure authentication and access control -Use the $MCP_SHORT when you want to manage $COMPANY resources from your AI assistant. +Use the $MCP_SHORT when you want to manage $COMPANY resources from your AI Assistant. diff --git a/getting-started/page-index/page-index.js b/getting-started/page-index/page-index.js index d33b812fad..459e52ec0e 100644 --- a/getting-started/page-index/page-index.js +++ b/getting-started/page-index/page-index.js @@ -23,7 +23,7 @@ module.exports = [ excerpt: "Create a Tiger service and connect to it", }, { - title: "DevOps as code with Tiger", + title: "DevOps as code with Tiger Cloud", href: "get-started-devops-as-code", excerpt: "Set up secure authentication for the Tiger REST API and create your first service", },