Starters Forge¶
Forge · Parcours applicatifs
Vue d'ensemble des starters
Des parcours progressifs pour apprendre Forge, reconstruire vite et adapter à un vrai projet.
Principe¶
Un starter Forge est un exemple applicatif générable avec forge starter:build. Il fournit un point de départ fonctionnel pour comprendre les mécaniques du framework, construire une base métier ou produire rapidement une démonstration.
Un starter n'est pas un profil. Voir Différence entre profil et starter.
Tableau de synthèse¶
| Starter | Statut | Profil associé | Usage recommandé |
|---|---|---|---|
| 1 — Contacts | Officiel simple | minimal / standard |
Découvrir Forge avec un exemple CRUD simple |
| 2 — Utilisateurs / Auth | Auth minimale moderne | standard |
Comprendre une authentification minimale avec core.auth |
| 3 — Carnet de contacts | Officiel relationnel | standard |
Comprendre les relations entre entités (many_to_one, JOIN SQL) |
| 4 — Suivi pédagogique | Historique / legacy | Aucun profil principal | Consulter un exemple métier historique, non recommandé comme base moderne |
| 5 — Communes & Séjours | Démonstrateur avancé principal | standard |
Voir une application démonstratrice couvrant les briques modernes de Forge |
| 6 — Auth MFA | Démonstrateur MFA (Pre-Alpha) | auth-mfa |
Ajouter un challenge TOTP au flux de connexion avec forge-mvc-mfa |
Starters officiels simples¶
Starter 1 — Contacts¶
Le starter officiel simple de Forge. Une seule entité Contact, un CRUD généré, des routes câblées manuellement.
Profil recommandé : minimal ou standard.
- idéal pour découvrir Forge ;
- aucune relation, aucune authentification ;
- premier parcours Forge.
Starter 3 — Carnet de contacts¶
Le starter officiel relationnel de Forge. Deux entités (Ville et Contact), une relation many_to_one, un LEFT JOIN SQL visible.
Profil recommandé : standard.
- idéal pour comprendre les relations entre entités ;
- montre
relations.json, la clé étrangère et la requête JOIN.
Starter Auth minimal moderne¶
Starter 2 — Utilisateurs / Auth¶
Un exemple d'authentification minimale alignée sur le socle core.auth de Forge.
Profil recommandé : standard.
- login / logout avec sessions CSRF ;
@login_required,login_user,logout_user,verify_passworddepuiscore.auth;- dashboard protégé, page profil.
Limites du starter 2
Ce starter ne démontre pas MFA, OIDC, RBAC avancé, reset password complet ou administration utilisateurs.
Démonstrateur historique¶
Starter 4 — Suivi pédagogique¶
Un exemple pédagogique historique conservé comme référence. Il montre une application métier plus riche : plusieurs entités, relations, seed et un flux d'authentification ancien.
Statut legacy
Ce starter n'est plus recommandé comme base pour un nouveau projet. Son implémentation auth est antérieure au socle core.auth. Il reste disponible comme trace pédagogique.
Démonstrateur avancé principal¶
Starter 5 — Communes & Séjours¶
Le démonstrateur avancé principal de Forge. Il couvre les briques modernes du framework dans une application cohérente.
Ce starter démontre :
- entités et relations ;
- pages publiques (
make:public-page,make:public-list,make:public-show,make:public-form,make:public-contact) ; - formulaire de contact avec mail ;
- internationalisation (i18n) ;
- seed JSON ;
- médias et fichiers.
Démonstrateur MFA (Pre-Alpha)¶
Starter 6 — Auth MFA¶
Un skeleton d'authentification multi-facteurs TOTP basé sur le module opt-in
forge-mvc-mfa. Remplace deux contrôleurs dans un projet déjà initialisé avec
le profil auth-mfa.
Profil recommandé : auth-mfa.
- challenge TOTP intercalé entre password et session (
/login/mfa) ; - état temporaire de challenge avec expiration 10 min ;
- rate-limit et audit des événements MFA inclus.
Module en Pre-Alpha
Le module forge-mvc-mfa stocke le secret TOTP en clair. Non recommandé
en production sensible. Voir packages/forge-mvc-mfa/README.md.
Différence entre profil et starter¶
Un profil définit la base technique d'un projet créé avec forge new. Il détermine les composants inclus dans l'environnement de départ.
Un starter fournit un exemple applicatif générable après la création du projet.
Les profils et les starters sont indépendants :
- un profil ne remplace pas un starter ;
- un starter ne modifie pas le profil du projet ;
- un starter peut illustrer un ou plusieurs profils ;
- Communes & Séjours est une vitrine avancée, pas un profil.
Pour choisir un profil : Profils de projet.
Génération automatique¶
forge starter:build 1 # Contacts
forge starter:build 2 # Utilisateurs / Auth
forge starter:build 3 # Carnet de contacts
forge starter:build 4 # Suivi pédagogique
forge starter:build 5 # Communes & Séjours
forge starter:build 6 # Auth MFA (Pre-Alpha)
Les alias contacts, auth, carnet, suivi, communes-sejours et leurs variantes sont également supportés.
forge starter:list affiche la liste complète depuis la CLI.
Démarrer un starter¶
forge new MonProjet
cd MonProjet
source .venv/bin/activate
forge doctor
forge db:init
forge starter:build 1 # remplacer 1 par le numéro souhaité
Chaque page de starter liste les commandes exactes, le modèle de données et les étapes de reconstruction.
Fichiers de reconstruction¶
| Starter | Présentation | Reconstruction |
|---|---|---|
| Contacts | Présentation | rebuild.md |
| Utilisateurs / Auth | Présentation | rebuild.md |
| Carnet de contacts | Présentation | rebuild.md |
| Suivi pédagogique | Présentation | rebuild.md |
| Communes & Séjours | Présentation | rebuild.md |
| Auth MFA | Présentation | rebuild.md |
Statut officiel des starters¶
| Starter | Statut |
|---|---|
| 1 — Contacts | Starter officiel simple |
| 2 — Utilisateurs / Auth | Auth minimale moderne (core.auth) |
| 3 — Carnet de contacts | Starter officiel relationnel |
| 4 — Suivi pédagogique | Exemple pédagogique historique / legacy |
| 5 — Communes & Séjours | Démonstrateur avancé principal |
| 6 — Auth MFA | Démonstrateur MFA (Pre-Alpha) |