Releases: kazmij/kazcode-universal-storage-free
Release list
KAZCODE Universal Storage 1.0.1
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.pydevelopment helper from the distributed ZIP. - Added a package audit guard so Python files do not re-enter the release ZIP.
- Clarified the
External Servicesdisclosure inreadme.txt: generateds3.amazonaws.comURLs 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
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
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