IQSS / dataverse

Open source research data repository software
http://dataverse.org
Other
878 stars 489 forks source link

Feature Request/Idea: API / dashboard page to export and/or truncate actionlogrecord table #9357

Open donsizemore opened 1 year ago

donsizemore commented 1 year ago

Overview of the Feature Request

Currently, the Admin Guide recommends that the actionlogrecord be regularly purged: https://guides.dataverse.org/en/latest/admin/troubleshooting.html#what-s-with-this-table-actionlogrecord-in-our-database-it-seems-to-be-growing-uncontrollably

It would be great to allow superusers to view the table and optimally to truncate it by date via the admin dashboard, or helpful to allow a superuser to export the table and truncate it via API.

What kind of user is the feature intended for?

API user, Archivist, Admin

What inspired the request?

https://guides.dataverse.org/en/latest/admin/troubleshooting.html#what-s-with-this-table-actionlogrecord-in-our-database-it-seems-to-be-growing-uncontrollably

What existing behavior do you want changed?

https://guides.dataverse.org/en/latest/admin/troubleshooting.html#what-s-with-this-table-actionlogrecord-in-our-database-it-seems-to-be-growing-uncontrollably

Any brand new behavior do you want to add to Dataverse?

These two(?) API endpoints and potentially a page in the admin dashboard.

Any related open or closed issues to this feature request?

9356 mentioned the condition, and prompted this issue.

donsizemore commented 1 year ago

As of this morning, our DB's actionlogrecord table holds 7,821,589 entries. Of those, 7,512,823 contain useridentifier :guest.

Some of these are successes (like CreateGuestbookResponseCommand, the results of which in theory appear in guestbookresponse) but others (3,545,322) are PermissionError from bots denied their naughty endeavors.

If, and this is a big if, the actionlogrecord table's :guest entries aren't entirely useful on their own merit, this feature request might be simplified by the addition of a :DontLogGuestActions or some such DB setting.

donsizemore commented 5 months ago

This morning a community installation, unable to perform any actions (like creating a collection), found the following error:

pg_dump: error: Dumping the contents of table "actionlogrecord" failed: PQgetResult() failed.
pg_dump: error: Error message from server: ERROR:  invalid memory alloc request size 18446744073709551613
pg_dump: error: The command was: COPY public.actionlogrecord (id, actionresult, actionsubtype, actiontype, endtime, info, starttime, useridentifier) TO stdout;

Trimming the actionlogrecord table resolved this problem.