fokan/eslint.config.mjs
Gautier Stefanini 84c971b05b Audit de sécurité et fonctionnel : correctifs appliqués, quiz rejouable (D-018)
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>
2026-07-28 13:05:55 +00:00

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;