mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-17 20:27:10 +02:00
- Serveur Rust (server-rs/, axum + sqlx) : les 148 adresses de l'API, l'interface, les migrations de démarrage et les tâches de fond ; même comportement que Node (banc : 2027 cas, 0 écart hors écarts déclarés USERS-02, RAPPRO-21, R4, R5). - Node retiré : server/, dépendances serveur, image Docker sans Node (51 Mo), docker-compose à un seul service applicatif. - R4 : écritures d'un autre site refusées (Sec-Fetch-Site / Origin). - R5 : « aujourd'hui » et sauvegarde automatique à l'heure de Paris. - R6 : mainteneur dans .github/CODEOWNERS. - Menu latéral : Accueil puis Calendrier en tête. - Plan et état : docs/PLAN-MIGRATION-RUST.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke2qyS8rgacP3ap5iezDbM
50 lines
1.9 KiB
TypeScript
50 lines
1.9 KiB
TypeScript
// Description des requêtes rejouées par le banc.
|
|
|
|
// "anonyme" : sans session ; "api" : clé de l'API externe (en-tête X-API-Key)
|
|
export type AccountKey = "admin" | "directeur" | "manager" | "employe" | "sans-magasin" | "anonyme" | "api";
|
|
|
|
export const ALL_ACCOUNTS: AccountKey[] = ["admin", "directeur", "manager", "employe", "sans-magasin", "anonyme"];
|
|
export const LOGGED_ACCOUNTS: AccountKey[] = ["admin", "directeur", "manager", "employe", "sans-magasin"];
|
|
|
|
// Écart voulu entre Node et Rust (faille fermée…), décidé et inscrit au banc :
|
|
// ces champs sont retirés des deux côtés avant la comparaison, et le banc
|
|
// rappelle la raison à la fin de son rapport
|
|
export interface Deviation {
|
|
fields: string[];
|
|
reason: string;
|
|
}
|
|
|
|
// Lecture : rejouée sur la même base pour chaque compte
|
|
export interface ReadCase {
|
|
module: string;
|
|
path: string;
|
|
accounts?: AccountKey[]; // par défaut ALL_ACCOUNTS
|
|
// Champs ignorés dans la comparaison (valeurs propres à chaque passage)
|
|
ignore?: string[];
|
|
deviation?: Deviation;
|
|
}
|
|
|
|
// Les chemins et corps acceptent des gabarits :
|
|
// {{today}} {{today+3}} {{today-30}} → AAAA-MM-JJ ; {{year}} {{year-1}} {{month}}
|
|
// {{0.id}} → champ id de la réponse JSON de l'étape 0 du même scénario
|
|
export interface Step {
|
|
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
path: string;
|
|
body?: unknown;
|
|
// json (par défaut), form (urlencoded) ou multipart (champs + fichiers)
|
|
bodyType?: "json" | "form" | "multipart";
|
|
files?: { field: string; filename: string; contentType: string; size: number }[];
|
|
headers?: Record<string, string>;
|
|
}
|
|
|
|
// Écriture : base remise à zéro avant chaque compte, puis état des tables comparé
|
|
export interface WriteScenario {
|
|
module: string;
|
|
name: string;
|
|
accounts?: AccountKey[]; // par défaut LOGGED_ACCOUNTS
|
|
steps: Step[];
|
|
tables: string[];
|
|
ignore?: string[];
|
|
deviation?: Deviation;
|
|
}
|