From bbdd988715e7986d68ebf11a7b98d1abbc511fed Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 21 Aug 2025 15:35:46 +0200 Subject: [PATCH 01/75] chore: add first files. --- api/api-reference.md | 831 ++++++++++++++++++ getting-started/get-started-devops-as-code.md | 225 +++++ 2 files changed, 1056 insertions(+) create mode 100644 api/api-reference.md create mode 100644 getting-started/get-started-devops-as-code.md diff --git a/api/api-reference.md b/api/api-reference.md new file mode 100644 index 0000000000..952a21e838 --- /dev/null +++ b/api/api-reference.md @@ -0,0 +1,831 @@ +# TigerData Cloud API Reference + +A comprehensive RESTful API for managing TigerData Cloud Platform resources including VPCs, services, and read replicas. + +## Overview + +**API Version:** 1.0.0 +**Base URL:** `https://api.tigerdata.com/public/v1` +**Development URL:** `https://console.dev.timescale.com/public/api/v1` +**Local Development URL:** `http://localhost:8080/public/api/v1` + +## Authentication + +The TigerData Cloud API uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header. + +### Basic Authentication +```http +Authorization: Basic +``` + +### Example +```bash +# Using cURL +curl -X GET "https://api.tigerdata.com/public/v1/projects/{project_id}/services" \ + -H "Authorization: Basic $(echo -n 'your_access_key:your_secret_key' | base64)" +``` + +### Error Responses +- **401 Unauthorized:** Invalid or missing credentials +- **403 Forbidden:** Insufficient permissions + +## Common Parameters + +### Path Parameters +- `project_id` (string): The unique identifier of the project (e.g., "rp1pz7uyae") +- `service_id` (string): The unique identifier of the service (e.g., "d1k5vk7hf2") +- `vpc_id` (string): The unique identifier of the VPC (e.g., "1234567890") +- `replica_set_id` (string): The unique identifier of the read replica set (e.g., "alb8jicdpr") +- `peering_id` (string): The unique identifier of the VPC peering connection (e.g., "1234567890") + +## VPC Management + +Virtual Private Clouds (VPCs) provide network isolation for your TigerData services. + +### List All VPCs + +```http +GET /projects/{project_id}/vpcs +``` + +Lists all Virtual Private Clouds in a project. + +**Response:** `200 OK` +```json +[ + { + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "google-europe-west1" + } +] +``` + +### Create a VPC + +```http +POST /projects/{project_id}/vpcs +``` + +Creates a new Virtual Private Cloud. + +**Request Body:** +```json +{ + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "google-europe-west1" +} +``` + +**Response:** `201 Created` +```json +{ + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "google-europe-west1" +} +``` + +**Error Responses:** +- `400 Bad Request`: Invalid request parameters + +### Get a VPC + +```http +GET /projects/{project_id}/vpcs/{vpc_id} +``` + +Retrieves details of a specific VPC. + +**Response:** `200 OK` +```json +{ + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "google-europe-west1" +} +``` + +**Error Responses:** +- `404 Not Found`: VPC not found + +### Rename a VPC + +```http +POST /projects/{project_id}/vpcs/{vpc_id}/rename +``` + +Updates the name of a specific VPC. + +**Request Body:** +```json +{ + "name": "my-renamed-vpc" +} +``` + +**Response:** `200 OK` +```json +{ + "id": "1234567890", + "name": "my-renamed-vpc", + "cidr": "10.0.0.0/16", + "region_code": "google-europe-west1" +} +``` + +**Error Responses:** +- `400 Bad Request`: Invalid request parameters +- `404 Not Found`: VPC not found + +### Delete a VPC + +```http +DELETE /projects/{project_id}/vpcs/{vpc_id} +``` + +Deletes a specific VPC. + +**Response:** `204 No Content` + +**Error Responses:** +- `404 Not Found`: VPC not found + +## VPC Peering + +Manage peering connections between VPCs across different accounts and regions. + +### List VPC Peerings + +```http +GET /projects/{project_id}/vpcs/{vpc_id}/peerings +``` + +Retrieves all VPC peering connections for a given VPC. + +**Response:** `200 OK` +```json +[ + { + "id": "1234567890", + "peer_account_id": "acc-12345", + "peer_region_code": "aws-us-east-1", + "peer_vpc_id": "1234567890", + "provisioned_id": "1234567890", + "status": "active", + "error_message": null + } +] +``` + +### Create VPC Peering + +```http +POST /projects/{project_id}/vpcs/{vpc_id}/peerings +``` + +Creates a new VPC peering connection. + +**Request Body:** +```json +{ + "peer_account_id": "acc-12345", + "peer_region_code": "aws-us-east-1", + "peer_vpc_id": "1234567890" +} +``` + +**Response:** `201 Created` +```json +{ + "id": "1234567890", + "peer_account_id": "acc-12345", + "peer_region_code": "aws-us-east-1", + "peer_vpc_id": "1234567890", + "provisioned_id": "1234567890", + "status": "pending" +} +``` + +### Get VPC Peering + +```http +GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} +``` + +Retrieves details of a specific VPC peering connection. + +### Delete VPC Peering + +```http +DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} +``` + +Deletes a specific VPC peering connection. + +**Response:** `204 No Content` + +## Service Management + +Manage database services including TimescaleDB, PostgreSQL, and Vector databases. + +### List All Services + +```http +GET /projects/{project_id}/services +``` + +Retrieves all services within a project. + +**Response:** `200 OK` +```json +[ + { + "service_id": "d1k5vk7hf2", + "project_id": "rp1pz7uyae", + "name": "my-production-db", + "region_code": "google-europe-west1", + "service_type": "TIMESCALEDB", + "status": "READY", + "created": "2024-01-15T10:30:00Z", + "initial_password": "a-very-secure-initial-password", + "paused": false, + "resources": [ + { + "id": "resource-1", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "gp2" + } + } + ], + "endpoint": { + "host": "my-service.com", + "port": 5432 + } + } +] +``` + +### Create a Service + +```http +POST /projects/{project_id}/services +``` + +Creates a new database service. This is an asynchronous operation. + +**Request Body:** +```json +{ + "name": "my-production-db", + "service_type": "TIMESCALEDB", + "region_code": "google-europe-west1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 +} +``` + +**Response:** `202 Accepted` +```json +{ + "service_id": "d1k5vk7hf2", + "project_id": "rp1pz7uyae", + "name": "my-production-db", + "region_code": "google-europe-west1", + "service_type": "TIMESCALEDB", + "status": "QUEUED", + "created": "2024-01-15T10:30:00Z", + "initial_password": "a-very-secure-initial-password" +} +``` + +**Service Types:** +- `TIMESCALEDB`: TimescaleDB service +- `POSTGRES`: PostgreSQL service +- `VECTOR`: Vector database service + +**Error Responses:** +- `400 Bad Request`: Invalid service configuration + +### Get a Service + +```http +GET /projects/{project_id}/services/{service_id} +``` + +Retrieves details of a specific service. + +**Response:** `200 OK` +```json +{ + "service_id": "d1k5vk7hf2", + "project_id": "rp1pz7uyae", + "name": "my-production-db", + "region_code": "google-europe-west1", + "service_type": "TIMESCALEDB", + "status": "READY", + "created": "2024-01-15T10:30:00Z", + "paused": false, + "resources": [ + { + "id": "resource-1", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "gp2" + } + } + ], + "metadata": { + "environment": "PROD" + }, + "endpoint": { + "host": "my-service.com", + "port": 5432 + }, + "connection_pooler": { + "endpoint": { + "host": "pooler.my-service.com", + "port": 5432 + } + } +} +``` + +**Service Status:** +- `QUEUED`: Service creation is queued +- `DELETING`: Service is being deleted +- `CONFIGURING`: Service is being configured +- `READY`: Service is ready for use +- `DELETED`: Service has been deleted +- `UNSTABLE`: Service is in an unstable state +- `PAUSING`: Service is being paused +- `PAUSED`: Service is paused +- `RESUMING`: Service is being resumed +- `UPGRADING`: Service is being upgraded +- `OPTIMIZING`: Service is being optimized + +### Delete a Service + +```http +DELETE /projects/{project_id}/services/{service_id} +``` + +Deletes a specific service. This is an asynchronous operation. + +**Response:** `202 Accepted` + +**Error Responses:** +- `404 Not Found`: Service not found + +### Resize a Service + +```http +POST /projects/{project_id}/services/{service_id}/resize +``` + +Changes CPU and memory allocation for a service. + +**Request Body:** +```json +{ + "cpu_millis": 2000, + "memory_gbs": 8 +} +``` + +**Response:** `202 Accepted` + +### Update Service Password + +```http +POST /projects/{project_id}/services/{service_id}/updatePassword +``` + +Sets a new master password for the service. + +**Request Body:** +```json +{ + "password": "a-very-secure-new-password" +} +``` + +**Response:** `204 No Content` + +### Set Service Environment + +```http +POST /projects/{project_id}/services/{service_id}/setEnvironment +``` + +Sets the environment type for the service. + +**Request Body:** +```json +{ + "environment": "PROD" +} +``` + +**Environment Values:** +- `PROD`: Production environment +- `DEV`: Development environment + +**Response:** `200 OK` +```json +{ + "message": "Action completed successfully." +} +``` + +### Configure High Availability + +```http +POST /projects/{project_id}/services/{service_id}/setHA +``` + +Changes the HA configuration for a service. This is an asynchronous operation. + +**Request Body:** +```json +{ + "sync_replica_count": 1, + "replica_count": 2 +} +``` + +**Response:** `202 Accepted` + +### Connection Pooler Management + +#### Enable Connection Pooler + +```http +POST /projects/{project_id}/services/{service_id}/enablePooler +``` + +Activates the connection pooler for a service. + +**Response:** `200 OK` +```json +{ + "message": "Action completed successfully." +} +``` + +#### Disable Connection Pooler + +```http +POST /projects/{project_id}/services/{service_id}/disablePooler +``` + +Deactivates the connection pooler for a service. + +**Response:** `200 OK` + +### Service VPC Operations + +#### Attach Service to VPC + +```http +POST /projects/{project_id}/services/{service_id}/attachToVPC +``` + +Associates a service with a VPC. + +**Request Body:** +```json +{ + "vpc_id": "1234567890" +} +``` + +**Response:** `202 Accepted` + +**Error Responses:** +- `409 Conflict`: Service already attached to a VPC + +#### Detach Service from VPC + +```http +POST /projects/{project_id}/services/{service_id}/detachFromVPC +``` + +Disassociates a service from its VPC. + +**Request Body:** +```json +{ + "vpc_id": "1234567890" +} +``` + +**Response:** `202 Accepted` + +### Fork a Service + +```http +POST /projects/{project_id}/services/{service_id}/forkService +``` + +Creates a new, independent service by taking a snapshot of an existing one. + +**Request Body:** +```json +{ + "name": "forked-customer-db" +} +``` + +**Response:** `202 Accepted` +```json +{ + "service_id": "new-service-id", + "name": "forked-customer-db", + "forked_from": { + "project_id": "rp1pz7uyae", + "service_id": "d1k5vk7hf2", + "is_standby": false + }, + "status": "CONFIGURING" +} +``` + +## Read Replica Sets + +Manage read replicas for improved read performance and geographical distribution. + +### List Read Replica Sets + +```http +GET /projects/{project_id}/services/{service_id}/replicaSets +``` + +Retrieves all read replica sets associated with a primary service. + +**Response:** `200 OK` +```json +[ + { + "id": "alb8jicdpr", + "name": "reporting-replica-1", + "status": "active", + "nodes": 2, + "cpu_millis": 250, + "memory_gbs": 0.5, + "metadata": { + "environment": "PROD" + }, + "endpoint": { + "host": "replica.my-service.com", + "port": 5432 + } + } +] +``` + +**Replica Set Status:** +- `creating`: Replica set is being created +- `active`: Replica set is active and ready +- `resizing`: Replica set is being resized +- `deleting`: Replica set is being deleted +- `error`: Replica set encountered an error + +### Create a Read Replica Set + +```http +POST /projects/{project_id}/services/{service_id}/replicaSets +``` + +Creates a new read replica set. This is an asynchronous operation. + +**Request Body:** +```json +{ + "name": "my-reporting-replica", + "nodes": 2, + "cpu_millis": 250, + "memory_gbs": 0.5 +} +``` + +**Response:** `202 Accepted` +```json +{ + "id": "alb8jicdpr", + "name": "my-reporting-replica", + "status": "creating", + "nodes": 2, + "cpu_millis": 250, + "memory_gbs": 0.5 +} +``` + +### Delete a Read Replica Set + +```http +DELETE /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id} +``` + +Deletes a specific read replica set. This is an asynchronous operation. + +**Response:** `202 Accepted` + +### Resize a Read Replica Set + +```http +POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/resize +``` + +Changes resource allocation for a read replica set. + +**Request Body:** +```json +{ + "cpu_millis": 500, + "memory_gbs": 1.0, + "nodes": 3 +} +``` + +**Response:** `202 Accepted` + +### Read Replica Connection Pooler + +#### Enable Replica Pooler + +```http +POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/enablePooler +``` + +Activates the connection pooler for a read replica set. + +**Response:** `200 OK` + +#### Disable Replica Pooler + +```http +POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/disablePooler +``` + +Deactivates the connection pooler for a read replica set. + +**Response:** `200 OK` + +### Set Replica Environment + +```http +POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/setEnvironment +``` + +Sets the environment type for a read replica set. + +**Request Body:** +```json +{ + "environment": "PROD" +} +``` + +**Response:** `200 OK` + +## Data Models + +### VPC Object +```json +{ + "id": "string", + "name": "string", + "cidr": "string", + "region_code": "string" +} +``` + +### Service Object +```json +{ + "service_id": "string", + "project_id": "string", + "name": "string", + "region_code": "string", + "service_type": "TIMESCALEDB|POSTGRES|VECTOR", + "created": "2024-01-15T10:30:00Z", + "initial_password": "string", + "paused": false, + "status": "READY|CONFIGURING|QUEUED|...", + "resources": [ + { + "id": "string", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "string" + } + } + ], + "metadata": { + "environment": "PROD|DEV" + }, + "endpoint": { + "host": "string", + "port": 5432 + }, + "connection_pooler": { + "endpoint": { + "host": "string", + "port": 5432 + } + } +} +``` + +### Peering Object +```json +{ + "id": "string", + "peer_account_id": "string", + "peer_region_code": "string", + "peer_vpc_id": "string", + "provisioned_id": "string", + "status": "string", + "error_message": "string" +} +``` + +### Read Replica Set Object +```json +{ + "id": "string", + "name": "string", + "status": "creating|active|resizing|deleting|error", + "nodes": 2, + "cpu_millis": 250, + "memory_gbs": 0.5, + "metadata": { + "environment": "PROD|DEV" + }, + "endpoint": { + "host": "string", + "port": 5432 + }, + "connection_pooler": { + "endpoint": { + "host": "string", + "port": 5432 + } + } +} +``` + +## Error Handling + +The API uses standard HTTP status codes and returns error details in JSON format. + +### Error Response Format +```json +{ + "code": "ERROR_CODE", + "message": "Human-readable error description" +} +``` + +### Common Error Codes +- `400 Bad Request`: Invalid request parameters or malformed JSON +- `401 Unauthorized`: Missing or invalid authentication credentials +- `403 Forbidden`: Insufficient permissions for the requested operation +- `404 Not Found`: Requested resource does not exist +- `409 Conflict`: Request conflicts with current resource state +- `500 Internal Server Error`: Unexpected server error + +### Example Error Response +```json +{ + "code": "INVALID_REQUEST", + "message": "The service_type field is required" +} +``` + +## Rate Limiting + +The API implements rate limiting to ensure fair usage: + +- **Development Environment**: More lenient rate limits for testing +- **Production Environment**: Strict rate limits for stability +- **Local Development**: No rate limits applied + +When rate limits are exceeded, the API returns `429 Too Many Requests` with retry information in the response headers. + +## Support and Contact + +For API support and questions: +- **Support**: [TigerData Support](https://www.tigerdata.com/contact) +- **License**: [Terms of Service](https://www.tigerdata.com/legal/terms) +- **Documentation**: This API reference follows the OpenAPI 3.0.3 specification \ No newline at end of file diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md new file mode 100644 index 0000000000..df696d561a --- /dev/null +++ b/getting-started/get-started-devops-as-code.md @@ -0,0 +1,225 @@ +--- +title: "Set up TigerData Cloud API and create your first service" +excerpt: "Configure secure authentication and create a new database service using the TigerData Cloud API" +keywords: + - authentication + - service creation + - API setup + - security +tags: + - setup + - security + - services + - authentication +--- + +# Set up TigerData Cloud API and create your first service + +Set up secure authentication for the TigerData Cloud API and create your first database service. This procedure covers credential configuration, security best practices, and service creation using the RESTful API. + +## Prerequisites + +Complete the following prerequisites before setting up the API: + +- Valid TigerData Cloud account with API access +- Project ID from your TigerData Cloud console +- API access key and secret key with appropriate permissions +- Command-line tool (cURL, HTTPie, or programming language with HTTP client) +- OpenAPI specification file for reference +- Network connectivity to TigerData Cloud API endpoints + +## Configure secure authentication + +The TigerData Cloud API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include proper authentication headers. + +### Set up API credentials + +1. Obtain your API credentials from the TigerData Cloud console: + - Access key: Your unique API identifier + - Secret key: Your private authentication token + - Project ID: The identifier for your TigerData project + +2. Store credentials securely using environment variables: + ```bash + export TIGERDATA_ACCESS_KEY="your-access-key" + export TIGERDATA_SECRET_KEY="your-secret-key" + export TIGERDATA_PROJECT_ID="your-project-id" + ``` + +3. Verify credential format: + - Access key format: Alphanumeric string (typically 10-20 characters) + - Secret key format: Base64-encoded string (typically 40-60 characters) + - Project ID format: Alphanumeric string starting with project prefix + +### Configure API endpoint + +Set the appropriate API base URL for your environment: + +```bash +# Development environment (recommended for testing) +export API_BASE_URL="https://console.dev.timescale.com/public/api/v1" + +# Production environment +export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" + +# Local development (if running local server) +export API_BASE_URL="http://localhost:8080/public/api/v1" +``` + +## Test API connection + +Verify your authentication setup and API connectivity before creating resources. + +### Perform health check + +Test the API connection using a simple health check request: + +```bash +curl -X GET "${API_BASE_URL}/healthcheck" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" +``` + +Expected response: +```json +{ + "status": "healthy", + "timestamp": "2024-01-15T10:30:00Z" +} +``` + +### Validate authentication + +Test authentication by listing existing services: + +```bash +curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" +``` + +Successful authentication returns a JSON array of services (may be empty for new projects). + +## Create your first service + +Create a new database service using the TigerData Cloud API with secure configuration. + +### Prepare service configuration + +1. Define the service creation payload in JSON format: + ```json + { + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "google-europe-west1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + } + ``` + +2. Save the configuration to a file for reuse: + ```bash + cat > service-config.json << 'EOF' + { + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "google-europe-west1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + } + EOF + ``` + +### Submit service creation request + +1. Create the service using the POST endpoint: + ```bash + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d @service-config.json + ``` + +2. Save the service ID from the response: + ```bash + # Extract service_id from the JSON response + export SERVICE_ID="extracted-service-id-from-response" + ``` + +The API returns HTTP 202 (Accepted) for service creation requests, indicating the operation is asynchronous. + +### Monitor service creation progress + +1. Check service status periodically: + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" + ``` + +2. Wait for status to change from `CONFIGURING` to `READY`: + - `QUEUED`: Service creation request is queued + - `CONFIGURING`: Service is being provisioned + - `READY`: Service is available for use + - `UNSTABLE`: Service encountered issues during creation + +Service creation typically completes within 5-10 minutes depending on the configuration. + +## Security best practices + +Follow these security guidelines when working with the TigerData Cloud API: + +### Credential management +- Store API credentials as environment variables, not in code +- Use credential rotation policies for production environments +- Limit credential scope to minimum required permissions +- Never commit credentials to version control systems + +### Network security +- Use HTTPS endpoints exclusively for API communication +- Implement proper certificate validation in your HTTP clients +- Consider IP allowlisting for production API access +- Monitor API access logs for suspicious activity + +### Access control +- Create dedicated service accounts for automated API access +- Use principle of least privilege for API key permissions +- Regularly audit and review API access patterns +- Implement proper session management for interactive applications + +### Data protection +- Encrypt sensitive data before API transmission when applicable +- Use secure storage for service connection strings and passwords +- Implement proper backup and recovery procedures for created services +- Follow data residency requirements for your region + +## Alternative implementation using API explorer + +The TigerData Cloud project includes a command-line API explorer tool that simplifies API interactions: + +### Using the API explorer + +1. Navigate to the API explorer directory: + ```bash + cd api_explorer + ``` + +2. Configure the environment interactively: + ```bash + go run . config setup + ``` + +3. Test the connection: + ```bash + go run . health + ``` + +4. Create a service using the simplified command: + ```bash + go run . service create + ``` + +The API explorer automatically handles authentication, request formatting, and response parsing, making it ideal for development and testing workflows. + +Your TigerData Cloud API is now configured securely, and you have successfully created your first database service. The service provides a managed TimescaleDB instance with the specified resources and configuration. \ No newline at end of file From a48e482ccf516fce6a66bef4c2630fa320a0a6f1 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 25 Aug 2025 09:57:36 +0200 Subject: [PATCH 02/75] chore: first draft of the REST API docs --- api/api-reference.md | 11 +- api/page-index/page-index.js | 6 + getting-started/get-started-devops-as-code.md | 307 ++++++++---------- getting-started/page-index/page-index.js | 5 + 4 files changed, 159 insertions(+), 170 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index 952a21e838..e100eb85a0 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -1,6 +1,13 @@ -# TigerData Cloud API Reference +--- +title: Tiger Cloud API reference +excerpt: A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. +tags: [REST] +products: [cloud] +--- -A comprehensive RESTful API for managing TigerData Cloud Platform resources including VPCs, services, and read replicas. +# Tiger Cloud API reference + +A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. ## Overview diff --git a/api/page-index/page-index.js b/api/page-index/page-index.js index 049f79920a..f2c4411d9f 100644 --- a/api/page-index/page-index.js +++ b/api/page-index/page-index.js @@ -587,6 +587,12 @@ module.exports = [ description: "An overview of what different tags represent in the API section of TigerData Documentation.", }, + { + title: "Tiger Cloud REST API", + href: "api-reference", + description: + "A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas.", + }, { title: "Compression (Old API, replaced by Hypercore)", href: "compression", diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index df696d561a..6ddc27b4aa 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -1,6 +1,6 @@ --- -title: "Set up TigerData Cloud API and create your first service" -excerpt: "Configure secure authentication and create a new database service using the TigerData Cloud API" +title: "Set up Tiger Cloud REST API and create your first service" +excerpt: "Configure secure authentication and create a new database service using the Tiger Cloud REST API" keywords: - authentication - service creation @@ -13,111 +13,106 @@ tags: - authentication --- -# Set up TigerData Cloud API and create your first service +import IntegrationPrereqs from "versionContent/_partials/_integration-prereqs.mdx"; -Set up secure authentication for the TigerData Cloud API and create your first database service. This procedure covers credential configuration, security best practices, and service creation using the RESTful API. +# Get started with Tiger Cloud REST API -## Prerequisites - -Complete the following prerequisites before setting up the API: - -- Valid TigerData Cloud account with API access -- Project ID from your TigerData Cloud console -- API access key and secret key with appropriate permissions -- Command-line tool (cURL, HTTPie, or programming language with HTTP client) -- OpenAPI specification file for reference -- Network connectivity to TigerData Cloud API endpoints - -## Configure secure authentication - -The TigerData Cloud API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include proper authentication headers. - -### Set up API credentials - -1. Obtain your API credentials from the TigerData Cloud console: - - Access key: Your unique API identifier - - Secret key: Your private authentication token - - Project ID: The identifier for your TigerData project - -2. Store credentials securely using environment variables: - ```bash - export TIGERDATA_ACCESS_KEY="your-access-key" - export TIGERDATA_SECRET_KEY="your-secret-key" - export TIGERDATA_PROJECT_ID="your-project-id" - ``` - -3. Verify credential format: - - Access key format: Alphanumeric string (typically 10-20 characters) - - Secret key format: Base64-encoded string (typically 40-60 characters) - - Project ID format: Alphanumeric string starting with project prefix - -### Configure API endpoint - -Set the appropriate API base URL for your environment: +[Tiger Cloud REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read +replicas. -```bash -# Development environment (recommended for testing) -export API_BASE_URL="https://console.dev.timescale.com/public/api/v1" +This page shows you how to set up secure authentication for the TigerData Cloud REST API and create your first service. -# Production environment -export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" - -# Local development (if running local server) -export API_BASE_URL="http://localhost:8080/public/api/v1" -``` - -## Test API connection - -Verify your authentication setup and API connectivity before creating resources. - -### Perform health check - -Test the API connection using a simple health check request: - -```bash -curl -X GET "${API_BASE_URL}/healthcheck" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" -``` +## Prerequisites -Expected response: -```json -{ - "status": "healthy", - "timestamp": "2024-01-15T10:30:00Z" -} -``` + -### Validate authentication +- An [API access key and secret key][rest-api-credentials] +- A Command-line tool for REST calls +- Network connectivity to Tiger Cloud REST API endpoints -Test authentication by listing existing services: +## Configure secure authentication -```bash -curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" -``` +Tiger Cloud REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include +proper authentication headers. + + + +1. **Set up API credentials** + + 1. Obtain your API credentials from the TigerData Cloud console: + - Access key: Your unique API identifier + - Secret key: Your private authentication token + - Project ID: The identifier for your TigerData project + + 2. Store credentials securely using environment variables: + ```bash + export TIGERDATA_ACCESS_KEY="your-access-key" + export TIGERDATA_SECRET_KEY="your-secret-key" + export TIGERDATA_PROJECT_ID="your-project-id" + ``` + + 3. Verify credential format: + - Access key format: Alphanumeric string (typically 10-20 characters) + - Secret key format: Base64-encoded string (typically 40-60 characters) + - Project ID format: Alphanumeric string starting with project prefix + +1. **Configure API endpoint** + + Set the appropriate API base URL for your environment: + + ```bash + # Development environment (recommended for testing) + export API_BASE_URL="https://console.dev.timescale.com/public/api/v1" + + # Production environment + export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" + + # Local development (if running local server) + export API_BASE_URL="http://localhost:8080/public/api/v1" + ``` + +1. **Test API connection** + + Verify your authentication setup and API connectivity before creating resources. + +1. **Perform health check** + + Test the API connection using a simple health check request: + + ```bash + curl -X GET "${API_BASE_URL}/healthcheck" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" + ``` + + Expected response: + ```json + { + "status": "healthy", + "timestamp": "2024-01-15T10:30:00Z" + } + ``` + +1. **Validate authentication** + + Test authentication by listing existing services: + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" + ``` + + Successful authentication returns a JSON array of services (may be empty for new projects). ## Create your first service -Create a new database service using the TigerData Cloud API with secure configuration. - -### Prepare service configuration +Create a new database service using the Tiger Cloud REST API with secure configuration. -1. Define the service creation payload in JSON format: - ```json - { - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "google-europe-west1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - } - ``` + -2. Save the configuration to a file for reuse: +1. **Define the service creation payload in a JSON file** ```bash cat > service-config.json << 'EOF' { @@ -131,95 +126,71 @@ Create a new database service using the TigerData Cloud API with secure configur EOF ``` -### Submit service creation request - -1. Create the service using the POST endpoint: - ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d @service-config.json - ``` - -2. Save the service ID from the response: - ```bash - # Extract service_id from the JSON response - export SERVICE_ID="extracted-service-id-from-response" - ``` +1. **Submit service creation request** -The API returns HTTP 202 (Accepted) for service creation requests, indicating the operation is asynchronous. + 1. Create the service using the POST endpoint: + ```bash + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d @service-config.json + ``` -### Monitor service creation progress + 2. Save the service ID from the response: + ```bash + # Extract service_id from the JSON response + export SERVICE_ID="extracted-service-id-from-response" + ``` -1. Check service status periodically: - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" - ``` + The API returns HTTP 202 (Accepted) for service creation requests, indicating the operation is asynchronous. -2. Wait for status to change from `CONFIGURING` to `READY`: - - `QUEUED`: Service creation request is queued - - `CONFIGURING`: Service is being provisioned - - `READY`: Service is available for use - - `UNSTABLE`: Service encountered issues during creation +1. **Monitor service creation progress** -Service creation typically completes within 5-10 minutes depending on the configuration. + 1. Check service status periodically: + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" + ``` -## Security best practices + 2. Wait for status to change from `CONFIGURING` to `READY`: + - `QUEUED`: Service creation request is queued + - `CONFIGURING`: Service is being provisioned + - `READY`: Service is available for use + - `UNSTABLE`: Service encountered issues during creation -Follow these security guidelines when working with the TigerData Cloud API: + Service creation typically completes within 5-10 minutes depending on the configuration. -### Credential management -- Store API credentials as environment variables, not in code -- Use credential rotation policies for production environments -- Limit credential scope to minimum required permissions -- Never commit credentials to version control systems + -### Network security -- Use HTTPS endpoints exclusively for API communication -- Implement proper certificate validation in your HTTP clients -- Consider IP allowlisting for production API access -- Monitor API access logs for suspicious activity - -### Access control -- Create dedicated service accounts for automated API access -- Use principle of least privilege for API key permissions -- Regularly audit and review API access patterns -- Implement proper session management for interactive applications +## Security best practices -### Data protection -- Encrypt sensitive data before API transmission when applicable -- Use secure storage for service connection strings and passwords -- Implement proper backup and recovery procedures for created services -- Follow data residency requirements for your region +Follow these security guidelines when working with the Tiger Cloud REST API: -## Alternative implementation using API explorer +- **Credential management** + - Store API credentials as environment variables, not in code + - Use credential rotation policies for production environments + - Limit credential scope to minimum required permissions + - Never commit credentials to version control systems -The TigerData Cloud project includes a command-line API explorer tool that simplifies API interactions: +- **Network security** + - Use HTTPS endpoints exclusively for API communication + - Implement proper certificate validation in your HTTP clients + - Consider IP allowlisting for production API access + - Monitor API access logs for suspicious activity -### Using the API explorer +- **Access control** + - Create dedicated service accounts for automated API access + - Use principle of least privilege for API key permissions + - Regularly audit and review API access patterns + - Implement proper session management for interactive applications -1. Navigate to the API explorer directory: - ```bash - cd api_explorer - ``` - -2. Configure the environment interactively: - ```bash - go run . config setup - ``` - -3. Test the connection: - ```bash - go run . health - ``` - -4. Create a service using the simplified command: - ```bash - go run . service create - ``` +- **Data protection** + - Encrypt sensitive data before API transmission when applicable + - Use secure storage for service connection strings and passwords + - Implement proper backup and recovery procedures for created services + - Follow data residency requirements for your region -The API explorer automatically handles authentication, request formatting, and response parsing, making it ideal for development and testing workflows. -Your TigerData Cloud API is now configured securely, and you have successfully created your first database service. The service provides a managed TimescaleDB instance with the specified resources and configuration. \ No newline at end of file +[rest-api-reference]: /api/:currentVersion:/api-reference/ +[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings \ No newline at end of file diff --git a/getting-started/page-index/page-index.js b/getting-started/page-index/page-index.js index 08356efc97..8c52c4857a 100644 --- a/getting-started/page-index/page-index.js +++ b/getting-started/page-index/page-index.js @@ -22,6 +22,11 @@ module.exports = [ href: "services", excerpt: "Create a Tiger Cloud service and connect to it", }, + { + title: "Get started with Tiger Cloud REST API", + href: "get-started-devops-as-code", + excerpt: "Set up secure authentication for the TigerData Cloud REST API and create your first service", + }, { title: "Run your queries from Tiger Cloud Console", href: "run-queries-from-console", From 496846a8b19ceb758b6a0ef5cda3e59034b0c8c0 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 27 Aug 2025 14:17:44 +0200 Subject: [PATCH 03/75] chore: update and test. --- _partials/_prereqs-cloud-account-only.md | 5 ++ getting-started/get-started-devops-as-code.md | 51 +++++++------------ integrations/find-connection-details.md | 30 ++++++++++- 3 files changed, 52 insertions(+), 34 deletions(-) create mode 100644 _partials/_prereqs-cloud-account-only.md diff --git a/_partials/_prereqs-cloud-account-only.md b/_partials/_prereqs-cloud-account-only.md new file mode 100644 index 0000000000..9d31734690 --- /dev/null +++ b/_partials/_prereqs-cloud-account-only.md @@ -0,0 +1,5 @@ +To follow the steps on this page: + +* Create a target [$CLOUD_LONG account][create-account]. + +[create-account]: /getting-started/:currentVersion:/services/#create-a-tiger-cloud-account \ No newline at end of file diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 6ddc27b4aa..f453883df7 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -13,69 +13,52 @@ tags: - authentication --- -import IntegrationPrereqs from "versionContent/_partials/_integration-prereqs.mdx"; +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; # Get started with Tiger Cloud REST API -[Tiger Cloud REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read +[$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read replicas. This page shows you how to set up secure authentication for the TigerData Cloud REST API and create your first service. ## Prerequisites - - -- An [API access key and secret key][rest-api-credentials] + - A Command-line tool for REST calls - Network connectivity to Tiger Cloud REST API endpoints ## Configure secure authentication -Tiger Cloud REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include +$CLOUD_LONG REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include proper authentication headers. 1. **Set up API credentials** - 1. Obtain your API credentials from the TigerData Cloud console: - - Access key: Your unique API identifier - - Secret key: Your private authentication token - - Project ID: The identifier for your TigerData project - - 2. Store credentials securely using environment variables: + 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: + ```bash - export TIGERDATA_ACCESS_KEY="your-access-key" - export TIGERDATA_SECRET_KEY="your-secret-key" export TIGERDATA_PROJECT_ID="your-project-id" ``` - 3. Verify credential format: - - Access key format: Alphanumeric string (typically 10-20 characters) - - Secret key format: Base64-encoded string (typically 40-60 characters) - - Project ID format: Alphanumeric string starting with project prefix + 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: + + ```bash + export TIGERDATA_ACCESS_KEY="Public key" + export TIGERDATA_SECRET_KEY="Secret key" + ``` 1. **Configure API endpoint** - Set the appropriate API base URL for your environment: + Set the API base URL for your environment: ```bash - # Development environment (recommended for testing) - export API_BASE_URL="https://console.dev.timescale.com/public/api/v1" - - # Production environment export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" - - # Local development (if running local server) - export API_BASE_URL="http://localhost:8080/public/api/v1" ``` -1. **Test API connection** - - Verify your authentication setup and API connectivity before creating resources. - -1. **Perform health check** +1. **Perform health check and test your connection to $CLOUD_LONG REST API** Test the API connection using a simple health check request: @@ -118,7 +101,7 @@ Create a new database service using the Tiger Cloud REST API with secure configu { "name": "my-first-service", "service_type": "TIMESCALEDB", - "region_code": "google-europe-west1", + "region_code": "us-east-1", "replica_count": 1, "cpu_millis": 1000, "memory_gbs": 4 @@ -193,4 +176,6 @@ Follow these security guidelines when working with the Tiger Cloud REST API: [rest-api-reference]: /api/:currentVersion:/api-reference/ -[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings \ No newline at end of file +[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 \ No newline at end of file diff --git a/integrations/find-connection-details.md b/integrations/find-connection-details.md index 7df2ce0722..2f46815a00 100644 --- a/integrations/find-connection-details.md +++ b/integrations/find-connection-details.md @@ -41,7 +41,7 @@ To retrieve the connection details for your $CLOUD_LONG project and $SERVICE_LON -1. **Retreive your project ID**: +1. **Retrieve your project ID**: In [$CONSOLE][console-services], click your project name in the upper left corner, then click `Copy` next to the project ID. ![Retrive the project id in $CONSOLE](https://assets.timescale.com/docs/images/tiger-cloud-console/tiger-cloud-console-project-id.png) @@ -53,6 +53,31 @@ To retrieve the connection details for your $CLOUD_LONG project and $SERVICE_LON +## Create client credentials + +You use client credentials to obtain access tokens outside of the user context. + +To retrieve the connection details for your $CLOUD_LONG project for programmatic usage +such as Terraform or the [$CLOUD_LONG REST API][rest-api-reference]: + + + +1. **Open the settings for your project**: + + In [$CONSOLE][console-services], click your project name in the upper left corner, then click `Project settings`. + +1. **Create client credentials**: + + 1. Click `Create credentials`, then copy `Public key` and `Secret key` locally. + + ![Retrive the service id in $CONSOLE](https://assets.timescale.com/docs/images/tiger-cloud-console/tiger-cloud-console-client-credentials.png) + + This is the only time you see the `Secret key`. After this, only the `Public key` is visible in this page. + + 1. Click `Done`. + + + @@ -73,3 +98,6 @@ In the `Services` page of the $MST_CONSOLE_LONG, click the service you want to c [console-services]: https://console.cloud.timescale.com/dashboard/services [postgres-config]: https://www.postgresql.org/docs/current/runtime-config-file-locations.html +[rest-api-reference]: /api/:currentVersion:/api-reference/ +[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 \ No newline at end of file From 0aa622e534a41a726fb5bed81700fc877249ced8 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 27 Aug 2025 14:24:18 +0200 Subject: [PATCH 04/75] chore: update and test. --- getting-started/get-started-devops-as-code.md | 12 +++++++----- getting-started/page-index/page-index.js | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index f453883df7..aa85e6a578 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -1,5 +1,5 @@ --- -title: "Set up Tiger Cloud REST API and create your first service" +title: "DevOps with Tiger Cloud REST API" excerpt: "Configure secure authentication and create a new database service using the Tiger Cloud REST API" keywords: - authentication @@ -15,7 +15,7 @@ tags: import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -# Get started with Tiger Cloud REST API +# DevOps with Tiger Cloud REST API [$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read replicas. @@ -25,8 +25,9 @@ This page shows you how to set up secure authentication for the TigerData Cloud ## Prerequisites -- A Command-line tool for REST calls -- Network connectivity to Tiger Cloud REST API endpoints + +* Install [curl][curl]. + ## Configure secure authentication @@ -178,4 +179,5 @@ Follow these security guidelines when working with the Tiger Cloud REST API: [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 \ No newline at end of file +[create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials +[curl]: https://curl.se/ \ No newline at end of file diff --git a/getting-started/page-index/page-index.js b/getting-started/page-index/page-index.js index 8c52c4857a..a8681649f7 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 Cloud service and connect to it", }, { - title: "Get started with Tiger Cloud REST API", + title: "DevOps with Tiger Cloud REST API", href: "get-started-devops-as-code", excerpt: "Set up secure authentication for the TigerData Cloud REST API and create your first service", }, From 20a0a27ba0b7506fce205405fce4067d99c850e9 Mon Sep 17 00:00:00 2001 From: josesahad Date: Fri, 5 Sep 2025 11:53:56 +0200 Subject: [PATCH 05/75] Fix spec. Better examples and documentation --- api/api-reference.md | 684 +++++++++++++++++++++---------------------- 1 file changed, 341 insertions(+), 343 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index e100eb85a0..0cfc44914e 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -12,9 +12,7 @@ A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, s ## Overview **API Version:** 1.0.0 -**Base URL:** `https://api.tigerdata.com/public/v1` -**Development URL:** `https://console.dev.timescale.com/public/api/v1` -**Local Development URL:** `http://localhost:8080/public/api/v1` +**Base URL:** `https://console.cloud.timescale.com/public/api/v1` ## Authentication @@ -28,214 +26,10 @@ Authorization: Basic ### Example ```bash # Using cURL -curl -X GET "https://api.tigerdata.com/public/v1/projects/{project_id}/services" \ +curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project_id}/services" \ -H "Authorization: Basic $(echo -n 'your_access_key:your_secret_key' | base64)" ``` -### Error Responses -- **401 Unauthorized:** Invalid or missing credentials -- **403 Forbidden:** Insufficient permissions - -## Common Parameters - -### Path Parameters -- `project_id` (string): The unique identifier of the project (e.g., "rp1pz7uyae") -- `service_id` (string): The unique identifier of the service (e.g., "d1k5vk7hf2") -- `vpc_id` (string): The unique identifier of the VPC (e.g., "1234567890") -- `replica_set_id` (string): The unique identifier of the read replica set (e.g., "alb8jicdpr") -- `peering_id` (string): The unique identifier of the VPC peering connection (e.g., "1234567890") - -## VPC Management - -Virtual Private Clouds (VPCs) provide network isolation for your TigerData services. - -### List All VPCs - -```http -GET /projects/{project_id}/vpcs -``` - -Lists all Virtual Private Clouds in a project. - -**Response:** `200 OK` -```json -[ - { - "id": "1234567890", - "name": "my-production-vpc", - "cidr": "10.0.0.0/16", - "region_code": "google-europe-west1" - } -] -``` - -### Create a VPC - -```http -POST /projects/{project_id}/vpcs -``` - -Creates a new Virtual Private Cloud. - -**Request Body:** -```json -{ - "name": "my-production-vpc", - "cidr": "10.0.0.0/16", - "region_code": "google-europe-west1" -} -``` - -**Response:** `201 Created` -```json -{ - "id": "1234567890", - "name": "my-production-vpc", - "cidr": "10.0.0.0/16", - "region_code": "google-europe-west1" -} -``` - -**Error Responses:** -- `400 Bad Request`: Invalid request parameters - -### Get a VPC - -```http -GET /projects/{project_id}/vpcs/{vpc_id} -``` - -Retrieves details of a specific VPC. - -**Response:** `200 OK` -```json -{ - "id": "1234567890", - "name": "my-production-vpc", - "cidr": "10.0.0.0/16", - "region_code": "google-europe-west1" -} -``` - -**Error Responses:** -- `404 Not Found`: VPC not found - -### Rename a VPC - -```http -POST /projects/{project_id}/vpcs/{vpc_id}/rename -``` - -Updates the name of a specific VPC. - -**Request Body:** -```json -{ - "name": "my-renamed-vpc" -} -``` - -**Response:** `200 OK` -```json -{ - "id": "1234567890", - "name": "my-renamed-vpc", - "cidr": "10.0.0.0/16", - "region_code": "google-europe-west1" -} -``` - -**Error Responses:** -- `400 Bad Request`: Invalid request parameters -- `404 Not Found`: VPC not found - -### Delete a VPC - -```http -DELETE /projects/{project_id}/vpcs/{vpc_id} -``` - -Deletes a specific VPC. - -**Response:** `204 No Content` - -**Error Responses:** -- `404 Not Found`: VPC not found - -## VPC Peering - -Manage peering connections between VPCs across different accounts and regions. - -### List VPC Peerings - -```http -GET /projects/{project_id}/vpcs/{vpc_id}/peerings -``` - -Retrieves all VPC peering connections for a given VPC. - -**Response:** `200 OK` -```json -[ - { - "id": "1234567890", - "peer_account_id": "acc-12345", - "peer_region_code": "aws-us-east-1", - "peer_vpc_id": "1234567890", - "provisioned_id": "1234567890", - "status": "active", - "error_message": null - } -] -``` - -### Create VPC Peering - -```http -POST /projects/{project_id}/vpcs/{vpc_id}/peerings -``` - -Creates a new VPC peering connection. - -**Request Body:** -```json -{ - "peer_account_id": "acc-12345", - "peer_region_code": "aws-us-east-1", - "peer_vpc_id": "1234567890" -} -``` - -**Response:** `201 Created` -```json -{ - "id": "1234567890", - "peer_account_id": "acc-12345", - "peer_region_code": "aws-us-east-1", - "peer_vpc_id": "1234567890", - "provisioned_id": "1234567890", - "status": "pending" -} -``` - -### Get VPC Peering - -```http -GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} -``` - -Retrieves details of a specific VPC peering connection. - -### Delete VPC Peering - -```http -DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} -``` - -Deletes a specific VPC peering connection. - -**Response:** `204 No Content` - ## Service Management Manage database services including TimescaleDB, PostgreSQL, and Vector databases. @@ -252,14 +46,13 @@ Retrieves all services within a project. ```json [ { - "service_id": "d1k5vk7hf2", - "project_id": "rp1pz7uyae", + "service_id": "p7zm9wqqii", + "project_id": "jz22xtzemv", "name": "my-production-db", - "region_code": "google-europe-west1", + "region_code": "eu-central-1", "service_type": "TIMESCALEDB", "status": "READY", "created": "2024-01-15T10:30:00Z", - "initial_password": "a-very-secure-initial-password", "paused": false, "resources": [ { @@ -290,10 +83,9 @@ Creates a new database service. This is an asynchronous operation. **Request Body:** ```json { - "name": "my-production-db", + "name": "test-2", "service_type": "TIMESCALEDB", - "region_code": "google-europe-west1", - "replica_count": 1, + "region_code": "eu-central-1", "cpu_millis": 1000, "memory_gbs": 4 } @@ -302,14 +94,32 @@ Creates a new database service. This is an asynchronous operation. **Response:** `202 Accepted` ```json { - "service_id": "d1k5vk7hf2", - "project_id": "rp1pz7uyae", - "name": "my-production-db", - "region_code": "google-europe-west1", + "service_id": "p7zm9wqqii", + "project_id": "jz22xtzemv", + "name": "test-2", + "region_code": "eu-central-1", "service_type": "TIMESCALEDB", - "status": "QUEUED", - "created": "2024-01-15T10:30:00Z", - "initial_password": "a-very-secure-initial-password" + "created": "2025-09-04T20:46:46.265680278Z", + "paused": false, + "status": "READY", + "resources": [ + { + "id": "100927", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "" + } + } + ], + "metadata": { + "environment": "PROD" + }, + "endpoint": { + "host": "p7zm8wqqii.jz4qxtzemv.tsdb.cloud.timescale.com", + "port": 35482 + }, + "initial_password": "oamv8ch9t4ar2j8g" } ``` @@ -318,9 +128,6 @@ Creates a new database service. This is an asynchronous operation. - `POSTGRES`: PostgreSQL service - `VECTOR`: Vector database service -**Error Responses:** -- `400 Bad Request`: Invalid service configuration - ### Get a Service ```http @@ -332,36 +139,30 @@ Retrieves details of a specific service. **Response:** `200 OK` ```json { - "service_id": "d1k5vk7hf2", - "project_id": "rp1pz7uyae", - "name": "my-production-db", - "region_code": "google-europe-west1", + "service_id": "p7zm9wqqii", + "project_id": "jz22xtzemv", + "name": "test-2", + "region_code": "eu-central-1", "service_type": "TIMESCALEDB", - "status": "READY", - "created": "2024-01-15T10:30:00Z", + "created": "2025-09-04T20:46:46.26568Z", "paused": false, + "status": "READY", "resources": [ - { - "id": "resource-1", - "spec": { - "cpu_millis": 1000, - "memory_gbs": 4, - "volume_type": "gp2" + { + "id": "100927", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "" + } } - } ], "metadata": { - "environment": "PROD" + "environment": "DEV" }, "endpoint": { - "host": "my-service.com", - "port": 5432 - }, - "connection_pooler": { - "endpoint": { - "host": "pooler.my-service.com", - "port": 5432 - } + "host": "p7zm8wqqii.jz4qxtzemv.tsdb.cloud.timescale.com", + "port": 35482 } } ``` @@ -389,9 +190,6 @@ Deletes a specific service. This is an asynchronous operation. **Response:** `202 Accepted` -**Error Responses:** -- `404 Not Found`: Service not found - ### Resize a Service ```http @@ -449,7 +247,7 @@ Sets the environment type for the service. **Response:** `200 OK` ```json { - "message": "Action completed successfully." + "message": "Environment set successfully" } ``` @@ -464,8 +262,7 @@ Changes the HA configuration for a service. This is an asynchronous operation. **Request Body:** ```json { - "sync_replica_count": 1, - "replica_count": 2 + "replica_count": 1 } ``` @@ -484,7 +281,7 @@ Activates the connection pooler for a service. **Response:** `200 OK` ```json { - "message": "Action completed successfully." + "message": "Connection pooler enabled successfully" } ``` @@ -497,45 +294,10 @@ POST /projects/{project_id}/services/{service_id}/disablePooler Deactivates the connection pooler for a service. **Response:** `200 OK` - -### Service VPC Operations - -#### Attach Service to VPC - -```http -POST /projects/{project_id}/services/{service_id}/attachToVPC -``` - -Associates a service with a VPC. - -**Request Body:** ```json { - "vpc_id": "1234567890" + "message": "Connection pooler disabled successfully" } -``` - -**Response:** `202 Accepted` - -**Error Responses:** -- `409 Conflict`: Service already attached to a VPC - -#### Detach Service from VPC - -```http -POST /projects/{project_id}/services/{service_id}/detachFromVPC -``` - -Disassociates a service from its VPC. - -**Request Body:** -```json -{ - "vpc_id": "1234567890" -} -``` - -**Response:** `202 Accepted` ### Fork a Service @@ -548,27 +310,46 @@ Creates a new, independent service by taking a snapshot of an existing one. **Request Body:** ```json { - "name": "forked-customer-db" + "name": "fork-test2", + "region_code": "eu-central-1", + "cpu_millis": 1000, + "memory_gbs": 4 } ``` **Response:** `202 Accepted` ```json { - "service_id": "new-service-id", - "name": "forked-customer-db", - "forked_from": { - "project_id": "rp1pz7uyae", - "service_id": "d1k5vk7hf2", - "is_standby": false - }, - "status": "CONFIGURING" + "service_id": "otewd3pem2", + "project_id": "jz22xtzemv", + "name": "fork-test2", + "region_code": "eu-central-1", + "service_type": "TIMESCALEDB", + "created": "2025-09-04T20:54:09.53380732Z", + "paused": false, + "status": "READY", + "resources": [ + { + "id": "100929", + "spec": { + "cpu_millis": 1000, + "memory_gbs": 4, + "volume_type": "" + } + } + ], + "forked_from": { + "project_id": "jz22xtzemv", + "service_id": "p7zm9wqqii", + "is_standby": false + }, + "initial_password": "ph33bl5juuri5gem" } ``` ## Read Replica Sets -Manage read replicas for improved read performance and geographical distribution. +Manage read replicas for improved read performance. ### List Read Replica Sets @@ -582,18 +363,18 @@ Retrieves all read replica sets associated with a primary service. ```json [ { - "id": "alb8jicdpr", - "name": "reporting-replica-1", + "id": "dsldm715t2", + "name": "replica-set-test", "status": "active", - "nodes": 2, - "cpu_millis": 250, - "memory_gbs": 0.5, + "nodes": 1, + "cpu_millis": 500, + "memory_gbs": 2, "metadata": { "environment": "PROD" }, "endpoint": { - "host": "replica.my-service.com", - "port": 5432 + "host": "jz22xtzemv.dsldm715t2.tsdb.cloud.timescale.com", + "port": 39680 } } ] @@ -617,22 +398,22 @@ Creates a new read replica set. This is an asynchronous operation. **Request Body:** ```json { - "name": "my-reporting-replica", - "nodes": 2, - "cpu_millis": 250, - "memory_gbs": 0.5 + "name": "replica-set-test2", + "cpu_millis": 1000, + "memory_gbs": 4, + "nodes": 1 } ``` **Response:** `202 Accepted` ```json { - "id": "alb8jicdpr", - "name": "my-reporting-replica", - "status": "creating", - "nodes": 2, - "cpu_millis": 250, - "memory_gbs": 0.5 + "id": "dsldm715t2", + "name": "replica-set-test2", + "status": "active", + "nodes": 1, + "cpu_millis": 1000, + "memory_gbs": 4 } ``` @@ -652,22 +433,27 @@ Deletes a specific read replica set. This is an asynchronous operation. POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/resize ``` -Changes resource allocation for a read replica set. +Changes resource allocation for a read replica set. This operation is async. **Request Body:** ```json { "cpu_millis": 500, - "memory_gbs": 1.0, - "nodes": 3 + "memory_gbs": 2, + "nodes": 2 } ``` **Response:** `202 Accepted` +```json +{ + "message": "Replica set resize request accepted" +} +``` -### Read Replica Connection Pooler +### Read Replica Set Connection Pooler -#### Enable Replica Pooler +#### Enable Replica Set Pooler ```http POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/enablePooler @@ -676,8 +462,13 @@ POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/e Activates the connection pooler for a read replica set. **Response:** `200 OK` +```json +{ + "message": "Connection pooler enabled successfully" +} +``` -#### Disable Replica Pooler +#### Disable Replica Set Pooler ```http POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/disablePooler @@ -686,8 +477,13 @@ POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/d Deactivates the connection pooler for a read replica set. **Response:** `200 OK` +```json +{ + "message": "Connection pooler disabled successfully" +} +``` -### Set Replica Environment +### Set Replica Set Environment ```http POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/setEnvironment @@ -703,6 +499,225 @@ Sets the environment type for a read replica set. ``` **Response:** `200 OK` +```json +{ + "message": "Environment set successfully" +} +``` + +## VPC Management + +Virtual Private Clouds (VPCs) provide network isolation for your TigerData services. + +### List All VPCs + +```http +GET /projects/{project_id}/vpcs +``` + +Lists all Virtual Private Clouds in a project. + +**Response:** `200 OK` +```json +[ + { + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "eu-central-1" + } +] +``` + +### Create a VPC + +```http +POST /projects/{project_id}/vpcs +``` + +Creates a new VPC. + +**Request Body:** +```json +{ + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "eu-central-1" +} +``` + +**Response:** `201 Created` +```json +{ + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "eu-central-1" +} +``` + +### Get a VPC + +```http +GET /projects/{project_id}/vpcs/{vpc_id} +``` + +Retrieves details of a specific VPC. + +**Response:** `200 OK` +```json +{ + "id": "1234567890", + "name": "my-production-vpc", + "cidr": "10.0.0.0/16", + "region_code": "eu-central-1" +} +``` + +### Rename a VPC + +```http +POST /projects/{project_id}/vpcs/{vpc_id}/rename +``` + +Updates the name of a specific VPC. + +**Request Body:** +```json +{ + "name": "my-renamed-vpc" +} +``` + +**Response:** `200 OK` +```json +{ + "id": "1234567890", + "name": "my-renamed-vpc", + "cidr": "10.0.0.0/16", + "region_code": "eu-central-1" +} +``` + +### Delete a VPC + +```http +DELETE /projects/{project_id}/vpcs/{vpc_id} +``` + +Deletes a specific VPC. + +**Response:** `204 No Content` + +## VPC Peering + +Manage peering connections between VPCs across different accounts and regions. + +### List VPC Peerings + +```http +GET /projects/{project_id}/vpcs/{vpc_id}/peerings +``` + +Retrieves all VPC peering connections for a given VPC. + +**Response:** `200 OK` +```json +[ + { + "id": "1234567890", + "peer_account_id": "acc-12345", + "peer_region_code": "eu-central-1", + "peer_vpc_id": "1234567890", + "provisioned_id": "1234567890", + "status": "active", + "error_message": null + } +] +``` + +### Create VPC Peering + +```http +POST /projects/{project_id}/vpcs/{vpc_id}/peerings +``` + +Creates a new VPC peering connection. + +**Request Body:** +```json +{ + "peer_account_id": "acc-12345", + "peer_region_code": "eu-central-1", + "peer_vpc_id": "1234567890" +} +``` + +**Response:** `201 Created` +```json +{ + "id": "1234567890", + "peer_account_id": "acc-12345", + "peer_region_code": "eu-central-1", + "peer_vpc_id": "1234567890", + "provisioned_id": "1234567890", + "status": "pending" +} +``` + +### Get VPC Peering + +```http +GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} +``` + +Retrieves details of a specific VPC peering connection. + +### Delete VPC Peering + +```http +DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} +``` + +Deletes a specific VPC peering connection. + +**Response:** `204 No Content` + +## Service VPC Operations + +### Attach Service to VPC + +```http +POST /projects/{project_id}/services/{service_id}/attachToVPC +``` + +Associates a service with a VPC. + +**Request Body:** +```json +{ + "vpc_id": "1234567890" +} +``` + +**Response:** `202 Accepted` + +### Detach Service from VPC + +```http +POST /projects/{project_id}/services/{service_id}/detachFromVPC +``` + +Disassociates a service from its VPC. + +**Request Body:** +```json +{ + "vpc_id": "1234567890" +} +``` + +**Response:** `202 Accepted` ## Data Models @@ -774,8 +789,8 @@ Sets the environment type for a read replica set. "name": "string", "status": "creating|active|resizing|deleting|error", "nodes": 2, - "cpu_millis": 250, - "memory_gbs": 0.5, + "cpu_millis": 1000, + "memory_gbs": 4, "metadata": { "environment": "PROD|DEV" }, @@ -819,20 +834,3 @@ The API uses standard HTTP status codes and returns error details in JSON format "message": "The service_type field is required" } ``` - -## Rate Limiting - -The API implements rate limiting to ensure fair usage: - -- **Development Environment**: More lenient rate limits for testing -- **Production Environment**: Strict rate limits for stability -- **Local Development**: No rate limits applied - -When rate limits are exceeded, the API returns `429 Too Many Requests` with retry information in the response headers. - -## Support and Contact - -For API support and questions: -- **Support**: [TigerData Support](https://www.tigerdata.com/contact) -- **License**: [Terms of Service](https://www.tigerdata.com/legal/terms) -- **Documentation**: This API reference follows the OpenAPI 3.0.3 specification \ No newline at end of file From 2f12d32ff4fff27c77b0a539a8585de5df75180a Mon Sep 17 00:00:00 2001 From: josesahad Date: Fri, 5 Sep 2025 13:00:57 +0200 Subject: [PATCH 06/75] Fix replica set retrieval docs --- api/api-reference.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index 0cfc44914e..b6f8db3dc3 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -363,18 +363,24 @@ Retrieves all read replica sets associated with a primary service. ```json [ { - "id": "dsldm715t2", - "name": "replica-set-test", + "id": "l5alxb3s2g", + "name": "replica-set-test2", "status": "active", "nodes": 1, - "cpu_millis": 500, - "memory_gbs": 2, - "metadata": { - "environment": "PROD" - }, + "cpu_millis": 1000, + "memory_gbs": 4, "endpoint": { - "host": "jz22xtzemv.dsldm715t2.tsdb.cloud.timescale.com", - "port": 39680 + "host": "l5alxb3s2g.jz4qxtzemv.tsdb.cloud.timescale.com", + "port": 38448 + }, + "connection_pooler": { + "endpoint": { + "host": "l5alxb3s2g.jz4qxtzemv.tsdb.cloud.timescale.com", + "port": 38543 + } + }, + "metadata": { + "environment": "DEV" } } ] From 81b21fcf7ef32815dad1c0e464477d5736ae657b Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 9 Sep 2025 11:21:28 +0100 Subject: [PATCH 07/75] chore: few small updates. --- api/api-reference.md | 79 +++++++++------- getting-started/get-started-devops-as-code.md | 94 ++++++++++--------- 2 files changed, 95 insertions(+), 78 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index b6f8db3dc3..7dbea75899 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -1,11 +1,11 @@ --- -title: Tiger Cloud API reference +title: Tiger Cloud REST API reference excerpt: A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. tags: [REST] products: [cloud] --- -# Tiger Cloud API reference +# Tiger Cloud REST API reference A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. @@ -32,7 +32,12 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project ## Service Management -Manage database services including TimescaleDB, PostgreSQL, and Vector databases. +You use this endpoint to create and manage the following Tiger Posgres services: + +- `TIMESCALEDB`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, + prices, metrics, sensor readings, or any information that changes over time +- `POSTGRES`: a vanilla Postgres instance +- `VECTOR`: a Tiger Postgres instance with vector extensions ### List All Services @@ -40,7 +45,7 @@ Manage database services including TimescaleDB, PostgreSQL, and Vector databases GET /projects/{project_id}/services ``` -Retrieves all services within a project. +Retrieve all services within a project. **Response:** `200 OK` ```json @@ -78,7 +83,7 @@ Retrieves all services within a project. POST /projects/{project_id}/services ``` -Creates a new database service. This is an asynchronous operation. +Create a new Tiger Postgres service. This is an asynchronous operation. **Request Body:** ```json @@ -124,9 +129,10 @@ Creates a new database service. This is an asynchronous operation. ``` **Service Types:** -- `TIMESCALEDB`: TimescaleDB service -- `POSTGRES`: PostgreSQL service -- `VECTOR`: Vector database service +- `TIMESCALEDB`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, + prices, metrics, sensor readings, or any information that changes over time +- `POSTGRES`: a vanilla Postgres instance +- `VECTOR`: a Tiger Postgres instance with vector extensions ### Get a Service @@ -134,7 +140,7 @@ Creates a new database service. This is an asynchronous operation. GET /projects/{project_id}/services/{service_id} ``` -Retrieves details of a specific service. +Retrieve details of a specific service. **Response:** `200 OK` ```json @@ -186,7 +192,7 @@ Retrieves details of a specific service. DELETE /projects/{project_id}/services/{service_id} ``` -Deletes a specific service. This is an asynchronous operation. +Delete a specific service. This is an asynchronous operation. **Response:** `202 Accepted` @@ -196,7 +202,7 @@ Deletes a specific service. This is an asynchronous operation. POST /projects/{project_id}/services/{service_id}/resize ``` -Changes CPU and memory allocation for a service. +Change CPU and memory allocation for a service. **Request Body:** ```json @@ -214,7 +220,7 @@ Changes CPU and memory allocation for a service. POST /projects/{project_id}/services/{service_id}/updatePassword ``` -Sets a new master password for the service. +Set a new master password for the service. **Request Body:** ```json @@ -231,7 +237,7 @@ Sets a new master password for the service. POST /projects/{project_id}/services/{service_id}/setEnvironment ``` -Sets the environment type for the service. +Set the environment type for the service. **Request Body:** ```json @@ -257,7 +263,7 @@ Sets the environment type for the service. POST /projects/{project_id}/services/{service_id}/setHA ``` -Changes the HA configuration for a service. This is an asynchronous operation. +Change the HA configuration for a service. This is an asynchronous operation. **Request Body:** ```json @@ -276,7 +282,7 @@ Changes the HA configuration for a service. This is an asynchronous operation. POST /projects/{project_id}/services/{service_id}/enablePooler ``` -Activates the connection pooler for a service. +Activate the connection pooler for a service. **Response:** `200 OK` ```json @@ -291,7 +297,7 @@ Activates the connection pooler for a service. POST /projects/{project_id}/services/{service_id}/disablePooler ``` -Deactivates the connection pooler for a service. +Deactivate the connection pooler for a service. **Response:** `200 OK` ```json @@ -305,7 +311,7 @@ Deactivates the connection pooler for a service. POST /projects/{project_id}/services/{service_id}/forkService ``` -Creates a new, independent service by taking a snapshot of an existing one. +Create a new, independent service by taking a snapshot of an existing one. **Request Body:** ```json @@ -357,7 +363,7 @@ Manage read replicas for improved read performance. GET /projects/{project_id}/services/{service_id}/replicaSets ``` -Retrieves all read replica sets associated with a primary service. +Retrieve all read replica sets associated with a primary service. **Response:** `200 OK` ```json @@ -399,7 +405,7 @@ Retrieves all read replica sets associated with a primary service. POST /projects/{project_id}/services/{service_id}/replicaSets ``` -Creates a new read replica set. This is an asynchronous operation. +Create a new read replica set. This is an asynchronous operation. **Request Body:** ```json @@ -429,7 +435,7 @@ Creates a new read replica set. This is an asynchronous operation. DELETE /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id} ``` -Deletes a specific read replica set. This is an asynchronous operation. +Delete a specific read replica set. This is an asynchronous operation. **Response:** `202 Accepted` @@ -439,7 +445,7 @@ Deletes a specific read replica set. This is an asynchronous operation. POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/resize ``` -Changes resource allocation for a read replica set. This operation is async. +Change resource allocation for a read replica set. This operation is async. **Request Body:** ```json @@ -465,7 +471,7 @@ Changes resource allocation for a read replica set. This operation is async. POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/enablePooler ``` -Activates the connection pooler for a read replica set. +Activate the connection pooler for a read replica set. **Response:** `200 OK` ```json @@ -480,7 +486,7 @@ Activates the connection pooler for a read replica set. POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/disablePooler ``` -Deactivates the connection pooler for a read replica set. +Deactivate the connection pooler for a read replica set. **Response:** `200 OK` ```json @@ -495,7 +501,7 @@ Deactivates the connection pooler for a read replica set. POST /projects/{project_id}/services/{service_id}/replicaSets/{replica_set_id}/setEnvironment ``` -Sets the environment type for a read replica set. +Set the environment type for a read replica set. **Request Body:** ```json @@ -521,7 +527,7 @@ Virtual Private Clouds (VPCs) provide network isolation for your TigerData servi GET /projects/{project_id}/vpcs ``` -Lists all Virtual Private Clouds in a project. +List all Virtual Private Clouds in a project. **Response:** `200 OK` ```json @@ -541,7 +547,7 @@ Lists all Virtual Private Clouds in a project. POST /projects/{project_id}/vpcs ``` -Creates a new VPC. +Create a new VPC. **Request Body:** ```json @@ -568,7 +574,7 @@ Creates a new VPC. GET /projects/{project_id}/vpcs/{vpc_id} ``` -Retrieves details of a specific VPC. +Retrieve details of a specific VPC. **Response:** `200 OK` ```json @@ -586,7 +592,7 @@ Retrieves details of a specific VPC. POST /projects/{project_id}/vpcs/{vpc_id}/rename ``` -Updates the name of a specific VPC. +Update the name of a specific VPC. **Request Body:** ```json @@ -611,7 +617,7 @@ Updates the name of a specific VPC. DELETE /projects/{project_id}/vpcs/{vpc_id} ``` -Deletes a specific VPC. +Delete a specific VPC. **Response:** `204 No Content` @@ -625,7 +631,7 @@ Manage peering connections between VPCs across different accounts and regions. GET /projects/{project_id}/vpcs/{vpc_id}/peerings ``` -Retrieves all VPC peering connections for a given VPC. +Retrieve all VPC peering connections for a given VPC. **Response:** `200 OK` ```json @@ -648,7 +654,7 @@ Retrieves all VPC peering connections for a given VPC. POST /projects/{project_id}/vpcs/{vpc_id}/peerings ``` -Creates a new VPC peering connection. +Create a new VPC peering connection. **Request Body:** ```json @@ -677,7 +683,7 @@ Creates a new VPC peering connection. GET /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} ``` -Retrieves details of a specific VPC peering connection. +Retrieve details of a specific VPC peering connection. ### Delete VPC Peering @@ -685,7 +691,7 @@ Retrieves details of a specific VPC peering connection. DELETE /projects/{project_id}/vpcs/{vpc_id}/peerings/{peering_id} ``` -Deletes a specific VPC peering connection. +Delete a specific VPC peering connection. **Response:** `204 No Content` @@ -697,7 +703,7 @@ Deletes a specific VPC peering connection. POST /projects/{project_id}/services/{service_id}/attachToVPC ``` -Associates a service with a VPC. +Associate a service with a VPC. **Request Body:** ```json @@ -714,7 +720,7 @@ Associates a service with a VPC. POST /projects/{project_id}/services/{service_id}/detachFromVPC ``` -Disassociates a service from its VPC. +Disassociate a service from its VPC. **Request Body:** ```json @@ -789,6 +795,7 @@ Disassociates a service from its VPC. ``` ### Read Replica Set Object + ```json { "id": "string", @@ -815,7 +822,7 @@ Disassociates a service from its VPC. ## Error Handling -The API uses standard HTTP status codes and returns error details in JSON format. +Tiger Cloud REST API uses standard HTTP status codes and returns error details in JSON format. ### Error Response Format ```json diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index aa85e6a578..d5b48450a9 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -59,36 +59,32 @@ proper authentication headers. export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" ``` -1. **Perform health check and test your connection to $CLOUD_LONG REST API** - - Test the API connection using a simple health check request: - - ```bash - curl -X GET "${API_BASE_URL}/healthcheck" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" - ``` - - Expected response: - ```json - { - "status": "healthy", - "timestamp": "2024-01-15T10:30:00Z" - } - ``` - -1. **Validate authentication** - - Test authentication by listing existing services: - +1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** + ```bash curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ -H "Content-Type: application/json" ``` + This call returns something like: + - No services: + ```terminaloutput + []% + ``` + - One or more services: + + ```terminaloutput + [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", + "region_code":"eu-central-1","service_type":"TIMESCALEDB", + "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", + "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", + "port":12345}}] + ``` + -Successful authentication returns a JSON array of services (may be empty for new projects). ## Create your first service @@ -119,34 +115,48 @@ Create a new database service using the Tiger Cloud REST API with secure configu -H "Content-Type: application/json" \ -d @service-config.json ``` - - 2. Save the service ID from the response: - ```bash - # Extract service_id from the JSON response - export SERVICE_ID="extracted-service-id-from-response" + $CLOUD_LONG creates a production environment for you. You see something like: + ```terminaloutput + { + "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", + "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", + "resources":[{"id":"101240", + "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, + "initial_password":"very-secret", + "ha_replicas":{"sync_replica_count":0,"replica_count":1} + } ``` + - The API returns HTTP 202 (Accepted) for service creation requests, indicating the operation is asynchronous. - -1. **Monitor service creation progress** - - 1. Check service status periodically: + 2. Save `service_id` from the response to a variable: ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" + # Extract service_id from the JSON response + export SERVICE_ID="service_id-from-response" ``` - 2. Wait for status to change from `CONFIGURING` to `READY`: - - `QUEUED`: Service creation request is queued - - `CONFIGURING`: Service is being provisioned - - `READY`: Service is available for use - - `UNSTABLE`: Service encountered issues during creation - - Service creation typically completes within 5-10 minutes depending on the configuration. +1. **Change the environment from production to development** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d '{"environment": "DEV"}' + ``` + You see something like: + ```terminaloutput + { + "message": "Environment set successfully" + } + ``` +And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your +$SERVICE_SHORTs in $CLOUD_LONG. + ## Security best practices Follow these security guidelines when working with the Tiger Cloud REST API: From 39a62ae1a36511ecdc91a736d8da7afba38a764c Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 9 Sep 2025 12:02:59 +0100 Subject: [PATCH 08/75] chore: few small updates. --- getting-started/get-started-devops-as-code.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index d5b48450a9..8df4ac02c7 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -51,9 +51,9 @@ proper authentication headers. export TIGERDATA_SECRET_KEY="Secret key" ``` -1. **Configure API endpoint** +1. **Configure the API endpoint** - Set the API base URL for your environment: + Set the base URL in your environment: ```bash export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" From 3238fefa5628ec9bfe9e4b8f3e9bc36c54dc4d5d Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 11 Sep 2025 10:57:08 +0100 Subject: [PATCH 09/75] chore: change title to give space for the CLI --- getting-started/get-started-devops-as-code.md | 4 ++-- getting-started/page-index/page-index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 8df4ac02c7..a7882b458a 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -1,5 +1,5 @@ --- -title: "DevOps with Tiger Cloud REST API" +title: "DevOps as code with Tiger Cloud" excerpt: "Configure secure authentication and create a new database service using the Tiger Cloud REST API" keywords: - authentication @@ -15,7 +15,7 @@ tags: import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -# DevOps with Tiger Cloud REST API +# DevOps as code with Tiger Cloud [$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read replicas. diff --git a/getting-started/page-index/page-index.js b/getting-started/page-index/page-index.js index a8681649f7..501845fbd7 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 Cloud service and connect to it", }, { - title: "DevOps with Tiger Cloud REST API", + title: "DevOps as code with Tiger Cloud", href: "get-started-devops-as-code", excerpt: "Set up secure authentication for the TigerData Cloud REST API and create your first service", }, From d77f5549f303e40e13e1d61b24a94f09ead74a2c Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 29 Sep 2025 12:16:45 +0200 Subject: [PATCH 10/75] chore: commit for pull from latest. --- _partials/_devops-cli-get-started.md | 217 ++++++++++++++++++ _partials/_devops-rest-api-get-started.md | 176 ++++++++++++++ getting-started/get-started-devops-as-code.md | 178 ++------------ 3 files changed, 407 insertions(+), 164 deletions(-) create mode 100644 _partials/_devops-cli-get-started.md create mode 100644 _partials/_devops-rest-api-get-started.md diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md new file mode 100644 index 0000000000..343e117115 --- /dev/null +++ b/_partials/_devops-cli-get-started.md @@ -0,0 +1,217 @@ +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; + +is a command-line interface for managing TigerData Cloud Platform resources. + +$CLOUD_LONG Cli is a command-line interface that you use to manage $CLOUD_LONG resources +including VPCs, services, read replicas, and related infrastructure. + +This page shows you how to install and set up secure authentication for the $CLOUD_LONG Cli, then create your first +service. + +## Prerequisites + + + + +## Install and configure secure authentication + + + + +1. **Install the CLI** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3. +4. **Set up API credentials** + + 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: + + ```bash + export TIGERDATA_PROJECT_ID="your-project-id" + ``` + + 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: + + ```bash + export TIGERDATA_ACCESS_KEY="Public key" + export TIGERDATA_SECRET_KEY="Secret key" + ``` + +1. **Configure the API endpoint** + + Set the base URL in your environment: + + ```bash + export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" + ``` + +1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" + ``` + + This call returns something like: + - No services: + ```terminaloutput + []% + ``` + - One or more services: + + ```terminaloutput + [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", + "region_code":"eu-central-1","service_type":"TIMESCALEDB", + "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", + "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", + "port":12345}}] + ``` + + + + +## Create your first service + +Create a new database service using the Tiger Cloud REST API with secure configuration. + + + +1. **Define the service creation payload in a JSON file** + ```bash + cat > service-config.json << 'EOF' + { + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + } + EOF + ``` + +1. **Submit service creation request** + + 1. Create the service using the POST endpoint: + ```bash + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d @service-config.json + ``` + $CLOUD_LONG creates a production environment for you. You see something like: + ```terminaloutput + { + "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", + "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", + "resources":[{"id":"101240", + "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, + "initial_password":"very-secret", + "ha_replicas":{"sync_replica_count":0,"replica_count":1} + } + ``` + + +2. Save `service_id` from the response to a variable: + ```bash + # Extract service_id from the JSON response + export SERVICE_ID="service_id-from-response" + ``` + +1. **Change the environment from production to development** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d '{"environment": "DEV"}' + ``` +You see something like: + ```terminaloutput + { + "message": "Environment set successfully" + } + ``` + + + +And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your +$SERVICE_SHORTs in $CLOUD_LONG. + +## Security best practices + +Follow these security guidelines when working with the Tiger Cloud REST API: + +- **Credential management** + - Store API credentials as environment variables, not in code + - Use credential rotation policies for production environments + - Limit credential scope to minimum required permissions + - Never commit credentials to version control systems + +- **Network security** + - Use HTTPS endpoints exclusively for API communication + - Implement proper certificate validation in your HTTP clients + - Consider IP allowlisting for production API access + - Monitor API access logs for suspicious activity + +- **Access control** + - Create dedicated service accounts for automated API access + - Use principle of least privilege for API key permissions + - Regularly audit and review API access patterns + - Implement proper session management for interactive applications + +- **Data protection** + - Encrypt sensitive data before API transmission when applicable + - Use secure storage for service connection strings and passwords + - Implement proper backup and recovery procedures for created services + - Follow data residency requirements for your region + + +[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/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md new file mode 100644 index 0000000000..2759080bac --- /dev/null +++ b/_partials/_devops-rest-api-get-started.md @@ -0,0 +1,176 @@ +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; + +[$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources +including VPCs, services, and read replicas. + +This page shows you how to set up secure authentication for the $CLOUD_LONG REST API and create your first service. + +## Prerequisites + + + +* Install [curl][curl]. + + +## Configure secure authentication + +$CLOUD_LONG REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include +proper authentication headers. + + + +1. **Set up API credentials** + + 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: + + ```bash + export TIGERDATA_PROJECT_ID="your-project-id" + ``` + + 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: + + ```bash + export TIGERDATA_ACCESS_KEY="Public key" + export TIGERDATA_SECRET_KEY="Secret key" + ``` + +1. **Configure the API endpoint** + + Set the base URL in your environment: + + ```bash + export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" + ``` + +1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" + ``` + + This call returns something like: + - No services: + ```terminaloutput + []% + ``` + - One or more services: + + ```terminaloutput + [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", + "region_code":"eu-central-1","service_type":"TIMESCALEDB", + "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", + "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", + "port":12345}}] + ``` + + + + +## Create your first service + +Create a new database service using the Tiger Cloud REST API with secure configuration. + + + +1. **Define the service creation payload in a JSON file** + ```bash + cat > service-config.json << 'EOF' + { + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + } + EOF + ``` + +1. **Submit service creation request** + + 1. Create the service using the POST endpoint: + ```bash + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d @service-config.json + ``` + $CLOUD_LONG creates a production environment for you. You see something like: + ```terminaloutput + { + "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", + "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", + "resources":[{"id":"101240", + "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, + "initial_password":"very-secret", + "ha_replicas":{"sync_replica_count":0,"replica_count":1} + } + ``` + + +2. Save `service_id` from the response to a variable: + ```bash + # Extract service_id from the JSON response + export SERVICE_ID="service_id-from-response" + ``` + +1. **Change the environment from production to development** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -H "Content-Type: application/json" \ + -d '{"environment": "DEV"}' + ``` +You see something like: + ```terminaloutput + { + "message": "Environment set successfully" + } + ``` + + + +And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your +$SERVICE_SHORTs in $CLOUD_LONG. + +## Security best practices + +Follow these security guidelines when working with the Tiger Cloud REST API: + +- **Credential management** + - Store API credentials as environment variables, not in code + - Use credential rotation policies for production environments + - Limit credential scope to minimum required permissions + - Never commit credentials to version control systems + +- **Network security** + - Use HTTPS endpoints exclusively for API communication + - Implement proper certificate validation in your HTTP clients + - Consider IP allowlisting for production API access + - Monitor API access logs for suspicious activity + +- **Access control** + - Create dedicated service accounts for automated API access + - Use principle of least privilege for API key permissions + - Regularly audit and review API access patterns + - Implement proper session management for interactive applications + +- **Data protection** + - Encrypt sensitive data before API transmission when applicable + - Use secure storage for service connection strings and passwords + - Implement proper backup and recovery procedures for created services + - Follow data residency requirements for your region + + +[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/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index a7882b458a..88b1038ecf 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -13,181 +13,31 @@ tags: - authentication --- -import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -# DevOps as code with Tiger Cloud - -[$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read -replicas. - -This page shows you how to set up secure authentication for the TigerData Cloud REST API and create your first service. - -## Prerequisites - - - -* Install [curl][curl]. - - -## Configure secure authentication - -$CLOUD_LONG REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include -proper authentication headers. - - - -1. **Set up API credentials** - - 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: - - ```bash - export TIGERDATA_PROJECT_ID="your-project-id" - ``` - - 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: - - ```bash - export TIGERDATA_ACCESS_KEY="Public key" - export TIGERDATA_SECRET_KEY="Secret key" - ``` +import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx"; +import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx"; -1. **Configure the API endpoint** - Set the base URL in your environment: - - ```bash - export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" - ``` - -1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** - - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" - ``` - - This call returns something like: - - No services: - ```terminaloutput - []% - ``` - - One or more services: - - ```terminaloutput - [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", - "region_code":"eu-central-1","service_type":"TIMESCALEDB", - "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", - "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], - "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", - "port":12345}}] - ``` - - - - -## Create your first service - -Create a new database service using the Tiger Cloud REST API with secure configuration. - - - -1. **Define the service creation payload in a JSON file** - ```bash - cat > service-config.json << 'EOF' - { - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - } - EOF - ``` - -1. **Submit service creation request** - - 1. Create the service using the POST endpoint: - ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d @service-config.json - ``` - $CLOUD_LONG creates a production environment for you. You see something like: - ```terminaloutput - { - "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "service_type":"TIMESCALEDB", - "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", - "resources":[{"id":"101240", - "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"PROD"}, - "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, - "initial_password":"very-secret", - "ha_replicas":{"sync_replica_count":0,"replica_count":1} - } - ``` - - - 2. Save `service_id` from the response to a variable: - ```bash - # Extract service_id from the JSON response - export SERVICE_ID="service_id-from-response" - ``` - -1. **Change the environment from production to development** +# DevOps as code with Tiger Cloud - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d '{"environment": "DEV"}' - ``` - You see something like: - ```terminaloutput - { - "message": "Environment set successfully" - } - ``` +$COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs, CLI commands, and +MCP endpoints that let humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG +programmatically. - + -And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your -$SERVICE_SHORTs in $CLOUD_LONG. + -## Security best practices + -Follow these security guidelines when working with the Tiger Cloud REST API: + -- **Credential management** - - Store API credentials as environment variables, not in code - - Use credential rotation policies for production environments - - Limit credential scope to minimum required permissions - - Never commit credentials to version control systems + -- **Network security** - - Use HTTPS endpoints exclusively for API communication - - Implement proper certificate validation in your HTTP clients - - Consider IP allowlisting for production API access - - Monitor API access logs for suspicious activity + -- **Access control** - - Create dedicated service accounts for automated API access - - Use principle of least privilege for API key permissions - - Regularly audit and review API access patterns - - Implement proper session management for interactive applications + -- **Data protection** - - Encrypt sensitive data before API transmission when applicable - - Use secure storage for service connection strings and passwords - - Implement proper backup and recovery procedures for created services - - Follow data residency requirements for your region + -[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 From cd7314990170b48c630096cdbdf10f6e3a8c8dd9 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 29 Sep 2025 16:32:04 +0200 Subject: [PATCH 11/75] chore: cli docs. --- _partials/_devops-cli-get-started.md | 310 +++++++++--------- _partials/_devops-rest-api-get-started.md | 14 +- api/api-reference.md | 8 +- getting-started/get-started-devops-as-code.md | 4 +- 4 files changed, 168 insertions(+), 168 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 343e117115..f9845c206c 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -1,11 +1,10 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -is a command-line interface for managing TigerData Cloud Platform resources. +$CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources +including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with +$CLOUD_LONG. -$CLOUD_LONG Cli is a command-line interface that you use to manage $CLOUD_LONG resources -including VPCs, services, read replicas, and related infrastructure. - -This page shows you how to install and set up secure authentication for the $CLOUD_LONG Cli, then create your first +This page shows you how to install and set up secure authentication for $CLI_LONG, then create your first service. ## Prerequisites @@ -13,98 +12,101 @@ service. -## Install and configure secure authentication - - - - -1. **Install the CLI** - - - - - - - - - - - +## Install and configure $CLI_LONG - - - - - - - - - + - +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 bash + sudo apt-get install tiger-cli + ``` + + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo bash + sudo apt-get install tiger-cli + ``` + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo bash + sudo yum install tiger-cli + ``` + + + + + + ```shell + curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo 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 + ``` - -3. -4. **Set up API credentials** + - 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: + + +1. **Set up API credentials** - ```bash - export TIGERDATA_PROJECT_ID="your-project-id" + 1. Log $CLI_LONG into your $CLOUD_LONG account + + ```shell + tiger auth login ``` + $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`. - 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: - - ```bash - export TIGERDATA_ACCESS_KEY="Public key" - export TIGERDATA_SECRET_KEY="Secret key" - ``` - -1. **Configure the API endpoint** - - Set the base URL in your environment: - - ```bash - export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" - ``` + 1. Select a $PROJECT_LONG. -1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** + $CLI_LONG stores your authentication information locally in `~/.config/tiger/config.yaml`. + +1. **Test your authenticated connection to $CLOUD_LONG by listing services** ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" + 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":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", - "region_code":"eu-central-1","service_type":"TIMESCALEDB", - "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", - "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], - "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", - "port":12345}}] + ┌────────────┬─────────────────────┬────────┬─────────────┬──────────────┬──────────────────┐ + │ SERVICE ID │ NAME │ STATUS │ TYPE │ REGION │ CREATED │ + ├────────────┼─────────────────────┼────────┼─────────────┼──────────────┼──────────────────┤ + │ tgrservice │ tiger-agent-service │ READY │ TIMESCALEDB │ eu-central-1 │ 2025-09-25 16:09 │ + └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘ ``` @@ -112,102 +114,100 @@ service. ## Create your first service -Create a new database service using the Tiger Cloud REST API with secure configuration. +Create a new $SERVICE_LONG using $CLI_LONG with a secure configuration: -1. **Define the service creation payload in a JSON file** - ```bash - cat > service-config.json << 'EOF' - { - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - } - EOF +1. **Submit a service creation request** + ```shell + tiger service create + ``` + $CLOUD_LONG creates a `#dev` environment for you. You see something like: + ```terminaloutput + 🚀 Creating service 'db-11111' (auto-generated name)... + ✅ Service creation request accepted! + 📋 Service ID: happyservice + 🔐 Password saved to system keyring for automatic authentication + 🎯 Set service 'happyservice' as default service. + ⏳ Waiting for service to be ready (wait timeout: 30m0s)... + ⏳ Service status: QUEUED... + ⏳ Service status: QUEUED... + ⏳ Service status: QUEUED... + ⏳ Service status: QUEUED... + 🎉 Service is ready and running! ``` + The $SERVICE_SHORT configuration is stored by the $CLI_SHORT and this $SERVICE_SHORT is set as default. -1. **Submit service creation request** - - 1. Create the service using the POST endpoint: - ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d @service-config.json - ``` - $CLOUD_LONG creates a production environment for you. You see something like: - ```terminaloutput - { - "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "service_type":"TIMESCALEDB", - "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", - "resources":[{"id":"101240", - "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"PROD"}, - "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, - "initial_password":"very-secret", - "ha_replicas":{"sync_replica_count":0,"replica_count":1} - } - ``` - - -2. Save `service_id` from the response to a variable: - ```bash - # Extract service_id from the JSON response - export SERVICE_ID="service_id-from-response" +1. **Check the $CLI_SHORT configuration** + ```shell + tiger config show + ``` + You see something like: + ```terminaloutput + API URL: https://console.cloud.timescale.com/public/api/v1 + Console URL: https://console.cloud.timescale.com + Gateway URL: https://console.cloud.timescale.com/api + Docs MCP: true + Docs MCP URL: https://mcp.tigerdata.com/docs + Project ID: tgrproject + Service ID: tgrservice + Output: table + Analytics: true + Password Storage: keyring + Debug: false + Config Dir: /Users//.config/tiger ``` -1. **Change the environment from production to development** - - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d '{"environment": "DEV"}' - ``` -You see something like: - ```terminaloutput - { - "message": "Environment set successfully" - } - ``` -And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your -$SERVICE_SHORTs in $CLOUD_LONG. - -## Security best practices - -Follow these security guidelines when working with the Tiger Cloud REST API: - -- **Credential management** - - Store API credentials as environment variables, not in code - - Use credential rotation policies for production environments - - Limit credential scope to minimum required permissions - - Never commit credentials to version control systems - -- **Network security** - - Use HTTPS endpoints exclusively for API communication - - Implement proper certificate validation in your HTTP clients - - Consider IP allowlisting for production API access - - Monitor API access logs for suspicious activity - -- **Access control** - - Create dedicated service accounts for automated API access - - Use principle of least privilege for API key permissions - - Regularly audit and review API access patterns - - Implement proper session management for interactive applications +And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. + +## Commands + +You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: +`tiger auth login -h` + +| Command | Subcommand | Description | +|---------|----------------------------------|------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $CLOUD_LONG account | +| | login | Create an authenticated connection to your $CLOUD_LONG account | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | + +## Flags + +You can use the following global flags with $CLI_LONG: + +| Flag | Default | Description | +|--|-----------------|-----------------------------------------------------------------------| +| --analytics | `true` | Set to `false` to disable usage analytics. | +| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | +| --debug | No debugging | Enable debug logging | +| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| --project-id string | - | Set the $PROJECT_LONG to manage. | +| --service-id string | - | Set the $SERVICE_LONG to manage. | -- **Data protection** - - Encrypt sensitive data before API transmission when applicable - - Use secure storage for service connection strings and passwords - - Implement proper backup and recovery procedures for created services - - Follow data residency requirements for your region [rest-api-reference]: /api/:currentVersion:/api-reference/ diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index 2759080bac..1ff96a48d4 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -1,9 +1,9 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -[$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources +[$REST_LONG][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources including VPCs, services, and read replicas. -This page shows you how to set up secure authentication for the $CLOUD_LONG REST API and create your first service. +This page shows you how to set up secure authentication for the $REST_LONG and create your first service. ## Prerequisites @@ -14,7 +14,7 @@ This page shows you how to set up secure authentication for the $CLOUD_LONG REST ## Configure secure authentication -$CLOUD_LONG REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include +$REST_LONG uses HTTP Basic Authentication with access keys and secret keys. All API requests must include proper authentication headers. @@ -42,7 +42,7 @@ proper authentication headers. export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" ``` -1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** +1. **Test your authenticated connection to $REST_LONG by listing services** ```bash curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ @@ -71,7 +71,7 @@ proper authentication headers. ## Create your first service -Create a new database service using the Tiger Cloud REST API with secure configuration. +Create a new database service using the $REST_LONG with secure configuration. @@ -137,12 +137,12 @@ You see something like: -And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your +And that is it, you are ready to use the [$REST_LONG][rest-api-reference] to manage your $SERVICE_SHORTs in $CLOUD_LONG. ## Security best practices -Follow these security guidelines when working with the Tiger Cloud REST API: +Follow these security guidelines when working with the $REST_LONG: - **Credential management** - Store API credentials as environment variables, not in code diff --git a/api/api-reference.md b/api/api-reference.md index 7dbea75899..d682b84a4d 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -5,9 +5,9 @@ tags: [REST] products: [cloud] --- -# Tiger Cloud REST API reference +# $REST_LONG reference -A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, services, and read replicas. +A comprehensive RESTful API for managing $CLOUD_LONG resources including VPCs, services, and read replicas. ## Overview @@ -16,7 +16,7 @@ A comprehensive RESTful API for managing Tiger Cloud resources including VPCs, s ## Authentication -The TigerData Cloud API uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header. +The $REST_LONG uses HTTP Basic Authentication. Include your access key and secret key in the Authorization header. ### Basic Authentication ```http @@ -32,7 +32,7 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project ## Service Management -You use this endpoint to create and manage the following Tiger Posgres services: +You use this endpoint to create and manage the following Tiger Postgres services: - `TIMESCALEDB`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 88b1038ecf..d4adfaeff2 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -26,13 +26,13 @@ programmatically. - + - + From 6c2480335a4d3068aa2cbcfff44ca9457efef81d Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 30 Sep 2025 12:04:27 +0200 Subject: [PATCH 12/75] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-get-started.md | 4 ++-- _partials/_devops-rest-api-get-started.md | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index f9845c206c..250f4ac75a 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -24,7 +24,7 @@ service. ```shell - curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo bash + 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 ``` @@ -41,7 +41,7 @@ service. ```shell - curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo bash + 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 ``` diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index 1ff96a48d4..170dfcf2c6 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -96,7 +96,14 @@ Create a new database service using the $REST_LONG with secure configuration. curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ -H "Content-Type: application/json" \ - -d @service-config.json + -d '{ + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + }' ``` $CLOUD_LONG creates a production environment for you. You see something like: ```terminaloutput @@ -123,7 +130,7 @@ Create a new database service using the $REST_LONG with secure configuration. 1. **Change the environment from production to development** ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}"/setEnvironment \ -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ -H "Content-Type: application/json" \ -d '{"environment": "DEV"}' From a45b764332a4b5dfaa12cd138ac2ffe5ea548276 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 30 Sep 2025 14:30:14 +0200 Subject: [PATCH 13/75] chore: updates on review. --- _partials/_devops-cli-get-started.md | 57 +++++------ _partials/_devops-rest-api-get-started.md | 113 +++++++++------------- _partials/_prereqs-cloud-account-only.md | 2 +- 3 files changed, 74 insertions(+), 98 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 250f4ac75a..1b4914c4a4 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -76,7 +76,7 @@ service. 1. **Set up API credentials** - 1. Log $CLI_LONG into your $CLOUD_LONG account + 1. Log $CLI_LONG into your $ACCOUNT_LONG ```shell tiger auth login @@ -85,7 +85,11 @@ service. 1. Select a $PROJECT_LONG. - $CLI_LONG stores your authentication information locally in `~/.config/tiger/config.yaml`. + 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** @@ -114,7 +118,7 @@ service. ## Create your first service -Create a new $SERVICE_LONG using $CLI_LONG with a secure configuration: +Create a new $SERVICE_LONG using $CLI_LONG: @@ -122,7 +126,8 @@ Create a new $SERVICE_LONG using $CLI_LONG with a secure configuration: ```shell tiger service create ``` - $CLOUD_LONG creates a `#dev` environment for you. You see something like: + $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or + read-replication. You see something like: ```terminaloutput 🚀 Creating service 'db-11111' (auto-generated name)... ✅ Service creation request accepted! @@ -131,12 +136,9 @@ Create a new $SERVICE_LONG using $CLI_LONG with a secure configuration: 🎯 Set service 'happyservice' as default service. ⏳ Waiting for service to be ready (wait timeout: 30m0s)... ⏳ Service status: QUEUED... - ⏳ Service status: QUEUED... - ⏳ Service status: QUEUED... - ⏳ Service status: QUEUED... 🎉 Service is ready and running! ``` - The $SERVICE_SHORT configuration is stored by the $CLI_SHORT and this $SERVICE_SHORT is set as default. + This $SERVICE_SHORT is set as default by the $CLI_SHORT. 1. **Check the $CLI_SHORT configuration** ```shell @@ -144,21 +146,20 @@ Create a new $SERVICE_LONG using $CLI_LONG with a secure configuration: ``` You see something like: ```terminaloutput - API URL: https://console.cloud.timescale.com/public/api/v1 - Console URL: https://console.cloud.timescale.com - Gateway URL: https://console.cloud.timescale.com/api - Docs MCP: true - Docs MCP URL: https://mcp.tigerdata.com/docs - Project ID: tgrproject - Service ID: tgrservice - Output: table - Analytics: true - Password Storage: keyring - Debug: false - Config Dir: /Users//.config/tiger + api_url: https://console.cloud.timescale.com/public/api/v1 + console_url: https://console.cloud.timescale.com + gateway_url: https://console.cloud.timescale.com/api + docs_mcp: true + docs_mcp_url: https://mcp.tigerdata.com/docs + project_id: tgrproject + service_id: tgrservice + output: table + analytics: true + password_storage: keyring + debug: false + config_dir: /Users//.config/tiger ``` - And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. @@ -170,8 +171,8 @@ You can use the following commands with $CLI_LONG. For more information on each | Command | Subcommand | Description | |---------|----------------------------------|------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $CLOUD_LONG account | -| | login | Create an authenticated connection to your $CLOUD_LONG account | +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | | | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | | | whoami | Show information about the current user | | version | | Show information about the currently installed version of $CLI_LONG | @@ -181,17 +182,17 @@ You can use the following commands with $CLI_LONG. For more information on each | | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | | | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | | service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | | | update-password `` | Update the password for a $SERVICE_SHORT | | db | | Database operations and management | | | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | | | connect `` | Connect to a $SERVICE_SHORT | | | test-connection `` | Test the connectivity to a $SERVICE_SHORT | | mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | | | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | ## Flags diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index 170dfcf2c6..e44dd82262 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -1,9 +1,9 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; [$REST_LONG][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources -including VPCs, services, and read replicas. +including VPCs, $SERVICE_SHORTs, and read replicas. -This page shows you how to set up secure authentication for the $REST_LONG and create your first service. +This page shows you how to set up secure authentication for the $REST_LONG and create your first $SERVICE_SHORT. ## Prerequisites @@ -42,20 +42,20 @@ proper authentication headers. export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" ``` -1. **Test your authenticated connection to $REST_LONG by listing services** +1. **Test your authenticated connection to $REST_LONG by listing the $SERVICE_SHORTs in the current $PROJECT_LONG** ```bash curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ -H "Content-Type: application/json" ``` This call returns something like: - - No services: + - No $SERVICE_SHORTs: ```terminaloutput []% ``` - - One or more services: + - One or more $SERVICE_SHORTs: ```terminaloutput [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", @@ -69,77 +69,62 @@ proper authentication headers. -## Create your first service +## Create your first $SERVICE_LONG -Create a new database service using the $REST_LONG with secure configuration. +Create a new $SERVICE_SHORT using the $REST_LONG: -1. **Define the service creation payload in a JSON file** +1. **Create a $SERVICE_SHORT using the POST endpoint** ```bash - cat > service-config.json << 'EOF' + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ + -H "Content-Type: application/json" \ + -d '{ + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + }' + ``` + $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or + read-replication. You see something like: + ```terminaloutput { - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - } - EOF + "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", + "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", + "resources":[{"id":"101240", + "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, + "initial_password":"very-secret", + "ha_replicas":{"sync_replica_count":0,"replica_count":1} + } ``` -1. **Submit service creation request** - - 1. Create the service using the POST endpoint: - ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d '{ - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - }' - ``` - $CLOUD_LONG creates a production environment for you. You see something like: - ```terminaloutput - { - "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "service_type":"TIMESCALEDB", - "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", - "resources":[{"id":"101240", - "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"PROD"}, - "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, - "initial_password":"very-secret", - "ha_replicas":{"sync_replica_count":0,"replica_count":1} - } - ``` - - -2. Save `service_id` from the response to a variable: +1. Save `service_id` from the response to a variable: ```bash # Extract service_id from the JSON response export SERVICE_ID="service_id-from-response" ``` -1. **Change the environment from production to development** +1. **Check the configuration for the ** ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}"/setEnvironment \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d '{"environment": "DEV"}' + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ + -H "Content-Type: application/json" ``` You see something like: ```terminaloutput - { - "message": "Environment set successfully" - } + {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service","region_code":"us-east-1", + "service_type":"TIMESCALEDB","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY", + "resources":[{"id":"102879","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"ohhhh.yeahhhhh.tsdb.cloud.timescale.com","port":33867}, + "ha_replicas":{"sync_replica_count":0,"replica_count":1}} ``` @@ -154,28 +139,18 @@ Follow these security guidelines when working with the $REST_LONG: - **Credential management** - Store API credentials as environment variables, not in code - Use credential rotation policies for production environments - - Limit credential scope to minimum required permissions - Never commit credentials to version control systems - **Network security** - Use HTTPS endpoints exclusively for API communication - Implement proper certificate validation in your HTTP clients - Consider IP allowlisting for production API access - - Monitor API access logs for suspicious activity - -- **Access control** - - Create dedicated service accounts for automated API access - - Use principle of least privilege for API key permissions - - Regularly audit and review API access patterns - - Implement proper session management for interactive applications - **Data protection** - - Encrypt sensitive data before API transmission when applicable - Use secure storage for service connection strings and passwords - Implement proper backup and recovery procedures for created services - Follow data residency requirements for your region - [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 diff --git a/_partials/_prereqs-cloud-account-only.md b/_partials/_prereqs-cloud-account-only.md index 9d31734690..bebd9d9f60 100644 --- a/_partials/_prereqs-cloud-account-only.md +++ b/_partials/_prereqs-cloud-account-only.md @@ -1,5 +1,5 @@ To follow the steps on this page: -* Create a target [$CLOUD_LONG account][create-account]. +* Create a target [$ACCOUNT_LONG][create-account]. [create-account]: /getting-started/:currentVersion:/services/#create-a-tiger-cloud-account \ No newline at end of file From 1fac0458db3a2edfb58b64dc2b62b9faf2a4208f Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 30 Sep 2025 15:32:25 +0200 Subject: [PATCH 14/75] chore: updates on review. --- _partials/_devops-rest-api-get-started.md | 158 ++++++++++++++++ getting-started/get-started-devops-as-code.md | 179 +----------------- 2 files changed, 162 insertions(+), 175 deletions(-) create mode 100644 _partials/_devops-rest-api-get-started.md diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md new file mode 100644 index 0000000000..e44dd82262 --- /dev/null +++ b/_partials/_devops-rest-api-get-started.md @@ -0,0 +1,158 @@ +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; + +[$REST_LONG][rest-api-reference] is a comprehensive RESTful API you use to manage $CLOUD_LONG resources +including VPCs, $SERVICE_SHORTs, and read replicas. + +This page shows you how to set up secure authentication for the $REST_LONG and create your first $SERVICE_SHORT. + +## Prerequisites + + + +* Install [curl][curl]. + + +## Configure secure authentication + +$REST_LONG uses HTTP Basic Authentication with access keys and secret keys. All API requests must include +proper authentication headers. + + + +1. **Set up API credentials** + + 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: + + ```bash + export TIGERDATA_PROJECT_ID="your-project-id" + ``` + + 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: + + ```bash + export TIGERDATA_ACCESS_KEY="Public key" + export TIGERDATA_SECRET_KEY="Secret key" + ``` + +1. **Configure the API endpoint** + + Set the base URL in your environment: + + ```bash + export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" + ``` + +1. **Test your authenticated connection to $REST_LONG by listing the $SERVICE_SHORTs in the current $PROJECT_LONG** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ + -H "Content-Type: application/json" + ``` + + This call returns something like: + - No $SERVICE_SHORTs: + ```terminaloutput + []% + ``` + - One or more $SERVICE_SHORTs: + + ```terminaloutput + [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", + "region_code":"eu-central-1","service_type":"TIMESCALEDB", + "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", + "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", + "port":12345}}] + ``` + + + + +## Create your first $SERVICE_LONG + +Create a new $SERVICE_SHORT using the $REST_LONG: + + + +1. **Create a $SERVICE_SHORT using the POST endpoint** + ```bash + curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ + -H "Content-Type: application/json" \ + -d '{ + "name": "my-first-service", + "service_type": "TIMESCALEDB", + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": 1000, + "memory_gbs": 4 + }' + ``` + $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or + read-replication. You see something like: + ```terminaloutput + { + "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", + "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", + "resources":[{"id":"101240", + "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, + "initial_password":"very-secret", + "ha_replicas":{"sync_replica_count":0,"replica_count":1} + } + ``` + +1. Save `service_id` from the response to a variable: + ```bash + # Extract service_id from the JSON response + export SERVICE_ID="service_id-from-response" + ``` + +1. **Check the configuration for the ** + + ```bash + curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ + -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ + -H "Content-Type: application/json" + ``` +You see something like: + ```terminaloutput + {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service","region_code":"us-east-1", + "service_type":"TIMESCALEDB","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY", + "resources":[{"id":"102879","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"DEV"},"endpoint":{"host":"ohhhh.yeahhhhh.tsdb.cloud.timescale.com","port":33867}, + "ha_replicas":{"sync_replica_count":0,"replica_count":1}} + ``` + + + +And that is it, you are ready to use the [$REST_LONG][rest-api-reference] to manage your +$SERVICE_SHORTs in $CLOUD_LONG. + +## Security best practices + +Follow these security guidelines when working with the $REST_LONG: + +- **Credential management** + - Store API credentials as environment variables, not in code + - Use credential rotation policies for production environments + - Never commit credentials to version control systems + +- **Network security** + - Use HTTPS endpoints exclusively for API communication + - Implement proper certificate validation in your HTTP clients + - Consider IP allowlisting for production API access + +- **Data protection** + - Use secure storage for service connection strings and passwords + - Implement proper backup and recovery procedures for created services + - Follow data residency requirements for your region + +[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/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index a7882b458a..53b841e78f 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -13,181 +13,10 @@ tags: - authentication --- -import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; +import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx"; -# DevOps as code with Tiger Cloud +# DevOps as code with $CLOUD_LONG -[$CLOUD_LONG REST API][rest-api-reference] is a comprehensive RESTful API you use to manage Tiger Cloud resources including VPCs, services, and read -replicas. + -This page shows you how to set up secure authentication for the TigerData Cloud REST API and create your first service. - -## Prerequisites - - - -* Install [curl][curl]. - - -## Configure secure authentication - -$CLOUD_LONG REST API uses HTTP Basic Authentication with access keys and secret keys. All API requests must include -proper authentication headers. - - - -1. **Set up API credentials** - - 1. In $CONSOLE [copy your project ID][get-project-id] and store it securely using an environment variable: - - ```bash - export TIGERDATA_PROJECT_ID="your-project-id" - ``` - - 1. In $CONSOLE [create your client credentials][create-client-credentials] and store them securely using environment variables: - - ```bash - export TIGERDATA_ACCESS_KEY="Public key" - export TIGERDATA_SECRET_KEY="Secret key" - ``` - -1. **Configure the API endpoint** - - Set the base URL in your environment: - - ```bash - export API_BASE_URL="https://console.cloud.timescale.com/public/api/v1" - ``` - -1. **Test your authenticated connection to $CLOUD_LONG REST API by listing services** - - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" - ``` - - This call returns something like: - - No services: - ```terminaloutput - []% - ``` - - One or more services: - - ```terminaloutput - [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", - "region_code":"eu-central-1","service_type":"TIMESCALEDB", - "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", - "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], - "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", - "port":12345}}] - ``` - - - - -## Create your first service - -Create a new database service using the Tiger Cloud REST API with secure configuration. - - - -1. **Define the service creation payload in a JSON file** - ```bash - cat > service-config.json << 'EOF' - { - "name": "my-first-service", - "service_type": "TIMESCALEDB", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - } - EOF - ``` - -1. **Submit service creation request** - - 1. Create the service using the POST endpoint: - ```bash - curl -X POST "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d @service-config.json - ``` - $CLOUD_LONG creates a production environment for you. You see something like: - ```terminaloutput - { - "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "service_type":"TIMESCALEDB", - "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", - "resources":[{"id":"101240", - "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"PROD"}, - "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, - "initial_password":"very-secret", - "ha_replicas":{"sync_replica_count":0,"replica_count":1} - } - ``` - - - 2. Save `service_id` from the response to a variable: - ```bash - # Extract service_id from the JSON response - export SERVICE_ID="service_id-from-response" - ``` - -1. **Change the environment from production to development** - - ```bash - curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ - -H "Authorization: Basic $(echo -n "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" | base64)" \ - -H "Content-Type: application/json" \ - -d '{"environment": "DEV"}' - ``` - You see something like: - ```terminaloutput - { - "message": "Environment set successfully" - } - ``` - - - -And that is it, you are ready to use the [$CLOUD_LONG REST API][rest-api-reference] to manage your -$SERVICE_SHORTs in $CLOUD_LONG. - -## Security best practices - -Follow these security guidelines when working with the Tiger Cloud REST API: - -- **Credential management** - - Store API credentials as environment variables, not in code - - Use credential rotation policies for production environments - - Limit credential scope to minimum required permissions - - Never commit credentials to version control systems - -- **Network security** - - Use HTTPS endpoints exclusively for API communication - - Implement proper certificate validation in your HTTP clients - - Consider IP allowlisting for production API access - - Monitor API access logs for suspicious activity - -- **Access control** - - Create dedicated service accounts for automated API access - - Use principle of least privilege for API key permissions - - Regularly audit and review API access patterns - - Implement proper session management for interactive applications - -- **Data protection** - - Encrypt sensitive data before API transmission when applicable - - Use secure storage for service connection strings and passwords - - Implement proper backup and recovery procedures for created services - - Follow data residency requirements for your region - - -[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 +[rest-api-reference]: /api/:currentVersion:/api-reference/ \ No newline at end of file From c511d2e1c23dd1adb08c3c0f4cf6b98c4d1af336 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 1 Oct 2025 11:24:38 +0200 Subject: [PATCH 15/75] chore: first changes. --- _partials/_devops-cli-get-started.md | 146 +----------- _partials/_devops-cli-install.md | 103 +++++++++ _partials/_devops-cli-reference.md | 52 +++++ _partials/_devops-mcp-get-started.md | 218 ++++++++++++++++++ getting-started/get-started-devops-as-code.md | 8 +- 5 files changed, 384 insertions(+), 143 deletions(-) create mode 100644 _partials/_devops-cli-install.md create mode 100644 _partials/_devops-cli-reference.md create mode 100644 _partials/_devops-mcp-get-started.md diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 1b4914c4a4..e49e47b0e1 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -1,4 +1,6 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; +import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; +import CLIREF from "versionContent/_partials/_devops-cli-reference.mdx"; $CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with @@ -16,102 +18,7 @@ service. -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 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 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. - - 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 │ - └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘ - ``` + @@ -164,52 +71,7 @@ Create a new $SERVICE_LONG using $CLI_LONG: And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. -## Commands - -You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: -`tiger auth login -h` - -| Command | Subcommand | Description | -|---------|----------------------------------|------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | - -## Flags - -You can use the following global flags with $CLI_LONG: - -| Flag | Default | Description | -|--|-----------------|-----------------------------------------------------------------------| -| --analytics | `true` | Set to `false` to disable usage analytics. | -| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | -| --debug | No debugging | Enable debug logging | -| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| --project-id string | - | Set the $PROJECT_LONG to manage. | -| --service-id string | - | Set the $SERVICE_LONG to manage. | - - + [rest-api-reference]: /api/:currentVersion:/api-reference/ [rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md new file mode 100644 index 0000000000..3d0aedd489 --- /dev/null +++ b/_partials/_devops-cli-install.md @@ -0,0 +1,103 @@ +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 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 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. + + 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/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md new file mode 100644 index 0000000000..a058696c54 --- /dev/null +++ b/_partials/_devops-cli-reference.md @@ -0,0 +1,52 @@ +## Commands + +You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: +`tiger auth login -h` + +| Command | Subcommand | Description | +|---------|----------------------------------|------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | + +## Flags + +You can use the following global flags with $CLI_LONG: + +| Flag | Default | Description | +|--|-----------------|-----------------------------------------------------------------------| +| --analytics | `true` | Set to `false` to disable usage analytics. | +| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | +| --debug | No debugging | Enable debug logging | +| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| --project-id string | - | Set the $PROJECT_LONG to manage. | +| --service-id string | - | Set the $SERVICE_LONG to manage. | + + + +[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/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md new file mode 100644 index 0000000000..1b4914c4a4 --- /dev/null +++ b/_partials/_devops-mcp-get-started.md @@ -0,0 +1,218 @@ +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; + +$CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources +including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with +$CLOUD_LONG. + +This page shows you how to install and set up secure authentication for $CLI_LONG, then create your first +service. + +## Prerequisites + + + + +## Install and configure $CLI_LONG + + + +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 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 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. + + 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 │ + └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘ + ``` + + + + +## Create your first service + +Create a new $SERVICE_LONG using $CLI_LONG: + + + +1. **Submit a service creation request** + ```shell + tiger service create + ``` + $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or + read-replication. You see something like: + ```terminaloutput + 🚀 Creating service 'db-11111' (auto-generated name)... + ✅ Service creation request accepted! + 📋 Service ID: happyservice + 🔐 Password saved to system keyring for automatic authentication + 🎯 Set service 'happyservice' as default service. + ⏳ Waiting for service to be ready (wait timeout: 30m0s)... + ⏳ Service status: QUEUED... + 🎉 Service is ready and running! + ``` + This $SERVICE_SHORT is set as default by the $CLI_SHORT. + +1. **Check the $CLI_SHORT configuration** + ```shell + tiger config show + ``` + You see something like: + ```terminaloutput + api_url: https://console.cloud.timescale.com/public/api/v1 + console_url: https://console.cloud.timescale.com + gateway_url: https://console.cloud.timescale.com/api + docs_mcp: true + docs_mcp_url: https://mcp.tigerdata.com/docs + project_id: tgrproject + service_id: tgrservice + output: table + analytics: true + password_storage: keyring + debug: false + config_dir: /Users//.config/tiger + ``` + + + +And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. + +## Commands + +You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: +`tiger auth login -h` + +| Command | Subcommand | Description | +|---------|----------------------------------|------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | + +## Flags + +You can use the following global flags with $CLI_LONG: + +| Flag | Default | Description | +|--|-----------------|-----------------------------------------------------------------------| +| --analytics | `true` | Set to `false` to disable usage analytics. | +| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | +| --debug | No debugging | Enable debug logging | +| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| --project-id string | - | Set the $PROJECT_LONG to manage. | +| --service-id string | - | Set the $SERVICE_LONG to manage. | + + + +[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/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index e0c717db95..8b54718713 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -16,7 +16,7 @@ tags: import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx"; import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx"; - +import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx"; # DevOps as code with Tiger Cloud @@ -38,4 +38,10 @@ programmatically. + + + + + + From aede7bfbd21c217085ac3dd3ecfc8f47f3e5c2bc Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 1 Oct 2025 15:59:03 +0200 Subject: [PATCH 16/75] chore: few more changes. --- _partials/_devops-cli-install.md | 22 +++++++++++++--------- _partials/_devops-rest-api-get-started.md | 13 +++++++------ api/api-reference.md | 18 +++++++++--------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 3d0aedd489..42af36abbb 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -1,6 +1,10 @@ 1. ** Install $CLI_LONG** Use the Terminal to install the $CLI_SHORT: + +1. ** Install $CLI_LONG** + + Use the Terminal to install the $CLI_SHORT: @@ -9,33 +13,33 @@ 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 bash + 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 bash + 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 ``` - + diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index e44dd82262..ce78504753 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -59,7 +59,7 @@ proper authentication headers. ```terminaloutput [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", - "region_code":"eu-central-1","service_type":"TIMESCALEDB", + "region_code":"eu-central-1","addons":"time-series", "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", @@ -82,7 +82,7 @@ Create a new $SERVICE_SHORT using the $REST_LONG: -H "Content-Type: application/json" \ -d '{ "name": "my-first-service", - "service_type": "TIMESCALEDB", + "addons": "time-series", "region_code": "us-east-1", "replica_count": 1, "cpu_millis": 1000, @@ -94,7 +94,7 @@ Create a new $SERVICE_SHORT using the $REST_LONG: ```terminaloutput { "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "service_type":"TIMESCALEDB", + "region_code":"us-east-1", "addons":"time-series", "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", "resources":[{"id":"101240", "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], @@ -106,12 +106,13 @@ Create a new $SERVICE_SHORT using the $REST_LONG: ``` 1. Save `service_id` from the response to a variable: + ```bash # Extract service_id from the JSON response export SERVICE_ID="service_id-from-response" ``` -1. **Check the configuration for the ** +1. **Check the configuration for the $SERVICE_SHORT** ```bash curl -X GET "${API_BASE_URL}/projects/${TIGERDATA_PROJECT_ID}/services/${SERVICE_ID}" \ @@ -121,7 +122,7 @@ Create a new $SERVICE_SHORT using the $REST_LONG: You see something like: ```terminaloutput {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service","region_code":"us-east-1", - "service_type":"TIMESCALEDB","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY", + "addons":"time-series","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY", "resources":[{"id":"102879","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], "metadata":{"environment":"DEV"},"endpoint":{"host":"ohhhh.yeahhhhh.tsdb.cloud.timescale.com","port":33867}, "ha_replicas":{"sync_replica_count":0,"replica_count":1}} @@ -144,13 +145,13 @@ Follow these security guidelines when working with the $REST_LONG: - **Network security** - Use HTTPS endpoints exclusively for API communication - Implement proper certificate validation in your HTTP clients - - Consider IP allowlisting for production API access - **Data protection** - Use secure storage for service connection strings and passwords - Implement proper backup and recovery procedures for created services - Follow data residency requirements for your region + [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 diff --git a/api/api-reference.md b/api/api-reference.md index d682b84a4d..4d04776ad1 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -34,10 +34,10 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project You use this endpoint to create and manage the following Tiger Postgres services: -- `TIMESCALEDB`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, +- `time-series`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time -- `POSTGRES`: a vanilla Postgres instance -- `VECTOR`: a Tiger Postgres instance with vector extensions +- `none`: a vanilla Postgres instance +- `ai`: a Tiger Postgres instance with vector extensions ### List All Services @@ -55,7 +55,7 @@ Retrieve all services within a project. "project_id": "jz22xtzemv", "name": "my-production-db", "region_code": "eu-central-1", - "service_type": "TIMESCALEDB", + "addons": "time-series", "status": "READY", "created": "2024-01-15T10:30:00Z", "paused": false, @@ -89,7 +89,7 @@ Create a new Tiger Postgres service. This is an asynchronous operation. ```json { "name": "test-2", - "service_type": "TIMESCALEDB", + "addons": "time-series", "region_code": "eu-central-1", "cpu_millis": 1000, "memory_gbs": 4 @@ -103,7 +103,7 @@ Create a new Tiger Postgres service. This is an asynchronous operation. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "service_type": "TIMESCALEDB", + "addons": "time-series", "created": "2025-09-04T20:46:46.265680278Z", "paused": false, "status": "READY", @@ -149,7 +149,7 @@ Retrieve details of a specific service. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "service_type": "TIMESCALEDB", + "addons": "time-series", "created": "2025-09-04T20:46:46.26568Z", "paused": false, "status": "READY", @@ -330,7 +330,7 @@ Create a new, independent service by taking a snapshot of an existing one. "project_id": "jz22xtzemv", "name": "fork-test2", "region_code": "eu-central-1", - "service_type": "TIMESCALEDB", + "addons": "time-series", "created": "2025-09-04T20:54:09.53380732Z", "paused": false, "status": "READY", @@ -750,7 +750,7 @@ Disassociate a service from its VPC. "project_id": "string", "name": "string", "region_code": "string", - "service_type": "TIMESCALEDB|POSTGRES|VECTOR", + "addons": "time-series|ai|none", "created": "2024-01-15T10:30:00Z", "initial_password": "string", "paused": false, From fed789231f924217c1524e4c4808c2eb60e19797 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 2 Oct 2025 10:00:31 +0200 Subject: [PATCH 17/75] chore: few more changes. --- _partials/_devops-mcp-get-started.md | 140 ++------------------------- 1 file changed, 10 insertions(+), 130 deletions(-) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index 1b4914c4a4..16f5513ccf 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -1,4 +1,6 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; +import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; + $CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with @@ -10,155 +12,33 @@ service. ## Prerequisites +* Claude installed locally and an API key ## Install and configure $CLI_LONG -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 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 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. - - 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 │ - └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘ - ``` -## Create your first service +## Run the MCP server -Create a new $SERVICE_LONG using $CLI_LONG: +Bla bla -1. **Submit a service creation request** +1. **Add the tiger-docs MCP server** ```shell - tiger service create + claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs ``` - $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or - read-replication. You see something like: - ```terminaloutput - 🚀 Creating service 'db-11111' (auto-generated name)... - ✅ Service creation request accepted! - 📋 Service ID: happyservice - 🔐 Password saved to system keyring for automatic authentication - 🎯 Set service 'happyservice' as default service. - ⏳ Waiting for service to be ready (wait timeout: 30m0s)... - ⏳ Service status: QUEUED... - 🎉 Service is ready and running! - ``` - This $SERVICE_SHORT is set as default by the $CLI_SHORT. -1. **Check the $CLI_SHORT configuration** - ```shell - tiger config show - ``` - You see something like: - ```terminaloutput - api_url: https://console.cloud.timescale.com/public/api/v1 - console_url: https://console.cloud.timescale.com - gateway_url: https://console.cloud.timescale.com/api - docs_mcp: true - docs_mcp_url: https://mcp.tigerdata.com/docs - project_id: tgrproject - service_id: tgrservice - output: table - analytics: true - password_storage: keyring - debug: false - config_dir: /Users//.config/tiger - ``` + + From 27399214c6e52d8bc841feb172854933e87c0b30 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 2 Oct 2025 11:03:47 +0200 Subject: [PATCH 18/75] chore: few more changes. --- _partials/_devops-mcp-get-started.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index 16f5513ccf..6be3197eb0 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -1,12 +1,14 @@ + import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; +The $MCP_LONG provides programmatic access to your $CLOUD_LONG resources through Claude and other +AI assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. -$CLI_LONG is a command-line interface that you use to manage $CLOUD_LONG resources -including VPCs, services, read replicas, and related infrastructure. $CLI_LONG calls $REST_LONG to communicate with -$CLOUD_LONG. +You use $MCP_SHORT to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. +$MCP_SHORT calls $REST_LONG to communicate with $CLOUD_LONG. -This page shows you how to install and set up secure authentication for $CLI_LONG, then create your first +This page shows you how to install and set up secure authentication for $MCP_LONG, then create your first service. ## Prerequisites @@ -14,19 +16,16 @@ service. * Claude installed locally and an API key - -## Install and configure $CLI_LONG +## Install and configure $MCP_SHORT - - -## Run the MCP server +## Use the Bla bla From 2368b74db8de8e044ca2eaa4eb1fe816ab6f2c4a Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 2 Oct 2025 14:39:59 +0200 Subject: [PATCH 19/75] chore: more updates. --- _partials/_devops-cli-get-started.md | 2 +- _partials/_devops-cli-install.md | 15 ++-- _partials/_devops-mcp-get-started.md | 70 ++++++------------- getting-started/get-started-devops-as-code.md | 2 +- 4 files changed, 36 insertions(+), 53 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index e49e47b0e1..7352ee7ed0 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -23,7 +23,7 @@ service. -## Create your first service +## Create your first $SERVICE_LONG Create a new $SERVICE_LONG using $CLI_LONG: diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 42af36abbb..1368ce1385 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -1,7 +1,3 @@ -1. ** Install $CLI_LONG** - - Use the Terminal to install the $CLI_SHORT: - 1. ** Install $CLI_LONG** Use the Terminal to install the $CLI_SHORT: @@ -71,6 +67,17 @@ 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. diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index 6be3197eb0..e65ff7fb8b 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -8,8 +8,8 @@ AI assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrat You use $MCP_SHORT to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. $MCP_SHORT calls $REST_LONG to communicate with $CLOUD_LONG. -This page shows you how to install and set up secure authentication for $MCP_LONG, then create your first -service. +This page shows you how to install $CLI_SHORT and set up secure authentication for $MCP_SHORT, then manage the +resources in your $ACCOUNT_LONG through the $MCP_LONG. ## Prerequisites @@ -25,13 +25,13 @@ service. -## Use the +## Manage the resources in your $ACCOUNT_LONG Bla bla -1. **Add the tiger-docs MCP server** +1. **Add $MCP_SHORT to your claude environment** ```shell claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs ``` @@ -41,52 +41,28 @@ Bla bla -And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. +And that is it, you are ready to use $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. ## Commands -You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: -`tiger auth login -h` - -| Command | Subcommand | Description | -|---------|----------------------------------|------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | - -## Flags - -You can use the following global flags with $CLI_LONG: - -| Flag | Default | Description | -|--|-----------------|-----------------------------------------------------------------------| -| --analytics | `true` | Set to `false` to disable usage analytics. | -| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | -| --debug | No debugging | Enable debug logging | -| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| --project-id string | - | Set the $PROJECT_LONG to manage. | -| --service-id string | - | Set the $SERVICE_LONG to manage. | +You can use the following commands with $MCP_LONG. + +| Command | Parameters | Required parameter | Description | +|-------------------------------|------------|--------------------|---------------------------------------------------------------------------| +| tiger_service_list | None | - | List all $SERVICE_LONGs in your current $PROJECT_LONG | +| tiger_service_show | service_id | ✓ | Show detailed information about a specific $SERVICE_SHORT | +| tiger_service_create | | ✗ | Create a new $SERVICE_SHORT with a default name in your $PROJECT_LONG | +| | name | ✗ | Set the $SERVICE_SHORT name to `name` s | +| | addons | ✗ | | +| | region | ✗ | | +| | cpu_memory | ✗ | | +| | replicas | ✗ | | +| | free | ✗ | | +| | wait | ✗ | | +| | timeout | ✗ | | +| tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service | +| | password | ✓ | | + diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 8b54718713..5e355a7f3a 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -18,7 +18,7 @@ import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx"; import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx"; import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx"; -# DevOps as code with Tiger Cloud +# DevOps as code with $CLOUD_LONG $COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs, CLI commands, and MCP endpoints that let humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG From 0c0df01f3f82e9bda3a85dcc68f054b6c23c5cec Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 2 Oct 2025 16:52:36 +0200 Subject: [PATCH 20/75] chore: updates on review. --- _partials/_devops-cli-reference.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index a058696c54..1419b40273 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -33,15 +33,16 @@ You can use the following commands with $CLI_LONG. For more information on each You can use the following global flags with $CLI_LONG: -| Flag | Default | Description | -|--|-----------------|-----------------------------------------------------------------------| -| --analytics | `true` | Set to `false` to disable usage analytics. | -| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | -| --debug | No debugging | Enable debug logging | -| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| --project-id string | - | Set the $PROJECT_LONG to manage. | -| --service-id string | - | Set the $SERVICE_LONG to manage. | +| Flag | Default | Description | +|---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --addons | time-series | Possible values are:
  • **time-series**: Postgres with TimescaleDB and TimescaleDB Toolkit
  • **ai**: `time-series` service, plus pgvectorscale and ai
  • **none**: vanilla Postgres in Tiger
