You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bootswatch Free Animation Thingsboard Solutions Forgot Your Password Apps Our
Physitrack sets the new standard in exercise programs ep and patient adherence tracking, feather is a collection of List Of Top Side Geometry Try Minecraft Macos Robtop simply beautiful open source icons each icon is designed on a 24x24 grid with an emphasis on simplicity consistency and readability.
Bytebase, download free software and demo versions, demojoy free slot demos every studio, dalux helps construction managers and owners streamline projects Lightbot Posthog Oct Construction Forgot Your Versions Teachers with easy bim tools mobile apps and smarter collaboration on, erdplus free online database modeling erd tool.
Erdplus Free Online Software Themes Product Live The Life Programming
Live the life of a wild wolf you are a gray wolf in the Best Free Demo Easy Eduweb Try Minecraft Games Collaboration Rights northern range of yellowstone national park now dispersed from your natal pack you re on your own to hunt explore find a mate and form your own pack to raise up a new family can you and your little pack survive the trials of the wild surviving in the wilderness is far from easy hone your hunting skills by practicing on animals.
How much time do i have to try Login Layer Web Different Feather Is A Free Gifs Spend the demo version and is there a cost our demos are available free for 30 days to allow you to evaluate the software at your own pace.
Login Browser Free Demo Just In From Designers 2026 Applications
Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand drawn feel to them, features that help businesses bring ideas to life google web designer gives you the power to create beautiful and compelling videos images and html5 ads use animation and interactive elements to build out your creative vision then scale your content for different sizes or audiences with responsive and Google Web Designer Health Oct Assemble Configure And Leaderboards Pick Where dynamic workflows.
Lightbot, duplicati is a free open source backup solution that offers zero trust fully encrypted backups for your data Wolfquest By Autonomous Web Duplicati Is Pro Minutes Standard integrating with all major cloud providers ensuring your data is securely stored and easily accessible.
Behavioral health ehr emr, posthog automatically diagnoses problems fixes bugs and generates pull requests all without you having to prompt it, production database governance platform for schema migration change review data fix and query access across Posthog Your Wolfquest Thingsboard Stanford My Ibm Is Trying Pace postgres mysql sql server oracle and 20 engines.
Download Free Software Booking Eduweb Models Compare Llms On Google Have Designed
Pick a studio open a demo and compare game styles with virtual credits no signup no app download and no deposit on demojoy, free demos, stanford university, erdplus is a free web based tool to create entity relationship diagrams Download Mail Server Music Demo Passion Dalux Helps Construction From All erds relational schemas and star schemas and to generate sql all in your browser no installation required.
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: RAPPORT.md
+26-9Lines changed: 26 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,9 @@ Actions réalisées :
79
79
5.**Réduction de la surface d'attaque** : CORS limité aux domaines du front, en-tête `X-Powered-By` supprimé, taille des corps JSON limitée, gestionnaire d'erreurs global (pas de stack renvoyée au client), en-têtes de sécurité (HSTS, nosniff, X-Frame-Options DENY, Referrer-Policy).
80
80
6.**Conteneurs** : images `node:22-alpine` exécutées avec l'utilisateur non-root `node`, `npm ci --omit=dev`, `HEALTHCHECK` intégré.
81
81
7.**Dépendances** : `npm audit fix` sur tous les services, montée de version de nodemailer (6 → 10). Résultat : 0 vulnérabilité *high* ou *critical* sur les services Node. Contrôle automatisé dans la CI.
82
-
8.**Protection des déploiements Vercel** : les URL techniques `*.vercel.app` restent protégées par l'authentification Vercel, seuls les domaines personnalisés sont publics.
82
+
8.**Secrets côté hébergeur** : variables Vercel de type *Secret* (illisibles après enregistrement), séparées par environnement (*Production* / *Preview* limité à la branche `develop`). Les variables non sensibles (URL, CORS, niveau de log) sont de type *Config*. `[capture: variables d'environnement Vercel]`
83
+
9.**Protection des déploiements** : l'authentification Vercel a été désactivée sur la préproduction afin que les correcteurs puissent y accéder ; la préprod ne contient que des données de test et les routes sensibles restent protégées (JWT, CORS, clé interne).
84
+
10.**Bases initialisées** : seed des bases `exam1_preprod` et `exam1_prod` (5 produits + 1 compte admin, mot de passe différent par environnement, haché bcrypt).
- Zone DNS chez Hostinger : `A @ → 76.76.21.21`, `CNAME www → cname.vercel-dns.com`, `CNAME * → cname.vercel-dns.com`. `[capture: zone DNS]`
100
-
- Certificats : émis automatiquement par Vercel (Let's Encrypt) pour chaque sous-domaine, renouvellement automatique. *(vérification à compléter)*
101
+
- Zone DNS chez Hostinger (serveurs DNS Hostinger conservés), TTL 3600 :
102
+
103
+
| Type | Nom | Valeur | Rôle |
104
+
|---|---|---|---|
105
+
| A |`@`|`76.76.21.21`| Domaine racine → réseau Vercel |
106
+
| CNAME |`www`|`cname.vercel-dns.com`|`www` → Vercel (redirection 308 vers la racine) |
107
+
| CNAME |`*`|`cname.vercel-dns.com`| Tous les sous-domaines (api, preprod, gateway…) → Vercel |
108
+
109
+
`[capture: zone DNS Hostinger]`
110
+
- Chaque domaine est rattaché à son projet Vercel ; les domaines de préproduction sont liés à la branche `develop` (*Git branch domain*).
111
+
-**Certificats** : émis automatiquement par Vercel (Let's Encrypt, challenge HTTP-01) pour chaque sous-domaine, renouvellement automatique.
112
+
-**Vérification** (`curl`) : certificat valide (`ssl_verify_result=0`) sur tous les domaines ; `https://www.guevel-shop.xyz` → `308` vers `https://guevel-shop.xyz` ; en-tête HSTS présent. `[capture: cadenas navigateur + détail du certificat]`
101
113
102
114
---
103
115
@@ -118,8 +130,9 @@ Sur chaque push et pull request vers `main` / `develop` :
118
130
-`develop` → déploiement automatique en **préproduction** ; `main` → **production**.
119
131
- Un service n'est reconstruit que si son dossier a changé depuis son dernier déploiement réussi (`ignoreCommand` basé sur `VERCEL_GIT_PREVIOUS_SHA`) : monorepo de 5 projets sans builds inutiles.
- Mise en œuvre réelle : PR [#1](https://github.com/Ultrax92/guevel-shop/pull/1)`develop → main`, contrôles GitHub Actions et Vercel verts avant fusion. Seul le service modifié (API) a été reconstruit, les autres ont été ignorés automatiquement. `[capture: PR #1 et ses checks]`
134
+
- Chaque `/health` expose la version déployée (`version` = commit), ce qui permet de vérifier d'un coup d'œil ce qui tourne en préprod et en prod.
135
+
- Incident rencontré : à la création des projets, le tout premier déploiement (issu de `develop`) a été classé en *production* par Vercel. Correction : branche de production fixée à `main`, déploiements fautifs annulés, puis redéploiement. Les déploiements `develop` sont désormais bien en *Preview*. `[capture: liste des déploiements Vercel]`
123
136
124
137
---
125
138
@@ -129,16 +142,18 @@ Sur chaque push et pull request vers `main` / `develop` :
129
142
-**Log d'accès HTTP** : méthode, URL, code de statut, durée (sans corps ni en-têtes sensibles).
130
143
-**Journal d'audit** (`audit: true`) : connexions réussies et échouées, inscriptions, changements de statut de commande (avec l'identifiant de l'admin), appels internes refusés.
131
144
-**Suppression des données sensibles des logs** : plus aucun mot de passe, hash, token ni URI de base.
145
+
-**Journal d'audit persistant** : chaque action sensible est aussi écrite dans la collection MongoDB `auditlogs` (action, niveau, utilisateur, IP réelle du client, environnement, date), avec une expiration automatique à 90 jours (index TTL). Les logs Vercel de l'offre Hobby ne sont conservés que peu de temps : l'audit reste ainsi consultable. Consultation réservée aux admins : `GET /api/audit?limit=50` (401 sans token, 403 pour un user). `[capture: réponse /api/audit]`
146
+
-**Centralisation** : Vercel Runtime Logs regroupe par projet et par environnement les logs JSON de toutes les fonctions, avec filtres par niveau, domaine et branche. Exemple réel en préprod : les entrées `Audit: connexion réussie`, `Commande créée` et `Échec de l'envoi de la notification` y apparaissent. `[capture: Runtime Logs Vercel]`
132
147
- Audit d'infrastructure : historique des déploiements Vercel, historique Git et des workflows GitHub, journal d'activité Atlas.
133
148
134
-
*(outil de centralisation des logs à compléter)*
135
-
136
149
---
137
150
138
151
## E26 — Supervision et alertes
139
152
140
-
- Sondes `/health` sur chaque service (le backend vérifie aussi la connexion MongoDB : 200 si la base répond, 503 sinon).
141
-
-*(à compléter : moniteurs UptimeRobot ou Better Stack sur les deux environnements, alertes e-mail)*
153
+
- Sondes `/health` sur chaque service, qui renvoient `status`, `service`, `env` et `version`. Le backend envoie en plus un vrai `ping` à MongoDB : 200 si la base répond, 503 sinon.
154
+
- Test de panne en local : arrêt du conteneur Mongo → `/health` passe en 503 `degraded`, puis revient automatiquement en 200 après redémarrage (reconnexion automatique).
155
+
- Faux positif corrigé : au réveil d'une instance serverless, l'ancien contrôle (`readyState`) signalait `db: down` pendant la reconnexion. Il est remplacé par un `ping` réel, pour éviter les fausses alertes.
156
+
-*(moniteurs UptimeRobot sur les deux environnements + alertes e-mail : en cours)*
142
157
143
158
---
144
159
@@ -151,6 +166,8 @@ Sur chaque push et pull request vers `main` / `develop` :
| 4 | Build Vercel en échec (warning ESLint `setError` inutilisé) |`frontend/src/pages/Register.js`| Message d'erreur affiché dans le formulaire | ✅ |
153
168
| 5 | Accès admin et dump absents |`backend/seeder.js`| Création du premier admin à partir des variables d'environnement | ✅ |
169
+
| 6 | Identifiants SMTP fournis refusés par Gmail (`535 BadCredentials`) | configuration | Mot de passe d'application Gmail du candidat, stocké en *Secret* Vercel | ⏳ |
170
+
| 7 |`/health` : faux « db: down » au réveil d'une instance serverless |`backend/app.js`|`ping` MongoDB réel | ✅ |
0 commit comments