Racinage
English

Opérations

Extensions

Derniere mise a jour 2026-08-14T06:58:49+00:00

Les extensions Racinage etendent l’application web et les editions locales Free compatibles avec des paquets autonomes vérifiés, des autorisations explicites et des contrôles d’installation securises.

Bibliothèque d'extensions

La bibliothèque publique est servie depuis plugins.racinage.com en production et depuis le dossier local plugins/ en développement. Elle possède son propre menu: Accueil, Extensions, Forum, Développeurs, Règles, Votre compte et un lien Site principal vers racinage.com.

Les utilisateurs peuvent parcourir les extensions publiees depuis le site des extensions ou depuis Gérer > Extensions, puis installer, activer, desactiver, mettre a jour ou desinstaller les extensions pour la famille sélectionnée avec la permission Gérer les extensions. Le site des extensions permet de choisir un ou plusieurs comptés familiaux lors de l'installation.

Un utilisateur connecté peut recommander en privé une extension publiée depuis le menu d’actions de sa carte ou de sa fiche. La recommandation apparaît uniquement dans les notifications d’interface des destinataires choisis, sans afficher leur adresse e-mail. Un éditeur ne peut pas recommander sa propre extension.

  • Les installations sont limitées par family_long_id.
  • Chaque extension garde son manifeste, ses versions, installations, achats, avis, commentaires, Problèmes, FAQ et journaux d’audit.
  • Chaque extension est livrée dans un seul dossier autonome. Son exécution, ses points d’entrée, ressources, traductions, migrations et dépendances ne doivent pas être disperses dans le noyau.
  • Les paquets televerses restent en quarantaine privée; les hooks ne chargent que les fichiers revises et deployes manuellement via un contrat hote autorise.
  • Les achats d'extensions payantes utilisent le parcours commercial commun. Lorsqu'ils sont configurés, le client peut utiliser le paiement international hébergé FastSpring ou le Mobile Money africain pawaPay; les références manuelles et justificatifs privés activés restent disponibles comme solution de secours.

Accès développeur

Un utilisateur doit avoir la permission Developer avant de publier des extensions. Un super-admin peut l’accorder manuellement depuis le formulaire d’édition utilisateur avec Peut publier des extensions. Les utilisateurs peuvent aussi la demander depuis la page d’accès développeur.

Les super-admins controlent le mode depuis admin7839 > Extensions. La valeur par défaut est un accès payant a 5 USD. En mode gratuit avec approbation automatique, la permission est accordee immediatement. En mode payant, la demande attend la vérification du paiement et l’approbation.

Publication par paquet et validation

La publication commence par le téléversement d’un ZIP depuis Gérer > Extensions > Développeur, sans quitter le tableau de bord. Sur le site public des extensions, le même parcours reste disponible sur plugins.racinage.com/submit. La racine du ZIP doit contenir plugin.json, le point d’entrée, le logo WebP, la couverture WebP, les captures WebP et tous les fichiers nécessaires. Racinage inspecte l’archive sans l’exécuter puis préremplit le formulaire. L’auteur vérifie ou modifie le nom, la version, la description, les fonctions, autorisations et médias avant de renseigner le prix, les forfaits requis, les coûts fournisseurs, le support et les remboursements.

Les médias matriciels stockés par une extension doivent être au format WebP. Une extension peut accepter des fichiers JPEG, PNG ou WebP si nécessaire, mais elle doit vérifier le type MIME réel et les dimensions, décoder l’image, supprimer les métadonnées en la réencodant côté serveur et enregistrer le résultat WebP au lieu du fichier d’origine. Créez un petit aperçu pour les listes et cartes denses ainsi qu’une grande variante pour les détails ou la visionneuse. Les variantes privées restent protégées par les mêmes contrôles d’autorisation que leur enregistrement source. Les médias matriciels non WebP du catalogue ou stockés peuvent nécessiter des modifications ou entraîner le refus d’une version lors de la révision.

Les contrôles automatiques refusent les traversals de chemins, doublons, liens symboliques, binaires dangereux, nombres excessifs de fichiers et abus de compression. Le checksum SHA-256, la signature de revision, la compatibilite et le retour arriere sont conserves. La revision du code et les tests d’isolation restent obligatoires.

Le retrait supprime la decouverte et les nouvelles installations sans effacer les données existantes. Une revocation de sécurité distincte peut desactiver une version dangereuse tout en gardant les choix d’export et de suppression du propriétaire.

