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. Settings → Plugins → Marketplace
  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)​

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_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
Eclipse—não suportado (roadmap)
Sublime Text—não suportado
Neovim—LSP-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 commits — Replace inline é apenas para debug local. Em arquivos commitados, mantenha {{cv:...}} placeholder