Sécurité : réclamation de foyer et consentement de rétractation déplacés dans le webhook Stripe uniquement (jamais plus au rendu de page) ; mot de passe Postgres régénéré et réseau dédié (fokan-net, base retirée de ai-net) ; limitation de débit sur les routes publiques ; plafonds sur les invitations ; jeton .ics dédié et révocable ; en-têtes de sécurité. Fonctionnel : le mail « garder le lien » part réellement ; verrou en mémoire sur l'enrichissement d'un foyer (course quiz/pg-boss) ; rattrapage Crit'Air étendu au passage hebdomadaire ; webhook Stripe robustifié (past_due/trialing ne coupent plus l'accès) ; champ P.2 proposé aussi sur la voie déclarative du quiz (marque/modèle), pas seulement via le champ K. Nouveau : un abonné peut rejouer son quiz pour mettre à jour son foyer (garde-fou d'un rejeu par mois) — voir D-018 dans docs/decisions.md pour le compromis retenu sur l'état des échéances. Exploitation : CI GitHub Actions, ESLint, migrations Drizzle versionnées (base existante baselinée, nouvelle migration jouée), healthcheck /api/health. Code mort retiré. Voir docs/audit-2026-07-28.md § 0 pour le détail complet, correctif par correctif, et ce qui reste délibérément différé (sauvegardes, sourcing des intervalles de courroie). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
765 B
JavaScript
21 lines
765 B
JavaScript
import { dirname } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { FlatCompat } from "@eslint/eslintrc";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
const compat = new FlatCompat({ baseDirectory: __dirname });
|
|
|
|
/**
|
|
* Config ESLint (audit E5, 28/07/2026) — absente jusqu'ici, alors que le § 27 du cadrage la cite
|
|
* dans la CI. `eslint-config-next` pointé sur `15.5.21`, la version exacte de `next` installée.
|
|
*/
|
|
const eslintConfig = [
|
|
...compat.extends("next/core-web-vitals", "next/typescript"),
|
|
{
|
|
// `next-env.d.ts` est régénéré par Next.js à chaque build — jamais à éditer ni à lint.
|
|
ignores: [".next/**", "drizzle/**", "node_modules/**", "next-env.d.ts"],
|
|
},
|
|
];
|
|
|
|
export default eslintConfig;
|