Les pages d'extension et leurs fenêtres de détails utilisateur et super-admin partagent les onglets asynchrones Vue d'ensemble, Captures d'écran et Fonctionnement. Les éditeurs peuvent ajouter des vidéos distinctes de présentation et de tutoriel, légender chaque capture de l'interface et publier un parcours utilisateur numéroté. La vue d'ensemble comprend aussi les commentaires, les avis notés de 1 a 5 étoiles, les problèmes avec images/vidéos et les FAQ du forum. Les nouvelles activités apparaissent en direct sans interrompre un message en cours de rédaction. Les problèmes peuvent être marqués résolus puis rouverts; les FAQ peuvent être fermées puis rouvertes.

La page Développeurs liste les éditeurs approuvés qui possèdent au moins une extension publiée. Chaque carte présente l'identité publique, la description ou un résumé des extensions publiées, les abonnés, les extensions publiées, les installations selon les accès actuels, les téléchargements de paquets, la note du profil et la note globale des extensions. Les installations comprennent chaque utilisateur qui possède actuellement un accès par une extension liée au compte, une famille sélectionnée ou une collaboration familiale acceptée.

Contrat de l’API Collaboration v1

Une extension qui possède des ressources partagées doit enregistrer séparément chaque ressource disposant de ses propres permissions dans l’API Collaboration centrale validée. Le manifeste déclare la version 1, les types de ressources, rôles, capacités et adaptateurs validés de transfert, export et suppression finale. Un lien public seul ne crée pas de membre, et les enregistrements enfants sans droits indépendants héritent de leur ressource parente.

Les extensions doivent utiliser les contrôles d’accès et méthodes de droits typés, sans écriture collaborative générique ni changement direct de propriétaire. Pendant le délai de suppression d’un compte, les collaborateurs admissibles peuvent demander la succession. Le transfert a lieu uniquement après l’accord explicite du propriétaire et une nouvelle vérification des permissions, du quota, de l’abonnement et de la révision. Le choix de suppression finale reste réversible jusqu’au début de la purge.

Validation obligatoire : les adaptateurs de transfert, export et suppression doivent rester isolés par espace, idempotents et sûrs en cas de nouvelle tentative. Un échec partiel ne doit jamais terminer la purge d’une ressource ou d’un compte.

Contrat IA et MCP facultatif

Une extension n’est jamais exposée par défaut à l’assistant Racinage ou au MCP. Le développeur peut choisir cette intégration avec un objet ai dans plugin.json. Racinage valide la déclaration lors du téléversement et l’active seulement pour une installation publiée, révisée et actuellement activée. Chaque opération doit posséder un nom exact, un objectif clair, un niveau de confirmation et un schéma JSON fermé.

{
  "ai": {
    "enabled": true,
    "description": "Organiser les tâches de l’espace sélectionné.",
    "mentions": ["workspace", "task"],
    "tools": [{
      "name": "tasks.update_status",
      "description": "Modifier l’état d’une tâche.",
      "confirmation_tier": 2,
      "input_schema": {
        "type": "object",
        "required": ["record_id", "status"],
        "properties": {
          "record_id": { "type": "string", "maxLength": 80 },
          "status": { "type": "string", "enum": ["open", "done"] }
        },
        "additionalProperties": false
      }
    }],
    "mcp": {
      "enabled": true,
      "server_url": "https://mcp.example.com/racinage",
      "transport": "streamable_http",
      "tool_allowlist": ["tasks.update_status"],
      "auth_mode": "plugin_bearer",
      "privacy_url": "https://example.com/privacy"
    }
  }
}

Les environnements officiels révisés peuvent implémenter les callbacks hôtes ai_context et ai_execute. L’environnement doit revérifier la famille ou le propriétaire du compte, l’autorisation actuelle, l’abonnement, la révision, la clé d’idempotence et la confirmation avant toute modification. Les résultats doivent rester réduits et ne contenir aucun identifiant ni charge privée du fournisseur.

Un serveur MCP appartenant au développeur constitue une déclaration de connecteur à réviser, pas une autorisation de requêtes réseau arbitraires. L’URL doit être un point d’accès HTTPS public exact, sans identifiant intégré, requête, fragment, redirection ou adresse privée. Déclarez une liste précise d’outils et conservez l’identifiant dans le stockage chiffré de Racinage, jamais dans le manifeste. Racinage active le serveur seulement après révision de l’adaptateur, tests de conformité MCP, contrôles SSRF, révision de confidentialité et validation outil par outil. Toute modification du point d’accès ou de la liste nécessite une nouvelle révision.

Limites strictes : l’IA d’une extension ne peut pas contourner les autorisations ou confirmations de Racinage, acheter une extension, exposer des secrets, modifier la propriété ou la sécurité, supprimer les données locataires, exécuter du code, lancer du SQL brut ou appeler des outils non déclarés.

Profils développeurs et interactions

