> ## Documentation Index
> Fetch the complete documentation index at: https://ppio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 创建 Secret

`ppio.secret.create()` 创建一个团队级 Secret 及其第一个不可变版本。它返回 `SecretBinding` 元数据，不包含真实值。`hosts` 允许列表控制在出站 HTTPS 请求上真实值可以被替换到哪些主机。

## 示例

该示例创建一个 Secret，启动一个通过 `secret_envs` 引用它的沙箱，在沙箱内使用占位符调用允许列表中的主机，并在完成后销毁沙箱。

<CodeGroup>
  ```python Python theme={null}
  from ppio_sandbox import PPIO

  ppio = PPIO()

  secret_name = "<your-secret-name>"

  ppio.secret.create(
      name=secret_name,
      value="<your-value>",
      hosts=["api.openai.com"],
      description="Sandbox Secrets example",
  )

  ```

  ```javascript JavaScript & TypeScript theme={null}
  import { PPIO } from 'ppio-sandbox'

  const ppio = new PPIO()

  const secretName = '<your-secret-name>'

  await ppio.secret.create({
    name: secretName,
    value: '<your-value>',
    hosts: ['api.openai.com'],
    description: 'Sandbox Secrets example',
  })
  ```

  ```bash CLI theme={null}
  # 直接设置 value
  ppio secret create <secret_name> --host <host> --from-value <secret_value>

  # 从环境变量读取 value
  ppio secret create <secret_name> --host <host> --from-env <env_name>

  # 从标准输入输出设置 value
  ppio secret create <secret_name> --host <host> --from-stdin

  # 以管道的方式设置 value
  echo "value" | ppio secret create <secret_name> --host <host> --from-stdin
  ```
</CodeGroup>

## 参数

| 参数            | 说明                                                           |
| ------------- | ------------------------------------------------------------ |
| `name`        | Secret 名称，在当前团队的活跃 Secret 中唯一。                               |
| `value`       | 要存储的真实凭证。它会被加密，且绝不会由 API 返回。                                 |
| `hosts`       | 允许替换真实值的主机允许列表。至少一个主机；仅限主机名（不含协议、路径、端口或查询参数）。通配符仅支持 `*.` 前缀。 |
| `description` | 可选的人类可读描述。                                                   |

<Note>
  如果当前团队中已存在同名的活跃 Secret，调用会返回 `409 Conflict`。`ppio.secret.create()` 只返回 `SecretBinding` 元数据——绝不会返回真实值。
</Note>