| +| --analytics | `true` | Set to `false` to disable usage analytics. | +| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | +| --debug | No debugging | Enable debug logging | +| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| --project-id string | - | Set the $PROJECT_LONG to manage. | +| --service-id string | - | Set the $SERVICE_LONG to manage. | From e3d921b3ebe12d3ad2f27664030d23213f10eac0 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 2 Oct 2025 17:01:20 +0200 Subject: [PATCH 21/75] chore: updates on review. --- _partials/_devops-cli-reference.md | 51 +++++++++++++++--------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 1419b40273..13afa57b31 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -3,31 +3,31 @@ You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------|------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | +| Command | Subcommand | Description | +|---------|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | create --addons=time-series \| ai \| none | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flavors are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | ## Flags @@ -35,7 +35,6 @@ You can use the following global flags with $CLI_LONG: | Flag | Default | Description | |---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| --addons | time-series | Possible values are:
  • **time-series**: Postgres with TimescaleDB and TimescaleDB Toolkit
  • **ai**: `time-series` service, plus pgvectorscale and ai
  • **none**: vanilla Postgres in Tiger
| | --analytics | `true` | Set to `false` to disable usage analytics. | | --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | | --debug | No debugging | Enable debug logging | From 427b4f7a72a0db146a5ab6f20bb2e940ec703a08 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 3 Oct 2025 15:55:45 +0200 Subject: [PATCH 22/75] chore: MCP stuff for an AI assistant --- _partials/_devops-cli-global-flags.md | 10 ++ _partials/_devops-cli-reference.md | 66 +++++----- _partials/_devops-mcp-get-started.md | 170 ++++++++++++++++++++++++-- 3 files changed, 201 insertions(+), 45 deletions(-) create mode 100644 _partials/_devops-cli-global-flags.md diff --git a/_partials/_devops-cli-global-flags.md b/_partials/_devops-cli-global-flags.md new file mode 100644 index 0000000000..0c79467a80 --- /dev/null +++ b/_partials/_devops-cli-global-flags.md @@ -0,0 +1,10 @@ + +| Flag | Default | Description | +|---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --analytics | `true` | Set to `false` to disable usage analytics. | +| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | +| --debug | No debugging | Enable debug logging | +| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| --project-id string | - | Set the $PROJECT_LONG to manage. | +| --service-id string | - | Set the $SERVICE_LONG to manage. | diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 13afa57b31..eb65700553 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -1,49 +1,43 @@ +import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; + ## Commands You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | create --addons=time-series \| ai \| none | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flavors are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport. | +| Command | Subcommand | Description | +|---------|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create `--addons=` | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | fork `` | Fork of an existing database service. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu`, `--memory`
  • Naming: `--name ` . Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport | + ## Flags You can use the following global flags with $CLI_LONG: -| Flag | Default | Description | -|---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| --analytics | `true` | Set to `false` to disable usage analytics. | -| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | -| --debug | No debugging | Enable debug logging | -| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| --project-id string | - | Set the $PROJECT_LONG to manage. | -| --service-id string | - | Set the $SERVICE_LONG to manage. | - - + [rest-api-reference]: /api/:currentVersion:/api-reference/ [rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index e65ff7fb8b..7d9f5b933a 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -1,23 +1,29 @@ import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; +import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; -The $MCP_LONG provides programmatic access to your $CLOUD_LONG resources through Claude and other +The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You use $MCP_SHORT to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. $MCP_SHORT calls $REST_LONG to communicate with $CLOUD_LONG. -This page shows you how to install $CLI_SHORT and set up secure authentication for $MCP_SHORT, then manage the -resources in your $ACCOUNT_LONG through the $MCP_LONG. +This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the +resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. ## Prerequisites -* Claude installed locally and an API key + +* An AI assistant installed on your developer device with an active API key + + Supported AI assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` ## Install and configure $MCP_SHORT +The $MCP_SHORT is bundled with $CLI_LONG: + @@ -25,25 +31,153 @@ resources in your $ACCOUNT_LONG through the $MCP_LONG. -## Manage the resources in your $ACCOUNT_LONG +## Configure your AI assistant to work with the $MCP_SHORT -Bla bla +Your AI assistant needs to know that your local $MCP_SHORT is running on your development machine, and where +$COMPANY gives your AI assistant access to the $COMPANY docs: -1. **Add $MCP_SHORT to your claude environment** +1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** + + For example: + ```shell + tiger mcp install claude-code + ``` + +1. **Configure your AI Assistant to interact with the $COMPANY docs** + + For example: ```shell claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs ``` +1. **Start your $MCP_SHORT** + ```shell + tiger mcp start + ``` + + + +And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. +## Manage the resources in your $ACCOUNT_LONG through your AI Assistant +Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to +manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG features. For example: + + + +1. **Run your AI assistant** + ```shell + claude + ``` + +1. **Check your $MCP_LONG configuration** + ```shell + > is the tigerdata mcp server active for you? + ``` + You see something like: + ```shell + MCP server is active. I can see the following TigerData-related tools available: + + - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices + - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation + - mcp__tiger__semantic_search_tiger_docs - Search Tiger Cloud and TimescaleDB documentation + - mcp__tiger__tiger_service_create - Create new database services + - mcp__tiger__tiger_service_list - List all database services + - mcp__tiger__tiger_service_show - Show detailed service information + - mcp__tiger__tiger_service_update_password - Update service passwords + + Is there something specific you'd like to do with the TigerData MCP server? + ``` + +1. **Ask a basic question about your $SERVICE_SHORTs** + ```shell + > can you list my active services please + ``` + You see something like: + ```shell + ⏺ You have 3 active services, all with the same name "my-first-service": + + 1. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + 2. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + 3. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + ``` + +1. **Manage your $SERVICE_SHORTs without having to learn how to** + For example: + ```shell + Can you create a new ai service called bob with a read replica for me please + ``` + You see something like: + ```shell + tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false) + ... + Do you want to proceed? + ❯ 1. Yes + ``` + +1. **Find best practice for things you need to do** + For example: + ```shell + > I need to migrate a database with 25 million rows of data to Tiger Cloud, please tell me what service optimizations i should do before migration. + ``` + You see something like: + ```shell + ⏺ For migrating a database with 25 million rows to Tiger Cloud, here are the key service optimizations to do before migration: + + Pre-Migration Service Optimizations + + 1. Right-size your compute resources: + - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB + - You can scale up during migration if needed, then scale down after + + 2. Enable the appropriate add-ons: + - Use time-series addon if you're working with time-series data + - Use ai addon if you need vector/AI capabilities + + 3. Choose optimal region: + - Select the region closest to your current database to minimize network transfer time + - This significantly reduces migration duration + + 4. Consider enhanced storage (Enterprise only): + - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000) + + 5. Skip replicas initially: + - Start with 0 replicas during migration + - Add replicas after migration completes to avoid duplicate data copying + + 6. Plan for storage space: + - Estimate your uncompressed data size + - Allocate sufficient high-performance storage (scales automatically but good to plan) + - You can enable tiered storage later for older data + + During Migration Best Practices + + Migration method selection: + - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks) + - Allows restart if a copy operation fails + - Better for databases >10GB + + Database configuration to set AFTER migration: + - Set up compression policies (once data is loaded) + - Configure retention policies + - Create continuous aggregates + - Enable tiered storage for cost optimization + + Connection settings: + - Use the pooled connection endpoint for better performance during bulk inserts + - Disable unnecessary constraints/indexes during migration, re-enable after + + Would you like me to help you create an optimized service for this migration? + ``` -And that is it, you are ready to use $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. +That beat's working. Let the $MCP_LONG do it all for you. -## Commands +## $MCP_LONG commands You can use the following commands with $MCP_LONG. @@ -63,6 +197,24 @@ You can use the following commands with $MCP_LONG. | tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service | | | password | ✓ | | +## $CLI_LONG commands for $MCP_SHORT + +Usage: `tiger mcp [subcommand] --` + +| Command | Subcommand | Description | +|---------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| mcp | | Manage the $MCP_LONG | +| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| +| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_SHORT with stdio transport | +| | start http | Start the $MCP_SHORT with HTTP transport. Flags are:
  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| + + +## Global flags + +You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: + + From 03c5c75ff9ac1a85f620165b1fdd220f126827bc Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 3 Oct 2025 16:31:08 +0200 Subject: [PATCH 23/75] chore: MCP stuff for HTTP --- _partials/_devops-cli-reference.md | 2 +- _partials/_devops-mcp-get-started.md | 122 +++++++++++++++++++-------- 2 files changed, 87 insertions(+), 37 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index eb65700553..61704ea00c 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -18,7 +18,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | | | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | | service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create `--addons=` | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | +| | create `--addons=` | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, security, monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | | | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | | | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | | | fork `` | Fork of an existing database service. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu`, `--memory`
  • Naming: `--name ` . Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index 7d9f5b933a..dc5ab477ff 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -28,23 +28,13 @@ The $MCP_SHORT is bundled with $CLI_LONG: - - - -## Configure your AI assistant to work with the $MCP_SHORT - -Your AI assistant needs to know that your local $MCP_SHORT is running on your development machine, and where -$COMPANY gives your AI assistant access to the $COMPANY docs: - - +1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** -1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** - - For example: + For example: ```shell tiger mcp install claude-code ``` - + 1. **Configure your AI Assistant to interact with the $COMPANY docs** For example: @@ -52,11 +42,6 @@ $COMPANY gives your AI assistant access to the $COMPANY docs: claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs ``` -1. **Start your $MCP_SHORT** - ```shell - tiger mcp start - ``` - And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. @@ -68,6 +53,11 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe +1. **Start your $MCP_SHORT** + ```shell + tiger mcp start + ``` + 1. **Run your AI assistant** ```shell claude @@ -121,11 +111,13 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe 1. **Find best practice for things you need to do** For example: ```shell - > I need to migrate a database with 25 million rows of data to Tiger Cloud, please tell me what service optimizations i should do before migration. + > I need to migrate a database with 25 million rows of data to Tiger, + please tell me what service optimizations i should do before migration. + ``` You see something like: ```shell - ⏺ For migrating a database with 25 million rows to Tiger Cloud, here are the key service optimizations to do before migration: + ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration: Pre-Migration Service Optimizations @@ -177,25 +169,81 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe That beat's working. Let the $MCP_LONG do it all for you. +## Manage the resources in your $ACCOUNT_LONG using HTTP calls + +Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to +manage your $SERVICE_SHORTs using HTTP calls. For example: + + + +1. **Start your $MCP_SHORT** + ```shell + tiger mcp start http + ``` + You see something like: + ```shell + 🚀 Tiger MCP server listening on http://localhost:8080 + 💡 Use Ctrl+C to stop the server + ``` + +1. **Initiate a session** + + ```shell + curl -X POST http://localhost:8080/message \ + -H "Content-Type: application/json" \ + -d '{ + "jsonrpc": "2.0", + "id": 1, + "method": "initialize", + "params": { + "protocolVersion": "2024-11-05", + "capabilities": {}, + "clientInfo": { + "name": "curl-client", + "version": "1.0" + } + } + }' + ``` + You see something like: + ```shell + event: message + id: SOMEVERYSECUREIDSTRING_0 + data: {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"logging":{},"prompts":{"listChanged":true},"tools":{"listChanged":true}},"protocolVersion":"2024-11-05","serverInfo":{"name":"tiger","title":"Tiger MCP","version":"0.5.0"}}} + ``` + +1. **List the $SERVICE_SHORTs in your $PROJECT_LONG** + ```shell + Can I have an example please. + ``` + You see something like: + ```shell + Can I have an example please. + ``` + + + +And that is it, you are ready to manage the resources in your $ACCOUNT_LONG using $MCP_LONG. + ## $MCP_LONG commands You can use the following commands with $MCP_LONG. -| Command | Parameters | Required parameter | Description | -|-------------------------------|------------|--------------------|---------------------------------------------------------------------------| -| tiger_service_list | None | - | List all $SERVICE_LONGs in your current $PROJECT_LONG | -| tiger_service_show | service_id | ✓ | Show detailed information about a specific $SERVICE_SHORT | -| tiger_service_create | | ✗ | Create a new $SERVICE_SHORT with a default name in your $PROJECT_LONG | -| | name | ✗ | Set the $SERVICE_SHORT name to `name` s | -| | addons | ✗ | | -| | region | ✗ | | -| | cpu_memory | ✗ | | -| | replicas | ✗ | | -| | free | ✗ | | -| | wait | ✗ | | -| | timeout | ✗ | | -| tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service | -| | password | ✓ | | +| Command | Parameters | Required parameter | Description | +|-------------------------------|------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| tiger_service_list | None | - | List all $SERVICE_LONGs in your current $PROJECT_LONG | +| tiger_service_show | service_id | ✓ | Show detailed information about a specific $SERVICE_SHORT | +| tiger_service_create | | ✗ | Create a new $SERVICE_SHORT with a default name in your $PROJECT_LONG | +| | name | ✗ | Set the $SERVICE_SHORT name to `name` s | +| | addons | ✗ | Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | +| | region | ✗ | The [Region][cloud-regions] this $SERVICE is hosted in. Default is `us-east-1` | +| | cpu_memory | ✗ | The CPU and memory allocation combination. Default is "0.5 CPU/2GB" | +| | replicas | ✗ | The number of [high-availability replicas][readreplica]. Default is 0 | +| | free | ✗ | Free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage. | +| | wait | ✗ | Wait for this $SERVICE_SHORT to be ready. Default is to not wait | +| | timeout | ✗ | Timeout for `wait` in minutes. The default is 30 | +| tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service | +| | password | ✓ | The new password | ## $CLI_LONG commands for $MCP_SHORT @@ -222,4 +270,6 @@ You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: [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 +[curl]: https://curl.se/ +[cloud-regions]: /use-timescale/:currentVersion:/regions/ +[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ \ No newline at end of file From b0d3810aa7f6ede6fecb4e480559719b9df9bccf Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 3 Oct 2025 17:46:27 +0200 Subject: [PATCH 24/75] chore: MCP stuff for HTTP --- _partials/_devops-mcp-get-started.md | 55 ---------------------------- 1 file changed, 55 deletions(-) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index dc5ab477ff..f4e0357137 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -169,61 +169,6 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe That beat's working. Let the $MCP_LONG do it all for you. -## Manage the resources in your $ACCOUNT_LONG using HTTP calls - -Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to -manage your $SERVICE_SHORTs using HTTP calls. For example: - - - -1. **Start your $MCP_SHORT** - ```shell - tiger mcp start http - ``` - You see something like: - ```shell - 🚀 Tiger MCP server listening on http://localhost:8080 - 💡 Use Ctrl+C to stop the server - ``` - -1. **Initiate a session** - - ```shell - curl -X POST http://localhost:8080/message \ - -H "Content-Type: application/json" \ - -d '{ - "jsonrpc": "2.0", - "id": 1, - "method": "initialize", - "params": { - "protocolVersion": "2024-11-05", - "capabilities": {}, - "clientInfo": { - "name": "curl-client", - "version": "1.0" - } - } - }' - ``` - You see something like: - ```shell - event: message - id: SOMEVERYSECUREIDSTRING_0 - data: {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"logging":{},"prompts":{"listChanged":true},"tools":{"listChanged":true}},"protocolVersion":"2024-11-05","serverInfo":{"name":"tiger","title":"Tiger MCP","version":"0.5.0"}}} - ``` - -1. **List the $SERVICE_SHORTs in your $PROJECT_LONG** - ```shell - Can I have an example please. - ``` - You see something like: - ```shell - Can I have an example please. - ``` - - - -And that is it, you are ready to manage the resources in your $ACCOUNT_LONG using $MCP_LONG. ## $MCP_LONG commands From 1d241c6caff6cd790534b4633da15d28c72ee27d Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 3 Oct 2025 17:58:21 +0200 Subject: [PATCH 25/75] chore: MCP stuff for HTTP --- _partials/_devops-mcp-get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index f4e0357137..c99ea46bac 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -167,7 +167,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe
