Prerequisites¶
Before you start building with Gaia, make sure you have the following tools, accounts, and knowledge in place.
Platform Requirements¶
Cohesity Cluster with Gaia Enabled¶
You need access to a Cohesity cluster that has the Gaia feature enabled. This is available through:
- Cohesity DataProtect with the Gaia add-on
- Cohesity DataHawk with Gaia capabilities
- Cohesity Cloud Services (Helios-managed clusters)
Don't have a cluster?
Contact your Cohesity account team or visit cohesity.com to request access to a Gaia-enabled environment. For development and testing, ask about sandbox or trial clusters.
A Gaia API Key¶
All Gaia API calls require an API key for authentication. To obtain one:
- Log in to the Cohesity UI (either the cluster UI or Helios at
helios.cohesity.com). - Navigate to Settings → Access Management → API Keys.
- Click Generate API Key.
- Give it a descriptive name (e.g.,
gaia-dev-myname). - Copy the key immediately — it won't be shown again.
Keep your API key secure
Treat your API key like a password. Never commit it to version control, embed it in frontend code, or share it in chat messages. Use environment variables or a secrets manager.
Development Environment¶
Python 3.10+¶
The backend and SDK require Python 3.10 or later (for match statements, X | Y union types, and modern asyncio).
Node.js 18+¶
The frontend build tooling requires Node.js 18 or later.
Code Editor¶
Any editor works, but we recommend Cursor IDE for AI-assisted development. Cursor understands your codebase and can help you write Gaia integration code faster with inline suggestions and chat.
Cursor IDE + Gaia
This guide includes a dedicated section on AI-Assisted Development with Cursor rules and workflows tailored for Gaia app development.
Knowledge Prerequisites¶
You don't need to be an expert, but familiarity with the following will help:
| Topic | Level | Why |
|---|---|---|
| REST APIs | Comfortable | The Gaia API is a standard REST API with JSON payloads |
| Python async/await | Basic | The SDK and FastAPI backend are async-first |
| React | Basic (optional) | Only needed if building the frontend; any SPA framework works |
| HTTP headers & auth | Basic | API key authentication and session management |
| Environment variables | Basic | Used for configuration and secrets |
Python Packages¶
The backend uses the following key packages:
| Package | Purpose |
|---|---|
httpx | Async HTTP client with streaming support |
pydantic | Data validation and serialization (used by the SDK) |
fastapi | Async web framework for the backend API |
uvicorn | ASGI server to run FastAPI |
python-dotenv | Load environment variables from .env files |
Setting Up the Python Environment¶
# Create a project directory
mkdir gaia-app && cd gaia-app
# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Upgrade pip
pip install --upgrade pip
# Install backend dependencies
pip install httpx pydantic fastapi uvicorn python-dotenv
# Or install from a requirements.txt
cat > requirements.txt << 'EOF'
httpx>=0.27.0
pydantic>=2.0
fastapi>=0.110.0
uvicorn[standard]>=0.29.0
python-dotenv>=1.0.0
EOF
pip install -r requirements.txt
Installing the Gaia SDK
If you're using the gaia_sdk package from this project, first clone the repo and then install it in development mode:
Node.js Packages¶
The frontend uses the following key packages:
| Package | Purpose |
|---|---|
react | UI component library |
react-dom | React DOM renderer |
vite | Fast build tool and dev server |
zustand | Lightweight state management |
react-router-dom | Client-side routing |
Setting Up the Frontend¶
# Create a new Vite + React project
npm create vite@latest frontend -- --template react-ts
cd frontend
# Install dependencies
npm install
# Install additional packages
npm install zustand react-router-dom
# Verify the dev server starts
npm run dev
Environment Configuration¶
Create a .env file in your backend project root:
# .env
GAIA_API_KEY=your-api-key-here
GAIA_BASE_URL=https://helios.cohesity.com/v2/mcm/gaia
GAIA_VERIFY_SSL=true
# Optional: security context for multi-tenant setups
# GAIA_SECURITY_CTX=your-security-context
Add .env to .gitignore
Make sure your .env file is listed in .gitignore before your first commit. If you cloned build-with-gaia, .env is already covered by the repo's .gitignore — no extra step needed. For a new project:
Verify Your Setup¶
Run this quick check to make sure everything is working:
#!/usr/bin/env python3
"""Verify your Gaia development environment."""
import sys
import importlib
from dotenv import load_dotenv
# Load variables from .env so this script works without manually exporting them
load_dotenv()
print(f"Python: {sys.version}")
required = ["httpx", "pydantic", "fastapi", "uvicorn", "dotenv"]
for pkg in required:
try:
mod = importlib.import_module(pkg)
version = getattr(mod, "__version__", "installed")
print(f" ✓ {pkg} ({version})")
except ImportError:
print(f" ✗ {pkg} — not installed (pip install {pkg})")
# Check for the Gaia SDK
try:
from gaia_sdk import GaiaClient
print(" ✓ gaia_sdk (available)")
except ImportError:
print(" ⓘ gaia_sdk — not installed (optional: pip install -e sdk/python/)")
print("\nEnvironment variables:")
import os
for var in ["GAIA_API_KEY", "GAIA_BASE_URL"]:
val = os.environ.get(var)
if val:
display = val[:8] + "..." if var == "GAIA_API_KEY" else val
print(f" ✓ {var} = {display}")
else:
print(f" ✗ {var} — not set")
Save this as check_env.py. Make sure your virtual environment is active, then run it:
# Activate your virtual environment first
source .venv/bin/activate # On Windows: .venv\Scripts\activate
python check_env.py
Expected output:
Python: 3.12.x
✓ httpx (0.27.x)
✓ pydantic (2.x.x)
✓ fastapi (0.110.x)
✓ uvicorn (0.29.x)
✓ dotenv (1.0.x)
✓ gaia_sdk (available)
Environment variables:
✓ GAIA_API_KEY = abcd1234...
✓ GAIA_BASE_URL = https://helios.cohesity.com/v2/mcm/gaia
Next Steps¶
You're all set! Continue to:
- Authentication — Learn how API key auth works.
- Your First API Call — Talk to Gaia.