Skip to content

Latest commit

 

History

History
235 lines (165 loc) · 8.33 KB

File metadata and controls

235 lines (165 loc) · 8.33 KB

Playground Demo Link

Frappe Vault

Secrets and password management application. Securely store, share, and manage sensitive credentials within your Frappe/ERPNext portal.

Features

  • Secure Storage: Store passwords, API keys, SSH keys, notes, credit cards, databases, and media files with encryption
  • Folders: Organize secrets in a tree-based folder structure
  • Access Logging: Track who accessed which secrets and when
  • Sharing: Share secrets with specific users or roles
  • Bookmarks: Mark frequently used secrets as bookmarks
  • Dashboard: Visual overview with statistics and charts
  • REST API: Full API access for browser extensions and integrations

Compatibility

This app is compatible with Frappe Framework:

Vault Branch Stability Frappe Branch
main - v1.x Stable v15.x & v16.x
develop - future/v2.x Unstable develop

Installation

Prerequisites

  • Frappe Framework v15+
  • An active Frappe/ERPNext site

Install via Bench

# Get the app
bench get-app https://github.com/lubusIN/frappe-vault.git

# Install on your site
bench --site your-site.local install-app frappe_vault

Development Installation

# Clone the repository
cd ~/frappe-bench/apps
git clone https://github.com/lubusIN/frappe-vault.git

# Install the app
bench --site your-site.local install-app frappe_vault

# Enable developer mode (optional, for development)
bench --site your-site.local set-config developer_mode 1

Configuration

Encryption Key

Frappe Vault uses Frappe's built-in encryption which relies on the site's encryption key. This is automatically configured when you set up your Frappe site.

To verify your encryption key is set:

bench --site your-site.local console
>>> from frappe.utils.password import get_encryption_key
>>> bool(get_encryption_key())  # Should return True

If you need to set an encryption key manually:

bench --site your-site.local set-config encryption_key "your-secure-32-byte-key-here"

Important: Keep your encryption key secure and backed up. Losing it means losing access to all encrypted secrets.

Roles and Permissions

Frappe Vault uses two custom roles:

  • Vault User: Can create, read, update, and share their own secrets and folders
  • Vault Admin: Administrative access to vault settings, policies, and audit logs

Assign these roles to users through the User DocType or Role Permissions Manager.

Usage

Creating Secrets

  1. Navigate to Frappe Vault > Vault Secret > New
  2. Enter a title and select the secret type
  3. Fill in the credentials (password, API key, etc.)
  4. Optionally assign a folder and tags
  5. Save

Sharing Secrets

  1. Open a secret
  2. Go to the Sharing section
  3. Add users or roles with read/write permissions
  4. Set an optional expiration date

REST API

All secrets are accessible via REST API for integration with other applications.

# Get all secrets
curl -X GET "https://your-site.local/api/method/frappe_vault.api.secrets.list" \
  -H "Authorization: token api_key:api_secret"

# Get a specific secret with decrypted password
curl -X POST "https://your-site.local/api/method/frappe_vault.api.secrets.decrypt" \
  -H "Authorization: token api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{"name": "VS-0001"}'

# Create a new secret
curl -X POST "https://your-site.local/api/method/frappe_vault.api.secrets.create" \
  -H "Authorization: token api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{"title": "My Secret", "secret_type": "Password", "password": "hunter2"}'

DocTypes

Vault Secret

Main document for storing credentials.

Field Type Description
title Data Name/title of the secret
secret_type Select Password, API Key, Note, SSH Key, Media, Credit Card, Database, Other
folder Link Reference to Vault Folder
url Data Associated website/service URL
username Data Username for the credential
password Password Encrypted password field
api_key Data API key (for API Key type)
api_secret Password Encrypted API secret
notes Text Editor Additional notes
is_bookmark Check Mark as bookmark
password_strength Select Calculated password strength

Vault Folder

Organize your secrets into logical groups using folders.

Vault Access Log

Read-only audit log tracking all secret access.

Security

  • All passwords and secrets are encrypted using Frappe's built-in AES encryption
  • Encryption relies on the site's encryption key stored in site_config.json
  • Role-based access control (RBAC) using Frappe's Permission Manager
  • Access logging for audit compliance
  • Secrets are only accessible by owners or explicitly shared users/roles

Please do not report security vulnerabilities publicly. Contact us privately instead.

Support

Frappe Vault is a free and open-source project maintained by LUBUS.

For bugs, feature requests, and community support, please use GitHub Issues. Our team reviews and addresses issues based on availability and project priorities, so we cannot guarantee response or resolution timelines for community support.

If your organization needs dedicated assistance, implementation help, customization, or priority support, get in touch with LUBUS.

Contributing

Contributions are welcome! Please feel free to submit issues or Pull Request.

More Frappe Tools

Explore more open-source tools we're building for the Frappe ecosystem.

Frappe Local
Create and manage local Frappe benches and sites visually.
Frappe Playground
Run Frappe entirely in your browser.
Frappe Brewery
Discover community-built apps for Frappe.
WP Frappe Data Store
Connect WordPress and Frappe with a React data store.

Explore all LUBUS projects →

Meet Your Artisans

LUBUS is a web design agency based in Mumbai.

License

Frappe Vault is open-sourced licensed under the MIT License.