Metadata-Version: 2.4
Name: gld-nova-cli
Version: 0.1.0
Summary: Nova CLI - 数据集查询命令行工具
Author: Nova Team
License-Expression: MIT
Project-URL: Homepage, https://github.com/your-org/nova-cli
Keywords: gld,nova,cli,dataset,query,glodon
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1
Requires-Dist: requests>=2.31
Requires-Dist: rich>=13.0

# nova-cli

数据集查询命令行工具，调用 `POST /jsf-app/mcpDataSet/dataSetView/query` 接口。

## 安装

```bash
cd nova-cli
pip install -e .
```

## 配置

```bash
# 设置租户和 Token（首次使用必须配置）
nova-cli config set --tenant-id 139494637174848 --token <your_token>

# 修改 API 地址（可选，默认 https://xny-test.glodon.com）
nova-cli config set --base-url https://xny-test.glodon.com

# 查看当前配置
nova-cli config show
```

配置也支持环境变量覆盖：

| 环境变量 | 对应配置 |
|---|---|
| `NOVA_BASE_URL` | base_url |
| `NOVA_TENANT_ID` | tenant_id |
| `NOVA_TOKEN` | token |

配置文件位置：`~/.nova-cli/config.json`

## 查询

```bash
# 从命令行直接传 JSON
nova-cli query '{"dataSetCode":"xiangmu","dataSetViewCode":"xiangmu_pingpu","queryCondition":{"whereConditions":[{"name":"create_time","values":["''2025-05-01 00:00:00''","''2025-05-31 23:59:59''"],"operator":"BETWEEN"}]}}'

# 从文件读取请求体
nova-cli query -f request.json

# 简写参数（自动构造最小请求体）
nova-cli query -d xiangmu -v xiangmu_pingpu

# 输出到文件
nova-cli query -f request.json -o result.json

# 原始 JSON 输出（适合管道）
nova-cli query -f request.json --raw | jq .

# 临时覆盖认证信息
nova-cli query -f req.json --tenant-id 123 --token abc
```

## 快速测试

```bash
# 使用内置示例 body 发起查询
nova-cli demo
```

## 请求体结构

```json
{
  "dataSetCode": "xiangmu",
  "dataSetViewCode": "xiangmu_pingpu",
  "queryCondition": {
    "whereConditions": [
      {
        "name": "create_time",
        "values": ["'2025-05-01 00:00:00'", "'2025-05-31 23:59:59'"],
        "operator": "BETWEEN"
      },
      {
        "name": "tenant_id",
        "values": "139494637174848",
        "operator": "EQUALS"
      }
    ],
    "dimensions": ["business_type"]
  }
}
```

## 请求头

| Header | 值 | 来源 |
|---|---|---|
| `Content-Type` | `application/json` | 固定 |
| `x-coral-tenant` | 租户 ID | config `tenant_id` |
| `Authorization` | `Bearer <token>` | config `token` |