Les noms d'éditeur sur les cartes d'extension et du répertoire ouvrent les profils publics sous /dev_profile/{username}. Les anciens liens continuent de fonctionner après un changement de nom d'utilisateur. Détails est la vue par défaut; Extensions, Avis, Prix et étapes, et Juridique utilisent des onglets asynchrones compatibles avec l'historique du navigateur et les liens ordinaires.

  • Détails présente l'identité publique, l'approbation, la date du compte, la présentation, les spécialités, le site et les réseaux sociaux, les statistiques et les extensions récentes.
  • Extensions propose la recherche, le filtre par catégorie, le tri, les vues grille ou liste et la pagination de toutes les extensions actuellement publiées.
  • Avis sépare la note du profil de celle des extensions tout en permettant de rechercher, filtrer et trier un flux combiné. Un utilisateur connecté peut conserver un avis développeur après avoir reçu l'accès à au moins une extension publiée de ce développeur. Les auto-évaluations sont interdites.
  • Prix et étapes affiche la progression de publication, d'installation, de téléchargement, d'avis, de note, de catégories et d'ancienneté, avec les badges révocables de l'équipe.
  • Juridique résume le copyright public, l'approbation, la première publication, les licences et les règles pertinentes. Chaque version est vérifiée séparément; sa publication ne constitue pas une approbation générale.

Les utilisateurs connectés peuvent suivre un développeur, publier un avis admissible, démarrer une conversation privée dans l'application, visiter le site configuré ou signaler un profil. L'espace compte des extensions comprend les vues Suivis et Messages. Les préférences personnelles pour les nouvelles extensions, les versions et les messages développeur restent accessibles dans Paramètres, indépendamment de la permission de gérer la famille. L'interface et l'application installée sont activées par défaut, l'e-mail est désactivé, et les nouvelles tentatives d'un même événement sont dédupliquées entre les canaux.

Les livraisons réussies de paquets vérifiés et portables alimentent les téléchargements cumulés. Les tentatives répétées sont dédupliquées par version, canal de livraison et jeton client opaque privé. Racinage n'utilise aucun identifiant d'appareil Windows et ne conserve aucun jeton brut, empreinte d'appareil ou adresse IP pour ces totaux.

API partagée de notification

Les résultats transitoires d'une extension, comme un enregistrement réussi, un avertissement, une requête échouée ou une confirmation informative, doivent utiliser l'API partagée feedback_popup de Racinage. Les notifications restent ainsi cohérentes, accessibles et visibles après un remplacement asynchrone du contenu. Par défaut, la notification apparaît au centre en haut, comprend un bouton de fermeture et disparaît après 10 secondes.

Définissez les valeurs par défaut de l'extension dans plugin.json. La durée est exprimée en millisecondes et peut être comprise entre 1 et 120 secondes. Les seules positions prises en charge sont center-top et center-bottom.

{
  "feedback": {
    "enabled": true,
    "duration": 10000,
    "position": "center-top",
    "show_close_button": true
  }
}

Utilisez window.racinageFeedbackPopup.showForPlugin(source, message, type, options) dans le JavaScript de l'extension. Les types pris en charge sont success, warning, error et info. Le message peut être un texte simple ou un objet contenant un title et un paragraph facultatif. Les options de chaque appel peuvent remplacer la durée, la position, la visibilité du bouton de fermeture, le titre ou le paragraphe.

window.racinageFeedbackPopup.showForPlugin(
  form,
  { title: "Modifications enregistrées", paragraph: "Les préférences de votre espace sont à jour." },
  "success"
);

Les points d'entrée PHP peuvent appeler feedback_popup($message, $type, $options). Les options serveur sont duration, position, show_close_button, title et paragraph. Les cibles HTMX d'une extension marquées avec data-feedback-popup-sink conservent automatiquement ces réglages de réponse sans afficher de notification intégrée personnalisée.

feedback_popup(
  "Les préférences de votre espace sont à jour.",
  "success",
  ["title" => "Modifications enregistrées", "duration" => 10000]
);

Un développeur peut définir feedback.enabled sur false et fournir son propre système de notification accessible. L'API partagée reste recommandée, car elle respecte le langage visuel de l'interface et reste visible pendant la navigation asynchrone. La validation des champs, la progression d'un chargement et l'état persistant d'un éditeur ou de sa synchronisation doivent rester près du contrôle concerné au lieu de devenir des notifications transitoires.

API de notifications persistantes des extensions

