2 个版本
0.1.1 | 2023 年 4 月 8 日 |
---|---|
0.1.0 | 2023 年 4 月 8 日 |
#17 in #secrets
50KB
1.5K SLoC
infisical-api
lib.rs
:
infisical_api
注意:此包的作者非常新,很可能犯了许多错误。请随意为此包的任何可改进之处提交问题或拉取请求。
infisical-api
包提供了一个围绕 Infisical API 的 [Client] 包装器。客户端提供了 Infisical API 的所有功能,包括
- 更新密钥
- 访问密钥
- 密钥回滚
- 项目管理
infisical_api 基于 reqwest 构建,并使用异步功能。需要异步运行时才能运行。未来可能会提供允许使用阻塞调用的功能。
该包还包括用于轻松加密和解密密钥的实用函数
可以通过创建客户端并提供建设项目的 workspace id 以及环境(dev、test、prod 等)来执行简单的密钥检索。
let client = infisical_api::Client::new("Your API key here")?;
let secrets = client.get_encrypted_project_secrets("Your Infisical workspace ID", "Environment here");
Client
默认为 Infisical 云 API 端点,但提供了一个 ClientBuilder
,以提供更多灵活性。它允许设置自定义 API 基础 URL 和自定义 Reqwest ClientBuilder。
let reqwest_client_builder = reqwest::Client::builder();
// ...
// Configure reqwest_client_builder as needed
// ...
let client = infisical_api::ClientBuilder::new()
.api_base("Your custom API endpoint")
.reqwest_client_builder(reqwest_client_builder)
.build("Your API key");
如果需要,该包还提供在检索后解密密钥的选项。
let client = infisical_api::Client::new("Your API key here")?;
let secrets = client
.get_decrypted_project_secrets("Your Infisical workspace ID", "Environment here", "Your project key").await?;
建议您提前确定项目密钥,因为它对于加密和解密功能是必需的。
let client = infisical_api::Client::new("Your API key here")?;
let private_key = client
.get_user_decrypted_private_key("Your infisical password here")
.await?;
let project_key = client
.get_decrypted_project_key("Infisical workspace ID", &private_key)
.await?;
依赖关系
~6–21MB
~282K SLoC