# 查看 Secret
<subtitle>查询 Secret 元数据、检查是否存在以及分页列出 Secret。</subtitle>

所有查询接口都只返回 Secret 的元数据，**不会返回 Secret 的值**。

## 获取 Secret 信息

使用 `Secret.get_info()` 获取单个 Secret 的元数据。Secret 不存在时会抛出 `SecretNotFoundException`。

```python
from ucloud_sandbox import Secret

info = Secret.get_info("modelverse_api_key")

print(info.secret_id)   # Secret ID
print(info.name)        # 'modelverse_api_key'
print(info.version)     # 当前版本
print(info.metadata)    # {'environment': 'production'}
print(info.created_at)  # 创建时间
print(info.updated_at)  # 最后更新时间
```

返回的 `SecretInfo` 包含以下字段：

| 字段 | 说明 |
|-----|------|
| `secret_id` | Secret ID。删除后以同名重新创建时会生成新的 ID |
| `name` | Secret 名称 |
| `version` | 当前版本，Secret 引用解析到的就是这个版本 |
| `metadata` | 自定义元数据字典 |
| `created_at` | 创建时间（`datetime`） |
| `updated_at` | 最后更新时间（`datetime`） |

## 检查 Secret 是否存在

`Secret.exists()` 返回 `True` 或 `False`，不会抛出异常。在网络规则中引用某个 Secret 之前，可以用它确认该 Secret 已存在。

```python
from ucloud_sandbox import Secret

if Secret.exists("modelverse_api_key"):
    print("Secret 已存在")
```

## 列出 Secret

`Secret.list()` 返回一个分页器，可以通过 `limit` 指定每页数量。

```python
from ucloud_sandbox import Secret

paginator = Secret.list(limit=50)

while paginator.has_next:
    for secret in paginator.next_items():
        print(secret.name, secret.version, secret.metadata)
```

> 元数据用于整理 Secret（如按环境、负责人分类），它本身不是机密内容，请勿在其中存放其他凭证。
