=========================
Deleted Items (trash bin)
=========================

If the trash bin app is enabled (default), this setting defines the policy
for when files and folders in the trash bin will be permanently deleted.

.. note::

    If the user quota limit is exceeded due to deleted files in the trash bin,
    retention settings will be ignored and files will be cleaned up until
    the quota requirements are met.

The app allows for two settings, a minimum time for trash bin retention,
and a maximum time for trash bin retention.
Minimum time is the number of days a file will be kept, after which it
may be deleted. Maximum time is the number of days at which it is guaranteed
to be deleted.
Both minimum and maximum times can be set together to explicitly define
file and folder deletion. For migration purposes, this setting is installed
initially set to "auto", which is equivalent to the default setting in
Nextcloud.

You may alter the default pattern in ``config.php``. The default setting is
``auto``, which sets the default pattern::

 'trashbin_retention_obligation' => 'auto',

Available values:

* ``auto``
    default setting. keeps files and folders in the trash bin for 30 days
    and automatically deletes anytime after that if space is needed (note:
    files may not be deleted if space is not needed).
* ``D, auto``
    keeps files and folders in the trash bin for D+ days, delete anytime if
    space needed (note: files may not be deleted if space is not needed)
* ``auto, D``
    delete all files in the trash bin that are older than D days
    automatically, delete other files anytime if space needed
* ``D1, D2``
    keep files and folders in the trash bin for at least D1 days and
    delete when exceeds D2 days (note: files will not be deleted automatically if space is needed)
* ``disabled``
    trash bin auto clean disabled, files and folders will be kept forever

Background job
--------------

To permanently delete files a background jobs runs every 30 minutes.
It's possible to deactivate the background job and setup a (system) cron to expire the versions via occ.

Deactivate background job: ``occ config:app:set --value=no files_trashbin background_job_expire_trash``

Activate background job: ``occ config:app:delete files_trashbin background_job_expire_trash``

Expire versions: ``occ trashbin:expire`` or ``occ trashbin:expire --quiet`` (without the progress bar)
