1. Architecture
Traffic Tool
  • Traffic Tool Docs
    • Tổng Quan
    • Buisness | Logic
      • Hệ thống được tạo ra để làm gì?
      • Tạo chiến dịch như thế nào?
      • Xử lý sự cố thường gặp
      • Báo cáo bảo mật tự động
      • Tổng hợp báo cáo như thế nào?
    • Project
      • ADMIN
        • Tổng quan
        • Hướng dẫn sử dung
          • Đăng Nhập & Xác Thực Hai Bước
          • HOME TRAFFIC & KILL TRAFFIC
          • CLICK ADS
          • REPORT SITE
          • Thống Kê Hệ Thống
          • Thống Kê Hàng Ngày
          • Tìm Kiếm Tự Động
          • Trung Tâm Báo Cáo
          • Quản Lý Tài Khoản
          • Quản Lý Server
          • Quản Lý Proxy
          • Quản Lý Gói Proxy
          • Quản Lý Nhà Cung Cấp Proxy
          • Quản Lý Backup Proxy
          • Quản Lý Tài Khoản Google
          • User Guide
        • Architecture
          • Setup Guide
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs and Monitoring
        • Deployment
          • Local
          • Staging
          • Production
        • Bussiness | Logic
          • 1. Thống kê hàng ngày (Daily Statistics)
          • 2. Thống kê hệ thống (System Statistics)
          • 3. Tìm kiếm tự động (Automated Discovery)
          • 4. Trung tâm Báo cáo (Report Center)
          • 5. Quản lý tài khoản (Account Management)
          • 6. Quản lý Hệ thống (System Management)
          • 7. Quản lý tài khoản Google (Google Account Management)
      • API
        • Tổng quan
        • Architecture
          • Setup Guide
          • Database Schema
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs and Monitoring
        • Deployment
          • Local
          • Staging
          • Production
        • API Interface
          • 🔑 Identity & Session
            • Đăng nhập hệ thống (Login)
            • Đăng ký tài khoản mới (Public)
            • Lấy danh sách người dùng (Phân trang)
            • Admin tạo người dùng mới
            • Lấy thông tin cá nhân hiện tại
            • Khởi tạo bảo mật 2FA
            • Xác thực mã OTP
            • Chi tiết người dùng theo ID
            • Cập nhật thông tin người dùng
            • Xóa tài khoản người dùng
            • Đổi mật khẩu
            • Kiểm tra Cấu hình Thông báo Telegram Toàn hệ thống
            • Bật/Tắt Thông báo Telegram Toàn cục
          • 📁 Campaign Management
            • Danh sách Chiến dịch Toàn cầu
            • Khởi tạo Chiến dịch Mới
            • Chi tiết Chiến dịch
            • Cập nhật Chiến dịch
            • Xóa Chiến dịch
            • Tắt/Mở Chiến dịch (Hàng loạt)
            • Dữ liệu Hình mẫu SEO (Negative SEO)
          • ⚙️ Project Mechanics
            • Danh sách Dự án (Projects List)
            • Khởi tạo Kịch bản Mô phỏng
            • Lấy chi tiết cấu hình Dự án
            • Cập nhật Kịch bản chạy
            • Xóa Dự án
            • Chỉnh sửa Hàng loạt (Bulk)
            • Bật/Tắt Dự án
          • 👤 Profile Management
            • Danh sách Vân tay số (Profiles Data)
            • Tạo Hồ sơ Đơn lẻ (Tạo Vân tay mới)
            • Nhập kho Tài khoản Email (Bulk Import)
            • Chi tiết Session/Cookies
            • Chỉnh sửa Hồ sơ/Ghi chú
            • Xóa Vân tay số và Dữ liệu Local
            • Mở khóa Captcha/Trạng thái Blocked
            • Tra cứu Kho Profile Khả dụng
            • Báo cáo Sức khỏe Kho Tài Khoản
          • 🦾 Worker Interface
            • Đăng ký Khởi tạo Node (Handshake)
            • Nhịp Tim Khảo Sát Tình Trạng (Heartbeat)
            • Nhận Cấu hình Bypass & Hệ thống
            • Kéo (PULL) Nhiệm vụ Traffic SEO
            • Báo cáo Sự cố Node (Crash Report)
          • 📊 Report: Execution
            • Kéo Công việc Báo cáo (Worker Pull)
            • Quản lý Giám sát Nhiệm vụ (Task Dashboard)
            • Bắn Lại Báo Cáo Thất Bại (Manual Retry)
          • 📊 Report: Discovery
            • Danh sách Tên miền Chờ Xử Lý (Discovery Pool)
            • Nhập Mục Tiêu Thủ Công (Manual Insert)
            • Kích hoạt Heuristic Scanner (Cào tự động)
            • Chi tiết Bằng Chứng (Evidence Data)
            • Dán nhãn Vi Phạm / Cập nhật Screenshot
            • Loại Bỏ Mục Tiêu
            • Duyệt Yêu Cầu (Approve to Execution)
          • 📊 Report: Platforms Configuration
            • Truy vấn Danh sách Nền tảng Đối tác (Vendor)
            • Tạo Nền tảng Vendor Báo cáo Mới
            • Bật/Tắt Trang báo cáo theo Loại
            • Cập nhật Metadata Trang
            • Xóa Trang Báo Cáo
            • Lấy Cài đặt LLM cho Vendor cụ thể
            • Cập nhật Cài đặt Tạo mẫu LLM
            • Lấy Cấu hình Schema Biểu mẫu cho Vendor
            • Cập nhật Yêu cầu Trường Biểu mẫu
          • 📊 Report: Email Automation
            • Danh sách SMTP/Mailer Server
            • Thêm kết nối SMTP Mới
            • Nhật ký Nhiệm vụ Gửi Mail (Email Log)
            • Phân tích Tỉ lệ Chuyển đổi (Email Delivery Analytics)
          • 🌐 Global Proxies
            • Danh sách Kho Proxy Phân trang (Proxy Pool)
            • Thêm mới Tuyến IP (Bulk Import)
            • Cập nhật Thông tin máy chủ Proxy
            • Xóa Proxy (Thu hồi tài nguyên)
            • Kích hoạt Xoay vòng (Rotate IP) Cưỡng bức
          • 📈 System Intelligence
            • Báo cáo Luồng Bảo mật Hợp nhất (Colossal Report)
            • Bản Đồ Lưu Lượng GeoIP (Heatmap)
          • 🪝 Webhook Integrations
            • Callback Hoàn tất Gói Lưu lượng SEO (Traffic Node)
            • Callback Thông báo Hoàn tất Bắn Report AI
      • Tool
        • Tổng quan
        • Architecture
          • Setup Guide
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs And Monitoring
          • Database Schema
        • Deployment
          • Local
          • Staging
          • Production
        • API interface
          • Tasks
            • Lấy tasks có phân trang và lọc
            • Xóa tất cả tasks
            • Get all tasks
            • Cập nhật một task
            • Xóa một task theo ID
            • Get all tasks
          • Group task
            • Tạo nhiều task groups
            • Lấy tất cả task groups
            • Xóa tất cả task groups
            • Xóa một task group theo ID
            • Endpoint /api/task-traffics/
            • Test parse proxy string
            • Endpoint /api/task-traffics/
          • Test
            • Mock proxy endpoint cho development
            • Mock profile endpoint cho development
            • Endpoint /api/test
            • Endpoint /api/test/account-stats
            • Endpoint /api/test/session-recommendation
            • Endpoint /api/test/check-browser
            • Endpoint /api/test/clear-browser-sessions
          • Proxies
            • Lấy tất cả proxy records
            • Tạo proxy record mới
            • Xóa tất cả proxies
            • Get all proxies
            • Xóa một proxy theo ID
            • Reset proxy process counter
            • Get all proxies
            • Get all proxies
          • Report Platforms
            • Submit report to multiple platforms
            • Submit report to specific platform
            • Get available platforms
            • Get platform statistics
            • Health check
          • Reports
            • Create a new report
            • Create a new report
            • Get report by ID
            • Get report by ID
            • Get report statistics
            • Get report groups
            • Get report groups
            • Get report group
            • Add report to group
            • Bulk add reports to group
            • Get report group statistics
            • Get analytics data
            • Get platform success rates
            • Get reports by platform
            • Get reports by group
            • Create test reports in bulk
            • Tạo PC report CSV
            • Lấy PC report JSON
            • Lấy report tasks
            • Giám sát report tasks
            • Report tasks đang hoạt động
            • Chi tiết report task
            • Thống kê reports
            • Dữ liệu biểu đồ reports
            • Lấy danh sách report sites
            • Tạo report site
            • Thống kê sites
            • Toggle site enabled/disabled
            • Toggle tất cả sites
            • Toggle sites theo type
            • Cập nhật hàng loạt AI prompts
            • Cập nhật site
            • Xóa site
            • Lấy cấu hình đầy đủ của site
            • Lấy AI prompt của site
            • Cập nhật AI prompt của site
            • Lấy GPT config của site
            • Cập nhật GPT config
            • Lấy response config của site
            • Cập nhật response config
            • Lấy security vendors đang bật
            • Phân tích keywords
            • Top keywords
            • Thống kê analytics
            • PC report dashboard
            • Lấy report domains
            • Thêm report domain
            • Chi tiết report domain
            • Thống kê hàng ngày
            • Cập nhật hàng loạt reports
          • Test Report
            • Test Microsoft report submission
            • Test AdGuard report submission
            • Test Google Ads report submission
            • Test Spamhaus report submission
            • Test ESET report submission
            • Test multi-platform report submission
            • Get available platforms
          • ESET Test
            • Simple test
            • Minimal POST test
            • Generate ESET report content
            • Get sample test data
            • Test form filling
            • Test full form submission
          • Spamhaus Test
            • Simple test
            • Minimal POST test
            • Generate Spamhaus report content
            • Get sample test data
            • Test Spamhaus form filling
            • Test full Spamhaus form submission
          • Report Scheduler
            • Get report scheduler statistics
            • Process ad detection result
            • Submit a scheduled report
            • Start report scheduler
            • Stop report scheduler
            • Get scheduler status
            • Process scheduled reports
            • Test browser session (non-headless)
            • Test report submission (non-headless)
          • Comprehensive Analytics
            • Get comprehensive dashboard analytics
            • Get overview statistics
            • Get brand-wise statistics
            • Get daily statistics
            • Get platform success rates
            • Get account performance
            • Get summary report
          • Search
            • Tạo nhiều search tasks
            • Lấy tổng số search tasks
          • Report Tasks
            • Tạo report tasks cho một domain
            • Tạo report tasks trực tiếp (hỗ trợ profileCountry và domainType rõ ràng)
            • Tạo report tasks cho nhiều domains cùng lúc
            • Tạo email-based report tasks
            • Lấy report task PENDING tiếp theo
            • Cập nhật status của report task
            • Lấy danh sách platforms có sẵn
            • Thống kê report tasks
            • Kích hoạt thực thi thủ công
          • Monitor
            • Thông tin tài nguyên hệ thống
          • System
            • Hello World
            • Health check
            • Đọc file log từ xa
            • Monitor worker status
          • Auth
            • Đăng nhập
            • Đăng ký tài khoản
          • User Management
            • Danh sách users có phân trang
            • Tạo user mới (Admin only)
            • Lấy tất cả users (không phân trang)
            • Lấy thông tin profile của user hiện tại
            • Tạo QR code TOTP cho 2FA
            • Xác thực TOTP để bật 2FA
            • Lấy user theo ID
            • Cập nhật thông tin user
            • Xóa user
            • Đổi mật khẩu user
          • Campaign Management
            • Danh sách campaigns có phân trang
            • Tạo campaign mới
            • Lấy tất cả campaigns
            • Thống kê tổng hợp campaigns
            • Xuất campaigns ra Excel
            • Lấy dữ liệu Negative SEO
            • Xuất dữ liệu Negative SEO ra Excel
            • Xuất Negative SEO theo IDs
            • Lấy dữ liệu Home Traffic
            • Xuất Home Traffic ra Excel
            • Xuất Home Traffic theo IDs
            • Lấy báo cáo campaigns (Public)
            • Lấy tất cả báo cáo campaigns (Public)
            • Lấy chi tiết campaign
            • Cập nhật campaign
            • Xóa campaign
            • Lấy campaigns đã fired theo type
          • Server Management
            • Danh sách servers có phân trang
            • Tạo server mới
            • Lấy tất cả servers
            • Lấy servers từ MongoDB
            • Báo cáo hiệu suất server
            • Thống kê health check
            • Thống kê task monitor
            • Lịch sử lỗi server
            • Thống kê lỗi server
            • Thay đổi trạng thái server
            • Xóa nhiều servers
            • Lấy server theo ID
            • Cập nhật server
            • Xóa server
            • Báo cáo servers (Public)
          • Project Management
            • Lấy tất cả projects
            • Tạo project mới
            • Lấy projects theo campaign
            • Cập nhật dữ liệu traffic
            • Cập nhật nhiều projects
            • Xóa nhiều projects
            • Lấy project theo ID
            • Cập nhật project
            • Cập nhật state của project
            • Cập nhật status của project
            • Tính lại chi tiết project
          • Task Management
            • Worker yêu cầu tasks
            • Reset task creation
          • Proxy Management
            • Danh sách proxies
            • Tạo proxy mới
            • Xóa tất cả proxies
            • Xuất proxies ra Excel
            • Tải template Excel mẫu
            • Tạo nhiều proxies
            • Import proxies từ Excel
            • Import từ tất cả providers
            • Xóa nhiều proxies
            • Lấy proxy theo ID
            • Cập nhật proxy
            • Xóa proxy
            • Toggle trạng thái proxy
          • Backup Proxy
            • Lấy danh sách backup proxies
            • Tạo backup proxy
            • Xóa nhiều backup proxies
            • Import từ Proxifly
            • Chạy health check
            • Lấy backup proxy theo ID
            • Cập nhật backup proxy
            • Xóa backup proxy
            • Test backup proxy
          • Proxy Providers
            • Lấy danh sách proxy providers
            • Tạo proxy provider
            • Xóa nhiều providers
            • Lấy provider theo ID
            • Cập nhật provider
            • Xóa provider
          • Proxy Packages
            • Lấy danh sách proxy packages
            • Tạo proxy package
            • Xóa nhiều packages
            • Lấy package theo ID
            • Cập nhật package
            • Xóa package
          • Profiles
            • Lấy profiles khả dụng (Public)
            • Lấy profile ngẫu nhiên (Public)
            • Danh sách profiles có phân trang
            • Phân tích profiles
            • Health check profiles
            • Tạo profile session
            • Lấy profile session
            • Cập nhật profile session
            • Xóa profile session
            • Đánh dấu profile đã dùng
            • Cập nhật nhiều profiles
            • Tạo nhiều profiles
            • Dọn dẹp sessions hết hạn
            • Dọn dẹp toàn diện
            • Tạo profile mới
            • Lấy profile theo ID
            • Cập nhật profile
            • Xóa profile
            • Thống kê profile
            • Sessions của profile (phân trang)
            • Report tasks của profile
            • Domains đã report bởi profile
            • Tasks theo domain của profile
            • Reset cooldown của profile
            • Test kết nối profile
            • Reset số lần đăng nhập thất bại
            • Ghi nhận đăng nhập thất bại
          • Keywords
            • Danh sách keywords
            • Tạo keyword mới
            • Xuất keywords ra Excel
            • Xác nhận fire keyword
            • Reset tất cả keywords
            • Lấy keyword theo ID
            • Cập nhật keyword
            • Xóa keyword
            • Reset keyword
            • Cập nhật status keyword
            • Kết quả SERP của keyword
          • Dashboard
            • Dữ liệu tổng hợp dashboard
            • Thống kê hệ thống
            • Thống kê traffic theo ID
            • Dữ liệu bảng biểu đồ traffic
            • Xuất báo cáo ra Excel
            • Lấy dữ liệu báo cáo
            • Cập nhật hàng loạt dashboard
            • Tính lại chi tiết projects (Admin only)
          • System Settings
            • Toggle Telegram notifications
            • Trạng thái Telegram notification
          • Activity Logs
            • Lấy activity logs
          • Locations
            • Lấy tất cả locations
            • Tạo location mới
            • Lấy location theo ID
            • Cập nhật location
            • Xóa location
          • Evidence
            • Kiểm tra evidence tồn tại
            • Kiểm tra evidence hàng loạt
            • Lấy evidence mới nhất
          • Files
            • Upload file
            • Download file
          • Server Hourly Reports
            • Lấy server hourly reports
          • Task Logs
            • Lấy task logs
          • Webhooks - Proxy
            • Lấy proxy cho task (Worker webhook)
            • Lấy proxies có thể rotate (Worker webhook)
            • Báo cáo kết quả proxy rotation (Worker webhook)
            • Lấy backup proxy (Worker webhook)
          • Webhooks - Profile
            • Lấy profiles (admin view, webhook)
            • Lấy profile ngẫu nhiên (Worker webhook)
            • Profiles khả dụng (webhook)
            • Lấy profile session (webhook)
            • Tạo profile session (webhook)
            • Đánh dấu profile đã dùng (webhook)
            • Lấy profile tags (webhook)
            • Lấy tất cả profile sessions (webhook)
          • Webhooks - Task
            • Cập nhật kết quả thực thi task (Worker webhook)
          • Webhooks - Search
            • Báo cáo domains đã click (webhook)
            • Lấy clicked domains (webhook)
            • Báo cáo domains (webhook)
            • Third party callback (webhook)
          • Webhooks - Logs
            • Lấy file logs (webhook)
            • Xóa nội dung log (webhook)
            • Kiểm tra IP address (webhook)
          • Webhooks - Keyword
            • Gửi kết quả SERP keyword (webhook)
          • Webhooks - Report
            • Cập nhật trạng thái report task (webhook)
          • Webhooks - CocCoc Token
            • Lấy CocCoc tokens (webhook)
            • Lock CocCoc token (webhook)
            • Unlock CocCoc token (webhook)
    • Schemas
      • LoginRequest
      • UpdateTask
      • WorkerStatus
      • StandardResponse
      • UserResponseDto
      • CreateTaskGroupRequest
      • HealthResponse
      • UserModel
      • CreateProxy
      • ErrorResponse
      • Pagination
      • CreateUserRequest
      • ReportTaskCreation
      • ErrorResponseFull
      • BulkDeleteRequest
      • UpdateUserRequest
      • CreateEmail
      • MessageResponse
      • UserResponse
      • PagingInfo
      • CreateMultipleSearchRequest
      • TrafficType
      • CampaignResponse
      • ProfileModel
      • CreateMultipleReportRequest
      • ServerResponse
      • CreateProfileRequest
      • UpdateReportStatusRequest
      • Task
      • BulkImportProfileReq
      • TestProxyRequest
      • TaskGroup
      • ProxyResponse
      • UpdateProfileRequest
      • CreateTask
      • UpdateTaskBody
      • KeywordResponse
      • CampaignModel
      • CreateSearch
      • TaskPaginatedResponse
      • LocationResponse
      • CreateCampaignRequest
      • ProxyTestResult
      • UpdateCampaignRequest
      • CreateReportTaskBody
      • BulkUpdateCampaignStatusReq
      • CreateEmailReportTaskBody
      • NegativeSeoData
      • BatchReportTaskItem
      • CreateProjectRequest
      • CreateReportTaskResponse
      • UpdateProjectRequest
      • BatchReportTaskResponse
      • ProjectModel
      • BulkUpdateProjectRequest
      • ReportTask
      • WorkerHandshakeRequest
      • UpdateReportTaskStatusBody
      • WorkerHandshakeResponse
      • UpdateReportTaskStatusResponse
      • WorkerHeartbeatPayload
      • PlatformsListResponse
      • WorkerGlobalSettings
      • ReportTaskStatsResponse
      • TaskPullRequest
      • ExecuteReportTaskResponse
      • WorkerFatalLog
      • CreateSearchTask
      • TaskModel
      • Proxy
      • TaskUpdateDto
      • CreateProxyBody
      • ReportTaskModel
      • CreateProxyResponse
      • ReportTaskResult
      • ResetProcessResponse
      • PCReportResponse
      • MonitorResponse
      • ReportSiteItem
      • CreateReportSiteRequest
      • TestProxyResponse
      • GPTConfig
      • TestProfileResponse
      • ResponseConfig
      • ReportDomainsResponse
      • ReportDomainItem
      • AddReportDomainRequest
      • UpdateReportDomainRequest
      • BulkUpdateDashboardRequest
      • ProxyModel
      • CreateProxyRequest
      • UpdateProxyRequest
      • SMTPServerConfig
      • EmailTaskLog
      • GeoLocation
      • CampaignConfigs
      • ProjectAttribute
      • TaskTrafficType
      • ReportTaskItem
      • SummaryStats
      • DailyStats
      • BrandStats
      • ProfileStats
      • FieldConfig
  1. Architecture

