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
62698de952
Merge branch 'cicd' into dev
...
Dev CI / Backend — Lint (push) Successful in 10m24s
Dev CI / Frontend — Lint & Type-check (push) Successful in 10m52s
Dev CI / Frontend — Unit Tests (push) Failing after 5m50s
Dev CI / Backend — Unit Tests (push) Successful in 10m12s
Dev CI / Notify Failure (push) Has been skipped
# Conflicts:
# apps/backend/src/application/auth/auth.service.ts
# apps/backend/src/application/dto/subscription.dto.ts
# apps/backend/src/application/services/subscription.service.ts
# apps/backend/src/domain/value-objects/plan-feature.vo.ts
# apps/backend/src/domain/value-objects/subscription-plan.vo.ts
# apps/backend/src/infrastructure/persistence/typeorm/mappers/subscription-orm.mapper.ts
# apps/backend/src/infrastructure/stripe/stripe.adapter.ts
# apps/frontend/e2e/booking-workflow.spec.ts
2026-04-04 14:21:15 +02:00
David
1d248b3cc9
fix test
2026-04-04 14:18:41 +02:00
David
eb285033c0
fix(cicd): sync corrected pipelines from cicd branch
CD Preprod / Frontend — Lint & Type-check (push) Failing after 6m9s
CD Preprod / Frontend — Unit Tests (push) Has been skipped
CD Preprod / Backend — Lint (push) Successful in 10m22s
CD Preprod / Backend — Unit Tests (push) Failing after 5m29s
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 13:16:47 +02:00
David
711aca5f40
fix(cicd): sync corrected pipelines from cicd branch
Dev CI / Frontend — Lint & Type-check (push) Failing after 6m12s
Dev CI / Frontend — Unit Tests (push) Has been skipped
Dev CI / Backend — Lint (push) Successful in 10m24s
Dev CI / Backend — Unit Tests (push) Failing after 5m30s
Dev CI / Notify Failure (push) Has been skipped
2026-04-04 13:16:46 +02:00
David
1fcf5d0032
fix(cicd): rewrite all pipelines — fix npm install, health endpoints, prod security gate
2026-04-04 13:16:40 +02:00
David
e5f03e22f2
chore: sync root-level docs with main and dev
CD Preprod / Unit Tests (${{ matrix.app }}) (backend) (push) Blocked by required conditions
CD Preprod / Integration Tests (push) Blocked by required conditions
CD Preprod / Unit Tests (${{ matrix.app }}) (frontend) (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 }}) (frontend) (push) Has been cancelled
CD Preprod / Quality (${{ matrix.app }}) (backend) (push) Has been cancelled
2026-04-04 13:03:34 +02:00
David
3ba87fbb42
revert: restore root-level docs mistakenly deleted
Dev CI / Quality (${{ matrix.app }}) (frontend) (push) Failing after 6m16s
Dev CI / Quality (${{ matrix.app }}) (backend) (push) Successful in 10m26s
Dev CI / Unit Tests (${{ matrix.app }}) (backend) (push) Has been skipped
Dev CI / Unit Tests (${{ matrix.app }}) (frontend) (push) Has been skipped
Dev CI / Notify Failure (push) Has been skipped
2026-04-04 13:02:27 +02:00
David
9a5c8c92e0
chore: remove stale root-level docs (already in docs/installation/)
...
Dev CI / Quality (${{ matrix.app }}) (backend) (push) Waiting to run
Dev CI / Quality (${{ matrix.app }}) (frontend) (push) Waiting to run
Dev CI / Unit Tests (${{ matrix.app }}) (backend) (push) Blocked by required conditions
Dev CI / Unit Tests (${{ matrix.app }}) (frontend) (push) Blocked by required conditions
Dev CI / Notify Failure (push) Blocked by required conditions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:58:29 +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
08787c89c8
chore: sync full codebase from cicd branch
...
Dev CI / Unit Tests (${{ matrix.app }}) (backend) (push) Blocked by required conditions
Dev CI / Unit Tests (${{ matrix.app }}) (frontend) (push) Blocked by required conditions
Dev CI / Notify Failure (push) Blocked by required conditions
Dev CI / Quality (${{ matrix.app }}) (backend) (push) Has been cancelled
Dev CI / Quality (${{ matrix.app }}) (frontend) (push) Has been cancelled
Aligns dev with the complete application codebase (cicd branch).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:56:16 +02:00
David
ab0ed187ed
feat(cicd): sync CI/CD pipeline 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
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:52:46 +02:00
David
8400d203e8
feat(cicd): sync CI/CD pipeline from cicd branch
...
Dev CI / Unit Tests (${{ matrix.app }}) (backend) (push) Blocked by required conditions
Dev CI / Unit Tests (${{ matrix.app }}) (frontend) (push) Blocked by required conditions
Dev CI / Notify Failure (push) Blocked by required conditions
Dev CI / Quality (${{ matrix.app }}) (backend) (push) Has been cancelled
Dev CI / Quality (${{ matrix.app }}) (frontend) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:52:40 +02:00
David
da93e86756
feat(cicd): add complete CI/CD pipeline for dev/preprod/prod (Hetzner k3s)
...
- ci.yml: dev branch CI — lint, type-check, unit tests (~5min)
- pr-checks.yml: PR gate to preprod (+ integration tests) and main
- cd-preprod.yml: full preprod pipeline — quality → integration → docker → deploy → smoke tests
- cd-main.yml: prod pipeline — promote Scaleway preprod image → kubectl rollout on k3s
- rollback.yml: emergency rollback (kubectl undo or specific tag, Portainer for preprod)
- docs: replace GHCR references with Scaleway registry in Hetzner k8s manifests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:52:14 +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
6adcb2b9f8
fix docs
2026-03-26 18:08:28 +01: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
737d94e99a
fix
CI/CD Pipeline / Backend - Build, Test & Push (push) Successful in 5m0s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Successful in 15m10s
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-02-10 23:17:11 +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
301409624b
Merge branch 'track_and_trace' into landing_page
2026-01-20 15:38:26 +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