Racinage

Règles

Règles de publication

Des attentes claires pour des paquets sûrs, des éditeurs fiables et la confidentialité des comptes familiaux.

Norme de publication

Intégrez la confiance au paquet.

Commencez avec un ZIP autonome. Racinage détecte les détails, garde le code en quarantaine et ne publie qu’après les contrôles automatiques et humains.

Un ZIPAccès déclaréAucune exécution au téléversement
01

Comment fonctionne la publication

Cinq étapes prévisibles. Votre code n’est jamais activé pendant le téléversement.

01

Téléverser

Choisissez le ZIP complet. plugin.json doit être à sa racine.

02

Contrôles automatiques

Les chemins, la taille, le manifeste, le point d’entrée et les médias sont inspectés sans exécuter de code.

03

Confirmer les détails

Vérifiez le nom, la description, les fonctions, les autorisations et les images détectés.

04

Définir les conditions

Expliquez le prix, les limites de forfait, les coûts fournisseurs, le support, les remboursements et la compatibilité.

05

Révision humaine

Racinage examine la sécurité, la confidentialité, l’isolation, l’expérience et les affirmations avant publication.

02

Ce que plugin.json explique

Le manifeste est le contrat entre l’auteur, Racinage et l’utilisateur.

{
  "slug": "meal-planner",
  "entrypoint": "runtime.php",
  "assets": { "logo": "assets/logo.webp" },
  "feedback": {
    "duration": 10000,
    "position": "center-top",
    "show_close_button": true
  },
  "capabilities": {
    "pages": ["/dash/plugin/meal-planner"],
    "functions": ["Read selected people"]
  }
}
Identity
Nom, auteur, version, description, images et support.
Runtime
Point d entrée, compatibilité, routes et dépendances.
Access
Pages, fonctions, données et opérations approuvées par les utilisateurs.
03

Déclarez les accès clairement

Utilisez un verbe, une cible précise et la condition qui l’autorise.

ClairLire les personnes explicitement sélectionnées dans un compte familial géré par l’utilisateur.Verbe + donnée + portée + condition utilisateur
Trop vagueAccéder aux données familiales.Aucune opération, limite ou raison
04

Exigences de révision

Quatre groupes rendent la norme plus facile à parcourir et à comprendre.

Paquet

  • Conservez chaque fichier, ressource, migration, traduction et dépendance dans un seul dossier d’extension.
  • Utilisez des chemins relatifs sûrs. N’incluez ni secrets, ni données utilisateur, ni caches, ni identifiants de développement.
  • Les versions Free locales reçoivent un paquet portable de production séparé, jamais le ZIP source examiné.

Images et médias

  • Déclarez des fichiers WebP valides pour le logo, la couverture, les captures, la photo du profil développeur et sa couverture.
  • Acceptez les fichiers JPEG, PNG ou WebP seulement si nécessaire, puis décodez-les et réencodez-les côté serveur en WebP au lieu de conserver le fichier d’origine.
  • Supprimez les métadonnées et créez au minimum une petite variante pour les listes et une grande variante pour les détails ou la visionneuse. Autorisez les médias privés avant leur diffusion.
  • Les médias matriciels non WebP peuvent nécessiter des modifications de version ou entraîner un refus lors de la révision.

Autorisations et données

  • Déclarez chaque page, type de donnée et opération de lecture, création, modification ou suppression.
  • Limitez chaque requête et action familiale à family_long_id et revérifiez les permissions sur le serveur.
  • Prenez en charge l’export et l’import sécurisés, puis Conserver ou Supprimer les données à la désinstallation.

Expérience et support

  • Suivez les modèles Racinage, la police Inter, les mises en page adaptatives, le mode sombre et des libellés accessibles.
  • Traduisez tout texte visible en anglais et en français et affichez des états vides, chargement, erreur et réussite utiles.
  • Utilisez l API partagée de notification pour les messages transitoires de réussite, avertissement, erreur et information. Une notification personnalisée est autorisée si elle est déclarée et accessible, mais l API partagée est recommandée pour préserver la cohérence de l interface.
  • Fournissez des délais de support, notes de compatibilité, journaux de modifications et captures réelles.