Database Schema

Database Schema — Tools V2 Worker Engine#


1. Tổng Quan#

1.1. Vai Trò Của Database#

Tools V2 duy trì MongoDB riêng biệt, độc lập với database MySQL của Go API Backend. Database này phục vụ ba mục đích:
Lưu trạng thái task groups để crash recovery khi server restart.
Lưu proxy records trong vòng đời rotation và webhook.
Lưu search tasks và report tasks để xử lý bất đồng bộ.
Database này là local state của worker, không phải source of truth. Go API Backend là nơi lưu dữ liệu chính thức.

1.2. Tên Database#

Mặc định: tool-traffic-tools (cấu hình qua DB_MONGO_DATABASE).

1.3. Danh Sách Collections#

CollectionModel ClassMô tả
task_groupsTaskGroupNhóm tác vụ traffic, mỗi group chứa nhiều tasks
tasksTaskTác vụ traffic riêng lẻ (embedded trong task_groups)
proxiesProxyProxy records trong vòng đời rotation
searchSearchTác vụ quét thứ hạng từ khóa
report_tasksReportTaskTác vụ báo cáo bảo mật

1.4. Công Nghệ#

Mongoose ^8.12.1: ODM chính, quản lý connection và queries.
Typegoose ^12.13.0: Decorator-based schema definition trên TypeScript classes.
@modelOptions: Cấu hình collection name, timestamps, allowMixed.
@prop: Định nghĩa từng field với type, default, required, enum.
TimeStamps: Base class tự động thêm createdAt và updatedAt.

