Pular para o conteúdo principal

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 CodeJetBrainsAção
Cmd+Shift+V (Ctrl+Shift+V Win/Linux)Alt+Shift+VInserir secret no cursor (picker)
cv: LoginCV: LoginOAuth flow
cv: LogoutCV: LogoutLimpar credenciais
cv: Refresh treeCV: RefreshRe-fetch vaults
cv: Switch vaultCV: Switch VaultMudar default vault da sessão
cv: Open in browserCV: Open in BrowserAbrir secret na UI web

Instalação

VS Code

  1. Abra Extensions (Cmd/Ctrl+Shift+X)
  2. Busque CipherVault
  3. Install

Ou via CLI:

code --install-extension ciphervault.ciphervault-vscode

JetBrains

  1. SettingsPluginsMarketplace
  2. Busque CipherVault
  3. 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)

SettingsToolsCipherVault:

  • 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_viewed do IDE com source: "vscode" ou "jetbrains"
  • Sem persistência no projeto — .ciphervault.yml tem 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

IDEVersão mínimaStatus
VS Code1.85GA
Cursor0.45GA (via VS Code marketplace)
IntelliJ IDEA2024.1GA
PyCharm2024.1GA
GoLand2024.1GA
Rider2024.1GA
WebStorm2024.1GA
RubyMine2024.1GA
PhpStorm2024.1GA
Eclipsenão suportado (roadmap)
Sublime Textnão suportado
NeovimLSP-based plugin community-mantido (não oficial)

Boas práticas

  • .ciphervault.yml versionado no repo — onboarding de novos devs trivial
  • allowed_vaults previne erros de produção quando dev mira o vault errado
  • Logout em laptops compartilhados — comando cv: Logout
  • Não substitua valor inline em commitsReplace inline é apenas para debug local. Em arquivos commitados, mantenha {{cv:...}} placeholder