Se rendre au contenu
OG

Omnifloo — Garde-fous du magasin

par Omnifloo
Gratuit Odoo 20 Module Vérification en cours OPL-1 (propriétaire Odoo)

Robots d'analyse des dépôts partenaires, validation humaine, retrait d'urgence, signalements, security.txt, identification des éditeurs, conditions et règles du magasin versionnées.

Omnifloo — Garde-fous du magasin (omnifloo_store_guard)

Odoo 20 Community · OPL-1 · DYONYSOS SASU. Dépend de omnifloo_app_store (magasin apps.omnifloo.com), omnifloo_legal (documents juridiques versionnés), auth_totp_portal (double authentification du portail).

Ce que fait le module

Garde-fou Où Détail
Robots d'analyse store/guard (générateur), appelés par store/precheck.py et la quarantaine 70 règles (catalogue store/guard/rules.py, instantané data/guard_rules.json) : règles Odoo par arbre syntaxique (sources décodées selon leur déclaration d'encodage PEP 263 ; encodage exotique bloquant), fichiers et secrets, JavaScript/QWeb, dépendances (OSV) ; robots libres bandit, pylint-odoo, detect-secrets, gitleaks, pip-audit
Quand soumission (robots internes en direct, analyse complète par tâche planifiée), chaque nouveau commit, ré-analyse quotidienne des dépôts publiés, quarantaine (commit exact publié) tâche « Magasin : robots d'analyse… » toutes les 10 min ; délai de ré-analyse omnifloo_store_guard.rescan_hours (24)
Résultats omnifloo.store.scan + omnifloo.store.scan.finding verdict (bloquant / à revoir / aucune alerte / impossible), score 0-100, robots effectués ou non, analyse dynamique (installation, tests, mise à jour, désinstallation)
Visibilité éditeur : /my/partenaire (colonne « Analyse des robots ») et /my/partenaire/depot/<id>/analyse ; équipe : Store Omnifloo › Garde-fous chaque constat avec « pourquoi » et « comment corriger »
Décision humaine constat « à revoir » : faux positif / risque accepté (motif obligatoire) / correction exigée ; lever un bloquant = administrateur décisions reprises d'une analyse à l'autre par empreinte du constat
Porte de publication action_publish du dépôt conditions acceptées, éditeur identifié (DSA art. 30), aucune alerte non décidée pour le commit vérifié, motif obligatoire à la 1re publication
Soumission /my/partenaire/depot/nouveau refusée tant que conditions non acceptées, identification incomplète ou 2FA absente (réglage omnifloo_store_guard.require_2fa)
Retrait d'urgence bouton « Retirer du magasin » (dépôt, fiche, signalement) portée dépôt / applications, motif, fondement, exposé des motifs notifié à l'éditeur, espaces clients concernés, code laissé en place par défaut (option de retrait du code via le provisionneur) ; levée motivée
Signalement « Signaler cette application » sur chaque fiche → /apps/<module>/signaler champ piège, jeton signé horodaté (3 s à 2 h), 5 envois/heure/IP ; accusé de réception, file de traitement, décision motivée envoyée au déclarant
security.txt /.well-known/security.txt (RFC 9116) contact omnifloo_store_guard.security_contact (security@omnifloo.com, à confirmer), expiration à 180 jours, politique /conditions/securite
Textes data/legal/legal_documents.xml (noupdate) CGU, CGV, contrat éditeur, règles de publication (tableau des robots généré), sécurité, annexe RGPD, programme partenaires — brouillons non relus
Pages héritages sans modifier les gabarits existants pied de page du magasin (liens juridiques), fiche (panneau « Signaler » + analyse), /publier (tableau étendu des contrôles, robots, garde-fous humains)

Ce que le module ne fait pas

  • Il ne rend aucun texte juridique opposable tant que Julien ne l'a pas fait relire et publié (case « Relue par un avocat »).
  • Il ne retire jamais une application automatiquement : les robots alertent, une personne décide.
  • Il n'impose pas la 2FA à tous les comptes portail (Odoo 20 ne sait le faire que pour tous : auth_totp.policy) : la 2FA est vérifiée à chaque soumission d'un éditeur.
  • Il ne vérifie pas l'identité de l'éditeur auprès d'un registre officiel (bouton « Identification vérifiée » manuel).
  • Pas de captcha tiers (Turnstile / reCAPTCHA installables séparément) ; pas de traduction des textes.
  • L'analyse dynamique n'exécute que les tests fournis par l'éditeur ; elle ne prouve pas l'absence de défaut.
  • Aucun reversement ni commission (aucune application payante sur le magasin à ce jour).

Réglages (ir.config_parameter)

omnifloo_store_guard.security_contact, omnifloo_store_guard.require_2fa, omnifloo_store_guard.rescan_hours, omnifloo_store_guard.report_sender ; la commande du pré-contrôle reste omnifloo_app_store.precheck_command.