2. Collection: task_groups#

2.1. Mục Đích#

Lưu trữ task groups nhận từ Go API Backend. Mỗi task group là một đơn vị công việc được thực thi bởi một phiên Chrome. Khi server restart, các task groups có status PROCESSING được reset về PENDING để retry.

2.2. Schema Đầy Đủ#

FieldTypeRequiredDefaultMô tả
_idstringautoObjectId hexID duy nhất, tự sinh từ ObjectId
proxy_webhookstringyes—URL để lấy proxy cho task group này
statusnumberno0 (PENDING)Trạng thái: 0=PENDING, 1=PROCESSING, 2=COMPLETED
proxyobjectnonullProxy đang dùng: {host, port, username?, password?, type?}
proxy_idstringnonullID của proxy record
user_agentstringnonullUser agent string của phiên Chrome
geolocationobjectnonullVị trí địa lý: {lat, lng}
tasksTask[]yes—Mảng các Task objects (embedded)
retries_totalnumberno0Số lần đã retry
createdAtDateauto—Thời điểm tạo
updatedAtDateauto—Thời điểm cập nhật cuối

2.3. Enum: TaskGroupStatus#

2.4. Embedded Object: Proxy#

2.5. Embedded Object: Geolocation#

2.6. Ví Dụ Document#

