Purge Activities / Notifications
In Pydio Cells, activities are designed as a generic concept following social network feeds model : an Object can receive activities from external events in its "inbox" and has its own self-triggered events exposed in its "outbox". This can model be compared to the social network feeds represented by a user "story" (outbox) and his/her wall ("inbox').
In Cells it is applied in different contexts:
Users "inboxes" represent the notifications received when watching a file or folder for modifications.
Nodes (files/folders) "outboxes" registers all activities of a given node and all its children.
These activities are stored in the Activity Stream 2.0 format inside a onfile database. By default, these activities are kept forever, leading the on-file Bolt Database to grow, and eventually consume a lot of RAM. These activites are not used for Audit logs, and thus can be safely purged after a while.
[Ent] Purging Users Notifications with Scheduler/Cells Flows
Starting with Cells v3, a default job is inserted at startup for purging activities based on specific parameters. It is disabled by default, you can enable it and either run manually or setup a scheduler for automated run.
"Purge Users Notifications" job has the following parameters:
|KeepAtLeast||Minimum number of activities to keep for each file or folder, starting from the most recent ones.||1|
|KeepLast||Maximum number of activities to keep for each file or folder (removing the oldest ones||10|
|UpdatedDays||Purge activities recorder before a specific date (today minus the number of days.||30days|
As explained above, this job applies to the "users' inboxes". After a purge, the activity database is entirely cloned and re-indexed for a better defragmentation.
[Ent] Purging Files/Folders Activities using Scheduler/Cells Flows
Similarly to the "Purge Users Notifications", a "Purge Files Activities" job is available for automated run, with the same parameters. It is applied to the "nodes' outboxes".
For home users or for more options, it is possible to manually trigger an operation similar to the scheduler jobs by using the
clean activities command.
Usage: ./cells admin clean activities [flags] Flags: -a, --admin string Provide login of the administrator user -b, --box string Either inbox (notifications received) or outbox (user activity / file activity) (default "outbox") --clear After DB compaction, remove original file, otherwise keep it as a backup --compact Trigger DB compaction by copying boltDB into a new file (default true) --db string Point directly to a DB file to perform the purge offline -h, --help help for activities --max int Clear by keeping a maximum number of records inside each box --min int Keep at least N, 0 for clearing all records (default 1) -o, --owner string Specific user or node ID, or all (default "*") --timeout string Set a longer timeout if there are tons of activities to purge (duration) (default "6h") -t, --type string Activity type, one of 'nodes' or 'users' (default "nodes") --updated string Clear by keeping all records updated before a given date. Use golang duration, e.g. '3d' will keep all records updated
You can find here the notions explained above : type is one of "nodes" or "users", box is one of "inbox" or "outbox". Other criteria for purging activities are similar to the jobs parameters.
An interesting flag is the
--db allowing to directly point to a database file. This allows applying the purge operation offline. This must be done with Cells service stopped, and can be applied to the