feat: Platform isolation, Evomi geo-targeting, proxy management
Platform isolation:
- Rename handlers to {task}-{platform}.ts convention
- Deprecate -curl variants (now _deprecated-*)
- Platform-based routing in task-worker.ts
- Add Jane platform handlers and client
Evomi geo-targeting:
- Add dynamic proxy URL builder with state/city targeting
- Session stickiness per worker per state (30 min)
- Fallback to static proxy table when API unavailable
- Add proxy tracking columns to worker_tasks
Proxy management:
- New /proxies admin page for visibility
- Track proxy_ip, proxy_geo, proxy_source per task
- Show active sessions and task history
Validation filtering:
- Filter by validated stores (platform_dispensary_id + menu_url)
- Mark incomplete stores as deprecated
- Update all dashboard/stats queries
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
23
backend/migrations/107_proxy_tracking.sql
Normal file
23
backend/migrations/107_proxy_tracking.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- Migration: 107_proxy_tracking.sql
|
||||
-- Description: Add proxy tracking columns to worker_tasks for geo-targeting visibility
|
||||
-- Created: 2025-12-13
|
||||
|
||||
-- Add proxy tracking columns to worker_tasks
|
||||
ALTER TABLE worker_tasks
|
||||
ADD COLUMN IF NOT EXISTS proxy_ip VARCHAR(45);
|
||||
|
||||
ALTER TABLE worker_tasks
|
||||
ADD COLUMN IF NOT EXISTS proxy_geo VARCHAR(100);
|
||||
|
||||
ALTER TABLE worker_tasks
|
||||
ADD COLUMN IF NOT EXISTS proxy_source VARCHAR(10);
|
||||
|
||||
-- Comments
|
||||
COMMENT ON COLUMN worker_tasks.proxy_ip IS 'IP address of proxy used for this task';
|
||||
COMMENT ON COLUMN worker_tasks.proxy_geo IS 'Geo target used (e.g., "arizona", "phoenix, arizona")';
|
||||
COMMENT ON COLUMN worker_tasks.proxy_source IS 'Source of proxy: "api" (Evomi dynamic) or "static" (fallback table)';
|
||||
|
||||
-- Index for proxy analysis
|
||||
CREATE INDEX IF NOT EXISTS idx_worker_tasks_proxy_ip
|
||||
ON worker_tasks(proxy_ip)
|
||||
WHERE proxy_ip IS NOT NULL;
|
||||
Reference in New Issue
Block a user