Skip to content

4.12.0 — 2026-06-20

← 4.12.1 | 4.11.1 → | ↑ 4.x series

Added

Adapters - MinIO

  • Object Existence Check - Added object_exists to MinioPort and MinioAdapter for lightweight presence checks without downloading object content.
    • Returns True when the object key exists and False when it does not.
    • Cached for five minutes via @ttl_cache_decorator to reduce repeated HEAD requests.
  • Batch Object Deletion - Added remove_objects for deleting multiple object keys in a single S3 DeleteObjects call.
    • Clears object-related caches after a successful batch delete.
  • Object Tag Operations - Added tag management methods for per-object metadata used with lifecycle-based expiration.
    • set_object_tags replaces all tags on an existing object.
    • get_object_tags returns the current tag mapping (empty dict when none are set).
    • remove_object_tags clears all tags from an object.
  • Upload-Time Tags - Extended put_object and put_object_stream with an optional tags: dict[str, str] | None parameter so tags can be applied at upload time.
  • Bucket Lifecycle / TTL - Added lifecycle configuration methods for automatic object expiration.
    • set_bucket_lifecycle accepts S3-format lifecycle rule dicts (MinioLifecycleRuleType).
    • get_bucket_lifecycle returns configured rules or an empty list when none are set.
    • delete_bucket_lifecycle removes all lifecycle rules from a bucket.
  • Object Versioning - Added bucket versioning and version-level delete support.
    • set_bucket_versioning enables or suspends versioning on a bucket.
    • get_bucket_versioning returns Enabled, Suspended, or an empty string when never configured.
    • list_object_versions lists version entries and delete markers with normalized metadata (MinioObjectVersionType).
    • remove_object_version permanently deletes a specific version by version_id.

Changed

Adapters - StarRocks

  • Type Ignore Cleanup - Removed redundant # type: ignore[invalid-assignment] comments from StarRocks SQLAlchemy compiler patches, keeping only the ty: ignore directives.

Documentation - MinIO

  • Tutorial Expansion - Extended docs/tutorials/adapters/minio.md with examples for object existence checks, batch deletion, object tags, and versioning workflows.
  • API Reference Clarification - Updated the MinIO adapter API reference to state that the concrete adapter wraps boto3 for S3-compatible storage.

Tests

Tests - MinIO Adapter

  • Tag Scenarios - Added BDD coverage for upload-time tags, setting tags on existing objects, and removing all tags.
  • Lifecycle Scenarios - Added scenarios for setting, verifying, and deleting bucket lifecycle rules.
  • Existence and Batch Delete - Added scenarios for object_exists before and after deletion, and for remove_objects batch cleanup.
  • Versioning Scenarios - Added end-to-end coverage for enabling versioning, uploading multiple versions, listing versions, and permanently deleting the oldest version.

Dependencies

  • Core dependencies - Updated base package pins in pyproject.toml.
    • pydantic-settings: >=2.14.1>=2.14.2
  • Optional extras - Updated optional adapter dependency pins.
    • dependency-injection: dependency-injector>=4.49.0>=4.49.1
    • minio: boto3>=1.43.32>=1.43.34
    • parsian-ipg / parsian-ipg-async: zeep>=4.3.2>=4.3.3
  • Dev group - Updated development tooling pins.
    • boto3-stubs: >=1.43.32>=1.43.34
    • ruff: >=0.15.17>=0.15.18
    • ty: >=0.0.50>=0.0.51
  • Docs group - Updated documentation tooling pins.
    • mkdocstrings-python: >=2.0.4>=2.0.5
  • Lockfile - Regenerated uv.lock to align with the updated pyproject.toml constraints.