[Lightning AU-14] Session Activity Auditing Response ¶
Control Response ¶
Global Service Status (GSS) provides an application-level auditing capability for authenticated user activity performed during a session context. For this service, a session is interpreted as a sequence of authenticated API requests made by a user identity. The implementation logs successful user-initiated write operations against in-scope business entities and allows authorized reviewers to query those audit records through administrative APIs.
The implementation is intentionally scoped to business-action auditing and should not be described as full session recording or replay. It does not capture screen content, keystrokes, audio, complete browser interaction streams, or traditional server-side HttpSession lifecycle events.
Implementation Statement ¶
GSS uses @AuditLog annotations on in-scope write endpoints and captures audit records through ActivityLogAspect. For successful authorized requests, the application resolves the operator identity from the authorization flow, extracts action, entity type, entity id, entity name, service id, and timestamp, and persists those values into status_activity_log.
The current implementation logs authenticated write activity for the following entity categories:
SERVICECOMPONENTINCIDENTINCIDENT_MESSAGEANNOUNCEMENTMAINTENANCE_EVENTCLUSTERDATA_CENTERRELEASE_NOTETEMP_NOTICESTATUS_API_DOC
The implementation also includes selected post-commit logging for business-significant cascade deletes, including:
- child components deleted with a parent component
- incident messages deleted with an incident
- clusters deleted with a data center
Authorized reviewers can view audit history using:
GET /status/admin/activity-logsGET /status/admin/activity-logs/entity
Evidence ¶
Primary implementation evidence:
server/src/main/java/com/cisco/gss/common/annotation/AuditLog.javaserver/src/main/java/com/cisco/gss/aspect/ActivityLogAspect.javaserver/src/main/java/com/cisco/gss/common/domain/audit/ActivityLog.javaserver/src/main/java/com/cisco/gss/service/impl/ActivityLogServiceImpl.javaserver/src/main/java/com/cisco/gss/repository/ActivityLogRepository.javaserver/src/main/java/com/cisco/gss/controller/ActivityLogController.javaserver/src/main/java/com/cisco/gss/Auth/AuthAspect.javaserver/src/main/java/com/cisco/gss/common/audit/UserContextHolder.javamigration/postgres/scripts/v47__create_activity_log_table.sql
Representative in-scope coverage evidence:
server/src/main/java/com/cisco/gss/controller/ServiceController.javaserver/src/main/java/com/cisco/gss/controller/ComponentController.javaserver/src/main/java/com/cisco/gss/controller/IncidentController.javaserver/src/main/java/com/cisco/gss/controller/MaintenanceController.javaserver/src/main/java/com/cisco/gss/controller/MaintenanceAnnouncementController.javaserver/src/main/java/com/cisco/gss/controller/ClusterController.javaserver/src/main/java/com/cisco/gss/controller/DataCenterController.javaserver/src/main/java/com/cisco/gss/controller/ReleaseNoteController.javaserver/src/main/java/com/cisco/gss/controller/TempNoticeController.javaserver/src/main/java/com/cisco/gss/controller/StatusApiDocController.java
Representative cascade side-effect evidence:
server/src/main/java/com/cisco/gss/service/impl/ComponentServiceImpl.javaserver/src/main/java/com/cisco/gss/service/impl/IncidentServiceImpl.javaserver/src/main/java/com/cisco/gss/service/impl/DataCenterServiceImpl.java