-That beat's working. Let the $MCP_LONG do it all for you. +That beats working. Let the $MCP_LONG do it all for you. ## $MCP_LONG commands From 76ca855ba0412b05fac5f7f74eede888b2ab5541 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 3 Oct 2025 17:59:34 +0200 Subject: [PATCH 26/75] chore: MCP stuff for HTTP --- _partials/_devops-mcp-get-started.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index c99ea46bac..b2d3a231d0 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -96,6 +96,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe ``` 1. **Manage your $SERVICE_SHORTs without having to learn how to** + For example: ```shell Can you create a new ai service called bob with a read replica for me please @@ -109,6 +110,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe ``` 1. **Find best practice for things you need to do** + For example: ```shell > I need to migrate a database with 25 million rows of data to Tiger, From deaee7ad5cde31de6b7127e1ad433e8c93be5f1c Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 6 Oct 2025 10:38:55 +0200 Subject: [PATCH 27/75] chore: updates on review. --- _partials/_devops-mcp-get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md index b2d3a231d0..a41497d765 100644 --- a/_partials/_devops-mcp-get-started.md +++ b/_partials/_devops-mcp-get-started.md @@ -202,7 +202,7 @@ Usage: `tiger mcp [subcommand] --` | | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| | | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. Flags are:
  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| ## Global flags From b63c87d6945c75b19a36222198e0834d1a3e59f8 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 6 Oct 2025 16:49:25 +0200 Subject: [PATCH 28/75] chore: first draft. --- ai/page-index/page-index.js | 7 +- ai/tiger-agents-for-work.md | 286 ++++++++++++++++++++++++++++++++++++ api/glossary.md | 2 + 3 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 ai/tiger-agents-for-work.md diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index 4b3d2bc0f1..fd9e3f715b 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -1,12 +1,17 @@ module.exports = [ { - title: "AI and Vector: pgai on Tiger Cloud", + title: "AI and Vector", href: "ai", filePath: "index.md", pageComponents: ["featured-cards"], excerpt: "Information about pgai on TigerData and how to use it.", children: [ + { + title: "Incorporate Slack-native AI agents", + href: "tiger-agents-for-work", + excerpt: "Unify company knowledge with slack-native AI agents", + }, { title: "Key vector database concepts", href: "key-vector-database-concepts-for-understanding-pgvector", diff --git a/ai/tiger-agents-for-work.md b/ai/tiger-agents-for-work.md new file mode 100644 index 0000000000..ffb7b8b307 --- /dev/null +++ b/ai/tiger-agents-for-work.md @@ -0,0 +1,286 @@ +--- +title: Incorporate Slack-native AI agents +excerpt: Unify company knowledge with slack-native AI agents +products: [cloud] +keywords: [ai, vector, pgvector, TigerData vector, pgvectorizer] +tags: [ai, vector, pgvectorizer] +--- + +# Incorporate Slack-native AI agents + +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; + +$AGENTS_LONG is a Slack-native AI agent that you use to unify the knowledge in your company. This includes your slack +history, docs, GitHub repositories, salesforce and so on. You use your agent to get instant answers for real business, +technical and progress questions. + +$AGENTS_SHORT is a production-ready library and CLI for building Slack-native agents. $AGENTS_SHORTs can +handle concurrent conversations with enterprise-grade reliability. It has the following features. + +- **Durable and atomic event handling**: $PG-backed event claiming ensures exactly-once processing, even under high concurrency and failure conditions +- **Bounded concurrency**: fixed worker pools prevent resource exhaustion while maintaining predictable performance under load +- **Immediate event processing**: $AGENTS_SHORT provide real-time responsiveness, events are processed within milliseconds of arrival rather than waiting for polling cycles +- **Resilient retry logic**: automatic retry with visibility thresholds, and stuck or expired event cleanup +- **Horizontal scalability**: run multiple $AGENTS_SHORT instances simultaneously with coordinated work distribution across all instances +- **AI-Powered Responses**: use the AI model of your choice, you can also integrate with MCP servers +- **Extensible architecture**: zero code integration for basic agents. For more specialized use cases, easily customize your agent using [Jinja templates][jinja-templates] +- **Complete Observability**: detailed tracing of event flow, worker activity, and database operations with full [Logfire][logfire] instrumentation + +This page shows you how to install the $AGENTS_CLI, connect to the $COMPANY MCP server, and customize prompts for +your specific needs. + +## Prerequisites + +* A [Tiger Cloud service][create-a-service] +* The [uv package manager][uv-install] +* An [Anthropic API key][claude-api-key] +* Optional: [Logfire token][logfire] + +## Create a Slack app + +Before installing $AGENTS_SHORT, you need to create a Slack app that the $AGENTS_SHORT will connect to. This app +provides the necessary tokens for Slack integration. + + + +1. **Create a manifest for your Slack App** + + 1. In a temporary directory, download the $AGENTS_SHORT Slack manifest template: + + ```bash + curl -O https://raw.githubusercontent.com/timescale/tiger-agents-for-work/main/slack-manifest.json + ``` + + 1. Edit `slack-manifest.json` to change the app name and description. For example: + + ```json + "display_information": { + "name": "Tiger Agents in Slack", + "description": "Tiger documentation showing how to install and configure a Tiger Agent", + "background_color": "#000000" + }, + "features": { + "bot_user": { + "display_name": "Tiger Agents in Slack", + "always_online": true + } + }, + ``` + + 1. Copy the contents of `slack-manifest.json` to the clipboard: + + ```shell + cat slack-manifest.json| pbcopy + ``` + +1. **Create the Slack app** + + 1. Go to [api.slack.com/apps](https://api.slack.com/apps). + 1. Click `Create New App`. + 1. Select `From an app manifest`. + 1. Choose your workspace, then click `Next`. + 1. Paste the contents of `slack-manifest.json` and click `Next`. + 1. Click `Create`. + +1. **Enable slash commands in your app** + 1. In the left menu, open `App Home` + 1. Enable `Allow users to send Slash commands and messages from the App Home`. + +1. **Generate an app-level token** + + 1. In your app settings, go to `Basic Information`. + 1. Scroll to `App-Level Tokens`. + 1. Click `Generate Token and Scopes`. + 1. Add a `Token Name`, then click `Scope`, add `connections:write` then click `Generate`. + 1. Copy the `xapp-*` token locally and click `Done`. + +1. **Install your app to a Slack workspace** + + 1. In the sidebar, under `Settings`, click `Install App`. + 1. Click `Install to `, then click `Allow`. + 1. Copy the `xoxb-` Bot User OAuth Token locally. + + + +You have created a Slack app and obtained the necessary tokens for $AGENTS_SHORT integration. + + +## Install and configure your $AGENTS_SHORT instance + +$AGENTS_SHORT is a production-ready library and CLI written in Python that you use to create Slack-native AI agents. +This section shows you how to configure $AGENTS_SHORT to connect to your Slack app, and give it access to +data and analytics stored in $CLOUD_LONG. + + + +1. **Create a project directory** + + ```bash + mkdir my-tiger-agent + cd my-tiger-agent + ``` + +1. **Create an $AGENTS_SHORT environment with your Slack, AI Assistant and database configuration** + + 1. Download `.env.sample` to a local `,env` file: + ```shell + curl -L -o .env https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/.env.sample + ``` + 1. In `.env`, add your Slack tokens and Anthropic API key: + + ```bash + # Slack tokens (from the Slack app you created) + SLACK_APP_TOKEN=xapp-your-app-token + SLACK_BOT_TOKEN=xoxb-your-bot-token + + # Anthropic API key + ANTHROPIC_API_KEY=sk-ant-your-api-key + + # Optional: Logfire token for enhanced logging + LOGFIRE_TOKEN=your-logfire-token + ``` + 1. Add the [connection details][connection-info] for the $SERVICE_LONG you are using for this $AGENTS_SHORT: + ```bash + PGHOST= + PGDATABASE=tsdb + PGPORT= + PGUSER=tsdbadmin + PGPASSWORD= + ``` + 1. Save and close `.env`. + +1. **Add the default $AGENTS_SHORT prompts to your project** + ```bash + mkdir prompts + curl -L -o prompts/system_prompt.md https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/prompts/system_prompt.md + curl -L -o prompts/user_prompt.md https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/prompts/user_prompt.md + ``` + +1. **Install $AGENTS_CLI to manage and run your AI-powered Slack bots** + + 1. Install $AGENTS_SHORT using uv + + ```bash + uv tool install --from git+https://github.com/timescale/tiger-agent.git tiger-agent + ``` + + 1. Verify the installation + + ```bash + tiger-agent --help + ``` + + You see the $AGENTS_CLI help output with available commands and options. + + +1. **Connect your $AGENTS_SHORT with Slack** + + 1. Run your $AGENTS_SHORT: + ```bash + tiger-agent run --prompts prompts/ + ``` + If you open the explorer in [$CONSOLE][portal-ops-mode], you can see the tables used by your $AGENTS_SHORT. + + 1. In Slack, open your app and ask it a couple of questions, enjoy. + +## Add information from MCP servers to your $AGENTS_SHORT + +To increase the amount of specialized information your AI Assistant can use, you can add MCP servers supplying data +your users need. For example, to add the $COMPANY MCP server to your $AGENTS_SHORT: + + + +1. **Copy the example `mcp_config.json` to your project** + + In `my-tiger-agent`, run the following command. + ```bash + curl -L -o mcp_config.json https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/examples/mcp_config.json + ``` + +1. **Configure your $AGENTS_SHORT to connect to the most useful MCP servers for your organization** + + For example, to add the $COMPANY documentation MCP server to your $AGENTS_SHORT, update the docs entry to the + following: + ```json + "docs": { + "tool_prefix": "docs", + "url": "https://mcp.tigerdata.com/docs", + "allow_sampling": false + }, + ``` + +1. **Restart your $AGENTS_SHORT** + ```bash + tiger-agent run --prompts prompts/ --mcp-config mcp_config.json + ``` + + + +You have configured your $AGENTS_SHORT to connect to the $MCP_SHORT. For more information, +see [MCP Server Configuration][mcp-configuration-docs]. + +## Customize prompts for personalization + +$AGENTS_SHORT uses Jinja2 templates for dynamic, context-aware prompt generation. This system allows for sophisticated +prompts that adapt to conversation context, user preferences, and event metadata. $AGENTS_SHORT uses the following templates: + +- `system_prompt.md`: defines the AI Assistant;s role, capabilities, and behavior patterns. This template sets the + foundation for the way your $AGENTS_SHORT will respond and interact. +- `user_prompt.md`: formats the user's request with relevant context, providing the AI Assistant with the + information necessary to generate an appropriate response. + +To change the way your $AGENTS_SHORT interacts with users in your Slack app: + +1. **Update the prompt** + + For example, in `prompts/system_prompt.md`, add another item in the `Response Protocol` section to fine tune + the behaviour of $AGENTS_SHORT. For example: + ```shell + 5. Be snarky but vaguely amusing + ``` + +1. **Test your configuration** + + Run $AGENTS_SHORT with your custom prompt: + + ```bash + tiger-agent run --mcp-config mcp_config.json --prompts prompts/ + ``` + + + +For more information, see [Prompt tempates][prompt-templates]. + +## Advanced configuration options + +For additional customization, you can modify the following $AGENTS_SHORT parameters: + +* `--model`: Change AI model (default: `anthropic:claude-sonnet-4-20250514`) +* `--num-workers`: Adjust concurrent workers (default: 5) +* `--max-attempts`: Set retry attempts per event (default: 3) + +Example with custom settings: + +```bash +tiger-agent run \ + --model claude-3-5-sonnet-latest \ + --mcp-config mcp_config.json \ + --prompts prompts/ \ + --num-workers 10 \ + --max-attempts 5 +``` + +Your $AGENTS_SHORT is now configured with TigerData MCP server access and personalized prompts, ready to help users analyze data from your Tiger Cloud service. + + + + +[jinja-templates]: https://jinja.palletsprojects.com/en/stable/ +[logfire]: https://pydantic.dev/logfire +[claude-api-key]: https://console.anthropic.com/settings/keys +[create-a-service]: /getting-started/:currentVersion:/services +[uv-install]: https://docs.astral.sh/uv/getting-started/installation/ +[connection-info]: /integrations/:currentVersion:/find-connection-details/ +[portal-ops-mode]: https://console.cloud.timescale.com/dashboard/services +[mcp-configuration-docs]: https://github.com/timescale/tiger-agents-for-work/blob/main/docs/mcp_config.md +[prompt-templates]: https://github.com/timescale/tiger-agents-for-work/blob/main/docs/prompt_templates.md \ No newline at end of file diff --git a/api/glossary.md b/api/glossary.md index 9c9d2e4052..bba6c0d9b1 100644 --- a/api/glossary.md +++ b/api/glossary.md @@ -163,6 +163,8 @@ This glossary defines technical terms, concepts, and terminology used in $COMPAN **Euclidean distance**: a measure of the straight-line distance between two points in multidimensional space. +**Exactly-once**: a message is delivered and processed precisely once. There is no loss and no duplicates. + **Explain**: a $PG command that shows the execution plan for a query, useful for performance analysis. **Event sourcing**: an architectural pattern storing all changes as a sequence of events, naturally fitting time-series database capabilities. From a7e03a682dd8ecdff98a566d7ea6a7c09a3c3011 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 6 Oct 2025 17:14:00 +0200 Subject: [PATCH 29/75] chore: remove tiger agents doc, wrong branch. --- ai/page-index/page-index.js | 5 - ai/tiger-agents-for-work.md | 286 ------------------------------------ 2 files changed, 291 deletions(-) delete mode 100644 ai/tiger-agents-for-work.md diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index fd9e3f715b..760aa5fa7d 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -7,11 +7,6 @@ module.exports = [ excerpt: "Information about pgai on TigerData and how to use it.", children: [ - { - title: "Incorporate Slack-native AI agents", - href: "tiger-agents-for-work", - excerpt: "Unify company knowledge with slack-native AI agents", - }, { title: "Key vector database concepts", href: "key-vector-database-concepts-for-understanding-pgvector", diff --git a/ai/tiger-agents-for-work.md b/ai/tiger-agents-for-work.md deleted file mode 100644 index ffb7b8b307..0000000000 --- a/ai/tiger-agents-for-work.md +++ /dev/null @@ -1,286 +0,0 @@ ---- -title: Incorporate Slack-native AI agents -excerpt: Unify company knowledge with slack-native AI agents -products: [cloud] -keywords: [ai, vector, pgvector, TigerData vector, pgvectorizer] -tags: [ai, vector, pgvectorizer] ---- - -# Incorporate Slack-native AI agents - -import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; - -$AGENTS_LONG is a Slack-native AI agent that you use to unify the knowledge in your company. This includes your slack -history, docs, GitHub repositories, salesforce and so on. You use your agent to get instant answers for real business, -technical and progress questions. - -$AGENTS_SHORT is a production-ready library and CLI for building Slack-native agents. $AGENTS_SHORTs can -handle concurrent conversations with enterprise-grade reliability. It has the following features. - -- **Durable and atomic event handling**: $PG-backed event claiming ensures exactly-once processing, even under high concurrency and failure conditions -- **Bounded concurrency**: fixed worker pools prevent resource exhaustion while maintaining predictable performance under load -- **Immediate event processing**: $AGENTS_SHORT provide real-time responsiveness, events are processed within milliseconds of arrival rather than waiting for polling cycles -- **Resilient retry logic**: automatic retry with visibility thresholds, and stuck or expired event cleanup -- **Horizontal scalability**: run multiple $AGENTS_SHORT instances simultaneously with coordinated work distribution across all instances -- **AI-Powered Responses**: use the AI model of your choice, you can also integrate with MCP servers -- **Extensible architecture**: zero code integration for basic agents. For more specialized use cases, easily customize your agent using [Jinja templates][jinja-templates] -- **Complete Observability**: detailed tracing of event flow, worker activity, and database operations with full [Logfire][logfire] instrumentation - -This page shows you how to install the $AGENTS_CLI, connect to the $COMPANY MCP server, and customize prompts for -your specific needs. - -## Prerequisites - -* A [Tiger Cloud service][create-a-service] -* The [uv package manager][uv-install] -* An [Anthropic API key][claude-api-key] -* Optional: [Logfire token][logfire] - -## Create a Slack app - -Before installing $AGENTS_SHORT, you need to create a Slack app that the $AGENTS_SHORT will connect to. This app -provides the necessary tokens for Slack integration. - - - -1. **Create a manifest for your Slack App** - - 1. In a temporary directory, download the $AGENTS_SHORT Slack manifest template: - - ```bash - curl -O https://raw.githubusercontent.com/timescale/tiger-agents-for-work/main/slack-manifest.json - ``` - - 1. Edit `slack-manifest.json` to change the app name and description. For example: - - ```json - "display_information": { - "name": "Tiger Agents in Slack", - "description": "Tiger documentation showing how to install and configure a Tiger Agent", - "background_color": "#000000" - }, - "features": { - "bot_user": { - "display_name": "Tiger Agents in Slack", - "always_online": true - } - }, - ``` - - 1. Copy the contents of `slack-manifest.json` to the clipboard: - - ```shell - cat slack-manifest.json| pbcopy - ``` - -1. **Create the Slack app** - - 1. Go to [api.slack.com/apps](https://api.slack.com/apps). - 1. Click `Create New App`. - 1. Select `From an app manifest`. - 1. Choose your workspace, then click `Next`. - 1. Paste the contents of `slack-manifest.json` and click `Next`. - 1. Click `Create`. - -1. **Enable slash commands in your app** - 1. In the left menu, open `App Home` - 1. Enable `Allow users to send Slash commands and messages from the App Home`. - -1. **Generate an app-level token** - - 1. In your app settings, go to `Basic Information`. - 1. Scroll to `App-Level Tokens`. - 1. Click `Generate Token and Scopes`. - 1. Add a `Token Name`, then click `Scope`, add `connections:write` then click `Generate`. - 1. Copy the `xapp-*` token locally and click `Done`. - -1. **Install your app to a Slack workspace** - - 1. In the sidebar, under `Settings`, click `Install App`. - 1. Click `Install to `, then click `Allow`. - 1. Copy the `xoxb-` Bot User OAuth Token locally. - - - -You have created a Slack app and obtained the necessary tokens for $AGENTS_SHORT integration. - - -## Install and configure your $AGENTS_SHORT instance - -$AGENTS_SHORT is a production-ready library and CLI written in Python that you use to create Slack-native AI agents. -This section shows you how to configure $AGENTS_SHORT to connect to your Slack app, and give it access to -data and analytics stored in $CLOUD_LONG. - - - -1. **Create a project directory** - - ```bash - mkdir my-tiger-agent - cd my-tiger-agent - ``` - -1. **Create an $AGENTS_SHORT environment with your Slack, AI Assistant and database configuration** - - 1. Download `.env.sample` to a local `,env` file: - ```shell - curl -L -o .env https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/.env.sample - ``` - 1. In `.env`, add your Slack tokens and Anthropic API key: - - ```bash - # Slack tokens (from the Slack app you created) - SLACK_APP_TOKEN=xapp-your-app-token - SLACK_BOT_TOKEN=xoxb-your-bot-token - - # Anthropic API key - ANTHROPIC_API_KEY=sk-ant-your-api-key - - # Optional: Logfire token for enhanced logging - LOGFIRE_TOKEN=your-logfire-token - ``` - 1. Add the [connection details][connection-info] for the $SERVICE_LONG you are using for this $AGENTS_SHORT: - ```bash - PGHOST= - PGDATABASE=tsdb - PGPORT= - PGUSER=tsdbadmin - PGPASSWORD= - ``` - 1. Save and close `.env`. - -1. **Add the default $AGENTS_SHORT prompts to your project** - ```bash - mkdir prompts - curl -L -o prompts/system_prompt.md https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/prompts/system_prompt.md - curl -L -o prompts/user_prompt.md https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/prompts/user_prompt.md - ``` - -1. **Install $AGENTS_CLI to manage and run your AI-powered Slack bots** - - 1. Install $AGENTS_SHORT using uv - - ```bash - uv tool install --from git+https://github.com/timescale/tiger-agent.git tiger-agent - ``` - - 1. Verify the installation - - ```bash - tiger-agent --help - ``` - - You see the $AGENTS_CLI help output with available commands and options. - - -1. **Connect your $AGENTS_SHORT with Slack** - - 1. Run your $AGENTS_SHORT: - ```bash - tiger-agent run --prompts prompts/ - ``` - If you open the explorer in [$CONSOLE][portal-ops-mode], you can see the tables used by your $AGENTS_SHORT. - - 1. In Slack, open your app and ask it a couple of questions, enjoy. - -## Add information from MCP servers to your $AGENTS_SHORT - -To increase the amount of specialized information your AI Assistant can use, you can add MCP servers supplying data -your users need. For example, to add the $COMPANY MCP server to your $AGENTS_SHORT: - - - -1. **Copy the example `mcp_config.json` to your project** - - In `my-tiger-agent`, run the following command. - ```bash - curl -L -o mcp_config.json https://raw.githubusercontent.com/timescale/tiger-agent/refs/heads/main/examples/mcp_config.json - ``` - -1. **Configure your $AGENTS_SHORT to connect to the most useful MCP servers for your organization** - - For example, to add the $COMPANY documentation MCP server to your $AGENTS_SHORT, update the docs entry to the - following: - ```json - "docs": { - "tool_prefix": "docs", - "url": "https://mcp.tigerdata.com/docs", - "allow_sampling": false - }, - ``` - -1. **Restart your $AGENTS_SHORT** - ```bash - tiger-agent run --prompts prompts/ --mcp-config mcp_config.json - ``` - - - -You have configured your $AGENTS_SHORT to connect to the $MCP_SHORT. For more information, -see [MCP Server Configuration][mcp-configuration-docs]. - -## Customize prompts for personalization - -$AGENTS_SHORT uses Jinja2 templates for dynamic, context-aware prompt generation. This system allows for sophisticated -prompts that adapt to conversation context, user preferences, and event metadata. $AGENTS_SHORT uses the following templates: - -- `system_prompt.md`: defines the AI Assistant;s role, capabilities, and behavior patterns. This template sets the - foundation for the way your $AGENTS_SHORT will respond and interact. -- `user_prompt.md`: formats the user's request with relevant context, providing the AI Assistant with the - information necessary to generate an appropriate response. - -To change the way your $AGENTS_SHORT interacts with users in your Slack app: - -1. **Update the prompt** - - For example, in `prompts/system_prompt.md`, add another item in the `Response Protocol` section to fine tune - the behaviour of $AGENTS_SHORT. For example: - ```shell - 5. Be snarky but vaguely amusing - ``` - -1. **Test your configuration** - - Run $AGENTS_SHORT with your custom prompt: - - ```bash - tiger-agent run --mcp-config mcp_config.json --prompts prompts/ - ``` - - - -For more information, see [Prompt tempates][prompt-templates]. - -## Advanced configuration options - -For additional customization, you can modify the following $AGENTS_SHORT parameters: - -* `--model`: Change AI model (default: `anthropic:claude-sonnet-4-20250514`) -* `--num-workers`: Adjust concurrent workers (default: 5) -* `--max-attempts`: Set retry attempts per event (default: 3) - -Example with custom settings: - -```bash -tiger-agent run \ - --model claude-3-5-sonnet-latest \ - --mcp-config mcp_config.json \ - --prompts prompts/ \ - --num-workers 10 \ - --max-attempts 5 -``` - -Your $AGENTS_SHORT is now configured with TigerData MCP server access and personalized prompts, ready to help users analyze data from your Tiger Cloud service. - - - - -[jinja-templates]: https://jinja.palletsprojects.com/en/stable/ -[logfire]: https://pydantic.dev/logfire -[claude-api-key]: https://console.anthropic.com/settings/keys -[create-a-service]: /getting-started/:currentVersion:/services -[uv-install]: https://docs.astral.sh/uv/getting-started/installation/ -[connection-info]: /integrations/:currentVersion:/find-connection-details/ -[portal-ops-mode]: https://console.cloud.timescale.com/dashboard/services -[mcp-configuration-docs]: https://github.com/timescale/tiger-agents-for-work/blob/main/docs/mcp_config.md -[prompt-templates]: https://github.com/timescale/tiger-agents-for-work/blob/main/docs/prompt_templates.md \ No newline at end of file From 0d422a8b74fb0b40c392c65c5befdb0746d4e440 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 15 Oct 2025 12:49:18 +0200 Subject: [PATCH 30/75] chore: update service creation JSON. --- _partials/_devops-rest-api-get-started.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index ce78504753..43c85ffc4f 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -81,13 +81,13 @@ Create a new $SERVICE_SHORT using the $REST_LONG: -u "${TIGERDATA_ACCESS_KEY}:${TIGERDATA_SECRET_KEY}" \ -H "Content-Type: application/json" \ -d '{ - "name": "my-first-service", - "addons": "time-series", - "region_code": "us-east-1", - "replica_count": 1, - "cpu_millis": 1000, - "memory_gbs": 4 - }' + "name": "my-first-service", + "addons": ["time-series"], + "region_code": "us-east-1", + "replica_count": 1, + "cpu_millis": "1000", + "memory_gbs": "4" + }' ``` $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or read-replication. You see something like: From 660f3e93b4f11799918d5281f4d31f26d51d4bc0 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 15 Oct 2025 14:09:02 +0200 Subject: [PATCH 31/75] chore: update cli install. --- _partials/_devops-cli-install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 1368ce1385..8baae9e63e 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: @@ -49,7 +49,7 @@ ```shell - curl -fsSL https://tiger-cli-releases.s3.amazonaws.com/install/install.sh | sh + curl -fsSL https://cli.tigerdata.com/install.sh | sh ``` From c7b48551eb993723a7fe3c8890b9d737b2a6f4ea Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 15 Oct 2025 16:44:57 +0200 Subject: [PATCH 32/75] chore: update cli page. --- _partials/_devops-cli-get-started.md | 11 ++++- _partials/_devops-cli-global-flags.md | 14 +++---- _partials/_devops-cli-install.md | 5 ++- _partials/_devops-cli-reference.md | 58 +++++++++++++-------------- 4 files changed, 50 insertions(+), 38 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 7352ee7ed0..85db5bc083 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -30,6 +30,10 @@ Create a new $SERVICE_LONG using $CLI_LONG: 1. **Submit a service creation request** + + $CLI_LONG creates a default service depending on your [pricing plan][pricing-plans]: + * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons + * **Standard plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on ```shell tiger service create ``` @@ -44,6 +48,10 @@ Create a new $SERVICE_LONG using $CLI_LONG: ⏳ Waiting for service to be ready (wait timeout: 30m0s)... ⏳ Service status: QUEUED... 🎉 Service is ready and running! + 🔌 Run 'tiger db connect' to connect to your new service + ... + Service properties + ... ``` This $SERVICE_SHORT is set as default by the $CLI_SHORT. @@ -77,4 +85,5 @@ And that is it, you are ready to use $CLI_LONG to manage your $SERVICE_SHORTs in [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 +[curl]: https://curl.se/ +[pricing-plans]: /about/:currentVersion:/pricing-and-account-management/ \ No newline at end of file diff --git a/_partials/_devops-cli-global-flags.md b/_partials/_devops-cli-global-flags.md index 0c79467a80..907060f1dc 100644 --- a/_partials/_devops-cli-global-flags.md +++ b/_partials/_devops-cli-global-flags.md @@ -1,10 +1,10 @@ | Flag | Default | Description | |---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| --analytics | `true` | Set to `false` to disable usage analytics. | -| --config-dir string | `.config/tiger` | Set the directory that holds `config.yaml` | -| --debug | No debugging | Enable debug logging | -| -o, --output string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| --password-storage string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| --project-id string | - | Set the $PROJECT_LONG to manage. | -| --service-id string | - | Set the $SERVICE_LONG to manage. | +| `--analytics` | `true` | Set to `false` to disable usage analytics. | +| `--config-dir` string | `.config/tiger` | Set the directory that holds `config.yaml` | +| `--debug` | No debugging | Enable debug logging | +| `-o`, `--output` string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| `--password-storage` string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| `--project-id` string | - | Set the $PROJECT_LONG to manage. | +| `--service-id` string | - | Set the $SERVICE_LONG to manage. | diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 8baae9e63e..413211b625 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -63,7 +63,10 @@ ```shell tiger auth login ``` - $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`. + $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`. + + You can have a maximum of 10 active client credentials. If you get an error, open [credentials][rest-api-credentials] + and delete an unused credential. 1. Select a $PROJECT_LONG. diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 61704ea00c..a3d4dffe48 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,35 +5,35 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create `--addons=` | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, security, monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | fork `` | Fork of an existing database service. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu`, `--memory`
  • Naming: `--name ` . Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connect `` | Connect to a $SERVICE_SHORT | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport | - - -## Flags +| Command | Subcommand | Description | +|---------|----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu`: CPU allocation in millicores or 'shared'
  • `--memory`: Memory allocation in gigabytes or 'shared'
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (json, yaml, env, table)