Les alertes persistantes apparaissent dans le flux normal des notifications Racinage et peuvent aussi être envoyées par e-mail et à chaque appareil PWA installé actif où le destinataire est connecté. Une exécution validée appelle plugins_dispatch_notification() avec son propre slug, l’identifiant d’un utilisateur destinataire autorisé, un identifiant familial facultatif, une catégorie déclarée, un contenu localisé, une URL d’action Racinage et les définitions des catégories. L’hôte résout en interne les abonnements natifs des appareils, la langue, l’adresse e-mail et le nom d’affichage du destinataire. Ces données privées ne sont jamais renvoyées à l’extension.

$categories = [
  "approval_requests" => [
    "interface_default" => true,
    "email_default" => true,
  ],
  "activity_digest" => [
    "interface_default" => false,
    "email_default" => false,
  ],
];

plugins_dispatch_notification(
  $con,
  "my-plugin",
  $authorizedRecipientUserId,
  $familyLongId,
  "approval_requests",
  ["en" => "Review requested", "fr" => "Validation demandée"],
  ["en" => "A record is ready to review.", "fr" => "Un dossier est prêt à être validé."],
  dash_url("manage/my-plugin"),
  $categories,
  [
    "actor_user_long_id" => $signedInActorUserId,
    "interaction_category" => "proposals_requests",
  ]
);

Les clés de catégorie doivent être des identifiants minuscules stables et chaque exécution peut en déclarer au maximum 40. Activez par défaut les catégories urgentes liées à l’accès, la sécurité, une échéance ou une validation, avec l’e-mail seulement lorsque l’utilisateur doit probablement réagir rapidement. Les activités facultatives, résumés, conseils et messages marketing doivent être désactivés par défaut. L’e-mail est un canal supplémentaire : son activation conserve aussi la notification dans l’interface.

Pour toute notification générée par un utilisateur, ajoutez un dernier tableau de contexte avec l’identifiant de l’acteur authentifié et une seule catégorie d’interaction validée : direct_notifications, collaboration_invites, plugin_recommendations ou proposals_requests. L’hôte applique le blocage social du compte destinataire avant la livraison. Un acteur vide est réservé aux avis système fiables, qui contournent les blocages sociaux. Ne déduisez ni ne signalez jamais qu’un destinataire a bloqué l’acteur : les traitements groupés doivent fournir un retour générique pour les destinataires bloqués, en double, soumis à un délai ou ignorés.

Une extension qui utilise cette API doit afficher toutes ses catégories dans sa propre section Paramètres ou Configuration, avec des contrôles distincts Interface et E-mail aussi. Une catégorie d’interface active est aussi éligible à la livraison dans l’application installée selon l’autorisation de l’appareil et son choix sonore. Chargez les choix avec plugins_notification_preferences() et enregistrez-les uniquement pour l’utilisateur connecté avec plugins_save_notification_preferences(). Déterminez les identifiants destinataires depuis une relation autorisée appartenant à l’extension; ne demandez, ne recherchez, ne mettez en cache, ne journalisez et n’exposez jamais l’adresse e-mail ou l’abonnement Push d’un utilisateur Racinage uniquement pour envoyer une notification. Les parcours e-mail des invités non inscrits sont distincts des préférences du compte et doivent utiliser une adresse validée fournie pour ce parcours.

Prix et revenus

Les extensions peuvent être gratuites, payantes une seule fois ou par abonnement mensuel ou annuel. Chaque commande payante conserve le prix catalogue, la réduction client, le montant net, l'intervalle, la période de service et les parts de la plateforme et de l'éditeur. Les extensions payantes publiées par des utilisateurs partagent normalement les revenus : 20 % pour la plateforme et 80 % pour l’éditeur. Les extensions publiées par les super administrateurs gardent 100 % des revenus pour la plateforme.

Chaque offre Racinage payante active donne accès aux fonctions premium des extensions. Les éditeurs déclarent des limites d’utilisation distinctes pour Family, Max et Lifetime, et l’extension applique la limite correspondant au propriétaire du compte familial sélectionné.

Les réductions automatiques et codes promotionnels ne se cumulent pas; la plus grande économie admissible s'applique. Un éditeur utilisateur peut approuver un maximum de réduction financée par le vendeur pendant la vérification. La part plateforme finance d'abord les réductions de la plateforme et la commission affiliée. Une promotion est bloquée si elle ne peut pas préserver la part normale de l'éditeur et le taux affilié complet dans la contribution approuvée.

L'exécution de l'abonnement reste active pendant un délai de grâce de 21 jours. Ensuite, l'exécution payante est désactivée jusqu'au renouvellement, tandis que les données de l'extension et les exports autorisés restent conservés.

Les éditeurs utilisateurs doivent conserver un profil de paiement verifie avec identite, informations de paiement et fiscalite avant l’approbation d'extensions payantes. Les revenus des achats payants restent en attente tant que le profil éditeur n’est pas verifie.

