Aias00 opened a new issue, #963: URL: https://github.com/apache/rocketmq-dashboard/issues/963
## Problem The audit-log endpoint paginates after loading every matching row into application memory. `MybatisPlusAuditRepository.findAll` uses `selectList`, while `AuditService.queryLogs` computes pagination with `subList`. The CSV export follows the same full-materialization path and returns one large string. `pageSize` only has a positive-value check, with no upper bound. The audit read model also drops context already stored in `rmq_operation_audit`: `resource_type`, `cluster_id`, and `error_message` are written by `OperationAuditService` but are absent from `AuditRecordVO` and `MybatisPlusAuditRepository.toVO`. The API/UI additionally expose an `ipAddress` column although the schema and write path do not persist it. ## Impact As audit history grows, a normal paged request scans and materializes every matched row. The API response also cannot present key resource and failure context that is already persisted. ## Proposed fix - Add a paged audit repository contract returning rows and total count. - Use MyBatis-Plus SQL pagination for the list endpoint and cap page sizes. - Bound the export query to prevent unbounded in-memory CSV construction. - Extend the audit read model/API with resource type, cluster ID, and error message. - Remove the unsupported IP column from the API/UI export contract rather than emitting permanently empty values. ## Non-goals This does not change audit ordering (#835) or the existing pagination/cleanup input validation from #441. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
