Replace f-string log messages with structlog keyword fields so events aggregate cleanly and Redis payloads are not logged verbatim.
Co-authored-by: Cursor <[email protected]>
Require buckets to exist by default on connect, extract env_bool parsing, and document local dev overrides for secure and auto-creation settings.
Co-authored-by: Cursor <[email protected]>
Return None only for missing objects and re-raise other S3 and network failures so callers can distinguish not-found from real errors.
Co-authored-by: Cursor <[email protected]>
Introduce typed config objects, optional adapter injection, and .env loading to simplify testing while preserving env-based defaults for production usage.
Co-authored-by: Cursor <[email protected]>
Convert is_connected to a method that verifies backend liveness via TTL-cached ping (Redis) or bucket_exists (MinIO), with cache invalidation on connect/disconnect.
Co-authored-by: Cursor <[email protected]>
Guard bucket_name before Minio API calls, update S3Error test mocks for the new constructor signature, and add types-redis to the pre-commit mypy hook.
Co-authored-by: Cursor <[email protected]>
Define split JSON and object repository ABCs, promote adapter methods to public CRUD, add example domain repositories, modernize interface stubs, and make the package installable for tests.
Co-authored-by: Cursor <[email protected]>