Skip to content

Releases: kazmij/kazcode-universal-storage-free

KAZCODE Universal Storage 1.0.1

Choose a tag to compare

@kazmij kazmij released this 30 Aug 22:36

KAZCODE Universal Storage 1.0.1 is a reliability, data-integrity, compatibility, and WordPress.org review update for the 1.0.x production line.

This update focuses on making existing media safer to offload, verify, restore, migrate, and serve. It also updates the distributed package and readme disclosure for the current WordPress.org review. It does not introduce new provider counts, importers, or large feature workflows.

Data integrity and recovery

  • Strengthened remote verification before local media cleanup.
  • Local files are retained when the remote object cannot be verified with sufficient confidence.
  • Temporary provider failures, throttling, authentication failures, and network errors are now treated as unknown provider states rather than confirmed missing media.
  • Size verification is required before destructive local cleanup when an expected size is known.
  • Changed local bytes are uploaded even when the object key and byte length match an existing remote object.
  • Partial restore results preserve recovery information instead of clearing offload state too early.
  • Batch delete results now respect per-object provider errors so failed deletes remain visible and retryable.

Multi-profile and shared-media safety

  • Existing remote objects are addressed through their persisted Storage Profile binding instead of the current/default upload target.
  • Private/signed URLs, restore, verification, and local materialization use the profile that actually owns the object.
  • Amazon S3 profile/preset handling now ignores stale custom endpoint/path-style values, so a previous MinIO/custom endpoint cannot break AWS S3 verification.
  • Remote deletion is fail-closed when object ownership is ambiguous or a possibly shared object is detected.

WordPress media compatibility

  • Improved remote-only media compatibility with WordPress REST/editor flows, including context=edit.
  • Preserved big-image/original-image metadata behavior without forcing permanent local downloads.
  • Hardened metadata-generation sequencing for newer WordPress media callbacks.
  • Added an admin control to disable onboarding tutorials across plugin screens while keeping manual replay available.
  • Storage Profile deletion controls now remain visible and explain why deletion is blocked when a profile is still protected.

Concurrent operation safety

  • Hardened attachment operations with fenced leases so stale workers cannot commit authoritative state after another worker takes ownership.
  • Old lease owners can no longer release a newer worker's lock.
  • Destructive local/remote operations remain guarded by both verification and current operation ownership.

Compatibility and packaging

  • Improved Composer, AWS SDK, Guzzle, and PSR dependency isolation in the scoped release build.
  • Removed the unnecessary vendor/aws/aws-crt-php/format-check.py development helper from the distributed ZIP.
  • Added a package audit guard so Python files do not re-enter the release ZIP.
  • Clarified the External Services disclosure in readme.txt: generated s3.amazonaws.com URLs are administrator-configured Media Library object URLs, not external KAZCODE UI assets.
  • Verified coexistence paths for Composer-based WordPress installs and plugin dependency collisions.
  • The Free package remains Free-only; Pro functionality remains in the separate Pro add-on.

Upgrade notes

  • Version: 1.0.1
  • No database schema change.
  • Existing settings, storage profiles, object inventory, and media metadata are preserved.
  • This is the recommended 1.0.x hotfix for all 1.0.0 installations.

KAZCODE Universal Storage 1.0.0

Choose a tag to compare

@kazmij kazmij released this 29 Aug 08:06

KAZCODE Universal Storage 1.0.0

First public release.

Highlights

  • Amazon S3, Cloudflare R2, and S3-compatible storage (DigitalOcean Spaces, Wasabi, Backblaze B2, MinIO, or any custom S3-compatible endpoint)
  • Native WordPress Media Library integration — status column, row/bulk actions, no change to the Grid/List/modal/Featured Image/Gutenberg experience
  • Object-level media inventory, including every generated image size
  • Safe handling of partial uploads — a failed size never gets falsely marked offloaded
  • Retry of failed or missing media objects
  • Restore remote media back to WordPress on demand
  • Storage health checks and verification, with an AWS setup assistant (checklist + a ready-to-use least-privilege IAM policy)
  • Storage Profiles — connection, credentials, and delivery URL configuration
  • PHP-Scoper–isolated AWS SDK, so it won't collide with other plugins bundling their own copy

Pro

KAZCODE Universal Storage Pro is a separate add-on. It adds:

  • Multiple Storage Profiles, each with independent credentials
  • Cross-provider / cross-bucket media migration, including Amazon S3 → Cloudflare R2
  • Verify-before-switch migration safety — delivery only changes after the destination is confirmed
  • Orphan scan (dry-run — reports, never deletes)
  • Advanced storage health and reconcile tools
  • Multisite network defaults

View Pro features and pricing

Deactivating Pro never deletes data or breaks media that's already being served — existing profiles, credentials, and delivery keep working; only new premium operations become unavailable until reactivated.

Requirements

  • WordPress 6.7+
  • PHP 8.3+

Testing

Verified against:

  • WordPress 7.1
  • PHP 8.3 / 8.4 / 8.5
  • Amazon S3 (real account)
  • Cloudflare R2 (real account), including a live Amazon S3 → Cloudflare R2 migration
  • MinIO

Downloads

kazcode-universal-storage-1.0.0.zip

SHA-256:

938443ebfd2e05de763a82cdc26fa2374bbf89577dbf0e93807a96d1cd18a041

The GitHub release ZIP is content-equivalent to the verified Free 1.0.0
distribution. ZIP build timestamps may make independently built archives
byte-different even when their extracted contents are identical.

Links

Support: kazmij@gmail.com