Sprint 03 Release Notes
Table of Contents
November 2025
This sprint focused on enabling secure user sessions, improving test reliability, and laying the groundwork for robust CI/CD with database integration and better build hygiene.
✅ Highlights
- Login and session management implemented — users can now securely log in and out.
- Account locking logic added after repeated failed login attempts.
- PostgreSQL integrated into CI — enabling realistic integration testing using test databases and synthetic data.
- Test isolation achieved — tests now use separate database instances to prevent interference.
- Boost.Log usage standardized — resolved memory noise and improved logging consistency.
🛠️ Key Improvements
Authentication & Security
- Implemented session support for login/logout workflows.
- Added account lockout after N failed password attempts.
- Began implementation of authentication bootstrap workflow (postponed): system will require creation of an initial admin account before normal operation.
- Added command-line arguments for database configuration in services (replacing hardcoded credentials).
Testing & CI/CD
- Integrated PostgreSQL into GitHub CI using
setup-postgresqlaction. - Isolated test database usage from application and across test suites.
- Added test data generators using
faker-cxxfor more realistic scenarios. - Split test utilities into a dedicated
ores.testinglibrary to avoid Catch2 linkage in production code. - Improved code coverage and unified test structure post-refactor.
- Fixed broken Linux, macOS, and Windows CI builds caused by missing DLLs and test configuration.
Build & Infrastructure
- Enabled Qt GUI builds by switching to distro-supplied Qt to save disk space.
- Resolved vcpkg patch application failures on Windows (line-ending issues).
- Created a staging directory for clean binary output (aligned with Dogen approach).
- Investigated dynamic library builds; concluded static linking is safer for now due to packaging complexity.
Code Quality
- Standardized Boost.Log usage, eliminating local static loggers that caused valgrind noise.
- Fixed misspelling issues that broke builds due to org-mode URL typos.
- Added
write_onemethod to repository pattern for consistency with MongoDB-style APIs. - PostgreSQL support fully implemented for currency CRUD operations.
⚠️ Known Issues & Postponed
- CTest shows only one test per suite — individual test results not visible in CDash. Issue reported to Kitware.
- OpenSSL leaks still appear in valgrind — mostly initialization-related; suppressions applied temporarily.
- Feature flags framework postponed — needed to manage bootstrap vs. secure mode, but deferred for next sprint.
- Authentication bootstrap workflow not completed — core logic defined, but not yet enforced in service startup.
📊 Time Summary
- Total effort: not tracked
- PRs merged: not tracked
- Sprint duration: 2025-10-23 → 2025-11-07
Next sprint: Sprint 04.