streamflow/docs/AUDIT_LOG_UPDATE.md
2025-12-17 00:42:43 +00:00

4.4 KiB

Audit Log Feature - Implementation Complete

What Was Fixed

The Security Dashboard now displays real audit log data instead of the placeholder "coming soon" message.

Changes Made

File Updated

  • /frontend/src/pages/SecurityDashboard.jsx - Integrated audit log API

New Features in Audit Log Tab

  1. Real-Time Data Fetching

    • Fetches data from /api/security-monitor/audit-log
    • Automatically loads when clicking the "Audit Log" tab
    • Shows last 50 security events
  2. Comprehensive Event Display

    Column Description
    Timestamp Event date and time (MMM dd, HH:mm:ss)
    Event Type Action performed (login, logout, password_change, etc.)
    Status Color-coded chip (Success: green, Failed: red, Blocked: orange)
    IP Address Source IP address (monospace font)
    Details Extracted username or reason from event details
  3. Status Indicators

    • Success (Green chip) - Action completed successfully
    • Failed (Red chip) - Action failed (wrong password, etc.)
    • ⚠️ Blocked (Orange chip) - Action blocked by security policy
  4. User Experience

    • Shows loading spinner while fetching data
    • Empty state with refresh button if no events
    • Displays event count in header
    • Link to full Security Monitor for detailed analysis
    • Shows top 20 events with "View Details" button for more
  5. Error Handling

    • Gracefully handles API errors
    • Falls back to empty state
    • Provides refresh option

How It Works

Data Flow

SecurityDashboard (Tab Click)
    ↓
fetchAuditLog()
    ↓
GET /api/security-monitor/audit-log?limit=50
    ↓
Display in table format

API Integration

// Fetches when Audit Log tab is clicked
useEffect(() => {
  if (tabValue === 2) {
    fetchAuditLog();
  }
}, [tabValue]);

// API call
const fetchAuditLog = async () => {
  const response = await axios.get(
    '/api/security-monitor/audit-log?limit=50',
    { headers: { Authorization: `Bearer ${token}` } }
  );
  setAuditLog(response.data.logs || []);
};

Example Events Displayed

Successful Login

Timestamp: Dec 13, 14:30:45
Event Type: login
Status: success (green)
IP Address: 192.168.1.100
Details: admin

Failed Login

Timestamp: Dec 13, 14:28:12
Event Type: login
Status: failed (red)
IP Address: 192.168.1.101
Details: Invalid credentials

Account Lockout

Timestamp: Dec 13, 14:25:33
Event Type: account_lockout
Status: blocked (orange)
IP Address: 192.168.1.102
Details: Too many failed attempts

Password Change

Timestamp: Dec 13, 14:20:15
Event Type: password_change
Status: success (green)
IP Address: 192.168.1.100
Details: user123

Translations Added

English

  • details: "Details"

Romanian

  • details: "Detalii"

Access

For Admins

  1. Login as admin
  2. Navigate to Security (sidebar)
  3. Click "Audit Log" tab
  4. View recent security events

For Regular Users

  • Not accessible (admin-only feature)

Benefits

  1. Real-Time Monitoring - See security events as they happen
  2. Quick Investigation - Identify suspicious activity quickly
  3. Compliance - Audit trail for security compliance
  4. User Accountability - Track who did what and when
  5. Threat Detection - Spot patterns of failed logins or attacks

Next Steps

For more detailed analysis:

  • Click "View Details" button → Goes to /security/monitor
  • Access full Security Monitor dashboard
  • Filter by action type, status, date range
  • Export audit logs (JSON/CSV)

Testing

Manual Test

# 1. Login as admin
# 2. Go to Security Dashboard
# 3. Click "Audit Log" tab
# 4. Verify events display
# 5. Check color coding
# 6. Click "View Details" link
# 7. Verify navigation to Security Monitor

Expected Result

Audit log displays recent events
Status chips are color-coded correctly
IP addresses are shown in monospace
Timestamp is human-readable
"View Details" link works
Empty state shows when no events
Refresh button works

Notes

  • Shows last 50 events (can be adjusted)
  • Automatically refreshes when tab is clicked
  • Links to full Security Monitor for advanced features
  • Part of comprehensive security monitoring system
  • No breaking changes to existing functionality

Status: Complete and Production Ready
Version: 1.0.1
Date: December 13, 2025