Outil de détection des modifications Edge for Private Cloud 4.54.00

Outil de détection des modifications

Un outil de détection des modifications a été conçu pour identifier les proxys, les règles, les flux partagés et les fichiers JAR de ressources Apigee (au niveau du proxy, de l'environnement ou de l'organisation) qui peuvent être affectés pendant et après la transition vers Edge pour le cloud privé 4.54.00. Cet outil génère un rapport détaillant les proxys déployés, les flux partagés et les fichiers JAR de ressources affectés par les modifications, et fournit des instructions vers des guides et des stratégies spécifiques pertinents pour les proxys ou les flux partagés identifiés.

Prérequis

  1. Une machine basée sur RHEL ou Rocky Linux est requise pour exécuter cet outil (consultez les exigences d'installation d'Edge).
  2. JRE 8 ou une version ultérieure doit être installé et correctement configuré sur la machine hôte pour permettre l'exécution des scripts de l'outil.
  3. L'outil nécessite un accès réseau au point de terminaison (URL) du serveur de gestion et des identifiants d'administration valides pour l'authentification et la récupération des données.
  4. L'outil nécessite un accès à un répertoire de travail désigné (par exemple, /tmp) avec suffisamment d'espace disque et des autorisations de lecture/écriture appropriées pour télécharger des bundles, générer des journaux et stocker la sortie.
  5. (Facultatif) Lors de la mise à niveau à partir de la version 4.53.00, l'outil nécessite un fichier LDIF généré à l'aide de la commande ldapsearch dans la section OpenLDAP change - Extract LDAP data (Modification OpenLDAP – Extraire les données LDAP) pour détecter les RDN longs dépassant 241 caractères/octets.

Exécuter l'outil

Une fois tous les prérequis remplis, téléchargez l'outil à partir du dépôt Apigee à l'aide de vos identifiants Apigee, puis extrayez l'archive téléchargée :

curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.54.00_1.0.0.zip -o /tmp/change-detector-for-4.54.00_1.0.0.zip
unzip /tmp/change-detector-for-4.54.00_1.0.0.zip

Une fois le téléchargement terminé, vous pouvez exécuter la commande suivante pour afficher toutes les options disponibles pour l'outil :

./change-detector --help

Pour exécuter l'outil, utilisez la commande suivante et remplacez les espaces réservés par vos informations :

export APIGEE_PASSWORD=YOUR_PASSWORD
./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION

Spécifiez --source-version 4.53.01 lors de la mise à niveau directe d'Edge pour Private Cloud 4.53.01 afin de rechercher les modifications Java 21. Si vous effectuez une mise à niveau à partir de la version 4.53.00, spécifiez --source-version 4.53.00 pour effectuer une analyse cumulative couvrant à la fois les abandons de règles de la version 4.53.01 et les modifications Java 21.

L'outil génère une sortie au format CSV ou JSON qui peut être examinée directement ou importée dans des applications de tableur telles que Google Sheets.

Comprendre la sortie de l'outil

Le rapport contient les colonnes suivantes :

Organisation

Nom de l'organisation dans laquelle se trouve l'artefact. Pour les modifications OpenLDAP, il s'agit de None.

Environnement

Environnement spécifique (par exemple, dev, test, prod) au sein de l'organisation. Pour les fichiers JAR au niveau de l'organisation, ce champ est N/A. Pour les modifications OpenLDAP, il s'agit de None.

Nom du proxy

Nom du proxy d'API ou du flux partagé. Pour les ressources JAR au niveau de l'organisation, le nom de l'organisation s'affiche. Pour les ressources JAR au niveau de l'environnement, le nom de l'environnement s'affiche. Pour les modifications OpenLDAP, ce champ affiche l'entité LDAP du RDN.

Champ d'application

Spécifie le champ d'application et le niveau de l'artefact analysé :

  • proxy-level-jar : fichier de ressources JAR importé au niveau du proxy (sous /resources/java).
  • env-level-jar : fichier de ressources JAR importé au niveau de l'environnement (consultez Fichiers de ressources).
  • org-level-jar : fichier de ressources JAR importé au niveau de l'organisation.
  • proxy : règle ou configuration dans une révision de proxy d'API.
  • sharedflow : règle ou configuration dans une révision de flux partagé.
  • ldif : fichier LDIF OpenLDAP (pour les vérifications OpenLDAP).

Révision

Numéro de révision spécifique du proxy d'API ou du flux partagé. Pour les fichiers JAR au niveau de l'environnement ou de l'organisation, ce champ est N/A. Pour les modifications OpenLDAP, il s'agit de None.

Nom de la règle

Nom de la règle spécifique qui a été identifiée comme un problème potentiel (par exemple, JavaCallout-ValidateAccount ou OASValidation-1). Pour les ressources au niveau de l'organisation, ce champ affiche N/A (Organization Resource). Pour les ressources au niveau de l'environnement, ce champ affiche N/A (Environment Resource). Pour les modifications OpenLDAP, il s'agit de None.

Type de règle

Type de règle (par exemple, java-callout ou OASValidation). Pour les modifications OpenLDAP, il s'agit de None.

Version source

Version OPDK source configurée pour l'analyse (4.53.00 ou 4.53.01).

Ressource affectée

