diff --git a/docker-compose.yml b/docker-compose.yml index 61683ee..48bf1e3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,10 +9,27 @@ services: - web labels: - "traefik.enable=true" - - "traefik.http.routers.portail-production.rule=Host(`portail.santinova-soft.org`)" - - "traefik.http.routers.portail-production.entrypoints=websecure" - - "traefik.http.routers.portail-production.tls.certresolver=letsencrypt" - "traefik.http.services.portail-production.loadbalancer.server.port=3000" + - "traefik.http.routers.portail-legacy-production.rule=Host(`portail.santinova-soft.org`)" + - "traefik.http.routers.portail-legacy-production.entrypoints=websecure" + - "traefik.http.routers.portail-legacy-production.tls=true" + - "traefik.http.routers.portail-legacy-production.tls.certresolver=letsencrypt" + - "traefik.http.routers.portail-itinova-production.rule=Host(`portail-itinova.santinova-soft.org`)" + - "traefik.http.routers.portail-itinova-production.entrypoints=websecure" + - "traefik.http.routers.portail-itinova-production.tls=true" + - "traefik.http.routers.portail-itinova-production.tls.certresolver=letsencrypt" + - "traefik.http.routers.portail-soins-production.rule=Host(`portail-soins-et-sante.santinova-soft.org`)" + - "traefik.http.routers.portail-soins-production.entrypoints=websecure" + - "traefik.http.routers.portail-soins-production.tls=true" + - "traefik.http.routers.portail-soins-production.tls.certresolver=letsencrypt" + - "traefik.http.routers.portail-santinova-production.rule=Host(`portail-santinova.santinova-soft.org`)" + - "traefik.http.routers.portail-santinova-production.entrypoints=websecure" + - "traefik.http.routers.portail-santinova-production.tls=true" + - "traefik.http.routers.portail-santinova-production.tls.certresolver=letsencrypt" + - "traefik.http.routers.portail-santelis-production.rule=Host(`portail-santelis.santinova-soft.org`)" + - "traefik.http.routers.portail-santelis-production.entrypoints=websecure" + - "traefik.http.routers.portail-santelis-production.tls=true" + - "traefik.http.routers.portail-santelis-production.tls.certresolver=letsencrypt" networks: web: external: true diff --git a/images/santelis-gestion.jpg b/images/santelis-gestion.jpg new file mode 100644 index 0000000..4a6b161 Binary files /dev/null and b/images/santelis-gestion.jpg differ diff --git a/index.html b/index.html index 33993eb..999026b 100644 --- a/index.html +++ b/index.html @@ -5,541 +5,83 @@ Portail Applicatif — Santinova Soft - - -
-
-
- - - - - - -
-
-
Portail Applicatif
-
Environnement de production
-
-
-
Production
-
- - -
- - - -
- - -
- - -
-
-

Applications Itinova

-

Cliquez sur une application pour l'ouvrir dans un nouvel onglet

-
-
-
Chargement des applications…
-
-
- - -
-
-

Applications Santinova

-

Cliquez sur une application pour l'ouvrir dans un nouvel onglet

-
-
-
Chargement des applications…
-
-
- - -
-
-

Infrastructure

-

Accès direct aux services techniques de cet environnement

-
-
-
Chargement des applications…
-
-
- -
- - - - +
Portail Applicatif
Chargement de l'environnement
…
+ +

Chargement du portail…

Les applications de cet environnement sont chargées depuis le dashboard correspondant.

Chargement des applications…
+ diff --git a/test/portal-contract.test.js b/test/portal-contract.test.js index 23fc6e1..2ffae29 100644 --- a/test/portal-contract.test.js +++ b/test/portal-contract.test.js @@ -1,7 +1,7 @@ /* - * Contrat de non-régression du portail de production. - * Il vérifie la séparation stricte des environnements, la publication - * dynamique des applications et les exceptions explicitement demandées. + * Contrat de non-régression des quatre portails production. + * Un seul service statique répond sur quatre domaines, mais le domaine courant + * décide strictement du groupe d'applications et du dashboard de production. */ const assert = require('node:assert/strict'); const fs = require('node:fs'); @@ -10,82 +10,127 @@ const vm = require('node:vm'); const root = path.join(__dirname, '..'); const html = fs.readFileSync(path.join(root, 'index.html'), 'utf8'); -const attributions = fs.readFileSync(path.join(root, 'images', 'ATTRIBUTIONS.md'), 'utf8'); +const compose = fs.readFileSync(path.join(root, 'docker-compose.yml'), 'utf8'); +const script = html.match(/