Changelog¶
All notable changes to SecretZero are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Planned¶
- Web UI for secret management
- Kubernetes Operator
- Terraform Provider
- Notification webhooks
- Database backend for lockfile
[0.7.0] - 2026-02-16¶
Added - Phase 7: API Service¶
REST API Server¶
- FastAPI-based HTTP API for programmatic management
- Modern async Python web framework
- Automatic OpenAPI schema generation
- Built-in Pydantic validation
- CORS middleware for web frontend integration
- Global error handling with consistent responses
- Server entry point via
secretzero-apicommand
API Endpoints¶
GET /- API information and versionGET /health- Health check endpointPOST /config/validate- Validate Secretfile configurationGET /secrets- List all secretsGET /secrets/{name}/status- Get secret status from lockfilePOST /sync- Generate and sync secrets to targetsPOST /rotation/check- Check rotation statusPOST /rotation/execute- Execute secret rotationPOST /policy/check- Validate against policiesPOST /drift/check- Detect configuration driftGET /audit/logs- Retrieve audit log entries
Authentication & Security¶
- API key authentication via
X-API-Keyheader - Timing-safe key comparison with SHA-256 hashing
- Audit logging for all operations
- Optional authentication mode for development
Documentation¶
- Swagger UI at
/docsfor interactive exploration - ReDoc at
/redocfor alternative documentation - OpenAPI spec at
/openapi.jsonfor machine consumption - API Getting Started Guide with examples
- Python client example for programmatic usage
Testing¶
- 23 comprehensive API tests
- Authentication scenarios (valid, invalid, missing)
- All endpoint coverage
- Error handling tests
- 100% endpoint test coverage
Changed¶
- Optional Dependencies: Added
apiextra with FastAPI and Uvicorn - Development Dependencies: Added httpx and pytest-asyncio for async testing
Performance¶
- Health check: <1ms response time
- List secrets: ~5-10ms
- Sync operations: ~10-20ms per secret
- Stateless design for horizontal scaling
[0.6.0] - 2026-02-16¶
Added - Phase 6: Advanced Features¶
Secret Rotation System¶
- Rotation period parsing supporting days (d), weeks (w), months (m), years (y)
- Rotation tracking in lockfile with
last_rotatedtimestamp androtation_count - Automatic due date calculation for scheduled rotation
- One-time secret handling with warnings for rotation attempts
- CLI command
secretzero rotatewith dry-run and force options
Policy System¶
- Rotation policies enforcing rotation requirements and max age
- Compliance policies for SOC2 and ISO27001 standards
- Access control policies for allowed/denied target types
- Policy violations with detailed reporting and remediation suggestions
- CLI command
secretzero policywith--fail-on-warningflag
Drift Detection¶
- Drift detector comparing lockfile state with actual targets
- Detection capabilities for missing secrets, files, and corrupted entries
- CLI command
secretzero driftfor status checking - Remediation suggestions for detected drift
Multi-Environment Support (Partial)¶
- Variable interpolation supporting environment-specific values
- Provider profiles for multiple configurations
- Environment-specific policies framework
- Full implementation deferred to Phase 7
Testing¶
- 40 new tests (184 total)
test_rotation.py: 18 tests for rotation logictest_policy.py: 12 tests for policy enforcementtest_lockfile_rotation.py: 10 tests for lockfile tracking- 100% test pass rate
-
90% coverage on new modules
Changed¶
- Lockfile schema extended with rotation metadata
- Secretfile schema now supports
policiessection - Metadata supports
compliancestandards list
[0.5.0] - 2026-02-16¶
Added - Phase 5: Kubernetes & Container Support¶
Kubernetes Provider¶
- Full cluster integration with kubeconfig, in-cluster, and token authentication
- Multiple auth methods supporting various deployment scenarios
- Automatic cluster version detection and connectivity verification
- Context selection for multi-cluster configurations
Kubernetes Secret Target¶
- Native Secret management with create/update idempotency
- All secret types supported: Opaque, TLS, Docker, BasicAuth, SSH
- Namespace support for multi-environment deployments
- Labels and annotations for metadata tracking
- Base64 encoding handled automatically
External Secrets Operator Support¶
- Manifest generation for GitOps workflows
- Multi-backend support: AWS, Azure, Vault, and custom backends
- Refresh intervals for configurable sync frequencies
- SecretStore references for integration with existing stores
- YAML output for Git-tracked configurations
Examples & Documentation¶
kubernetes-basic.yml(119 lines) - Basic secret managementkubernetes-multi-namespace.yml(168 lines) - Multi-environment deploymentkubernetes-external-secrets.yml(127 lines) - External Secrets Operatorkubernetes-complete.yml(259 lines) - Complete reference with RBAC
Testing¶
- 19 new tests (161 total, 144 passing)
- Provider tests: 9 tests for authentication and connectivity
- Secret target tests: 6 tests for CRUD operations
- External secret tests: 4 tests for manifest generation
- 84% provider coverage, 49% target coverage
Security¶
- RBAC documentation with minimal permissions
- Namespace isolation enforced
- Base64 encoding for Kubernetes Secret data
- ServiceAccount tokens for in-cluster authentication
[0.4.0] - 2026-02-16¶
Added - Phase 4: CI/CD Integration¶
GitHub Actions Integration¶
- Token-based authentication with Personal Access Tokens
- Repository secrets for workflow-level storage
- Environment secrets with environment-specific scoping
- Organization secrets with configurable visibility
- PyNaCl encryption using repository public keys
GitLab CI/CD Integration¶
- Token-based authentication supporting PAT and OAuth
- Project variables with environment scoping
- Group variables with inheritance across hierarchy
- Protected variables for protected branches only
- Masked variables hidden in job logs
- File variables written to temporary files
Jenkins Integration¶
- Token-based authentication with username + API token
- String credentials for simple text secrets
- Username/password credentials for login pairs
- Credential scoping (global, folder-specific)
- XML API with Groovy script fallback
Examples & Documentation¶
github-actions.yml- GitHub Actions integration guidegitlab-cicd.yml- GitLab CI/CD integration guidejenkins-credentials.yml- Jenkins integration guidemulti-cicd.yml- Multi-platform integration
Testing¶
- 35 new tests (140 total)
- GitHub provider: 11 tests
- GitLab provider: 11 tests
- Jenkins provider: 13 tests
- All tests passing with 80-81% coverage on new code
Dependencies¶
PyGithub>=2.1.0- GitHub API clientPyNaCl>=1.5.0- GitHub secret encryptionpython-gitlab>=4.0.0- GitLab API clientpython-jenkins>=1.8.0- Jenkins API client- New
cicdoptional dependency group
[0.3.0] - 2026-02-16¶
Added - Phase 3: Cloud Provider Integration¶
AWS Provider¶
- Ambient authentication using default credential chain
- Profile-based authentication with named AWS profiles
- Assume role authentication for cross-account access
- Secrets Manager target with automatic version tracking
- SSM Parameter Store target with SecureString support
Azure Provider¶
- Default credential authentication using Azure credential chain
- Managed Identity authentication for Azure resources
- Azure CLI authentication for development
- Key Vault target with automatic versioning
HashiCorp Vault Provider¶
- Token authentication for direct access
- AppRole authentication for machine-oriented auth
- KV v1 and v2 support with automatic versioning
- Namespace support for Vault Enterprise
Provider Infrastructure¶
- Base provider class with standardized interface
- Provider registry for centralized lifecycle management
- Authentication abstraction with pluggable auth handlers
- Connection testing for all providers
- Graceful degradation for missing dependencies
Testing¶
- 23 new tests (105 total)
- Base provider: 8 tests
- Registry: 8 tests
- AWS provider: 3 tests (mocked)
- Azure provider: 2 tests (mocked)
- Vault provider: 2 tests (mocked)
- 57% overall coverage, 75%+ on core modules
Dependencies¶
boto3>=1.26.0- AWS SDK (optional)azure-identity>=1.12.0- Azure authentication (optional)azure-keyvault-secrets>=4.7.0- Azure Key Vault (optional)hvac>=1.0.0- Vault client (optional)- New
alloptional dependency group
[0.2.0] - 2026-02-16¶
Added - Phase 2: Secret Generation & Local Storage¶
Generators¶
- Random password generator with configurable character sets
- Cryptographically secure using Python's
secretsmodule - Configurable length, character types, exclusions
- Random string generator with multiple charsets
- Alphanumeric, alpha, numeric, hex charsets
- Configurable length
- Static generator with regex validation
- Default value support
- Pattern validation
- Script generator for external command execution
- Configurable timeout
- Error handling with detailed messages
- Environment variable fallback for all generators
File Targets¶
- Dotenv format (.env files) with merge support
- JSON format with pretty printing
- YAML format with clean output
- TOML format (optional, requires tomli/tomli-w)
- Merge mode for intelligent file updates
- Overwrite mode for complete replacement
- Parent directory creation automatic
Lockfile Management¶
- SHA-256 hashing for secret value tracking
- Timestamp tracking for creation and updates
- Per-target hash tracking for drift detection
- Change detection to determine if secrets changed
- JSON persistence in human-readable format
Sync Engine¶
- Secret generation with configured generators
- Template support for multi-field secrets
- One-time secret support to prevent regeneration
- Change detection to only update when necessary
- Multi-target storage in all configured targets
- Detailed result reporting with statistics
CLI Commands¶
secretzero sync- Generate and sync secrets--dry-run- Preview without changes--force- Force regenerationsecretzero show <secret>- Display secret information
Testing¶
- 52 new tests (82 total)
test_generators.py: 22 teststest_targets.py: 12 teststest_lockfile.py: 13 tests- CLI updates: 6 tests
- 87% overall coverage
Changed¶
- Updated
.gitignoreto exclude lockfiles and .env files - CLI now supports detailed progress reporting
[0.1.0] - 2026-02-16¶
Added - Phase 1: Foundation¶
Core Data Models¶
- Pydantic models for type-safe configuration
Secretfile- Root configuration modelSecret- Secret definition with targetsTemplate- Multi-field secret templatesProvider- Provider configurationTargetConfig- Target storage configurationGeneratorConfig- Generator configurationMetadata- Project metadata- Enums for type safety
AuthKind- Authentication typesGeneratorKind- Generator typesTargetKind- Target typesFileFormat- File formats
Configuration Loading¶
- YAML parsing with validation
- Variable interpolation using Jinja2
{{var.name}}- Direct variable reference{{var.name or 'default'}}- Variable with fallback- Schema validation with clear error messages
- Graceful error handling for interpolation failures
CLI Tool¶
secretzero create- Create new Secretfile from templatesecretzero validate- Validate configurationsecretzero secret-types- List available typessecretzero test- Test provider connectivity- Rich console output with colors and tables
- Interactive help system
- Version information
Project Structure¶
- Clean, modular architecture
- Comprehensive documentation
README.md- Project overviewdocs/extending.md- Extension guidedocs/use_cases.md- Use case documentationproject/ROADMAP.md- Project roadmap
Testing¶
- 30 comprehensive tests
test_models.py: 14 teststest_config.py: 7 teststest_cli.py: 9 tests- 96% code coverage
Technical Stack¶
- Pydantic for data modeling
- Click for CLI framework
- Rich for terminal output
- Jinja2 for variable interpolation
- pytest for testing
Version History¶
- v0.7.0 (2026-02-16) - Phase 7: API Service
- v0.6.0 (2026-02-16) - Phase 6: Advanced Features (Rotation, Policies, Drift)
- v0.5.0 (2026-02-16) - Phase 5: Kubernetes & Container Support
- v0.4.0 (2026-02-16) - Phase 4: CI/CD Integration (GitHub, GitLab, Jenkins)
- v0.3.0 (2026-02-16) - Phase 3: Cloud Provider Integration (AWS, Azure, Vault)
- v0.2.0 (2026-02-16) - Phase 2: Secret Generation & Local Storage
- v0.1.0 (2026-02-16) - Phase 1: Foundation
Feature Summary by Version¶
| Feature | Version | Status |
|---|---|---|
| Core Framework | v0.1.0 | ✅ |
| CLI Tool | v0.1.0 | ✅ |
| Secret Generators | v0.2.0 | ✅ |
| Local File Storage | v0.2.0 | ✅ |
| Lockfile System | v0.2.0 | ✅ |
| AWS Integration | v0.3.0 | ✅ |
| Azure Integration | v0.3.0 | ✅ |
| Vault Integration | v0.3.0 | ✅ |
| GitHub Actions | v0.4.0 | ✅ |
| GitLab CI/CD | v0.4.0 | ✅ |
| Jenkins | v0.4.0 | ✅ |
| Kubernetes | v0.5.0 | ✅ |
| External Secrets Operator | v0.5.0 | ✅ |
| Secret Rotation | v0.6.0 | ✅ |
| Policy Engine | v0.6.0 | ✅ |
| Drift Detection | v0.6.0 | ✅ |
| REST API | v0.7.0 | ✅ |
| Audit Logging | v0.7.0 | ✅ |
| OpenAPI Docs | v0.7.0 | ✅ |
Compliance¶
SecretZero meets the following compliance standards:
- SOC2: Secret rotation policies, audit trails, access controls
- ISO27001: Documented rotation periods, change tracking
- Zero Security Vulnerabilities: CodeQL verified across all releases
Testing Metrics¶
| Version | Total Tests | Coverage | Status |
|---|---|---|---|
| v0.1.0 | 30 | 96% | ✅ |
| v0.2.0 | 82 | 87% | ✅ |
| v0.3.0 | 105 | 57% | ✅ |
| v0.4.0 | 140 | 54% | ✅ |
| v0.5.0 | 161 | 84% (provider) | ✅ |
| v0.6.0 | 184 | 90%+ (new modules) | ✅ |
| v0.7.0 | 207 | 100% (endpoints) | ✅ |
See Also¶
- Installation Guide
- Migration Guide - Upgrading between versions
- GitHub Releases
- Roadmap - Future plans