134 lines
2.4 KiB
Markdown
134 lines
2.4 KiB
Markdown
# API Contracts: Refactor CLI Scripts to Web Application
|
|
|
|
## 1. Tools API
|
|
|
|
### 1.1. Search Datasets
|
|
**Endpoint**: `POST /api/tools/search`
|
|
**Description**: Search for text patterns across all datasets in a specific environment.
|
|
|
|
**Request Body**:
|
|
```json
|
|
{
|
|
"env": "dev",
|
|
"query": "regex_pattern"
|
|
}
|
|
```
|
|
|
|
**Response (200 OK)**:
|
|
```json
|
|
{
|
|
"count": 5,
|
|
"results": [
|
|
{
|
|
"dataset_id": 123,
|
|
"dataset_name": "sales_data",
|
|
"field": "sql",
|
|
"match_context": "SELECT * FROM ...",
|
|
"full_value": "SELECT * FROM sales WHERE ..."
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### 1.2. Debug Database API
|
|
**Endpoint**: `POST /api/tools/debug/db-api`
|
|
**Description**: Test database API connectivity and structure between two environments.
|
|
|
|
**Request Body**:
|
|
```json
|
|
{
|
|
"source_env": "dev",
|
|
"target_env": "prod"
|
|
}
|
|
```
|
|
|
|
**Response (200 OK)**:
|
|
```json
|
|
{
|
|
"source_db_count": 10,
|
|
"target_db_count": 12,
|
|
"details": {
|
|
"source_dbs": [...],
|
|
"target_dbs": [...]
|
|
}
|
|
}
|
|
```
|
|
|
|
### 1.3. Get Dataset Structure
|
|
**Endpoint**: `GET /api/tools/debug/dataset/{env}/{dataset_id}`
|
|
**Description**: Retrieve the full JSON structure of a dataset.
|
|
|
|
**Response (200 OK)**:
|
|
```json
|
|
{
|
|
"id": 123,
|
|
"table_name": "sales",
|
|
"columns": [...],
|
|
"metrics": [...]
|
|
}
|
|
```
|
|
|
|
## 2. Connection Management API
|
|
|
|
### 2.1. List Connections
|
|
**Endpoint**: `GET /api/settings/connections`
|
|
**Response (200 OK)**:
|
|
```json
|
|
[
|
|
{
|
|
"id": "uuid",
|
|
"name": "Production DWH",
|
|
"type": "postgres",
|
|
"host": "10.0.0.1",
|
|
"database": "dwh",
|
|
"username": "user",
|
|
"created_at": "2026-01-07T10:00:00Z"
|
|
}
|
|
]
|
|
```
|
|
|
|
### 2.2. Create Connection
|
|
**Endpoint**: `POST /api/settings/connections`
|
|
**Request Body**:
|
|
```json
|
|
{
|
|
"name": "Production DWH",
|
|
"type": "postgres",
|
|
"host": "10.0.0.1",
|
|
"port": 5432,
|
|
"database": "dwh",
|
|
"username": "user",
|
|
"password": "secret_password"
|
|
}
|
|
```
|
|
**Response (201 Created)**:
|
|
```json
|
|
{
|
|
"id": "uuid",
|
|
"name": "Production DWH",
|
|
"type": "postgres",
|
|
...
|
|
}
|
|
```
|
|
|
|
### 2.3. Delete Connection
|
|
**Endpoint**: `DELETE /api/settings/connections/{id}`
|
|
**Response (204 No Content)**
|
|
|
|
## 3. Task API (Existing, extended for Mapping)
|
|
|
|
### 3.1. Create Mapping Task
|
|
**Endpoint**: `POST /api/tasks`
|
|
**Request Body**:
|
|
```json
|
|
{
|
|
"plugin_id": "dataset-mapper",
|
|
"params": {
|
|
"env": "dev",
|
|
"dataset_id": 123,
|
|
"source": "postgres",
|
|
"connection_id": "uuid-of-saved-connection",
|
|
"table_name": "sales",
|
|
"table_schema": "public"
|
|
}
|
|
} |