Produit
Archito NouveauApprend de vos merge requests, signale ce qui bloque Intégrations 25
Solutions
Par rôle
Pourquoi AppArch
Ressources
Clients Tarifs Contact
Langue
Nous contacter

Les échecs auxquels vos tests n'ont pas pensé, suivis de la requête à la base.

SmartScan suit chaque point d'entrée - une action web, un job, un consommateur de messages, un écran d'application - à travers services et handlers jusqu'à la base ou à la requête sortante, et signale ce qui peut casser en route : une recherche qui peut revenir vide, deux écritures qui peuvent réussir à moitié, une colonne que l'entrée peut déborder. Chaque risque arrive avec la chaîne qui y mène.

Écrans d'une installation en fonctionnement

Ce qu'il recherche

Quatre types de risque, chacun trouvé sur un vrai chemin dans votre code - pas sur un motif écrit par quelqu'un.

Enregistrement introuvable

Une recherche fondée sur les données de la requête peut revenir vide et le code utilise le résultat sans vérifier : une 500 au lieu d'une 404, ou un message trompeur.

Écriture partielle

Deux commits séparés dans un même flux sans transaction autour : si le second échoue, le premier reste écrit.

Écarts de contrat

La requête peut contenir plus que la colonne n'accepte, une colonne obligatoire n'est pas vérifiée en route, ou une colonne unique est écrite sans contrôle d'unicité.

Frontend et mobile

Une requête dont personne ne gère l'échec, une erreur prise pour un succès, une réponse utilisée sans vérification : l'écran plante ou reste muet.

Ce que SmartScan voit dans une seule requête

Une commande est créée en six étapes. Chacune est un véritable appel dans le code ; SmartScan les suit et s'arrête là où quelque chose peut casser.

  1. Point d'entrée POST /api/orders OrdersController.Create
  2. Requête mediator mediator.Send(CreateOrderCommand)
  3. Handler CreateOrderHandler.Handle
  4. De l'interface à l'implémentation ICustomerRepository.FindAsync CustomerRepository Introuvable : le résultat est utilisé sans vérification
  5. Écritures SaveChangesAsync() ×2 Écriture partielle : deux commits, pas de transaction
  6. Base de données orders · order_lines

Comment ça marche

L'unité est une chaîne : de l'entrée d'une requête jusqu'à l'endroit où elle touche les données.

  1. 01

    Partir de chaque point d'entrée

    Actions web, jobs planifiés et consommateurs de messages ; dans les frontends et apps, événements, effets, routes et écrans.

  2. 02

    Suivre la chaîne

    De l'interface à l'implémentation, surcharges, requêtes mediator vers leurs handlers - jusqu'à l'ORM ou l'appel HTTP.

  3. 03

    Écarter ce qui est protégé

    Une vérification, une recherche qui lève une exception, un validateur avec la bonne limite - sur le chemin même de l'écriture - compte. Une chaîne sans risque n'est pas signalée.

  4. 04

    Montrer le chemin

    Chaque risque liste ses étapes avec fichier et ligne, du point d'entrée à la colonne.

Un avertissement, pas un verrou

SmartScan n'est pas un jeu de règles : il ne baisse jamais un score et ne fait jamais échouer un pipeline. Chaque risque se clôt un par un, comme tout constat. Il s'active par projet, est désactivé par défaut et ne tourne que sur les analyses complètes : les vérifications de MR restent rapides.

Dans les neuf langages du collecteur

.NET Java Python Go PHP Ruby TypeScript Kotlin Swift

Une règle et un risque SmartScan ne sont pas la même chose

Les deux apparaissent dans le même panneau, mais répondent à des questions différentes et se comportent différemment.

Constat de règleRisque SmartScan
Ce qu'il chercheUn motif connu que quelqu'un a décritUn chemin à travers votre propre code
ScoreLe fait baisser, selon la sévéritéN'y touche jamais
PipelinePeut l'arrêter avec un seuil fail-onNe l'arrête jamais
Quand il s'exécuteRevues de merge request et analyses complètesAnalyses complètes uniquement, activé par projet
Ce que vous obtenezFichier, ligne et justification de la règleToute la chaîne, étape par étape, avec fichier et ligne

Questions sur SmartScan

Est-ce un jeu de règles de plus ?
Non. Un jeu de règles grossit avec chaque scénario imaginé ; SmartScan suit plutôt les chemins du code lui-même. Il avertit, ne baisse jamais un score et ne fait jamais échouer un pipeline.
Comment limiter les fausses alertes ?
Une protection ne compte que sur le chemin même de l'écriture : un contrôle explicite, une recherche qui lève une exception si rien n'est trouvé, un validateur avec la bonne limite. Chaque type de risque a été vérifié à la main sur de vraies bases de code avant sa sortie.
Ralentit-il les revues de merge request ?
Non. SmartScan ne tourne que sur les analyses complètes du dépôt ; les vérifications de MR gardent leur chemin rapide.
Quels langages et frameworks ?
Les neuf langages du collecteur : .NET, Java, Python, Go, PHP, Ruby, TypeScript (frontends React et Next.js compris), Kotlin (Android et Spring) et Swift (iOS).

Voir dans le produit

Toutes les captures

Trouvez les échecs avant vos utilisateurs

Activez SmartScan pour un projet pendant un PoC ; la prochaine analyse complète montre chaque chaîne à risque.