CockroachDB · Schema

CockroachDB Cluster

Schema representing a CockroachDB Cloud cluster, which is an instance of CockroachDB running in one or more cloud regions on Serverless or Dedicated infrastructure.

Cluster ManagementCloudDatabaseDistributed SQLInfrastructurePostgreSQL CompatibleSQL

Properties

Name Type Description
id string Unique identifier of the cluster assigned by CockroachDB Cloud.
name string Human-readable name of the cluster.
cloud_provider string Cloud infrastructure provider hosting the cluster.
cockroach_version string Version string of CockroachDB running on the cluster (e.g. v23.1.0).
plan string Service tier of the cluster, either Serverless or Dedicated.
state string Overall lifecycle state of the cluster.
operation_status string Current operational status reflecting any in-progress or failed operations.
regions array Cloud provider regions where the cluster is deployed. Multi-region clusters have multiple entries.
config object Configuration settings for the cluster, containing either serverless or dedicated configuration.
creator_id string Identifier of the user who created the cluster.
created_at string RFC3339 timestamp when the cluster was created.
updated_at string RFC3339 timestamp of the most recent modification to the cluster.
deleted_at string RFC3339 timestamp when the cluster was deleted. Only present for deleted clusters.
sql_dns string DNS hostname used for SQL connections to the cluster.
upgrade_status string Status of any in-progress version upgrade operation.
account_id string Cloud provider account ID for the cluster, used for trust relationship configuration.
parent_id string Folder ID of the folder containing this cluster, if any.
labels object User-defined key-value labels attached to the cluster for organization and filtering.
delete_protection string Whether delete protection is enabled, preventing accidental cluster deletion.
egress_traffic_policy string Policy governing outbound network traffic from the cluster.
network_visibility string Network accessibility configuration controlling whether the cluster is publicly accessible.
azure_cluster_identity_client_id string Client ID of the Azure cluster identity, present for Azure deployments that support CMEK.
cidr_range string IPv4 CIDR range reserved for the cluster. Only set on GCP Advanced tier clusters.
customer_cloud_account object Customer cloud account details for BYOC (Bring Your Own Cloud) deployments.
View JSON Schema on GitHub

JSON Schema

