Créer votre propre module avec Claude
Un module est une petite application faite pour votre organisation — un registre de prêt de matériel, un journal des visiteurs, une liste de prix — que votre équipe ouvre depuis la barre de gauche de PAFworks. Claude Code l’écrit, la teste et la déploie. Rien de ce qu’elle demande ne fonctionne tant qu’un administrateur ne l’a pas approuvé.
Comment ça marche
Un module est une petite application web (Python et Flask) écrite pour votre espace par ses administrateurs — en pratique, par Claude Code en leur nom. PAFworks exécute chaque module à l’écart de tout le reste, dans son propre environnement isolé, et l’affiche dans la barre de gauche à une adresse telle que https://cloud.example.com/mods/loans/.
Les modules déjà écrits par d’autres s’installent aussi en un clic : voir Installer des modules depuis le Store.
Tout ce qu’un module utilise est déclaré dans son fichier module.json. Claude Code le déploie par un connecteur à part, le connecteur de modules ; un administrateur approuve ensuite, sur la page du module, ce qu’il peut faire.
Avant de commencer
- Un compte administrateur. Allumer les modules, brancher Claude Code et approuver sont réservés aux administrateurs. Vos utilisateurs se contentent d’utiliser les modules que vous publiez.
- Les modules sur votre PAFworks. Ils ont besoin d’un hôte de modules sur le serveur. Si Modules n’apparaît pas dans votre administration, demandez à votre fournisseur.
- Claude Code sur votre ordinateur, et un dossier vide pour le module.
- Pour tester un module sur votre ordinateur avant de le déployer : Python 3.11 ou plus récent, avec les paquets Flask et Waitress.
Étape 1 — Allumer les modules
Cliquez sur Admin dans la barre de gauche, puis sur Modules dans la liste (avec l’étiquette Expérimental).
-
Cliquez sur Allumer les modules. L’interrupteur indique Activés.
Les modules s’allument pour tout votre espace. Éteindre les modules les retire plus tard tous de la barre de gauche : leurs pages ne répondent plus et leurs tâches planifiées s’arrêtent, mais leurs données sont conservées.
La page Modules comporte alors trois parties : l’interrupteur ; Modules de cet espace, une carte par module avec son adresse, sa version et des étiquettes telles que En attente de validation, Inactif ou Le dernier déploiement a échoué — cliquez sur une carte pour ouvrir la page du module ; et Brancher Claude Code, avec vos jetons de développeur. Modules supprimés apparaît en dessous s’il y en a.
Étape 2 — Brancher Claude Code
Claude Code se connecte au connecteur de modules avec un jeton de développeur : une clé à part, qui ne fonctionne que pour un administrateur, que pour les modules, et jamais comme mot de passe pour la messagerie ou les fichiers.
Dans Brancher Claude Code, sur la même page, saisissez un Nom (
Claude Codesi vous le laissez vide). Pour limiter le jeton dans le temps, saisissez un nombre de jours dans Expire après (jours) ; vide, il n’expire jamais. Cliquez sur Créer un jeton.-
Copiez le jeton tout de suite : il n’est affiché qu’une fois. En dessous, la page donne la commande à lancer dans le terminal où travaille Claude Code, jeton compris.
-
Lancez cette commande dans un terminal, depuis le dossier où vous construirez vos modules. Elle ressemble à ceci :
claude mcp add --transport http cloud-example-com-modules https://cloud.example.com/mcp-modules --header "Authorization: Bearer dcmod_…"
Jeton perdu ? Créez-en un autre, puis cliquez sur Révoquer à côté de l’ancien : Claude Code perd cet accès immédiatement. Chaque administrateur voit et révoque ses propres jetons.
Ce n’est pas le connecteur PAFworks habituel. Le connecteur qui donne à Claude accès à vos fichiers, à votre messagerie et à vos agendas (voir Utiliser PAFworks depuis Claude et d’autres applications d’IA) a une autre adresse et prend un mot de passe d’application. Le connecteur de modules, à l’adresse /mcp-modules, ne prend qu’un jeton de développeur : un mot de passe d’application n’y fonctionne pas, et un jeton de développeur n’ouvre ni vos fichiers ni votre messagerie.
Pourquoi Claude Code, et pas claude.ai ? Pour construire et déployer, Claude lance des commandes dans le dossier du module, sur votre ordinateur : il télécharge le kit, exécute le module en local et envoie chaque version depuis cet endroit. Une conversation sur claude.ai ne peut pas les lancer sur votre ordinateur, et la page ne donne que la commande pour Claude Code.
Étape 3 — Demander un module à Claude
Lancez Claude Code dans un dossier vide et décrivez ce qu’il vous faut avec vos propres mots : ce que le module affiche, ce qu’on y fait, et ce qui doit se passer tout seul. Par exemple :
« Créez un module PAFworks appelé Prêts de matériel. Il liste notre matériel — ordinateurs portables, un projecteur, un appareil photo, un trépied — avec, pour chaque article, qui l’a emprunté et la date de retour prévue. Ajoutez un formulaire pour prêter un article, un bouton Rendu et un export Excel. Chaque matin à 8:00, notifiez la personne qui a enregistré un prêt désormais en retard. Lisez d’abord le guide des modules, testez le module en local avec dcmod-dev, puis déployez-le. »
Claude en fait un module qui déclare ce dont il a besoin — pour celui-ci, l’envoi de notifications dans PAFworks et une tâche planifiée. Ses pages ressemblent au reste de PAFworks et reprennent les couleurs de votre organisation.
Étape 4 — Claude construit, teste et déploie
Vous pouvez suivre chaque étape dans Claude Code. Les outils du connecteur de modules sont indiqués entre parenthèses.
Il lit le guide des modules (
module_guide) : les règles d’un module, la boîte à outils avec laquelle il s’écrit, les règles de design, le catalogue d’actions, des recettes et le fonctionnement du déploiement.Il télécharge le kit (
get_module_kit) : la boîte à outils, l’outil de test localdcmod-dev, un squelette fonctionnel pour démarrer et un fichier de règlesCLAUDE.md. L’outil répond par une commande, valable 10 minutes, que Claude lance dans votre dossier.Il écrit le module :
module.json, l’application, ses gabarits de page et les fichiers qui créent sa base de données.Il le teste sur votre ordinateur avec
dcmod-dev: il vérifie, comme le fait un déploiement, que les changements de base de données s’appliquent et que le module démarre, puis il ouvre ses pages dans une copie locale de PAFworks, captures d’écran comprises. Les e-mails ne sortent jamais dedcmod-dev.Il le déploie (
deploy_module) : une autre commande, lancée dans le dossier du module, empaquette le dossier, vérifie son empreinte et l’envoie à votre espace.Il lit le rapport (
module_status) : déployé, échec — avec le fichier et la ligne en cause — ou en attente de validation. Un déploiement en échec ne remplace jamais la version en service : Claude corrige le code et déploie de nouveau. Un premier déploiement vous attend toujours : Claude vous le dit.
Pour trouver un problème, Claude lit les journaux du module (module_logs) et ouvre lui-même ses pages (call_module) : en votre nom, comme invité d’un workspace, ou comme visiteur non connecté. rollback_module revient à la version précédente, après avoir indiqué quelles données seraient perdues.
Les tests locaux avec votre jeton utilisent votre compte. Quand dcmod-dev exécute le module avec votre jeton de développeur, les actions que déclare le module sont effectuées dans votre espace, en votre nom : une tâche créée pendant un test est une vraie tâche. dcmod-dev --offline utilise plutôt des données d’exemple.
Ce que Claude ne peut pas faire. Déployer n’accorde jamais rien. Approuver, ouvrir une passerelle vers Internet, la messagerie ou l’IA, changer l’adresse d’un module, saisir un secret et supprimer un module sont toujours le fait d’un administrateur, dans l’interface web. De même pour allumer les modules, créer des jetons, choisir qui peut utiliser un module et le placer dans un workspace.
Étape 5 — Approuver le premier déploiement
-
Ouvrez Admin › Modules. Sous Modules de cet espace, le nouveau module indique En attente de validation et pas encore en service. Cliquez dessus.
-
Lisez le haut de la page : la version en attente, quand et par qui elle a été envoyée, et Ce que ce module utilise, en termes simples — ici, Envoie des notifications et la tâche planifiée
overdue. Ce que la version en service n’utilisait pas déjà porte la mention nouveau : lors d’un premier déploiement, tout.
-
Sous Droits, cochez ce que vous acceptez. Seul ce que le module déclare est proposé. Une tâche planifiée s’exécute au nom de l’administrateur qui l’active, avec les droits de cet administrateur. Cliquez sur Approuver et déployer 1.0.0.
-
Le déploiement démarre. Son rapport apparaît sous Déploiements : chaque étape cochée, des vérifications de l’archive au passage à la nouvelle version. Le module est maintenant en service.
Une action que vous laissez décochée est refusée quand le module l’appelle. Par la suite, Enregistrer les autorisations change ce qu’un module en service peut faire, sans rien déployer.
Ce que voient vos utilisateurs
Le module apparaît dans la barre de gauche, avec son icône et son libellé, pour les personnes autorisées à l’utiliser. Il s’ouvre à l’intérieur de PAFworks, aux couleurs de votre organisation.
À propos de ce module, en haut à droite, liste ce qu’il utilise et indique si chaque élément a été approuvé.
- Il agit au nom de la personne qui l’utilise. Tout ce qu’un module fait dans votre espace — lire un contact, créer une tâche — il le fait avec exactement les droits de la personne devant lui. Les changements qu’il apporte aux fichiers figurent dans leur activité avec la mention « via le module ».
- L’intelligence artificielle est annoncée. Quand un module peut envoyer à un modèle de langage ce que saisissent les utilisateurs, un bandeau l’indique au-dessus de lui.
- Un module qui ne peut pas répondre affiche un court message dans sa page ; le reste de PAFworks n’est pas touché.
Choisir qui l’utilise
La section Général de la page du module décide où il se trouve et qui le voit. Cliquez sur Enregistrer après un changement.
| Réglage | Ce qu’il fait |
|---|---|
| Adresse | La fin de /mods/…/. La changer conserve les données ; les anciens liens cessent de fonctionner. |
| Actif | Décochez-le pour mettre le module hors ligne sans le supprimer : il quitte la barre de gauche et ses pages ne répondent plus. |
| Qui peut l’utiliser | Tout le monde, Groupes choisis (à cocher en dessous) ou Administrateurs seulement. Les administrateurs peuvent toujours ouvrir un module. |
| Affiché dans le rail | Décochez-le pour garder le module hors de la barre de gauche ; il s’ouvre toujours depuis son adresse. |
| Libellé dans le rail | Le nom sous son icône dans la barre de gauche, à la place de celui que le module a choisi. |
Ce qu’un module peut demander
Un module déclare dans module.json tout ce qu’il utilise. Ce qu’il ne déclare pas ne fonctionne pas et n’est pas proposé à l’approbation ; ce qu’il déclare ne fonctionne pas tant que vous ne l’accordez pas sous Droits.
| Déclaré | Ce que le module obtient | Ce que vous décidez sur sa page |
|---|---|---|
| Actions | Lire ou modifier fichiers, contacts, agendas et tâches ; lire les e-mails et écrire des brouillons ; lire les formulaires et leurs réponses ; envoyer des notifications ; créer des documents PDF. Au nom de la personne qui utilise le module. | Chaque action, sous Actions sur cet espace. |
| Internet | Des appels à des services sur Internet. | Internet : adresses publiques uniquement, 10 Mio par réponse, 600 requêtes par heure, chaque appel journalisé. |
| Courrier | L’envoi d’e-mails hors de votre espace. | Courrier : les expéditeurs autorisés, sur un domaine vérifié sous Domaines autorisés, et l’expéditeur par défaut. 100 e-mails par heure, 1 000 par jour. |
| Intelligence artificielle | Des questions à un modèle de langage. Jamais pour les invités de workspace ni les visiteurs. | Intelligence artificielle : un modèle de Modèles de langage qui a un prix (voir Configurer l’assistant pour votre organisation), et un plafond mensuel dans sa devise. Les administrateurs sont notifiés à 80 % et 100 % ; une fois le plafond atteint, l’IA du module ne répond plus jusqu’au mois suivant ou jusqu’à ce que vous le releviez. |
| Tâches planifiées | Un travail fait tout seul, toutes les 5 ou 15 minutes, toutes les heures, tous les jours ou à une heure fixe. | Chaque tâche, sous Tâches planifiées. Elle s’exécute au nom de l’administrateur qui l’a activée. |
| Pages publiques | Des pages que n’importe qui peut ouvrir sans se connecter, et des webhooks pour d’autres services. | Pages publiques et webhooks : un captcha sur les formulaires et une limite de débit ; les sites web autorisés à les intégrer ; si les moteurs de recherche peuvent les indexer. |
| Pages de workspace | Des pages pour les invités d’un workspace. | Pages pour les invités d'un workspace, puis, sous Dans les workspaces, un Workspace et une Page, et Poser dans un workspace. Les invités la trouvent parmi les Applications de leur workspace. |
| Secrets | Des clés d’autres services, comme un prestataire de paiement. | Secrets : saisis uniquement sur la page, stockés chiffrés, jamais réaffichés et jamais envoyés par une conversation avec un modèle. |
Pages pour les invités d’un workspace. Tenir les données d’un client à l’écart d’un autre dépend du module lui-même, qui doit tout filtrer par workspace. PAFworks ne peut pas le vérifier : testez une telle page avec chaque invité avant de la placer.
Mettre à jour un module
Demandez le changement à Claude dans le même dossier. Il déploie une nouvelle version de la même manière.
- Rien de nouveau demandé : la nouvelle version entre en service immédiatement, sans votre approbation. Une version qui demande moins n’en a pas besoin non plus.
- Quelque chose de nouveau demandé — une action, une passerelle, une tâche planifiée, une page publique, une page de workspace ou un secret : la version attend un administrateur, et la version en service continue de tourner jusqu’à votre approbation. La page signale ce qui est nouveau.
- Une seule version en attente à la fois : un déploiement ultérieur remplace celle qui attend.
- Les données suivent. Les changements de base de données de la nouvelle version s’exécutent d’abord sur une copie : un déploiement qui échoue à n’importe quelle étape laisse la version en service et ses données telles quelles.
Surveiller, revenir en arrière, restaurer
Plus bas sur la page du module :
- Suivi : son état, la taille de sa base de données, sa consommation de mémoire et de processeur, ce que son IA a coûté ce mois-ci, et Dernières lignes du journal. stopped est normal pour un module que personne n’a utilisé depuis un moment : il redémarre à la visite suivante. failed suit trois plantages en dix minutes, jusqu’au prochain déploiement ou à un changement de ses réglages.
- Déploiements : chaque version envoyée, avec son rapport — étapes, erreurs avec fichier et ligne, avertissements.
- Revenir à la version précédente, affiché dès qu’il y en a une, revient à la version précédente et à sa base de données : tout changement fait depuis le déploiement de la version actuelle est perdu. Claude peut faire de même avec
rollback_module, après vous avoir indiqué ce qui serait perdu. - Copies des données : PAFworks copie la base de données du module toutes les heures quand elle a changé, et conserve les 24 dernières copies ainsi qu’une par jour pendant 14 jours. Restaurer remet une copie en place ; tout ce qui a été écrit depuis est perdu.
- Effacer les données, sous Réinitialiser les données, démarre la version en service sur une base de données vide. Une copie est prise d’abord, pour pouvoir la restaurer.
Supprimer un module
En bas de la page du module, cliquez sur Supprimer ce module et confirmez. Il quitte immédiatement la barre de gauche. Ses données sont conservées, et vous pouvez le faire revenir avec Restaurer sous Modules supprimés sur la page Modules pendant 30 jours ; ensuite, il est effacé pour de bon.
Bon à savoir
- Expérimental, et une option du serveur. Sans hôte de modules, l’administration n’a pas d’entrée Modules, et ni les pages ni le connecteur n’existent. Demandez à votre fournisseur.
- Plafonds. Par défaut, un espace contient jusqu’à 20 modules ; un module dispose de 256 Mo de mémoire sauf s’il en demande plus (512 Mo au maximum) et d’une base de données de 512 Mo au plus ; une version envoyée pèse au maximum 20 Mio. Votre fournisseur fixe ces limites.
- Un environnement isolé rien que pour lui. Un module ne peut ni ouvrir de connexion réseau, ni lancer de programme, ni lire autre chose que ses propres fichiers et données. Internet, la messagerie et l’IA ne passent que par les passerelles que vous ouvrez.
- Gardez le dossier du module. Son code source reste sur votre ordinateur : PAFworks conserve les versions qu’il exécute, mais l’interface web ne propose pas de les télécharger. Un dépôt Git lui convient bien.
- Les jetons de développeur ne sont stockés que sous forme d’empreintes. Un jeton cesse de fonctionner quand il expire ou est révoqué, quand son propriétaire n’est plus un administrateur actif, et tant que les modules sont éteints.
- Des commandes à courte durée de vie. Les commandes données à Claude pour télécharger le kit et envoyer une version fonctionnent 10 minutes ; ensuite, il en redemande au connecteur.
- Les tâches planifiées s’exécutent 5 minutes au maximum, jamais deux fois en même temps, et sont ignorées si l’administrateur qui les a activées ne l’est plus.