Commit Graph

4 Commits

Author SHA1 Message Date
Andrew Kaszubski 1ea006e41f feat(db): add Trade model with CGT tracking and Australian FY support (#6) - TradeSide/TradeStatus/TradeOrderType enums, 50% discount for >12mo holdings, multi-currency FX, 87 tests 2025-12-26 14:46:06 +11:00
Andrew Kaszubski 1c6c2fadf1 feat(db): add Settings model with risk profiles and alert preferences (#5) - Implements RiskProfile enum, risk parameters, JSON alert_preferences, one-to-one User relationship, CheckConstraints, cascade delete, 43 tests 2025-12-26 14:16:42 +11:00
Andrew Kaszubski 0d09f15bd6 feat(db): add Portfolio model with LIVE/PAPER/BACKTEST types - Fixes #4 2025-12-26 13:46:39 +11:00
Andrew Kaszubski 9933a929df feat(api): add FastAPI backend with JWT auth and strategies endpoint (#48)
- Add FastAPI application with async/await support (tradingagents/api/)
- Implement JWT authentication with Argon2 password hashing (PyJWT, pwdlib)
- Create /api/v1/auth/login endpoint for user authentication
- Create /api/v1/strategies CRUD endpoints (list, create, get, update, delete)
- Add SQLAlchemy 2.0 async models (User, Strategy) with PostgreSQL/SQLite
- Add Alembic migrations for database schema management
- Add comprehensive test suite (208 tests in tests/api/)
- Add Pydantic schemas for request/response validation
- Add CORS and error handling middleware
- Update documentation (CHANGELOG.md, README.md)

Security: Argon2 password hashing, JWT expiration, user isolation,
SQL injection prevention via SQLAlchemy ORM, no hardcoded secrets

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:50:03 +11:00