Décrit la ressource ou la bibliothèque spécifique détectée :

  • Pour les détections d'appels Java 21 : nom exact du fichier JAR affecté (par exemple, order-transform.jar ou corba-callout.jar).
  • Pour les abandons hérités de la version 4.53 : deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR.
  • Pour les détections OAS, JSONPath ou OpenLDAP : élément ou ressource de règle spécifique (par exemple, oas content type handling, wildcard expression ou LDAP RDN exceeds 241 characters).

Motif de la détection

Fournit des informations de diagnostic détaillées sur la raison pour laquelle l'élément a été signalé :

  • Pour les détections d'appels Java 21 : classe spécifique, bibliothèque de remplacement cible (le cas échéant) et cause racine (par exemple, Class: javax.xml.bind.JAXBContext | Target Library: jakarta.xml.bind-api-2.3.3.jar | Root Cause: ClassNotFoundException: JAXB API was removed from Java SE in Java 11 (JEP 320)). Si plusieurs problèmes sont détectés dans le même fichier JAR, ils sont consolidés et séparés par ;.
  • Pour les abandons hérités de la version 4.53 : liste des classes référencées à partir de bibliothèques obsolètes (par exemple, ['Detected use of class CLASS_NAME from JAR_NAME']).
  • Pour les validations OAS : variable spécifiée dans la balise Source (par exemple, Source=response).
  • Pour JSONPath : expression exacte signalée.
  • Pour OpenLDAP : RDN de l'entité LDAP spécifique qui dépasse 241 octets ou caractères.

Certitude de l'impact

Ce champ indique le degré de confiance avec lequel l'outil a identifié un bloqueur de mise à niveau. Les valeurs sont normalisées en majuscules :

  • HIGH : l'outil a détecté une modification incompatible (par exemple, un appel à une classe supprimée définitivement comme javax.xml.bind.JAXBContext ou sun.misc.BASE64Encoder, ou un RDN OpenLDAP dépassant 241 octets). Il existe une probabilité quasi certaine d'échec d'exécution (ClassNotFoundException ou NoClassDefFoundError) si aucune mesure n'est prise.
  • MEDIUM: **`MEDIUM`** : l'outil a détecté un modèle nécessitant une inspection par le développeur et une vérification fonctionnelle :
    • Pour les appels Java : signalés sous METHOD_SIGNATURE_MODIFICATION (par exemple, org.w3c.dom.Document), où la classe existe dans Java 21, mais où des méthodes spécifiques ont peut-être été modifiées ou abandonnées.
    • Pour les règles OASValidation : signalées lorsque des variables d'exécution dynamiques sont utilisées dans l'élément <Source> (par exemple, Source=response), ce qui nécessite de capturer Trace pour observer les variables résolues lors de l'exécution du proxy.

Exemples de rapports de détection

Rapport d'analyse Java 21 ciblé (--source-version 4.53.01)

L'exemple suivant illustre la sortie du rapport pour une mise à niveau d'OPDK 4.53.01 vers 4.54.00 :

Organisation Environnement Nom du proxy Champ d'application Révision Nom de la règle Type de règle Version source Ressource affectée Motif de la détection Certitude de l'impact
my-org prod order-processing proxy-level-jar 12 JavaCallout-ParseXml java-callout 4.53.01 jaxb-callout.jar Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... HIGH
my-org stage legacy-corba-bridge proxy-level-jar 1 JavaCallout-CorbaClient java-callout 4.53.01 corba-callout.jar Class: org.omg.CORBA.ORB | Cause: ClassNotFoundException..... HIGH
my-org prod prod env-level-jar N/A N/A (Environment Resource) java-callout 4.53.01 env-security-utils.jar Class: sun.misc.BASE64Encoder | Cause: ClassNotFoundException..... HIGH
my-org N/A my-org org-level-jar N/A N/A (Organization Resource) java-callout 4.53.01 cglib-nodep-2.2.jar Class: net.sf.cglib.proxy.Enhancer | Cause: IllegalArgumentException..... HIGH
my-org prod invoice-parser proxy-level-jar 5 JavaCallout-ParseInvoice java-callout 4.53.01 invoice-dom.jar Class: org.w3c.dom.Document | Cause: Modified methods in Java 21..... MEDIUM
my-org prod payment-gateway proxy-level-jar 3 JavaCallout-SignToken java-callout 4.53.01 payment-lib.jar Class: com.mycompany.crypto.OldProvider | Target: custom-crypto-3.0.jar..... HIGH

Rapport d'analyse cumulative (--source-version 4.53.00)

L'exemple suivant illustre la sortie du rapport pour une mise à niveau d'OPDK 4.53.00 vers 4.54.00 :

Organisation Environnement Nom du proxy Champ d'application Révision Nom de la règle Type de règle Version source Ressource affectée Motif de la détection Certitude de l'impact
my-org prod customer-portal proxy 3 ValidateOpenAPISpec OASValidation 4.53.00 oas content type handling Source=response MEDIUM
my-org prod accounts-api proxy-level-jar 4 JavaCallout-ValidateAccount java-callout 4.53.00 deprecated: custom-validator.jar..... ['Detected use of class org.apache.commons.beanutils.....'] HIGH
my-org prod order-processing proxy-level-jar 12 JavaCallout-ParseXml java-callout 4.53.00 jaxb-callout.jar Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... HIGH
my-org None None ldif None None None 4.53.00 LDAP RDN exceeds 241 characters cn=very-long-rdn-name-exceeding-limit..... HIGH

Pour obtenir des conseils sur la résolution des problèmes identifiés, consultez Stratégies de correction.