Tests

--test-tags /omnifloo_store_guard (modèles et HTTP) ; robots : pytest store/tests/test_guard.py ; quarantaine : pytest provisioner/tests/test_store_dynamic.py.

Ce que l'application ne fait pas

  • Il ne rend aucun texte juridique opposable tant que Julien ne l'a pas fait relire et publié (case « Relue par un avocat »).
  • Il ne retire jamais une application automatiquement : les robots alertent, une personne décide.
  • Il n'impose pas la 2FA à tous les comptes portail (Odoo 20 ne sait le faire que pour tous : authtotp.policy) :
  • Il ne vérifie pas l'identité de l'éditeur auprès d'un registre officiel (bouton « Identification vérifiée » manuel).
  • Pas de captcha tiers (Turnstile / reCAPTCHA installables séparément) ; pas de traduction des textes.
  • L'analyse dynamique n'exécute que les tests fournis par l'éditeur ; elle ne prouve pas l'absence de défaut.
  • Aucun reversement ni commission (aucune application payante sur le magasin à ce jour).

Applications du magasin nécessaires

Modules Odoo Community utilisés

auth_totp_portalmail

SérieVersionÉtatPubliée le
20.020.0.1.0.0 Disponible 02/10/2026

Fiche générée depuis le code de l'éditeur (dépôt privé, branche 20.0) : le code source n'est pas publié.

Contrôle automatique du magasin (distinct de l'éditeur), appliqué à toutes les applications. À corriger : Icône static/description/icon.png.

ContrôleRésultatEffet si absent
Manifeste lisible sans exécution conforme bloquant
Licence reconnue (OPL-1) conforme bloquant
Aucune dépendance vers Odoo Enterprise conforme bloquant
Aucun import de code Enterprise conforme bloquant
Aucun en-tête de licence Enterprise conforme bloquant
Icône static/description/icon.png absent déclasse
Description (static/description/index.html ou README) conforme déclasse
Tests automatisés (tests/test_*.py) conforme déclasse
Traduction française (i18n/fr.po) absent info
Section « Ce que le module ne fait pas » conforme info
Titre de 70 caractères au plus (32 actuellement) conforme info
Résumé en français conforme info

Guide — Garde-fous du magasin Omnifloo

Pour l'équipe Omnifloo (back-office : Store Omnifloo › Garde-fous)

  1. Alertes à décider : chaque constat « bloquant » ou « à revoir » non décidé. Ouvrir, lire « Pourquoi » et « Comment corriger », choisir Faux positif accepté, Risque accepté (motif obligatoire) ou Correction exigée. Lever un constat bloquant est réservé aux administrateurs.
  2. Dépôt partenaire : onglet « Analyses des robots », bloc « Ce qui empêche la publication ». Bouton « Analyse complète des robots » pour relancer tout de suite. À la première publication, remplir « Motif de la validation » (ce qui a été relu).
  3. Alerte sur un dépôt publié (bandeau rouge) : la ré-analyse du code publié est devenue bloquante. Décider d'un retrait si nécessaire.
  4. Retirer du magasin (dépôt, fiche ou signalement) : choisir la portée, le motif, le fondement, rédiger l'exposé des motifs (transmis à l'éditeur). La liste des espaces clients concernés s'affiche avant validation. Ne cocher « Retirer aussi le code » que pour un code malveillant : les espaces qui l'utilisent ne démarreront plus. Lever un retrait : menu Retraits, motif de levée obligatoire.
  5. Signalements : prendre en charge, décider d'une mesure si fondé, puis « Répondre : fondé / non fondé » avec une décision motivée (envoyée au déclarant).
  6. Documents juridiques : relire chaque texte en Aperçu (bandeau « Projet »), faire relire par un avocat, cocher « Relue par un avocat », Publier. Pour modifier un texte publié : Nouvelle version (préavis de 15 jours minimum pour les éditeurs ; exception motivée seulement pour obligation légale ou urgence de sécurité). Les « Règles de publication » régénèrent automatiquement le tableau des robots à chaque nouvelle version.

Pour l'éditeur partenaire (/my/partenaire)

  1. Accepter le contrat éditeur, les règles de publication et l'annexe RGPD (/my/conditions).
  2. Compléter l'identification de la société (/my/partenaire/identification).
  3. Activer la double authentification (/my/security).
  4. Soumettre le dépôt ; consulter « Voir l'analyse » : chaque constat indique comment corriger. « Relancer l'analyse » après correction.

Pour les visiteurs

Lien « Signaler cette application » sur chaque fiche ; failles : adresse de /.well-known/security.txt.

Avis des clients connectés. Un avis noté par client ; l'éditeur peut y répondre. Connectez-vous pour laisser un avis.

Éditeur
Omnifloo (DYONYSOS)
E-mail
contact@omnifloo.com
Clients Omnifloo
Support inclus selon votre formule : centre d'aide.