proxy-pool/CHANGELOG.md

2.5 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelong, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Project scaffold with uv, pre-commit, ruff, and conventional commits
  • Database infrastructure: async SQLAlchemy 2.0 with asyncpg driver
  • Proxy domain models: ProxySource, Proxy, ProxyCheck, ProxyTag
  • Accounts domain models: User, ApiKey, CreditLedger, ProxyLease
  • Alembic async migration setup with initial schema
  • Pydantic-settings configuration module
  • Integration test infrastructure with per-test rollback
  • Update configuration into subgroups
  • Plugin system: Protocol contracts, registry with validation, event bus
  • Plugin auto-discovery via importlib package scanning
  • Built-in plugins: plaintext parser, TCP connect checker, SMTP notifier
  • Plugin discovery integration tests
  • FastAPI app factory with lifespan (database, Redis, plugin discovery)
  • Health check endpoint
  • Proxy source CRUD routes (list, create, get, update, delete)
  • FastAPI dependency providers for database session, Redis, and plugin registry
  • Pydantic schemas for proxy domain
  • Proxy query endpoint with filtering by status, protocol, anonymity, country, score, latency, uptime
  • Sorting and pagination for proxy listings
  • Proxy service layer with upsert and query functions
  • User registration with API key generation
  • API key authentication via Bearer token
  • Credit ledger with balance queries
  • API key management (create, list, revoke)
  • Account info and credit history endpoints
  • Proxy acquire endpoint with atomic lease creation via Redis
  • Credit debit on acquisition with balance verification
  • Proxy release endpoint with immediate lease cleanup
  • Lease audit trail in PostgreSQL
  • ARQ worker with startup/shutdown lifecycle
  • Scrape tasks: scrape_source, scrape_all
  • Validation tasks: validate_proxy with staged pipeline, revalidate_sweep
  • Cleanup tasks: prune_dead_proxies, prune_old_checks, expire_leases
  • Cron schedules for all periodic tasks
  • Production Dockerfile with multi-stage uv build
  • Test Dockerfile with dev dependencies
  • Docker Compose test stack with ephemeral Postgres (tmpfs)
  • Database reset script for local development
  • Makefile with common development commands
  • Manual scrape trigger endpoint: POST /sources/{id}/scrape
  • Protocol-prefix parser plugin for socks5://ip:port format

Changed

  • Centralized test fixtures in conftest.py
  • Integration tests use shared client fixture