A web-based viewer for Microsoft 365 audit logs with powerful faceted filtering capabilities.
β¨ Faceted Filter Sidebar
- Filter audit logs by multiple criteria simultaneously
- Real-time filtering without page reload
- Responsive design - works on desktop and mobile devices
- URL-based filter state (shareable filtered views)
π Large File Support
- Handles CSV files with hundreds of thousands of rows
- Chunk-based processing for efficient memory usage
- Progressive loading with real-time progress updates
- β Operation: Checkbox filters for common operations (FileAccessed, FileModified, FileDeleted, etc.)
- π€ User: Searchable user list with autocomplete
- π File Name: Text search for file names
- π Site URL: Text search for SharePoint site URLs
- π’ IP Address: Filter by client IP address
- π Date Range: Select date range with from/to pickers
- Open
viewer.htmlin a modern web browser - Click "Choose File" to upload a CSV export of Microsoft 365 audit logs
- Use the filter sidebar to refine results:
- Check/uncheck operations
- Search for specific users, files, or sites
- Set date ranges
- View filtered results in real-time
- Click on "π View" to see detailed AuditData for any record
On mobile devices, tap the "β° Filters" button in the top-left corner to open the filter sidebar. Tap outside the sidebar or on the overlay to close it.
Filters are automatically saved to the URL. Copy the URL to share a specific filtered view with others.
The viewer expects CSV files with these columns:
CreationDate: Timestamp of the audit eventUserId: User who performed the actionOperation: Type of operation performedAuditData: JSON string containing detailed audit information
- AG-Grid Community - Data grid
- PapaParse - CSV parsing with chunk-based processing for large files
- Vanilla JavaScript (no build process required)
The viewer uses PapaParse's chunk-based parsing to efficiently handle large CSV files:
- No hard limit on file size or row count (previously limited to ~50,000 rows)
- Progressive loading keeps the UI responsive during file processing
- Web Workers offload parsing to a background thread