Possible `cpu`/`memory` combinations are:
  • shared / shared
  • 500m / 2GB
  • 1000m / 4GB
  • 2000m / 8GB
  • 4000m / 16GB
  • 8000m / 32GB
  • 16000m / 64GB
  • 32000m / 128GB
Set either `cpu` or `memory` to shared to create a free service. | +| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | +| | fork `` | Fork of an existing database service. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu`, `--memory`
  • Naming: `--name ` . Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport | + + +## Global flags You can use the following global flags with $CLI_LONG: From 66994ea71d801ffd681e50ee250243ecb0b6a49e Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Wed, 15 Oct 2025 17:01:21 +0200 Subject: [PATCH 33/75] chore: update cli page. --- _partials/_devops-cli-reference.md | 32 +++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index a3d4dffe48..132c0bf0ed 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -39,8 +39,38 @@ You can use the following global flags with $CLI_LONG: + +## Configuration parameters + +By default, $CLI_LONG stores your configuration in `~/.config/tiger/config.yaml`. The name of these +variables matches the flags you use to update them. However, you can override them using the following +environmental variables: + +- **Configuration parameters** + - `TIGER_CONFIG_DIR`: path to configuration directory (default: ~/.config/tiger) + - `TIGER_API_URL`: $REST_LONG base endpoint (default: https://console.cloud.timescale.com/public/api/v1) + - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) + - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) + - `TIGER_DOCS_MCP`: Enable/disable docs MCP proxy (default: true) + - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) + - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands + - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands + - `TIGER_OUTPUT`: output format (json, yaml, or table) + - `TIGER_ANALYTICS`: enable or disable analytics (default: true) + - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) + - `TIGER_DEBUG`: Enable/disable debug logging (default: false) + +- **Authentication parameters** + + To authenticate without using the interactive login, set the following with your [client credentials][rest-api-credentials]: + + - `TIGER_PUBLIC_KEY`: public key + - `TIGER_SECRET_KEY`: secret key + + [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 +[curl]: https://curl.se/ +[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings \ No newline at end of file From 8600f24918c0db8fd46582c0e20c8044b5b9d851 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 12:36:59 +0200 Subject: [PATCH 34/75] chore: updates. --- ai/mcp-server.md | 20 +++++++++++++++++++ ai/page-index/page-index.js | 5 +++++ getting-started/get-started-devops-as-code.md | 14 +++---------- 3 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 ai/mcp-server.md diff --git a/ai/mcp-server.md b/ai/mcp-server.md new file mode 100644 index 0000000000..9b4af792a7 --- /dev/null +++ b/ai/mcp-server.md @@ -0,0 +1,20 @@ +--- +title: "Integrate Tiger with your AI Assistant" +excerpt: "Manage your services and optimize your schema and queries with your AI Assistant" +keywords: + - authentication + - service creation + - API setup + - security +tags: + - setup + - security + - services + - authentication +--- + +import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx"; + +# Integrate Tiger with your AI Assistant + + \ No newline at end of file diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index 760aa5fa7d..2e478a85f6 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -7,6 +7,11 @@ module.exports = [ excerpt: "Information about pgai on TigerData and how to use it.", children: [ + { + title: "Integrate Tiger with your AI assistant", + href: "mcp-server", + excerpt: "Manage your services and optimize your schema and queries with your AI Assistant", + }, { title: "Key vector database concepts", href: "key-vector-database-concepts-for-understanding-pgvector", diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index ba5368026e..70af6c8792 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -13,16 +13,13 @@ tags: - authentication --- - import RESTGS from "versionContent/_partials/_devops-rest-api-get-started.mdx"; import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx"; -import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx"; # DevOps as code with $CLOUD_LONG -$COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs, CLI commands, and -MCP endpoints that let humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG -programmatically. +$COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs and CLI commands +that enable humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG programmatically. @@ -32,16 +29,11 @@ programmatically.
- + - - - - -
From fe601765774a3891ad84ba801c1b678fe179cb06 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 16:05:18 +0200 Subject: [PATCH 35/75] chore: Clean up the MCP docs --- _partials/_devops-cli-reference.md | 54 ++++---- _partials/_devops-mcp-commands-cli.md | 12 ++ _partials/_devops-mcp-commands.md | 29 ++++ ai/mcp-server.md | 191 +++++++++++++++++++++++++- 4 files changed, 258 insertions(+), 28 deletions(-) create mode 100644 _partials/_devops-mcp-commands-cli.md create mode 100644 _partials/_devops-mcp-commands.md diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 132c0bf0ed..a257e8c400 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -7,30 +7,32 @@ You can use the following commands with $CLI_LONG. For more information on each | Command | Subcommand | Description | |---------|----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and the credentials for your $ACCOUNT_LONG | +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | | | login | Create an authenticated connection to your $ACCOUNT_LONG | | | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | | | whoami | Show information about the current user | | version | | Show information about the currently installed version of $CLI_LONG | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | | config | | Manage your $CLI_LONG configuration | | | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | | | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | | service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu`: CPU allocation in millicores or 'shared'
  • `--memory`: Memory allocation in gigabytes or 'shared'
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (json, yaml, env, table)

