Aller au contenu

Architecture C4 — Vue conteneurs

Diagramme C4 niveau 2 : les unités déployables et leurs interactions.
Version : 1.0 | Date : 2026-04-27

Vue conteneurs C4
flowchart TB
subgraph SPAs["SPAs Azure App Service"]
  H[gs-hub]
  A[gs-admin]
  I[gs-inventaire]
  F[gs-fit]
end
P[api-portail<br/>SSR + API]
M[gs-mcp API]
SQL[(Azure SQL<br/>GS_Apps)]
SOFI[(SOFI VNet)]
AD[Azure AD]
SPAs --> AD
P --> AD
SPAs --> SQL
P --> SQL
M --> SOFI
classDef public fill:#fee2e2,stroke:#D92231,stroke-width:2px,color:#7f1d1d
classDef interne fill:#dbeafe,stroke:#1e40af,color:#1e40af
class P public
class H,A,I,F,M interne
Voir aussi : thème neutral / terminal

Exports D2 : docs/architecture/diagrams/rendered/neutral/containers-c4.svg et docs/architecture/diagrams/rendered/terminal/containers-c4.svg.

Source D2 sur GitHub

ContainerTypeTechHébergementURL
gs-hubSPA + APIReact + Vite + MSAL.jsAzure App Servicehub.groupesignalisation.ca
gs-adminSPA + APIReact + Vite + MSAL.jsAzure App Serviceadmin.groupesignalisation.ca
gs-inventaireSPA + APIReact + Vite + MSAL.jsAzure App Serviceinventaire.groupesignalisation.ca
gs-fitSPA + APIReact + Vite + MSAL.jsAzure App Servicefit.groupesignalisation.ca
gs-mcpAPINode.js MCP Streamable HTTPAzure App Servicemcp.groupesignalisation.ca
api-portailSSR + APINode.js Express + tediousAzure App Serviceportail.groupesignalisation.ca
ContainerBC ownerStatut
api-adminHub + Admin frontendsPhase 2 (consolide gs-hub + gs-admin)
api-opsInventaire frontendPhase 2
api-loisirsFit frontendPhase 2
api-sstSalus + Formation + Zone-sécurPhase 2
api-portailPortail mobile public + adminPhase 1 (déployé)
DatastoreTypeRôle
sql-gs-apps.GS_AppsAzure SQL DatabaseDonnées métier GS-Apps
SOFI (VNet)SQL Server MicroAgeSource SOFI (ERP)
Azure AD tenant GSIdentity ProviderAuth + claims groups
1Password GSCoffre secretsBreak-glass (compte admin SQL documenté)
Protocoles entre conteneurs
flowchart LR
SPAs[SPAs React] -->|HTTPS + MSAL| AD[Azure AD]
Portail[api-portail] -->|OAuth PKCE| AD
Backends[Backends Node] -->|TDS + MI| SQL[(Azure SQL)]
MCP[gs-mcp] -->|TDS user SQL| SOFI[(SOFI)]
classDef interne fill:#dbeafe,stroke:#1e40af,color:#1e40af
class SPAs,Portail,Backends,MCP interne
Voir aussi : thème neutral / terminal

Exports D2 : docs/architecture/diagrams/rendered/neutral/containers-protocols.svg et docs/architecture/diagrams/rendered/terminal/containers-protocols.svg.

Source D2 sur GitHub

SourceCibleProtocoleBut
SPAsAzure ADHTTPS + MSAL.jsAuth utilisateur
api-portailAzure ADHTTPS + OAuth PKCEAuth SSR / admin portail
Backends NodeAzure SQLTDS + Managed IdentityDonnées GS_Apps
gs-mcpSOFITDS + utilisateur SQL dédiéLecture SOFI (hors MI)
api-portailIntranet GSHTTP redirect 302Lien tuile SST