fix(formation): redirige le domaine historique vers Itinova
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 1m52s
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 1m52s
Co-authored-by: Manus <dev-agent@manus.ai>
This commit is contained in:
@@ -39,6 +39,16 @@ services:
|
||||
- "traefik.http.routers.formations-itinova.tls=true"
|
||||
- "traefik.http.routers.formations-itinova.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.formations-itinova.service=formations-prod-svc"
|
||||
# Alias historique : conserve le chemin et redirige définitivement vers l'URL Itinova canonique.
|
||||
- "traefik.http.routers.formations-legacy-redirect.entrypoints=websecure"
|
||||
- "traefik.http.routers.formations-legacy-redirect.rule=Host(`formations.santinova-soft.org`)"
|
||||
- "traefik.http.routers.formations-legacy-redirect.tls=true"
|
||||
- "traefik.http.routers.formations-legacy-redirect.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.formations-legacy-redirect.middlewares=formations-legacy-redirect"
|
||||
- "traefik.http.routers.formations-legacy-redirect.service=formations-prod-svc"
|
||||
- "traefik.http.middlewares.formations-legacy-redirect.redirectregex.regex=^https://formations\\.santinova-soft\\.org/(.*)"
|
||||
- "traefik.http.middlewares.formations-legacy-redirect.redirectregex.replacement=https://formations-itinova.santinova-soft.org/$${1}"
|
||||
- "traefik.http.middlewares.formations-legacy-redirect.redirectregex.permanent=true"
|
||||
- "traefik.http.services.formations-prod-svc.loadbalancer.server.port=3000"
|
||||
|
||||
networks:
|
||||
|
||||
30
test/traefik-redirect-contract.test.mjs
Normal file
30
test/traefik-redirect-contract.test.mjs
Normal file
@@ -0,0 +1,30 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { readFileSync } from "node:fs";
|
||||
|
||||
const compose = readFileSync(new URL("../docker-compose.yml", import.meta.url), "utf8");
|
||||
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.routers\.formations-legacy-redirect\.rule=Host\(`formations\.santinova-soft\.org`\)/,
|
||||
"Le domaine historique doit avoir son routeur Traefik dédié.",
|
||||
);
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.routers\.formations-legacy-redirect\.middlewares=formations-legacy-redirect/,
|
||||
"Le routeur historique doit appliquer le middleware de redirection.",
|
||||
);
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.middlewares\.formations-legacy-redirect\.redirectregex\.regex=\^https:\/\/formations\\\\\.santinova-soft\\\\\.org\/\(\.\*\)/,
|
||||
"La redirection doit cibler uniquement le domaine historique en HTTPS.",
|
||||
);
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.middlewares\.formations-legacy-redirect\.redirectregex\.replacement=https:\/\/formations-itinova\.santinova-soft\.org\/\$\$\{1\}/,
|
||||
"La redirection doit conserver le chemin vers l’URL canonique Itinova.",
|
||||
);
|
||||
assert.match(
|
||||
compose,
|
||||
/traefik\.http\.middlewares\.formations-legacy-redirect\.redirectregex\.permanent=true/,
|
||||
"La redirection doit être permanente.",
|
||||
);
|
||||
Reference in New Issue
Block a user