Feature: Credits Dashboard - Add sorting, search, and action filtering for enterprise-scale usage management
Summary
Enterprise customers with large user bases (5,000+ seats) cannot effectively manage and monitor GitLab Duo credit consumption. The current Credits Dashboard lacks sorting, search, and filtering capabilities essential for identifying high-usage users, investigating anomalies, and preparing chargeback reports.
Problem Statement
An enterprise customer with 5,000 GitLab Duo users currently has no way to:
- Quickly identify their top credit consumers
- Search for a specific user's credit usage
- Filter usage data by actions taken (Code Suggestions vs. Duo Chat, etc.)
Without these capabilities, admins must manually scroll through thousands of rows to find relevant data, making credit management impractical at enterprise scale.
Proposed Solution (Prioritized)
Priority 1: Column Sorting on "Usage by User" Table
Requirement: Make table columns sortable with ascending/descending toggle.
| Column | Sort Behavior |
|---|---|
| User | Alphabetical A→Z / Z→A |
| Total credits used | Numeric (highest → lowest for quick identification of top consumers) |
Acceptance Criteria:
- Clicking column header toggles sort direction
- Visual indicator shows current sort column and direction (↑/↓)
- Default view sorts by "Total credits used" descending to surface top consumers immediately
- Sorting persists within session
Priority 2: Username Search
Requirement: Add search input field to filter the user table.
Acceptance Criteria:
- Search bar placed above the user table
- Supports partial matching (typing "falk" finds "falko.sieverding")
- Also matches full usernames for precision
- Behavior consistent with existing GitLab search patterns (e.g., member search, user admin)
- Case-insensitive matching
- Debounced input (300ms) to avoid excessive API calls
Priority 3: Filter by Actions in User Detail View
Requirement: When viewing an individual user's credit history, allow filtering by action type.
Actions to support:
- Code Suggestions
- Duo Chat
- Vulnerability Resolution
- Root Cause Analysis
- Code Review Summary
- CI/CD Troubleshooting
- (Other DAP actions as applicable)
Acceptance Criteria:
- Multi-select dropdown or checkbox filter for action types
- "All Actions" default state
- Filter applied client-side for fast iteration
- Filter state reflected in URL for shareability
User Story
As a GitLab administrator at an enterprise with 5,000+ users,
I want to sort the Credits Dashboard by total credits consumed and search for specific users,
So that I can quickly identify high-usage individuals and investigate credit consumption patterns without manually scanning thousands of rows.
Constraints
Sort and filter is currently limited to info we have on the GitLab side. We'll need to sync more data from the CDot side to have GitLab-side sorting/filtering.
Success Metrics
- Admin can identify top 10 credit consumers within 5 seconds (via sort)
- Admin can locate a specific user's credit usage within 10 seconds (via search)
- Admin can filter a user's history to a specific action type within 3 clicks
Design Considerations
- Follow existing GitLab Admin Area UX patterns for tables (e.g., Admin → Users)
- Consider pagination impact: sorting should work across full dataset, not just current page
- For large datasets, consider server-side sorting/filtering with appropriate indexes
Customer Context
Reported by enterprise customer with 5,000+ seats during DAP evaluation. Lack of these capabilities creates friction for:
- IT cost allocation and chargeback reporting
- License utilization audits
- Identifying training opportunities (users not adopting specific features)