Skip to content

Commit d8cc9cb

Browse files
authored
Merge pull request #82 from CESNET/develop
Version 1.3.0
2 parents 82e5e38 + 415f008 commit d8cc9cb

42 files changed

Lines changed: 1842 additions & 1097 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,25 @@ All notable changes to ExaFS will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.3.0] - 2026-04-20
9+
10+
### Changed
11+
- Migrated entire codebase to SQLAlchemy 2.0 Query API — replaced all legacy `session.query()` / `Model.query` patterns with `session.execute(select())`, `session.scalars()`, and `db.paginate()` across models, services, and views
12+
- Moved DB queries out of views into model classmethods following separation of concerns (`ApiKey`, `Flowspec4/6`, `RTBH`, `Community`, `Action`, `Log`, `User`, `Role`, `Organization`, `ASPath`, etc.)
13+
- New `get_org_rule_stats()` utility replaces inline admin view queries
14+
15+
### Fixed
16+
- API response discrepancy: rules returned via API now apply the same data transformation as the UI, fixing inconsistency between `/api/v3/` responses and dashboard display
17+
18+
### Added
19+
- Extensive new test coverage for previously untested DB-touching code paths (`test_auth.py`, `test_model_utils.py`, `test_services_base.py`, `test_admin_models.py`, additions to `test_flowapp.py`, `test_messages.py`, `test_models.py`, `test_whitelist_service.py`)
20+
- Tests for all new model classmethods (added before implementation, TDD-style)
21+
- ExaBGP 5.x support via `EXABGP_MAJOR_VERSION` config option (default: `4`)
22+
- TCP flags formatted as `tcp-flags [ syn ack ];` (lowercase, bracketed) when version is 5
23+
- Fragment conditions use updated `!is-fragment` syntax for version 5
24+
- `IPV4_FRAGMENT_V5` constants dict added for version 5 fragment mappings
25+
- Unit tests for ExaBGP message formatting helpers (`tests/test_messages.py`)
26+
827
## [1.2.2] - 2026-02-19
928

1029
### Changed
@@ -304,6 +323,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
304323
- Route Distinguisher for VRF now supported
305324
- See config example and update your `config.py`
306325

326+
[1.3.0]: https://github.com/CESNET/exafs/compare/v1.2.2...v1.3.0
307327
[1.2.2]: https://github.com/CESNET/exafs/compare/v1.2.1...v1.2.2
308328
[1.2.1]: https://github.com/CESNET/exafs/compare/v1.2.0...v1.2.1
309329
[1.2.0]: https://github.com/CESNET/exafs/compare/v1.1.9...v1.2.0

0 commit comments

Comments
 (0)