{
  "_id": "507f1f77bcf86cd799439011",
  "proxy_webhook": "https://traffic-api.longtu.club/webhook/proxy/get-proxy",
  "status": 0,
  "proxy": null,
  "proxy_id": null,
  "user_agent": null,
  "geolocation": null,
  "tasks": [
    {
      "_id": "507f1f77bcf86cd799439012",
      "id": "task-abc-123",
      "project_id": 42,
      "traffic_type": {
        "method": 1,
        "only_ads": true,
        "is_kill": false,
        "organic_engine": 0,
        "search_keyword": "mua laptop gaming",
        "links": ["https://example.com"]
      },
      "traffic_device": 0,
      "result_status": 0
    }
  ],
  "retries_total": 0,
  "createdAt": "2026-03-26T09:00:00.000Z",
  "updatedAt": "2026-03-26T09:00:00.000Z"
}

2.7. Indexes#

Không có custom indexes được định nghĩa trong code. MongoDB tự tạo index trên _id.

2.8. Vòng Đời Document#

Được tạo khi taskRequestService.requestAndCreateTaskGroups() nhận tasks từ Go API.
Status chuyển từ PENDING → PROCESSING khi cron bắt đầu thực thi.
Status chuyển từ PROCESSING → COMPLETED khi task hoàn thành.
Bị xóa bởi task-group-cleanup-cron lúc 00:30 hàng ngày (xóa tasks tạo trước 00:00 hôm nay).
Bị xóa ngay lập tức khi retries_total > TASK_RETRY_LIMIT.