Possible `cpu`/`memory` combinations are:
  • shared / shared
  • 500m / 2GB
  • 1000m / 4GB
  • 2000m / 8GB
  • 4000m / 16GB
  • 8000m / 32GB
  • 16000m / 64GB
  • 32000m / 128GB
Set either `cpu` or `memory` to shared to create a free service. | -| | describe `` | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT | -| | fork `` | Fork of an existing database service. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu`, `--memory`
  • Naming: `--name ` . Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| | | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | update-password `` | Update the password for a $SERVICE_SHORT | +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (json, yaml, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | update-password `` | Update the master password for a $SERVICE_SHORT | | db | | Database operations and management | -| | connect `` | Connect to a $SERVICE_SHORT | | | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI assistant integration | +| | install `[client]` | Install and configure Tiger MCP server for a specific client (claude-code, cursor, windsurf, etc.). If no client is specified, you'll be prompted to select one interactively. | | | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start `stdio` \| `http` | Start the $MCP_LONG with stdio or HTTP transport | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | ## Global flags @@ -47,25 +49,25 @@ variables matches the flags you use to update them. However, you can override th environmental variables: - **Configuration parameters** - - `TIGER_CONFIG_DIR`: path to configuration directory (default: ~/.config/tiger) - - `TIGER_API_URL`: $REST_LONG base endpoint (default: https://console.cloud.timescale.com/public/api/v1) - - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) - - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) - - `TIGER_DOCS_MCP`: Enable/disable docs MCP proxy (default: true) - - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands - - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands - - `TIGER_OUTPUT`: output format (json, yaml, or table) - - `TIGER_ANALYTICS`: enable or disable analytics (default: true) - - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - - `TIGER_DEBUG`: Enable/disable debug logging (default: false) + - `TIGER_CONFIG_DIR`: path to configuration directory (default: ~/.config/tiger) + - `TIGER_API_URL`: $REST_LONG base endpoint (default: https://console.cloud.timescale.com/public/api/v1) + - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) + - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) + - `TIGER_DOCS_MCP`: Enable/disable docs MCP proxy (default: true) + - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) + - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands + - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands + - `TIGER_OUTPUT`: output format (json, yaml, or table) + - `TIGER_ANALYTICS`: enable or disable analytics (default: true) + - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) + - `TIGER_DEBUG`: Enable/disable debug logging (default: false) - **Authentication parameters** To authenticate without using the interactive login, set the following with your [client credentials][rest-api-credentials]: - - `TIGER_PUBLIC_KEY`: public key - - `TIGER_SECRET_KEY`: secret key + - `TIGER_PUBLIC_KEY`: public key + - `TIGER_SECRET_KEY`: secret key [rest-api-reference]: /api/:currentVersion:/api-reference/ diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md new file mode 100644 index 0000000000..49f81c3a3e --- /dev/null +++ b/_partials/_devops-mcp-commands-cli.md @@ -0,0 +1,12 @@ + +You can use the following $CLI_LONG commands to run $MCP_SHORT: + +Usage: `tiger mcp [subcommand] --` + +| Command | Subcommand | Description | +|---------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| mcp | | Manage the $MCP_LONG | +| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| +| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_SHORT with stdio transport | +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| \ No newline at end of file diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md new file mode 100644 index 0000000000..bc5a4d4186 --- /dev/null +++ b/_partials/_devops-mcp-commands.md @@ -0,0 +1,29 @@ +You can use the following commands with $MCP_LONG. + + +| Command | Parameter | Required | Description | +|-------------------------------|-----------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `tiger_service_list` | - | - | List all database services in the current project. Returns services with status, type, region, and resource allocation information. Read-only operation that provides an overview of all available services. | +| `tiger_service_get` | - | - | Get detailed information for a specific database service. Returns connection endpoints, replica configuration, resource allocation, creation time, and status. Read-only operation. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | +| | `with_password` | - | Whether to include the password in the response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | +| `tiger_service_create` | - | - | Create a new database service in Tiger with specified configuration. **WARNING: Creates billable resources.** Default behavior returns immediately while service provisions in background (recommended). Setting wait=true blocks for minutes until ready - only use if user explicitly needs immediate access. | +| | `name` | - | Human-readable name for the service (auto-generated if not provided). Max 128 characters. Examples: "my-production-db", "analytics-service", "user-store" | +| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for PostgreSQL-only. | +| | `region` | - | AWS region where service will be deployed. Choose region closest to users for optimal performance. Examples: "us-east-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-southeast-1" | +| | `cpu_memory` | - | CPU and memory allocation combination. Choose from available configurations:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | `replicas` | - | Number of high-availability replicas for fault tolerance (0-5). Higher replica counts increase cost but improve availability. Default: 0 (single node/no HA) | +| | `wait` | - | Whether to wait for service to be fully ready before returning. Default: false (recommended). **Only set to true if user explicitly needs to use service immediately.** | +| | `timeout_minutes` | - | Timeout in minutes when waiting for service to be ready. Only used when wait=true. Default: 30 minutes | +| | `set_default` | - | Whether to set newly created service as the default service for future commands. Default: true | +| | `with_password` | - | Whether to include password in response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | +| `tiger_service_update_password` | - | - | Update master password for 'tsdbadmin' user of a database service. Takes effect immediately and may terminate existing connections. **Destructive operation** that modifies authentication credentials. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Examples: "e6ue9697jf", "u8me885b93" | +| | `password` | ✓ | The new password for the 'tsdbadmin' user. Must be strong and secure. Example: "MySecurePassword123!" | +| `tiger_db_execute_query` | - | - | Execute a single SQL query against a service database. **WARNING: Can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands.** Returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | +| | `query` | ✓ | PostgreSQL query to execute. Single statement only. | +| | `parameters` | - | Query parameters for parameterized queries. Values are substituted for $1, $2, etc. placeholders in the query. Examples: [1, "alice"], ["2024-01-01", 100] | +| | `timeout_seconds` | - | Query timeout in seconds. Default: 30. Examples: 10, 30, 60 | +| | `role` | - | Database role/username to connect as. Default: "tsdbadmin". Examples: "tsdbadmin", "readonly", "postgres" | +| | `pooled` | - | Use connection pooling (if available for the service). Default: false | \ No newline at end of file diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 9b4af792a7..ef9cf2c6b4 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -13,8 +13,195 @@ tags: - authentication --- -import MCPGS from "versionContent/_partials/_devops-mcp-get-started.mdx"; + +import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; +import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; +import MCPCOMMANDS from "versionContent/_partials/_devops-mcp-commands.mdx"; +import MCPCOMMANDSCLI from "versionContent/_partials/_devops-mcp-commands-cli.mdx"; +import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; # Integrate Tiger with your AI Assistant - \ No newline at end of file +The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI assistants. $MCP_SHORT +mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You manage your +$CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure using natural language +from your AI assistant. As $MCP_SHORT is integrated with the $COMPANY documentation, ask any question and you +will get the best answer. + +This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the +resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. + +## Prerequisites + + + +* An AI assistant installed on your developer device with an active API key + + Supported AI assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` + +## Install and configure $MCP_SHORT + +The $MCP_SHORT is bundled with $CLI_LONG: + + + + + +1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** + + For example: + ```shell + tiger mcp install claude-code + ``` + This command integrates Claude with a local $MCP_SHORT and the $COMPANY documentation. + + + +And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. + +## Manage the resources in your $ACCOUNT_LONG through your AI Assistant + +Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to +manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG features. For example: + + + +1. **Run your AI assistant** + ```shell + claude + ``` + Claude automatically runs your $MCP_SHORT server that enables you to interact with $CLOUD_SHORT from your + AI Assistant. + +1. **Check your $MCP_LONG configuration** + ```shell + > is the tigerdata mcp server active for you? + ``` + You see something like: + ```shell + MCP server is active. I can see the following TigerData-related tools available: + + - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices + - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation + - mcp__tiger__semantic_search_tiger_docs - Search Tiger Cloud and TimescaleDB documentation + - mcp__tiger__tiger_service_create - Create new database services + - mcp__tiger__tiger_service_list - List all database services + - mcp__tiger__tiger_service_show - Show detailed service information + - mcp__tiger__tiger_service_update_password - Update service passwords + + Is there something specific you'd like to do with the TigerData MCP server? + ``` + +1. **Ask a basic question about your $SERVICE_SHORTs** + ```shell + > can you list my active services please + ``` + You see something like: + ```shell + ⏺ You have 3 active services, all with the same name "my-first-service": + + 1. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + 2. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + 3. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 + ``` + +1. **Manage your $SERVICE_SHORTs without having to learn how to** + + For example: + ```shell + Can you create a new ai service called bob with a read replica for me please + ``` + You see something like: + ```shell + tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false) + ... + Do you want to proceed? + ❯ 1. Yes + ``` + +1. **Find best practice for things you need to do** + + For example: + ```shell + > I need to migrate a database with 25 million rows of data to Tiger, + please tell me what service optimizations i should do before migration. + + ``` + You see something like: + ```shell + ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration: + + Pre-Migration Service Optimizations + + 1. Right-size your compute resources: + - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB + - You can scale up during migration if needed, then scale down after + + 2. Enable the appropriate add-ons: + - Use time-series addon if you're working with time-series data + - Use ai addon if you need vector/AI capabilities + + 3. Choose optimal region: + - Select the region closest to your current database to minimize network transfer time + - This significantly reduces migration duration + + 4. Consider enhanced storage (Enterprise only): + - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000) + + 5. Skip replicas initially: + - Start with 0 replicas during migration + - Add replicas after migration completes to avoid duplicate data copying + + 6. Plan for storage space: + - Estimate your uncompressed data size + - Allocate sufficient high-performance storage (scales automatically but good to plan) + - You can enable tiered storage later for older data + + During Migration Best Practices + + Migration method selection: + - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks) + - Allows restart if a copy operation fails + - Better for databases >10GB + + Database configuration to set AFTER migration: + - Set up compression policies (once data is loaded) + - Configure retention policies + - Create continuous aggregates + - Enable tiered storage for cost optimization + + Connection settings: + - Use the pooled connection endpoint for better performance during bulk inserts + - Disable unnecessary constraints/indexes during migration, re-enable after + + Would you like me to help you create an optimized service for this migration? + ``` + + + +That beats working. Let the $MCP_LONG do it all for you. + +## $MCP_LONG commands + + + + +## $CLI_LONG commands for $MCP_SHORT + + + +## Global flags + +You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: + + + + + +[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/ +[cloud-regions]: /use-timescale/:currentVersion:/regions/ +[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ \ No newline at end of file From 5a01714bd1493a38e3f3fff5f05f471733c96f9c Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 16:29:53 +0200 Subject: [PATCH 36/75] chore: hmmm --- _partials/_devops-mcp-commands-cli.md | 13 ++++--- _partials/_devops-mcp-commands.md | 53 ++++++++++++++------------- ai/mcp-server.md | 4 +- 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md index 49f81c3a3e..83784452aa 100644 --- a/_partials/_devops-mcp-commands-cli.md +++ b/_partials/_devops-mcp-commands-cli.md @@ -3,10 +3,11 @@ You can use the following $CLI_LONG commands to run $MCP_SHORT: Usage: `tiger mcp [subcommand] --` -| Command | Subcommand | Description | -|---------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| mcp | | Manage the $MCP_LONG | +| Command | Subcommand | Description | +|---------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| mcp | | Manage the $MCP_LONG | | | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| -| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| \ No newline at end of file +| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_SHORT with stdio transport | +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| + diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index bc5a4d4186..cf07dcaed9 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -1,29 +1,30 @@ + You can use the following commands with $MCP_LONG. +| Command | Parameter | Required | Description | +|---------------------------------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `tiger_service_list` | - | - | List all database services in the current project. Returns services with status, type, region, and resource allocation information. Read-only operation that provides an overview of all available services. | +| `tiger_service_get` | - | - | Get detailed information for a specific database service. Returns connection endpoints, replica configuration, resource allocation, creation time, and status. Read-only operation. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | +| | `with_password` | - | Whether to include the password in the response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | +| `tiger_service_create` | - | - | Create a new database service in Tiger with specified configuration. **WARNING: Creates billable resources.** Default behavior returns immediately while service provisions in background (recommended). Setting wait=true blocks for minutes until ready - only use if user explicitly needs immediate access. | +| | `name` | - | Human-readable name for the service (auto-generated if not provided). Max 128 characters. Examples: "my-production-db", "analytics-service", "user-store" | +| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for PostgreSQL-only. | +| | `region` | - | AWS region where service will be deployed. Choose region closest to users for optimal performance. Examples: "us-east-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-southeast-1" | +| | `cpu_memory` | - | CPU and memory allocation combination. Choose from available configurations:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | `replicas` | - | Number of high-availability replicas for fault tolerance (0-5). Higher replica counts increase cost but improve availability. Default: 0 (single node/no HA) | +| | `wait` | - | Whether to wait for service to be fully ready before returning. Default: false (recommended). **Only set to true if user explicitly needs to use service immediately.** | +| | `timeout_minutes` | - | Timeout in minutes when waiting for service to be ready. Only used when wait=true. Default: 30 minutes | +| | `set_default` | - | Whether to set newly created service as the default service for future commands. Default: true | +| | `with_password` | - | Whether to include password in response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | +| `tiger_service_update_password` | - | - | Update master password for 'tsdbadmin' user of a database service. Takes effect immediately and may terminate existing connections. **Destructive operation** that modifies authentication credentials. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Examples: "e6ue9697jf", "u8me885b93" | +| | `password` | ✓ | The new password for the 'tsdbadmin' user. Must be strong and secure. Example: "MySecurePassword123!" | +| `tiger_db_execute_query` | - | - | Execute a single SQL query against a service database. **WARNING: Can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands.** Returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported. | +| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | +| | `query` | ✓ | PostgreSQL query to execute. Single statement only. | +| | `parameters` | - | Query parameters for parameterized queries. Values are substituted for $1, $2, etc. placeholders in the query. Examples: [1, "alice"], ["2024-01-01", 100] | +| | `timeout_seconds` | - | Query timeout in seconds. Default: 30. Examples: 10, 30, 60 | +| | `role` | - | Database role/username to connect as. Default: "tsdbadmin". Examples: "tsdbadmin", "readonly", "postgres" | +| | `pooled` | - | Use connection pooling (if available for the service). Default: false | -| Command | Parameter | Required | Description | -|-------------------------------|-----------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tiger_service_list` | - | - | List all database services in the current project. Returns services with status, type, region, and resource allocation information. Read-only operation that provides an overview of all available services. | -| `tiger_service_get` | - | - | Get detailed information for a specific database service. Returns connection endpoints, replica configuration, resource allocation, creation time, and status. Read-only operation. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | -| | `with_password` | - | Whether to include the password in the response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | -| `tiger_service_create` | - | - | Create a new database service in Tiger with specified configuration. **WARNING: Creates billable resources.** Default behavior returns immediately while service provisions in background (recommended). Setting wait=true blocks for minutes until ready - only use if user explicitly needs immediate access. | -| | `name` | - | Human-readable name for the service (auto-generated if not provided). Max 128 characters. Examples: "my-production-db", "analytics-service", "user-store" | -| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for PostgreSQL-only. | -| | `region` | - | AWS region where service will be deployed. Choose region closest to users for optimal performance. Examples: "us-east-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-southeast-1" | -| | `cpu_memory` | - | CPU and memory allocation combination. Choose from available configurations:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | `replicas` | - | Number of high-availability replicas for fault tolerance (0-5). Higher replica counts increase cost but improve availability. Default: 0 (single node/no HA) | -| | `wait` | - | Whether to wait for service to be fully ready before returning. Default: false (recommended). **Only set to true if user explicitly needs to use service immediately.** | -| | `timeout_minutes` | - | Timeout in minutes when waiting for service to be ready. Only used when wait=true. Default: 30 minutes | -| | `set_default` | - | Whether to set newly created service as the default service for future commands. Default: true | -| | `with_password` | - | Whether to include password in response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | -| `tiger_service_update_password` | - | - | Update master password for 'tsdbadmin' user of a database service. Takes effect immediately and may terminate existing connections. **Destructive operation** that modifies authentication credentials. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Examples: "e6ue9697jf", "u8me885b93" | -| | `password` | ✓ | The new password for the 'tsdbadmin' user. Must be strong and secure. Example: "MySecurePassword123!" | -| `tiger_db_execute_query` | - | - | Execute a single SQL query against a service database. **WARNING: Can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands.** Returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | -| | `query` | ✓ | PostgreSQL query to execute. Single statement only. | -| | `parameters` | - | Query parameters for parameterized queries. Values are substituted for $1, $2, etc. placeholders in the query. Examples: [1, "alice"], ["2024-01-01", 100] | -| | `timeout_seconds` | - | Query timeout in seconds. Default: 30. Examples: 10, 30, 60 | -| | `role` | - | Database role/username to connect as. Default: "tsdbadmin". Examples: "tsdbadmin", "readonly", "postgres" | -| | `pooled` | - | Use connection pooling (if available for the service). Default: false | \ No newline at end of file diff --git a/ai/mcp-server.md b/ai/mcp-server.md index ef9cf2c6b4..0abd98d4e0 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -20,6 +20,7 @@ import MCPCOMMANDS from "versionContent/_partials/_devops-mcp-commands.mdx"; import MCPCOMMANDSCLI from "versionContent/_partials/_devops-mcp-commands-cli.mdx"; import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; + # Integrate Tiger with your AI Assistant The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI assistants. $MCP_SHORT @@ -127,7 +128,9 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe please tell me what service optimizations i should do before migration. ``` + You see something like: + ```shell ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration: @@ -197,7 +200,6 @@ You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: - [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 From 43cdb79f75351d5c21692b96e7f2e0942143abd6 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 16:40:03 +0200 Subject: [PATCH 37/75] chore: clean metadata --- ai/mcp-server.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 0abd98d4e0..3575d1ad41 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -1,19 +1,11 @@ --- -title: "Integrate Tiger with your AI Assistant" -excerpt: "Manage your services and optimize your schema and queries with your AI Assistant" -keywords: - - authentication - - service creation - - API setup - - security -tags: - - setup - - security - - services - - authentication +title: Integrate Tiger with your AI Assistant +excerpt: Manage your services and optimize your schema and queries using your AI Assistant +products: [cloud, self_hosted] +keywords: [ai, mcp, server, security] +tags: [ai] --- - import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; import MCPCOMMANDS from "versionContent/_partials/_devops-mcp-commands.mdx"; From 97fe5c02918d13e5c436c22f349b40579596a514 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 16:47:32 +0200 Subject: [PATCH 38/75] chore: try removing a partial. --- ai/mcp-server.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 3575d1ad41..c0671d78c5 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -178,12 +178,10 @@ That beats working. Let the $MCP_LONG do it all for you. ## $MCP_LONG commands - ## $CLI_LONG commands for $MCP_SHORT - ## Global flags From 706ad3cec236af9bca736fd6932ec2080bb00802 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 16:57:01 +0200 Subject: [PATCH 39/75] chore: add one back. --- _partials/_devops-mcp-get-started.md | 222 --------------------------- ai/mcp-server.md | 4 +- 2 files changed, 2 insertions(+), 224 deletions(-) delete mode 100644 _partials/_devops-mcp-get-started.md diff --git a/_partials/_devops-mcp-get-started.md b/_partials/_devops-mcp-get-started.md deleted file mode 100644 index a41497d765..0000000000 --- a/_partials/_devops-mcp-get-started.md +++ /dev/null @@ -1,222 +0,0 @@ - -import RESTPrereqs from "versionContent/_partials/_prereqs-cloud-account-only.mdx"; -import CLIINSTALL from "versionContent/_partials/_devops-cli-install.mdx"; -import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; - -The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other -AI assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. - -You use $MCP_SHORT to manage $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure. -$MCP_SHORT calls $REST_LONG to communicate with $CLOUD_LONG. - -This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the -resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. - -## Prerequisites - - - -* An AI assistant installed on your developer device with an active API key - - Supported AI assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` - -## Install and configure $MCP_SHORT - -The $MCP_SHORT is bundled with $CLI_LONG: - - - - - -1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** - - For example: - ```shell - tiger mcp install claude-code - ``` - -1. **Configure your AI Assistant to interact with the $COMPANY docs** - - For example: - ```shell - claude mcp add --transport http tiger-docs https://mcp.tigerdata.com/docs - ``` - - - -And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORTs in $CLOUD_LONG. - -## Manage the resources in your $ACCOUNT_LONG through your AI Assistant - -Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to -manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG features. For example: - - - -1. **Start your $MCP_SHORT** - ```shell - tiger mcp start - ``` - -1. **Run your AI assistant** - ```shell - claude - ``` - -1. **Check your $MCP_LONG configuration** - ```shell - > is the tigerdata mcp server active for you? - ``` - You see something like: - ```shell - MCP server is active. I can see the following TigerData-related tools available: - - - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices - - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation - - mcp__tiger__semantic_search_tiger_docs - Search Tiger Cloud and TimescaleDB documentation - - mcp__tiger__tiger_service_create - Create new database services - - mcp__tiger__tiger_service_list - List all database services - - mcp__tiger__tiger_service_show - Show detailed service information - - mcp__tiger__tiger_service_update_password - Update service passwords - - Is there something specific you'd like to do with the TigerData MCP server? - ``` - -1. **Ask a basic question about your $SERVICE_SHORTs** - ```shell - > can you list my active services please - ``` - You see something like: - ```shell - ⏺ You have 3 active services, all with the same name "my-first-service": - - 1. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 - 2. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 - 3. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30 - ``` - -1. **Manage your $SERVICE_SHORTs without having to learn how to** - - For example: - ```shell - Can you create a new ai service called bob with a read replica for me please - ``` - You see something like: - ```shell - tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false) - ... - Do you want to proceed? - ❯ 1. Yes - ``` - -1. **Find best practice for things you need to do** - - For example: - ```shell - > I need to migrate a database with 25 million rows of data to Tiger, - please tell me what service optimizations i should do before migration. - - ``` - You see something like: - ```shell - ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration: - - Pre-Migration Service Optimizations - - 1. Right-size your compute resources: - - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB - - You can scale up during migration if needed, then scale down after - - 2. Enable the appropriate add-ons: - - Use time-series addon if you're working with time-series data - - Use ai addon if you need vector/AI capabilities - - 3. Choose optimal region: - - Select the region closest to your current database to minimize network transfer time - - This significantly reduces migration duration - - 4. Consider enhanced storage (Enterprise only): - - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000) - - 5. Skip replicas initially: - - Start with 0 replicas during migration - - Add replicas after migration completes to avoid duplicate data copying - - 6. Plan for storage space: - - Estimate your uncompressed data size - - Allocate sufficient high-performance storage (scales automatically but good to plan) - - You can enable tiered storage later for older data - - During Migration Best Practices - - Migration method selection: - - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks) - - Allows restart if a copy operation fails - - Better for databases >10GB - - Database configuration to set AFTER migration: - - Set up compression policies (once data is loaded) - - Configure retention policies - - Create continuous aggregates - - Enable tiered storage for cost optimization - - Connection settings: - - Use the pooled connection endpoint for better performance during bulk inserts - - Disable unnecessary constraints/indexes during migration, re-enable after - - Would you like me to help you create an optimized service for this migration? - ``` - - - -That beats working. Let the $MCP_LONG do it all for you. - - -## $MCP_LONG commands - -You can use the following commands with $MCP_LONG. - -| Command | Parameters | Required parameter | Description | -|-------------------------------|------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tiger_service_list | None | - | List all $SERVICE_LONGs in your current $PROJECT_LONG | -| tiger_service_show | service_id | ✓ | Show detailed information about a specific $SERVICE_SHORT | -| tiger_service_create | | ✗ | Create a new $SERVICE_SHORT with a default name in your $PROJECT_LONG | -| | name | ✗ | Set the $SERVICE_SHORT name to `name` s | -| | addons | ✗ | Possible addons are:
  • time-series: with the Timescaledb and Timescaledb Toolkit extensions
  • ai: with the Timescaledb, Timescaledb Toolkit, vector and vectorscale extensions
  • free: free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage.
  • none: vanilla Postgres
