Table of contents
Official Content
  • This documentation is valid for:

The following samples show common ways to run geai migrate clone-project, from full Project cloning to selective migrations by resource type or ID.

  • Basic Usage
  • Advanced Usage
  • Common Use Cases

Basic Usage

These samples cover the most common migration patterns.

  • Migrate everything
  • Migrate to a different instance
  • Selective migration
    • Migrate specific resource types
    • Migrate specific resources by ID
    • Mixed migration strategies

Migrate Everything

The simplest and most common use case is to migrate an entire Project with all its resources:

geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p" \
  --from-instance "https://api.source.example.ai" \
  --to-project-name "Cloned Project" \
  --admin-email "admin@example.com" \
  --all

This command performs the following actions:

  1. Create a new Project named Cloned Project.
  2. Discover all resources in the source Project.
  3. Migrate all Agents, Tools, Agentic Processes, Tasks, Usage limits, RAG Assistants, Files, and Secrets.
  4. Display progress and results.

Migrate to a Different Instance

To migrate between different Globant Enterprise AI environments, provide the destination URL and credentials:

geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.dev.example.ai" \
  --to-api-key "destination_api_key_456" \
  --to-project-name "Production Project" \
  --to-instance "https://api.prod.example.ai" \
  --to-organization-id "prod-org-id" \
  --admin-email "prod-admin@example.com" \
  --all

Selective Migration

These samples show how to migrate only specific resources instead of cloning the entire Project.

  • Migrate Specific Resource Types
  • Migrate Specific Resources by ID
  • Mixed Migration Strategies

Migrate Specific Resource Types

Instead of migrating everything, you can selectively migrate specific resource types:

Migrate all Agents only:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Agents Only" \
  --admin-email "admin@example.com" \
  --agents all
Migrate all Tools only:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Tools Only" \
  --admin-email "admin@example.com" \
  --tools all
Migrate all RAG Assistants only:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "RAG Assistants Only" \
  --admin-email "admin@example.com" \
  --rag-assistants all
Migrate all Secrets only:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Secrets Only" \
  --admin-email "admin@example.com" \
  --secrets all

Migrate Specific Resources by ID

For fine-grained control, specify comma-separated resource IDs:

Migrate specific Agents:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Selected Agents" \
  --admin-email "admin@example.com" \
  --agents "agent-id-1,agent-id-2,agent-id-3"
Migrate specific Tools:
geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Selected Tools" \
  --admin-email "admin@example.com" \
  --tools "tool-id-1,tool-id-2"

Mixed Migration Strategies

Combine different migration strategies for maximum flexibility:

geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "Mixed Migration" \
  --admin-email "admin@example.com" \
  --agents all \
  --tools "tool-id-1,tool-id-2" \
  --rag-assistants all \
  --files all

This command migrates:

  • ALL Agents (auto-discovered)
  • SPECIFIC Tools (by ID)
  • ALL RAG Assistants (auto-discovered)
  • ALL Files (auto-discovered)

Advanced Usage

These samples cover migrations that require additional context or configuration.

  • Migrate with Organization Context
  • Migrate all The Lab Resources

Migrate with Organization Context

When migrating between Organizations, specify Organization IDs:

geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-organization-id "source-org-id" \
  --from-instance "https://api.example.ai" \
  --to-api-key "destination_api_key_456" \
  --to-project-name "Cross-Org Project" \
  --to-organization-id "destination-org-id" \
  --to-instance "https://api.example.ai" \
  --admin-email "admin@example.com" \
  --all

Migrate all The Lab Resources

To migrate all AI Lab-related resources (Agents, Tools, Agentic Processes, Tasks):

geai migrate clone-project \
  --from-api-key "source_api_key_123" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-name "AI Lab Resources" \
  --admin-email "admin@example.com" \
  --agents all \
  --tools all \
  --agentic-processes all \
  --tasks all

Common use cases

These samples focus on end-to-end scenarios that you can reuse as templates.

  • Development to production promotion (new Project)
  • Project backup (new Project)
  • Migrate resources to an existing Project

Development to production promotion (with new Project creation)

geai migrate clone-project \
  --from-api-key "dev_project_api_key" \
  --from-org-key "dev_org_api_key" \
  --from-project-id "dev-project-id" \
  --from-instance "https://api.dev.example.ai" \
  --to-api-key "prod_project_api_key" \
  --to-org-key "prod_org_api_key" \
  --to-project-name "Production Release v1.0" \
  --to-instance "https://api.prod.example.ai" \
  --admin-email "prod-admin@example.com" \
  --all

Project backup (with new Project creation)

geai migrate clone-project \
  --from-api-key "project_api_key" \
  --from-org-key "org_api_key" \
  --from-project-id "main-project-id" \
  --from-instance "https://api.example.ai" \
  --to-org-key "org_api_key" \
  --to-project-name "Main Project Backup $(date +%Y-%m-%d)" \
  --admin-email "admin@example.com" \
  --all

Migrate resources to an existing Project (no org keys needed)

When migrating to an existing Project, you must provide both --to-project-id and --to-api-key:

geai migrate clone-project \
  --from-api-key "source_project_api_key" \
  --from-project-id "source-project-id" \
  --from-instance "https://api.example.ai" \
  --to-project-id "existing-project-id" \
  --to-api-key "target_project_api_key" \
  --agents all \
  --tools all

This example migrates all Agents and Tools to an existing Project without requiring Organization scope API keys.

Availability

Since version 2026-01.

Last update: December 2025 | © GeneXus. All rights reserved. GeneXus Powered by Globant