3. Collection: tasks (Embedded)#

3.1. Mục Đích#

Task là model embedded trong TaskGroup.tasks[]. Mỗi task đại diện cho một hành động cụ thể trên một thiết bị cụ thể. Một task group thường chứa nhiều tasks cho các nền tảng khác nhau (Windows, Mac, Android, iOS).

3.2. Schema Đầy Đủ#

FieldTypeRequiredDefaultMô tả
_idstringautoObjectId hexID duy nhất
idstringyes—ID từ Go API Backend
project_idnumberyes—ID của project/chiến dịch
proxy_urlstringyes—URL để lấy proxy riêng cho task này
webhook_urlstringyes—URL để gửi kết quả về Go API
call_webhook_countnumberno0Số lần đã gọi webhook
page_viewobject[]no—Cấu hình thời gian ở lại trang: [{time_min, time_max}]
traffic_typeobjectyes—Cấu hình loại traffic (xem chi tiết bên dưới)
traffic_devicenumberyes—Loại thiết bị: 0=Desktop, 1=Mobile
device_osnumbernonullOS: Desktop(0=Windows, 1=Mac), Mobile(0=Android, 1=iOS)
result_statusnumberno0Kết quả: 0=UNKNOWN, 1=SUCCESS, -1=ERROR, -2=NOT_FOUND, -3=CAPTCHA
result_errorstringnonullThông báo lỗi nếu thất bại
ip_publicstringnonullIP public đã dùng
ranknumbernonullThứ hạng tìm thấy trong SERP
execution_timenumberno0Thời gian thực thi (giây)
user_agentstringnonullUser agent đã dùng
geolocationobjectnonullVị trí địa lý: {lat, lng}
ads_relationsobject[]no[]Ads relations cho click tracking
resolved_projectsobject[]nonullProjects đã resolve
screenshot_urlstringnonullURL ảnh bằng chứng trên cloud
screenshot_keystringnonullStorage key của ảnh
profile_idstringnonullID của browser profile đã dùng
retry_countnumberno0Số lần đã retry task này

3.3. Embedded Object: TaskTrafficType#

3.4. Enum: TaskTrafficMethod#

3.5. Enum: TaskTrafficEngine#

3.6. Enum: TaskResultStatus#

3.7. Xác Định Loại Flow Từ TaskTrafficType#

Điều kiệnFlow
method=0Home Traffic Flow (Direct)
method=1, only_ads=false, is_kill=falseSearch Flow (Organic)
method=1, only_ads=trueAds Flow (Google Ads click)
method=1, is_kill=trueKill Flow (Negative SEO)
organic_engine=2, only_ads=false, is_kill=falseCocCoc Flow

4. Collection: proxies#

4.1. Mục Đích#

Lưu proxy records trong vòng đời ngắn: từ khi Go API tạo proxy record, qua bước rotation, đến khi webhook được gọi và record bị xóa. Đây là temporary storage, không phải proxy pool lâu dài.

4.2. Schema Đầy Đủ#

FieldTypeRequiredDefaultMô tả
_idstringautoObjectId hexID duy nhất
ipstringyes—IP address của proxy
portnumberyes—Port kết nối
usernamestringyes—Username xác thực
passwordstringyes—Password xác thực
ip_publicstringyes—IP public sau khi rotate
rotate_urlstringyes—URL để gọi khi cần rotate (lấy IP mới)
webhook_urlstringyes—URL để callback khi proxy sẵn sàng
auth_tokenstringnonullBearer token cho rotate_url
statusnumberno0 (PENDING)0=PENDING, 1=PROCESSING, 2=COMPLETED
status_codenumbernoundefinedHTTP status code từ rotate response
responsestringnoundefinedResponse body từ rotate (khi lỗi)
is_errorbooleannofalseCó lỗi trong lần rotate gần nhất
is_successbooleannofalseRotation thành công
is_captchabooleannofalseProxy bị CAPTCHA
is_activebooleannotrueProxy đang active
in_usenumberno0Số tasks đang dùng proxy này
error_countnumberno0Tổng số lần lỗi
used_countnumberno0Tổng số lần đã dùng
last_used_atDatenonullLần cuối được dùng
expired_atDatenonullThời điểm hết hạn
areastringno""Khu vực địa lý
package_namestringno""Tên gói proxy
proxy_pricenumberno0Giá proxy
domain_usedany[]nonullDanh sách domains đã dùng
domain_blocksstring[]no[]Danh sách domains bị block
regionstringno""Region của proxy
call_webhook_countnumberno0Số lần đã gọi webhook
retry_countnumberno0Số lần rotation thất bại
disable_auto_rotatebooleannofalseTắt auto rotation
created_atDateauto—Thời điểm tạo
updated_atDateauto—Thời điểm cập nhật

