Référence des commandes Forge¶
Cette page liste toutes les commandes du CLI forge.
Trois modes d'invocation équivalents :
forge <commande> # via entry point pip (recommandé)
python -m forge <commande> # via module Python
python forge.py <commande> # script direct (développement)
Pour l'aide complète d'une section : forge --help.
Commandes de projet¶
forge new¶
Crée un nouveau projet Forge à partir d'un profil starter.
Options :
--profile <nom>— profil à utiliser (défaut :utilisateurs-auth)
Profils disponibles :
| Profil | Description |
|---|---|
contact-simple |
CRUD simple de contacts |
utilisateurs-auth |
Login, sessions, routes protégées, CSRF |
carnet-contacts |
Carnet relationnel avec relations SQL |
suivi-comportement-eleves |
Auth, dashboard, entités liées |
communes-sejours |
Pages publiques, formulaire, mail |
auth-mfa |
Auth + MFA TOTP (nécessite forge-mvc-mfa) |
Exemple :
Voir aussi : Profils de projet
forge doctor¶
Diagnostic large et tolérant de l'environnement courant (lecture seule).
Vérifie : version Python, chargement .env, structure mvc/, entités, migrations, i18n, templates.
forge project:check¶
Contrôle strict des conventions — conçu pour la CI.
Retourne code de sortie non-nul si le projet ne respecte pas les conventions Forge. Doit être lancé depuis la racine d'un projet Forge.
forge project:audit¶
Rapport d'audit détaillé non destructif.
Inspecte la structure complète du projet et produit un rapport humain lisible. Doit être lancé depuis la racine d'un projet Forge.
forge routes:list¶
Affiche toutes les routes déclarées dans mvc/routes.py.
Commandes d'entités¶
forge make:entity¶
Génère une entité JSON et son modèle Python.
Options :
--no-input— génère un gabarit minimal sans poser de questions
Crée mvc/entities/<NomEntite>/<nomEntite>.json et mvc/entities/<NomEntite>/<nomEntite>.py.
Exemple :
forge make:crud¶
Génère un CRUD complet : liste, fiche, formulaires de création, modification et suppression.
Options :
--dry-run— affiche les fichiers qui seraient créés sans écrire
Exemple :
forge make:relation¶
Déclare une relation entre deux entités dans mvc/entities/relations.json.
Mode interactif : pose les questions sur les deux entités et le type de relation.
forge sync:entity¶
Régénère les fichiers modèles d'une entité depuis son JSON.
forge sync:relations¶
Régénère mvc/entities/relations.sql depuis relations.json.
forge build:model¶
Régénère tous les modèles Python depuis leurs entités JSON.
forge check:model¶
Vérifie la cohérence des modèles : JSON valide, champs requis, types reconnus.
Commandes de pages publiques¶
Ces commandes génèrent des pages accessibles sans authentification.
forge make:public-page¶
Génère une page statique publique.
forge make:public-list¶
Génère une liste publique paginée pour une entité.
forge make:public-show¶
Génère une fiche publique détaillée pour une entité.
forge make:public-form¶
Génère un formulaire public pour une entité.
forge make:public-contact¶
Génère une page de contact publique.
Voir aussi : Pages publiques
Commandes de base de données¶
forge db:init¶
Crée la base de données depuis les entités définies.
Requiert les variables DB_ADMIN_* dans env/dev.
Crée la base, les tables, et insère les données initiales si présentes.
forge db:apply¶
Applique le schéma SQL courant.
forge migration:status¶
Affiche le statut des migrations : appliquées, en attente.
forge migration:apply¶
Applique les migrations SQL en attente dans mvc/migrations/.
forge migration:make¶
Crée un nouveau fichier de migration SQL horodaté.
Crée mvc/migrations/<timestamp>_<nom>.sql.
forge migration:diff¶
Génère un diff SQL entre la définition d'une entité et la base de données actuelle.
Commandes de starters et modules¶
forge starter:list¶
Liste les starter apps disponibles avec leur statut et leur URL de documentation.
forge starter:build¶
Génère un starter app dans le projet courant.
forge module:list¶
Liste les modules Forge disponibles.
forge module:install¶
Installe un module Forge dans le projet.
forge module:install <nom>
forge module:install <nom> --path <chemin>
forge module:install <nom> --dry-run
forge module:files¶
Copie les fichiers d'un module dans le projet sans modifier les routes.
forge module:routes¶
Injecte les routes d'un module dans mvc/routes.py.
Commandes d'authentification¶
forge auth:init¶
Initialise les tables et fichiers d'authentification du projet.
Crée les fichiers SQL (users.sql, sessions.sql, etc.), les contrôleurs
et les formulaires d'authentification.
Voir aussi : Auth
forge auth:doctor¶
Diagnostic du système d'authentification.
forge auth:status¶
Affiche l'état des briques d'authentification installées (modules disponibles, contrats vérifiés).
forge auth:list-sql¶
Affiche les fichiers SQL optionnels du système d'authentification et leur statut (présent / absent).
forge auth:user:show¶
Affiche les détails d'un compte utilisateur.
forge auth:user:create¶
Crée un compte utilisateur en base.
forge auth:user:create --email <email>
forge auth:user:create --email <email> --password <mot_de_passe>
forge auth:user:create --email <email> --password-prompt
Options :
--email <email>— adresse email (requis)--password <mdp>— mot de passe en clair--password-prompt— saisie interactive sécurisée
forge auth:user:list¶
Liste les comptes utilisateurs.
forge auth:user:disable¶
Désactive un compte utilisateur.
forge auth:user:enable¶
Réactive un compte utilisateur désactivé.
forge auth:user:password¶
Modifie le mot de passe d'un compte.
forge auth:user:password --email <email> --password <mdp>
forge auth:user:password --email <email> --password-prompt
forge auth:user:role:add¶
Assigne un rôle à un utilisateur.
forge auth:user:role:remove¶
Retire un rôle d'un utilisateur.
forge auth:user:roles¶
Affiche les rôles d'un utilisateur.
Commandes mail¶
forge mail:init¶
Initialise la configuration mail du projet.
forge mail:test¶
Envoie un mail de test pour vérifier la configuration.
forge mail:render¶
Rend un template de mail en HTML pour prévisualisation.
forge mail:doctor¶
Diagnostic de la configuration mail.
forge mail:logs¶
Affiche les derniers logs d'envoi mail.
Commandes médias et JavaScript¶
forge upload:init¶
Configure le stockage des fichiers uploadés.
Crée storage/uploads/ et ses sous-dossiers (images, documents, tmp).
forge media:init¶
Configure le stockage des médias avec génération de vignettes.
Crée storage/uploads/ avec sous-dossiers images/thumbnail et images/medium.
forge js:init¶
Installe une bibliothèque JavaScript dans le projet.
Commandes d'internationalisation¶
forge i18n:init¶
Initialise la configuration i18n du projet.
Crée translations/fr.json si absent.
forge i18n:check¶
Vérifie la cohérence des catalogues i18n.
Commandes de déploiement¶
forge deploy:init¶
Initialise les fichiers de configuration de déploiement.
Crée deploy/nginx/forge-app.conf, deploy/systemd/forge-app.service et
deploy/README_DEPLOY.md.
forge deploy:check¶
Vérifie la configuration de déploiement et l'environnement cible.
Commandes de synchronisation¶
forge sync:landing¶
Synchronise la landing page source vers docs/index.html.
Copie mvc/views/landing/index.html → docs/index.html et static/ → docs/static/.
À utiliser après toute modification de la landing page source.
Commandes de documentation¶
forge docs:pdf¶
Génère un PDF depuis la documentation du projet.
Utilitaires¶
forge --version¶
Affiche la version courante de Forge.
forge --help¶
Affiche l'aide générale avec toutes les commandes disponibles.