David
ad761372f5
first clean
2026-05-13 17:18:37 +02:00
David
3d65693395
fix blog
2026-05-12 21:01:52 +02:00
David
9acabb6859
fix api key
2026-05-12 01:23:47 +02:00
David
71d131f4cb
fix search rates
2026-05-12 01:11:04 +02:00
David
96963b05f0
fix a propos text
2026-05-05 16:03:35 +02:00
David
ec0173483a
fix language
Dev CI / Backend — Lint (push) Successful in 10m23s
Dev CI / Backend — Unit Tests (push) Successful in 10m17s
Dev CI / Frontend — Lint & Type-check (push) Successful in 11m3s
Dev CI / Frontend — Unit Tests (push) Successful in 10m33s
Dev CI / Notify Failure (push) Has been skipped
2026-04-21 18:04:02 +02:00
David
982c893952
fix mobile version
2026-04-09 17:54:48 +02:00
David
40d917e160
chore(ci): remove smoke tests from preprod and prod pipelines
...
CD Preprod / Backend — Lint (push) Successful in 10m22s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 10m55s
CD Preprod / Backend — Unit Tests (push) Successful in 10m10s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m34s
CD Preprod / Backend — Integration Tests (push) Successful in 9m57s
CD Preprod / Build Frontend (push) Successful in 47s
CD Preprod / Build Log Exporter (push) Successful in 33s
CD Preprod / Build Backend (push) Successful in 7m24s
CD Preprod / Deploy to Preprod (push) Successful in 24s
CD Preprod / Notify Failure (push) Has been skipped
CD Preprod / Notify Success (push) Successful in 2s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 20:13:17 +02:00
David
a5b21436c7
fix
CD Preprod / Backend — Lint (push) Successful in 10m21s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 10m54s
CD Preprod / Backend — Unit Tests (push) Successful in 10m12s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m32s
CD Preprod / Backend — Integration Tests (push) Successful in 9m57s
CD Preprod / Build Backend (push) Successful in 50s
CD Preprod / Build Log Exporter (push) Successful in 26s
CD Preprod / Build Frontend (push) Successful in 19m3s
CD Preprod / Deploy to Preprod (push) Successful in 23s
CD Preprod / Notify Success (push) Has been cancelled
CD Preprod / Smoke Tests (push) Has been cancelled
CD Preprod / Notify Failure (push) Has been cancelled
2026-04-06 15:21:01 +02:00
David
bbf059cce9
fix preprod
CD Preprod / Backend — Lint (push) Successful in 10m22s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 10m55s
CD Preprod / Backend — Unit Tests (push) Successful in 10m12s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m33s
CD Preprod / Backend — Integration Tests (push) Successful in 9m57s
CD Preprod / Build Backend (push) Successful in 7m51s
CD Preprod / Build Log Exporter (push) Successful in 34s
CD Preprod / Build Frontend (push) Successful in 19m46s
CD Preprod / Deploy to Preprod (push) Failing after 1s
CD Preprod / Notify Failure (push) Has been skipped
CD Preprod / Smoke Tests (push) Has been skipped
CD Preprod / Notify Success (push) Has been skipped
2026-04-06 14:21:32 +02:00
David
72141c5f68
fix preprod
CD Preprod / Backend — Lint (push) Successful in 10m27s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 10m55s
CD Preprod / Backend — Unit Tests (push) Successful in 10m10s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m33s
CD Preprod / Backend — Integration Tests (push) Successful in 10m6s
CD Preprod / Build Backend (push) Successful in 16m5s
CD Preprod / Build Frontend (push) Successful in 35m0s
CD Preprod / Deploy to Preprod (push) Failing after 1s
CD Preprod / Smoke Tests (push) Has been skipped
CD Preprod / Notify Success (push) Has been skipped
CD Preprod / Notify Failure (push) Has been skipped
2026-04-04 17:58:36 +02:00
David
fe7cd1f792
Merge branch 'dev' into preprod
CD Preprod / Backend — Lint (push) Successful in 10m24s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 11m0s
CD Preprod / Backend — Unit Tests (push) Failing after 5m33s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m33s
CD Preprod / Backend — Integration Tests (push) Has been skipped
CD Preprod / Build Backend (push) Has been skipped
CD Preprod / Build Frontend (push) Has been skipped
CD Preprod / Deploy to Preprod (push) Has been skipped
CD Preprod / Smoke Tests (push) Has been skipped
CD Preprod / Notify Success (push) Has been skipped
CD Preprod / Notify Failure (push) Has been skipped
2026-04-04 17:02:39 +02:00
David
14c5073b12
fix types check
Dev CI / Backend — Lint (push) Successful in 10m23s
Dev CI / Frontend — Lint & Type-check (push) Successful in 10m57s
Dev CI / Backend — Unit Tests (push) Successful in 10m12s
Dev CI / Frontend — Unit Tests (push) Successful in 10m33s
Dev CI / Notify Failure (push) Has been skipped
2026-04-04 15:28:13 +02:00
David
fca1cf051a
fix test
Dev CI / Notify Failure (push) Blocked by required conditions
Dev CI / Frontend — Lint & Type-check (push) Failing after 6m16s
Dev CI / Frontend — Unit Tests (push) Has been skipped
Dev CI / Backend — Lint (push) Successful in 10m24s
Dev CI / Backend — Unit Tests (push) Has been cancelled
2026-04-04 15:08:53 +02:00
David
1d248b3cc9
fix test
2026-04-04 14:18:41 +02:00
David
21e9584907
chore: sync full codebase from cicd branch
...
CD Preprod / Unit Tests (${{ matrix.app }}) (backend) (push) Blocked by required conditions
CD Preprod / Unit Tests (${{ matrix.app }}) (frontend) (push) Blocked by required conditions
CD Preprod / Integration Tests (push) Blocked by required conditions
CD Preprod / Build & Push Backend (push) Blocked by required conditions
CD Preprod / Build & Push Frontend (push) Blocked by required conditions
CD Preprod / Deploy to Preprod (push) Blocked by required conditions
CD Preprod / Smoke Tests (push) Blocked by required conditions
CD Preprod / Deployment Summary (push) Blocked by required conditions
CD Preprod / Notify Success (push) Blocked by required conditions
CD Preprod / Notify Failure (push) Blocked by required conditions
CD Preprod / Quality (${{ matrix.app }}) (backend) (push) Has been cancelled
CD Preprod / Quality (${{ matrix.app }}) (frontend) (push) Has been cancelled
Aligns preprod with the complete application codebase (cicd branch).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:56:28 +02:00
David
26a3412658
feat(admin): add 3-dot action menus, document deletion, and company email in CSV configs
...
- Bookings: replace static action cell with vertical dots menu (view details modal, validate transfer, delete)
- Documents: replace download button with dots menu (download, delete) + new admin DELETE endpoint bypassing status/ownership restrictions
- CSV rates: show company email (from upload form metadata) in active configs table, fix header layout (title left, reload right, same line)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 23:43:47 +02:00
David
74221d576e
feat(contact): wire contact form to real backend — sends email to contact@xpeditis.com
2026-04-02 14:19:50 +02:00
David
ed0f43ba32
fix(contact): remove card links, fix support email, single Paris office, remove Europe map section
2026-04-02 13:47:49 +02:00
David
317de48765
feat: fix auth flows — reset password, 2-step register, remember me, SIRET
...
- Backend: add forgot-password and reset-password endpoints with token-based
flow (1h expiry, secure random token, email via existing EmailPort)
- Backend: add PasswordResetTokenOrmEntity + migration
- Backend: add siret field to RegisterOrganizationDto and pass it to org creation
- Backend: remove MinLength(12) from LoginDto.password (wrong for login use case)
- Backend: add rememberMe to LoginDto (optional, informational)
- Frontend: register page rewritten as 2-step flow (account info → org info)
with SIRET field, Suspense wrapper, "Centre d'aide" link removed
- Frontend: forgot-password page rewritten in French, matching login style
- Frontend: reset-password page rewritten in French, matching login style, with Suspense
- Frontend: remember me now works — localStorage when checked, sessionStorage otherwise
- Frontend: login page removes "Centre d'aide" link, connects rememberMe to login
- Frontend: auth-context and api/auth updated to pass rememberMe through full chain
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 13:10:08 +02:00
David
6a38c236b2
feat: add centralized logging stack with log exporter
...
- Add Loki + Promtail + Grafana logging infrastructure
- Add log-exporter service (REST API to query logs)
- Add docker-compose.logging.yml (standalone logging stack)
- Add docker-compose.full.yml (merged dev + logging in one file)
- Update docker-compose.dev.yml with network labels for Promtail
- Add admin logs dashboard page
- Fix invitation DTO and users settings page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 12:46:10 +02:00
David
e1f813bd92
fix documentation et landing page
2026-04-01 20:33:22 +02:00
David
0e4c0d7785
fix email and documentation api
2026-04-01 19:51:57 +02:00
David
ccc64b939a
fix documentation et api key
2026-03-31 16:19:35 +02:00
David
420e52311c
fix system payment and other missing
2026-03-19 19:04:31 +01:00
David
230d06dc98
payment methode
2026-03-18 15:11:09 +01:00
David
1c6edb9d41
adding middleware for auth
2026-03-17 18:39:07 +01:00
David
7f31aa59a9
fix contact
2026-03-17 11:58:29 +01:00
David
071d5f198c
fix
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 12m3s
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 15m39s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 11s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
2026-02-10 22:48:23 +01:00
David
9bed6b54a7
fix 404
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 10m59s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 37m59s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Has been skipped
CI/CD Pipeline / Deploy to Portainer (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
2026-02-10 21:50:40 +01:00
David
baf5981847
fix improve
2026-02-10 17:16:35 +01:00
David
fd1f57dd1d
fix
2026-02-05 11:53:22 +01:00
David
1d279a0e12
fix
2026-02-04 21:51:03 +01:00
David
1a86864d1f
fix
2026-02-03 22:14:03 +01:00
David
cf19c36586
fix ui
2026-02-03 16:08:00 +01:00
David
3e654af8a3
fix
2026-01-27 19:57:15 +01:00
David
4c7b07a911
fix error login
2026-01-27 19:33:51 +01:00
David
94039598d9
fix
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 20m31s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 38m16s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 12s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
2026-01-26 11:56:46 +01:00
David
a200987288
fix
2026-01-26 00:08:04 +01:00
David
10b45599ae
fix
2026-01-25 16:00:22 +01:00
David
40f785ddeb
feature track and trace
2026-01-20 15:35:59 +01:00
David
5c7834c7e4
fix licensing
2026-01-20 11:28:54 +01:00
David
dd5d806180
fix wiki
2026-01-19 10:48:19 +01:00
David
de4126a657
fix document
2026-01-17 15:47:03 +01:00
David
0a8e2043cc
fix documents
2026-01-17 15:46:55 +01:00
David
0d814e9a94
fix
2026-01-16 15:44:16 +01:00
David
d9868dd49f
fix: prevent password fields from being pre-filled in profile page
...
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m42s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 27m20s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 12s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 2s
Fixed issue where password form fields (especially "New Password")
were being pre-filled with values, either from browser autocomplete
or residual form state.
Changes:
1. Added explicit empty defaultValues to password form
- currentPassword: ''
- newPassword: ''
- confirmPassword: ''
2. Added autoComplete attributes to prevent browser pre-fill:
- currentPassword: autoComplete="current-password"
- newPassword: autoComplete="new-password"
- confirmPassword: autoComplete="new-password"
3. Added useEffect to reset password form when switching tabs:
- Ensures clean state when navigating to "Change Password" tab
- Prevents stale values from persisting
4. Explicit reset values on successful password change:
- Previously used passwordForm.reset() without values
- Now explicitly sets all fields to empty strings
This ensures password fields are always empty and never pre-filled
by the browser or by residual form state.
Refs: apps/frontend/app/dashboard/profile/page.tsx:64-70,85-95
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 18:24:13 +01:00
David
2054e73e78
fix: resolve profile page data persistence and password change issues
...
Fixed critical issues with the profile page (/dashboard/profile):
1. **Form data not persisting on page refresh**:
- Added useEffect to update form values when user data loads
- Forms now properly populate after auth context loads user data
2. **Blank page on refresh**:
- Added loading and error states for better UX
- Handle case where user is not loaded yet (loading spinner)
- Handle case where user fails to load (retry button)
3. **Password change API endpoint correction**:
- Fixed: POST /api/v1/users/change-password (incorrect)
- Corrected to: PATCH /api/v1/users/me/password (matches backend)
- Updated return type to include { message: string }
The root cause was that useForm defaultValues were set once at
component mount when user was still null. The form never updated
when user data was subsequently loaded by the auth context.
Now the form properly resets with user data via useEffect, and
proper loading/error states prevent showing a blank page.
Refs: apps/frontend/app/dashboard/profile/page.tsx:68-78
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 18:18:04 +01:00
David
905a56888a
fix: implement password change functionality in profile page
...
Fix password change feature that was previously non-functional:
- Add changePassword function in frontend API (src/lib/api/users.ts)
- Update API endpoint to match backend: PATCH /api/v1/users/me/password
- Connect profile page to real API instead of mock implementation
- Export changePassword function from API index
The backend endpoint was already implemented but frontend was using
a placeholder Promise.resolve(). Now properly calls the backend API.
Refs: apps/frontend/app/dashboard/profile/page.tsx:87-105
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 17:56:10 +01:00
David
4ce7d2ec07
fix icon
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 2m16s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 26m44s
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Deployment Summary (push) Successful in 1s
CI/CD Pipeline / Deploy to Portainer (push) Successful in 12s
CI/CD Pipeline / Discord Notification (Failure) (push) Has been skipped
CI/CD Pipeline / Discord Notification (Success) (push) Successful in 1s
2025-12-23 19:14:13 +01:00