保险库AI
用于HashiCorp Vault的React web界面与混合MCP(模型上下文协议)集成-将传统的API操作与人工智能辅助的自然语言工作流相结合,用于机密管理、身份验证和策略操作。
主要特点
- 秘密管理 --浏览、创建、更新和删除带有版本历史记录的KV机密
- 认证 --基于令牌的登录,具有会话管理和自动续订功能
- AI聊天助手 --通过MCP代理进行Vault操作的自然语言界面
- 基于角色的访问 --具有预配置用户和策略的演示环境
建筑
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ │ │ │ │ │
│ Vault AI Web │────►│ MCP Proxy │────►│ HashiCorp Vault │
│ (React SPA) │ │ (Node.js) │ │ Server │
│ │────►│ │ │ │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ ▲
└────────────── Direct HTTP API ─────────────────────────┘UI通过两条路径与Vault通信:
- 直接HTTP API -通过Vault REST API执行的传统CRUD操作
- MCP代理 -使用Anthropic的API通过Node.js代理执行AI辅助操作
技术栈
| 层 | 技术 |
|---|---|
| 前端 | React 18、TypeScript、Vite |
| 状态 | 状态, TanStack Query |
| 造型 | 顺风CSS,Radix UI |
| 人工智能集成 | Anthropic SDK、MCP代理 |
| 部署 | Docker、nginx、Kubernetes |
快速开始
先决条件
- Docker 24.0+和Docker Compose 2.20+
- HashiCorp保险库1.12+(可通过HTTPS访问)
安装
# Clone the repository
git clone https://github.com/linuxus/vault-ai.git
cd vault-ai
# Configure environment
cp .env.example .env
# Edit .env with your Vault address and Anthropic API key
# Build and run
docker compose up -d
# Access the UI
open http://localhost:3000项目结构
vault-ai/
├── src/
│ ├── components/ # Reusable UI components
│ ├── features/ # Feature modules
│ │ ├── auth/ # Authentication
│ │ ├── chat/ # AI chat assistant
│ │ └── secrets/ # Secrets management
│ ├── hooks/ # Custom React hooks
│ ├── services/ # API clients (Vault, MCP)
│ ├── stores/ # Zustand state management
│ ├── types/ # TypeScript definitions
│ └── utils/ # Utility functions
├── mcp-proxy/ # MCP proxy server (Node.js)
├── scripts/ # Setup and demo scripts
├── docs/ # Documentation
├── docker-compose.yml
├── Dockerfile
└── nginx.conf发展
# Install dependencies
npm install
# Start development server
npm run dev
# Run tests
npm test
# Build for production
npm run build环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
VAULT_ADDR | Vault服务器URL | 是 |
ANTHROPIC_API_KEY | 人工智能功能的Anthropic API密钥 | 是 |
VAULT_SKIP_VERIFY | 跳过TLS验证(仅限开发人员) | 否 |
VITE_APP_TITLE | 浏览器选项卡标题 | 否 |
文档
| 文档 | 描述 |
|---|---|
| 技术规格 | 架构和实施细节 |
| 设计系统 | UI组件和样式指南 |
| MCP集成 | AI助手和MCP代理集成 |
| 部署指导 | Docker部署 |
| Kubernetes指南 | 使用Kind进行Kubernetes部署 |
安全
- 存储在中的保险库令牌
sessionStorageonly--从不持久化到磁盘 - 生产中的Vault连接需要TLS
- 已启用内容安全策略标头
- 浏览器存储中没有秘密缓存
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
该项目根据MIT许可证获得许可——请参阅 许可证 文件以获取详细信息。
致谢
- HashiCorp保险库 --秘密管理
- 模型上下文协议 --AI集成标准
- Anthropic --AI助手功能