Les développeurs peuvent aussi maintenir leurs informations publiques: nom public, description, contacts, site web, liens sociaux, photo de profil et photo de couverture.

Extension officielle Wedding Planner

Wedding Planner est la première extension officielle. La famille cliente possède chaque espace mariage. Le propriétaire conserve toujours toutes les permissions et reste la seule personne autorisée à attribuer ou révoquer l’accès des collaborateurs. Les utilisateurs Racinage invités reçoivent uniquement les permissions sélectionnées après acceptation.

Les quotas et services payants sont comptés sur le compte du propriétaire. Un collaborateur peut participer a un nombre illimité de mariages, même avec Lite, sans utiliser son propre quota. Lite inclut un mariage crée a vie, les outils manuels, les exports et l’e-mail. Les forfaits payants ajoutent des mariages et les quotas configures pour l’IA, WhatsApp et SMS. Chaque collaborateur choisit indépendamment l’envoi dans l’interface et l’envoi supplémentaire par e-mail pour les catégories collaboration, validation, commentaires d’invités et promesses de contribution depuis l’onglet Paramètres du mariage.

L’extension gère les profils du couple, les listes d’invités réutilisables et importées, la validation des RSVP, les tâches et la logistique, les budgets, les contributions de la famille et des amis, les prestataires, les documents privés, les invitations, le QR signé, l’accueil partiel, les tableaux d’inspiration collaboratifs, les profils de planificateurs, les propositions, les contrats acceptés immuables, les échéances, les justificatifs et les confirmations manuelles. Budget total projeté, Fonds disponibles, Budget du couple et Dépenses prévues sont quatre montants distincts saisis manuellement par l’équipe. Les Dépenses prévues ne sont pas calculées depuis les dépenses enregistrées : les rapports les comparent aux dépenses nettes réellement payées pour indiquer si le mariage est sous, sur ou au-dessus des prévisions. Les fonds restants correspondent aux Fonds disponibles, plus les contributions reçues, moins les dépenses nettes payées. Les promesses restent séparées jusqu’à leur réception. Racinage ne détient et ne transfère aucun fonds.

Les couvertures de mariage, les portraits du marié et de la mariée, les médias des profils d’organisateur, les images des tableaux d’inspiration, les images des invitations et les créations d’invitation générées par IA sont décodés puis stockés en WebP. Les petites variantes servent les cartes et listes, tandis que les grandes variantes servent les pages de détail et les vues agrandies. Les médias locaux existants peuvent être traités par la migration WebP idempotente; conservez sa sauvegarde privée de retour arrière jusqu’à la fin de la vérification.

Ou la trouver après installation

