Add ruff config to exclude alembic E402, SQLAlchemy F821, and pre-existing E501 line-length issues. Auto-fix 69 unused imports and 2 f-strings without placeholders. Manually fix 8 unused variables. Apply ruff format to 127 files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- POST /tenants/{tid}/devices/{did}/config-snapshot/trigger endpoint - Requires operator role, rate limited 10/minute - Returns 201 success, 404 device not found, 409 lock held, 502 failure, 504 timeout - Reuses NATS connection from routeros_proxy module - 6 tests covering all response paths including connection errors Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Test success returns 201 with sha256_hash - Test NATS timeout returns 504 - Test poller failure returns 502 - Test device not found returns 404 - Test lock contention returns 409 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>