Metadata-Version: 2.4
Name: pocketvault-client
Version: 0.1.1
Summary: Python client for PocketVault secret manager
Home-page: https://github.com/pattipeilohy/pocketvault
Author: Tendy Rivaldo
Author-email: itupatti@gmail.com
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-python
Dynamic: summary

# pocketvault-client

Python client for [PocketVault](https://github.com/pattipeilohy/pocketvault) — a lightweight self-hosted secret manager.

## Features

- Zero external dependencies (stdlib only)
- In-memory cache with optional auto-refresh
- Thread-safe
- Inject secrets directly into `os.environ`

## Installation

```bash
pip install pocketvault-client
```

## Usage

```python
from pocketvault import PocketVault

vault = PocketVault(
    url="https://vault.example.com",
    token="your-project-api-token",
    environment="production",
    refresh_interval=60,  # optional: re-fetch every 60 seconds
)

# Get a single secret
db_url = vault.get("DATABASE_URL")

# Get with default value
redis_url = vault.get("REDIS_URL", "redis://localhost:6379")

# Get all secrets as dict
all_secrets = vault.all()

# Inject all secrets into os.environ
vault.to_env()

# Force reload
vault.load()
```

## API

| Method | Description |
|--------|-------------|
| `get(key, default=None)` | Get a single secret value |
| `all()` | Get all secrets as dict |
| `load()` | Force fetch from PocketVault API |
| `to_env()` | Inject all secrets into `os.environ` |

## Requirements

- Python 3.7+
- A running PocketVault instance

## License

MIT
