@papavault/cli
Version:
CLI tool for Papa Vault Secret Manager
136 lines (92 loc) • 2.99 kB
Markdown
# Papa Vault CLI
A command-line interface for Papa Vault Secret Manager.
## About Papa Vault
Papa Vault is a secure secret management service that helps you manage and distribute secrets across your applications and environments. Visit [papavault.com](https://papavault.com) to learn more about our service and create your account.
Key features:
- Secure secret storage and management
- Environment-based secret organization
- Project-based access control
- Easy integration with your applications
- CLI tool for local development
## Installation
```bash
npm install -g @papavault/cli
```
## Usage
### CLI Commands
```bash
# Login to Papa Vault
papavault login
# Set the current project
papavault set-project <project-id>
# Get credentials for a file
papavault get-credentials <file-path>
# List all projects
papavault list-projects
# Get project status
papavault status
# Sync credentials
papavault sync
```
### Programmatic Usage
You can also use PapaVault programmatically in your Node.js applications:
```typescript
import { PapaVault } from '@papavault/cli';
// Create a new instance
const papavault = new PapaVault({
token: 'your-api-token', // optional, can be set via environment variable
projectId: 'your-project-id', // optional, can be set later
});
// Set project ID
papavault.setProject('your-project-id');
// List all projects
const projects = await papavault.listProjects();
// Get a specific project
const project = await papavault.getProject('project-id');
// Get credential files for an environment
const credentialFiles = await papavault.getCredentialFiles('environment-id');
// Get a specific credential file
const credentialFile = await papavault.getCredentialFile('environment-id', 'file-id');
// Download a credential file
const fileContent = await papavault.downloadCredentialFile('download-url');
```
### Environment Variables
- `PAPAVAULT_TOKEN`: Your Papa Vault API token
- `PAPAVAULT_PROJECT_ID`: Default project ID
- `PAPAVAULT_API_URL`: Custom API URL (optional)
### Configuration
The CLI stores configuration in your home directory:
- Linux: `~/.config/papavault/config.json`
- macOS: `~/Library/Preferences/papavault/config.json`
- Windows: `%APPDATA%\papavault\config.json`
## Development
### Prerequisites
- Node.js 20.x or higher
- npm
### Setup
1. Clone the repository:
```bash
git clone https://github.com/papavault/cli.git
cd papavault-cli
```
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
### Available Scripts
- `npm run build` - Build the project
- `npm run start` - Run the built version
- `npm run dev` - Run in development mode
- `npm test` - Run tests
- `npm run lint` - Run ESLint
- `npm run format` - Format code with Prettier
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
ISC
## Support
For support, please open an issue in the [GitHub repository](https://github.com/papavault/cli/issues).