All services have Tiger features such as Tiger Storage, Security, Monitoring and compliance. If you do not use the `addons` flag, the default service is `time-series`. | -| | region | ✗ | The [Region][cloud-regions] this $SERVICE is hosted in. Default is `us-east-1` | -| | cpu_memory | ✗ | The CPU and memory allocation combination. Default is "0.5 CPU/2GB" | -| | replicas | ✗ | The number of [high-availability replicas][readreplica]. Default is 0 | -| | free | ✗ | Free services have fixed compute of 0.25 CPU, 1 GiB RAM, and up to 500mb storage. | -| | wait | ✗ | Wait for this $SERVICE_SHORT to be ready. Default is to not wait | -| | timeout | ✗ | Timeout for `wait` in minutes. The default is 30 | -| tiger_service_update_password | service_id | ✓ | Update the master password for the 'tsdbadmin' user of a database service | -| | password | ✓ | The new password | - -## $CLI_LONG commands for $MCP_SHORT - -Usage: `tiger mcp [subcommand] --` - -| Command | Subcommand | Description | -|---------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| mcp | | Manage the $MCP_LONG | -| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| -| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| - - -## Global flags - -You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: - - - - - -[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/ -[cloud-regions]: /use-timescale/:currentVersion:/regions/ -[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ \ No newline at end of file diff --git a/ai/mcp-server.md b/ai/mcp-server.md index c0671d78c5..ddc7b65263 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -63,7 +63,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe ```shell claude ``` - Claude automatically runs your $MCP_SHORT server that enables you to interact with $CLOUD_SHORT from your + Claude automatically runs your $MCP_SHORT server that enables you to interact with $CLOUD_LONG from your AI Assistant. 1. **Check your $MCP_LONG configuration** @@ -178,7 +178,7 @@ That beats working. Let the $MCP_LONG do it all for you. ## $MCP_LONG commands - + ## $CLI_LONG commands for $MCP_SHORT From f29eb0d15b93f2bb883fce57f67c475e21636a6d Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 17:04:31 +0200 Subject: [PATCH 40/75] chore: add one back. --- ai/mcp-server.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ai/mcp-server.md b/ai/mcp-server.md index ddc7b65263..88a889338e 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -182,6 +182,7 @@ That beats working. Let the $MCP_LONG do it all for you. ## $CLI_LONG commands for $MCP_SHORT + ## Global flags From a83a027766b5e1022e89af803686cbc0ec016f0b Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Thu, 16 Oct 2025 17:14:29 +0200 Subject: [PATCH 41/75] chore: add one back. --- _partials/_devops-mcp-commands-cli.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md index 83784452aa..2e0454ed9e 100644 --- a/_partials/_devops-mcp-commands-cli.md +++ b/_partials/_devops-mcp-commands-cli.md @@ -3,11 +3,11 @@ You can use the following $CLI_LONG commands to run $MCP_SHORT: Usage: `tiger mcp [subcommand] --` -| Command | Subcommand | Description | -|---------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| mcp | | Manage the $MCP_LONG | -| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.

Supported `client`s: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:

  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| -| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.

Flags are:

  • `--port ` The default is 8000.
  • `--host ` The default is localhost.
| +| Command | Subcommand | Description | +|---------|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| mcp | | Manage the $MCP_LONG | +| | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.
Supported clients are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:
  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| +| | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_SHORT with stdio transport | +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is 8000
  • `--host `: the default is localhost
| From 20b0104002e45c6f46ec7d1e0a89c2c63aa5cafd Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 17 Oct 2025 10:44:52 +0200 Subject: [PATCH 42/75] chore: MacOS --- _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 413211b625..15ecb1d2b5 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -38,7 +38,7 @@ - + ```shell brew install --cask timescale/tap/tiger-cli From 0097d2a0d9806ee43abeee2c62e8e598d0cc288d Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Fri, 17 Oct 2025 12:32:42 +0200 Subject: [PATCH 43/75] 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 | 4 ++-- _partials/_devops-cli-reference.md | 8 ++++---- _partials/_devops-mcp-commands.md | 4 ++-- _partials/_devops-rest-api-get-started.md | 2 +- getting-started/get-started-devops-as-code.md | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 15ecb1d2b5..df84c4001c 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: @@ -63,7 +63,7 @@ ```shell tiger auth login ``` - $CLI_LONG opens $CONSOLE_SHORT in your browser. Login, then click `Authorize`. + $CLI_LONG opens $CONSOLE_SHORT in your browser. Log in, then click `Authorize`. You can have a maximum of 10 active client credentials. If you get an error, open [credentials][rest-api-credentials] and delete an unused credential. diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index a257e8c400..6f009cb2a2 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -20,7 +20,7 @@ You can use the following commands with $CLI_LONG. For more information on each | service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | | | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | | | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (json, yaml, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| | | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | | | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| | | update-password `` | Update the master password for a $SERVICE_SHORT | @@ -29,7 +29,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | connect `` | Connect to a $SERVICE_SHORT | | | test-connection `` | Test the connectivity to a $SERVICE_SHORT | | mcp | | Manage the $MCP_LONG for AI assistant integration | -| | install `[client]` | Install and configure Tiger MCP server for a specific client (claude-code, cursor, windsurf, etc.). If no client is specified, you'll be prompted to select one interactively. | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | | | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_LONG with stdio transport (default) | | | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | @@ -49,7 +49,7 @@ variables matches the flags you use to update them. However, you can override th environmental variables: - **Configuration parameters** - - `TIGER_CONFIG_DIR`: path to configuration directory (default: ~/.config/tiger) + - `TIGER_CONFIG_DIR`: path to configuration directory (default: `~/.config/tiger`) - `TIGER_API_URL`: $REST_LONG base endpoint (default: https://console.cloud.timescale.com/public/api/v1) - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) @@ -57,7 +57,7 @@ environmental variables: - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands - - `TIGER_OUTPUT`: output format (json, yaml, or table) + - `TIGER_OUTPUT`: output format (`json`, `yaml`, or table) - `TIGER_ANALYTICS`: enable or disable analytics (default: true) - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - `TIGER_DEBUG`: Enable/disable debug logging (default: false) diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index cf07dcaed9..9dda8a7d60 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -1,5 +1,5 @@ -You can use the following commands with $MCP_LONG. +You can use the following commands with $MCP_LONG: | Command | Parameter | Required | Description | |---------------------------------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -9,7 +9,7 @@ You can use the following commands with $MCP_LONG. | | `with_password` | - | Whether to include the password in the response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | | `tiger_service_create` | - | - | Create a new database service in Tiger with specified configuration. **WARNING: Creates billable resources.** Default behavior returns immediately while service provisions in background (recommended). Setting wait=true blocks for minutes until ready - only use if user explicitly needs immediate access. | | | `name` | - | Human-readable name for the service (auto-generated if not provided). Max 128 characters. Examples: "my-production-db", "analytics-service", "user-store" | -| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for PostgreSQL-only. | +| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for Postgres-only. | | | `region` | - | AWS region where service will be deployed. Choose region closest to users for optimal performance. Examples: "us-east-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-southeast-1" | | | `cpu_memory` | - | CPU and memory allocation combination. Choose from available configurations:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| | | `replicas` | - | Number of high-availability replicas for fault tolerance (0-5). Higher replica counts increase cost but improve availability. Default: 0 (single node/no HA) | diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index 43c85ffc4f..2cc743ae29 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -90,7 +90,7 @@ Create a new $SERVICE_SHORT using the $REST_LONG: }' ``` $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or - read-replication. You see something like: + read replication. You see something like: ```terminaloutput { "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 70af6c8792..72e8c72eb7 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -29,7 +29,7 @@ that enable humans, machines, and AI agents easily provision, configure, and man
- + From 33add2ffc441f2a790d19b2a713271a3c0b6d35d Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Fri, 17 Oct 2025 15:36:48 +0200 Subject: [PATCH 44/75] Update _partials/_devops-cli-get-started.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 85db5bc083..62769c310e 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -38,7 +38,7 @@ Create a new $SERVICE_LONG using $CLI_LONG: tiger service create ``` $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or - read-replication. You see something like: + read replication. You see something like: ```terminaloutput 🚀 Creating service 'db-11111' (auto-generated name)... ✅ Service creation request accepted! From 2f2c061ce1ea6f0e9237d9b56d50fa62d54457ca Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 17 Oct 2025 17:06:38 +0200 Subject: [PATCH 45/75] chore: updates on review. --- _partials/_devops-cli-get-started.md | 4 +- _partials/_devops-cli-global-flags.md | 18 +++--- _partials/_devops-cli-install.md | 2 +- _partials/_devops-cli-reference.md | 60 +++++++++---------- _partials/_devops-mcp-commands.md | 56 +++++++++-------- ai/mcp-server.md | 42 ++++++------- getting-started/get-started-devops-as-code.md | 2 +- integrations/find-connection-details.md | 4 +- 8 files changed, 96 insertions(+), 92 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 62769c310e..0bec3c1453 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -31,9 +31,9 @@ Create a new $SERVICE_LONG using $CLI_LONG: 1. **Submit a service creation request** - $CLI_LONG creates a default service depending on your [pricing plan][pricing-plans]: + Depending on your [pricing plan][pricing-plans], $CLI_LONG creates a service for you: * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons - * **Standard plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on + * **Paid plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on ```shell tiger service create ``` diff --git a/_partials/_devops-cli-global-flags.md b/_partials/_devops-cli-global-flags.md index 907060f1dc..8a48c07f86 100644 --- a/_partials/_devops-cli-global-flags.md +++ b/_partials/_devops-cli-global-flags.md @@ -1,10 +1,10 @@ -| Flag | Default | Description | -|---------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `--analytics` | `true` | Set to `false` to disable usage analytics. | -| `--config-dir` string | `.config/tiger` | Set the directory that holds `config.yaml` | -| `--debug` | No debugging | Enable debug logging | -| `-o`, `--output` string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| `--password-storage` string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| `--project-id` string | - | Set the $PROJECT_LONG to manage. | -| `--service-id` string | - | Set the $SERVICE_LONG to manage. | +| Flag | Default | Description | +|---------------------------|-----------------|-----------------------------------------------------------------------------| +| `--analytics` | `true` | Set to `false` to disable usage analytics | +| `--config-dir` string | `.config/tiger` | Set the directory that holds `config.yaml` | +| `--debug` | No debugging | Enable debug logging | +| `-o`, `--output` string | table | Set the output format. Options are `json`, `yaml`, or `table` | +| `--password-storage` string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| `--project-id` string | - | Set the $PROJECT_LONG to manage | +| `--service-id` string | - | Set the $SERVICE_LONG to manage | diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index df84c4001c..fb898d37d5 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -49,7 +49,7 @@ ```shell - curl -fsSL https://cli.tigerdata.com/install.sh | sh + curl -fsSL https://cli.tigerdata.com | sh ``` diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 6f009cb2a2..030198b2f6 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,34 +5,34 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: Service name (auto-generated if not provided)
  • `--addons`: Addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: Region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: Number of high-availability replicas
  • `--no-wait`: Don't wait for operation to complete
  • `--wait-timeout`: Wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: Don't set this service as the default service
  • `--with-password`: Include password in output
  • `--output, -o`: Output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | -| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | update-password `` | Update the master password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_LONG with stdio transport (default) | -| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | +| Command | Subcommand | Description | +|---------|----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | whoami | Show information about the current user | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: cPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for operation to complete
  • `--wait-timeout`: wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | update-password `` | Update the master password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | connect `` | Connect to a $SERVICE_SHORT | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI assistant integration | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | ## Global flags @@ -53,14 +53,14 @@ environmental variables: - `TIGER_API_URL`: $REST_LONG base endpoint (default: https://console.cloud.timescale.com/public/api/v1) - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) - - `TIGER_DOCS_MCP`: Enable/disable docs MCP proxy (default: true) + - `TIGER_DOCS_MCP`: enable/disable docs MCP proxy (default: true) - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands - `TIGER_OUTPUT`: output format (`json`, `yaml`, or table) - `TIGER_ANALYTICS`: enable or disable analytics (default: true) - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - - `TIGER_DEBUG`: Enable/disable debug logging (default: false) + - `TIGER_DEBUG`: enable/disable debug logging (default: false) - **Authentication parameters** diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index 9dda8a7d60..8b16561a5a 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -1,30 +1,34 @@ You can use the following commands with $MCP_LONG: -| Command | Parameter | Required | Description | -|---------------------------------|-------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tiger_service_list` | - | - | List all database services in the current project. Returns services with status, type, region, and resource allocation information. Read-only operation that provides an overview of all available services. | -| `tiger_service_get` | - | - | Get detailed information for a specific database service. Returns connection endpoints, replica configuration, resource allocation, creation time, and status. Read-only operation. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | -| | `with_password` | - | Whether to include the password in the response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | -| `tiger_service_create` | - | - | Create a new database service in Tiger with specified configuration. **WARNING: Creates billable resources.** Default behavior returns immediately while service provisions in background (recommended). Setting wait=true blocks for minutes until ready - only use if user explicitly needs immediate access. | -| | `name` | - | Human-readable name for the service (auto-generated if not provided). Max 128 characters. Examples: "my-production-db", "analytics-service", "user-store" | -| | `addons` | - | Array of addons to enable for the service. Options:
  • time-series (enables TimescaleDB)
  • ai (enables AI/vector extensions)