Ouvrez Gérer > Mariages pour utiliser Wedding Planner. Accueil, Mariages, Invitations, Modèles, Organisateurs, Profil et Aide apparaissent dans l’en-tête. L’aide propose des guides pas à pas consultables, des aperçus réels de l’interface et des liens directs vers chaque tâche. La Bibliothèque ouvre un aperçu complet de chaque modèle avec ses détails et permet aux membres de laisser un avis. Les cartes de mariage publiques proposent sept mises en page nettement distinctes, des miniatures fidèles incluant la couverture et un aperçu en direct des changements de design, de contenu, de visibilité et d’ordre des sections. L’onglet Paramètres du mariage permet de modifier chaque détail public facultatif, tandis que Partager reste l’espace d’aperçu et de publication. L’éditeur validé dispose aussi d’un onglet privé Tous les mariages avec recherche et filtres de date en direct, médias du mariage et du couple, états de date localisés, progression du compte à rebours, indicateurs opérationnels et détails agrégés repliés. Les organisateurs de mariage validés peuvent publier un profil avec lieux et types de mariage normalisés, services et tarifs structurés, liens sociaux répétables, médias, visibilité et offres tarifaires avec devise. Les couples peuvent filtrer les organisateurs publics, comparer les mariages réussis et les avis vérifiés, puis laisser un avis seulement après que le propriétaire a terminé un mariage où cet organisateur était un collaborateur Planner actif. Le propriétaire gère les invitations en attente et les collaborateurs approuvés depuis un menu compact avec profil, permissions et révocation confirmée. La suppression d’un mood board ou d’une invitation utilise une confirmation intégrée et actualise uniquement la grille concernée. Chaque mariage sélectionné conserve ses onglets asynchrones avec historique d’URL.

  • /dash/manage/weddings ouvre l’accueil des activités, le répertoire des mariages et les invitations de collaboration.
  • Vue d’ensemble, Événements, Budget, Tableaux d’inspiration, Invitations, Invités, Accueil et Paramètres s’ouvrent dans des onglets asynchrones adaptatifs. Le volet du couple apparaît uniquement dans Vue d’ensemble ; les autres onglets utilisent toute la largeur. Vue d’ensemble réunit le calendrier, la liste de tâches, le financement, les contributions, les invités, les invitations, le design, les documents, les alertes et l’activité de l’équipe dans un rapport unique. L’ouverture d’un tableau d’inspiration ou d’une invitation déploie un éditeur complet dans l’espace mariage tout en conservant l’en-tête global et la barre latérale. L’éditeur d’invitations prend en charge plusieurs pages, des éléments indépendants, les champs dynamiques des invités, les modèles, les ressources, les commentaires, les versions, la collaboration, la récupération locale prioritaire avec synchronisation en arrière-plan et les exports imprimés ou web. La bibliothèque, la place de marché, l’IA et le fonds des créateurs restent indisponibles tant que leurs drapeaux et contrôles d’acceptation ne sont pas activés.
  • L’accueil propose une console de jour J sur ordinateur et une vue mobile centrée sur le scanner. Le personnel autorisé peut scanner les invitations QR signées, rechercher dans la liste, enregistrer les arrivées partielles et sans inscription, annuler une arrivée avec un motif, consulter l’activité et les problèmes, puis utiliser les rapports de présence, repas, tables, CSV, impression et badges. La liste minimale est préparée automatiquement pour une utilisation hors ligne compatible.
  • L’éditeur Racinage peut mettre l’IA Wedding Planner en pause, choisir les fonctions autorisées, définir les quotas par offre, appliquer des contrôles par famille ou utilisateur et consulter les totaux opérationnels. L’IA reste indisponible lorsque l’offre, le quota, la connexion fournisseur ou le contrôle de sécurité de la plateforme requis manque.
  • Le propriétaire peut hériter de l’accès créatif du mariage ou définir des autorisations personnalisées pour les collaborateurs acceptés. Les actions du tableau d’inspiration sont enregistrées localement en premier, restent disponibles sans connexion stable et se synchronisent discrètement dès le retour du réseau. Chaque sauvegarde automatique confirmée conserve une miniature partagée en basse résolution : tous les collaborateurs voient ainsi la dernière capture canonique sans afficher le tableau en direct, et seules les cinq captures les plus récentes sont conservées. L’éditeur compact et adaptatif propose les calques, formes, styles de connecteurs, textes intégrés, commentaires, mini-carte contenue et points de contrôle nommés. La configuration chiffrée facultative d’Ably ajoute présence, curseurs et verrous temporaires ; MySQL reste la source canonique et SSE maintient la collaboration si Ably est indisponible. Une version approuvée est immuable, sauf pour les commentaires et réactions.
  • Les tableaux publics utilisent /plugins/wedding/mood/{share_token}. Le propriétaire contrôle la version, l’expiration, le code d’accès et les types de contribution. Les commentaires, votes, notes, couleurs et captures des visiteurs restent en attente jusqu’à leur acceptation par un validateur autorisé.
  • Les invitations de collaboration et les contrôles d’installation restent dans Gérer > Extensions > Installées. Les réglages fournisseur reserves a l’éditeur se trouvent dans Gérer > Extensions > Développeur > Réglages développeur.
  • Les invités utilisent /plugins/wedding/{public_token}, une page publique protegee par code d’accès qui n’expose pas le tableau de bord.

Extension officielle Finance Manager

Finance Manager est préactivé dans Gérer > Finance Manager. Ses espaces appartiennent au compte utilisateur connecté, restent accessibles après un changement de famille et peuvent être masqués sans supprimer les dossiers ni les pièces jointes. L’extension enregistre uniquement des finances personnelles de trésorerie et n’envoie, ne retire ou ne reçoit jamais d’argent réel.

Chaque offre inclut la saisie manuelle, les imports CSV/OFX/QIF avec aperçu et détection des doublons, le rapprochement, les calculs, les rapports, les sauvegardes, les pièces jointes privées et la même devise d’affichage que le compte. Les espaces couvrent les comptes, revenus et retraits, virements équilibrés, catégories fractionnées, opérations récurrentes à valider, budgets périodiques avec report, objectifs, amortissement et stratégies de dettes, valorisations manuelles des investissements, prévisions hypothétiques, cercles séparés de contributions ou prêts, et exports CSV, JSON ou PDF A4. Chaque collaborateur choisit indépendamment l’envoi dans l’interface et l’envoi supplémentaire par e-mail pour les catégories collaboration, validation des opérations récurrentes et activité partagée depuis les Paramètres de l’espace.