Confiance et application

  • Aucune collecte d’identifiants, spam, suivi caché, contournement, action destructive par défaut, code masqué ou exécution distante.
  • Les éditeurs payants doivent fournir des informations vérifiées sur l’identité, le paiement, la fiscalité, le prix, le support et le remboursement.
  • Le retrait arrête la découverte et les nouvelles installations. Une révocation peut désactiver une version dangereuse sans effacer les données familiales.

Prix, promotions et renouvellements

  • Les extensions par abonnement doivent indiquer une périodicité mensuelle ou annuelle, les conditions de renouvellement et remboursement, ainsi que le délai de grâce de 21 jours.
  • Les éditeurs utilisateurs conservent normalement 80 %. Une réduction financée par le vendeur est limitée au maximum examiné et approuvé par l éditeur.
  • La plateforme bloque les promotions qui ne préservent pas la part de l éditeur et la commission d affiliation admissible complète.
  • Après le délai de grâce, l accès payant est suspendu. Les données locataires et les exports authentifiés restent conservés et disponibles selon les conditions de l extension.

Règles actuelles de la bibliothèque

  • Upload a complete ZIP bundle before entering listing and pricing details.
  • Declare every dashboard page, public route, background job, and host capability the plugin uses.
  • Keep all plugin code and assets inside one plugin folder and include a valid plugin.json manifest.
  • Request only the minimum data and permissions required for the advertised features.
  • Sanitize untrusted content, enforce tenant scope, protect state changes with CSRF, and never expose credentials.
  • Describe pricing, plan limits, data import/export, uninstall retention, and external providers clearly.
  • For subscriptions, publish the monthly or yearly interval, renewal terms, the 21-day grace period, and refund rules.
  • User publishers retain 80% of the listed price unless they approve a reviewed maximum seller-funded reduction; promotions cannot exceed that limit.
  • Use original or properly licensed code, media, fonts, templates, and trademarks.
  • Store bundled and user-uploaded raster images as WebP. Re-encode uploads server-side, strip metadata, and create small preview and large-view variants instead of serving original JPEG, PNG, or GIF files.
  • Declare only WebP logos, covers, screenshots, profile images, and other catalog media. Non-WebP raster media may require release changes or cause rejection during review.
  • Provide accurate screenshots, support details, release notes, tests, and rollback instructions.
  • Deleted plugins are hidden and disabled, while packages and tenant data may be retained for legal compliance and authenticated user data-access requests; retained data is not exposed to developers, staff interfaces, or third parties.
05

Vérification finale

Utilisez ceci avant de soumettre une extension ou une mise à jour.

Avant de soumettre

  • plugin.json contient la version du schéma, l’identifiant, le nom, l’auteur, la version, la catégorie, le point d’entrée, le logo, la couverture, les captures, les fonctions, les autorisations, la compatibilité, la confidentialité et le support.
  • Le ZIP se déploie dans un seul dossier d’extension et ne dépend pas de fichiers dispersés dans le noyau Racinage.
  • La description publique nomme chaque page, fonction, type de données et opération que l’extension peut manipuler.
  • Chaque réglage, bouton, état vide et message d’erreur est traduit en anglais et en français.
  • Les résultats d actions transitoires utilisent l API partagée de notification ou une solution personnalisée, accessible et explicitement désactivée dans le manifeste.
  • Les captures montrent la vraie interface de l’extension, pas des images temporaires ou trompeuses.
  • Toutes les images déclarées du catalogue et les images matricielles téléversées sont en WebP, avec des variantes de petit aperçu et de grande vue lorsque nécessaire.
  • L’extension fonctionne avec le compte familial sélectionné et ne mélange pas les données entre familles.
  • Le paquet a été testé en mode clair, mode sombre, ordinateur, tablette et mobile.

Raisons de refus fréquentes

  • Fichiers dangereux, manifeste manquant ou chemins suspects.
  • Permissions floues, risques de confidentialité ou fuites entre comptes familiaux.
  • Mise en page cassée, textes visibles non traduits ou installation confuse.
  • Prix trompeur, promesses non justifiées ou détails de support manquants.
  • Les médias matriciels du catalogue ou téléversés sont stockés en JPEG, PNG, GIF ou dans un autre format non WebP.
Besoin de publier ?

Demandez d’abord l’autorisation développeur. Si vous prévoyez de vendre des extensions payantes, complétez le profil de paiement éditeur avant la révision.

Demander l’autorisation développeur