Use empty array for Postgres-only. | -| | `region` | - | AWS region where service will be deployed. Choose region closest to users for optimal performance. Examples: "us-east-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-southeast-1" | -| | `cpu_memory` | - | CPU and memory allocation combination. Choose from available configurations:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | `replicas` | - | Number of high-availability replicas for fault tolerance (0-5). Higher replica counts increase cost but improve availability. Default: 0 (single node/no HA) | -| | `wait` | - | Whether to wait for service to be fully ready before returning. Default: false (recommended). **Only set to true if user explicitly needs to use service immediately.** | -| | `timeout_minutes` | - | Timeout in minutes when waiting for service to be ready. Only used when wait=true. Default: 30 minutes | -| | `set_default` | - | Whether to set newly created service as the default service for future commands. Default: true | -| | `with_password` | - | Whether to include password in response and connection string. **NEVER set to true unless user explicitly requests password.** Default: false | -| `tiger_service_update_password` | - | - | Update master password for 'tsdbadmin' user of a database service. Takes effect immediately and may terminate existing connections. **Destructive operation** that modifies authentication credentials. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Examples: "e6ue9697jf", "u8me885b93" | -| | `password` | ✓ | The new password for the 'tsdbadmin' user. Must be strong and secure. Example: "MySecurePassword123!" | -| `tiger_db_execute_query` | - | - | Execute a single SQL query against a service database. **WARNING: Can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands.** Returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported. | -| | `service_id` | ✓ | The unique identifier of the service (10-character alphanumeric string). Use `tiger_service_list` to find service IDs. Examples: "e6ue9697jf", "u8me885b93" | -| | `query` | ✓ | PostgreSQL query to execute. Single statement only. | -| | `parameters` | - | Query parameters for parameterized queries. Values are substituted for $1, $2, etc. placeholders in the query. Examples: [1, "alice"], ["2024-01-01", 100] | -| | `timeout_seconds` | - | Query timeout in seconds. Default: 30. Examples: 10, 30, 60 | -| | `role` | - | Database role/username to connect as. Default: "tsdbadmin". Examples: "tsdbadmin", "readonly", "postgres" | -| | `pooled` | - | Use connection pooling (if available for the service). Default: false | +| Command | Parameter | Required | Description | +|--------------------------|---------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `service_list` | - | - | Returns a list of the $SERVICE_SHORTs in the current $PROJECT_SHORT. | +| `service_get` | - | - | Returns detailed information about a $SERVICE_SHORT. | +| | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT (10-character alphanumeric string). | +| | `with_password` | - | Set to `true` to include the password in the response and connection string.
**WARNING**: never do this unless the user explicitly requests the password. | +| `service_create` | - | - | Create a new $SERVICE_SHORT in $CLOUD_LONG.
**WARNING**: creates billable resources. | +| | `name` | - | Set the human-readable name of up to 128 character for this $SERVICE_SHORT. | +| | `addons` | - | Set the array of [addons][create-service] to enable for the $SERVICE_SHORT. Options:
  • `time-series`: enables $TIMESCALE_DB
  • `ai`: enables the AI and vector extensions