Lite et Windows Free incluent 1 espace possédé, 8 comptes, 2 500 transactions, 5 budgets, 5 objectifs, 5 dettes, 1 compte d’investissement avec 25 positions, 1 scénario et 3 cercles de 25 personnes chacun avec 1 000 entrées au total. Lite hébergé inclut 1 collaborateur. Family inclut 5 espaces, 50 comptes, 50 000 transactions, 25 budgets, objectifs et dettes, 5 comptes d’investissement avec 250 positions, 10 scénarios, 10 collaborateurs par espace et 10 cercles de 100 personnes chacun avec 25 000 entrées. Max inclut 25 espaces, des dossiers financiers illimités et 50 collaborateurs par espace. Lifetime inclut 50 espaces avec dossiers et collaborateurs illimités.

Le propriétaire peut inviter un utilisateur existant par nom d’utilisateur ou e-mail, ou un invité par e-mail. Les rôles Propriétaire, Gestionnaire, Contributeur, Lecteur et personnalisés sont contrôlés côté serveur avec des restrictions par section et dossiers sélectionnés. Un espace invité utilise l’offre du propriétaire sans consommer le quota de possession du collaborateur. Après le délai de grâce d’une rétrogradation, les données et collaborations existantes restent accessibles, mais les ajouts dépassant Lite sont bloqués.

Sur la version hébergée, un portefeuille financier autorisé ou une contribution individuelle d’Événement ou Projet peut être lié en lecture seule. L’autorisation de la source ne dépend pas de la famille sélectionnée; un lien est suspendu et retiré des totaux si son propriétaire perd l’accès. Les cercles financiers restent des registres séparés et ne modifient jamais les comptes personnels ni la valeur nette.

Extension officielle Kitchen Planner et calendrier global

Kitchen Planner est une extension officielle gratuite liée au compte, installée depuis Gérer > Extensions > Bibliothèque. Ses espaces Cuisine Personnel, Famille et Groupe restent indépendants de la famille Racinage sélectionnée. Les outils manuels couvrent les recettes visuelles, les ingrédients précis, les étapes ordonnées et minutées, l’adaptation des portions, les coûts, les lots et mouvements du garde-manger, l’historique de cuisine, les profils du foyer, les menus, les listes de courses générées, les catégories, les étiquettes, les exports et les notifications.

Le Calendrier global dans Gérer combine les dates centrales autorisées et les fournisseurs d’extensions validés sans copier les dossiers appartenant à leur source. Les vues Mois, Semaine, Jour, Agenda et Année préservent les dates sans heure, localisent les heures UTC, développent les répétitions prises en charge, signalent les conflits visibles, enregistrent les filtres personnels et proposent l’import ICS avec aperçu ainsi que des flux ICS privés en lecture seule. Une entrée appartenant à une source ouvre toujours son éditeur d’origine.

Les imports de recettes sont contrôlés par une fonctionnalité indépendante. Le fournisseur financé ou BYOK choisi traite des tâches d’arrière-plan limitées sans repli silencieux. Les sources non alimentaires sont ignorées, les preuves inaccessibles ou insuffisantes restent en attente, les correspondances exactes restent des doublons masqués et tout texte source est traité comme une donnée non fiable. Les profils publics de cuisiniers et les instantanés immuables nettoyés restent derrière des contrôles distincts de modération, droits, confidentialité et interaction.

L’extraction des médias privés utilise uniquement des exécutables serveur validés et configurés avec un chemin absolu : RACINAGE_KITCHEN_TESSERACT_PATH pour la reconnaissance de texte des images, RACINAGE_KITCHEN_PDFTEXT_PATH pour le texte PDF et RACINAGE_KITCHEN_FFMPEG_PATH pour l’échantillonnage limité des images vidéo. Les langues facultatives sont autorisées via RACINAGE_KITCHEN_OCR_LANGUAGES. Un outil absent, une analyse de sécurité échouée, des images illisibles ou un texte insuffisant laissent l’import en attente. Un lien social reste limité aux métadonnées et n’autorise jamais le téléchargement ou l’archivage de la vidéo liée.

La correspondance nutritionnelle USDA fonctionne uniquement lorsque le contrôle Nutrition indépendant et la clé privée RACINAGE_FDC_API_KEY sont configurés. Elle conserve l’identifiant FoodData Central, la confiance de correspondance, la date de récupération, les valeurs pour 100 grammes, les calculs par recette et par portion ainsi qu’un état partiel visible lorsque les quantités ne peuvent pas être converties en masse. Les informations nutritionnelles et les contrôles d’allergènes du foyer restent consultatifs.

