Fix Rate Limiting Issues
- Updated Definition of Done report with detailed checks and results for backend and frontend tests. - Documented issues related to race conditions and test failures in QA reports. - Improved security scan notes and code cleanup status in QA reports. - Added summaries for rate limit integration test fixes, including root causes and resolutions. - Introduced new debug and integration scripts for rate limit testing. - Updated security documentation to reflect changes in configuration and troubleshooting steps. - Enhanced troubleshooting guides for CrowdSec and Go language server (gopls) errors. - Improved frontend and scripts README files for clarity and usage instructions.
This commit is contained in:
@@ -13,6 +13,7 @@ Comprehensive testing required for the newly implemented Bulk ACL (Access Contro
|
||||
**Implementation PR**: [Link to PR]
|
||||
|
||||
The bulk ACL feature introduces:
|
||||
|
||||
- Multi-select checkboxes in Proxy Hosts table
|
||||
- Bulk Actions button with ACL selection modal
|
||||
- Backend endpoint: `PUT /api/v1/proxy-hosts/bulk-update-acl`
|
||||
@@ -21,6 +22,7 @@ The bulk ACL feature introduces:
|
||||
## Testing Scope
|
||||
|
||||
### Backend Testing ✅ (Completed)
|
||||
|
||||
- [x] Unit tests for `BulkUpdateACL` handler (5 tests)
|
||||
- [x] Success scenario: Apply ACL to multiple hosts
|
||||
- [x] Success scenario: Remove ACL (null value)
|
||||
@@ -30,6 +32,7 @@ The bulk ACL feature introduces:
|
||||
- **Coverage**: 82.2% maintained
|
||||
|
||||
### Frontend Testing ✅ (Completed)
|
||||
|
||||
- [x] Unit tests for `bulkUpdateACL` API client (5 tests)
|
||||
- [x] Unit tests for `useBulkUpdateACL` hook (5 tests)
|
||||
- [x] Build verification (TypeScript compilation)
|
||||
@@ -38,7 +41,9 @@ The bulk ACL feature introduces:
|
||||
### Manual Testing 🔴 (Required)
|
||||
|
||||
#### Sub-Issue #1: Basic Functionality Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Navigate to Proxy Hosts page
|
||||
- [ ] Verify checkbox column appears in table
|
||||
- [ ] Select individual hosts using checkboxes
|
||||
@@ -51,7 +56,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Check database to verify `access_list_id` fields updated
|
||||
|
||||
#### Sub-Issue #2: ACL Removal Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Select hosts that have ACLs assigned
|
||||
- [ ] Open Bulk Actions modal
|
||||
- [ ] Select "🚫 Remove Access List" option
|
||||
@@ -62,7 +69,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Check database to verify `access_list_id` is NULL
|
||||
|
||||
#### Sub-Issue #3: Error Handling Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Select multiple hosts including one that doesn't exist
|
||||
- [ ] Apply ACL via bulk action
|
||||
- [ ] Verify toast shows partial success: "Updated X host(s), Y failed"
|
||||
@@ -73,7 +82,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Test applying invalid ACL ID (edge case)
|
||||
|
||||
#### Sub-Issue #4: UI/UX Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Verify checkboxes align properly in table
|
||||
- [ ] Test checkbox hover states
|
||||
- [ ] Verify "Bulk Actions" button appears/disappears based on selection
|
||||
@@ -86,7 +97,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Test on mobile viewport (responsive design)
|
||||
|
||||
#### Sub-Issue #5: Integration Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Create new ACL, immediately apply to multiple hosts
|
||||
- [ ] Verify Caddy config reloads once (not per host)
|
||||
- [ ] Test with 1 host selected
|
||||
@@ -99,7 +112,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Test concurrent user scenarios (multi-tab if possible)
|
||||
|
||||
#### Sub-Issue #6: Cross-Browser Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Chrome/Chromium (latest)
|
||||
- [ ] Firefox (latest)
|
||||
- [ ] Safari (macOS/iOS)
|
||||
@@ -108,7 +123,9 @@ The bulk ACL feature introduces:
|
||||
- [ ] Mobile Safari (iOS)
|
||||
|
||||
#### Sub-Issue #7: Regression Testing
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- [ ] Verify individual proxy host edit still works
|
||||
- [ ] Confirm single-host ACL assignment unchanged
|
||||
- [ ] Test proxy host creation with ACL pre-selected
|
||||
@@ -157,10 +174,12 @@ The bulk ACL feature introduces:
|
||||
## Related Files
|
||||
|
||||
**Backend:**
|
||||
|
||||
- `backend/internal/api/handlers/proxy_host_handler.go`
|
||||
- `backend/internal/api/handlers/proxy_host_handler_test.go`
|
||||
|
||||
**Frontend:**
|
||||
|
||||
- `frontend/src/pages/ProxyHosts.tsx`
|
||||
- `frontend/src/api/proxyHosts.ts`
|
||||
- `frontend/src/hooks/useProxyHosts.ts`
|
||||
@@ -168,11 +187,13 @@ The bulk ACL feature introduces:
|
||||
- `frontend/src/hooks/__tests__/useProxyHosts-bulk.test.tsx`
|
||||
|
||||
**Documentation:**
|
||||
|
||||
- `BULK_ACL_FEATURE.md`
|
||||
|
||||
## Testing Timeline
|
||||
|
||||
**Suggested Schedule:**
|
||||
|
||||
- Day 1: Sub-issues #1-3 (Basic + Error Handling)
|
||||
- Day 2: Sub-issues #4-5 (UI/UX + Integration)
|
||||
- Day 3: Sub-issues #6-7 (Cross-browser + Regression)
|
||||
@@ -180,6 +201,7 @@ The bulk ACL feature introduces:
|
||||
## Reporting Issues
|
||||
|
||||
When bugs are found:
|
||||
|
||||
1. Create a new bug report with `[Bulk ACL]` prefix
|
||||
2. Reference this testing issue
|
||||
3. Include screenshots/videos
|
||||
|
||||
Reference in New Issue
Block a user