
# Project Overview

This project is a Go application designed to provide a Proof of Value (PoV) testing framework for TiDB Cloud. Its primary purpose is to enable users to define, execute, and manage various workload tests against TiDB Cloud clusters, allowing for performance evaluation and feature validation.

## Getting Started

To build the project:

```bash
make build
```

## Running Tests

To run the tests:

```bash
make test
```

## Deployment

Deployment configurations can be found in the `deployments/` directory.


## Project Structure

```
.
├── cmd/             # Application entry point
├── deployments/     # Deployment configurations (e.g., Kubernetes manifests)
├── docs/            # Project documentation (if any)
├── internal/        # Internal packages not exposed to other projects
│   ├── common/      # Common utilities and data structures
│   ├── config/      # Configuration handling
│   ├── handler/     # HTTP request handlers and DTOs
│   ├── gateway/     # Client integrations with external services (TCMS, TiWorkload)
│   ├── model/       # Data models
│   ├── pkg/         # Internal utility packages
│   ├── repo/        # Data repository interfaces 
│   └── service/     # Business logic layer
├── pkg/             # Publicly exposed packages (if any)
├── tests/           # End-to-end and integration tests and local test configurations
├── Makefile         # Build, test, and deployment scripts
├── Dockerfile       # Docker build instructions
├── go.mod           # Go module dependencies
├── go.sum           # Go module checksums
└── README.md        # This README file
```

## Features

*   **Workload Management:** Supports listing, running, and managing various workloads for TiDB Cloud.
*   **API Endpoints:** Provides HTTP endpoints for interacting with the workload management system.
*   **External Service Integration:** Integrates with TCMS (TiDB Cloud Management Service) and TiWorkload for cluster creation, data preparation, and traffic generation.
*   **Automated Scheduling:** Includes a scheduler for managing the lifecycle of workload tests.