Racinage Free installe Kitchen Planner uniquement depuis le catalogue portable signé. Son pont natif validé expose des opérations Cuisine nommées, la projection dans le calendrier local, l’état de l’IA locale en boucle locale, la récupération protégée de sources publiques et la restauration locale avec aperçu. Il n’inclut ni crédits hébergés, ni collaboration, ni publication publique, ni synchronisation serveur.

Extension officielle NameGen

NameGen est une extension entièrement gratuite liée au compte, conçue pour aider les parents à trouver les prénoms de leurs enfants. Installez-la pour votre compte personnel depuis Gérer > Extensions > Bibliothèque. Elle reste accessible après un changement de famille et peut être désactivée ou désinstallée séparément.

L’espace hébergé comprend un catalogue bilingue sourcé, des filtres par association, pays, langue, époque, signification, syllabes, prononciation, diminutifs et variantes, ainsi que des Projets bébé privés pour vérifier l’accord avec le nom de famille et la fratrie, les idées de deuxième prénom, les initiales, les sélections, les prénoms à éviter et les préférences secrètes du partenaire qui révèlent les choix communs. Les utilisateurs NameGen connectés peuvent aussi créer des groupes publics ou privés, proposer des prénoms et utiliser les mentions J’aime, favoris, notes, commentaires organisés en fils, abonnements, mentions, signalements et partages. L’auteur est masqué par défaut et les groupes publics restent dans la communauté NameGen installée.

Les gestionnaires reçoivent uniquement les droits de validation, publication, taxonomie, modération sociale, équipe ou paramètres accordés par le propriétaire. Toute information d’origine, signification, époque, prononciation ou popularité nécessite une source avant publication. Lors de la désinstallation, l’utilisateur peut conserver ses données privées ou les supprimer; les contributions approuvées restent disponibles sans son identité.

Racinage Free pour Windows peut installer le compagnon NameGen hors ligne. Il comprend le catalogue intégré, les prénoms locaux, favoris, notes et remarques personnelles, groupes privés, Projets bébé individuels et l’import/export. La communauté hébergée, la modération, les statistiques publiques, les outils de gestion et la collaboration avec un partenaire ne sont pas disponibles hors ligne.

Dépublication, suppression et conservation des données

Les développeurs demandent la dépublication, soumise à la vérification des super-administrateurs. L’approbation retire immédiatement l’extension de la découverte et des nouvelles installations, accorde trois jours aux utilisateurs existants pour exporter ou sauvegarder leurs données, puis désactive l’extension. La suppression est logique : la fiche disparaît de la bibliothèque et de l’espace développeur, mais les paquets et données des comptes familiaux peuvent rester sur les serveurs Racinage lorsque leur conservation est requise pour respecter la réglementation et répondre aux demandes authentifiées d’accès aux données.

Les données conservées des extensions sont isolées des interfaces normales de l’application, des développeurs, de Racinage et de Fallax Vision. Elles ne sont ni utilisées ni partagées avec des tiers et sont remises uniquement à l’utilisateur authentifié via l’export de demande de données du compte, sous réserve de la loi applicable.

Bibliothèque locale Free

Racinage Free pour Windows reprend les sections Gérer de l’application web sans les contrôles collaboratifs. L’onglet Extensions télécharge un catalogue signé et temporaire par HTTPS. Le serveur crée un paquet portable de production distinct a partir du sous-dossier local déclaré; le code source, les tests, les cartes de source, les métadonnées de développement et le code serveur restent privés. Le client verifie la signature, le checksum du ZIP, les chemins, la taille décompressée et le point d’entrée avant l’extraction.

Le HTML, CSS, JavaScript et WebAssembly exécutés sur l’appareil peuvent toujours être inspectés par un propriétaire déterminé. Les algorithmes propriétaires, identifiants fournisseur, droits et opérations sensibles doivent donc rester sur des points d’entrée serveur vérifiés.

Les limites Lite restent applicables. Les extensions payantes ouvrent le parcours d’achat et de droits hébergé. Les extensions web uniquement restent visibles mais ne peuvent pas être executees localement. Les pages locales s’executent dans un cadre isole sans accès aux données familiales sauf autorisation hote future explicitement revisee.

Contrôles de paiement

  • Les parcours prestataires restent désactivés jusqu'à la configuration des identifiants, des correspondances de produits ou de devises et des indicateurs de lancement. Les événements FastSpring exigent une signature webhook valide; les rappels pawaPay déclenchent une vérification indépendante côté serveur avant tout changement de commande.
  • Les paiements aux éditeurs et affiliés exigent toujours une vérification. Un paiement affilié approuvé peut utiliser pawaPay lorsque celui-ci est configuré et n'est marqué payé qu'après confirmation; l'enregistrement manuel reste disponible.