MINIMALIST Uploads for WPVibe

Description

MINIMALIST Uploads for WPVibe adds document upload endpoints for administrators using an existing WordPress REST connection. It is an independent extension, not an official WPVibe product. It can be called through WPVibe’s REST API tool or another authenticated REST client; WPVibe is not required to activate it.

  • Upload PDF, Office, OpenDocument, RTF, TXT, CSV and ZIP files, subject to the site’s WordPress MIME policy.
  • Maximum file size: the current WordPress upload limit, normally derived from PHP upload_max_filesize and post_max_size and any WordPress/multisite restrictions. Maximum chunk size: 1 MiB (1048576 decoded bytes); single-request upload: up to 2 MiB.
  • HTTPS, an authenticated user and both manage_options and upload_files capabilities are required on every endpoint.
  • SHA-256 transfer verification, user-bound upload sessions, sequential chunks and retry support.
  • Temporary chunks are stored outside the known public website directories and expire after one hour. Cleanup runs hourly through WP-Cron and before a new upload.
  • WordPress handles MIME validation and final Media Library import. Identical existing media of the same MIME type can be reused even after a filename change, without overwriting files.

The plugin does not publish posts, compress documents, extract ZIP archives, change application password or firewall policies, install software, or provide malware scanning. Optimize and review documents before sending them. HTTPS and an existing authorized WordPress authentication mechanism are required; the plugin creates no credentials.

Privacy and external services

The plugin itself makes no outbound requests, sends no telemetry and embeds no external assets. Upload bytes are sent by your chosen client to your WordPress site. Temporary session records contain the administrator’s user ID, filename, title, size, checksum, expiration time and, after completion, the attachment ID. Published Media Library files are normally publicly accessible; upload only documents intended for that audience.

If you choose to use WPVibe or another service to call the API, that service’s connection, privacy policy and terms apply separately. It is not required by this plugin and no third-party service is contacted automatically.

REST API

The compatibility namespace is /wpvibe-documents/v1. Send JSON and authenticate using the site’s existing authorized REST connection.

  1. POST /start: filename (plain filename), size (integer bytes), sha256 (64 lowercase hexadecimal characters). Optionally send the first chunk_base64 and boolean auto_finish=true. The response returns upload_id, offset and chunk_bytes, or an existing attachment with complete=true.
  2. POST /chunk: upload_id, offset (integer), chunk_base64 (canonical base64, at most chunk_bytes before encoding; currently 1 MiB). Use chunk_bytes from /start or /status to choose the chunk length; send a shorter final chunk when needed. Resume using the returned offset. Identical chunk retransmissions are accepted without duplicating bytes. With boolean auto_finish=true, the last chunk verifies and imports the document in the same request; retries return the completed attachment.
  3. GET /status?upload_id=…: retrieve the current offset or completed attachment.
  4. POST /finish: upload_id. Returns complete=true and attachment.id, url, title and mime_type after WordPress validation.
  5. POST /cancel: upload_id. Cancels an unfinished session only; it never deletes completed media.

Files of at most 2 MiB can use POST /upload with filename, sha256 and content_base64 in one request. Do not include base64 data or authentication secrets in published posts.

Installation

  1. If upgrading from WPVibe Documents 1.0.0 or Document Uploads for WPVibe 1.0.1/1.0.2, deactivate that previous plugin first. Its media and posts remain intact. Install this plugin separately; its folder is minimalist-uploads-for-wpvibe.
  2. Install and activate MINIMALIST Uploads for WPVibe through the WordPress Plugins screen.
  3. Use HTTPS and an administrator’s existing authorized REST connection.
  4. Ensure PHP’s temporary directory is writable and outside all publicly served paths, including any custom server aliases. The plugin refuses known public website directories.
  5. Keep WP-Cron operational, or schedule wp-cron.php through your host when WordPress cron is disabled.

There is no settings screen. The plugin keeps the site’s MIME policy and upload limit, without an additional fixed file-size cap.

FAQ

Does it compress PDF files?

No. Compress documents before uploading, preserve signatures and interactive content, and review every page for readability. A server upload limit is not a reason to publish an unreadable file.

Does it bypass Wordfence or application password restrictions?

No. WordPress must authenticate the request first. The extension changes no authentication, firewall or application password settings.

Is an API upload private?

Only staging is private. Imported files follow normal WordPress Media Library behavior and are normally public. Restrict confidential document access with a suitable access-control solution before upload.

What happens on deactivation or uninstall?

Deactivation clears the plugin’s cleanup schedule and temporary sessions for the current site. Uninstall also removes its session records and checksum metadata on the site’s blogs. Completed Media Library files and published posts are retained. If PHP’s private temporary directory is unavailable, physical cleanup may need the hosting administrator.

Can I activate both the old and new plugins?

Deactivate WPVibe Documents or Document Uploads for WPVibe first. While either previous plugin is active on the site or network, this extension displays an administrator notice and does not register its API callbacks. Completed media and posts are retained; unfinished uploads must be restarted after deactivation.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“MINIMALIST Uploads for WPVibe” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.4

  • Single-request uploads up to 2 MiB and advertised 1 MiB chunks.
  • Optional first chunk in start and automatic finalization on the last chunk.
  • Reuse matching SHA-256 media across filename changes, with MIME and file-byte checks.
  • Kept legacy upload calls, permissions, hosting limits and transfer verification.

1.0.3

  • Renamed to MINIMALIST Uploads for WPVibe with the minimalist-uploads-for-wpvibe slug and text domain.
  • Prevented conflicts with both previous plugin packages during migration.
  • Retained the existing REST API and 256 KiB upload chunks.

1.0.2

  • Increased maximum chunk and single-request upload size from 32 KiB to 256 KiB.
  • A 1 MiB document now takes 4 chunk requests instead of 32; 2 MiB takes 8 instead of 64.
  • Existing clients using smaller chunks remain compatible. Clients must use the advertised chunk_bytes value to benefit.

1.0.1

  • First WordPress.org submission package.
  • Uses the current WordPress/PHP upload limit and rechecks it before final import.
  • Independent plugin name, translated messages and uninstall cleanup.
  • Preserved v1 REST namespace for existing clients.
  • Corrected the native attachment-file API call when checking existing documents.