feat(be): exempt failed connection & provider quota jobs from daily usage quota
Pull Request Overview: Client Resilience, Quota Waiver Policy & Bilingual Localization
This pull request introduces connection resilience, client-side data handling utilities, an automatic quota exemption policy for connection/provider failures, and complete English/Vietnamese bilingual localization across the platform.
Backend Changes (data-crawler-be)
1. Quota Exemption Policy for Failed Connection & Provider Outages
-
Quota Exemption Logic (
crawl-job.repository.ts):- Updated
countJobsSinceto exclude crawl jobs that failed due to connection disruption or provider limitations (e.g., Firecrawl HTTP 402, timeouts, DNS failures) wheresuccessPages === 0. - Updated
sumPagesCrawledByUserto avoid deducting pages from user limits when a job fails without scraping any page.
- Updated
-
Error Mapping Expansion (
error-mapping.helper.ts):- Enhanced
isConnectionLossErrorto identify provider credit exhaustion (402,credit), network drops (ECONNRESET,ECONNREFUSED), timeouts, and DNS failures.
- Enhanced
-
Test Suite:
- All Jest unit test suites pass with 100% success rate (39 suites, 430 tests passing).