Sécurité renforcée + nouvelles fonctionnalités (articles liés, vues, design, outillage)#3
Open
envindavsorg wants to merge 6 commits into
Open
Sécurité renforcée + nouvelles fonctionnalités (articles liés, vues, design, outillage)#3envindavsorg wants to merge 6 commits into
envindavsorg wants to merge 6 commits into
Conversation
…, security.txt - Limitation de débit (par IP + globale) sur l'action d'envoi de CV pour bloquer le spam d'e-mails via l'action serveur publique - Messages d'erreur serveur masqués par défaut (ActionError pour les messages sûrs) dans le client next-safe-action - Schéma e-mail durci : prénom trim + caractères autorisés, e-mail max 254 - Route /api/og : titre/description bornés et nettoyés des caractères de contrôle (anti-abus de génération d'images) - Nouveaux headers : HSTS, CSP (base-uri, frame-ancestors, object-src, form-action), COOP, X-DNS-Prefetch-Control - /.well-known/security.txt (RFC 9116) - Lecture des variables d'env via src/env.ts au lieu de process.env (octokit, data.action, commit.action) - Tests unitaires du rate limiter https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…sume.json - WritingsRelated : suggestions « à lire ensuite » en bas des articles, composants et outils, classées par tags partagés puis par date (lib getRelatedContent testée unitairement), FR + EN - WritingsProgress : barre de progression de lecture en haut des pages de contenu (motion, useScroll + useSpring) - /resume.json : CV machine-readable au format JSON Resume, référencé dans /llms.txt https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
Owner
Author
- Action serveur trackViewAction : compte les vues par article, composant et outil dans un blob JSON (stats/views.json), avec validation du slug contre le contenu existant, rate limiting par IP et désactivation propre si BLOB_READ_WRITE_TOKEN est absent - Composant WritingsViews : affiche « x vues » à côté du titre, une seule vue comptée par session de navigation (sessionStorage), masqué tant que le compteur n'est pas disponible - ArticleTitle accepte des children et WritingsHeading un slot meta pour accueillir le compteur, FR + EN https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
- rsc-boundary : visualisation des frontières RSC/composants client en dev (pill flottant), branché dans RootDocument — rend uniquement children en production - nextmap : carte interactive des routes via pnpm routes:map - Documentation du nouveau script dans CLAUDE.md https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
- BackToTop : bouton flottant animé (Motion) qui apparaît après 600px de scroll et remonte la page en douceur, icône ChevronUp animée, monté dans le layout du site (FR + EN) - KonamiConfetti : le code Konami (↑↑↓↓←→←→BA) déclenche une pluie de confettis, un toast et un son — vérifié en navigateur via Playwright https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
Le workflow Labeler (pull_request_target) échouait sur chaque PR car son fichier de configuration n'existait pas. Labels par chemins modifiés : documentation, content, components, actions, routes, tests, dependencies, ci. https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
![Screenshot of /articles/[slug]](https://images.weserv.nl?url=https://sjc.microlink.io/9UXMFbHi6ye5hjwsquJFisAwh9LACFnmZftcV7FnUuzMN6VEufl9OzbmxjhyaUugyq30SqxWT6pTrZbPTVH5Wg.png&w=600)
![Screenshot of /components/[slug]](https://images.weserv.nl?url=https://sjc.microlink.io/7B72qg2MGeCKUz-UQAIgjJF9X2o-NXJ6kLFy-RkoTM-bVroRrLIdLxWuzw7hCdbzHF66T3Q3STQLh1MCCM9oUA.png&w=600)
![Screenshot of /utils/[slug]](https://images.weserv.nl?url=https://sjc.microlink.io/f4lM0mkaewnMktbwEweQ8Ote3OEWKPBZdbI-ZIUH1kPxo8ivgQ7GwoK4vz3WhEOhRf6Ze0sic69BttMLTY2Z6A.png&w=600)

🔒 Sécurité
src/lib/rate-limit.ts(testé unitairement).next-safe-action(seuls les messagesActionErrorsont exposés)./api/ogdurcie : titre/description bornés (120/280) et nettoyés des caractères de contrôle.frame-ancestors 'none',object-src 'none',base-uri 'self',form-action 'self'), COOP, X-DNS-Prefetch-Control./.well-known/security.txt(RFC 9116).src/env.tspartout (octokit, actions GitHub).✨ Fonctionnalités
src/lib/related.ts, testé), FR + EN./resume.json: CV machine-readable au format JSON Resume, référencé dans/llms.txt.stats/views.json) : 1 vue par session, validation du slug contre le contenu réel, rate limiting par IP, masqué proprement sansBLOB_READ_WRITE_TOKEN.🎨 Design
🛠️ Outillage dev (Next.js Weekly)
childrenen prod).pnpm routes:mapouvre une carte interactive des routes.✅ Validation
pnpm typesetpnpm lintau vert, compilation prod OK/resume.jsonBLOB_READ_WRITE_TOKENen prod (Vercel → Storage → Blob).pnpm-lock.yaml(absent du repo) pour des builds reproductibles.https://claude.ai/code/session_01SKa4Csg7HxNxwrt4knWE7r