55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelong](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [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
|
|
|
|
### Changed
|
|
|
|
- Centralized test fixtures in conftest.py
|
|
- Integration tests use shared client fixture |