PAFworks Guides Tous les guides English
Administration · Modules

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

  1. Cliquez sur Admin dans la barre de gauche, puis sur Modules dans la liste (avec l’étiquette Expérimental).

  2. Cliquez sur Allumer les modules. L’interrupteur indique Activés.

    La page Modules de l’administration, modules éteints, avec le bouton Allumer les modules

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.

  1. Dans Brancher Claude Code, sur la même page, saisissez un Nom (Claude Code si 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.

  2. 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.

    Brancher Claude Code : le nouveau jeton de développeur, affiché une seule fois, et la commande claude mcp add
  3. 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.

  1. 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.

  2. Il télécharge le kit (get_module_kit) : la boîte à outils, l’outil de test local dcmod-dev, un squelette fonctionnel pour démarrer et un fichier de règles CLAUDE.md. L’outil répond par une commande, valable 10 minutes, que Claude lance dans votre dossier.

  3. Il écrit le module : module.json, l’application, ses gabarits de page et les fichiers qui créent sa base de données.

  4. 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 de dcmod-dev.

  5. 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.

  6. 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

  1. Ouvrez Admin › Modules. Sous Modules de cet espace, le nouveau module indique En attente de validation et pas encore en service. Cliquez dessus.

    Modules de cet espace : Equipment loans en attente de validation, Visitor log en service en version 1.2.0
  2. 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.

    La page d’Equipment loans : la version 1.0.0 attend d’être approuvée, avec ce que le module utilise
  3. 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.

    Droits : Envoie des notifications et la tâche overdue cochés, le bouton Approuver et déployer 1.0.0
  4. 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.

    Déploiements : la version 1.0.0 déployée, avec les étapes de son rapport

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.

Le module Equipment loans ouvert depuis Loans dans la barre de gauche, avec sa liste de matériel

À propos de ce module, en haut à droite, liste ce qu’il utilise et indique si chaque élément a été approuvé.

À propos de ce module : Envoie des notifications, Exécute des tâches planifiées : overdue

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.

Général : adresse, Actif, Qui peut l’utiliser, groupes, Affiché dans le rail et Libellé dans le rail
RéglageCe qu’il fait
AdresseLa fin de /mods/…/. La changer conserve les données ; les anciens liens cessent de fonctionner.
ActifDé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’utiliserTout le monde, Groupes choisis (à cocher en dessous) ou Administrateurs seulement. Les administrateurs peuvent toujours ouvrir un module.
Affiché dans le railDécochez-le pour garder le module hors de la barre de gauche ; il s’ouvre toujours depuis son adresse.
Libellé dans le railLe 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 obtientCe que vous décidez sur sa page
ActionsLire 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.
InternetDes appels à des services sur Internet.Internet : adresses publiques uniquement, 10 Mio par réponse, 600 requêtes par heure, chaque appel journalisé.
CourrierL’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 artificielleDes 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éesUn 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 publiquesDes 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 workspaceDes 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.
SecretsDes 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.

La version 1.1.0 attend d’être approuvée : Lit vos contacts est marqué comme nouveau, la version en service continue de tourner

Surveiller, revenir en arrière, restaurer

Plus bas sur la page du module :

Suivi : état, base de données, mémoire, processeur, IA ce mois-ci et dernières lignes du journal

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