IDE plugins
A partir da v4.5, o CipherVault tem plugins oficiais para os dois IDE ecossistemas dominantes:
- VS Code — TypeScript, distribuído via VS Code Marketplace
- JetBrains — Kotlin, distribuído via JetBrains Marketplace (compatível com IntelliJ IDEA, PyCharm, GoLand, Rider, WebStorm, RubyMine, PhpStorm)
Funcionalidades
Tree view
Lista vaults / paths / secrets acessíveis ao usuário autenticado. Filtra por busca substring. Ícones por tipo (api_key, database, ssh_key, etc.).
CodeLens em {{cv:vault/path}} placeholders
Em qualquer arquivo (.yaml, .env, .tf, .json, etc.), o plugin
detecta padrão {{cv:vault_name/path/to/secret}} e exibe:
billing-api.yaml
─────────────
api_key: {{cv:producao/api/stripe/secret_key}}
▲ "sk_live_..." Replace inline Copy to clipboard
Hover mostra preview do valor (último 4 chars), nome do dono, data da última rotação. Click em "Replace inline" substitui pelo valor real (útil para debugging local).
Auto-detect de projeto
Plugin procura .ciphervault.yml no project root:
url: https://cv.acme.com.br
default_vault: producao
oidc:
provider: github-actions
audience: https://cv.acme.com.br
Sem esse arquivo, plugin pede config no primeiro uso.
Authentication
OAuth Device Flow — clica "Login", IDE abre browser, autoriza no CV, volta. Sem PAT no IDE.
Refresh automático via refresh token. Logout via comando cv: Logout.
Comandos disponíveis
| VS Code | JetBrains | Ação |
|---|---|---|
Cmd+Shift+V (Ctrl+Shift+V Win/Linux) | Alt+Shift+V | Inserir secret no cursor (picker) |
cv: Login | CV: Login | OAuth flow |
cv: Logout | CV: Logout | Limpar credenciais |
cv: Refresh tree | CV: Refresh | Re-fetch vaults |
cv: Switch vault | CV: Switch Vault | Mudar default vault da sessão |
cv: Open in browser | CV: Open in Browser | Abrir secret na UI web |
Instalação
VS Code
- Abra Extensions (
Cmd/Ctrl+Shift+X) - Busque
CipherVault - Install
Ou via CLI:
code --install-extension ciphervault.ciphervault-vscode
JetBrains
- Settings → Plugins → Marketplace
- Busque
CipherVault - Install + restart IDE
Ou via JetBrains Marketplace web → "Install to IDE".
Primeiro uso
1. Abra um projeto
2. Cmd+Shift+P → "CipherVault: Login"
3. Cole URL do CV (https://cv.acme.com.br)
4. Browser abre, autoriza
5. Tree view aparece com seus vaults
6. Cmd+Shift+V em qualquer arquivo → picker
Configuração avançada
.ciphervault.yml (project-level)
url: https://cv.acme.com.br
default_vault: producao
allowed_vaults: [producao, staging, desenvolvimento]
oidc:
provider: github-actions
audience: https://cv.acme.com.br
auto_insert_template: '{{cv:{{vault}}/{{path}}}}' # custom template
Settings (VS Code settings.json)
{
"ciphervault.url": "https://cv.acme.com.br",
"ciphervault.defaultVault": "producao",
"ciphervault.previewLength": 8,
"ciphervault.autoLogin": true,
"ciphervault.treeView.refreshIntervalSeconds": 60
}
Settings (JetBrains)
Settings → Tools → CipherVault:
- URL
- Default vault
- Preview length
- Auto-refresh interval
Segurança
- Sem cache local de valores de secret (apenas metadata)
- Tokens OAuth criptografados via Credential Manager do OS (Keychain macOS, Credential Vault Windows, libsecret Linux)
- Tokens expiram com refresh token rotation
- Audit log registra cada
secret_vieweddo IDE comsource: "vscode"ou"jetbrains" - Sem persistência no projeto —
.ciphervault.ymltem apenas config, nunca credenciais
Limitações
- Sem suporte a Fortress break-glass — plugin não solicita aprovação Approvals automatically; use a UI web pra essas operações
- Sem suporte a Dynamic Secrets lease — apenas leitura de secrets persistentes
- Tree view limitado a 1000 secrets por vault — pagine na UI web para vaults maiores
Compatibilidade
| IDE | Versão mínima | Status |
|---|---|---|
| VS Code | 1.85 | GA |
| Cursor | 0.45 | GA (via VS Code marketplace) |
| IntelliJ IDEA | 2024.1 | GA |
| PyCharm | 2024.1 | GA |
| GoLand | 2024.1 | GA |
| Rider | 2024.1 | GA |
| WebStorm | 2024.1 | GA |
| RubyMine | 2024.1 | GA |
| PhpStorm | 2024.1 | GA |
| Eclipse | — | não suportado (roadmap) |
| Sublime Text | — | não suportado |
| Neovim | — | LSP-based plugin community-mantido (não oficial) |
Boas práticas
.ciphervault.ymlversionado no repo — onboarding de novos devs trivialallowed_vaultsprevine erros de produção quando dev mira o vault errado- Logout em laptops compartilhados — comando
cv: Logout - Não substitua valor inline em commits —
Replace inlineé apenas para debug local. Em arquivos commitados, mantenha{{cv:...}}placeholder