cockroachdb-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://cockroachlabs.com/schemas/cockroachdb/cluster.json",
  "title": "CockroachDB Cluster",
  "description": "Schema representing a CockroachDB Cloud cluster, which is an instance of CockroachDB running in one or more cloud regions on Serverless or Dedicated infrastructure.",
  "type": "object",
  "required": ["id", "name", "cloud_provider", "state", "operation_status", "plan", "regions", "cockroach_version", "creator_id"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier of the cluster assigned by CockroachDB Cloud."
    },
    "name": {
      "type": "string",
      "description": "Human-readable name of the cluster.",
      "maxLength": 40
    },
    "cloud_provider": {
      "type": "string",
      "description": "Cloud infrastructure provider hosting the cluster.",
      "enum": ["GCP", "AWS", "AZURE"]
    },
    "cockroach_version": {
      "type": "string",
      "description": "Version string of CockroachDB running on the cluster (e.g. v23.1.0).",
      "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+"
    },
    "plan": {
      "type": "string",
      "description": "Service tier of the cluster, either Serverless or Dedicated.",
      "enum": ["DEDICATED", "SERVERLESS"]
    },
    "state": {
      "type": "string",
      "description": "Overall lifecycle state of the cluster.",
      "enum": ["CREATING", "CREATED", "CREATION_FAILED", "DELETED", "LOCKED"]
    },
    "operation_status": {
      "type": "string",
      "description": "Current operational status reflecting any in-progress or failed operations.",
      "enum": ["CLUSTER_STATUS_UNSPECIFIED", "CRDB_MAJOR_UPGRADE_RUNNING", "CRDB_MAJOR_ROLLBACK_RUNNING", "CRDB_PATCH_RUNNING", "CRDB_SCALE_RUNNING", "TENANT_RESTORE_RUNNING", "CRDB_MAJOR_UPGRADE_PENDING", "CRDB_MAJOR_ROLLBACK_PENDING", "CRDB_PATCH_PENDING", "CRDB_SCALE_PENDING", "NONE"]
    },
    "regions": {
      "type": "array",
      "description": "Cloud provider regions where the cluster is deployed. Multi-region clusters have multiple entries.",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/Region"
      }
    },
    "config": {
      "$ref": "#/$defs/ClusterConfig",
      "description": "Configuration settings for the cluster, containing either serverless or dedicated configuration."
    },
    "creator_id": {
      "type": "string",
      "description": "Identifier of the user who created the cluster."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "RFC3339 timestamp when the cluster was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "RFC3339 timestamp of the most recent modification to the cluster."
    },
    "deleted_at": {
      "type": "string",
      "format": "date-time",
      "description": "RFC3339 timestamp when the cluster was deleted. Only present for deleted clusters."
    },
    "sql_dns": {
      "type": "string",
      "description": "DNS hostname used for SQL connections to the cluster."
    },
    "upgrade_status": {
      "type": "string",
      "description": "Status of any in-progress version upgrade operation.",
      "enum": ["UPGRADE_AVAILABLE", "UPGRADING", "UPGRADE_QUEUED", "ROLLBACK_RUNNING", "FINALIZATION_PENDING", "FINALIZATION_FAILED", "MAJOR_UPGRADE_RUNNING"]
    },
    "account_id": {
      "type": "string",
      "description": "Cloud provider account ID for the cluster, used for trust relationship configuration."
    },
    "parent_id": {
      "type": "string",
      "description": "Folder ID of the folder containing this cluster, if any."
    },
    "labels": {
      "type": "object",
      "description": "User-defined key-value labels attached to the cluster for organization and filtering.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "delete_protection": {
      "type": "string",
      "description": "Whether delete protection is enabled, preventing accidental cluster deletion.",
      "enum": ["DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]
    },
    "egress_traffic_policy": {
      "type": "string",
      "description": "Policy governing outbound network traffic from the cluster.",
      "enum": ["EGRESS_TRAFFIC_POLICY_UNSPECIFIED", "DEFAULT_ALLOW", "DEFAULT_DENY"]
    },
    "network_visibility": {
      "type": "string",
      "description": "Network accessibility configuration controlling whether the cluster is publicly accessible.",
      "enum": ["PRIVATE", "PUBLIC"]
    },
    "azure_cluster_identity_client_id": {
      "type": "string",
      "description": "Client ID of the Azure cluster identity, present for Azure deployments that support CMEK."
    },
    "cidr_range": {
      "type": "string",
      "description": "IPv4 CIDR range reserved for the cluster. Only set on GCP Advanced tier clusters.",
      "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}/[0-9]{1,2}$"
    },
    "customer_cloud_account": {
      "$ref": "#/$defs/CustomerCloudAccount",
      "description": "Customer cloud account details for BYOC (Bring Your Own Cloud) deployments."
    }
  },
  "$defs": {
    "Region": {
      "type": "object",
      "description": "A geographic region where the cluster or its nodes are deployed.",
      "required": ["name"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Cloud provider region identifier (e.g. us-east-1, us-central1)."
        },
        "sql_dns": {
          "type": "string",
          "description": "DNS hostname for SQL connections routed specifically to this region."
        },
        "node_count": {
          "type": "integer",
          "description": "Number of CockroachDB nodes deployed in this region.",
          "minimum": 1
        },
        "primary": {
          "type": "boolean",
          "description": "Whether this is the primary region for a multi-region cluster."
        }
      }
    },
    "ClusterConfig": {
      "type": "object",
      "description": "Configuration container for a cluster, holding either serverless or dedicated settings.",
      "properties": {
        "serverless": {
          "$ref": "#/$defs/ServerlessClusterConfig",
          "description": "Configuration specific to Serverless clusters. Present when plan is SERVERLESS."
        },
        "dedicated": {
          "$ref": "#/$defs/DedicatedClusterConfig",
          "description": "Configuration specific to Dedicated clusters. Present when plan is DEDICATED."
        }
      }
    },
    "ServerlessClusterConfig": {
      "type": "object",
      "description": "Configuration specific to a CockroachDB Serverless cluster.",
      "properties": {
        "spend_limit": {
          "type": "integer",
          "description": "Monthly spend limit in US cents. Set to 0 for unlimited spend.",
          "minimum": 0
        },
        "routing_id": {
          "type": "string",
          "description": "Unique routing identifier used to route SQL connections to the correct serverless cluster."
        },
        "usage_limits": {
          "$ref": "#/$defs/UsageLimits",
          "description": "Request unit and storage limits for the serverless cluster."
        }
      }
    },
    "UsageLimits": {
      "type": "object",
      "description": "Usage-based limits for a Serverless cluster.",
      "properties": {
        "request_unit_limit": {
          "type": "integer",
          "format": "int64",
          "description": "Maximum number of request units per month. 0 means no limit."
        },
        "storage_mib_limit": {
          "type": "integer",
          "format": "int64",
          "description": "Maximum storage in mebibytes. 0 means no limit."
        }
      }
    },
    "DedicatedClusterConfig": {
      "type": "object",
      "description": "Configuration specific to a CockroachDB Dedicated cluster.",
      "properties": {
        "machine_type": {
          "type": "string",
          "description": "Machine type used for cluster nodes (e.g. m5.xlarge on AWS)."
        },
        "num_virtual_cpus": {
          "type": "integer",
          "description": "Number of virtual CPUs allocated per node.",
          "minimum": 2
        },
        "storage_gib": {
          "type": "integer",
          "description": "Storage capacity per node in gibibytes.",
          "minimum": 15
        },
        "memory_gib": {
          "type": "number",
          "description": "Memory per node in gibibytes.",
          "exclusiveMinimum": 0
        },
        "disk_iops": {
          "type": "integer",
          "description": "Disk input/output operations per second allocated per node.",
          "minimum": 0
        }
      }
    },
    "CustomerCloudAccount": {
      "type": "object",
      "description": "Customer cloud account details for Bring Your Own Cloud (BYOC) cluster deployments.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Cloud provider account or project ID."
        },
        "provider": {
          "type": "string",
          "description": "Cloud provider for the customer account.",
          "enum": ["GCP", "AWS", "AZURE"]
        }
      }
    },
    "AllowlistEntry": {
      "type": "object",
      "description": "An IP allowlist entry defining a CIDR range authorized to connect to the cluster.",
      "required": ["cidr_ip", "cidr_mask"],
      "properties": {
        "cidr_ip": {
          "type": "string",
          "description": "IPv4 base address of the CIDR range.",
          "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}$"
        },
        "cidr_mask": {
          "type": "integer",
          "description": "Prefix length of the CIDR range (e.g. 24 for /24).",
          "minimum": 0,
          "maximum": 32
        },
        "name": {
          "type": "string",
          "description": "Human-readable label for this allowlist entry (e.g. office-network)."
        },
        "ui": {
          "type": "boolean",
          "description": "Whether this entry grants access to the DB Console web interface."
        },
        "sql": {
          "type": "boolean",
          "description": "Whether this entry grants SQL connection access."
        }
      }
    },
    "MaintenanceWindow": {
      "type": "object",
      "description": "Defines the preferred time window for automatic maintenance and version upgrade operations.",
      "properties": {
        "day_of_week": {
          "type": "integer",
          "description": "Day of the week for the maintenance window. 0=Sunday through 6=Saturday.",
          "minimum": 0,
          "maximum": 6
        },
        "start_hour": {
          "type": "integer",
          "description": "Hour of day in UTC when the maintenance window begins (0-23).",
          "minimum": 0,
          "maximum": 23
        }
      }
    },
    "CMEKRegionSpec": {
      "type": "object",
      "description": "Customer-managed encryption key specification for a specific cloud region.",
      "required": ["region", "key"],
      "properties": {
        "region": {
          "type": "string",
          "description": "Cloud provider region this key specification applies to."
        },
        "key": {
          "$ref": "#/$defs/CMEKKeySpec",
          "description": "Encryption key specification for this region."
        }
      }
    },
    "CMEKKeySpec": {
      "type": "object",
      "description": "Specification for a customer-managed encryption key.",
      "required": ["type", "uri"],
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of encryption key. AWS_KMS for AWS, GCP_CLOUD_KMS for GCP.",
          "enum": ["AWS_KMS", "GCP_CLOUD_KMS"]
        },
        "uri": {
          "type": "string",
          "description": "Full URI of the customer-managed key in the cloud provider's KMS."
        },
        "auth_principal": {
          "type": "string",
          "description": "IAM role ARN (AWS) or service account email (GCP) used to access the key."
        }
      }
    },
    "LogExportGroup": {
      "type": "object",
      "description": "A log channel group configuration for selective log export.",
      "required": ["channels"],
      "properties": {
        "log_name": {
          "type": "string",
          "description": "Name of the log group or stream in the destination service."
        },
        "channels": {
          "type": "array",
          "description": "List of CockroachDB log channel names to include in this group.",
          "items": {
            "type": "string"
          }
        },
        "min_level": {
          "type": "string",
          "description": "Minimum severity level of log entries to export.",
          "enum": ["INFO", "WARNING", "ERROR", "FATAL"]
        },
        "redact": {
          "type": "boolean",
          "description": "Whether to redact sensitive information from log entries before export."
        }
      }
    },
    "BackupConfiguration": {
      "type": "object",
      "description": "Backup retention and frequency settings for a CockroachDB cluster.",
      "properties": {
        "cluster_id": {
          "type": "string",
          "description": "ID of the cluster this backup configuration applies to."
        },
        "frequency_minutes": {
          "type": "integer",
          "description": "How often automated backups are taken, in minutes.",
          "minimum": 1
        },
        "retention_days": {
          "type": "integer",
          "description": "Number of days automated backups are retained before deletion.",
          "minimum": 1,
          "maximum": 365
        }
      }
    }
  }
}