Skip to content

Repository files navigation

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

Contributing

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

Support

For issues and feature requests, please use the GitHub issue tracker.

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.

About

Secrets and password manager

Resources

Stars

26 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages