# Security Policy

## Reporting Security Issues

If you discover a security vulnerability in bd, please report it responsibly:

**Email**: security@steveyegge.com (or open a private security advisory on GitHub)

Please include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)

We will respond within 48 hours and work with you to address the issue.

## Security Considerations

### Database Security

bd stores issue data locally in:
- SQLite databases (`.beads/*.db`) - local only, gitignored
- JSONL files (`.beads/issues.jsonl`) - committed to git

**Important**:
- Do not store sensitive information (passwords, API keys, secrets) in issue descriptions or metadata
- Issue data is committed to git and will be visible to anyone with repository access
- bd does not encrypt data at rest (it's a local development tool)

### Git Workflow Security

- bd uses standard git operations (no custom protocols)
- Export/import operations read and write local files only
- No network communication except through git itself
- Git hooks (if used) run with your local user permissions

### Command Injection Protection

bd uses parameterized SQL queries to prevent SQL injection. However:
- Do not pass untrusted input directly to `bd` commands
- Issue IDs are validated against the pattern `^[a-z0-9-]+$`
- File paths are validated before reading/writing

### Dependency Security

bd has minimal dependencies:
- Go standard library
- SQLite (via modernc.org/sqlite - pure Go implementation)
- Cobra CLI framework

All dependencies are regularly updated. Run `go mod verify` to check integrity.

## Supported Versions

We provide security updates for:

| Version | Supported          |
| ------- | ------------------ |
| main    | :white_check_mark: |
| < 1.0   | :x:                |

Once version 1.0 is released, we will support the latest major version and one previous major version.

## Best Practices

1. **Don't commit secrets** - Never put API keys, passwords, or credentials in issue descriptions
2. **Review before export** - Check `.beads/issues.jsonl` before committing sensitive project details
3. **Use private repos** - If your issues contain proprietary information, use private git repositories
4. **Validate git hooks** - If using automated export/import hooks, review them for safety
5. **Regular updates** - Keep bd updated to the latest version: `go install github.com/steveyegge/beads/cmd/bd@latest`

## Known Limitations

- bd is designed for **development/internal use**, not production secret management
- Issue data is stored in plain text (both SQLite and JSONL)
- No built-in encryption or access control (relies on filesystem permissions)
- No audit logging beyond git history

For sensitive workflows, consider using bd only for non-sensitive task tracking.

## Security Updates

Security updates will be announced via:
- GitHub Security Advisories
- Release notes on GitHub
- Git commit messages (tagged with `[security]`)

Subscribe to the repository for notifications.
