mirror of
https://github.com/Xevion/linkpulse.git
synced 2025-12-06 01:15:30 -06:00
111 lines
4.3 KiB
Markdown
111 lines
4.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [0.3.0]
|
|
|
|
## Added
|
|
|
|
- A release checklist to the `CHANGELOG.md` file, as a reminder for procedure.
|
|
- An action workflow for invoking `pytest`, with coverage report generation in CI/CD
|
|
- backend: Login & Logout routes
|
|
- backend: Rate Limiting via custom `RateLimiter` dependency
|
|
- backend: `User` model, `Session` model with migration script
|
|
- backend: `Session` model constraints for `token` length, `expiry` & `last_used` timestamps
|
|
- backend: `SessionDependency` for easy session validation, enforcement & handling per route
|
|
- backend: provided `LOG_JSON_FORMAT` and `LOG_LEVEL` environment variable defaults in `run.sh` development script
|
|
- backend: Simple `/health` & `/api/migrations` endpoint tests
|
|
- backend: `utc_now` helper function
|
|
- backend: `pwdlib[argon2]`, `pytest` (`pytest-cov`, `pytest-xdist`), `limits`, `httpx`, `email-validator` pacakges
|
|
- frontend: Re-initialized with `vite` template, setup `@tanstack/router` & `shadcn` components.
|
|
- frontend: Added Login & Register page, added basic authentication check with redirect
|
|
- frontend: Added Zustand state management, basic login & session API functions with `true-myth` types.
|
|
- frontend: Added `zustand`, `true-myth`, `@tanstack/router`, `clsx`, `tailwind-merge` packages
|
|
|
|
## Changed
|
|
|
|
- Set `black` formatter line length to 120 characters
|
|
- backend: migration squashing threshold to 15
|
|
- backend: moved top level `app` routes to `router.misc`
|
|
|
|
## Removed
|
|
|
|
- frontend: Most old packages from initial `vite` template
|
|
- backend: `IPAddress` Model (definition + DB state via migration) & all related code
|
|
|
|
## [0.2.2] - 2024-11-01
|
|
|
|
### Added
|
|
|
|
- Added the `orjson` serializer for faster JSON serialization
|
|
- Used in `structlog`'s `JSONRenderer` for production logging
|
|
- Used in `fastapi`'s `Response` for faster response serialization
|
|
- Improved documentation in multiple files
|
|
- `__main__.py`
|
|
- `logging.py`
|
|
- `models.py`
|
|
- `utilities.py`
|
|
- `migrate.py`
|
|
- `responses.py`
|
|
- A `get_db` utility function to retrieve a reference to the database (with type hinting)
|
|
- Minor `DATABASE_URL` check in `models.py` to prevent cryptic connection issues
|
|
|
|
## Changed
|
|
|
|
- Migration script now uses `structlog` instead of `print`
|
|
- Migration script output is tuned to structlog as well.
|
|
- Migration names must be at least 9 characters long
|
|
- Unspecified IPv6 addresses are returned without hiding in `utilities.hide_ip`
|
|
- Applied `get_db` utility function in all applicable areas.
|
|
|
|
### Fixed
|
|
|
|
- Raised level for `apscheduler.scheduler` logger to `WARNING` to prevent excessive logging
|
|
- IPv4 interface bind in production, preventing Railway's Private Networking from functioning
|
|
- Reloader mode enabled in production
|
|
|
|
## [0.2.1] - 2024-11-01
|
|
|
|
### Changed
|
|
|
|
- Mildly reformatted `README.md`
|
|
- A development mode check for the `app.state.ip_pool`'s initialization (caused application failure in production only)
|
|
|
|
### Fixed
|
|
|
|
- Improper formatting of blockquote Alerts in `README.md`
|
|
|
|
## [0.2.0] - 2024-11-01
|
|
|
|
### Added
|
|
|
|
- This `CHANGELOG.md` file
|
|
- Structured logging with `structlog`
|
|
- Readable `ConsoleRenderer` for local development
|
|
- `JSONRenderer` for production logging
|
|
- Request-Id Middleware with `asgi-correlation-id`
|
|
- Expanded README.md with more comprehensive instructions for installation & usage
|
|
- Repository-wide improved documentation details, comments
|
|
- CodeSpell exceptions in VSCode workspace settings
|
|
|
|
### Changed
|
|
|
|
- Switched from `hypercorn` to `uvicorn` for ASGI runtime
|
|
- Switched to direct module 'serve' command in `backend/run.sh` & `backend/railway.json`
|
|
- Relocated `.tool-versions` to project root
|
|
- Massively overhauled run.sh scripts, mostly for backend service
|
|
- Improved environment variable access in logging setup
|
|
- Root logger now adheres to the same format as the rest of the application
|
|
- Hide IP list when error occurs on client
|
|
- `run.sh` passes through all arguments, e.g. bpython REPL via `./run.sh repl`
|
|
- Use UTC timezone for timestamps, localize human readable strings, fixing 4 hour offset issue
|
|
- `is_development` available globally from `utilities` module
|
|
|
|
### Removed
|
|
|
|
- Deprecated `startup` and `shutdown` events
|
|
- Development-only randomized IP address pool for testing
|