feat: normaliser les URL production par entité
All checks were successful
Validation Dashboard / Tests backend et build frontend (push) Successful in 58s

This commit is contained in:
Santinova Deployment
2026-10-24 17:06:49 +00:00
parent 3c000c37af
commit 9fd5dbb0df
17 changed files with 84 additions and 79 deletions

View File

@@ -55,9 +55,9 @@ const RECETTE = {
icon: LayoutDashboard,
color: 'blue',
name: 'Dashboard',
url: 'dashboard.recette.santinova-soft.org',
url: 'dashboard-santinova.recette.santinova-soft.org',
desc: 'Monitoring CPU / RAM / Disque',
href: 'https://dashboard.recette.santinova-soft.org',
href: 'https://dashboard-santinova.recette.santinova-soft.org',
},
{
icon: Globe,
@@ -80,38 +80,38 @@ const RECETTE = {
icon: '🧾',
color: 'green',
name: 'Démat. Facturation DSI',
url: 'demat-facturation.recette.santinova-soft.org',
href: 'https://demat-facturation.recette.santinova-soft.org',
url: 'demat-facturation-santinova.recette.santinova-soft.org',
href: 'https://demat-facturation-santinova.recette.santinova-soft.org',
},
{
icon: '👁️',
color: 'indigo',
name: 'Veille Réglementaire',
url: 'veille.recette.santinova-soft.org',
href: 'https://veille.recette.santinova-soft.org',
url: 'veille-itinova.recette.santinova-soft.org',
href: 'https://veille-itinova.recette.santinova-soft.org',
},
{
icon: '🗺️',
color: 'cyan',
name: 'SONUM',
url: 'sonum.recette.santinova-soft.org',
url: 'sonum-santinova.recette.santinova-soft.org',
desc: 'Cartographie solutions numériques FEHAP',
href: 'https://sonum.recette.santinova-soft.org',
href: 'https://sonum-santinova.recette.santinova-soft.org',
},
{
icon: '👤',
color: 'pink',
name: 'Itinova Contacts',
url: 'contacts.recette.santinova-soft.org',
href: 'https://contacts.recette.santinova-soft.org',
url: 'contacts-itinova.recette.santinova-soft.org',
href: 'https://contacts-itinova.recette.santinova-soft.org',
},
{
icon: BrainCircuit,
color: 'purple',
name: 'Référentiel IA Santinova',
url: 'referentiel-ia.recette.santinova-soft.org',
url: 'referentiel-ia-santinova.recette.santinova-soft.org',
desc: 'Décisions, contrats sécurisés et budgets IA',
href: 'https://referentiel-ia.recette.santinova-soft.org',
href: 'https://referentiel-ia-santinova.recette.santinova-soft.org',
},
{
icon: ServerCog,
@@ -125,15 +125,15 @@ const RECETTE = {
icon: '🚗',
color: 'yellow',
name: 'Flotte Véhicules',
url: 'flotte.recette.santinova-soft.org',
href: 'https://flotte.recette.santinova-soft.org',
url: 'flotte-itinova.recette.santinova-soft.org',
href: 'https://flotte-itinova.recette.santinova-soft.org',
},
{
icon: '🎧',
color: 'orange',
name: 'Podcasts Itinova',
url: 'podcasts.recette.santinova-soft.org',
href: 'https://podcasts.recette.santinova-soft.org',
url: 'podcasts-itinova.recette.santinova-soft.org',
href: 'https://podcasts-itinova.recette.santinova-soft.org',
},
],
};
@@ -159,9 +159,9 @@ const PRODUCTION = {
icon: LayoutDashboard,
color: 'blue',
name: 'Dashboard',
url: 'dashboard.santinova-soft.org',
url: 'dashboard-santinova.santinova-soft.org',
desc: 'Monitoring temps réel',
href: 'https://dashboard.santinova-soft.org',
href: 'https://dashboard-santinova.santinova-soft.org',
},
{
icon: Globe,

View File

@@ -7,49 +7,49 @@ const APPS_CONFIG = [
id: 'itinova-contacts',
name: 'Itinova Contacts',
repoName: 'itinova-contacts',
urlRecette: 'https://contacts.recette.santinova-soft.org',
urlProd: 'https://contacts.santinova-soft.org',
urlRecette: 'https://contacts-itinova.recette.santinova-soft.org',
urlProd: 'https://contacts-itinova.santinova-soft.org',
},
{
id: 'itinova-podcasts',
name: 'Itinova Podcasts',
repoName: 'itinova-podcasts',
urlRecette: 'https://podcasts.recette.santinova-soft.org',
urlProd: 'https://podcasts.santinova-soft.org',
urlRecette: 'https://podcasts-itinova.recette.santinova-soft.org',
urlProd: 'https://podcasts-itinova.santinova-soft.org',
},
{
id: 'veille-reglementaire',
name: 'Veille Réglementaire',
repoName: 'veille-reglementaire',
urlRecette: 'https://veille.recette.santinova-soft.org',
urlProd: 'https://veille.santinova-soft.org',
urlRecette: 'https://veille-itinova.recette.santinova-soft.org',
urlProd: 'https://veille-itinova.santinova-soft.org',
},
{
id: 'itinova-vehicle-exchange',
name: 'Itinova Gestion de Flotte',
repoName: 'itinova-vehicle-exchange',
urlRecette: 'https://flotte.recette.santinova-soft.org',
urlProd: 'https://flotte.santinova-soft.org',
urlRecette: 'https://flotte-itinova.recette.santinova-soft.org',
urlProd: 'https://flotte-itinova.santinova-soft.org',
},
{
id: 'sonum',
name: 'SONUM',
repoName: 'sonum',
urlRecette: 'https://sonum.recette.santinova-soft.org',
urlProd: 'https://sonum.santinova-soft.org',
urlRecette: 'https://sonum-santinova.recette.santinova-soft.org',
urlProd: 'https://sonum-santinova.santinova-soft.org',
},
{
id: 'demat-facturation-dsi',
name: 'Démat. Facturation DSI',
repoName: 'demat-facturation-dsi',
urlRecette: 'https://demat-facturation.recette.santinova-soft.org',
urlProd: 'https://demat-facturation.santinova-soft.org',
urlRecette: 'https://demat-facturation-santinova.recette.santinova-soft.org',
urlProd: 'https://demat-facturation-santinova.santinova-soft.org',
},
{
id: 'facturation-santinova',
name: 'Facturation Santinova',
repoName: 'facturation-santinova',
urlRecette: 'https://facturation.recette.santinova-soft.org',
urlRecette: 'https://facturation-santinova.recette.santinova-soft.org',
urlProd: null,
},
{
@@ -57,28 +57,28 @@ const APPS_CONFIG = [
name: 'Formation Manager',
repoName: 'formation-manager-itinova',
urlRecette: 'https://formation.recette.santinova-soft.org',
urlProd: 'https://formations.itinova.org',
urlProd: 'https://formations-itinova.santinova-soft.org',
},
{
id: 'pilotage-masse-salariale',
name: 'Pilotage Masse Salariale',
repoName: 'pilotage-masse-salariale',
urlRecette: 'https://pilotage-ms.recette.santinova-soft.org',
urlRecette: 'https://pilotage-ms-itinova.recette.santinova-soft.org',
urlProd: null,
},
{
id: 'itinova-budget-si',
name: 'Gestion Budget Informatique',
repoName: 'itinova-budget-si',
urlRecette: 'https://budget-si.recette.santinova-soft.org',
urlRecette: 'https://budget-si-santinova.recette.santinova-soft.org',
urlProd: null,
},
{
id: 'falc-generator',
name: 'FALC Generator',
repoName: 'falc-generator',
urlRecette: 'https://falc.recette.santinova-soft.org',
urlProd: 'https://falc.santinova-soft.org',
urlRecette: 'https://falc-itinova.recette.santinova-soft.org',
urlProd: 'https://falc-itinova.santinova-soft.org',
},
{
id: 'portail-santinova',
@@ -91,8 +91,8 @@ const APPS_CONFIG = [
id: 'manus-dashboard',
name: 'Dashboard Production',
repoName: 'manus-dashboard',
urlRecette: 'https://dashboard.recette.santinova-soft.org',
urlProd: 'https://dashboard.santinova-soft.org',
urlRecette: 'https://dashboard-santinova.recette.santinova-soft.org',
urlProd: 'https://dashboard-santinova.santinova-soft.org',
},
];

View File

@@ -22,7 +22,7 @@ test('le workflow rappelle la séparation des budgets et des accès internes', a
assert.match(source, /Aucune clé fournisseur ni URL Ollama privée/);
assert.match(source, /aria-labelledby="ia-workflow-title"/);
assert.match(source, /aria-label="Modes de décision du moteur IA"/);
assert.match(source, /referentiel-ia\.recette\.santinova-soft\.org/);
assert.match(source, /referentiel-ia-santinova\.recette\.santinova-soft\.org/);
assert.match(source, /llm-local\.recette\.santinova-soft\.org/);
assert.doesNotMatch(source, /http:\/\/ollama:11434/);
});

View File

@@ -4,7 +4,7 @@ import test from 'node:test';
import { getEnvironmentConfig } from '../src/utils/environment.js';
test('détecte le dashboard de recette depuis son domaine public', () => {
const config = getEnvironmentConfig('dashboard.recette.santinova-soft.org');
const config = getEnvironmentConfig('dashboard-santinova.recette.santinova-soft.org');
assert.equal(config.isRecette, true);
assert.equal(config.label, 'Recette');
assert.equal(config.serverPublicIp, '78.138.58.109');
@@ -13,7 +13,7 @@ test('détecte le dashboard de recette depuis son domaine public', () => {
});
test('détecte le dashboard de production depuis son domaine public', () => {
const config = getEnvironmentConfig('dashboard.santinova-soft.org');
const config = getEnvironmentConfig('dashboard-santinova.santinova-soft.org');
assert.equal(config.isRecette, false);
assert.equal(config.label, 'Production');
assert.equal(config.serverPublicIp, '180.149.196.138');