Skip to main content

Security and limits

The module treats share-sheet input as untrusted data supplied by another application.

Default limits​

LimitDefault
Text or URL representation256 KiB
Items in one share20
One attachment100 MiB
All binary data in one share250 MiB
Pending receipts per platform20
All module-managed attachments1 GiB
Acknowledged, unreleased filesEligible for lazy cleanup after seven days from receipt

File and item limits are configurable where exposed by the config plugin. Text, pending-receipt, and total managed-storage caps are package safety boundaries.

releaseSharedFilesAsync deletes acknowledged receipt directories immediately. The seven-day value is only a cleanup eligibility threshold for acknowledged files that were not explicitly released. Cleanup runs on later queue operations; it is not a background timer or a guaranteed maximum retention period.

Android URI validation​

The module accepts only content:// streams that:

  • belong to the current intent;
  • arrive with FLAG_GRANT_READ_URI_PERMISSION;
  • pass an explicit URI permission check.

It rejects file:// input and does not treat ambient already-held access as a valid share grant.

Safe copies and filenames​

Attachments are streamed with byte limits. Generated filenames discard source paths and unsafe characters. JavaScript receives a local module-managed URI instead of depending on provider access remaining valid.

Atomic persistence​

  • Android queue updates use an atomic file and synchronized processing.
  • iOS commits one atomic JSON queue record under a cross-process lock.
  • Hosts never intentionally read partially written records.

Privacy​

The package does not upload payloads, attachments, or logs. All intake and queue processing happens on device. Your application is responsible for any network or analytics behavior after receiving a payload.

Application responsibilities​

  • Treat text and file metadata as untrusted input.
  • Make business processing idempotent.
  • Copy long-lived attachments into application-owned storage.
  • Acknowledge only after durable processing.
  • Release module-managed files when no longer needed.
  • Avoid logging payload contents in production.