4.3. Enum: Status#

4.4. Vòng Đời Document#

Go API tạo record (PENDING)
  → proxy-cron-direct rotate proxy (PENDING → COMPLETED)
  → proxy-cron-webhook-direct gọi webhook_url
  → Xóa record sau khi webhook thành công
Nếu webhook thất bại, call_webhook_count tăng. Sau 3 lần thất bại, record bị xóa.
Nếu rotation thất bại, retry_count tăng. Sau PROXY_RETRY_LIMIT lần, record bị xóa.

4.5. Ví Dụ Document#

{
  "_id": "507f1f77bcf86cd799439020",
  "ip": "1.2.3.4",
  "port": 8080,
  "username": "user123",
  "password": "pass456",
  "ip_public": "5.6.7.8",
  "rotate_url": "https://proxy-provider.com/rotate/abc123",
  "webhook_url": "https://traffic-api.longtu.club/webhook/proxy/callback",
  "auth_token": null,
  "status": 2,
  "is_error": false,
  "is_success": true,
  "retry_count": 0,
  "call_webhook_count": 0,
  "disable_auto_rotate": false,
  "region": "VN",
  "created_at": "2026-03-26T09:00:00.000Z",
  "updated_at": "2026-03-26T09:00:05.000Z"
}

5. Collection: search#

5.1. Mục Đích#

Lưu tác vụ quét thứ hạng từ khóa. Mỗi document đại diện cho một yêu cầu tìm kiếm từ khóa trên search engine và ghi lại thứ hạng của các URLs trong kết quả.

5.2. Schema Đầy Đủ#

FieldTypeRequiredDefaultMô tả
_idstringautoObjectId hexID duy nhất
keywordstringyes—Từ khóa cần tìm kiếm
devicenumberyes—Loại thiết bị: 0=Desktop, 1=Mobile
device_osnumbernonullOS của thiết bị
result_numnumberyes—Số kết quả cần lấy
web_hook_urlstringyes—URL để gửi kết quả về Go API
web_hook_sentnumberno0Số lần đã gửi webhook
proxy_urlstringyes—URL để lấy proxy
enginenumberyes—Search engine: 0=GOOGLE_VN, 1=GOOGLE, 2=COCCOC
statusnumberno0 (PENDING)0=PENDING, 1=RUNNING, 2=COMPLETED
search_dataobjectnonullKết quả tìm kiếm (xem bên dưới)
proxyanynonullProxy đang dùng
geolocationobjectnonullVị trí địa lý: {lat, lng}
createdAtDateauto—Thời điểm tạo
updatedAtDateauto—Thời điểm cập nhật

5.3. Enum: SearchStatus#

5.4. Embedded Object: SearchData#

5.5. Ví Dụ Document#

{
  "_id": "507f1f77bcf86cd799439030",
  "keyword": "mua laptop gaming giá rẻ",
  "device": 0,
  "device_os": null,
  "result_num": 10,
  "web_hook_url": "https://traffic-api.longtu.club/webhook/keyword-result",
  "web_hook_sent": 0,
  "proxy_url": "https://traffic-api.longtu.club/webhook/proxy/get-proxy",
  "engine": 0,
  "status": 2,
  "search_data": {
    "ads": [
      { "url": "https://advertiser1.com", "rank": 1 },
      { "url": "https://advertiser2.com", "rank": 2 }
    ],
    "search": [
      { "url": "https://organic1.com", "rank": 1 },
      { "url": "https://organic2.com", "rank": 2 },
      { "url": "https://organic3.com", "rank": 3 }
    ]
  },
  "proxy": { "host": "1.2.3.4", "port": 8080 },
  "geolocation": { "lat": 10.7769, "lng": 106.7009 },
  "createdAt": "2026-03-26T09:00:00.000Z",
  "updatedAt": "2026-03-26T09:05:00.000Z"
}

6. Collection: report_tasks#

6.1. Mục Đích#

Lưu tác vụ báo cáo bảo mật. Đây là collection phức tạp nhất với nhiều fields tracking vòng đời đầy đủ của một báo cáo: từ khi tạo, qua AI content generation, thực thi, đến callback về Go API.

6.2. Schema Đầy Đủ#

