🔐
Env Sidecar
magic-md-env-backend按规则读取环境变量并进行安全输出,避免敏感信息扩散。
rustJSON-RPC 2.0Sidecar
概述
Env Sidecar 是一个轻量级的 Rust 后端进程,专门用于安全地读取系统环境变量。通过 Sidecar 而非直接在前端 JavaScript 中读取,既保证了跨平台一致性,又增加了安全隔离层。使用 JSON-RPC 2.0 协议通过 stdin/stdout 通信。
特性
- ✓ 极简依赖,编译体积小
- ✓ 支持按名称批量读取环境变量
- ✓ 安全隔离,前端无法直接访问系统变量
技术栈
- ✓ serde / serde_json — JSON 序列化
- ✓ std::env — 标准库环境变量读取
通信协议
使用 LSP 风格的 Content-Length 帧格式进行消息交换:
Content-Length: 123\r\n\r\n{"jsonrpc":"2.0","id":1,"method":"env/get","params":{...}}能力 (Capabilities)
| 方法 | 说明 |
|---|---|
env/get | 读取指定名称的环境变量 |
env/get
读取指定名称的环境变量
| 参数 | 类型 |
|---|---|
names | string[] — 要读取的环境变量名称列表 |
{
"names": [
"DATABASE_HOST",
"DATABASE_PORT",
"DATABASE_NAME"
]
}{
"DATABASE_HOST": "localhost",
"DATABASE_PORT": "5432",
"DATABASE_NAME": "myapp"
}构建
cd sidecars/env
cargo build --release
# 产出: target/release/magic-md-env-backend架构
Editor (Tauri) │ ├── stdin ──▶ magic-md-env-backend │ │ │ ├─ initialize │ ├─ env/get │ └─ shutdown │ └── stdout ◀── JSON-RPC responses
systemenvironment