Replace f-string log messages with structlog keyword fields so events aggregate cleanly and Redis payloads are not logged verbatim.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move shared connect orchestration into the base adapter so both backends short-circuit when already healthy and only reconnect after a failed probe.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>
Provide a SCAN-based key iterator for Redis adapters so callers can enumerate large keyspaces without relying on blocking KEYS lookups.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default TLS to enabled for production MinIO setups while keeping local and integration tests on plain HTTP via explicit secure=false configuration.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>
Move duplicated context-manager, health-check cache, and connection guards from Redis and Minio adapters into an internal base class.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>
Return Self from __enter__ so with-blocks preserve subclass types, and align mypy python_version with the 3.12 runtime target.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>