Core Fields:
FieldTypeRequiredDefaultMô tả
_idstringautoObjectId hexID duy nhất
domainstringyes—Domain cần báo cáo
keywordstringyes—Từ khóa liên quan đến domain
platformstringyes—Tên nền tảng báo cáo (xem ReportPlatform enum)
reportTypestringyes—"BROWSER_BASED" hoặc "EMAIL_BASED"
platformUrlstringnonullURL của form báo cáo trên nền tảng
statusstringyes"PENDING"Trạng thái (xem ReportTaskStatus)
prioritynumberno1Ưu tiên thực thi (cao hơn = ưu tiên hơn)
reportDomainIdstringnonullID tham chiếu đến report domain trên Go API
Resource Assignment Fields:
FieldTypeRequiredDefaultMô tả
assignedAccountIdstringnonullID tài khoản được gán
assignedProxyIdstringnonullID proxy được gán
assignedProfileIdstringnonullID profile được gán
proxyUrlstringnonullWebhook URL để lấy proxy
profileUrlstringnonullWebhook URL để lấy profile
profileCountrystringno"Vietnam"Quốc gia của profile (dùng cho email origin)
domainTypestringno"normal"Loại domain: "google_ads" hoặc "normal"
Deduplication Fields:
FieldTypeRequiredDefaultMô tả
reportDatestringyes—Ngày báo cáo dạng YYYY-MM-DD
uniqueKeystringyes, unique—Composite key: domain+proxyId+profileId+reportDate+platform
Timing Fields:
FieldTypeRequiredDefaultMô tả
scheduledForDateyes—Thời điểm dự kiến thực thi
retryCountnumberno0Số lần đã retry
maxRetriesnumberno3Số lần retry tối đa
startedAtDatenonullThời điểm bắt đầu thực thi
completedAtDatenonullThời điểm hoàn thành
executionTimenumbernonullThời gian thực thi (ms)
Result Fields:
FieldTypeRequiredDefaultMô tả
resultobjectnonullKết quả chi tiết (xem ReportTaskResult)
errorstringnonullThông báo lỗi nếu thất bại
Proxy Snapshot Fields:
FieldTypeRequiredDefaultMô tả
proxySnapshotobjectnonullSnapshot trạng thái proxy tại thời điểm tạo
useProxySnapshotbooleannotrueDùng snapshot thay vì live proxy
fallbackProxyIdstringnonullProxy dự phòng nếu proxy chính thất bại
Callback Fields:
FieldTypeRequiredDefaultMô tả
callbackSentbooleannofalseĐã gửi callback về Go API chưa
callbackSentAtDatenonullThời điểm gửi callback
callbackResponsestringnonullResponse từ Go API khi callback
callbackRetryCountnumberno0Số lần retry callback
webhook_urlstringnonullURL để gửi callback khi hoàn thành
apiTaskIdstringnonullTask ID gốc từ Go API
Debug Fields:
FieldTypeRequiredDefaultMô tả
serverstringnonullServer IP thực thi task
gptRawPromptstringnonullRaw GPT prompt response để debug
imageUrlsstring[]no[]Image URLs từ domain
videoUrlsstring[]no[]Video URLs từ domain
platformTypestringnonullLoại platform: "browser" hoặc "email"

6.3. ReportTaskStatus Values#

6.4. ReportType Values#

6.5. Embedded Object: ReportTaskResult#

6.6. Embedded Object: AIGenerationMetadata#

6.7. Embedded Object: ProxySnapshot#

6.8. Unique Key Constraint#

Field uniqueKey có constraint unique: true. Composite key được tạo từ:
{domain}_{proxyId}_{profileId}_{reportDate}_{platform}
Điều này ngăn chặn việc tạo duplicate report tasks cho cùng domain, proxy, profile, ngày và nền tảng.

6.9. Ví Dụ Document#

{
  "_id": "507f1f77bcf86cd799439040",
  "domain": "malicious-domain.com",
  "keyword": "mua hàng online",
  "platform": "GOOGLE_SAFE_BROWSING",
  "reportType": "BROWSER_BASED",
  "platformUrl": "https://safebrowsing.google.com/safebrowsing/report_phish/",
  "status": "COMPLETED",
  "priority": 1,
  "reportDate": "2026-03-26",
  "uniqueKey": "malicious-domain.com_proxy123_profile456_2026-03-26_GOOGLE_SAFE_BROWSING",
  "scheduledFor": "2026-03-26T09:00:00.000Z",
  "retryCount": 0,
  "maxRetries": 3,
  "startedAt": "2026-03-26T09:00:00.000Z",
  "completedAt": "2026-03-26T09:02:30.000Z",
  "executionTime": 150000,
  "result": {
    "success": true,
    "message": "Report submitted successfully to GOOGLE_SAFE_BROWSING",
    "platform": "GOOGLE_SAFE_BROWSING",
    "reportType": "BROWSER_BASED",
    "submittedAt": "2026-03-26T09:02:25.000Z",
    "url": "https://safebrowsing.google.com/safebrowsing/report_phish/",
    "screenshotUrl": "https://tools-greeting1073.sgp1.cdn.digitaloceanspaces.com/screenshots/abc123.png",
    "aiMetadata": {
      "model": "gpt-4o-mini",
      "promptTokens": 450,
      "completionTokens": 280,
      "totalTokens": 730,
      "estimatedCost": 0.000146,
      "generatedAt": "2026-03-26T09:00:05.000Z"
    }
  },
  "callbackSent": true,
  "callbackSentAt": "2026-03-26T09:02:35.000Z",
  "server": "77.37.47.88",
  "createdAt": "2026-03-26T08:59:00.000Z",
  "updatedAt": "2026-03-26T09:02:35.000Z"
}

7. ReportPlatform Enum — Danh Sách Đầy Đủ#

7.1. Browser-Based Platforms (20 nền tảng)#

Các nền tảng báo cáo qua form trực tiếp trên website:
Enum ValueMô tả
SPAMHAUSBáo cáo spam infrastructure và malware hosting
GOOGLE_SAFE_BROWSINGBáo cáo phishing và malware đến Google
MOZILLA_FIREFOXBáo cáo đến Mozilla Firefox
MOZILLA_WEBCOMPATBáo cáo website không tương thích Firefox
ADGUARDBáo cáo quảng cáo độc hại đến AdGuard
GOOGLE_ADSBáo cáo vi phạm chính sách Google Ads
GOOGLE_ADS_THIRDPARTYBáo cáo quảng cáo bên thứ ba vi phạm
GOOGLE_LEGAL_TROUBLESHOOTERBáo cáo vi phạm pháp lý qua troubleshooter
GOOGLE_LEGAL_SPECIFICBáo cáo vi phạm pháp lý cụ thể
GOOGLE_LEGAL_CATEGORY2Báo cáo vi phạm pháp lý danh mục 2
CLOUDFLAREBáo cáo lạm dụng dịch vụ Cloudflare
GOOGLE_PLAYBáo cáo ứng dụng vi phạm Google Play
US_CERTBáo cáo đến US-CERT
ESETBáo cáo malware đến ESET
MICROSOFT_SMARTSCREENBáo cáo website nguy hiểm cho SmartScreen
MICROSOFTBáo cáo đến Microsoft Security
NETCRAFTBáo cáo phishing đến Netcraft
FORTINETBáo cáo đến Fortinet
CISABáo cáo đến CISA (US Cybersecurity Agency)
NCSCBáo cáo đến NCSC (UK National Cyber Security Centre)