Set an empty array for $PG-only. | +| | `region` | - | Set the [AWS region][cloud-regions] to deploy this $SERVICE_SHORT in. | +| | `cpu_memory` | - | CPU and memory allocation combination.
Available configurations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | `replicas` | - | Set the number of [high-availability replicas][readreplica] for fault tolerance. | +| | `wait` | - | Set to `true` to wait for $SERVICE_SHORT to be fully ready before returning. | +| | `timeout_minutes` | - | Set the timeout in minutes to wait for $SERVICE_SHORT to be ready. Only used when `wait=true`. Default: 30 minutes | +| | `set_default` | - | By default, the new $SERVICE_SHORT is the default for following commands in $CLI_SHORT. Set to `false` to keep the previous $SERVICE_SHORT as the default. | +| | `with_password` | - | Set to `true` to include the password for this $SERVICE_SHORT in response and connection string.
**WARNING**: never set to `true` unless user explicitly requests the password. | +| `service_update_password` | - | - | Update the password for the `tsdbadmin` for this $SERVICE_SHORT. The password change takes effect immediately and may terminate existing connections. | +| | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT you want to update the password for. | +| | `password` | ✓ | The new password for the `tsdbadmin` user. | +| `db_execute_query` | - | - | Execute a single SQL query against a $SERVICE_SHORT. This command returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported.
**WARNING**: can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands. | +| | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT. Use `tiger_service_list` to find $SERVICE_SHORT IDs. | +| | `query` | ✓ | The SQL query to execute. Single statement queries are supported. | +| | `parameters` | - | Query parameters for parameterized queries. Values are substituted for the `$n` placeholders in the query. | +| | `timeout_seconds` | - | The query timeout in seconds. Default: 30. | +| | `role` | - | The $SERVICE_SHORT role/username to connect as. Default: `tsdbadmin`. | +| | `pooled` | - | Use [connection pooling][Connection pooling]. This is only available if you have already enabled it for the $SERVICE_SHORT. Default: `false` | +[cloud-regions]: /use-timescale/:currentVersion:/regions/ +[create-service]: /getting-started/:currentVersion:/services/ +[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ +[Connection pooling]: /use-timescale/:currentVersion:/services/connection-pooling/ \ No newline at end of file diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 88a889338e..2c14433bc1 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -15,10 +15,10 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; # Integrate Tiger with your AI Assistant -The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI assistants. $MCP_SHORT +The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI Assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You manage your $CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure using natural language -from your AI assistant. As $MCP_SHORT is integrated with the $COMPANY documentation, ask any question and you +from your AI Assistant. As $MCP_SHORT is integrated with the $COMPANY documentation, ask any question and you will get the best answer. This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the @@ -28,9 +28,9 @@ resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. -* An AI assistant installed on your developer device with an active API key +* An AI Assistant installed on your developer device with an active API key - Supported AI assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` + Supported AI Assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` ## Install and configure $MCP_SHORT @@ -54,12 +54,12 @@ And that is it, you are ready to use the $MCP_LONG to manage your $SERVICE_SHORT ## Manage the resources in your $ACCOUNT_LONG through your AI Assistant -Your AI assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to +Your AI Assistant is connected to your $ACCOUNT_LONG and the $COMPANY documentation, you can now use it to manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG features. For example: -1. **Run your AI assistant** +1. **Run your AI Assistant** ```shell claude ``` @@ -129,44 +129,44 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe Pre-Migration Service Optimizations 1. Right-size your compute resources: - - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB - - You can scale up during migration if needed, then scale down after + - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB + - You can scale up during migration if needed, then scale down after 2. Enable the appropriate add-ons: - - Use time-series addon if you're working with time-series data - - Use ai addon if you need vector/AI capabilities + - Use time-series addon if you are working with time-series data + - Use ai addon if you need vector/AI capabilities 3. Choose optimal region: - - Select the region closest to your current database to minimize network transfer time - - This significantly reduces migration duration + - Select the region closest to your current database to minimize network transfer time + - This significantly reduces migration duration 4. Consider enhanced storage (Enterprise only): - - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000) + - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000) 5. Skip replicas initially: - - Start with 0 replicas during migration - - Add replicas after migration completes to avoid duplicate data copying + - Start with 0 replicas during migration + - Add replicas after migration completes to avoid duplicate data copying 6. Plan for storage space: - - Estimate your uncompressed data size - - Allocate sufficient high-performance storage (scales automatically but good to plan) - - You can enable tiered storage later for older data + - Estimate your uncompressed data size + - Allocate sufficient high-performance storage (scales automatically but good to plan) + - You can enable tiered storage later for older data During Migration Best Practices Migration method selection: - - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks) + - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks) - Allows restart if a copy operation fails - Better for databases >10GB Database configuration to set AFTER migration: - - Set up compression policies (once data is loaded) + - Set up compression policies (once data is loaded) - Configure retention policies - Create continuous aggregates - Enable tiered storage for cost optimization Connection settings: - - Use the pooled connection endpoint for better performance during bulk inserts + - Use the pooled connection endpoint for better performance during bulk inserts - Disable unnecessary constraints/indexes during migration, re-enable after Would you like me to help you create an optimized service for this migration? diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 72e8c72eb7..833e753852 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -21,7 +21,7 @@ import CLIGS from "versionContent/_partials/_devops-cli-get-started.mdx"; $COMPANY supplies a clean, programmatic control layer for $CLOUD_LONG. This includes RESTful APIs and CLI commands that enable humans, machines, and AI agents easily provision, configure, and manage $SERVICE_LONG programmatically. - + diff --git a/integrations/find-connection-details.md b/integrations/find-connection-details.md index daf5105173..ea342379d9 100644 --- a/integrations/find-connection-details.md +++ b/integrations/find-connection-details.md @@ -37,7 +37,7 @@ Retrieve the connection details for your $SERVICE_LONG: ## Find your project and service ID -To retrieve the connection details for your $CLOUD_LONG project and $SERVICE_LONG: +To retrieve the connection details for your $PROJECT_LONG project and $SERVICE_LONG: @@ -95,7 +95,7 @@ such as Terraform or the [$CLOUD_LONG REST API][rest-api-reference]: 1. Click `Create credentials`, then copy `Public key` and `Secret key` locally. - ![Retrive the service id in $CONSOLE](https://assets.timescale.com/docs/images/tiger-cloud-console/tiger-cloud-console-client-credentials.png) + ![Create client credentials in $CONSOLE](https://assets.timescale.com/docs/images/tiger-cloud-console/tiger-cloud-console-client-credentials.png) This is the only time you see the `Secret key`. After this, only the `Public key` is visible in this page. From 197f8a418fdee5bc9ab055c557da38895c8a2e18 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Fri, 17 Oct 2025 17:08:52 +0200 Subject: [PATCH 46/75] chore: updates on review. --- ai/mcp-server.md | 4 ++-- ai/page-index/page-index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 2c14433bc1..28c583ac39 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -1,5 +1,5 @@ --- -title: Integrate Tiger with your AI Assistant +title: Integrate Tiger Cloud with your AI Assistant excerpt: Manage your services and optimize your schema and queries using your AI Assistant products: [cloud, self_hosted] keywords: [ai, mcp, server, security] @@ -13,7 +13,7 @@ import MCPCOMMANDSCLI from "versionContent/_partials/_devops-mcp-commands-cli.md import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; -# Integrate Tiger with your AI Assistant +# Integrate Tiger Cloud with your AI Assistant The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI Assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You manage your diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index 2e478a85f6..d27cb9c648 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -5,10 +5,10 @@ module.exports = [ filePath: "index.md", pageComponents: ["featured-cards"], excerpt: - "Information about pgai on TigerData and how to use it.", + "Information about pgai on Tiger Data and how to use it.", children: [ { - title: "Integrate Tiger with your AI assistant", + title: "Integrate Tiger Cloud with your AI assistant", href: "mcp-server", excerpt: "Manage your services and optimize your schema and queries with your AI Assistant", }, From 074b2994642c8566be552739eafb837d59a364df Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 15:47:24 +0200 Subject: [PATCH 47/75] 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 | 8 ++++---- _partials/_devops-mcp-commands-cli.md | 2 +- _partials/_devops-mcp-commands.md | 8 ++++---- ai/mcp-server.md | 14 +++++++------- ai/page-index/page-index.js | 2 +- integrations/find-connection-details.md | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index fb898d37d5..9904818c39 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -68,7 +68,7 @@ You can have a maximum of 10 active client credentials. If you get an error, open [credentials][rest-api-credentials] and delete an unused credential. - 1. Select a $PROJECT_LONG. + 1. Select a $PROJECT_LONG: ```terminaloutput Auth URL is: https://console.cloud.timescale.com/oauth/authorize?client_id=lotsOfURLstuff @@ -87,19 +87,19 @@ 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** +1. **Test your authenticated connection to $CLOUD_LONG by listing $SERVICE_SHORTs** ```bash tiger service list ``` This call returns something like: - - No services: + - No $SERVICE_SHORTs: ```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: + - One or more $SERVICE_SHORTs: ```terminaloutput ┌────────────┬─────────────────────┬────────┬─────────────┬──────────────┬──────────────────┐ diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md index 2e0454ed9e..866e5f08bc 100644 --- a/_partials/_devops-mcp-commands-cli.md +++ b/_partials/_devops-mcp-commands-cli.md @@ -9,5 +9,5 @@ Usage: `tiger mcp [subcommand] --` | | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.
Supported clients are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:
  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| | | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is 8000
  • `--host `: the default is localhost
| +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI Assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is `8000`
  • `--host `: the default is `localhost`
| diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index 8b16561a5a..3fde17a9b4 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -8,7 +8,7 @@ You can use the following commands with $MCP_LONG: | | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT (10-character alphanumeric string). | | | `with_password` | - | Set to `true` to include the password in the response and connection string.
**WARNING**: never do this unless the user explicitly requests the password. | | `service_create` | - | - | Create a new $SERVICE_SHORT in $CLOUD_LONG.
**WARNING**: creates billable resources. | -| | `name` | - | Set the human-readable name of up to 128 character for this $SERVICE_SHORT. | +| | `name` | - | Set the human-readable name of up to 128 characters for this $SERVICE_SHORT. | | | `addons` | - | Set the array of [addons][create-service] to enable for the $SERVICE_SHORT. Options:
  • `time-series`: enables $TIMESCALE_DB
  • `ai`: enables the AI and vector extensions
Set an empty array for $PG-only. | | | `region` | - | Set the [AWS region][cloud-regions] to deploy this $SERVICE_SHORT in. | | | `cpu_memory` | - | CPU and memory allocation combination.
Available configurations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| @@ -20,13 +20,13 @@ You can use the following commands with $MCP_LONG: | `service_update_password` | - | - | Update the password for the `tsdbadmin` for this $SERVICE_SHORT. The password change takes effect immediately and may terminate existing connections. | | | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT you want to update the password for. | | | `password` | ✓ | The new password for the `tsdbadmin` user. | -| `db_execute_query` | - | - | Execute a single SQL query against a $SERVICE_SHORT. This command returns column metadata, result rows, affected row count, and execution time. Multi-statement queries not supported.
**WARNING**: can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands. | +| `db_execute_query` | - | - | Execute a single SQL query against a $SERVICE_SHORT. This command returns column metadata, result rows, affected row count, and execution time. Multi-statement queries are not supported.
**WARNING**: can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands. | | | `service_id` | ✓ | The unique identifier of the $SERVICE_SHORT. Use `tiger_service_list` to find $SERVICE_SHORT IDs. | | | `query` | ✓ | The SQL query to execute. Single statement queries are supported. | | | `parameters` | - | Query parameters for parameterized queries. Values are substituted for the `$n` placeholders in the query. | -| | `timeout_seconds` | - | The query timeout in seconds. Default: 30. | +| | `timeout_seconds` | - | The query timeout in seconds. Default: `30`. | | | `role` | - | The $SERVICE_SHORT role/username to connect as. Default: `tsdbadmin`. | -| | `pooled` | - | Use [connection pooling][Connection pooling]. This is only available if you have already enabled it for the $SERVICE_SHORT. Default: `false` | +| | `pooled` | - | Use [connection pooling][Connection pooling]. This is only available if you have already enabled it for the $SERVICE_SHORT. Default: `false`. | [cloud-regions]: /use-timescale/:currentVersion:/regions/ [create-service]: /getting-started/:currentVersion:/services/ diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 28c583ac39..c839e5c330 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -17,7 +17,7 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI Assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You manage your -$CLOUD_LONG resources including VPCs, services, read replicas, and related infrastructure using natural language +$CLOUD_LONG resources including $VPCs, $SERVICE_SHORTs, read replicas, and related infrastructure using natural language from your AI Assistant. As $MCP_SHORT is integrated with the $COMPANY documentation, ask any question and you will get the best answer. @@ -40,7 +40,7 @@ The $MCP_SHORT is bundled with $CLI_LONG: -1. **Configure your AI Assistant to interact with the $PROJECT_SHORTs and $SERVICE_SHORTs in your $ACCOUNT_LONG** +1. **Configure your AI Assistant to interact with the $PROJECT_SHORT and $SERVICE_SHORTs in your $ACCOUNT_LONG** For example: ```shell @@ -72,7 +72,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe ``` You see something like: ```shell - MCP server is active. I can see the following TigerData-related tools available: + MCP server is active. I can see the following Tiger Data-related tools available: - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation @@ -82,7 +82,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe - mcp__tiger__tiger_service_show - Show detailed service information - mcp__tiger__tiger_service_update_password - Update service passwords - Is there something specific you'd like to do with the TigerData MCP server? + Is there something specific you'd like to do with the Tiger Data MCP server? ``` 1. **Ask a basic question about your $SERVICE_SHORTs** @@ -116,7 +116,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe For example: ```shell - > I need to migrate a database with 25 million rows of data to Tiger, + > I need to migrate a database with 25 million rows of data to Tiger Cloud, please tell me what service optimizations i should do before migration. ``` @@ -124,7 +124,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe You see something like: ```shell - ⏺ For migrating a database with 25 million rows to Tiger, here are the key service optimizations to do before migration: + ⏺ For migrating a database with 25 million rows to Tiger Cloud, here are the key service optimizations to do before migration: Pre-Migration Service Optimizations @@ -132,7 +132,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB - You can scale up during migration if needed, then scale down after - 2. Enable the appropriate add-ons: + 2. Enable the appropriate addons: - Use time-series addon if you are working with time-series data - Use ai addon if you need vector/AI capabilities diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index d27cb9c648..6d644e771b 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -8,7 +8,7 @@ module.exports = [ "Information about pgai on Tiger Data and how to use it.", children: [ { - title: "Integrate Tiger Cloud with your AI assistant", + title: "Integrate Tiger Cloud with your AI Assistant", href: "mcp-server", excerpt: "Manage your services and optimize your schema and queries with your AI Assistant", }, diff --git a/integrations/find-connection-details.md b/integrations/find-connection-details.md index ea342379d9..95953aef44 100644 --- a/integrations/find-connection-details.md +++ b/integrations/find-connection-details.md @@ -37,7 +37,7 @@ Retrieve the connection details for your $SERVICE_LONG: ## Find your project and service ID -To retrieve the connection details for your $PROJECT_LONG project and $SERVICE_LONG: +To retrieve the connection details for your $PROJECT_LONG and $SERVICE_LONG: From cdee68d0cdd5fe258d19ea55811f6bae92cb5e9d Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 15:47:50 +0200 Subject: [PATCH 48/75] 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 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-install.md b/_partials/_devops-cli-install.md index 9904818c39..74e5140c1b 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -58,7 +58,7 @@ 1. **Set up API credentials** - 1. Log $CLI_LONG into your $ACCOUNT_LONG + 1. Log $CLI_LONG into your $ACCOUNT_LONG: ```shell tiger auth login From d010dd48e4c0dff443cf431cde205c0459a1920e Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 15:53:06 +0200 Subject: [PATCH 49/75] Update _partials/_devops-cli-get-started.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 0bec3c1453..23e78793fb 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -31,7 +31,7 @@ Create a new $SERVICE_LONG using $CLI_LONG: 1. **Submit a service creation request** - Depending on your [pricing plan][pricing-plans], $CLI_LONG creates a service for you: + Depending on your [pricing plan][pricing-plans], $CLI_LONG creates a $SERVICE_SHORT for you: * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons * **Paid plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on ```shell From a764301ceee0404ed05506327569f835726a1289 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 15:53:16 +0200 Subject: [PATCH 50/75] Update _partials/_devops-cli-get-started.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 23e78793fb..1872fb484a 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -29,7 +29,7 @@ Create a new $SERVICE_LONG using $CLI_LONG: -1. **Submit a service creation request** +1. **Submit a $SERVICE_SHORT creation request** Depending on your [pricing plan][pricing-plans], $CLI_LONG creates a $SERVICE_SHORT for you: * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons From 9a6a51783a360fdbb366ee7bd98ddf2458e97e64 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 22:42:46 +0200 Subject: [PATCH 51/75] Update _partials/_devops-cli-install.md 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 74e5140c1b..ae94a6ddfb 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -84,7 +84,7 @@ 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). + If that fails, the credentials are stored in `~/.config/tiger/credentials` 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 $SERVICE_SHORTs** From 4bdb15261589bfa329ea615fe0b8735a81210031 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 22:56:13 +0200 Subject: [PATCH 52/75] Update api/api-reference.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- api/api-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/api-reference.md b/api/api-reference.md index 4d04776ad1..7101a3f1cb 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -89,7 +89,7 @@ Create a new Tiger Postgres service. This is an asynchronous operation. ```json { "name": "test-2", - "addons": "time-series", + "addons": ["time-series"], "region_code": "eu-central-1", "cpu_millis": 1000, "memory_gbs": 4 From ef57963ed00a7c836db0e0e63860de85b747ceb9 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 22:57:12 +0200 Subject: [PATCH 53/75] chore: Update on review. --- _partials/_devops-cli-get-started.md | 25 ++++++++++++++++++------- _partials/_devops-cli-global-flags.md | 19 ++++++++++--------- ai/mcp-server.md | 5 +---- api/api-reference.md | 25 +++++++++++++------------ 4 files changed, 42 insertions(+), 32 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 1872fb484a..35cfbd6e51 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -31,7 +31,7 @@ Create a new $SERVICE_LONG using $CLI_LONG: 1. **Submit a $SERVICE_SHORT creation request** - Depending on your [pricing plan][pricing-plans], $CLI_LONG creates a $SERVICE_SHORT for you: + By default, $CLI_LONG creates a $SERVICE_SHORT for you that matches your [pricing plan][pricing-plans]: * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons * **Paid plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on ```shell @@ -42,16 +42,27 @@ Create a new $SERVICE_LONG using $CLI_LONG: ```terminaloutput 🚀 Creating service 'db-11111' (auto-generated name)... ✅ Service creation request accepted! - 📋 Service ID: happyservice + 📋 Service ID: tgrservice 🔐 Password saved to system keyring for automatic authentication - 🎯 Set service 'happyservice' as default service. + 🎯 Set service 'tgrservice' as default service. ⏳ Waiting for service to be ready (wait timeout: 30m0s)... - ⏳ Service status: QUEUED... 🎉 Service is ready and running! 🔌 Run 'tiger db connect' to connect to your new service - ... - Service properties - ... + ┌───────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ PROPERTY │ VALUE │ + ├───────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ Service ID │ tgrservice │ + │ Name │ db-11111 │ + │ Status │ READY │ + │ Type │ TIMESCALEDB │ + │ Region │ us-east-1 │ + │ CPU │ 0.5 cores (500m) │ + │ Memory │ 2 GB │ + │ Direct Endpoint │ tgrservice.tgrproject.tsdb.cloud.timescale.com:39004 │ + │ Created │ 2025-10-20 20:33:46 UTC │ + │ Connection String │ postgresql://tsdbadmin@tgrservice.tgrproject.tsdb.cloud.timescale.com:0007/tsdb?sslmode=require │ + │ Console URL │ https://console.cloud.timescale.com/dashboard/services/tgrservice │ + └───────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` This $SERVICE_SHORT is set as default by the $CLI_SHORT. diff --git a/_partials/_devops-cli-global-flags.md b/_partials/_devops-cli-global-flags.md index 8a48c07f86..1fd8c692dc 100644 --- a/_partials/_devops-cli-global-flags.md +++ b/_partials/_devops-cli-global-flags.md @@ -1,10 +1,11 @@ -| Flag | Default | Description | -|---------------------------|-----------------|-----------------------------------------------------------------------------| -| `--analytics` | `true` | Set to `false` to disable usage analytics | -| `--config-dir` string | `.config/tiger` | Set the directory that holds `config.yaml` | -| `--debug` | No debugging | Enable debug logging | -| `-o`, `--output` string | table | Set the output format. Options are `json`, `yaml`, or `table` | -| `--password-storage` string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | -| `--project-id` string | - | Set the $PROJECT_LONG to manage | -| `--service-id` string | - | Set the $SERVICE_LONG to manage | +| Flag | Default | Description | +|-------------------------------|-------------------|-----------------------------------------------------------------------------| +| `--analytics` | `true` | Set to `false` to disable usage analytics | +| `--color ` | `true` | Set to `false` to disable colored output | +| `--config-dir` string | `.config/tiger` | Set the directory that holds `config.yaml` | +| `--debug` | No debugging | Enable debug logging | +| `--help` | - | Print help about the current command. For example, `tiger service --help` | +| `--password-storage` string | keyring | Set the password storage method. Options are `keyring`, `pgpass`, or `none` | +| `--service-id` string | - | Set the $SERVICE_LONG to manage | +| ` --skip-update-check ` | - | Do not check if a new version of $CLI_LONG is available| \ No newline at end of file diff --git a/ai/mcp-server.md b/ai/mcp-server.md index c839e5c330..8f4c154f7e 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -102,14 +102,11 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe For example: ```shell - Can you create a new ai service called bob with a read replica for me please + Can you create a new ai service called bob with a replica for me please ``` You see something like: ```shell tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false) - ... - Do you want to proceed? - ❯ 1. Yes ``` 1. **Find best practice for things you need to do** diff --git a/api/api-reference.md b/api/api-reference.md index 7101a3f1cb..ed724663e1 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -32,12 +32,13 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project ## Service Management -You use this endpoint to create and manage the following Tiger Postgres services: +You use this endpoint to create a Tiger Cloud service with one of more of the following addons: -- `time-series`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, +- `time-series`: a Tiger Cloud service optimized for real-time analytics service For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time -- `none`: a vanilla Postgres instance -- `ai`: a Tiger Postgres instance with vector extensions +- `ai`: a Tiger Cloud service instance with vector extensions + +To create a vanilla Postgres instance, set `addons` to an empty list `[]` when you create a new service ### List All Services @@ -55,7 +56,7 @@ Retrieve all services within a project. "project_id": "jz22xtzemv", "name": "my-production-db", "region_code": "eu-central-1", - "addons": "time-series", + "service_type": "time-series", "status": "READY", "created": "2024-01-15T10:30:00Z", "paused": false, @@ -83,7 +84,7 @@ Retrieve all services within a project. POST /projects/{project_id}/services ``` -Create a new Tiger Postgres service. This is an asynchronous operation. +Create a new Tiger Cloud service. This is an asynchronous operation. **Request Body:** ```json @@ -103,7 +104,7 @@ Create a new Tiger Postgres service. This is an asynchronous operation. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "addons": "time-series", + "service_type": "time-series", "created": "2025-09-04T20:46:46.265680278Z", "paused": false, "status": "READY", @@ -129,10 +130,10 @@ Create a new Tiger Postgres service. This is an asynchronous operation. ``` **Service Types:** -- `TIMESCALEDB`: a Tiger Postgres instance optimized for real-time analytics service For time-stamped data like events, +- `TIMESCALEDB`: a Tiger Cloud service instance optimized for real-time analytics service For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time - `POSTGRES`: a vanilla Postgres instance -- `VECTOR`: a Tiger Postgres instance with vector extensions +- `VECTOR`: a Tiger Cloud service instance with vector extensions ### Get a Service @@ -149,7 +150,7 @@ Retrieve details of a specific service. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "addons": "time-series", + "service_type": "time-series", "created": "2025-09-04T20:46:46.26568Z", "paused": false, "status": "READY", @@ -330,7 +331,7 @@ Create a new, independent service by taking a snapshot of an existing one. "project_id": "jz22xtzemv", "name": "fork-test2", "region_code": "eu-central-1", - "addons": "time-series", + "service_type": "time-series", "created": "2025-09-04T20:54:09.53380732Z", "paused": false, "status": "READY", @@ -750,7 +751,7 @@ Disassociate a service from its VPC. "project_id": "string", "name": "string", "region_code": "string", - "addons": "time-series|ai|none", + "service_type": "time-series|ai|none", "created": "2024-01-15T10:30:00Z", "initial_password": "string", "paused": false, From 4c5b56a1f08c5dfa217fb254711f141059f08576 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 23:00:54 +0200 Subject: [PATCH 54/75] chore: Update on review. --- getting-started/get-started-devops-as-code.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/getting-started/get-started-devops-as-code.md b/getting-started/get-started-devops-as-code.md index 833e753852..33e82b78a9 100644 --- a/getting-started/get-started-devops-as-code.md +++ b/getting-started/get-started-devops-as-code.md @@ -23,17 +23,16 @@ that enable humans, machines, and AI agents easily provision, configure, and man - + - + - + - + - From 6bd8dfd722e28895c60392127cfddb203ec6fb7b Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 23:30:16 +0200 Subject: [PATCH 55/75] chore: Update on review. --- _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 ae94a6ddfb..d0dab2990e 100644 --- a/_partials/_devops-cli-install.md +++ b/_partials/_devops-cli-install.md @@ -85,7 +85,7 @@ Where possible, $CLI_LONG stores your authentication information in the system keychain/credential manager. If that fails, the credentials are stored in `~/.config/tiger/credentials` with restricted file permissions (600). - $CLI_LONG stores your configuration in `~/.config/tiger/config.yaml`. + By default, $CLI_LONG stores your configuration in `~/.config/tiger/config.yaml`. 1. **Test your authenticated connection to $CLOUD_LONG by listing $SERVICE_SHORTs** From 6333b9604bb440c1cb8afdc81920f0b18372ef4c Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:43:41 +0200 Subject: [PATCH 56/75] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-mcp-commands-cli.md | 2 +- _partials/_devops-mcp-commands.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md index 866e5f08bc..06b7149865 100644 --- a/_partials/_devops-mcp-commands-cli.md +++ b/_partials/_devops-mcp-commands-cli.md @@ -9,5 +9,5 @@ Usage: `tiger mcp [subcommand] --` | | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.
Supported clients are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:
  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| | | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI Assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is `8000`
  • `--host `: the default is `localhost`
| +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is `8000`
  • `--host `: the default is `localhost`
| diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index 3fde17a9b4..d42a88d60b 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -1,5 +1,5 @@ -You can use the following commands with $MCP_LONG: +$MCP_LONG exposes the following MCP tools to your AI assistant: | Command | Parameter | Required | Description | |--------------------------|---------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| From 834ed762cf3e4f4e619b53acd42b8a4c6d9d1a66 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:44:28 +0200 Subject: [PATCH 57/75] Update _partials/_devops-cli-reference.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 030198b2f6..2a78aa42e2 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -10,7 +10,7 @@ You can use the following commands with $CLI_LONG. For more information on each | auth | | Manage authentication and credentials for your $ACCOUNT_LONG | | | login | Create an authenticated connection to your $ACCOUNT_LONG | | | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | whoami | Show information about the current user | +| | status | Show current authentication status and project ID | | version | | Show information about the currently installed version of $CLI_LONG | | config | | Manage your $CLI_LONG configuration | | | show | Show the current configuration | From 377fe91b22eec9a2862be6bd9f3a6d1862dff614 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:46:00 +0200 Subject: [PATCH 58/75] Update api/api-reference.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- api/api-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/api-reference.md b/api/api-reference.md index ed724663e1..ad13a22806 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -56,7 +56,7 @@ Retrieve all services within a project. "project_id": "jz22xtzemv", "name": "my-production-db", "region_code": "eu-central-1", - "service_type": "time-series", + "service_type": "TIMESCALEDB", "status": "READY", "created": "2024-01-15T10:30:00Z", "paused": false, From a2f85fadd4a2fa022c682f32e9738632c2c89ef2 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:46:28 +0200 Subject: [PATCH 59/75] Update api/api-reference.md Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- api/api-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/api-reference.md b/api/api-reference.md index ad13a22806..c210bc3893 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -751,7 +751,7 @@ Disassociate a service from its VPC. "project_id": "string", "name": "string", "region_code": "string", - "service_type": "time-series|ai|none", + "service_type": "TIMESCALEDB|POSTGRES|VECTOR", "created": "2024-01-15T10:30:00Z", "initial_password": "string", "paused": false, From cc3e9206efc658deeebd109b9a5d87db2c509696 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:49:56 +0200 Subject: [PATCH 60/75] Update _partials/_devops-cli-reference.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 2a78aa42e2..bbe4f20043 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -20,7 +20,7 @@ You can use the following commands with $CLI_LONG. For more information on each | service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | | | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | | | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: cPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for operation to complete
  • `--wait-timeout`: wait timeout duration (e.g., 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| | | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | | | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| | | update-password `` | Update the master password for a $SERVICE_SHORT | From 048c137b98fcb75a31feb4b77e7e4d39b6975eb7 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Mon, 20 Oct 2025 23:54:28 +0200 Subject: [PATCH 61/75] Apply suggestions from code review Co-authored-by: Nathan Cochran Signed-off-by: Iain Cox --- api/api-reference.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index c210bc3893..99c06b8a52 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -104,7 +104,7 @@ Create a new Tiger Cloud service. This is an asynchronous operation. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "service_type": "time-series", + "service_type": "TIMESCALEDB", "created": "2025-09-04T20:46:46.265680278Z", "paused": false, "status": "READY", @@ -150,7 +150,7 @@ Retrieve details of a specific service. "project_id": "jz22xtzemv", "name": "test-2", "region_code": "eu-central-1", - "service_type": "time-series", + "service_type": "TIMESCALEDB", "created": "2025-09-04T20:46:46.26568Z", "paused": false, "status": "READY", @@ -331,7 +331,7 @@ Create a new, independent service by taking a snapshot of an existing one. "project_id": "jz22xtzemv", "name": "fork-test2", "region_code": "eu-central-1", - "service_type": "time-series", + "service_type": "TIMESCALEDB", "created": "2025-09-04T20:54:09.53380732Z", "paused": false, "status": "READY", From b1619b29ecfff22b71add73df3fbeec9939d2b8e Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 00:36:10 +0200 Subject: [PATCH 62/75] Update _partials/_devops-cli-reference.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index bbe4f20043..f2c1f76dbd 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -28,7 +28,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | | | connect `` | Connect to a $SERVICE_SHORT | | | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI assistant integration | +| mcp | | Manage the $MCP_LONG for AI Assistant integration | | | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | | | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_LONG with stdio transport (default) | From c7af58048e62e4208f86800d51afe778d2769b91 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Mon, 20 Oct 2025 23:56:33 +0200 Subject: [PATCH 63/75] chore: Update on review. --- api/api-reference.md | 1 + 1 file changed, 1 insertion(+) diff --git a/api/api-reference.md b/api/api-reference.md index 99c06b8a52..58d9985573 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -305,6 +305,7 @@ Deactivate the connection pooler for a service. { "message": "Connection pooler disabled successfully" } +``` ### Fork a Service From 524dea8aff889ee642fdecc3fa81cb5b67a29c85 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 00:38:40 +0200 Subject: [PATCH 64/75] chore: Update on review. --- _partials/_devops-rest-api-get-started.md | 43 ++++++++++--------- ai/mcp-server.md | 50 +++++++++++++++++++---- ai/page-index/page-index.js | 2 +- 3 files changed, 65 insertions(+), 30 deletions(-) diff --git a/_partials/_devops-rest-api-get-started.md b/_partials/_devops-rest-api-get-started.md index 2cc743ae29..b62390fdc5 100644 --- a/_partials/_devops-rest-api-get-started.md +++ b/_partials/_devops-rest-api-get-started.md @@ -58,12 +58,12 @@ proper authentication headers. - One or more $SERVICE_SHORTs: ```terminaloutput - [{"service_id":"a59clooxoe","project_id":"c8nmagk8zh","name":"events", - "region_code":"eu-central-1","addons":"time-series", - "created":"2025-09-09T08:37:15.816443Z","paused":false,"status":"READY", - "resources":[{"id":"101228","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], - "metadata":{"environment":"DEV"},"endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com", - "port":12345}}] + [{"service_id":"tgrservice","project_id":"tgrproject","name":"tiger-eon", + "region_code":"us-east-1","service_type":"TIMESCALEDB", + "created":"2025-10-20T12:21:28.216172Z","paused":false,"status":"READY", + "resources":[{"id":"104977","spec":{"cpu_millis":500,"memory_gbs":2,"volume_type":""}}], + "metadata":{"environment":"DEV"}, + "endpoint":{"host":"tgrservice.tgrproject.tsdb.cloud.timescale.com","port":11111}}] ```
@@ -92,17 +92,14 @@ Create a new $SERVICE_SHORT using the $REST_LONG: $CLOUD_LONG creates a Development environment for you. That is, no delete protection, high-availability, spooling or read replication. You see something like: ```terminaloutput - { - "service_id":"asdfasdfasdf","project_id":"asdasdfasf","name":"my-first-service", - "region_code":"us-east-1", "addons":"time-series", - "created":"2025-09-09T09:24:31.997767396Z", "paused":false,"status":"READY", - "resources":[{"id":"101240", - "spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"PROD"}, - "endpoint":{"host":"oh.yeah.tsdb.cloud.timescale.com","port":123435}, - "initial_password":"very-secret", - "ha_replicas":{"sync_replica_count":0,"replica_count":1} - } + {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service", + "region_code":"us-east-1","service_type":"TIMESCALEDB", + "created":"2025-10-20T22:29:33.052075713Z","paused":false,"status":"QUEUED", + "resources":[{"id":"105120","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"PROD"}, + "endpoint":{"host":"tgrservice.tgrproject.tsdb.cloud.timescale.com","port":00001}, + "initial_password":"notTellingYou", + "ha_replicas":{"sync_replica_count":0,"replica_count":1}} ``` 1. Save `service_id` from the response to a variable: @@ -121,11 +118,13 @@ Create a new $SERVICE_SHORT using the $REST_LONG: ``` You see something like: ```terminaloutput - {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service","region_code":"us-east-1", - "addons":"time-series","created":"2025-09-30T12:08:54.438785Z","paused":false,"status":"READY", - "resources":[{"id":"102879","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], - "metadata":{"environment":"DEV"},"endpoint":{"host":"ohhhh.yeahhhhh.tsdb.cloud.timescale.com","port":33867}, - "ha_replicas":{"sync_replica_count":0,"replica_count":1}} + {"service_id":"tgrservice","project_id":"tgrproject","name":"my-first-service", + "region_code":"us-east-1","service_type":"TIMESCALEDB", + "created":"2025-10-20T22:29:33.052075Z","paused":false,"status":"READY", + "resources":[{"id":"105120","spec":{"cpu_millis":1000,"memory_gbs":4,"volume_type":""}}], + "metadata":{"environment":"DEV"}, + "endpoint":{"host":"tgrservice.tgrproject.tsdb.cloud.timescale.com","port":11111}, + "ha_replicas":{"sync_replica_count":0,"replica_count":1}} ```
diff --git a/ai/mcp-server.md b/ai/mcp-server.md index 8f4c154f7e..a17fdf36aa 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -17,9 +17,8 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; The $MCP_LONG provides access to your $CLOUD_LONG resources through Claude and other AI Assistants. $MCP_SHORT mirrors the functionality of $CLI_LONG and is integrated directly into the $CLI_SHORT binary. You manage your -$CLOUD_LONG resources including $VPCs, $SERVICE_SHORTs, read replicas, and related infrastructure using natural language -from your AI Assistant. As $MCP_SHORT is integrated with the $COMPANY documentation, ask any question and you -will get the best answer. +$CLOUD_LONG resources using natural language from your AI Assistant. As $MCP_SHORT is integrated with the +$COMPANY documentation, ask any question and you will get the best answer. This page shows you how to install $CLI_LONG and set up secure authentication for $MCP_SHORT, then manage the resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. @@ -30,7 +29,8 @@ resources in your $ACCOUNT_LONG through the $MCP_LONG using your AI Assistant. * An AI Assistant installed on your developer device with an active API key - Supported AI Assistants are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` + The following AI Assistants are automatically configured by the $MCP_LONG: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code` + You can also [manually configure][manual-config] $MCP_SHORT. ## Install and configure $MCP_SHORT @@ -44,9 +44,23 @@ The $MCP_SHORT is bundled with $CLI_LONG: For example: ```shell - tiger mcp install claude-code + tiger mcp install + ``` + +1. **Choose the client to integrate with, then press `Enter` ** + + ```shell + Select an MCP client to configure: + + > 1. Claude Code + 2. Codex + 3. Cursor + 4. Gemini CLI + 5. VS Code + 6. Windsurf + + Use ↑/↓ arrows or number keys to navigate, enter to select, q to quit ``` - This command integrates Claude with a local $MCP_SHORT and the $COMPANY documentation.
@@ -173,6 +187,26 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe That beats working. Let the $MCP_LONG do it all for you. +## Manually configure the $MCP_SHORT + +If your MCP client is not supported by `tiger mcp install`. follow the client's instructions to install +MCP servers. For example, many clients use a JSON file like the following that use `tiger mcp start` to +start $MCP_LONG: + +```json +{ + "mcpServers": { + "tiger": { + "command": "tiger", + "args": [ + "mcp", + "start" + ] + } + } +} +``` + ## $MCP_LONG commands @@ -194,4 +228,6 @@ You can use the following $CLI_LONG global flags when you run the $MCP_SHORT: [create-client-credentials]: /integrations/:currentVersion:/find-connection-details/#create-client-credentials [curl]: https://curl.se/ [cloud-regions]: /use-timescale/:currentVersion:/regions/ -[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ \ No newline at end of file +[readreplica]: /use-timescale/:currentVersion:/ha-replicas/read-scaling/ +[manual-config]: /ai/:currentVersion:/mcp-server/#manually-configure-the-tiger-mcp-server + \ No newline at end of file diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index 6d644e771b..ac197d98f4 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -5,7 +5,7 @@ module.exports = [ filePath: "index.md", pageComponents: ["featured-cards"], excerpt: - "Information about pgai on Tiger Data and how to use it.", + "Integrate AI with your Tiger Data products", children: [ { title: "Integrate Tiger Cloud with your AI Assistant", From 323f957c3587b151bed1b0a3b60c88ad068e2d59 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 00:41:41 +0200 Subject: [PATCH 65/75] Update _partials/_devops-cli-reference.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index f2c1f76dbd..0493f71ccb 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -21,7 +21,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | | | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | | | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID | | | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| | | update-password `` | Update the master password for a $SERVICE_SHORT | | db | | Database operations and management | From dcebd484446eddf16f450acc860a9e14cc77db26 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 00:42:39 +0200 Subject: [PATCH 66/75] Update _partials/_devops-cli-reference.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 0493f71ccb..bcbf52e29a 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -22,7 +22,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | | | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| | | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID | -| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to `{source-service-name}-fork`
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| | | update-password `` | Update the master password for a $SERVICE_SHORT | | db | | Database operations and management | | | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | From fc7f3bb091f4dfa5d6e9abd897c6aa9c0aa7b823 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 00:48:14 +0200 Subject: [PATCH 67/75] Update _partials/_devops-cli-reference.md Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index bcbf52e29a..6e362d5b4d 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -29,7 +29,7 @@ You can use the following commands with $CLI_LONG. For more information on each | | connect `` | Connect to a $SERVICE_SHORT | | | test-connection `` | Test the connectivity to a $SERVICE_SHORT | | mcp | | Manage the $MCP_LONG for AI Assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively | | | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_LONG with stdio transport (default) | | | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | From 4be36fa91005a043b6e51fef4409dde34c15d508 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 00:48:33 +0200 Subject: [PATCH 68/75] chore: Update on review. --- _partials/_devops-cli-reference.md | 57 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 6e362d5b4d..a595614137 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,34 +5,35 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | status | Show current authentication status and project ID | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID | -| | fork `` | Fork an existing database service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to `{source-service-name}-fork`
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | update-password `` | Update the master password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | connect `` | Connect to a $SERVICE_SHORT | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI Assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_LONG with stdio transport (default) | -| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | +| Command | Subcommand | Description | +|---------|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | status | Show current authentication status and project ID | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the master password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | save-password ` | Save the password for a service | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI Assistant integration | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | ## Global flags From 4da6ef8b4481fcaeca4a486e14ce91a8030df40d Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 00:51:04 +0200 Subject: [PATCH 69/75] chore: Update on review. --- _partials/_devops-cli-reference.md | 58 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index a595614137..822e7020a3 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,35 +5,35 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | status | Show current authentication status and project ID | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | -| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | update-password `` | Update the master password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connect `` | Connect to a $SERVICE_SHORT | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | save-password ` | Save the password for a service | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI Assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_LONG with stdio transport (default) | -| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: 8080), `--host` (default: localhost) | +| Command | Subcommand | Description | +|---------|----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | status | Show current authentication status and project ID | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the master password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | save-password ` | Save the password for a service | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI Assistant integration | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: `8080`), `--host` (default: `localhost`) | ## Global flags From ea9827644fd9d5817e128b1ae0fb14081d7ead18 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 01:04:12 +0200 Subject: [PATCH 70/75] chore: Update on review. --- _partials/_devops-cli-reference.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 822e7020a3..69b166d210 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -27,7 +27,7 @@ You can use the following commands with $CLI_LONG. For more information on each | db | | Database operations and management | | | connect `` | Connect to a $SERVICE_SHORT | | | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | save-password ` | Save the password for a service | +| | save-password `` | Save the password for a service | | | test-connection `` | Test the connectivity to a $SERVICE_SHORT | | mcp | | Manage the $MCP_LONG for AI Assistant integration | | | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | @@ -55,21 +55,24 @@ environmental variables: - `TIGER_CONSOLE_URL`: URL to $CONSOLE (default: https://console.cloud.timescale.com) - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) - `TIGER_DOCS_MCP`: enable/disable docs MCP proxy (default: true) - - `TIGER_DOCS_MCP_URL`: URL to the MCP server for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - - `TIGER_PROJECT_ID`: ID for the project updated when you call $CLI_SHORT commands + - `TIGER_DOCS_MCP_URL`: URL to the $MCP_SHORT for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands - - `TIGER_OUTPUT`: output format (`json`, `yaml`, or table) - `TIGER_ANALYTICS`: enable or disable analytics (default: true) - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - `TIGER_DEBUG`: enable/disable debug logging (default: false) - **Authentication parameters** - To authenticate without using the interactive login, set the following with your [client credentials][rest-api-credentials]: - - - `TIGER_PUBLIC_KEY`: public key - - `TIGER_SECRET_KEY`: secret key - + To authenticate without using the interactive login, either: + - Set the following parameters with your [client credentials][rest-api-credentials], then `login`: + ```shell + TIGER_PUBLIC_KEY= TIGER_SECRET_KEY= TIGER_PROJECT_ID=\ + tiger auth login + ``` + - Add your [client credentials][rest-api-credentials] to the `login` command: + ```shell + tiger auth login --public-key= --secret-key= --project-id= + ``` [rest-api-reference]: /api/:currentVersion:/api-reference/ [rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings From 789e06b887f8a93cfa12f16374a9f15d67ba435e Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 01:05:25 +0200 Subject: [PATCH 71/75] Apply suggestions from code review Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-cli-reference.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 69b166d210..472918e06d 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -56,10 +56,10 @@ environmental variables: - `TIGER_GATEWAY_URL`: URL to the $CONSOLE gateway (default: https://console.cloud.timescale.com/api) - `TIGER_DOCS_MCP`: enable/disable docs MCP proxy (default: true) - `TIGER_DOCS_MCP_URL`: URL to the $MCP_SHORT for $COMPANY docs (default: https://mcp.tigerdata.com/docs) - - `TIGER_SERVICE_ID`: ID for the service updated when you call $CLI_SHORT commands - - `TIGER_ANALYTICS`: enable or disable analytics (default: true) + - `TIGER_SERVICE_ID`: ID for the $SERVICE_SHORT updated when you call $CLI_SHORT commands + - `TIGER_ANALYTICS`: enable or disable analytics (default: `true`) - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - - `TIGER_DEBUG`: enable/disable debug logging (default: false) + - `TIGER_DEBUG`: enable/disable debug logging (default: `false`) - **Authentication parameters** From c35a6b679060203e480517545212cd3611215b7e Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 01:11:14 +0200 Subject: [PATCH 72/75] chore: Update on review. --- _partials/_devops-cli-reference.md | 60 +++++++++++++++--------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 472918e06d..1fb9b4ae95 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,35 +5,35 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | status | Show current authentication status and project ID | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or 'none' for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | -| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | update-password `` | Update the master password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connect `` | Connect to a $SERVICE_SHORT | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | save-password `` | Save the password for a service | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI Assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_LONG with stdio transport (default) | -| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: `8080`), `--host` (default: `localhost`) | +| Command | Subcommand | Description | +|---------|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | status | Show current authentication status and project ID | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or none for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | +| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the master password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | save-password `` | Save the password for a service | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI Assistant integration | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: `8080`), `--host` (default: `localhost`) | ## Global flags @@ -60,6 +60,8 @@ environmental variables: - `TIGER_ANALYTICS`: enable or disable analytics (default: `true`) - `TIGER_PASSWORD_STORAGE`: password storage method (keyring, pgpass, or none) - `TIGER_DEBUG`: enable/disable debug logging (default: `false`) + - `TIGER_COLOR`: Set to `false` to disable colored output (default: `true`) + - **Authentication parameters** From 520cf20ea7663dd82e41e9a6c085bdd011a90987 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 01:19:46 +0200 Subject: [PATCH 73/75] chore: Update on review. --- api/api-reference.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/api/api-reference.md b/api/api-reference.md index 58d9985573..f81c26df8b 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -35,10 +35,11 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project You use this endpoint to create a Tiger Cloud service with one of more of the following addons: - `time-series`: a Tiger Cloud service optimized for real-time analytics service For time-stamped data like events, - prices, metrics, sensor readings, or any information that changes over time -- `ai`: a Tiger Cloud service instance with vector extensions + prices, metrics, sensor readings, or any information that changes over time. +- `ai`: a Tiger Cloud service instance with vector extensions. -To create a vanilla Postgres instance, set `addons` to an empty list `[]` when you create a new service +To have multiple addons when you create a new service, set `"addons": ["time-series", "ai"]`, to create a +vanilla Postgres instance, set `addons` to an empty list `[]`. ### List All Services From 0cd881ea279ab1d4e15d995597ff19a3270cfd73 Mon Sep 17 00:00:00 2001 From: billy-the-fish Date: Tue, 21 Oct 2025 10:34:00 +0200 Subject: [PATCH 74/75] chore: Updates on review. --- _partials/_devops-cli-get-started.md | 4 +- _partials/_devops-cli-reference.md | 58 +++++++++---------- _partials/_devops-mcp-commands-cli.md | 2 +- ai/index.md | 82 +++++++++++++++++++-------- ai/mcp-server.md | 4 +- ai/page-index/page-index.js | 2 +- 6 files changed, 92 insertions(+), 60 deletions(-) diff --git a/_partials/_devops-cli-get-started.md b/_partials/_devops-cli-get-started.md index 35cfbd6e51..6b517072a6 100644 --- a/_partials/_devops-cli-get-started.md +++ b/_partials/_devops-cli-get-started.md @@ -32,8 +32,8 @@ Create a new $SERVICE_LONG using $CLI_LONG: 1. **Submit a $SERVICE_SHORT creation request** By default, $CLI_LONG creates a $SERVICE_SHORT for you that matches your [pricing plan][pricing-plans]: - * **Free plan**: shared CPU/memory and the `time-series` and `ai` add-ons - * **Paid plan**: 0.5 CPU and 2 GB memory with the `time-series` add-on + * **Free plan**: shared CPU/memory and the `time-series` and `ai` capabilities + * **Paid plan**: 0.5 CPU and 2 GB memory with the `time-series` capability ```shell tiger service create ``` diff --git a/_partials/_devops-cli-reference.md b/_partials/_devops-cli-reference.md index 1fb9b4ae95..c641f17146 100644 --- a/_partials/_devops-cli-reference.md +++ b/_partials/_devops-cli-reference.md @@ -5,35 +5,35 @@ import GLOBALFLAGS from "versionContent/_partials/_devops-cli-global-flags.mdx"; You can use the following commands with $CLI_LONG. For more information on each command, use the `-h` flag. For example: `tiger auth login -h` -| Command | Subcommand | Description | -|---------|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | -| | login | Create an authenticated connection to your $ACCOUNT_LONG | -| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | -| | status | Show current authentication status and project ID | -| version | | Show information about the currently installed version of $CLI_LONG | -| config | | Manage your $CLI_LONG configuration | -| | show | Show the current configuration | -| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | -| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | -| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | -| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | -| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or none for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| -| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID. | -| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to {source-service-name}-fork
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| -| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | -| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | -| | update-password `` | Update the master password for a $SERVICE_SHORT | -| db | | Database operations and management | -| | connect `` | Connect to a $SERVICE_SHORT | -| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | -| | save-password `` | Save the password for a service | -| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | -| mcp | | Manage the $MCP_LONG for AI Assistant integration | -| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively. | -| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | -| | start stdio | Start the $MCP_LONG with stdio transport (default) | -| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: `8080`), `--host` (default: `localhost`) | +| Command | Subcommand | Description | +|---------|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | | Manage authentication and credentials for your $ACCOUNT_LONG | +| | login | Create an authenticated connection to your $ACCOUNT_LONG | +| | logout | Remove the credentials used to create authenticated connections to $CLOUD_LONG | +| | status | Show your current authentication status and project ID | +| version | | Show information about the currently installed version of $CLI_LONG | +| config | | Manage your $CLI_LONG configuration | +| | show | Show the current configuration | +| | set `` `` | Set a specific value in your configuration. For example, `tiger config set debug true` | +| | unset `` | Clear the value of a configuration parameter. For example, `tiger config unset debug` | +| | reset | Reset the configuration to the defaults. This also logs you out from the current $PROJECT_LONG | +| service | | Manage the $SERVICE_LONGs in this $PROJECT_SHORT | +| | create | Create a new $SERVICE_SHORT in this $PROJECT_SHORT. Possible flags are:
  • `--name`: service name (auto-generated if not provided)
  • `--addons`: addons to enable (time-series, ai, or none for PostgreSQL-only)
  • `--region`: region code where the service will be deployed
  • `--cpu-memory`: CPU/memory allocation combination
  • `--replicas`: number of high-availability replicas
  • `--no-wait`: don't wait for the operation to complete
  • `--wait-timeout`: wait timeout duration (for example, 30m, 1h30m, 90s)
  • `--no-set-default`: don't set this service as the default service
  • `--with-password`: include password in output
  • `--output, -o`: output format (`json`, `yaml`, table)

Possible `cpu-memory` combinations are:
  • shared/shared
  • 0.5 CPU/2 GB
  • 1 CPU/4 GB
  • 2 CPU/8 GB
  • 4 CPU/16 GB
  • 8 CPU/32 GB
  • 16 CPU/64 GB
  • 32 CPU/128 GB
| +| | delete `` | Delete a $SERVICE_SHORT from this $PROJECT_SHORT. This operation is irreversible and requires confirmation by typing the service ID | +| | fork `` | Fork an existing service to create a new independent copy. Key features are:
  • Timing options: `--now`, `--last-snapshot`, `--to-timestamp`
  • Resource configuration: `--cpu-memory`
  • Naming: `--name `. Defaults to `{source-service-name}-fork`
  • Wait behavior: `--no-wait`, `--wait-timeout`
  • Default service: `--no-set-default`
| +| | get `` (aliases: describe, show) | Show detailed information about a specific $SERVICE_SHORT in this $PROJECT_SHORT | +| | list | List all the $SERVICE_SHORTs in this $PROJECT_SHORT | +| | update-password `` | Update the master password for a $SERVICE_SHORT | +| db | | Database operations and management | +| | connect `` | Connect to a $SERVICE_SHORT | +| | connection-string `` | Retrieve the connection string for a $SERVICE_SHORT | +| | save-password `` | Save the password for a service | +| | test-connection `` | Test the connectivity to a $SERVICE_SHORT | +| mcp | | Manage the $MCP_LONG for AI Assistant integration | +| | install `[client]` | Install and configure $MCP_LONG for a specific client (`claude-code`, `cursor`, `windsurf`, or other). If no client is specified, you'll be prompted to select one interactively | +| | start | Start the $MCP_LONG. This is the same as `tiger mcp start stdio` | +| | start stdio | Start the $MCP_LONG with stdio transport (default) | +| | start http | Start the $MCP_LONG with HTTP transport. Includes flags: `--port` (default: `8080`), `--host` (default: `localhost`) | ## Global flags diff --git a/_partials/_devops-mcp-commands-cli.md b/_partials/_devops-mcp-commands-cli.md index 06b7149865..0f3ba5d10c 100644 --- a/_partials/_devops-mcp-commands-cli.md +++ b/_partials/_devops-mcp-commands-cli.md @@ -9,5 +9,5 @@ Usage: `tiger mcp [subcommand] --` | | install `[client]` | Install and configure $MCP_SHORT for a specific client installed on your developer device.
Supported clients are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
Flags:
  • `--no-backup`: do not back up the existing configuration
  • `--config-path`: open the configuration file at a specific location
| | | start | Start the $MCP_SHORT. This is the same as `tiger mcp start stdio` | | | start stdio | Start the $MCP_SHORT with stdio transport | -| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is `8000`
  • `--host `: the default is `localhost`
| +| | start http | Start the $MCP_SHORT with HTTP transport. This option is for users who wish to access $MCP_LONG without using stdio. For example, your AI Assistant does not support stdio, or you do not want to run $CLI_SHORT on your device.
Flags are:
  • `--port `: the default is `8000`
  • `--host `: the default is `localhost`
| diff --git a/ai/index.md b/ai/index.md index 0f57113529..ee0272d872 100644 --- a/ai/index.md +++ b/ai/index.md @@ -1,51 +1,83 @@ --- -title: Power your AI apps with Postgres -excerpt: TigerData pgai is a solution for building search, RAG, and AI agents with Postgres. Learn more about pgai and how to use it +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 products: [cloud, mst, self_hosted] -keywords: [ai, vector, pgvector, pgvectorscale, pgai] -tags: [ai, vector] +keywords: [ai, vector, pgvector, pgvectorscale, pgai, tiger-eon, tiger-agents, mcp-server] +tags: [ai, vector, agents, assistants] --- +# Integrate AI with Tiger Data -# Power your AI apps with pgai on $CLOUD_LONG +You can build and deploy AI assistants that understand, analyze, and act on your organizational data using +$COMPANY. Whether you're building semantic search applications, recommendation systems, or intelligent agents +that answer complex business questions, $COMPANY provides the tools and infrastructure you need. -pgai on $CLOUD_LONG is a cloud solution for building search, RAG, and AI agents with $PG. This suite of tools empowers you to deploy production AI applications with $PG as your vector database, storing both vector embeddings, relational data (for example, related metadata), and time-based data in the same database. +$COMPANY's AI ecosystem combines $PG with advanced vector capabilities, intelligent agents, and seamless +integrations. Your AI assistants can: - +- Access organizational knowledge from Slack, GitHub, Linear, and other data sources +- Understand context using advanced vector search and embeddings across large datasets +- Execute tasks, generate reports, and interact with your $SERVICE_LONGs through natural language +- Scale reliably with enterprise-grade performance for concurrent conversations -pgai on $CLOUD_LONG is comprised of three extensions: pgvector, pgvectorscale and pgai. pgvector provides the vector data type and HNSW search index. Pgvectorscale provides the StreamingDiskANN index to superpower embedding search and make vector queries performant. pgai allows you to easily call AI embedding and generation models from inside the database. All three extensions are installed in your $CLOUD_LONG instance by default. +## $EON_LONG for complete organizational AI + +[$EON_LONG](/ai/:currentVersion:/tiger-eon/) automatically integrates $AGENTS_LONG with your organizational +data. You can: + +- Get instant access to company knowledge from Slack, GitHub, and Linear +- Process data in real-time as conversations and updates happen +- Store data efficiently with time-series partitioning and compression +- Deploy quickly with Docker and an interactive setup wizard + +Use $EON_SHORT when you want to unlock knowledge from your communication and development tools. + +## $AGENTS_LONG for enterprise Slack AI + +[$AGENTS_LONG](/ai/:currentVersion:/tiger-agents-for-work/) provides enterprise-grade Slack-native AI agents. +You get: + +- Durable event handling with $PG-backed processing +- Horizontal scalability across multiple $AGENTS_SHORT instances +- Flexibility to choose AI models and customize prompts +- Integration with specialized data sources through MCP servers +- Complete observability and monitoring with Logfire + +Use $AGENTS_SHORT when you need reliable, customizable AI agents for high-volume conversations. + +## $MCP_SHORT for direct AI assistant integration + +The [$MCP_LONG](/ai/:currentVersion:/mcp-server/) integrates directly with popular AI assistants. You can: + +- Work with Claude Code, Cursor, VS Code, and other editors +- Manage $SERVICE_SHORTs and optimize queries through natural language +- 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. - -## pgvectorscale ❤️ pgvector +## pgvectorscale and️ pgvector + [Pgvector](https://github.com/pgvector/pgvector) is a popular open source extension for vector storage and similarity search in $PG and [pgvectorscale](https://github.com/timescale/pgvectorscale) adds advanced indexing capabilities to pgvector. pgai on $CLOUD_LONG offers both extensions so you can use all the capabilities already available in pgvector (like HNSW and ivfflat indexes) and also make use of the StreamingDiskANN index in pgvectorscale to speed up vector search. This makes it easy to migrate your existing pgvector deployment and take advantage of the additional performance features in pgvectorscale. You also have the flexibility to create different index types suited to your needs. See the [vector search indexing][vector-search-indexing] section for more information. -## What are vector embeddings? Embeddings offer a way to represent the semantic essence of data and to allow comparing data according to how closely related it is in terms of meaning. In the database context, this is extremely powerful: think of this as full-text search on steroids. Vector databases allow storing embeddings associated with data and then searching for embeddings that are similar to a given query. -## Applications of vector embeddings - -There are many applications where vector embeddings can be useful. - -### Semantic search -Transcend the limitations of traditional keyword-driven search methods by creating systems that understand the intent and contextual meaning of a query, thereby returning more relevant results. Semantic search doesn't just seek exact word matches; it grasps the deeper intent behind a user's query. The result? Even if search terms differ in phrasing, relevant results are surfaced. Taking advantage of hybrid search, which marries lexical and semantic search methodologies, offers users a search experience that's both rich and accurate. It's not just about finding direct matches anymore; it's about tapping into contextually and conceptually similar content to meet user needs. +- Semantic search: transcend the limitations of traditional keyword-driven search methods by creating systems that understand the intent and contextual meaning of a query, thereby returning more relevant results. Semantic search doesn't just seek exact word matches; it grasps the deeper intent behind a user's query. The result? Even if search terms differ in phrasing, relevant results are surfaced. Taking advantage of hybrid search, which marries lexical and semantic search methodologies, offers users a search experience that's both rich and accurate. It's not just about finding direct matches anymore; it's about tapping into contextually and conceptually similar content to meet user needs. -### Recommendation systems -Imagine a user who has shown interest in several articles on a singular topic. With embeddings, the recommendation engine can delve deep into the semantic essence of those articles, surfacing other database items that resonate with the same theme. Recommendations, thus, move beyond just the superficial layers like tags or categories and dive into the very heart of the content. +- Recommendation systems: imagine a user who has shown interest in several articles on a singular topic. With embeddings, the recommendation engine can delve deep into the semantic essence of those articles, surfacing other database items that resonate with the same theme. Recommendations, thus, move beyond just the superficial layers like tags or categories and dive into the very heart of the content. -### Retrieval augmented generation (RAG) -Supercharge generative AI by providing additional context to Large Language Models (LLMs) like OpenAI's GPT-4, Anthropic's Claude 2, and open source modes like Llama 2. When a user poses a query, relevant database content is fetched and used to supplement the query as additional information for the LLM. This helps reduce LLM hallucinations, as it ensures the model's output is more grounded in specific and relevant information, even if it wasn't part of the model's original training data. +- Retrieval augmented generation (RAG): supercharge generative AI by providing additional context to Large Language Models (LLMs) like OpenAI's GPT-4, Anthropic's Claude 2, and open source modes like Llama 2. When a user poses a query, relevant database content is fetched and used to supplement the query as additional information for the LLM. This helps reduce LLM hallucinations, as it ensures the model's output is more grounded in specific and relevant information, even if it wasn't part of the model's original training data. -### Clustering -Embeddings also offer a robust solution for clustering data. Transforming data into these vectorized forms allows for nuanced comparisons between data points in a high-dimensional space. Through algorithms like K-means or hierarchical clustering, data can be categorized into semantic categories, offering insights that surface-level attributes might miss. This surfaces inherent data patterns, enriching both exploration and decision-making processes. +- Clustering: embeddings also offer a robust solution for clustering data. Transforming data into these vectorized forms allows for nuanced comparisons between data points in a high-dimensional space. Through algorithms like K-means or hierarchical clustering, data can be categorized into semantic categories, offering insights that surface-level attributes might miss. This surfaces inherent data patterns, enriching both exploration and decision-making processes. -## Vector similarity search: How does it work +### Vector similarity search: How does it work On a high level, embeddings help a database to look for data that is similar to a given piece of information (similarity search). This process includes a few steps: @@ -56,7 +88,7 @@ On a high level, embeddings help a database to look for data that is similar to Under the hood, embeddings are represented as a vector (a list of numbers) that capture the essence of the data. To determine the similarity of two pieces of data, the database uses mathematical operations on vectors to get a distance measure (commonly Euclidean or cosine distance). During a search, the database should return those stored items where the distance between the query embedding and the stored embedding is as small as possible, suggesting the items are most similar. -## Embedding models +### Embedding models pgai on $CLOUD_LONG works with the most popular embedding models that have output vectors of 2,000 dimensions or less.: diff --git a/ai/mcp-server.md b/ai/mcp-server.md index a17fdf36aa..13228c8f33 100644 --- a/ai/mcp-server.md +++ b/ai/mcp-server.md @@ -77,7 +77,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe ```shell claude ``` - Claude automatically runs your $MCP_SHORT server that enables you to interact with $CLOUD_LONG from your + Claude automatically runs the $MCP_SHORT server that enables you to interact with $CLOUD_LONG from your AI Assistant. 1. **Check your $MCP_LONG configuration** @@ -185,7 +185,7 @@ manage your $SERVICE_SHORTs and learn more about how to implement $CLOUD_LONG fe
-That beats working. Let the $MCP_LONG do it all for you. +That beats working. Let the $MCP_SHORT do it all for you. ## Manually configure the $MCP_SHORT diff --git a/ai/page-index/page-index.js b/ai/page-index/page-index.js index 3108142ce1..b3735bbc4d 100644 --- a/ai/page-index/page-index.js +++ b/ai/page-index/page-index.js @@ -1,6 +1,6 @@ module.exports = [ { - title: "AI and Vector", + title: "Integrate AI with Tiger Data", href: "ai", filePath: "index.md", pageComponents: ["featured-cards"], From 53677960fb311328b3943fd42ece2ee96f6278a8 Mon Sep 17 00:00:00 2001 From: Iain Cox Date: Tue, 21 Oct 2025 11:28:23 +0200 Subject: [PATCH 75/75] Apply suggestions from code review Co-authored-by: Anastasiia Tovpeko <114177030+atovpeko@users.noreply.github.com> Signed-off-by: Iain Cox --- _partials/_devops-mcp-commands.md | 2 +- ai/index.md | 4 ++-- api/api-reference.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_partials/_devops-mcp-commands.md b/_partials/_devops-mcp-commands.md index d42a88d60b..0b91f74756 100644 --- a/_partials/_devops-mcp-commands.md +++ b/_partials/_devops-mcp-commands.md @@ -1,5 +1,5 @@ -$MCP_LONG exposes the following MCP tools to your AI assistant: +$MCP_LONG exposes the following MCP tools to your AI Assistant: | Command | Parameter | Required | Description | |--------------------------|---------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/ai/index.md b/ai/index.md index ee0272d872..df59104433 100644 --- a/ai/index.md +++ b/ai/index.md @@ -45,9 +45,9 @@ You get: Use $AGENTS_SHORT when you need reliable, customizable AI agents for high-volume conversations. -## $MCP_SHORT for direct AI assistant integration +## $MCP_SHORT for direct AI Assistant integration -The [$MCP_LONG](/ai/:currentVersion:/mcp-server/) integrates directly with popular AI assistants. You can: +The [$MCP_LONG](/ai/:currentVersion:/mcp-server/) integrates directly with popular AI Assistants. You can: - Work with Claude Code, Cursor, VS Code, and other editors - Manage $SERVICE_SHORTs and optimize queries through natural language diff --git a/api/api-reference.md b/api/api-reference.md index f81c26df8b..de6baf5b27 100644 --- a/api/api-reference.md +++ b/api/api-reference.md @@ -34,11 +34,11 @@ curl -X GET "https://console.cloud.timescale.com/public/api/v1/projects/{project You use this endpoint to create a Tiger Cloud service with one of more of the following addons: -- `time-series`: a Tiger Cloud service optimized for real-time analytics service For time-stamped data like events, +- `time-series`: a Tiger Cloud service optimized for real-time analytics. For time-stamped data like events, prices, metrics, sensor readings, or any information that changes over time. - `ai`: a Tiger Cloud service instance with vector extensions. -To have multiple addons when you create a new service, set `"addons": ["time-series", "ai"]`, to create a +To have multiple addons when you create a new service, set `"addons": ["time-series", "ai"]`. To create a vanilla Postgres instance, set `addons` to an empty list `[]`. ### List All Services