Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
doc-type: spec
issue-type: task
status: open
status: done
priority: p1
epic: 1669
github-issue: 1930
spec-path: docs/issues/open/1930-1669-si-33-rest-api-contract-first-architecture.md
last-updated-utc: 2026-06-22
spec-path: docs/issues/closed/1930-1669-si-33-rest-api-contract-first-architecture.md
last-updated-utc: 2026-06-24
semantic-links:
skill-links:
- create-issue
Expand Down
6 changes: 3 additions & 3 deletions docs/issues/open/1669-overhaul-packages/EPIC.md
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ Status: TODO unless noted.
- [x] [#1924](https://github.com/torrust/torrust-tracker/issues/1924) SI-30: Extract UDP trait abstractions for REST API _(Rule M; core → server dep kept; interface segregation only)_
- [x] [#1925](https://github.com/torrust/torrust-tracker/issues/1925) SI-31: Configure `cargo deny` for workspace layer boundary enforcement _(tooling; create deny.toml with bans for all forbidden edges)_
- [ ] [#1926](https://github.com/torrust/torrust-tracker/issues/1926) SI-32: Define package versioning strategy _(policy; all packages version independently)_
- [ ] [#1930](https://github.com/torrust/torrust-tracker/issues/1930) SI-33: Define REST API contract-first package architecture _(policy reminder; PoC-first and dedicated API EPIC before migration/extraction)_
- [x] [#1930](https://github.com/torrust/torrust-tracker/issues/1930) SI-33: Define REST API contract-first package architecture _(policy reminder; PoC-first and dedicated API EPIC before migration/extraction)_
- [x] [#1856](https://github.com/torrust/torrust-tracker/issues/1856) Analyse configuration package coupling and evaluate splitting strategies _(research; no blockers; informs "build-your-own tracker" goal and versioning strategy)_

Details:
Expand Down Expand Up @@ -645,7 +645,7 @@ Details:
| UDP trait abstractions | [#1924](https://github.com/torrust/torrust-tracker/issues/1924) SI-30: Extract UDP trait abstractions for REST API (`BanningStats`, `UdpCoreStatsRepository`, `UdpServerStatsRepository`) | [docs/issues/closed/1924-1669-si-30-decouple-rest-api-core-from-udp-internals.md](../../closed/1924-1669-si-30-decouple-rest-api-core-from-udp-internals.md) | DONE | UDP-side only; REST-side wiring deferred to #1930; MAX_CONNECTION_ID_ERRORS_PER_IP → config option |
| Cargo deny enforcement | [#1925](https://github.com/torrust/torrust-tracker/issues/1925) SI-31: Configure `cargo deny` for workspace layer boundary enforcement | [docs/issues/closed/1925-1669-si-31-configure-cargo-deny-for-layer-boundary-enforcement.md](../../closed/1925-1669-si-31-configure-cargo-deny-for-layer-boundary-enforcement.md) | DONE | Tooling; create deny.toml with bans for all forbidden edges; add to CI and hooks |
| Versioning policy | [#1926](https://github.com/torrust/torrust-tracker/issues/1926) SI-32: Define package versioning strategy | [docs/issues/open/1926-1669-si-32-define-package-versioning-strategy.md](../../open/1926-1669-si-32-define-package-versioning-strategy.md) | TODO | Policy; all packages version independently; path deps make linked versions unnecessary |
| REST API architecture | [#1930](https://github.com/torrust/torrust-tracker/issues/1930) SI-33: Define REST API contract-first package architecture | [docs/issues/open/1930-1669-si-33-rest-api-contract-first-architecture.md](../../open/1930-1669-si-33-rest-api-contract-first-architecture.md) | TODO | Policy reminder only in this EPIC; validate via PoC, then execute migration in a dedicated API EPIC; defer API package extraction/publication |
| REST API architecture | [#1930](https://github.com/torrust/torrust-tracker/issues/1930) SI-33: Define REST API contract-first package architecture | [docs/issues/closed/1930-1669-si-33-rest-api-contract-first-architecture.md](../../closed/1930-1669-si-33-rest-api-contract-first-architecture.md) | DONE | Policy reminder only in this EPIC; validate via PoC, then execute migration in a dedicated API EPIC; defer API package extraction/publication |
| Configuration coupling | [#1856](https://github.com/torrust/torrust-tracker/issues/1856) — Analyse configuration package coupling and evaluate splitting strategies | [docs/issues/open/1856-1669-analyse-configuration-package-coupling/ISSUE.md](../../open/1856-1669-analyse-configuration-package-coupling/ISSUE.md) | DONE | DEC-07: keep single package; move TrackerPolicy/TORRENT_PEERS_LIMIT/PrivateMode to primitives (FU-1); see DECISIONS.md |
| Move domain primitives | [#1859](https://github.com/torrust/torrust-tracker/issues/1859) — Move `TrackerPolicy`, `TORRENT_PEERS_LIMIT`, and `PrivateMode` to `torrust-tracker-primitives` | [docs/issues/open/1859-1669-move-tracker-policy-and-private-mode-to-primitives/ISSUE.md](../../open/1859-1669-move-tracker-policy-and-private-mode-to-primitives/ISSUE.md) | TODO | Rule M; FU-1 from #1856; removes `swarm-coordination-registry` and `torrent-repository-benchmarking` config dep |
| TslConfig evaluation | [#1860](https://github.com/torrust/torrust-tracker/issues/1860) — Evaluate moving `TslConfig` from `torrust-tracker-configuration` into `torrust-tracker-axum-server` | [docs/issues/open/1860-1669-evaluate-tslconfig-move-to-axum-server/ISSUE.md](../../open/1860-1669-evaluate-tslconfig-move-to-axum-server/ISSUE.md) | TODO | Rule M candidate; FU-2 from #1856; may enable `axum-server` → `torrust-axum-server` reclassification |
Expand All @@ -672,7 +672,7 @@ After SI-14, there is a proposal to evaluate a dedicated repository for protocol
- [docs/issues/closed/1925-1669-si-31-configure-cargo-deny-for-layer-boundary-enforcement.md](../../closed/1925-1669-si-31-configure-cargo-deny-for-layer-boundary-enforcement.md)
- [docs/issues/open/1926-1669-si-32-define-package-versioning-strategy.md](../../open/1926-1669-si-32-define-package-versioning-strategy.md)
- [docs/issues/drafts/1669-extract-torrust-tracker-client-to-standalone-repo.md](../../drafts/1669-extract-torrust-tracker-client-to-standalone-repo.md)
- [docs/issues/open/1930-1669-si-33-rest-api-contract-first-architecture.md](../../open/1930-1669-si-33-rest-api-contract-first-architecture.md)
- [docs/issues/closed/1930-1669-si-33-rest-api-contract-first-architecture.md](../../closed/1930-1669-si-33-rest-api-contract-first-architecture.md)
- [docs/issues/closed/1910-1669-si-29-rename-udp-and-http-core-protocol-crates-to-remove-redundant-tracker.md](../../closed/1910-1669-si-29-rename-udp-and-http-core-protocol-crates-to-remove-redundant-tracker.md)
> New subissues are created as analysis reveals the next improvement. The EPIC is never
> fully planned up front.
Expand Down