Mining/pkg/mining
snider c2ff474386 feat: Add API authentication and comprehensive code review fixes
Security:
- Add HTTP Basic/Digest authentication middleware (enable via MINING_API_AUTH env)
- Fix WebSocket origin check with proper URL parsing
- Add max limit (10000) to remote log lines request
- Improve CLI args validation with stricter patterns

Networking:
- Fix WebSocket double-close with sync.Once in PeerConnection
- Add 10s dial timeout for WebSocket connections
- Reset write deadline after failed sends
- Fix handler race in Transport.OnMessage with RWMutex
- Make EventHub.Stop() idempotent, buffer channels to prevent goroutine leaks

Code Simplification:
- Extract AtomicWriteFile helper to reduce duplication across 4 files
- Remove redundant MinerTypeRegistry, use MinerFactory instead
- Register simulated miner in MinerFactory
- Remove dead portToString() code from manager.go

Documentation:
- Add Advanced API Authentication section to FUTURE_IDEAS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 14:07:26 +00:00
..
component feat: Implement logging functionality for miners with log buffer and retrieval endpoint 2025-12-29 22:10:45 +00:00
auth.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
component.go feat: Implement logging functionality for miners with log buffer and retrieval endpoint 2025-12-29 22:10:45 +00:00
config_manager.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
container.go refactor: Add reliability fixes and architecture improvements 2025-12-31 12:43:46 +00:00
container_test.go test: Add error path unit tests for context cancellation and cleanup 2025-12-31 13:04:20 +00:00
dual_mining_test.go feat: Add context propagation, state sync, and tests 2025-12-31 10:10:39 +00:00
errors.go feat: Add rate limiter with cleanup and custom error types 2025-12-31 10:56:26 +00:00
errors_test.go feat: Add rate limiter with cleanup and custom error types 2025-12-31 10:56:26 +00:00
events.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
events_test.go feat: Add context propagation, state sync, and tests 2025-12-31 10:10:39 +00:00
file_utils.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
manager.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
manager_interface.go feat: Enhance mining configuration management and API documentation 2025-12-07 16:26:18 +00:00
manager_race_test.go test: Add race condition tests and fix AVG float64 scan bug 2025-12-31 11:07:29 +00:00
manager_test.go fix: Update tests to handle autostart behavior 2025-12-31 10:17:14 +00:00
miner.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
miner_factory.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
miner_factory_test.go refactor: Add MinerFactory to centralize miner instantiation 2025-12-31 11:12:33 +00:00
mining.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
mining_profile.go feat: Add setup wizard and profile management components with styling 2025-12-10 22:17:38 +00:00
mining_test.go fix: Update tests to handle autostart behavior 2025-12-31 10:17:14 +00:00
node_service.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
profile_manager.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
ratelimiter.go feat: Add rate limiter with cleanup and custom error types 2025-12-31 10:56:26 +00:00
ratelimiter_test.go feat: Add rate limiter with cleanup and custom error types 2025-12-31 10:56:26 +00:00
repository.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
repository_test.go test: Add error path unit tests for context cancellation and cleanup 2025-12-31 13:04:20 +00:00
service.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
service_test.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
settings_manager.go fix: Address critical security and concurrency issues 2025-12-31 00:50:06 +00:00
settings_manager_test.go feat: Add CPU throttling, settings manager, and multi-miner tests 2025-12-30 16:35:02 +00:00
simulated_miner.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
stats_collector.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
stats_collector_test.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
syslog_unix.go refactor: Replace log.Printf with structured logging 2025-12-31 11:48:45 +00:00
syslog_windows.go refactor: Replace log.Printf with structured logging 2025-12-31 11:48:45 +00:00
throttle_test.go test: Add race condition tests and fix AVG float64 scan bug 2025-12-31 11:07:29 +00:00
ttminer.go refactor: Add reliability fixes, centralized version fetching, and CHANGELOG 2025-12-31 13:33:42 +00:00
ttminer_start.go feat: Add API authentication and comprehensive code review fixes 2025-12-31 14:07:26 +00:00
ttminer_stats.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
version.go refactor: Add reliability fixes, centralized version fetching, and CHANGELOG 2025-12-31 13:33:42 +00:00
xmrig.go refactor: Add reliability fixes, centralized version fetching, and CHANGELOG 2025-12-31 13:33:42 +00:00
xmrig_gpu_test.go feat: Add OpenCL GPU support for ProgPowZ, ETChash, and Blake3DCR 2025-12-30 23:01:16 +00:00
xmrig_start.go refactor: Add reliability fixes, centralized version fetching, and CHANGELOG 2025-12-31 13:33:42 +00:00
xmrig_stats.go refactor: Add StatsCollector pattern with miner type identification 2025-12-31 13:02:01 +00:00
xmrig_test.go fix: Address race conditions and network blocking issues 2025-12-31 01:55:24 +00:00