All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Tests for edge cases in PdoStorage for 100% code coverage
- Non-array rows from PDOStatement::fetch
- Non-string key_id/data values
- Non-string data column in get()
- PHPStan level 9 strict type checking
- Infection PHP mutation testing
- PHPBench performance benchmarks
- Example integrations (Slim 4, standalone, CLI key manager)
- Changed
readonly classtoreadonlyproperties for PHP 8.1 compatibility - Cast keyId to string in
listKeys()to handle PHP's numeric key conversion
- PHP 8.1 compatibility with readonly properties
- TypeError when iterating storage keys with numeric-looking IDs
- FileStorageTest cleanup and warning suppression
- Comprehensive test suite with 167 tests
- CorruptibleStorage helper class for testing edge cases
- Tests for MySQL/PostgreSQL table creation in PdoStorage
- Tests for transaction rollback scenarios
- Tests for invalid JSON handling
- Edge case tests for IP and Origin validators
- PHP 8.1 compatibility (readonly class syntax)
- TypeError when storage keys look like integers
- Codecov integration for test coverage reporting
- PHP 8.4 support in CI matrix
- Coverage configuration in phpunit.xml
- Initial test suite
- CI workflow with GitHub Actions
- Initial release
- API Key authentication with secure hashing (SHA-256 + pepper)
- IP allowlisting with CIDR notation support (IPv4/IPv6)
- Origin allowlisting with wildcard subdomain support
- PSR-15 SecurityMiddleware
- Multiple storage backends (Array, File, PDO)
- TTL/expiry support for API keys
- Scope-based authorization
- Exception hierarchy for security errors