Working on the O3 audit log dashboard (PR #267) and hitting some design decisions I'd like input on before going deeper:

  1. Audit tracking schema The existing auditlog_attribute table has an old_value/new_value column that contains data as string. For the frontend details modal, should the REST endpoint return the data as JSON typed value (for correct display in frontend), or is it fine to continue returning data as string?

  2. Pagination method We currently use pagination that relies on startIndex + limit method. When it comes to big logs in audit logs table, the offset method works poorly when it gets high. Is it worth adding the cursor method (dateCreated + uuid) for the module?

  3. Filter scope REST endpoint (endpoint #17 in openmrs-module-auditlog) has three filter parameters: user, action, and date. Should we add object type filtering in the frontend or backend considering the expected number of records in the result?

Thanks for letting me know in advance if you have a decision about any of these questions. @jayasanka @dkayiwa