-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Add 1Password as optional secret store backend
Currently agent_secrets only supports the macOS Keychain (via security-framework) with a no-op fallback on other platforms. This limits cross-platform secret management and doesn't support team/shared vault workflows.
Goal
Add 1Password as an alternative SecretStore backend, selectable at runtime via SHADI_SECRET_BACKEND=onepassword env var.
Approach
- New
OnePasswordStoreimplementing the existingSecretStoretrait - Uses the
opCLI (std::process::Command) — same pattern ascargo-credential-1passwordin the Rust toolchain (no official 1Password Rust SDK exists) - Items stored as "Secure Note" in a configurable vault (
SHADI_OP_VAULT, defaultshadi), taggedshadi - Supports both interactive auth (1Password desktop app) and headless/CI (
OP_SERVICE_ACCOUNT_TOKEN) - Gated behind
onepasswordCargo feature flag - Fully backward compatible — no env var means existing OS keychain behavior
Scope
-
crates/agent_secrets/src/platform/onepassword.rs— new backend - Runtime backend selection in
platform/mod.rs - Feature flag +
serde_jsondep inCargo.toml - Enable feature in
shadictlandshadi_py - Config + docs updates
- Unit tests (JSON parsing, command building, error mapping)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done