Commit Graph

23 Commits

Author SHA1 Message Date
Marshal
6434bb266c Merge branch 'dev' 2026-08-12 06:44:30 +00:00
ghost2023
a603807e8e feat(freight-api): seal EDR side of contracts with the one global stamp 2026-08-12 06:26:46 +03:00
marshalyordanos
35e5404b41 Refactor code structure for improved readability and maintainability 2026-08-11 19:36:00 +03:00
marshalyordanos
ea6eccbf09 feat(upload): increase document upload size limits to 50MB across the application 2026-08-11 09:26:23 +03:00
Nathnael
595c165820 feat: implement audit logs 2026-08-05 14:17:00 +00:00
Nathnael
415ae52143 test(integration): boot freight API in-process across parallel shards
The suite drove a containerized freight API, so every code change needed an
image rebuild before a test could see it, and there was no way to attach a
debugger. Files also ran strictly in sequence against one shared database,
which is the root of the warm-stack gotchas the README documents: stowaway
paid bookings climbing back aboard, a short consist on the fifth file.

The freight app now boots inside each vitest worker from dist/, and each
worker owns a whole shard of the topology - its own database, payment API,
gateway mock and broker vhost - so nothing mutable is shared and files run
in parallel. Full suite drops from roughly 20 minutes to 196s at 4 shards.

- main.ts exports createFreightApp() so the harness applies the same prefix,
  pipes, filters and interceptors as production instead of replaying them by
  hand; self-start is guarded by require.main so the Dockerfile CMD still boots
- booking-window tick cadence is env-driven (BOOKING_WINDOW_TICK_CRON), */1 in
  the suite, */10 unchanged in production
- prepare-shards.mjs seeds a template database (boot seeders, then the SQL
  fixtures that depend on them) and clones it per shard; it.mjs re-clones on
  every run, so each run is hermetic
- gateway mock and payment API are generated per shard: the mock keeps modes
  and orders process-global and 20 of 25 specs reset it in beforeAll, and the
  inbound CBE bill query has to reach one specific shard's app
- poll() samples every 250ms instead of 2000ms, keeping the caller's deadline
- authz.it.ts seeds its own invoice; it previously read another spec's leftover
  and returned early, which silently passed on a pristine database

Known: an unlocked MAX(sequence_no)+1 in train-scheduling.service.ts races
under concurrent allocation and leaves a short consist, so 1-3 specs fail
intermittently. Pre-existing and reproduces at the production tick cadence.
2026-08-04 12:43:25 +00:00
Nathnael
3a69b961d4 refactor(freight): move the Fayda callback to /fayda/callback
Namespaces the OAuth landing path in all three places it exists: the API's
ack controller, both web apps' routes, and the redirect_uri env values.
A bare /callback claimed a generic top-level path in every app for one
provider's redirect.

The API side needed care. The ack controller moves to @Controller
('fayda/callback'), and the global-prefix exclusion has to name that exact
path — setGlobalPrefix's exclude is an exact route match, not a subtree, so
excluding "fayda" would have left /fayda/callback served at
/api/fayda/callback and 404ing at the registered redirect_uri, while
reading as though it covered everything under /fayda. Naming the full path
also keeps /api/fayda/verification/* prefixed, which every client calls.

Also drops a stale comment on the portal's callback route describing the
popup that no longer exists, and records why the route is public: behind
RequireAuth the onboarding gate redirects to /portal before the code+state
exchange can run.

NOT verified at runtime — this changes route registration, so boot the API
and confirm GET /fayda/callback answers un-prefixed and
/api/fayda/verification/start still resolves before relying on it.

Deploying this requires registering the new redirect_uri with eSignet
first; FAYDA_WEB_REDIRECT_URI, FAYDA_PORTAL_REDIRECT_URI and any mobile
client must be updated in step or verification breaks with a redirect_uri
mismatch.
2026-08-04 12:43:25 +00:00
Marshal
123f925cc1 add Group 9 delivery scenarios for self-haul and last-mile paths
- Implemented G9·S38 tests for customer self-haul truck assignments, ensuring compliance with container limits and truck assignments.
- Added G9·S39 tests for last-mile delivery, self-haul, and yard pickup, verifying independent paths for multiple bookings on the same train.
- Created seed data for Group 1 and Group 2 scenarios, ensuring proper setup for weight and capacity tests.
- Updated booking interface to deprecate  in favor of  for better clarity in allocations.
2026-08-01 12:14:37 +00:00
Nathnael Wondisha
8309483d8f Merge pull request #996 from Tria-plc/freight/fix/auth-separation
feat(auth): add login audience middleware (EDRFREIGHT-415)
2026-07-28 13:52:42 +03:00
Nathnael
e823874d39 feat(auth): add login audience middleware (EDRFREIGHT-415) 2026-07-28 10:46:55 +00:00
mulish77
881f7e1e56 Merge pull request #994 from Tria-plc/tests
Fixing cors issue in produciton
2026-07-28 13:37:53 +03:00
Muluhabt
83137ea0ef Fixing cors issue in produciton 2026-07-28 13:37:10 +03:00
Marshal
7fcf3a7084 update body-parser implementation to use Nest's API and improve dependency handling 2026-07-28 06:33:26 +00:00
Marshal
c1c35e78d4 increase JSON body size limit, update awaiting shipment endpoint handling, and enhance contract document editor UI 2026-07-28 06:18:04 +00:00
Marshal
44cad7a52b changes 2026-07-22 10:50:36 +00:00
natib21
48db0b240b fix fayda 2026-07-03 09:32:41 +00:00
Marshal
8ef7641048 feat(bookings): add contract validity window and customs clearing features
- Introduced contract validity days, valid from and valid until fields in the booking model.
- Updated booking acceptance logic to enforce validity window constraints.
- Added customs clearing agent and first/last mile pickup/delivery coordinates to the booking model.
- Implemented LocationPicker component for address selection with map integration using Leaflet.
- Enhanced booking review step to display customs clearing agent details.
- Updated API and DTOs to accommodate new booking fields.
- Added migration scripts for database schema changes.
- Implemented tests for booking acceptance and DTO transformations.
2026-06-24 00:21:01 +00:00
Marshal
08b46c306f ui improvemnt 2026-06-06 21:17:20 +00:00
Marshal
67037ba748 fix the seed for rules 2026-06-05 17:25:16 +00:00
yaschalew
51d6df42bb file upload settings 2026-05-20 08:15:29 +03:00
Michael Abebe
0e0d2ea450 feat(freight:api): initial backend work 2026-05-18 10:25:33 +03:00
Michael Abebe
1c5ee19388 chore: fmt 2026-05-12 16:50:18 +03:00
Muluhabt
3b8b6979db Project Initialization 2026-05-12 15:17:16 +03:00