ENbext.dev
DocumentationExtensions

Traduction automatique depuis l’anglais. Consulter l’original.

Sur cette page

Plugins de publication

Partagez votre plugin avec la communauté bext en le publiant dans le registre des plugins à l'adresse plugins. bext.dev. Les plugins peuvent être gratuits ou payants, et le registre gère la découverte, la gestion des versions, les audits de sécurité et les paiements.

Conditions préalables#

Avant de publier, assurez-vous que votre plugin :

  1. Possède un plugin.toml valide avec tous les champs obligatoires remplis.
  2. Réussit bext plugin test sans échec.
  3. Possède un README.md dans le répertoire racine du plugin.
  4. N'inclut pas les secrets, les informations d'identification ou les fichiers .env.

Authentifiez-vous auprès du registre :

bash
bext auth login

Cela ouvre une fenêtre de navigateur pour l'authentification OAuth. Votre jeton API est stocké dans ~/.config/bext/credentials.toml.

Édition#

bash
cd my-plugin
bext plugin publish

La CLI regroupe votre répertoire de plugins, le télécharge dans le registre et exécute un audit de sécurité automatisé. La commande :

  1. Valide la structure plugin.toml et les champs obligatoires.
  2. Vérifie que le champ name est disponible (pas déjà pris par un autre éditeur).
  3. Regroupe la source du plugin, le manifeste, le README et les fichiers de test.
  4. Télécharge le bundle vers les plugins. bext.dev.
  5. Déclenche le pipeline automatisé d’audit de sécurité et de qualité.
  6. Renvoie l'URL de la version publiée.
code
Publishing maintenance-mode@0.1.0...
  Validating manifest... OK
  Bundling 3 files (4.2 KB)... OK
  Uploading to plugins.bext.dev... OK
  Security audit... PASSED (score: 92/100)

Published: https://plugins.bext.dev/plugins/maintenance-mode/0.1.0

Gestion des versions#

Les plugins suivent versionnement sémantique. Augmentez le champ version dans plugin.toml avant chaque publication :

toml
[manifest]
name = "maintenance-mode"
version = "0.2.0"

Le registre refuse de republier une version existante. Utilisez --force uniquement pour les versions préliminaires ( 0.x.x ) :

bash
bext plugin publish --force

Les utilisateurs peuvent épingler une version spécifique ou utiliser une plage :

toml
# bext.config.toml
[plugins.maintenance-mode]
version = "^0.2.0"  # Compatible with 0.2.x

Lorsqu'une nouvelle version est publiée, bext informe les utilisateurs sur lesquels le plugin est installé via la CLI :

code
$ bext dev
  Plugin update available: maintenance-mode 0.2.0 -> 0.3.0
  Run `bext plugins install maintenance-mode` to upgrade to the latest

Audit de sécurité#

Chaque plugin publié passe par un audit de sécurité automatisé qui vérifie :

  • Analyse statique : recherche les modèles de vulnérabilité connus (utilisation d'évaluation, pollution de prototype, tentatives de traversée de chemin).
  • Examen des autorisations -- signale les plugins demandant des autorisations étendues ( allowed_urls = ["*"] ).
  • Analyse des dépendances -- pour les plugins WASM, vérifie les bibliothèques liées par rapport aux bases de données CVE connues.
  • Conformité Sandbox -- vérifie que le plugin fonctionne proprement dans ses limites de ressources déclarées.
  • Examen de la source -- vérifie le code obscurci ou tente de contourner les restrictions du bac à sable.

Les résultats sont visibles sur la page de registre du plugin et résumés sous forme d'un score de 0 à 100.

Niveau de qualité#

Le registre attribue un score de qualité basé sur :

Facteur Poids Description
Couverture des tests 25% Pourcentage d'hameçons exportés couverts par les tests
Documentation 20% Longueur du fichier README, exemples de code, documents de configuration
Audit de sécurité 25% Résultats de l'analyse de sécurité automatisée
Entretien 15% Fréquence de publication, temps de réponse aux problèmes
Usage 15% Nombre d'installations, installations actives

Les plugins ayant un score inférieur à 50 sont signalés par un avertissement sur la page de registre.

Tarification : plugins gratuits et payants#

Plugins gratuits#

La valeur par défaut. Les utilisateurs installent et utilisent votre plugin gratuitement :

toml
[manifest]
name = "security-headers"
version = "1.0.0"
pricing = "free"

Plugins payants#

Facturez des frais mensuels par installation. Les revenus sont répartis à 80/20 (vous conservez 80 %, bext conserve 20 %) :

toml
[manifest]
name = "advanced-waf-rules"
version = "1.0.0"
pricing = "paid"

[pricing]
monthly_usd = 9.99
trial_days = 14

Pour recevoir des paiements, connectez votre compte Stripe :

bash
bext plugin connect-stripe

Cela lance le flux d’intégration de Stripe Connect. Une fois connectés, les paiements sont déposés automatiquement sur votre compte Stripe avec un échéancier de paiement glissant sur 30 jours.

Les utilisateurs voient le prix sur la page de registre et sont invités à s'abonner lors de l'installation :

bash
$ bext plugins install advanced-waf-rules
  This is a paid plugin: $9.99/month (14-day free trial)
  Subscribe? [y/N]: y
  Subscription created. Plugin installed.

Gestion des abonnements#

Affichez les revenus de votre plugin et le nombre d'abonnés :

bash
bext plugin revenue advanced-waf-rules

Les utilisateurs peuvent annuler à tout moment :

bash
bext plugin unsubscribe advanced-waf-rules

Le plugin continue de fonctionner jusqu'à la fin de la période de facturation en cours.

Mettre à jour un plugin publié#

bash
# Edit plugin.toml to bump version
# Make your changes
bext plugin test        # Verify tests pass
bext plugin publish     # Upload new version

Dépublication#

Vous pouvez dépublier une version dans les 72 heures suivant la publication. Après cela, les versions sont immuables pour protéger les utilisateurs qui en dépendent :

bash
bext plugin unpublish maintenance-mode@0.1.0

Pour déprécier un plugin (suppression logicielle avec message) :

bash
bext plugin deprecate maintenance-mode --message "Use maintenance-mode-v2 instead"

Les plugins obsolètes fonctionnent toujours mais affichent un avertissement pendant bext dev et bext build.

Attention

Les versions du plugin sont immuables après 72 heures. Si vous publiez une version défectueuse et que vous manquez cette fenêtre, vous devez publier une nouvelle version du correctif : bext plugin unpublish sera rejetée. Testez localement avec bext plugin test avant chaque publication.

Page du plugin#

Chaque plugin publié obtient une page à plugins.bext.dev/plugins/<name> affichant :

  • README rendu au format HTML
  • Historique des versions avec journaux des modifications
  • Score d'audit de sécurité
  • Niveau de qualité
  • Nombre d'installations et installations actives
  • Référence de configuration (générée automatiquement à partir de plugin.toml )
  • Détails des prix (pour les plugins payants)

En rapport#

Modifier cette page ↗Besoin d’aide ? ↗
Rechercher dans la documentation

Saisissez un sujet, une commande ou une question.