Compétences add-malli-schemas
🔐

add-malli-schemas

Sûr ⚡ Contient des scripts🌐 Accès réseau📁 Accès au système de fichiers🔑 Variables d’environnement⚙️ Commandes externes

Ajouter des schémas Malli aux points de terminaison API

Les points de terminaison de l'API Metabase ont besoin de schémas de validation pour la sécurité des types et la gestion des erreurs. Cette compétence fournit des instructions étape par étape pour ajouter des schémas Malli aux paramètres de route, paramètres de requête, corps de requête et structures de réponse avec les modèles et conventions appropriés.

Prend en charge: Claude Codex Code(CC)
📊 70 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "add-malli-schemas". Add Malli schemas to the GET /api/field/:id/related endpoint

Résultat attendu:

  • Route param: :id with ms/PositiveInt validation
  • Response schema: ::RelatedEntity with tables and fields sequences
  • Schema validates before JSON serialization
  • Uses existing ms/ types for consistency

Utilisation de "add-malli-schemas". Add request body schema to POST /api/database

Résultat attendu:

  • Body params: name, description, parent_id with appropriate types
  • Optional field: description with :optional true and [:maybe]
  • Required field: name using ms/NonBlankString
  • Validation occurs after JSON parsing but before handler execution

Utilisation de "add-malli-schemas". Create named schema for paginated response

Résultat attendu:

  • Named schema: ::PaginatedResponse with data, total, limit, offset
  • Uses [:sequential ::Item] for array of items
  • Optional limit and offset with :optional true property
  • Reusable across multiple endpoints requiring pagination

Audit de sécurité

Sûr
v5 • 1/17/2026

This is a pure documentation skill containing only guidance and Clojure code examples for adding Malli schemas to Metabase API endpoints. The static scanner incorrectly flagged Clojure syntax (backticks, brackets, keywords like :enum, :map, :or, :and) as security issues. All findings are false positives caused by the scanner's inability to correctly parse Clojure code. No executable code, network calls, filesystem access, or command execution capabilities exist in this skill.

2
Fichiers analysés
596
Lignes analysées
5
résultats
5
Total des audits

Facteurs de risque

⚡ Contient des scripts
Aucun emplacement spécifique enregistré
🌐 Accès réseau
Aucun emplacement spécifique enregistré
📁 Accès au système de fichiers
Aucun emplacement spécifique enregistré
🔑 Variables d’environnement
Aucun emplacement spécifique enregistré
⚙️ Commandes externes
Aucun emplacement spécifique enregistré

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
30
Communauté
100
Sécurité
83
Conformité aux spécifications

Ce que vous pouvez construire

Ajouter de la validation aux nouveaux points de terminaison

Ajouter des schémas Malli aux nouveaux points de terminaison API en suivant les conventions Metabase pour la sécurité des types.

Améliorer les schémas de points de terminaison existants

Améliorer les points de terminaison existants avec une validation complète des schémas de requête et de réponse.

Valider les modèles de schémas

Examiner les pull requests pour s'assurer que les schémas Malli suivent les modèles et bonnes pratiques établis.

Essayez ces prompts

Ajouter un schéma à un point de terminaison
Ajouter des schémas Malli au point de terminaison GET /api/field/:id/related dans le code Metabase. Inclure la validation des paramètres de route et le schéma de réponse.
Ajouter une validation de corps
Ajouter une validation de schéma de corps de requête au point de terminaison POST /api/database avec Malli. Inclure les champs optionnels avec les drapeaux :optional true appropriés.
Créer un schéma nommé
Créer un schéma Malli nommé pour une réponse paginée avec un tableau de données, un total, une limite et un décalage. L'utiliser dans plusieurs points de terminaison.
Gestion avancée des erreurs
Ajouter des messages d'erreur personnalisés à un schéma Malli complexe pour la validation du moteur de base de données. Inclure des messages d'erreur différés pour la prise en charge de l'i18n.

Bonnes pratiques

  • Utiliser les types de schéma existants de l'espace de noms ms/ au lieu de prédicats Malli bruts
  • Définir des schémas nommés avec mr/def pour les structures utilisées à plusieurs endroits
  • Appliquer :optional true et :default de manière appropriée pour les paramètres de requête

Éviter

  • Oublier le wrapper :maybe pour les champs nullables causant des échecs de validation
  • Utiliser ms/TemporalString pour les schémas de réponse au lieu de :any pour les objets Java Time
  • Mélanger les paramètres de route, de requête et de corps dans une seule carte de déstructuration

Foire aux questions

Quels types Malli sont disponibles dans Metabase ?
Metabase fournit ms/PositiveInt, ms/NonBlankString, ms/BooleanValue, ms/TemporalString, ms/Map, et plus dans metabase.util.malli.schema.
Quand les schémas de réponse valident-ils ?
Les schémas de réponse valident AVANT la sérialisation JSON, donc ils voient les objets Java et non les chaînes. Utiliser :any pour les champs temporels.
Comment les paramètres de requête optionnels sont-ils définis ?
Utiliser la propriété {:optional true} sur la clé dans le schéma de la carte des paramètres de requête. Ajouter :default pour les valeurs de repli.
Les données sont-elles sûres avec cette compétence ?
Cette compétence fournit uniquement des conseils. Elle n'exécute pas de code, n'accède pas aux fichiers et n'envoie aucune donnée nulle part. Elle est en lecture seule et constitue une documentation.
Comment gère-t-elle les réponses imbriquées complexes ?
Utiliser mr/def pour définir des schémas imbriqués complexes comme schémas nommés, puis les référencer avec ::namespace/SchemaName dans les définitions de points de terminaison.
Peut-elle générer des schémas à partir du code existant ?
Non. Cette compétence fournit des conseils pour ajouter manuellement des schémas en suivant les conventions Metabase. Elle n'analyse pas le code pour générer automatiquement des schémas.

Détails du développeur

Structure de fichiers

📄 SKILL.md