7.2. Google Email Platforms (8 nền tảng)#

Enum ValueĐịa chỉ email
GOOGLE_EMAILĐịa chỉ abuse chung của Google
GOOGLE_CLOUD_COMPLIANCE_EMAILGoogle Cloud compliance
GOOGLE_SPAM_GMAIL_EMAILBáo cáo spam Gmail
GOOGLE_ADS_ABUSE_EMAILGoogle Ads abuse
GOOGLE_ADS_NOREPLY_EMAILGoogle Ads noreply
GOOGLE_PLAY_ABUSE_EMAILGoogle Play abuse
GOOGLE_YOUTUBE_ABUSE_EMAILYouTube abuse
GOOGLE_GMAIL_ABUSE_EMAILGmail abuse

7.3. VirusTotal Security Platforms (70+ nền tảng)#

Các nền tảng từ danh sách VirusTotal vendors, bao gồm:
Antivirus vendors: BITDEFENDER, SOPHOS, EMSISOFT, DR_WEB, G_DATA, KASPERSKY, ESET_VT, v.v.
Threat intelligence: ALIENVAULT, ALPHASOC, CYBLE, CRIMINAL_IP, EMERGINGTHREATS, v.v.
Phishing databases: OPENPHISH, PHISHING_DATABASE, PHISHTANK, CHONG_LUA_DAO, v.v.
Spam databases: SPAMHAUS, STOPFORUMSPAM, SPAM404, v.v.
Security vendors: ABUSIX, ACRONIS, BLUELIV, CERTEGO, v.v.

7.4. Vietnamese Telecom & Government Platforms (15 nền tảng)#

Enum ValueTổ chức
VIETTEL_VTI_SUPPORTViettel VTI Support
VIETTEL_CSKHViettel CSKH
VNPT_HOTROVNPT Hỗ trợ
VNPT_CSKHVNPT CSKH
FPT_HOTROKHACHHANGFPT Hỗ trợ khách hàng
FPT_SECURITYFPT Security
MOBIFONE_KHACHHANGMobifone Khách hàng
CMCTELECOM_INFOCMC Telecom
MPS_TIEPNHANTOGIACTOIPHAMBộ Công an - Tiếp nhận tố giác tội phạm
CHINHPHU_DICHVUCONGChính phủ - Dịch vụ công
THANHTRA_CUCCHONGTHAMNHUNGThanh tra - Cục chống tham nhũng
MPS_A05_CONTACTBộ Công an A05
AIS_NCSCAIS NCSC
MIC_AISBộ TT&TT AIS
VNCERT_IRVNCERT Incident Response

7.5. CERT & Report Platforms (9 nền tảng)#

Enum ValueTổ chức
THAICERT_REPORTThaiCERT
AUSCERT_REPORTAusCERT (Australia)
SPAMHAUS_REPORTSpamhaus
CERT_IN_REPORTCERT-In (India)
CERT_EU_REPORTCERT-EU
SINGCERT_REPORTSingCERT (Singapore)
JPCERT_REPORTJPCERT (Japan)
OPENDNS_REPORTOpenDNS
MYCERT_REPORTMyCERT (Malaysia)

8. Quan Hệ Giữa Collections#

8.1. task_groups ↔ tasks#

tasks là embedded array trong task_groups. Không có collection riêng cho tasks — chúng luôn tồn tại trong context của task group.
Một task group thường chứa 1-4 tasks, mỗi task cho một nền tảng thiết bị khác nhau (Windows, Mac, Android, iOS).

8.2. task_groups ↔ proxies#

Quan hệ gián tiếp qua proxy_webhook URL:
task_groups.proxy_webhook là URL để lấy proxy.
Khi task group được thực thi, hệ thống gọi URL này.
Go API tạo proxy record trong collection proxies.
Proxy record được rotate và callback về Go API.
Task group nhận proxy info và lưu vào task_groups.proxy.

8.3. Không Có Foreign Keys#

MongoDB không có foreign key constraints. Các collections hoàn toàn độc lập. Quan hệ được thực hiện qua:
Embedded documents (tasks trong task_groups).
URL references (proxy_webhook, webhook_url).
String IDs (proxy_id, profile_id, apiTaskId).

9. Indexes Và Performance#

9.1. Indexes Mặc Định#

MongoDB tự tạo index trên _id cho tất cả collections.

9.2. Unique Index#

Collection report_tasks có unique index trên uniqueKey:

9.3. Queries Thường Dùng#

task_groups:
proxies:
report_tasks:

10. Quản Lý Database#

10.1. Kết Nối#

10.2. Xem Thống Kê Collections#

10.3. Xóa Dữ Liệu Test#

Hoặc thủ công:

10.4. Backup#

10.5. Restore#


11. Lưu Ý Quan Trọng#

11.1. allowMixed: Severity.ALLOW#

Tất cả models đều có allowMixed: Severity.ALLOW. Điều này cho phép Mongoose lưu mixed types trong schema mà không báo lỗi. Cần thiết vì một số fields như proxy, search_data, result có cấu trúc động.

11.2. Không Có Validation Ở Database Level#

Validation chủ yếu ở application level (TypeScript types, Zod). Database không enforce strict schema ngoài required và unique constraints.

11.3. Timestamps Naming#

Collection proxies dùng custom timestamp names:
Các collections khác dùng default: createdAt và updatedAt.

11.4. _id Là String, Không Phải ObjectId#

Tất cả models dùng string cho _id thay vì MongoDB ObjectId:
toHexString() convert ObjectId thành 24-character hex string. Điều này giúp dễ dàng serialize/deserialize qua JSON mà không cần special handling.
Modified at 2026-03-31 00:05:09
Previous
Logs And Monitoring
Next
Local
Built with