README
🚀 为我的API服务
ServeMyAPI是一款个性化工具,可通过macOS Keychain安全存储和访问跨项目的API密钥,避免敏感信息泄露,为开发者提供更安全、统一的凭据管理方式。
🚀 快速开始
ServeMyAPI 是一个帮助开发者通过macOS钥匙串安全管理和访问其API密钥的工具。它允许用户将敏感信息存储在系统级的安全设施中,从而避免将其硬编码到代码仓库或明文保存在配置文件中。与传统的.env文件不同,ServeMyAPI 提供了一个更安全、更统一的方式来管理所有开发环境中的凭据。
✨ 主要特性
解决传统 .env 文件的安全隐患
-
防止 credentials 被 commit 到版本控制
开发者常常会不小心将包含敏感信息的.env文件提交到代码仓库,导致安全漏洞。ServeMyAPI的设计避免了这一问题,因为它从不将密钥存储在文件系统中。 -
跨项目一致性
每个项目都有自己的.env文件,这会导致凭据分散和管理混乱。通过ServeMyAPI,所有项目可以共享同一个安全的存储位置来管理 API 密钥。
增强的安全性
-
系统级加密
macOS 钥匙串使用经过验证的加密协议来保护密钥,确保即使设备被物理访问,未经授权的用户也无法解密敏感信息。 -
身份认证要求
访问钥匙串中的数据需要用户的明确授权,这在开发环境中提供了一层额外的安全保障。
安全存储与访问
- 加密存储:所有 API 密钥都通过行业标准的加密协议存储在 macOS 钥匙串中。
- 权限控制:只有经过身份验证的用户才能访问存储的密钥,防止未授权的使用。
方便的 CLI 工具
ServeMyAPI 提供了一个易于使用的命令行界面(CLI),支持存储、获取、删除 API 密钥以及列出所有存储的密钥等操作。
📦 安装指南
全局安装(推荐)
npm install -g serve-my-api
本地开发环境安装
要在特定项目中使用,可以将其作为开发依赖安装:
npm install --save-dev serve-my-api
💻 使用示例
基础用法
# 存储 API 密钥
serve-my-api store --name <KEY_NAME> --key <API_KEY>
# 获取 API 密钥
serve-my-api get --name <KEY_NAME>
# 删除 API 密钥
serve-my-api delete --name <KEY_NAME>
# 列出所有密钥
serve-my-api list
高级用法
整合到 CI/CD 管道
可以在构建过程中使用 ServeMyAPI 来安全地注入 API 密钥:
serve-my-api get --name openai-key | xargs npm run-script build
自动加载密钥
通过配置脚手架工具或框架,可以实现对 ServeMyAPI 的自动支持。例如,在 package.json 中添加:
{
"scripts": {
"start": "serve-my-api get --name openai-key | node server.js"
}
}
📚 详细文档
安全注意事项
- 加密存储:所有密钥都通过 macOS 钥匙串进行加密,确保数据安全。
- 访问控制:只有经过身份验证的用户才能访问钥匙串中的内容。
- 无明文存储:
ServeMyAPI从不将密钥以明文形式存储在文件系统中。
常见问题解答
Q: 如何确保我的密钥安全?
A: ServeMyAPI 使用 macOS 的原生钥匙串服务,这是经过严格测试和验证的安全机制。只要您妥善管理自己的系统密码,就可以保证数据安全。
Q: 支持哪些平台?
A: 目前 ServeMyAPI 仅支持 macOS 系统。Windows 和 Linux 的支持正在开发中。
Q: 我可以在生产环境中使用吗?
A: 不推荐在生产环境中直接使用 ServeMyAPI,因为这会导致构建过程依赖于本地凭据。建议将敏感信息管理集成到更专业的秘密管理系统(如 HashiCorp Vault)中。
开发与贡献
如果您希望参与项目开发或提交功能请求,请访问我们的 GitHub 仓库。
📄 许可证
ServeMyAPI 是遵循 MIT 协议的开源项目,具体许可信息请参见 LICENSE 文件。
Scan to join WeChat group